From cf4cfc9b6cf52c25c2f4e188f73c70b19fd528ba Mon Sep 17 00:00:00 2001 From: octorock <79596758+octorock@users.noreply.github.com> Date: Thu, 13 May 2021 00:51:20 +0200 Subject: [PATCH 01/74] Rebuild progress script --- progress.py | 214 ++++++++++++++++++++++++++-------------------------- 1 file changed, 105 insertions(+), 109 deletions(-) diff --git a/progress.py b/progress.py index 7035cc35..f0288333 100644 --- a/progress.py +++ b/progress.py @@ -1,118 +1,114 @@ +import argparse +import git +import os -import csv, git, re, argparse, os -from itertools import chain -map = open("tmc.map", "r") -src = 0 -asm = 0 -srcData = 0 -data = 0 - -parser = argparse.ArgumentParser() -parser.add_argument("-m", "--matching", dest='matching', action='store_true', help="Output matching progress instead of decompilation progress") -args = parser.parse_args() -matching = args.matching - -NON_MATCHING_PATTERN = r'((?<=NONMATCH\(")asm/non_matching/.*\.inc)|((?<=NONMATCH\(")asm/non_matching/.*\.s)' -NON_ASM_PATTERN = r'(^\w+:)|(^\s@)|(^\s*\.)|(^\s*thumb_func_start)' - -#def remInvalid(x): - -def GetNonMatchingFunctions(files): - functions = [] - - for file in files: - with open(file) as f: - functions += re.findall(NON_MATCHING_PATTERN, f.read()) - - #functions = map(lambda x: x != "", functions) - return functions - -def ReadAllLines(fileName): - lineList = list() - with open(fileName) as f: - lineList = f.readlines() - - return lineList - -def GetFiles(path, ext): - files = [] - for r, d, f in os.walk(path): +def collect_non_matching_funcs(): + result = [] + for r, d, f in os.walk('asm/non_matching'): for file in f: - if file.endswith(ext): - files.append(os.path.join(r, file)) - - return files - -nonMatchingFunctions = GetNonMatchingFunctions(GetFiles("src", ".c")) if not args.matching else [] - -# this is actually the size of all non matching asm, not (total - non matching) -def GetNonMatchingSize(path): - size = 0 - - asmFiles = GetFiles(path, ".s") + GetFiles(path, ".inc") - - for asmFilePath in asmFiles: - for x in nonMatchingFunctions: # stupid tuple - if asmFilePath in x: - asmLines = ReadAllLines(asmFilePath) - - for asmLine in asmLines: - if len(re.findall(NON_ASM_PATTERN, asmLine, re.DOTALL)) == 0: - size += 2 - - return size - -nonMatchingASM = GetNonMatchingSize("asm/non_matching") - -for line in map: - reg = re.compile(r"^ \.(\w+)\s+0x[0-9a-f]+\s+(0x[0-9a-f]+) (\w+)\/(.+)\.o") - matches = reg.split(line) - - if (len(matches) < 5): - continue - - section = matches[1] - size = int(matches[2], 16) - direc = matches[3] - basename = matches[4] - - # alignment? idk - if (size & 3): - size += 4 - (size % 3) - - if (section == "text"): - if (direc == "src"): - src += size - elif (direc == "asm"): - asm += size - elif (section == "rodata"): - if (direc == "src"): - srcData += size - elif (direc == "data"): - data += size - -total = src + asm -dataTotal = srcData + data - -if matching: - srcPct = "%.4f" % (100 * (src) / total) - asmPct = "%.4f" % (100 * (asm) / total) -else: - srcPct = "%.4f" % (100 * (src + nonMatchingASM) / total) - asmPct = "%.4f" % (100 * (asm - nonMatchingASM) / total) + if file.endswith('.inc'): + # Assume that the filename is the function name + result.append(file[0:-4]) + else: + print(r,file) + return result -srcDataPct = "%.4f" % (100 * srcData / dataTotal) -dataPct = "%.4f" % (100 * data / dataTotal) +def parse_map(non_matching_funcs): + src = 0 + asm = 0 + src_data = 0 + data = 0 + non_matching = 0 -version = 1 -git_object = git.Repo().head.object -timestamp = str(git_object.committed_date) -git_hash = git_object.hexsha + with open('tmc.map', 'r') as map: + # Skip to the linker script section + line = map.readline() + while not line.startswith('Linker script and memory map'): + line = map.readline() + while not line.startswith('rom'): + line = map.readline() -#################################################### + prev_symbol = None + prev_addr = 0 + for line in map: + if line.startswith(' .'): + arr = line.split() + section = arr[0] + size = int(arr[2], 16) + filepath = arr[3] + dir = filepath.split('/')[0] -csv_list = [str(version), timestamp, git_hash, str(srcPct), str(asmPct), str(srcDataPct), str(dataPct)] + if section == '.text': + if dir == 'src': + src += size + elif dir == 'asm': + asm += size + elif dir == 'data': + # scripts + data += size + elif dir == '..': + # libc + src += size + elif section == '.rodata': + if dir == 'src': + src_data += size + elif dir == 'data': + data += size -print(",".join(csv_list)) + elif line.startswith(' '): + arr = line.split() + if len(arr) == 2 and arr[1] != '': # It is actually a symbol + + if prev_symbol in non_matching_funcs: + # Calculate the length for non matching function + non_matching += int(arr[0], 16) - prev_addr + + prev_symbol = arr[1] + prev_addr = int(arr[0], 16) + elif line.strip() == '': + # End of linker script section + break + + src -= non_matching + asm += non_matching + + return (src, asm, src_data, data) + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('-m', '--matching', dest='matching', action='store_true', + help='Output matching progress instead of decompilation progress') + args = parser.parse_args() + matching = args.matching + + non_matching_funcs = [] + if matching: + non_matching_funcs = collect_non_matching_funcs() + + (src, asm, src_data, data) = parse_map(non_matching_funcs) + + total = src + asm + data_total = src_data + data + + src_pct = '%.4f' % (100 * src / total) + asm_pct = '%.4f' % (100 * asm / total) + + src_data_pct = '%.4f' % (100 * src_data / data_total) + data_pct = '%.4f' % (100 * data / data_total) + + version = 1 + git_object = git.Repo().head.object + timestamp = str(git_object.committed_date) + git_hash = git_object.hexsha + + csv_list = [str(version), timestamp, git_hash, str(src_pct), + str(asm_pct), str(src_data_pct), str(data_pct)] + + print(','.join(csv_list)) + + +if __name__ == '__main__': + main() From f2c69d0b7c5b51b38cf9a3c08d6dd7d85e23226d Mon Sep 17 00:00:00 2001 From: octorock <79596758+octorock@users.noreply.github.com> Date: Thu, 13 May 2021 00:54:00 +0200 Subject: [PATCH 02/74] Unify nonmatching namings --- asm/non_matching/CreateItemDrop.inc | 150 ++++++++++++++++++ asm/non_matching/ForceEquipItem.inc | 46 ++++++ .../{putItemOnSlot.s => PutItemOnSlot.inc} | 47 ------ .../{sub_08017530.inc => NPCUpdate.inc} | 0 .../{sub_08081E6C.s => sub_08081E6C.inc} | 0 .../moldworm/{moldworm.inc => Moldworm.inc} | 0 .../{sub_08070794.s => PlayerNormal.inc} | 0 ...{sub_08071634.s => PortalShrinkUpdate.inc} | 0 .../{sub_08070DC4.s => sub_08070DC4.inc} | 0 .../{sub_08072D54.s => sub_08072D54.inc} | 0 asm/non_matching/sub_0801CED8.inc | 33 ++++ .../{code_0805457C.inc => sub_0805457C.inc} | 149 ----------------- asm/non_matching/sub_0805EC9C.inc | 41 +++++ ...{sub_08061C60.inc => Townsperson_Head.inc} | 0 src/arm_proxy.c | 2 +- src/code_0805436C.c | 40 +++-- src/code_0805EC04.c | 45 +----- src/code_08077B98.c | 5 +- src/code_08077DF4.c | 5 +- src/code_0807CC3C.c | 12 +- src/enemy/bombPeahat.c | 10 +- src/enemy/businessScrub.c | 10 +- src/enemy/darkNut.c | 5 +- src/enemy/fallingBoulder.c | 14 +- src/enemy/likeLike.c | 10 +- src/enemy/madderpillar.c | 5 +- src/enemy/moldorm.c | 10 +- src/enemy/moldworm.c | 20 +-- src/enemy/pesto.c | 28 +--- src/enemy/puffstool.c | 10 +- src/enemy/spearMoblin.c | 14 +- src/enemy/wallMaster2.c | 5 +- src/ezloNag.c | 42 +---- src/gba/m4a.c | 2 +- src/manager/manager15.c | 14 +- src/manager/manager4.c | 12 +- src/manager/managerC.c | 14 +- src/npc/syrup.c | 18 +-- src/npc/townsperson.c | 10 +- src/object/button.c | 16 +- src/player.c | 8 +- src/room.c | 30 +--- src/textbox.c | 6 +- 43 files changed, 373 insertions(+), 515 deletions(-) create mode 100644 asm/non_matching/CreateItemDrop.inc create mode 100644 asm/non_matching/ForceEquipItem.inc rename asm/non_matching/{putItemOnSlot.s => PutItemOnSlot.inc} (55%) rename asm/non_matching/arm_proxy/{sub_08017530.inc => NPCUpdate.inc} (100%) rename asm/non_matching/button/{sub_08081E6C.s => sub_08081E6C.inc} (100%) rename asm/non_matching/moldworm/{moldworm.inc => Moldworm.inc} (100%) rename asm/non_matching/player/{sub_08070794.s => PlayerNormal.inc} (100%) rename asm/non_matching/player/{sub_08071634.s => PortalShrinkUpdate.inc} (100%) rename asm/non_matching/player/{sub_08070DC4.s => sub_08070DC4.inc} (100%) rename asm/non_matching/player/{sub_08072D54.s => sub_08072D54.inc} (100%) create mode 100644 asm/non_matching/sub_0801CED8.inc rename asm/non_matching/{code_0805457C.inc => sub_0805457C.inc} (62%) create mode 100644 asm/non_matching/sub_0805EC9C.inc rename asm/non_matching/townsperson/{sub_08061C60.inc => Townsperson_Head.inc} (100%) diff --git a/asm/non_matching/CreateItemDrop.inc b/asm/non_matching/CreateItemDrop.inc new file mode 100644 index 00000000..d84a8817 --- /dev/null +++ b/asm/non_matching/CreateItemDrop.inc @@ -0,0 +1,150 @@ +.syntax unified +CreateItemDrop: @ 0x08054754 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r4, r1, #0 + adds r5, r2, #0 + cmp r4, #0x5e + beq _08054786 + cmp r4, #0x5e + bhi _08054772 + cmp r4, #0x5c + beq _080547A6 + cmp r4, #0x5c + bhi _08054782 + cmp r4, #0x3f + beq _08054794 + b _080547DA +_08054772: + cmp r4, #0xfc + blo _080547DA + cmp r4, #0xfe + bls _080547A6 + cmp r4, #0xff + bne _080547DA + movs r0, #1 + b _08054788 +_08054782: + movs r0, #0x65 + b _08054788 +_08054786: + movs r0, #9 +_08054788: + bl GetInventoryValue + cmp r0, #0 + bne _080547DA +_08054790: + movs r0, #0 + b _0805486C +_08054794: + movs r0, #0x40 + bl GetInventoryValue + cmp r0, #0 + beq _08054790 + cmp r5, #0 + bne _080547DA + movs r5, #1 + b _080547DA +_080547A6: + movs r0, #0x67 + bl GetInventoryValue + cmp r0, #0 + beq _08054790 + ldr r0, _080547FC @ =gRoomVars + ldrb r0, [r0, #5] + cmp r0, #3 + bhi _08054790 + cmp r4, #0x5c + beq _080547DA + adds r5, r4, #0 + subs r5, #0xfc + bl Random + movs r1, #0x3f + ands r1, r0 + ldr r2, _08054800 @ =gUnk_080FE1DD + lsls r0, r5, #6 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r5, [r1] + movs r4, #0x5c + cmp r5, #0 + bne _080547DA + movs r4, #0 +_080547DA: + cmp r4, #0 + beq _0805486A + cmp r4, #0xff + beq _08054842 + movs r0, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _0805486A + ldr r0, _08054804 @ =gPlayerEntity + cmp r6, r0 + bne _08054808 + movs r0, #1 + b _0805480A + .align 2, 0 +_080547FC: .4byte gRoomVars +_08054800: .4byte gUnk_080FE1DD +_08054804: .4byte gPlayerEntity +_08054808: + movs r0, #0 +_0805480A: + strb r0, [r2, #0xe] + ldrb r0, [r6, #8] + cmp r0, #6 + bne _08054838 + ldrb r0, [r6, #9] + cmp r0, #0x63 + bne _0805481C + str r2, [r6, #0x54] + b _08054838 +_0805481C: + cmp r0, #0x1e + bne _08054838 + ldrb r0, [r6, #0x14] + lsls r0, r0, #3 + movs r3, #0x80 + rsbs r3, r3, #0 + adds r1, r3, #0 + orrs r0, r1 + strb r0, [r2, #0x15] + movs r0, #0xc0 + strh r0, [r2, #0x24] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r2, #0x20] +_08054838: + adds r0, r6, #0 + adds r1, r2, #0 + bl CopyPosition + b _0805486A +_08054842: + movs r0, #7 + movs r1, #0 + bl CreateEnemy + adds r2, r0, #0 + cmp r2, #0 + beq _0805486A + ldrh r0, [r6, #0x2e] + strh r0, [r2, #0x2e] + ldrh r0, [r6, #0x32] + strh r0, [r2, #0x32] + adds r0, r6, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r2, #0 + bl UpdateSpriteForCollisionLayer +_0805486A: + adds r0, r4, #0 +_0805486C: + pop {r4, r5, r6, pc} + .align 2, 0 +.syntax divided diff --git a/asm/non_matching/ForceEquipItem.inc b/asm/non_matching/ForceEquipItem.inc new file mode 100644 index 00000000..e12f3ea5 --- /dev/null +++ b/asm/non_matching/ForceEquipItem.inc @@ -0,0 +1,46 @@ + .syntax unified + .text + +ForceEquipItem: @ 0x08054414 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + subs r0, r4, #1 + cmp r0, #0x1e + bhi _08054456 + cmp r1, #1 + bhi _08054456 + movs r2, #0 + cmp r1, #0 + bne _0805442A + movs r2, #1 +_0805442A: + ldr r0, _08054458 @ =gSave + adds r0, #0xb4 + adds r6, r1, r0 + ldrb r7, [r6] + adds r5, r2, r0 + ldrb r3, [r5] + ldr r2, _0805445C @ =gUnk_080FD5B4 + lsls r1, r3, #3 + adds r1, r1, r2 + lsls r0, r4, #3 + adds r0, r0, r2 + ldrb r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + bne _0805444A + adds r3, r7, #0 +_0805444A: + strb r4, [r6] + strb r3, [r5] + ldr r1, _08054460 @ =gUnk_0200AF00 + movs r0, #0x7f + strb r0, [r1, #0x13] + strb r0, [r1, #0x14] +_08054456: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08054458: .4byte gSave +_0805445C: .4byte gUnk_080FD5B4 +_08054460: .4byte gUnk_0200AF00 + .syntax divided diff --git a/asm/non_matching/putItemOnSlot.s b/asm/non_matching/PutItemOnSlot.inc similarity index 55% rename from asm/non_matching/putItemOnSlot.s rename to asm/non_matching/PutItemOnSlot.inc index d22d7828..af483e7b 100644 --- a/asm/non_matching/putItemOnSlot.s +++ b/asm/non_matching/PutItemOnSlot.inc @@ -1,7 +1,3 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - .syntax unified .text @@ -74,47 +70,4 @@ _08054410: pop {r4, r5, pc} .align 2, 0 - thumb_func_start ForceEquipItem -ForceEquipItem: @ 0x08054414 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - subs r0, r4, #1 - cmp r0, #0x1e - bhi _08054456 - cmp r1, #1 - bhi _08054456 - movs r2, #0 - cmp r1, #0 - bne _0805442A - movs r2, #1 -_0805442A: - ldr r0, _08054458 @ =gSave - adds r0, #0xb4 - adds r6, r1, r0 - ldrb r7, [r6] - adds r5, r2, r0 - ldrb r3, [r5] - ldr r2, _0805445C @ =gUnk_080FD5B4 - lsls r1, r3, #3 - adds r1, r1, r2 - lsls r0, r4, #3 - adds r0, r0, r2 - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bne _0805444A - adds r3, r7, #0 -_0805444A: - strb r4, [r6] - strb r3, [r5] - ldr r1, _08054460 @ =gUnk_0200AF00 - movs r0, #0x7f - strb r0, [r1, #0x13] - strb r0, [r1, #0x14] -_08054456: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08054458: .4byte gSave -_0805445C: .4byte gUnk_080FD5B4 -_08054460: .4byte gUnk_0200AF00 .syntax divided diff --git a/asm/non_matching/arm_proxy/sub_08017530.inc b/asm/non_matching/arm_proxy/NPCUpdate.inc similarity index 100% rename from asm/non_matching/arm_proxy/sub_08017530.inc rename to asm/non_matching/arm_proxy/NPCUpdate.inc diff --git a/asm/non_matching/button/sub_08081E6C.s b/asm/non_matching/button/sub_08081E6C.inc similarity index 100% rename from asm/non_matching/button/sub_08081E6C.s rename to asm/non_matching/button/sub_08081E6C.inc diff --git a/asm/non_matching/moldworm/moldworm.inc b/asm/non_matching/moldworm/Moldworm.inc similarity index 100% rename from asm/non_matching/moldworm/moldworm.inc rename to asm/non_matching/moldworm/Moldworm.inc diff --git a/asm/non_matching/player/sub_08070794.s b/asm/non_matching/player/PlayerNormal.inc similarity index 100% rename from asm/non_matching/player/sub_08070794.s rename to asm/non_matching/player/PlayerNormal.inc diff --git a/asm/non_matching/player/sub_08071634.s b/asm/non_matching/player/PortalShrinkUpdate.inc similarity index 100% rename from asm/non_matching/player/sub_08071634.s rename to asm/non_matching/player/PortalShrinkUpdate.inc diff --git a/asm/non_matching/player/sub_08070DC4.s b/asm/non_matching/player/sub_08070DC4.inc similarity index 100% rename from asm/non_matching/player/sub_08070DC4.s rename to asm/non_matching/player/sub_08070DC4.inc diff --git a/asm/non_matching/player/sub_08072D54.s b/asm/non_matching/player/sub_08072D54.inc similarity index 100% rename from asm/non_matching/player/sub_08072D54.s rename to asm/non_matching/player/sub_08072D54.inc diff --git a/asm/non_matching/sub_0801CED8.inc b/asm/non_matching/sub_0801CED8.inc new file mode 100644 index 00000000..a976f73a --- /dev/null +++ b/asm/non_matching/sub_0801CED8.inc @@ -0,0 +1,33 @@ + .syntax unified + push {r4, lr} + adds r3, r0, #0 + ldr r0, _0801CF10 @ =gUnk_0200AF00 + adds r1, r0, #0 + adds r1, #0x24 + ldrb r4, [r1] + cmp r4, #1 + bne _0801CF0E + movs r2, #2 + movs r0, #2 + strb r0, [r1] + movs r1, #0 + movs r0, #0x10 + strh r0, [r3, #0xc] + movs r0, #0x90 + strh r0, [r3, #0xe] + strb r1, [r3, #6] + movs r0, #7 + strb r0, [r3, #1] + strb r4, [r3, #4] + ldrb r0, [r3] + orrs r0, r2 + strb r0, [r3] + ldr r1, _0801CF14 @ =gUnk_080C9094 + adds r0, r3, #0 + bl sub_0801CAB8 +_0801CF0E: + pop {r4, pc} + .align 2, 0 +_0801CF10: .4byte gUnk_0200AF00 +_0801CF14: .4byte gUnk_080C9094 + .syntax divided diff --git a/asm/non_matching/code_0805457C.inc b/asm/non_matching/sub_0805457C.inc similarity index 62% rename from asm/non_matching/code_0805457C.inc rename to asm/non_matching/sub_0805457C.inc index 4684cac8..3044a086 100644 --- a/asm/non_matching/code_0805457C.inc +++ b/asm/non_matching/sub_0805457C.inc @@ -215,153 +215,4 @@ _0805474E: pop {r4, r5, r6, r7, pc} .align 2, 0 - thumb_func_start CreateItemDrop -CreateItemDrop: @ 0x08054754 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r4, r1, #0 - adds r5, r2, #0 - cmp r4, #0x5e - beq _08054786 - cmp r4, #0x5e - bhi _08054772 - cmp r4, #0x5c - beq _080547A6 - cmp r4, #0x5c - bhi _08054782 - cmp r4, #0x3f - beq _08054794 - b _080547DA -_08054772: - cmp r4, #0xfc - blo _080547DA - cmp r4, #0xfe - bls _080547A6 - cmp r4, #0xff - bne _080547DA - movs r0, #1 - b _08054788 -_08054782: - movs r0, #0x65 - b _08054788 -_08054786: - movs r0, #9 -_08054788: - bl GetInventoryValue - cmp r0, #0 - bne _080547DA -_08054790: - movs r0, #0 - b _0805486C -_08054794: - movs r0, #0x40 - bl GetInventoryValue - cmp r0, #0 - beq _08054790 - cmp r5, #0 - bne _080547DA - movs r5, #1 - b _080547DA -_080547A6: - movs r0, #0x67 - bl GetInventoryValue - cmp r0, #0 - beq _08054790 - ldr r0, _080547FC @ =gRoomVars - ldrb r0, [r0, #5] - cmp r0, #3 - bhi _08054790 - cmp r4, #0x5c - beq _080547DA - adds r5, r4, #0 - subs r5, #0xfc - bl Random - movs r1, #0x3f - ands r1, r0 - ldr r2, _08054800 @ =gUnk_080FE1DD - lsls r0, r5, #6 - adds r1, r1, r0 - adds r1, r1, r2 - ldrb r5, [r1] - movs r4, #0x5c - cmp r5, #0 - bne _080547DA - movs r4, #0 -_080547DA: - cmp r4, #0 - beq _0805486A - cmp r4, #0xff - beq _08054842 - movs r0, #0 - adds r1, r4, #0 - adds r2, r5, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _0805486A - ldr r0, _08054804 @ =gPlayerEntity - cmp r6, r0 - bne _08054808 - movs r0, #1 - b _0805480A - .align 2, 0 -_080547FC: .4byte gRoomVars -_08054800: .4byte gUnk_080FE1DD -_08054804: .4byte gPlayerEntity -_08054808: - movs r0, #0 -_0805480A: - strb r0, [r2, #0xe] - ldrb r0, [r6, #8] - cmp r0, #6 - bne _08054838 - ldrb r0, [r6, #9] - cmp r0, #0x63 - bne _0805481C - str r2, [r6, #0x54] - b _08054838 -_0805481C: - cmp r0, #0x1e - bne _08054838 - ldrb r0, [r6, #0x14] - lsls r0, r0, #3 - movs r3, #0x80 - rsbs r3, r3, #0 - adds r1, r3, #0 - orrs r0, r1 - strb r0, [r2, #0x15] - movs r0, #0xc0 - strh r0, [r2, #0x24] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r2, #0x20] -_08054838: - adds r0, r6, #0 - adds r1, r2, #0 - bl CopyPosition - b _0805486A -_08054842: - movs r0, #7 - movs r1, #0 - bl CreateEnemy - adds r2, r0, #0 - cmp r2, #0 - beq _0805486A - ldrh r0, [r6, #0x2e] - strh r0, [r2, #0x2e] - ldrh r0, [r6, #0x32] - strh r0, [r2, #0x32] - adds r0, r6, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r2, #0 - adds r0, #0x38 - strb r1, [r0] - adds r0, r2, #0 - bl UpdateSpriteForCollisionLayer -_0805486A: - adds r0, r4, #0 -_0805486C: - pop {r4, r5, r6, pc} - .align 2, 0 .syntax divided diff --git a/asm/non_matching/sub_0805EC9C.inc b/asm/non_matching/sub_0805EC9C.inc new file mode 100644 index 00000000..7c876fec --- /dev/null +++ b/asm/non_matching/sub_0805EC9C.inc @@ -0,0 +1,41 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + adds r7, r3, #0 + ldrb r0, [r4, #0x1b] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + cmp r0, #0 + bne _0805ECBE + adds r0, r4, #0 + bl sub_0805EC04 + cmp r0, #0 + bne _0805ECBE + movs r0, #0 + b _0805ECE0 +_0805ECBE: + ldr r1, _0805ECE4 @ =gUnk_03000000 + ldr r0, _0805ECE8 @ =0x00000427 + adds r2, r1, r0 + movs r0, #1 + strb r0, [r2] + ldrb r0, [r4, #0x1b] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + lsls r0, r0, #3 + movs r2, #0x84 + lsls r2, r2, #3 + adds r1, r1, r2 + adds r0, r0, r1 + strh r5, [r0] + strh r6, [r0, #2] + strh r7, [r0, #4] + movs r0, #1 +_0805ECE0: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805ECE4: .4byte gUnk_03000000 +_0805ECE8: .4byte 0x00000427 + .syntax divided diff --git a/asm/non_matching/townsperson/sub_08061C60.inc b/asm/non_matching/townsperson/Townsperson_Head.inc similarity index 100% rename from asm/non_matching/townsperson/sub_08061C60.inc rename to asm/non_matching/townsperson/Townsperson_Head.inc diff --git a/src/arm_proxy.c b/src/arm_proxy.c index e564ced8..fb6612b9 100644 --- a/src/arm_proxy.c +++ b/src/arm_proxy.c @@ -345,7 +345,7 @@ void ManagerUpdate(Entity* this) { } // regalloc -NONMATCH("asm/non_matching/arm_proxy/sub_08017530.inc", void NPCUpdate(Entity* this)) { +NONMATCH("asm/non_matching/arm_proxy/NPCUpdate.inc", void NPCUpdate(Entity* this)) { if ((this->currentHealth & 0x7f) && !ReadBit(&gUnk_020342F8, this->currentHealth - 1)) DeleteThisEntity(); if ((this->action == 0) && ((this->flags & 1) == 0)) diff --git a/src/code_0805436C.c b/src/code_0805436C.c index 7e1fe6c3..61dfa3e0 100644 --- a/src/code_0805436C.c +++ b/src/code_0805436C.c @@ -2,6 +2,8 @@ #include "player.h" #include "room.h" #include "menu.h" +#include "area.h" +#include "utils.h" typedef struct { u8 filler[0xa8]; @@ -29,6 +31,9 @@ extern u8 gUnk_080FE1C6[]; extern u32 gUnk_02034398; extern void (*const gUnk_080FE2A0[])(); +void ForceEquipItem(u32, u8); +extern void sub_0807CAA0(u32, u32); + u32 IsItemEquipped(u32 itemID) { u32 ret; @@ -41,11 +46,11 @@ u32 IsItemEquipped(u32 itemID) { return ret; } -#if NON_MATCHING // reg-alloc -void PutItemOnSlot(u32 itemID) { +NONMATCH("asm/non_matching/PutItemOnSlot.inc", void PutItemOnSlot(u32 itemID)) { + // reg-alloc u32 itemSlot; if (itemID < 0x47) { - ModifyInventory(0, 1); + sub_0807CAA0(0, 1); } if (itemID - 1 < 0x1f) { itemSlot = 2; @@ -70,12 +75,9 @@ void PutItemOnSlot(u32 itemID) { ForceEquipItem(itemID, itemSlot); } } -#else -NAKED -void PutItemOnSlot(u32 itemID) { - asm(".include \"asm/non_matching/putItemOnSlot.s\""); -} -#endif +END_NONMATCH + +ASM_FUNC("asm/non_matching/ForceEquipItem.inc", void ForceEquipItem(u32 itemID, u8 itemSlot)) u32 SetBottleContents(u32 itemID, u32 bottleIndex) { @@ -146,8 +148,8 @@ u32 GetBottleContaining(u32 arg0) { } } -#if NON_MATCHING // reg-alloc -void sub_08054524(void) { +NONMATCH("asm/non_matching/sub_08054524.inc", void sub_08054524(void)) { + // reg-alloc u32 bVar1; bVar1 = gArea.locationIndex; @@ -160,12 +162,7 @@ void sub_08054524(void) { MemCopy(&gUnk_080015BC + gUnk_080FE1C6[bVar1] * 0x8, &gUnk_02034398, 0x20); } -#else -NAKED -void sub_08054524(void) { - asm(".include \"asm/non_matching/sub_08054524.inc\""); -} -#endif +END_NONMATCH void sub_08054564(void) { gRoomVars.filler[2] = 1; @@ -175,11 +172,12 @@ void sub_08054570(void) { gRoomVars.filler[2] = 0; } -NAKED -u32 sub_0805457C(u32 arg0, u32 arg1) { - asm(".include \"asm/non_matching/code_0805457C.inc\""); -} +ASM_FUNC("asm/non_matching/sub_0805457C.inc", u32 sub_0805457C(u32 arg0, u32 arg1)); +NONMATCH("asm/non_matching/CreateItemDrop.inc", u32 CreateItemDrop(Entity* arg0, u32 itemID, u32 itemParameter)) { + // TODO see below +} +END_NONMATCH /* extern u8 gUnk_080FE1DD[]; diff --git a/src/code_0805EC04.c b/src/code_0805EC04.c index 6c847707..bd38cac5 100644 --- a/src/code_0805EC04.c +++ b/src/code_0805EC04.c @@ -44,50 +44,7 @@ void sub_0805EC60(Entity* this) { } } -NAKED -bool32 sub_0805EC9C(Entity* ent, u32 param_2, u32 param_3, u32 param_4) { - asm_unified("\ - push {r4, r5, r6, r7, lr} \n\ - adds r4, r0, #0 \n\ - adds r5, r1, #0 \n\ - adds r6, r2, #0 \n\ - adds r7, r3, #0 \n\ - ldrb r0, [r4, #0x1b] \n\ - lsls r0, r0, #0x1a \n\ - lsrs r0, r0, #0x1b \n\ - cmp r0, #0 \n\ - bne _0805ECBE \n\ - adds r0, r4, #0 \n\ - bl sub_0805EC04 \n\ - cmp r0, #0 \n\ - bne _0805ECBE \n\ - movs r0, #0 \n\ - b _0805ECE0 \n\ -_0805ECBE: \n\ - ldr r1, _0805ECE4 @ =gUnk_03000000 \n\ - ldr r0, _0805ECE8 @ =0x00000427 \n\ - adds r2, r1, r0 \n\ - movs r0, #1 \n\ - strb r0, [r2] \n\ - ldrb r0, [r4, #0x1b] \n\ - lsls r0, r0, #0x1a \n\ - lsrs r0, r0, #0x1b \n\ - lsls r0, r0, #3 \n\ - movs r2, #0x84 \n\ - lsls r2, r2, #3 \n\ - adds r1, r1, r2 \n\ - adds r0, r0, r1 \n\ - strh r5, [r0] \n\ - strh r6, [r0, #2] \n\ - strh r7, [r0, #4] \n\ - movs r0, #1 \n\ -_0805ECE0: \n\ - pop {r4, r5, r6, r7, pc} \n\ - .align 2, 0 \n\ -_0805ECE4: .4byte gUnk_03000000 \n\ -_0805ECE8: .4byte 0x00000427 \n\ - "); -} +ASM_FUNC("asm/non_matching/sub_0805EC9C.inc", bool32 sub_0805EC9C(Entity* ent, u32 param_2, u32 param_3, u32 param_4)) void sub_0805ECEC(int param_1, u32 param_2, u32 param_3, u32 param_4) { u16* temp; diff --git a/src/code_08077B98.c b/src/code_08077B98.c index 856dc44b..86eb16eb 100644 --- a/src/code_08077B98.c +++ b/src/code_08077B98.c @@ -121,7 +121,4 @@ Entity* sub_08077CF8(u32 subtype, u32 form, u32 parameter, u32 unk) { return ent; } -NAKED -void sub_08077D38(ItemBehavior* beh, u32 arg1) { - asm(".include \"asm/non_matching/sub_08077D38.inc\""); -} +ASM_FUNC("asm/non_matching/sub_08077D38.inc", void sub_08077D38(ItemBehavior* beh, u32 arg1)) diff --git a/src/code_08077DF4.c b/src/code_08077DF4.c index de25d3b3..f3592e83 100644 --- a/src/code_08077DF4.c +++ b/src/code_08077DF4.c @@ -83,10 +83,7 @@ void sub_08077F10(ItemBehavior* arg0) { sub_08077F24(arg0, (u16)gPlayerState.field_0x90.HALF.HI); } -NAKED -void sub_08077F24(ItemBehavior* beh, u32 arg1) { - asm(".include \"asm/non_matching/sub_08077F24.inc\""); -} +ASM_FUNC("asm/non_matching/sub_08077F24.inc", void sub_08077F24(ItemBehavior* beh, u32 arg1)) void sub_08077F50(ItemBehavior* beh, u32 arg1) { sub_08079184(); diff --git a/src/code_0807CC3C.c b/src/code_0807CC3C.c index 4df3598d..25458be5 100644 --- a/src/code_0807CC3C.c +++ b/src/code_0807CC3C.c @@ -6,14 +6,8 @@ #include "save.h" // these three functions use gRoomControls, maybe once that is understood better, these can be decompiled easier -NONMATCH("asm/non_matching/code_0807CC3C/sub_0807D280.inc", void sub_0807D280(u32 unk_1, u32 unk_2)) { -} -END_NONMATCH +ASM_FUNC("asm/non_matching/code_0807CC3C/sub_0807D280.inc", void sub_0807D280(u32 unk_1, u32 unk_2)) -NONMATCH("asm/non_matching/code_0807CC3C/sub_0807D46C.inc", void sub_0807D46C(u32 unk_1, u32 unk_2)) { -} -END_NONMATCH +ASM_FUNC("asm/non_matching/code_0807CC3C/sub_0807D46C.inc", void sub_0807D46C(u32 unk_1, u32 unk_2)) -NONMATCH("asm/non_matching/code_0807CC3C/sub_0807D6D8.inc", void sub_0807D6D8(u32 unk_1, u32 unk_2)) { -} -END_NONMATCH +ASM_FUNC("asm/non_matching/code_0807CC3C/sub_0807D6D8.inc", void sub_0807D6D8(u32 unk_1, u32 unk_2)) diff --git a/src/enemy/bombPeahat.c b/src/enemy/bombPeahat.c index c661e0aa..fa170060 100644 --- a/src/enemy/bombPeahat.c +++ b/src/enemy/bombPeahat.c @@ -444,8 +444,7 @@ void sub_0802AF9C(Entity* this) { } } -#if NON_MATCHING -void sub_0802AFC8(Entity* this) { +NONMATCH("asm/non_matching/bombPeahat/sub_0802AFC8.inc", void sub_0802AFC8(Entity* this)) { u32 flag = 8; if (this->field_0xf < 0x29) { u32 tmp; @@ -470,12 +469,7 @@ void sub_0802AFC8(Entity* this) { this->palette.b.b0 = this->palette.b.b4; } } -#else -NAKED -void sub_0802AFC8(Entity* this) { - asm(".include \"asm/non_matching/bombPeahat/sub_0802AFC8.inc\""); -} -#endif +END_NONMATCH void sub_0802B048(Entity* this) { Entity* ent; diff --git a/src/enemy/businessScrub.c b/src/enemy/businessScrub.c index a6fa26a4..359c8861 100644 --- a/src/enemy/businessScrub.c +++ b/src/enemy/businessScrub.c @@ -523,8 +523,7 @@ bool32 sub_080291DC(Entity* this) { return FALSE; } -#if NON_MATCHING -void sub_0802922C(Entity* this) { +NONMATCH("asm/non_matching/businessScrub/sub_0802925C.inc", void sub_0802922C(Entity* this)) { const struct SalesOffering* offer = (const struct SalesOffering*)this->field_0x7c.WORD; this->action = 6; @@ -538,12 +537,7 @@ void sub_0802922C(Entity* this) { sub_080290E0(this, 3); } -#else -NAKED -void sub_0802922C(Entity* this) { - asm(".include \"asm/non_matching/businessScrub/sub_0802925C.inc\""); -} -#endif +END_NONMATCH void sub_0802925C(Entity* this) { sub_08078784(this, sub_0801E99C(this)); diff --git a/src/enemy/darkNut.c b/src/enemy/darkNut.c index 96585a58..6f9d08e7 100644 --- a/src/enemy/darkNut.c +++ b/src/enemy/darkNut.c @@ -391,10 +391,7 @@ void sub_0802124C(Entity* this) { } } -NAKED -u32 sub_08021274(u32 a, u32 b) { - asm(".include \"asm/non_matching/darkNut/sub_08021274.inc\""); -} +ASM_FUNC("asm/non_matching/darkNut/sub_08021274.inc", u32 sub_08021274(u32 a, u32 b)) void sub_080212B0(Entity* this) { u8 tmp; diff --git a/src/enemy/fallingBoulder.c b/src/enemy/fallingBoulder.c index 29076b1c..74135810 100644 --- a/src/enemy/fallingBoulder.c +++ b/src/enemy/fallingBoulder.c @@ -11,6 +11,8 @@ extern const u16 gUnk_080CD568[]; extern const u8 gUnk_080CD580[]; extern const s16 gUnk_080CD58C[]; +extern void sub_080AEFB4(Entity*); + void FallingBoulder(Entity* this) { EnemyFunctionHandler(this, gUnk_080CD540); } @@ -58,8 +60,7 @@ void sub_0802C318(Entity* this) { } } -#if NON_MATCHING -void sub_0802C334(Entity* this) { +NONMATCH("asm/non_matching/fallingBoulder/sub_0802C334.inc", void sub_0802C334(Entity* this)) { if ((u16)this->field_0x7c.HALF.LO == 0) { u32 tmp = gRoomControls.roomOriginY; if (&gPlayerEntity == NULL) @@ -99,7 +100,7 @@ void sub_0802C334(Entity* this) { diff += 0x18; } sub_0802C62C(this); - this->field_0x7a.HWORD = Random() & 0xff | 0x100; + this->field_0x7a.HWORD = (Random() & 0xff) | 0x100; return; } break; @@ -124,12 +125,7 @@ void sub_0802C334(Entity* this) { this->spritePriority.b0 = 1; UpdateSpriteForCollisionLayer(this); } -#else -NAKED -void sub_0802C334(Entity* this) { - asm(".include \"asm/non_matching/fallingBoulder/sub_0802C334.inc\""); -} -#endif +END_NONMATCH void nullsub_148(Entity* this) { /* ... */ diff --git a/src/enemy/likeLike.c b/src/enemy/likeLike.c index f04073d3..400233c6 100644 --- a/src/enemy/likeLike.c +++ b/src/enemy/likeLike.c @@ -204,8 +204,7 @@ void sub_0802805C(Entity* this) { } } -#if NON_MATCHING -void sub_0802810C(Entity* this) { +NONMATCH("asm/non_matching/likeLike/sub_0802810C.inc", void sub_0802810C(Entity* this)) { gPlayerState.jumpStatus = 0x41; gPlayerState.field_0xa = 0; gPlayerState.flags.all &= 0xffffffef; @@ -224,12 +223,7 @@ void sub_0802810C(Entity* this) { this->iframes = -18; } } -#else -NAKED -void sub_0802810C(Entity* this) { - asm(".include \"asm/non_matching/likeLike/sub_0802810C.inc\""); -} -#endif +END_NONMATCH void sub_080281A0(Entity* this) { this->field_0xf = 0x19; diff --git a/src/enemy/madderpillar.c b/src/enemy/madderpillar.c index 00cc3b3a..7d1fa2ee 100644 --- a/src/enemy/madderpillar.c +++ b/src/enemy/madderpillar.c @@ -318,10 +318,7 @@ void sub_08029DE4(Entity* this) { } } -NAKED -void sub_08029E0C(Entity* this) { - asm(".include \"asm/non_matching/madderpillar/sub_08029E0C.inc\""); -} +ASM_FUNC("asm/non_matching/madderpillar/sub_08029E0C.inc", void sub_08029E0C(Entity* this)) void sub_08029EEC(Entity* this) { u32 uVar1 = (this->direction >> 3) + this->field_0x74.HALF.HI; diff --git a/src/enemy/moldorm.c b/src/enemy/moldorm.c index 8076e1ca..ed08478d 100644 --- a/src/enemy/moldorm.c +++ b/src/enemy/moldorm.c @@ -141,15 +141,9 @@ void sub_08022DE8(Entity* this) { } } -NAKED -void sub_08022E40(Entity* this) { - asm(".include \"asm/non_matching/moldorm/sub_08022E40.inc\""); -} +ASM_FUNC("asm/non_matching/moldorm/sub_08022E40.inc", void sub_08022E40(Entity* this)) -NAKED -void sub_08022EAC(Entity* this) { - asm(".include \"asm/non_matching/moldorm/sub_08022EAC.inc\""); -} +ASM_FUNC("asm/non_matching/moldorm/sub_08022EAC.inc", void sub_08022EAC(Entity* this)) void sub_08022F14(Entity* this) { if (sub_08049FA0(this) == 0) { diff --git a/src/enemy/moldworm.c b/src/enemy/moldworm.c index 403ae1b5..cb27ab6d 100644 --- a/src/enemy/moldworm.c +++ b/src/enemy/moldworm.c @@ -27,8 +27,7 @@ extern void (*const gUnk_080CBC98[])(Entity*); extern void (*const gUnk_080CBCA8[])(Entity*); extern const s8 gUnk_080CBCB8[]; -#if NON_MATCHING -void Moldworm(Entity* this) { +NONMATCH("asm/non_matching/moldworm/Moldworm.inc", void Moldworm(Entity* this)) { u16 prevX = this->x.HALF.HI; u16 prevY = this->y.HALF.HI; @@ -56,12 +55,7 @@ void Moldworm(Entity* this) { (((this->x.HALF.HI - prevX + 8) & 0xf) << 4) | ((this->y.HALF.HI - prevY + 8U) & 0xf); } } -#else -NAKED -void Moldworm(Entity* this) { - asm(".include \"asm/non_matching/moldworm/moldworm.inc\""); -} -#endif +END_NONMATCH void sub_080230CC(Entity* this) { gUnk_080CBC50[this->action](this); @@ -472,10 +466,7 @@ void sub_08023990(Entity* this, u32 param_2, u32 param_3) { } /* TODO: fix struct */ -NAKED -void sub_080239F0(Entity* this) { - asm(".include \"asm/non_matching/moldworm/sub_080239F0.inc\""); -} +ASM_FUNC("asm/non_matching/moldworm/sub_080239F0.inc", void sub_080239F0(Entity* this)) bool32 sub_08023A38(u32 unk) { if (unk == 0x1a || unk == 0x29) { @@ -522,10 +513,7 @@ void sub_08023AB0(Entity* this) { } } -NAKED -bool32 sub_08023B38(Entity* this) { - asm(".include \"asm/non_matching/moldworm/sub_08023B38.inc\""); -} +ASM_FUNC("asm/non_matching/moldworm/sub_08023B38.inc", bool32 sub_08023B38(Entity* this)) // clang-format off void (*const gUnk_080CBC38[])(Entity*) = { diff --git a/src/enemy/pesto.c b/src/enemy/pesto.c index 3eeda562..1277f0c6 100644 --- a/src/enemy/pesto.c +++ b/src/enemy/pesto.c @@ -4,6 +4,7 @@ #include "createObject.h" #include "game.h" #include "functions.h" +#include "save.h" extern u32 sub_080002E0(u16, u32); extern void sub_0800449C(Entity*, u32); @@ -559,20 +560,14 @@ void sub_080249DC(Entity* this) { InitializeAnimation(this, this->animationState); } -#if NON_MATCHING -void sub_080249F4(Entity* this) { +NONMATCH("asm/non_matching/pesto/sub_080249F4.inc", void sub_080249F4(Entity* this)) { u8 direction = ((this->direction + 2) & 0x1c) >> 2; if (direction != this->animationState) { this->animationState = direction; InitializeAnimation(this, this->animationState); } } -#else -NAKED -void sub_080249F4(Entity* this) { - asm(".include \"asm/non_matching/pesto/sub_080249F4.inc\""); -} -#endif +END_NONMATCH void sub_08024A14(Entity* this, u32 param_2, u32 param_3) { u8 unk = FALSE; @@ -703,10 +698,7 @@ bool32 sub_08024B38(Entity* this) { return iVar4; } -NAKED -bool32 sub_08024C48(Entity* this, bool32 unk) { - asm(".include \"asm/non_matching/pesto/sub_08024C48.inc\""); -} +ASM_FUNC("asm/non_matching/pesto/sub_08024C48.inc", bool32 sub_08024C48(Entity* this, bool32 unk)) void sub_08024C7C(Entity* this) { this->action = 1; @@ -794,8 +786,7 @@ u32 sub_08024E34(void) { return gUnk_080CBF20[idx]; } -#if NON_MATCHING -void sub_08024E4C(Entity* this) { +NONMATCH("asm/non_matching/pesto/sub_08024E4C.inc", void sub_08024E4C(Entity* this)) { if (this->field_0x82.HALF.HI == 3) { this->field_0xf++; this->field_0xf &= 0xff; @@ -829,7 +820,7 @@ void sub_08024E4C(Entity* this) { player->animationState = 4; player->spritePriority.b1 = 0; if (this->field_0xf == 0) { - (this->field_0x86.HALF.HI++; + this->field_0x86.HALF.HI++; player->iframes = 8; ModHealth(-2); sub_0800449C(player, 0x7a); @@ -837,12 +828,7 @@ void sub_08024E4C(Entity* this) { } } } -#else -NAKED -void sub_08024E4C(Entity* this) { - asm(".include \"asm/non_matching/pesto/sub_08024E4C.inc\""); -} -#endif +END_NONMATCH void sub_08024F50(Entity* this) { gPlayerState.field_0xa = 0; diff --git a/src/enemy/puffstool.c b/src/enemy/puffstool.c index adc59447..0bce6e2a 100644 --- a/src/enemy/puffstool.c +++ b/src/enemy/puffstool.c @@ -468,8 +468,7 @@ bool32 sub_080258C4(Entity* this) { } } -#if NON_MATCHING -bool32 sub_0802594C(Entity* this, u32 param_2) { +NONMATCH("asm/non_matching/puffstool/sub_0802594C.inc", bool32 sub_0802594C(Entity* this, u32 param_2)) { const s8* unk = gUnk_080CC090[param_2]; u32 uVar1 = this->collisionLayer; RoomControls* ctrl = &gRoomControls; @@ -492,12 +491,7 @@ bool32 sub_0802594C(Entity* this, u32 param_2) { return 0; } -#else -NAKED -bool32 sub_0802594C(Entity* this, u32 param_2) { - asm(".include \"asm/non_matching/puffstool/sub_0802594C.inc\""); -} -#endif +END_NONMATCH void sub_08025A54(Entity* this) { u32 layer = this->collisionLayer; diff --git a/src/enemy/spearMoblin.c b/src/enemy/spearMoblin.c index 033c1ea7..b12186e0 100644 --- a/src/enemy/spearMoblin.c +++ b/src/enemy/spearMoblin.c @@ -240,14 +240,13 @@ void sub_08028528(Entity* this) { } } -#if NON_MATCHING -void sub_08028604(Entity* this) { +NONMATCH("asm/non_matching/spearMoblin/sub_08028604.inc", void sub_08028604(Entity* this)) { this->field_0xf = 0; if (this->field_0x82.HALF.LO == 1) { this->actionDelay = gUnk_080CC7BC[Random() & 3]; this->speed = 0x80; if (sub_08049FA0(this) != 0) { - this->direction = gUnk_080CC7D0[Random() & 7] + 0x18 + this->direction & 0x18; + this->direction = gUnk_080CC7D0[Random() & 7] + 0x18 + (this->direction & 0x18); } else { u32 iVar3 = sub_08049EE4(this); u32 uVar1; @@ -258,7 +257,7 @@ void sub_08028604(Entity* this) { this->actionDelay = this->actionDelay + 0x10; this->field_0x82.HALF.HI--; } - this->direction = iVar3 + uVar1 + 4U & 0x18; + this->direction = iVar3 + uVar1 + (4U & 0x18); } } else { this->actionDelay = 0xc; @@ -270,12 +269,7 @@ void sub_08028604(Entity* this) { sub_080287E0(this); } } -#else -NAKED -void sub_08028604(Entity* this) { - asm(".include \"asm/non_matching/spearMoblin/sub_08028604.inc\""); -} -#endif +END_NONMATCH bool32 sub_080286CC(Entity* this) { if (this->field_0x80.HALF.HI == 0) { diff --git a/src/enemy/wallMaster2.c b/src/enemy/wallMaster2.c index f6d32479..7c488c30 100644 --- a/src/enemy/wallMaster2.c +++ b/src/enemy/wallMaster2.c @@ -160,10 +160,7 @@ void sub_0802CF64(Entity* this) { sub_0802CF8C(this); } -NAKED -void sub_0802CF8C(Entity* this) { - asm(".include \"asm/non_matching/wallMaster2/sub_0802CF8C.inc\""); -} +ASM_FUNC("asm/non_matching/wallMaster2/sub_0802CF8C.inc", void sub_0802CF8C(Entity* this)) void sub_0802CFD8(Entity* this) { u32 unk = gUnk_080CD740[(this->field_0x7a.HALF.LO++ >> 3) & 7]; diff --git a/src/ezloNag.c b/src/ezloNag.c index 5d3ec162..aa45634e 100644 --- a/src/ezloNag.c +++ b/src/ezloNag.c @@ -34,10 +34,10 @@ void EzloNag(Element* arg0) { gUnk_080C904C[arg0->unk4](arg0); } -#ifdef NON_MATCHING // REG SWAP extern u32 gUnk_080C9094; +extern void sub_0801CAB8(Element*, u32*); -void sub_0801CED8(Element* arg0) { +NONMATCH("asm/non_matching/sub_0801CED8.inc", void sub_0801CED8(Element* arg0)) { if (gUnk_0200AF00.ezloNagFuncIndex == 1) { gUnk_0200AF00.ezloNagFuncIndex = 2; arg0->unkC = 0x10; @@ -49,43 +49,7 @@ void sub_0801CED8(Element* arg0) { sub_0801CAB8(arg0, &gUnk_080C9094); } } -#else -NAKED -void sub_0801CED8(Element* arg0) { - asm_unified("\ - push {r4, lr}\n\ - adds r3, r0, #0\n\ - ldr r0, _0801CF10 @ =gUnk_0200AF00\n\ - adds r1, r0, #0\n\ - adds r1, #0x24\n\ - ldrb r4, [r1]\n\ - cmp r4, #1\n\ - bne _0801CF0E\n\ - movs r2, #2\n\ - movs r0, #2\n\ - strb r0, [r1]\n\ - movs r1, #0\n\ - movs r0, #0x10\n\ - strh r0, [r3, #0xc]\n\ - movs r0, #0x90\n\ - strh r0, [r3, #0xe]\n\ - strb r1, [r3, #6]\n\ - movs r0, #7\n\ - strb r0, [r3, #1]\n\ - strb r4, [r3, #4]\n\ - ldrb r0, [r3]\n\ - orrs r0, r2\n\ - strb r0, [r3]\n\ - ldr r1, _0801CF14 @ =gUnk_080C9094\n\ - adds r0, r3, #0\n\ - bl sub_0801CAB8\n\ - _0801CF0E:\n\ - pop {r4, pc}\n\ - .align 2, 0\n\ - _0801CF10: .4byte gUnk_0200AF00\n\ - _0801CF14: .4byte gUnk_080C9094"); -} -#endif +END_NONMATCH void sub_0801CF18(Element* arg0) { u32 temp; diff --git a/src/gba/m4a.c b/src/gba/m4a.c index 2049ba5c..bcd552d9 100644 --- a/src/gba/m4a.c +++ b/src/gba/m4a.c @@ -1066,7 +1066,7 @@ void CgbModVol(CgbChannel* chan) { // Force chan->rightVolume and chan->leftVolume to be read from memory again, // even though there is no reason to do so. // The command line option "-fno-gcse" achieves the same result as this. -#ifndef NONMATCHING +#ifndef NON_MATCHING asm("" : : : "memory"); #endif diff --git a/src/manager/manager15.c b/src/manager/manager15.c index 709bef05..313fa487 100644 --- a/src/manager/manager15.c +++ b/src/manager/manager15.c @@ -427,8 +427,7 @@ void sub_0805A94C(Manager15* this) { gScreen.controls.window1VerticalDimensions = (tmp1 << 8 | tmp2); } -#ifdef NON_MATCHING -void sub_0805A9CC(Manager15* this) { +NONMATCH("asm/non_matching/manager15/sub_0805A9CC.inc", void sub_0805A9CC(Manager15* this)) { int tmp1, tmp2; void* tmp3; gScreen.affine.bg3xOffset = gRoomControls.roomScrollX - this->unk_24 + this->unk_34; @@ -448,19 +447,14 @@ void sub_0805A9CC(Manager15* this) { if (tmp1 < 0) tmp1 += 0x3F; tmp3 = (&gBG3Buffer[(tmp1 >> 6 << 9)]); - gScreen.affine.unk5 = (u32)tmp3; + gScreen.affine.bg2Tilemap = (u32*)tmp3; // TODO .unk5 gScreen.controls.window1VerticalDimensions = 0xa0; if (this->unk_28 == tmp3) return; this->unk_28 = tmp3; - gScreen.affine.unk4 = 1; + gScreen.affine.bg2Updated = 1; // TODO .unk4 } -#else -NAKED -void sub_0805A9CC(Manager15* this) { - asm(".include \"asm/non_matching/manager15/sub_0805A9CC.inc\""); -} -#endif +END_NONMATCH extern struct { u8 unk_00[0x20]; } gUnk_085A97A0[]; extern u16 gUnk_081085B8[]; diff --git a/src/manager/manager4.c b/src/manager/manager4.c index 3165042c..7066c507 100644 --- a/src/manager/manager4.c +++ b/src/manager/manager4.c @@ -62,11 +62,10 @@ void sub_08057920(Manager* this) { void sub_08057A18(Manager*, DiggingCaveEntrance*); -#ifdef NON_MATCHING -u32 sub_0805795C(Manager* this, DiggingCaveEntrance* entr) { +NONMATCH("asm/non_matching/manager4/sub_0805795C.inc", u32 sub_0805795C(Manager* this, DiggingCaveEntrance* entr)) { u16 offsetX, offsetY, offsetX2, offsetY2; u32 tmp; - if (gUnk_03004030.address_width) { + if (gUnk_03004030.unk_00) { // TODO .address_width (?) offsetX = gPlayerEntity.x.HALF.HI - gRoomControls.roomOriginX; offsetY = gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY; offsetX2 = (entr->unk_00 & 0x3F) * 16 + 8; @@ -93,12 +92,7 @@ u32 sub_0805795C(Manager* this, DiggingCaveEntrance* entr) { sub_08057A18(this, entr); return 1; } -#else -NAKED -u32 sub_0805795C(Manager* this, DiggingCaveEntrance* entr) { - asm(".include \"asm/non_matching/manager4/sub_0805795C.inc\""); -} -#endif +END_NONMATCH extern void sub_08080930(); diff --git a/src/manager/managerC.c b/src/manager/managerC.c index 83b35412..f1965a35 100644 --- a/src/manager/managerC.c +++ b/src/manager/managerC.c @@ -8,6 +8,8 @@ #include "coord.h" #include "functions.h" #include "save.h" +#include "area.h" +#include "utils.h" typedef struct { Manager manager; @@ -275,8 +277,7 @@ void sub_08058CFC() { } } -#ifdef NON_MATCHING -void sub_08058D34() { +NONMATCH("asm/non_matching/managerC/sub_08058D34.inc", void sub_08058D34()) { LoadPaletteGroup(0x28); MemCopy(gUnk_02017700, gUnk_02017700 + 0x240, 0x20); gUsedPalettes |= 0x200000; @@ -285,7 +286,7 @@ void sub_08058D34() { gScreen.affine.bg2Control = 0xBC82; gScreen.bg.bg1xOffset = 0x5E86; gScreen.bg.bg1yOffset = 0; - gScreen.bg.bg2xOffset = 0; + gScreen.bg.bg1Tilemap = 0; gScreen.controls.layerFXControl = 0x3456; gScreen.controls.alphaBlend = 0x909; gArea.musicIndex = gArea.pMusicIndex; @@ -294,9 +295,4 @@ void sub_08058D34() { LoadGfxGroup(0x4A); } } -#else -NAKED -void sub_08058D34() { - asm(".include \"asm/non_matching/managerC/sub_08058D34.inc\""); -} -#endif +END_NONMATCH diff --git a/src/npc/syrup.c b/src/npc/syrup.c index 8a60ddb7..5e71f5b4 100644 --- a/src/npc/syrup.c +++ b/src/npc/syrup.c @@ -3,6 +3,8 @@ #include "npc.h" #include "script.h" #include "functions.h" +#include "object.h" +#include "random.h" extern void (*gUnk_081121D4[])(Entity*); @@ -41,8 +43,9 @@ void sub_0806A234(Entity* this) { } } -#ifdef NON_MATCHING -void sub_0806A26C(Entity* this) { +extern u8 gUnk_081121DC[]; + +NONMATCH("asm/non_matching/syrup/sub_0806A26C.inc", void sub_0806A26C(Entity* this)) { u8 unk; u32 uVar2; Entity* pEVar1; @@ -52,13 +55,8 @@ void sub_0806A26C(Entity* this) { if (uVar2 = Random(), uVar2) { unk = -unk; // wtf?! } - pEVar1->spriteOffsetX = gUnk_081121D4[uVar2 & 7]; - pEVar1->spriteOffsetY = gUnk_081121D4[(uVar2 / 256) & 7] - 8; + pEVar1->spriteOffsetX = (u8)gUnk_081121DC[uVar2 & 7]; + pEVar1->spriteOffsetY = (u8)gUnk_081121DC[(uVar2 / 256) & 7] - 8; } } -#else -NAKED -void sub_0806A26C(Entity* this) { - asm(".include \"asm/non_matching/syrup/sub_0806A26C.inc\""); -} -#endif +END_NONMATCH diff --git a/src/npc/townsperson.c b/src/npc/townsperson.c index fc99bac6..de089fbe 100644 --- a/src/npc/townsperson.c +++ b/src/npc/townsperson.c @@ -73,19 +73,13 @@ void sub_08061C00(Entity* this) { } } -#if NON_MATCHING -void Townsperson_Head(Entity* this) { +NONMATCH("asm/non_matching/townsperson/Townsperson_Head.inc", void Townsperson_Head(Entity* this)) { SetExtraSpriteFrame(this, 0, *(gUnk_0810B78C + (this->animIndex & 3)) + gUnk_0810B680[this->type].frame1); SetExtraSpriteFrame(this, 1, this->frameIndex + gUnk_0810B680[this->type].frame2); SetSpriteSubEntryOffsetData1(this, 1, 0); sub_0807000C(this); } -#else -NAKED -void Townsperson_Head(Entity* this) { - asm(".include \"asm/non_matching/townsperson/sub_08061C60.inc\""); -} -#endif +END_NONMATCH void sub_08061CB4(Entity* this, u32 arg1) { if (this->animIndex != arg1) { diff --git a/src/object/button.c b/src/object/button.c index 0530d52f..5111575e 100644 --- a/src/object/button.c +++ b/src/object/button.c @@ -197,11 +197,12 @@ u32 sub_08081F00(u32*, u32*); extern u16 gMapDataTopSpecial[0x2000]; -#ifdef NON_MATCHING -void sub_08081E6C(Entity* this) { +extern u16* GetLayerByIndex(u32); +extern u16 gUnk_02019EE0[]; +NONMATCH("asm/non_matching/button/sub_08081E6C.inc", void sub_08081E6C(Entity* this)) { u32 r4; u16 *tmp, *r1; - u8* tmp2; + u16* tmp2; u32 r6 = this->field_0x74.HWORD; u32 r5 = this->collisionLayer; u32 tile = GetTileType(r6, r5); @@ -212,19 +213,14 @@ void sub_08081E6C(Entity* this) { tmp = r1 + 0x3802; r1 += 0x3002 + r4; tmp = tmp + (*r1 << 2); - tmp2 = (r5 == 2 ? gMapDataTopSpecial : (u8*)&gUnk_02019EE0); + tmp2 = (r5 == 2 ? gMapDataTopSpecial : gUnk_02019EE0); tmp2 += (((0x3f & r6) << 1) + ((0xfc0 & r6) << 2)) << 1; if (sub_08081F00((u32*)tmp2, (u32*)tmp)) return; SetTileType(r4, r6, r5); SetTile(tile, r6, r5); } -#else -NAKED -void sub_08081E6C(Entity* this) { - asm(".include \"asm/non_matching/button/sub_08081E6C.s\""); -} -#endif +END_NONMATCH u32 sub_08081F00(u32* unk1, u32* unk2) { if (*unk1 != *unk2) diff --git a/src/player.c b/src/player.c index 364e7821..4e634712 100644 --- a/src/player.c +++ b/src/player.c @@ -130,7 +130,7 @@ void PlayerInit(Entity* this) { } // PlayerState.flags need to be 100% before this one can reasonably be done -ASM_FUNC("asm/non_matching/player/sub_08070794.s", void PlayerNormal(Entity* this)) +ASM_FUNC("asm/non_matching/player/PlayerNormal.inc", void PlayerNormal(Entity* this)) void sub_08070BEC(Entity* this, u32 r0) { if (r0 & 1) @@ -219,7 +219,7 @@ void sub_08070D38(Entity* this) { } // minor regalloc -NONMATCH("asm/non_matching/player/sub_08070DC4.s", void sub_08070DC4(Entity* this)) { +NONMATCH("asm/non_matching/player/sub_08070DC4.inc", void sub_08070DC4(Entity* this)) { UpdateAnimationSingleFrame(this); sub_080085B0(this); sub_08079E08(); @@ -673,7 +673,7 @@ void PortalShrinkInit(Entity* this) { } // horrible -ASM_FUNC("asm/non_matching/player/sub_08071634.s", void PortalShrinkUpdate(Entity* this)) +ASM_FUNC("asm/non_matching/player/PortalShrinkUpdate.inc", void PortalShrinkUpdate(Entity* this)) void PortalEnterUpdate(Entity* this) { if (this->actionDelay == 0) { @@ -1712,7 +1712,7 @@ void sub_08072CFC(Entity* this) { extern const u16* gUnk_0811BBD4[]; -NONMATCH("asm/non_matching/player/sub_08072D54.s", void sub_08072D54(Entity* this)) { +NONMATCH("asm/non_matching/player/sub_08072D54.inc", void sub_08072D54(Entity* this)) { u32 bVar1; u32 uVar2; u32 iVar3; diff --git a/src/room.c b/src/room.c index 682a6935..c2b1f07b 100644 --- a/src/room.c +++ b/src/room.c @@ -981,10 +981,7 @@ void sub_0804BF38(u32 arg0, struct_0804BF38* arg1) SoundReq(gUnk_080D8E50[iVar2].sfx); } #else -NAKED -void sub_0804BF38(Entity* this, ScriptExecutionContext* context) { - asm(".include \"asm/non_matching/sub_0804BF38.inc\""); -} +ASM_FUNC("asm/non_matching/sub_0804BF38.inc", void sub_0804BF38(Entity* this, ScriptExecutionContext* context)) #endif u32 sub_0804C00C() { @@ -1041,20 +1038,11 @@ void sub_0804C108(void) { sub_0804C128(gArea.filler[7] |= 1); } -NAKED -void sub_0804C128(u32 arg0) { - asm(".include \"asm/non_matching/sub_0804C128.inc\""); -} +ASM_FUNC("asm/non_matching/sub_0804C128.inc", void sub_0804C128(u32 arg0)) -NAKED -void sub_0804C258(void) { - asm(".include \"asm/non_matching/sub_0804C258.inc\""); -} +ASM_FUNC("asm/non_matching/sub_0804C258.inc", void sub_0804C258(void)) -NAKED -void sub_0804C290(void) { - asm(".include \"asm/non_matching/sub_0804C290.inc\""); -} +ASM_FUNC("asm/non_matching/sub_0804C290.inc", void sub_0804C290(void)) u32 sub_0804C2BC() { return 1; @@ -4203,10 +4191,7 @@ u32 sub_0804DDF8() { void nullsub_374() { } -NAKED -u32 sub_0804DE00(void) { - asm(".include \"asm/non_matching/sub_0804DE00.inc\""); -} +ASM_FUNC("asm/non_matching/sub_0804DE00.inc", u32 sub_0804DE00(void)) extern EntityData gUnk_080EEB6C; extern EntityData gUnk_080EEB8C; @@ -4313,10 +4298,7 @@ void sub_0804E130(void) { } } -NAKED -void sub_0804E150(void) { - asm(".include \"asm/non_matching/sub_0804E150.inc\""); -} +ASM_FUNC("asm/non_matching/sub_0804E150.inc", void sub_0804E150(void)) u32 sub_0804E1F4() { return 1; diff --git a/src/textbox.c b/src/textbox.c index 54ec12f8..abbdc744 100644 --- a/src/textbox.c +++ b/src/textbox.c @@ -682,10 +682,8 @@ void CreateWindow(void) { sub_0801C494(); } -NONMATCH("asm/non_matching/textbox/DispMessageFrame.inc", - void DispMessageFrame(u16* buffer, u32 width_, u32 height_, u32 flags_)) { -} -END_NONMATCH +ASM_FUNC("asm/non_matching/textbox/DispMessageFrame.inc", + void DispMessageFrame(u16* buffer, u32 width_, u32 height_, u32 flags_)) extern u16 gUnk_02034CB2[]; extern u16 gUnk_0202281E[]; From 7069bd4aab8ae6a657b556dae5b5fe336935a8c3 Mon Sep 17 00:00:00 2001 From: octorock <79596758+octorock@users.noreply.github.com> Date: Sun, 16 May 2021 00:24:20 +0200 Subject: [PATCH 03/74] Always don't count ASM_FUNC functions --- progress.py | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/progress.py b/progress.py index f0288333..a0834d16 100644 --- a/progress.py +++ b/progress.py @@ -1,17 +1,18 @@ import argparse import git import os - +import re def collect_non_matching_funcs(): result = [] - for r, d, f in os.walk('asm/non_matching'): - for file in f: - if file.endswith('.inc'): - # Assume that the filename is the function name - result.append(file[0:-4]) - else: - print(r,file) + for root, dirs, files in os.walk('src'): + for file in files: + if file.endswith('.c'): + with open(os.path.join(root, file), 'r') as f: + data = f.read() + # Find all NONMATCH and ASM_FUNC macros + for match in re.findall(r'(NONMATCH|ASM_FUNC)\(".*",\W*\w*\W*(\w*).*\)', data): + result.append(match) return result @@ -85,8 +86,15 @@ def main(): matching = args.matching non_matching_funcs = [] + funcs = collect_non_matching_funcs() if matching: - non_matching_funcs = collect_non_matching_funcs() + # Remove all non matching funcs from count + non_matching_funcs = [x[1] for x in funcs] + else: + # Only remove ASM_FUNC functions from count + for func in funcs: + if func[0] == 'ASM_FUNC': + non_matching_funcs.append(func[1]) (src, asm, src_data, data) = parse_map(non_matching_funcs) From 30232481d99f9dbd97a7e676c6558bfc677f2e05 Mon Sep 17 00:00:00 2001 From: octorock <79596758+octorock@users.noreply.github.com> Date: Sat, 8 May 2021 00:25:17 +0200 Subject: [PATCH 04/74] Decompile din, farore and nayru --- asm/din.s | 139 ----------------------------------------------- asm/farore.s | 139 ----------------------------------------------- asm/nayru.s | 139 ----------------------------------------------- include/save.h | 3 +- linker.ld | 3 +- src/npc/din.c | 53 ++++++++++++++++++ src/npc/farore.c | 53 ++++++++++++++++++ src/npc/nayru.c | 53 ++++++++++++++++++ 8 files changed, 163 insertions(+), 419 deletions(-) delete mode 100644 asm/din.s delete mode 100644 asm/farore.s delete mode 100644 asm/nayru.s create mode 100644 src/npc/din.c create mode 100644 src/npc/farore.c create mode 100644 src/npc/nayru.c diff --git a/asm/din.s b/asm/din.s deleted file mode 100644 index 7a2fc2ad..00000000 --- a/asm/din.s +++ /dev/null @@ -1,139 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Din -Din: @ 0x08064790 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _080647C2 - cmp r0, #1 - bgt _080647A4 - cmp r0, #0 - beq _080647AA - b _08064824 -_080647A4: - cmp r0, #2 - beq _0806480A - b _08064824 -_080647AA: - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0807DD50 - b _08064824 -_080647C2: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _08064800 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - adds r0, r4, #0 - bl sub_0806F118 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] - adds r0, #0x10 - strb r1, [r0] - ldr r1, _080647FC @ =gPlayerEntity - adds r0, r4, #0 - bl GetFacingDirection - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl InitAnimationForceUpdate - b _08064824 - .align 2, 0 -_080647FC: .4byte gPlayerEntity -_08064800: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _08064824 -_0806480A: - adds r0, r4, #0 - bl UpdateFuseInteraction - cmp r0, #0 - beq _08064824 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x68 - ldrb r1, [r0] - adds r0, r4, #0 - bl InitAnimationForceUpdate -_08064824: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08064828 -sub_08064828: @ 0x08064828 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r5, r0, #0 - ldr r6, _08064858 @ =gSave - adds r0, r4, #0 - bl sub_08002632 - ldr r2, _0806485C @ =0x00000141 - adds r1, r6, r2 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _0806484E - ldrb r0, [r6, #8] - cmp r0, #6 - bhi _0806484E - movs r5, #0 -_0806484E: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08078784 - pop {r4, r5, r6, pc} - .align 2, 0 -_08064858: .4byte gSave -_0806485C: .4byte 0x00000141 - - thumb_func_start Din_Fusion -Din_Fusion: @ 0x08064860 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _08064886 - adds r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - adds r0, r2, #0 - movs r1, #6 - bl InitAnimationForceUpdate - b _0806488C -_08064886: - adds r0, r2, #0 - bl UpdateAnimationSingleFrame -_0806488C: - pop {pc} - .align 2, 0 diff --git a/asm/farore.s b/asm/farore.s deleted file mode 100644 index 2f0d6d1e..00000000 --- a/asm/farore.s +++ /dev/null @@ -1,139 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Farore -Farore: @ 0x08064990 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _080649C2 - cmp r0, #1 - bgt _080649A4 - cmp r0, #0 - beq _080649AA - b _08064A24 -_080649A4: - cmp r0, #2 - beq _08064A0A - b _08064A24 -_080649AA: - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0807DD50 - b _08064A24 -_080649C2: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _08064A00 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - adds r0, r4, #0 - bl sub_0806F118 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] - adds r0, #0x10 - strb r1, [r0] - ldr r1, _080649FC @ =gPlayerEntity - adds r0, r4, #0 - bl GetFacingDirection - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl InitAnimationForceUpdate - b _08064A24 - .align 2, 0 -_080649FC: .4byte gPlayerEntity -_08064A00: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _08064A24 -_08064A0A: - adds r0, r4, #0 - bl UpdateFuseInteraction - cmp r0, #0 - beq _08064A24 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x68 - ldrb r1, [r0] - adds r0, r4, #0 - bl InitAnimationForceUpdate -_08064A24: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08064A28 -sub_08064A28: @ 0x08064A28 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r5, r0, #0 - ldr r6, _08064A58 @ =gSave - adds r0, r4, #0 - bl sub_08002632 - ldr r2, _08064A5C @ =0x00000141 - adds r1, r6, r2 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _08064A4E - ldrb r0, [r6, #8] - cmp r0, #6 - bhi _08064A4E - movs r5, #0 -_08064A4E: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08078784 - pop {r4, r5, r6, pc} - .align 2, 0 -_08064A58: .4byte gSave -_08064A5C: .4byte 0x00000141 - - thumb_func_start Farore_Fusion -Farore_Fusion: @ 0x08064A60 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _08064A86 - adds r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - adds r0, r2, #0 - movs r1, #6 - bl InitAnimationForceUpdate - b _08064A8C -_08064A86: - adds r0, r2, #0 - bl UpdateAnimationSingleFrame -_08064A8C: - pop {pc} - .align 2, 0 diff --git a/asm/nayru.s b/asm/nayru.s deleted file mode 100644 index 004b0834..00000000 --- a/asm/nayru.s +++ /dev/null @@ -1,139 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Nayru -Nayru: @ 0x08064890 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _080648C2 - cmp r0, #1 - bgt _080648A4 - cmp r0, #0 - beq _080648AA - b _08064924 -_080648A4: - cmp r0, #2 - beq _0806490A - b _08064924 -_080648AA: - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0807DD50 - b _08064924 -_080648C2: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _08064900 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - adds r0, r4, #0 - bl sub_0806F118 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] - adds r0, #0x10 - strb r1, [r0] - ldr r1, _080648FC @ =gPlayerEntity - adds r0, r4, #0 - bl GetFacingDirection - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl InitAnimationForceUpdate - b _08064924 - .align 2, 0 -_080648FC: .4byte gPlayerEntity -_08064900: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _08064924 -_0806490A: - adds r0, r4, #0 - bl UpdateFuseInteraction - cmp r0, #0 - beq _08064924 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x68 - ldrb r1, [r0] - adds r0, r4, #0 - bl InitAnimationForceUpdate -_08064924: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08064928 -sub_08064928: @ 0x08064928 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r5, r0, #0 - ldr r6, _08064958 @ =gSave - adds r0, r4, #0 - bl sub_08002632 - ldr r2, _0806495C @ =0x00000141 - adds r1, r6, r2 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _0806494E - ldrb r0, [r6, #8] - cmp r0, #6 - bhi _0806494E - movs r5, #0 -_0806494E: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08078784 - pop {r4, r5, r6, pc} - .align 2, 0 -_08064958: .4byte gSave -_0806495C: .4byte 0x00000141 - - thumb_func_start Nayru_Fusion -Nayru_Fusion: @ 0x08064960 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _08064986 - adds r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - adds r0, r2, #0 - movs r1, #6 - bl InitAnimationForceUpdate - b _0806498C -_08064986: - adds r0, r2, #0 - bl UpdateAnimationSingleFrame -_0806498C: - pop {pc} - .align 2, 0 diff --git a/include/save.h b/include/save.h index 6bc0819c..40434f8b 100644 --- a/include/save.h +++ b/include/save.h @@ -37,7 +37,8 @@ typedef struct { /*0x080*/ u8 playerName[FILENAME_LENGTH]; /*0x086*/ u8 filler86[0x22]; /*0x0A8*/ Stats stats; - /*0x0D0*/ u8 fillerD0[0x3c0]; + /*0x0D0*/ u8 fillerD0[0x71]; + /*0x141*/ u8 unk141[0x34f]; /*0x490*/ u32 unk490; /*0x494*/ u8 filler494[0x20]; } SaveFile; diff --git a/linker.ld b/linker.ld index fc72936e..6707cd9a 100644 --- a/linker.ld +++ b/linker.ld @@ -554,6 +554,7 @@ SECTIONS { src/npc/forestMinish.o(.text); src/npc/postman.o(.text); asm/postman.o(.text); + src/npc/npc5.o(.text); asm/npc5.o(.text); src/npc/townsperson.o(.text); asm/kid.o(.text); @@ -571,7 +572,7 @@ SECTIONS { src/npc/guard.o(.text); asm/guardWithSpear.o(.text); asm/castleMaid.o(.text); - asm/din.o(.text); + src/npc/din.o(.text); asm/nayru.o(.text); asm/farore.o(.text); asm/sturgeon.o(.text); diff --git a/src/npc/din.c b/src/npc/din.c new file mode 100644 index 00000000..2800f883 --- /dev/null +++ b/src/npc/din.c @@ -0,0 +1,53 @@ +#include "global.h" +#include "entity.h" +#include "npc.h" +#include "script.h" +#include "functions.h" +#include "save.h" + +extern u32 sub_08002632(Entity*); + +void Din(Entity* this) { + switch(this->action) { + case 0: + this->action = 1; + this->spriteSettings.b.draw = 1; + sub_0807DD50(this); + break; + case 1: + if (this->interactType ==2) { + this->action = 2; + this->interactType = 0; + sub_0806F118(this); + this->field_0x68.HALF.LO = this->animIndex; + InitAnimationForceUpdate(this, sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity))); + } else { + sub_0807DD94(this, NULL); + } + break; + case 2: + if (UpdateFuseInteraction(this) != 0) { + this->action = 1; + InitAnimationForceUpdate(this, this->field_0x68.HALF.LO); + } + break; + } +} + +void sub_08064828(Entity* this) { + u32 tmp = sub_0801E99C(this); + if ((gSave.unk141[sub_08002632(this)] != 0) && (gSave.unk8 < 7)) { + tmp = 0; + } + sub_08078784(this, tmp); +} + +void Din_Fusion(Entity* this) { + if (this->action == 0) { + this->action += 1; + this->spriteSettings.b.draw = 1; + InitAnimationForceUpdate(this, 6); + } else { + UpdateAnimationSingleFrame(this); + } +} diff --git a/src/npc/farore.c b/src/npc/farore.c new file mode 100644 index 00000000..858217a6 --- /dev/null +++ b/src/npc/farore.c @@ -0,0 +1,53 @@ +#include "global.h" +#include "entity.h" +#include "npc.h" +#include "script.h" +#include "functions.h" +#include "save.h" + +extern u32 sub_08002632(Entity*); + +void Farore(Entity* this) { + switch(this->action) { + case 0: + this->action = 1; + this->spriteSettings.b.draw = 1; + sub_0807DD50(this); + break; + case 1: + if (this->interactType ==2) { + this->action = 2; + this->interactType = 0; + sub_0806F118(this); + this->field_0x68.HALF.LO = this->animIndex; + InitAnimationForceUpdate(this, sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity))); + } else { + sub_0807DD94(this, NULL); + } + break; + case 2: + if (UpdateFuseInteraction(this) != 0) { + this->action = 1; + InitAnimationForceUpdate(this, this->field_0x68.HALF.LO); + } + break; + } +} + +void sub_08064A28(Entity* this) { + u32 tmp = sub_0801E99C(this); + if ((gSave.unk141[sub_08002632(this)] != 0) && (gSave.unk8 < 7)) { + tmp = 0; + } + sub_08078784(this, tmp); +} + +void Farore_Fusion(Entity* this) { + if (this->action == 0) { + this->action += 1; + this->spriteSettings.b.draw = 1; + InitAnimationForceUpdate(this, 6); + } else { + UpdateAnimationSingleFrame(this); + } +} diff --git a/src/npc/nayru.c b/src/npc/nayru.c new file mode 100644 index 00000000..fd8332a3 --- /dev/null +++ b/src/npc/nayru.c @@ -0,0 +1,53 @@ +#include "global.h" +#include "entity.h" +#include "npc.h" +#include "script.h" +#include "functions.h" +#include "save.h" + +extern u32 sub_08002632(Entity*); + +void Nayru(Entity* this) { + switch(this->action) { + case 0: + this->action = 1; + this->spriteSettings.b.draw = 1; + sub_0807DD50(this); + break; + case 1: + if (this->interactType ==2) { + this->action = 2; + this->interactType = 0; + sub_0806F118(this); + this->field_0x68.HALF.LO = this->animIndex; + InitAnimationForceUpdate(this, sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity))); + } else { + sub_0807DD94(this, NULL); + } + break; + case 2: + if (UpdateFuseInteraction(this) != 0) { + this->action = 1; + InitAnimationForceUpdate(this, this->field_0x68.HALF.LO); + } + break; + } +} + +void sub_08064928(Entity* this) { + u32 tmp = sub_0801E99C(this); + if ((gSave.unk141[sub_08002632(this)] != 0) && (gSave.unk8 < 7)) { + tmp = 0; + } + sub_08078784(this, tmp); +} + +void Nayru_Fusion(Entity* this) { + if (this->action == 0) { + this->action += 1; + this->spriteSettings.b.draw = 1; + InitAnimationForceUpdate(this, 6); + } else { + UpdateAnimationSingleFrame(this); + } +} From 3f404fa46f573c963cc1907b68d9ec78a54a1fc6 Mon Sep 17 00:00:00 2001 From: octorock <79596758+octorock@users.noreply.github.com> Date: Sat, 8 May 2021 11:08:17 +0200 Subject: [PATCH 05/74] Decompile pita --- asm/pita.s | 129 ------------------------------------------------- linker.ld | 5 +- src/npc/pita.c | 68 ++++++++++++++++++++++++++ 3 files changed, 71 insertions(+), 131 deletions(-) create mode 100644 src/npc/pita.c diff --git a/asm/pita.s b/asm/pita.s index 2bdf320e..1ee5d2f4 100644 --- a/asm/pita.s +++ b/asm/pita.s @@ -7,134 +7,5 @@ .text - thumb_func_start Pita -Pita: @ 0x08062E60 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08062E88 - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - adds r1, r4, #0 - bl ResolveEntityOnTop - ldr r0, _08062EB4 @ =gUnk_0810C428 - str r0, [r4, #0x48] - adds r0, r4, #0 - bl sub_0807DD64 -_08062E88: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08062EB2 - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 - adds r0, r4, #0 - bl InitAnimationForceUpdate - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] - adds r0, #0x28 - strh r1, [r0] -_08062EB2: - pop {r4, pc} - .align 2, 0 -_08062EB4: .4byte gUnk_0810C428 - thumb_func_start sub_08062EB8 -sub_08062EB8: @ 0x08062EB8 - push {lr} - movs r0, #0x68 - movs r1, #0 - bl sub_0807CAA0 - movs r0, #0x69 - movs r1, #0 - bl sub_0807CAA0 - movs r0, #0x6a - movs r1, #0 - bl sub_0807CAA0 - movs r0, #0x6b - movs r1, #0 - bl sub_0807CAA0 - pop {pc} - thumb_func_start sub_08062EDC -sub_08062EDC: @ 0x08062EDC - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r5, r1, #0 - movs r0, #0x68 - bl GetInventoryValue - cmp r0, #0 - beq _08062EEE - movs r4, #0 -_08062EEE: - movs r0, #0x69 - bl GetInventoryValue - cmp r0, #0 - beq _08062EFA - movs r4, #1 -_08062EFA: - movs r0, #0x6a - bl GetInventoryValue - cmp r0, #0 - beq _08062F06 - movs r4, #2 -_08062F06: - movs r0, #0x6b - bl GetInventoryValue - cmp r0, #0 - beq _08062F12 - movs r4, #3 -_08062F12: - movs r0, #0x5b - bl CheckLocalFlag - cmp r0, #0 - bne _08062F24 - movs r0, #0x5b - bl SetLocalFlag - movs r4, #4 -_08062F24: - bl Random - movs r1, #0xff - ands r1, r0 - ldr r0, _08062F58 @ =gUnk_0810C430 - adds r0, r4, r0 - ldrb r0, [r0] - cmp r1, r0 - bhi _08062F68 - ldr r0, _08062F5C @ =gUnk_0810C435 - bl sub_080028F4 - adds r4, r0, #0 - ldr r0, _08062F60 @ =gUnk_0810C43D - adds r0, r4, r0 - ldrb r1, [r0] - movs r0, #0x5c - movs r2, #1 - bl sub_080A7C18 - ldr r0, _08062F64 @ =0x00003C05 - adds r1, r6, #0 - bl TextboxNoOverlap - movs r0, #1 - b _08062F6A - .align 2, 0 -_08062F58: .4byte gUnk_0810C430 -_08062F5C: .4byte gUnk_0810C435 -_08062F60: .4byte gUnk_0810C43D -_08062F64: .4byte 0x00003C05 -_08062F68: - movs r0, #0 -_08062F6A: - str r0, [r5, #0x14] - pop {r4, r5, r6, pc} - .align 2, 0 diff --git a/linker.ld b/linker.ld index 6707cd9a..62e2c4ab 100644 --- a/linker.ld +++ b/linker.ld @@ -562,6 +562,7 @@ SECTIONS { src/npc/stamp.o(.text); asm/marcy.o(.text); src/npc/wheaton.o(.text); + src/npc/pita.o(.text); asm/pita.o(.text); asm/minishEzlo.o(.text); src/npc/mailbox.o(.text); @@ -573,8 +574,8 @@ SECTIONS { asm/guardWithSpear.o(.text); asm/castleMaid.o(.text); src/npc/din.o(.text); - asm/nayru.o(.text); - asm/farore.o(.text); + src/npc/nayru.o(.text); + src/npc/farore.o(.text); asm/sturgeon.o(.text); src/npc/tingleSiblings.o(.text); asm/tingleSiblings.o(.text); diff --git a/src/npc/pita.c b/src/npc/pita.c new file mode 100644 index 00000000..0d43bda6 --- /dev/null +++ b/src/npc/pita.c @@ -0,0 +1,68 @@ +#include "entity.h" +#include "functions.h" +#include "script.h" +#include "flags.h" +#include "random.h" +#include "textbox.h" + +extern Hitbox gUnk_0810C428; + +extern u8 gUnk_0810C430[4]; +extern u8 gUnk_0810C435[]; +extern u8 gUnk_0810C43D[]; +extern u32 sub_080028F4(const u8*); + +void Pita(Entity* this) { + if (this->action == 0) { + this->action += 1; + sub_0805E3A0(this, 2); + ResolveEntityOnTop(this, this); + this->hitbox = &gUnk_0810C428; + sub_0807DD64(this); + } + sub_0807DD94(this, NULL); + if ((this->frames.all & 1) != 0) { + InitAnimationForceUpdate(this, (u32)(this->animationState >> 1)); + this->field_0x80.HWORD = this->animIndex; + } +} + +void sub_08062EB8(void) { + sub_0807CAA0(0x68,0); + sub_0807CAA0(0x69,0); + sub_0807CAA0(0x6a,0); + sub_0807CAA0(0x6b,0); +} + +bool32 sub_08062EDC(Entity* this, ScriptExecutionContext* context) { + u32 tmp; + u32 tmp2; + + if (GetInventoryValue(0x68) != 0) { + tmp = 0; + } + if (GetInventoryValue(0x69) != 0) { + tmp = 1; + } + if (GetInventoryValue(0x6a) != 0) { + tmp = 2; + } + if (GetInventoryValue(0x6b) != 0) { + tmp = 3; + } + if (CheckLocalFlag(0x5b) == 0) { + SetLocalFlag(0x5b); + tmp = 4; + } + if ((Random() & 0xff) > gUnk_0810C430[tmp]) { + context->condition = FALSE; + return FALSE; + } else { + tmp = sub_080028F4(gUnk_0810C435); + tmp2 = gUnk_0810C43D[tmp]; + sub_080A7C18(0x5c, tmp2, 1); + TextboxNoOverlap(0x3c05, this); + context->condition = TRUE; + return TRUE; + } +} From bbc78fd2d277c44b144e3d5d23fdb587b8d4ea74 Mon Sep 17 00:00:00 2001 From: octorock <79596758+octorock@users.noreply.github.com> Date: Tue, 11 May 2021 22:10:29 +0200 Subject: [PATCH 06/74] Decompile npc5 --- asm/non_matching/npc5/sub_08060FD0.inc | 104 ++ asm/non_matching/npc5/sub_08061170.inc | 53 + asm/non_matching/npc5/sub_080611D4.inc | 54 + asm/non_matching/npc5/sub_08061358.inc | 139 ++ asm/non_matching/npc5/sub_08061464.inc | 231 +++ asm/non_matching/npc5/sub_08061B18.inc | 38 + asm/npc5.s | 2330 ------------------------ linker.ld | 1 - src/npc/npc5.c | 943 ++++++++++ 9 files changed, 1562 insertions(+), 2331 deletions(-) create mode 100644 asm/non_matching/npc5/sub_08060FD0.inc create mode 100644 asm/non_matching/npc5/sub_08061170.inc create mode 100644 asm/non_matching/npc5/sub_080611D4.inc create mode 100644 asm/non_matching/npc5/sub_08061358.inc create mode 100644 asm/non_matching/npc5/sub_08061464.inc create mode 100644 asm/non_matching/npc5/sub_08061B18.inc delete mode 100644 asm/npc5.s create mode 100644 src/npc/npc5.c diff --git a/asm/non_matching/npc5/sub_08060FD0.inc b/asm/non_matching/npc5/sub_08060FD0.inc new file mode 100644 index 00000000..7f5cf29c --- /dev/null +++ b/asm/non_matching/npc5/sub_08060FD0.inc @@ -0,0 +1,104 @@ + .syntax unified + .text + +sub_08060FD0: @ 0x08060FD0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + adds r4, r0, #0 + mov sb, r1 + mov r8, r2 + movs r0, #0x2e + ldrsh r7, [r4, r0] + movs r1, #0x32 + ldrsh r6, [r4, r1] + mov r2, sb + subs r0, r2, r7 + mov r5, r8 + subs r1, r5, r6 + bl sub_080045DA + lsls r7, r7, #8 + lsls r6, r6, #8 + ldr r3, _08061058 @ =gSineTable + lsls r1, r0, #1 + adds r1, r1, r3 + movs r5, #0 + ldrsh r2, [r1, r5] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + str r1, [sp] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r3 + movs r2, #0 + ldrsh r1, [r0, r2] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + str r0, [sp, #4] + adds r4, #0x38 + ldrb r0, [r4] + ldr r5, _0806105C @ =gUnk_0200D654 + mov sl, r5 + cmp r0, #2 + beq _0806102E + ldr r0, _08061060 @ =gUnk_02027EB4 + mov sl, r0 +_0806102E: + adds r1, r7, #0 + cmp r7, #0 + bge _08061036 + adds r1, #0xff +_08061036: + asrs r5, r1, #8 + adds r2, r6, #0 + cmp r6, #0 + bge _08061040 + adds r2, #0xff +_08061040: + asrs r4, r2, #8 + mov r0, sl + adds r1, r5, #0 + adds r2, r4, #0 + movs r3, #6 + bl sub_080AE4CC + cmp r0, #0 + beq _08061064 + movs r0, #0 + b _08061084 + .align 2, 0 +_08061058: .4byte gSineTable +_0806105C: .4byte gUnk_0200D654 +_08061060: .4byte gUnk_02027EB4 +_08061064: + mov r1, sb + subs r0, r1, r5 + adds r0, #6 + cmp r0, #0xc + bhi _08061078 + mov r2, r8 + subs r0, r2, r4 + adds r0, #6 + cmp r0, #0xc + bls _08061082 +_08061078: + ldr r5, [sp] + adds r7, r7, r5 + ldr r0, [sp, #4] + subs r6, r6, r0 + b _0806102E +_08061082: + movs r0, #1 +_08061084: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + .syntax divided diff --git a/asm/non_matching/npc5/sub_08061170.inc b/asm/non_matching/npc5/sub_08061170.inc new file mode 100644 index 00000000..ffde2fbf --- /dev/null +++ b/asm/non_matching/npc5/sub_08061170.inc @@ -0,0 +1,53 @@ + .syntax unified + .text + +sub_08061170: @ 0x08061170 + push {r4, r5, lr} + adds r4, r0, #0 + bl UpdateAnimationSingleFrame + adds r0, r4, #0 + bl sub_080AF1EC + cmp r0, #0 + bne _080611CA + adds r0, r4, #0 + bl sub_080611D4 + adds r5, r0, #0 + cmp r5, #0xff + beq _080611C6 + movs r0, #6 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08079FD4 + lsls r0, r0, #4 + subs r0, #4 + lsls r0, r0, #0xc + str r0, [r4, #0x20] + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r4, #0x24] + strb r5, [r4, #0x15] + lsrs r1, r5, #2 + strb r1, [r4, #0x14] + lsrs r0, r0, #0x10 + cmp r0, #0 + beq _080611BE + adds r0, r4, #0 + movs r1, #0x14 + bl sub_08060E70 + b _080611C6 +_080611BE: + adds r0, r4, #0 + movs r1, #0x18 + bl sub_08060E70 +_080611C6: + movs r0, #0 + b _080611D2 +_080611CA: + adds r0, r4, #0 + bl sub_08016AD2 + movs r0, #1 +_080611D2: + pop {r4, r5, pc} + + .syntax divided diff --git a/asm/non_matching/npc5/sub_080611D4.inc b/asm/non_matching/npc5/sub_080611D4.inc new file mode 100644 index 00000000..97048cc0 --- /dev/null +++ b/asm/non_matching/npc5/sub_080611D4.inc @@ -0,0 +1,54 @@ + .syntax unified + .text + +sub_080611D4: @ 0x080611D4 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x14] + movs r0, #6 + ands r0, r1 + ldr r1, _08061218 @ =gUnk_0810AC4C + adds r0, r0, r1 + movs r1, #0 + ldrsb r1, [r0, r1] + movs r2, #1 + ldrsb r2, [r0, r2] + adds r0, r4, #0 + bl sub_080002B4 + adds r3, r0, #0 + ldr r2, _0806121C @ =gUnk_0810AC54 +_080611F4: + ldrb r0, [r2] + cmp r0, r3 + bne _08061220 + ldrb r0, [r2, #1] + ldrb r1, [r4, #0x14] + lsrs r0, r0, #2 + cmp r1, r0 + bne _08061220 + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #7 + bls _0806122A + ldrb r0, [r2, #1] + b _0806122C + .align 2, 0 +_08061218: .4byte gUnk_0810AC4C +_0806121C: .4byte gUnk_0810AC54 +_08061220: + adds r2, #2 + ldrb r0, [r2] + cmp r0, #0 + bne _080611F4 + strb r0, [r4, #0xf] +_0806122A: + movs r0, #0xff +_0806122C: + pop {r4, pc} + .align 2, 0 + + + .syntax divided diff --git a/asm/non_matching/npc5/sub_08061358.inc b/asm/non_matching/npc5/sub_08061358.inc new file mode 100644 index 00000000..ab2190cd --- /dev/null +++ b/asm/non_matching/npc5/sub_08061358.inc @@ -0,0 +1,139 @@ + .syntax unified + .text + +sub_08061358: @ 0x08061358 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xd] + cmp r5, #1 + beq _0806139C + cmp r5, #1 + bgt _0806136C + cmp r5, #0 + beq _08061376 + b _08061460 +_0806136C: + cmp r5, #2 + beq _080613D0 + cmp r5, #3 + beq _0806141E + b _08061460 +_08061376: + 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 _08061460 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xf + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0 + bl sub_08060E70 + b _08061460 +_0806139C: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08061460 + bl Random + adds r6, r0, #0 + ands r5, r6 + cmp r5, #0 + beq _080613FA + movs r0, #2 + strb r0, [r4, #0xd] + ldr r3, _080613CC @ =gUnk_0810AC5D + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + lsrs r1, r6, #4 + movs r2, #3 + ands r1, r2 + adds r0, r0, r1 + adds r0, r0, r3 + b _0806143A + .align 2, 0 +_080613CC: .4byte gUnk_0810AC5D +_080613D0: + 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 _08061460 + movs r0, #0x18 + ands r0, r1 + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + bl Random + adds r1, r0, #0 + movs r0, #1 + ands r1, r0 + cmp r1, #0 + beq _08061412 +_080613FA: + movs r0, #3 + strb r0, [r4, #0xd] + movs r0, #0x18 + ands r6, r0 + adds r0, r6, #0 + adds r0, #0x1e + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #4 + bl sub_08060E70 + b _08061460 +_08061412: + strb r1, [r4, #0xd] + adds r0, r4, #0 + movs r1, #0x10 + bl sub_08060E70 + b _08061460 +_0806141E: + adds r0, r4, #0 + bl sub_08061170 + cmp r0, #0 + bne _08061448 + movs r0, #2 + strb r0, [r4, #0xd] + ldr r2, _08061444 @ =gUnk_0810AC5D + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + lsrs r1, r6, #4 + ands r1, r5 + adds r0, r0, r1 + adds r0, r0, r2 +_0806143A: + ldrb r1, [r0] + adds r0, r4, #0 + bl InitAnimationForceUpdate + b _08061460 + .align 2, 0 +_08061444: .4byte gUnk_0810AC5D +_08061448: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _08061460 + strb r0, [r4, #0xd] + adds r0, r4, #0 + movs r1, #0x10 + bl sub_08060E70 +_08061460: + pop {r4, r5, r6, pc} + .align 2, 0 + + .syntax divided diff --git a/asm/non_matching/npc5/sub_08061464.inc b/asm/non_matching/npc5/sub_08061464.inc new file mode 100644 index 00000000..7a0f024a --- /dev/null +++ b/asm/non_matching/npc5/sub_08061464.inc @@ -0,0 +1,231 @@ + .syntax unified + .text + +sub_08061464: @ 0x08061464 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r4, r0, #0 + mov r8, r1 + adds r5, r2, #0 + movs r0, #0x2e + ldrsh r7, [r4, r0] + movs r1, #0x32 + ldrsh r6, [r4, r1] + adds r0, r7, #0 + adds r1, r6, #0 + mov r2, r8 + adds r3, r5, #0 + bl sub_080045D4 + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + lsrs r0, r0, #2 + cmp r0, #7 + bls _08061494 + b _08061612 +_08061494: + lsls r0, r0, #2 + ldr r1, _080614A0 @ =_080614A4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080614A0: .4byte _080614A4 +_080614A4: @ jump table + .4byte _080614C4 @ case 0 + .4byte _080614E2 @ case 1 + .4byte _08061514 @ case 2 + .4byte _08061544 @ case 3 + .4byte _08061566 @ case 4 + .4byte _08061584 @ case 5 + .4byte _080615B4 @ case 6 + .4byte _080615E4 @ case 7 +_080614C4: + adds r0, r4, #0 + adds r0, #0x6e + strh r5, [r0] + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, r8 + ble _08061504 + adds r2, r6, #0 + subs r2, #8 + adds r0, r4, #0 + adds r1, r7, #0 + mov r3, r8 + bl sub_08061630 + b _08061612 +_080614E2: + movs r0, #0x6e + adds r0, r0, r4 + mov sb, r0 + mov r1, r8 + strh r1, [r0] + adds r1, r7, #0 + adds r1, #8 + adds r0, r4, #0 + adds r2, r6, #0 + adds r3, r5, #0 + bl sub_08061720 + cmp r0, #0 + beq _08061500 + b _08061612 +_08061500: + mov r0, sb + strh r5, [r0] +_08061504: + adds r2, r6, #0 + subs r2, #8 + adds r0, r4, #0 + adds r1, r7, #0 + mov r3, r8 + bl sub_080616A8 + b _08061612 +_08061514: + adds r0, r4, #0 + adds r0, #0x6e + mov r1, r8 + strh r1, [r0] + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, r5 + ble _08061534 + adds r1, r7, #0 + adds r1, #8 + adds r0, r4, #0 + adds r2, r6, #0 + adds r3, r5, #0 + bl sub_08061720 + b _08061612 +_08061534: + adds r1, r7, #0 + adds r1, #8 + adds r0, r4, #0 + adds r2, r6, #0 + adds r3, r5, #0 + bl sub_08061798 + b _08061612 +_08061544: + movs r0, #0x6e + adds r0, r0, r4 + mov sb, r0 + mov r1, r8 + strh r1, [r0] + adds r1, r7, #0 + adds r1, #8 + adds r0, r4, #0 + adds r2, r6, #0 + adds r3, r5, #0 + bl sub_08061798 + cmp r0, #0 + bne _08061612 + mov r0, sb + strh r5, [r0] + b _08061574 +_08061566: + adds r0, r4, #0 + adds r0, #0x6e + strh r5, [r0] + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, r8 + bgt _080615A4 +_08061574: + adds r2, r6, #0 + adds r2, #8 + adds r0, r4, #0 + adds r1, r7, #0 + mov r3, r8 + bl sub_08061888 + b _08061612 +_08061584: + movs r0, #0x6e + adds r0, r0, r4 + mov sb, r0 + mov r1, r8 + strh r1, [r0] + adds r1, r7, #0 + subs r1, #8 + adds r0, r4, #0 + adds r2, r6, #0 + adds r3, r5, #0 + bl sub_08061978 + cmp r0, #0 + bne _08061612 + mov r0, sb + strh r5, [r0] +_080615A4: + adds r2, r6, #0 + adds r2, #8 + adds r0, r4, #0 + adds r1, r7, #0 + mov r3, r8 + bl sub_08061810 + b _08061612 +_080615B4: + adds r0, r4, #0 + adds r0, #0x6e + mov r1, r8 + strh r1, [r0] + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, r5 + ble _080615D4 + adds r1, r7, #0 + subs r1, #8 + adds r0, r4, #0 + adds r2, r6, #0 + adds r3, r5, #0 + bl sub_08061900 + b _08061612 +_080615D4: + adds r1, r7, #0 + subs r1, #8 + adds r0, r4, #0 + adds r2, r6, #0 + adds r3, r5, #0 + bl sub_08061978 + b _08061612 +_080615E4: + movs r0, #0x6e + adds r0, r0, r4 + mov sb, r0 + mov r1, r8 + strh r1, [r0] + adds r1, r7, #0 + subs r1, #8 + adds r0, r4, #0 + adds r2, r6, #0 + adds r3, r5, #0 + bl sub_08061900 + cmp r0, #0 + bne _08061612 + mov r0, sb + strh r5, [r0] + adds r2, r6, #0 + subs r2, #8 + adds r0, r4, #0 + adds r1, r7, #0 + mov r3, r8 + bl sub_08061630 +_08061612: + ldr r0, [r4, #0x64] + ldrb r1, [r0] + movs r0, #8 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _08061628 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_08061628: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + .syntax divided diff --git a/asm/non_matching/npc5/sub_08061B18.inc b/asm/non_matching/npc5/sub_08061B18.inc new file mode 100644 index 00000000..f420ee89 --- /dev/null +++ b/asm/non_matching/npc5/sub_08061B18.inc @@ -0,0 +1,38 @@ + .syntax unified + .text + +sub_08061B18: @ 0x08061B18 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08061B54 + cmp r0, #1 + bne _08061B54 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08061AFC + ldr r2, [r4, #0x68] + ldrb r0, [r4, #0xe] + adds r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r2, r2, r0 + ldrh r0, [r2, #2] + cmp r0, #0 + bne _08061B4C + strb r0, [r4, #0xe] +_08061B4C: + ldrh r0, [r2] + adds r1, r4, #0 + bl TextboxNoOverlap +_08061B54: + pop {r4, pc} + .align 2, 0 + + .syntax divided diff --git a/asm/npc5.s b/asm/npc5.s deleted file mode 100644 index a489d264..00000000 --- a/asm/npc5.s +++ /dev/null @@ -1,2330 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start NPC5 -NPC5: @ 0x080609E8 - push {lr} - ldr r2, _080609FC @ =gUnk_0810AC1C - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080609FC: .4byte gUnk_0810AC1C - - thumb_func_start sub_08060A00 -sub_08060A00: @ 0x08060A00 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _08060AD0 @ =gPlayerState - ldrb r1, [r0, #2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08060A44 - ldrb r0, [r5, #0xc] - cmp r0, #0 - beq _08060A52 - ldr r2, [r5, #0x64] - ldrb r1, [r2] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _08060A44 - movs r0, #4 - orrs r0, r1 - strb r0, [r2] - ldr r4, [r5, #0x64] - ldr r3, _08060AD4 @ =gPlayerEntity - ldrh r2, [r3, #0x2e] - movs r1, #0x10 - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r2 - adds r0, #8 - strh r0, [r4, #0xa] - ldr r2, [r5, #0x64] - ldrh r0, [r3, #0x32] - ands r1, r0 - adds r1, #8 - strh r1, [r2, #0xc] -_08060A44: - ldrb r0, [r5, #0xc] - cmp r0, #0 - beq _08060A52 - ldrb r0, [r5, #0x18] - lsls r0, r0, #0x1e - cmp r0, #0 - beq _08060A62 -_08060A52: - ldr r0, _08060AD8 @ =gUnk_0810AC2C - ldrb r1, [r5, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r5, #0 - bl _call_via_r1 -_08060A62: - ldrb r0, [r5, #0xc] - cmp r0, #0 - beq _08060A76 - ldr r1, [r5, #0x64] - ldr r2, _08060AD4 @ =gPlayerEntity - ldrh r0, [r2, #0x2e] - strh r0, [r1, #2] - ldr r1, [r5, #0x64] - ldrh r0, [r2, #0x32] - strh r0, [r1, #4] -_08060A76: - adds r2, r5, #0 - adds r2, #0x74 - ldr r4, _08060ADC @ =gRoomControls - ldrb r1, [r4, #5] - ldrh r0, [r2] - cmp r0, r1 - beq _08060ACE - strh r1, [r2] - ldr r0, _08060AD4 @ =gPlayerEntity - adds r1, r5, #0 - bl CopyPosition - 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] - movs r0, #0x90 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - ldrb r1, [r4, #0x10] - lsls r0, r1, #1 - strb r0, [r5, #0x14] - lsls r1, r1, #0x19 - lsrs r1, r1, #0x19 - adds r0, r5, #0 - bl InitAnimationForceUpdate - bl Random - movs r1, #0x7f - ands r0, r1 - adds r0, #0x80 - adds r1, r5, #0 - adds r1, #0x59 - strb r0, [r1] - ldr r2, [r5, #0x64] - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] -_08060ACE: - pop {r4, r5, pc} - .align 2, 0 -_08060AD0: .4byte gPlayerState -_08060AD4: .4byte gPlayerEntity -_08060AD8: .4byte gUnk_0810AC2C -_08060ADC: .4byte gRoomControls - - thumb_func_start sub_08060AE0 -sub_08060AE0: @ 0x08060AE0 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x14 - bl zMalloc - adds r1, r0, #0 - cmp r1, #0 - beq _08060B54 - str r1, [r4, #0x64] - movs r0, #0x20 - strb r0, [r1, #1] - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - ldrb r1, [r4, #0x14] - movs r2, #3 - adds r0, r2, #0 - ands r0, r1 - strb r0, [r4, #0x14] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r1, #4 - movs r0, #0x48 - strb r0, [r1] - subs r1, #1 - movs r0, #0x49 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x3b - strb r2, [r0] - ldr r0, _08060B58 @ =gUnk_080FD150 - str r0, [r4, #0x48] - ldrb r1, [r4, #0x17] - movs r0, #0xfe - ands r0, r1 - strb r0, [r4, #0x17] - adds r1, r4, #0 - adds r1, #0x6c - movs r0, #0xff - strb r0, [r1] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08060E70 - movs r0, #5 - movs r1, #2 - movs r2, #0 - bl CreateNPC - cmp r0, #0 - beq _08060B54 - str r4, [r0, #0x50] - str r0, [r4, #0x78] -_08060B54: - pop {r4, pc} - .align 2, 0 -_08060B58: .4byte gUnk_080FD150 - - thumb_func_start sub_08060B5C -sub_08060B5C: @ 0x08060B5C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08061230 - cmp r0, #0 - bne _08060B9E - adds r0, r4, #0 - bl sub_08060F80 - adds r5, r0, #0 - cmp r5, #0 - bne _08060B98 - ldr r1, _08060B94 @ =gPlayerEntity - adds r0, r4, #0 - bl GetFacingDirection - ldrb r1, [r4, #0x14] - lsls r1, r1, #2 - subs r0, r0, r1 - adds r0, #4 - movs r1, #0x1f - ands r0, r1 - cmp r0, #8 - bhi _08060B98 - movs r0, #2 - strb r0, [r4, #0xc] - strb r5, [r4, #0xf] - b _08060B9E - .align 2, 0 -_08060B94: .4byte gPlayerEntity -_08060B98: - adds r0, r4, #0 - bl sub_08060EDC -_08060B9E: - pop {r4, r5, pc} - - thumb_func_start sub_08060BA0 -sub_08060BA0: @ 0x08060BA0 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08061230 - cmp r0, #0 - beq _08060BAE - b _08060D74 -_08060BAE: - ldr r2, [r4, #0x64] - ldrb r1, [r2] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08060C66 - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08060BF6 - movs r0, #0xf0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - ldrh r1, [r2, #0xe] - ldrh r2, [r2, #0x10] - adds r0, r4, #0 - movs r3, #0xc - bl sub_08061120 - adds r0, r4, #0 - bl sub_08061170 - ldr r0, [r4, #0x64] - ldrh r1, [r0, #0xe] - ldrh r2, [r0, #0x10] - adds r0, r4, #0 - movs r3, #4 - bl sub_0806FCB8 - cmp r0, #0 - bne _08060BEE - b _08060D54 -_08060BEE: - ldr r2, [r4, #0x64] - ldrb r1, [r2] - movs r0, #0xf7 - b _08060D36 -_08060BF6: - ldrh r1, [r2, #0xa] - ldrh r2, [r2, #0xc] - adds r0, r4, #0 - bl sub_08060FD0 - cmp r0, #0 - beq _08060C56 - ldr r0, [r4, #0x64] - ldrh r1, [r0, #0xa] - ldrh r2, [r0, #0xc] - adds r0, r4, #0 - movs r3, #4 - bl sub_0806FCB8 - cmp r0, #0 - beq _08060C38 - ldr r2, [r4, #0x64] - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] - movs r0, #5 - strb r0, [r4, #0xc] - ldrb r0, [r5, #0x15] - strb r0, [r4, #0x15] - movs r0, #0xb0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - adds r0, r4, #0 - movs r1, #8 - bl sub_08060E70 - b _08060D54 -_08060C38: - movs r0, #0xf0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r0, #0x32 - ldrsh r2, [r5, r0] - adds r0, r4, #0 - movs r3, #0xc - bl sub_08061120 - adds r0, r4, #0 - bl sub_08061170 - b _08060D54 -_08060C56: - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r0, #0x32 - ldrsh r2, [r5, r0] - adds r0, r4, #0 - bl sub_08061464 - b _08060D54 -_08060C66: - ldr r5, _08060C98 @ =gPlayerEntity - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r0, #0x32 - ldrsh r2, [r5, r0] - adds r0, r4, #0 - bl sub_08060FD0 - cmp r0, #0 - beq _08060C9C - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r0, #0x32 - ldrsh r2, [r5, r0] - adds r0, r4, #0 - bl sub_08061090 - adds r0, r4, #0 - bl sub_08061170 - ldr r2, [r4, #0x64] - ldrb r1, [r2] - movs r0, #0xf5 - b _08060D36 - .align 2, 0 -_08060C98: .4byte gPlayerEntity -_08060C9C: - ldr r2, [r4, #0x64] - ldrb r1, [r2] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08060CDA - movs r0, #0xf0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - ldrh r1, [r2, #0xe] - ldrh r2, [r2, #0x10] - adds r0, r4, #0 - movs r3, #0xc - bl sub_08061120 - adds r0, r4, #0 - bl sub_08061170 - ldr r0, [r4, #0x64] - ldrh r1, [r0, #0xe] - ldrh r2, [r0, #0x10] - adds r0, r4, #0 - movs r3, #4 - bl sub_0806FCB8 - cmp r0, #0 - beq _08060D54 - ldr r2, [r4, #0x64] - ldrb r1, [r2] - movs r0, #0xf7 - b _08060D36 -_08060CDA: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08060CF4 - movs r0, #2 - orrs r0, r1 - strb r0, [r2] - ldr r1, [r4, #0x64] - ldrh r0, [r1, #2] - strh r0, [r1, #6] - ldr r1, [r4, #0x64] - ldrh r0, [r1, #4] - strh r0, [r1, #8] -_08060CF4: - ldr r0, [r4, #0x64] - ldrh r1, [r0, #6] - ldrh r2, [r0, #8] - adds r0, r4, #0 - bl sub_08060FD0 - cmp r0, #0 - beq _08060D3C - movs r0, #0xf0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - ldr r0, [r4, #0x64] - ldrh r1, [r0, #6] - ldrh r2, [r0, #8] - adds r0, r4, #0 - movs r3, #0xc - bl sub_08061120 - adds r0, r4, #0 - bl sub_08061170 - ldr r0, [r4, #0x64] - ldrh r1, [r0, #6] - ldrh r2, [r0, #8] - adds r0, r4, #0 - movs r3, #4 - bl sub_0806FCB8 - cmp r0, #0 - beq _08060D54 - ldr r2, [r4, #0x64] - ldrb r1, [r2] - movs r0, #0xfd -_08060D36: - ands r0, r1 - strb r0, [r2] - b _08060D54 -_08060D3C: - ldr r2, [r4, #0x64] - ldrb r1, [r2] - movs r0, #0xfd - ands r0, r1 - strb r0, [r2] - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r0, #0x32 - ldrsh r2, [r5, r0] - adds r0, r4, #0 - bl sub_08061464 -_08060D54: - adds r0, r4, #0 - bl sub_08060F80 - cmp r0, #0 - beq _08060D74 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r2, [r4, #0x64] - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #0 - bl sub_08060E70 -_08060D74: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08060D78 -sub_08060D78: @ 0x08060D78 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08061358 - adds r0, r4, #0 - bl sub_08060F80 - cmp r0, #0 - beq _08060DCE - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - subs r0, #0x20 - cmp r0, #0xf - bhi _08060DC2 - adds r5, r4, #0 - adds r5, #0x5a - ldrb r1, [r5] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - beq _08060DB2 - adds r1, r4, #0 - adds r1, #0x59 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl UpdateAnimationSingleFrame -_08060DB2: - ldrb r1, [r5] - movs r0, #0x18 - ands r0, r1 - strb r0, [r4, #0x14] - adds r1, r4, #0 - adds r1, #0x6c - movs r0, #0xff - strb r0, [r1] -_08060DC2: - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0 - bl sub_08060E70 -_08060DCE: - pop {r4, r5, pc} - - thumb_func_start sub_08060DD0 -sub_08060DD0: @ 0x08060DD0 - push {r4, lr} - adds r4, r0, #0 - bl UpdateAnimationSingleFrame - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08060DF2 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0 - bl sub_08060E70 -_08060DF2: - pop {r4, pc} - - thumb_func_start sub_08060DF4 -sub_08060DF4: @ 0x08060DF4 - push {lr} - bl sub_08061170 - pop {pc} - - thumb_func_start sub_08060DFC -sub_08060DFC: @ 0x08060DFC - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_08060E94 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08060E32 - movs r0, #7 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl UpdateSpriteForCollisionLayer - adds r0, r4, #0 - movs r1, #0x1c - bl sub_08060E70 -_08060E32: - pop {r4, pc} - - thumb_func_start sub_08060E34 -sub_08060E34: @ 0x08060E34 - push {r4, lr} - adds r4, r0, #0 - bl UpdateAnimationSingleFrame - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08060E68 - movs r0, #2 - strb r0, [r4, #0xc] - ldr r1, _08060E6C @ =gPlayerEntity - adds r0, r4, #0 - bl GetFacingDirection - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - lsrs r0, r0, #2 - strb r0, [r4, #0x14] - adds r0, r4, #0 - movs r1, #8 - bl sub_08060E70 -_08060E68: - pop {r4, pc} - .align 2, 0 -_08060E6C: .4byte gPlayerEntity - - thumb_func_start sub_08060E70 -sub_08060E70: @ 0x08060E70 - push {lr} - adds r2, r0, #0 - adds r3, r1, #0 - ldrb r0, [r2, #0x14] - lsrs r0, r0, #1 - adds r1, r3, r0 - adds r0, r2, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r1, r0 - beq _08060E92 - adds r0, r2, #0 - adds r0, #0x6c - strb r3, [r0] - adds r0, r2, #0 - bl InitAnimationForceUpdate -_08060E92: - pop {pc} - - thumb_func_start sub_08060E94 -sub_08060E94: @ 0x08060E94 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x58] - ldr r1, _08060ECC @ =0x0080FF00 - ands r0, r1 - ldr r1, _08060ED0 @ =0x00800100 - cmp r0, r1 - bne _08060ED4 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #3 - bhi _08060ED4 - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 - adds r0, r4, #0 - bl InitAnimationForceUpdate - bl Random - movs r1, #0x7f - ands r0, r1 - adds r0, #0x80 - adds r1, r4, #0 - adds r1, #0x59 - strb r0, [r1] - b _08060EDA - .align 2, 0 -_08060ECC: .4byte 0x0080FF00 -_08060ED0: .4byte 0x00800100 -_08060ED4: - adds r0, r4, #0 - bl UpdateAnimationSingleFrame -_08060EDA: - pop {r4, pc} - - thumb_func_start sub_08060EDC -sub_08060EDC: @ 0x08060EDC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - subs r0, #0x20 - cmp r0, #0xf - bhi _08060F00 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08060F00 - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - b _08060F7C -_08060F00: - ldr r1, _08060F30 @ =gPlayerEntity - adds r0, r4, #0 - bl GetFacingDirection - ldrb r2, [r4, #0x14] - lsls r1, r2, #2 - subs r1, r0, r1 - adds r0, r1, #3 - movs r3, #0x1f - ands r0, r3 - cmp r0, #6 - ble _08060F4A - ands r1, r3 - cmp r1, #0xf - bgt _08060F34 - adds r1, r2, #0 - adds r1, #0x20 - adds r0, r4, #0 - bl InitAnimationForceUpdate - ldrb r0, [r4, #0x14] - adds r0, #1 - b _08060F42 - .align 2, 0 -_08060F30: .4byte gPlayerEntity -_08060F34: - adds r1, r2, #0 - adds r1, #0x28 - adds r0, r4, #0 - bl InitAnimationForceUpdate - ldrb r0, [r4, #0x14] - subs r0, #1 -_08060F42: - movs r1, #7 - ands r0, r1 - strb r0, [r4, #0x14] - b _08060F7C -_08060F4A: - movs r0, #1 - ands r2, r0 - cmp r2, #0 - bne _08060F7C - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08060F76 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - subs r0, #0x20 - cmp r0, #0xf - bhi _08060F76 - adds r0, r4, #0 - movs r1, #0 - bl sub_08060E70 - b _08060F7C -_08060F76: - adds r0, r4, #0 - bl sub_08060E94 -_08060F7C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08060F80 -sub_08060F80: @ 0x08060F80 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08060FC8 @ =gPlayerEntity - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r3, #0x32 - ldrsh r2, [r5, r3] - adds r0, r4, #0 - bl sub_08060FD0 - cmp r0, #0 - beq _08060FC2 - ldr r2, [r4, #0x64] - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] - movs r1, #0x2e - ldrsh r0, [r5, r1] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - movs r3, #0x32 - ldrsh r1, [r5, r3] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - ldr r2, [r4, #0x64] - ldrb r2, [r2, #1] - bl sub_0806FCD0 - cmp r0, #0 - bne _08060FCC -_08060FC2: - movs r0, #0 - b _08060FCE - .align 2, 0 -_08060FC8: .4byte gPlayerEntity -_08060FCC: - movs r0, #1 -_08060FCE: - pop {r4, r5, pc} - - thumb_func_start sub_08060FD0 -sub_08060FD0: @ 0x08060FD0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - adds r4, r0, #0 - mov sb, r1 - mov r8, r2 - movs r0, #0x2e - ldrsh r7, [r4, r0] - movs r1, #0x32 - ldrsh r6, [r4, r1] - mov r2, sb - subs r0, r2, r7 - mov r5, r8 - subs r1, r5, r6 - bl sub_080045DA - lsls r7, r7, #8 - lsls r6, r6, #8 - ldr r3, _08061058 @ =gSineTable - lsls r1, r0, #1 - adds r1, r1, r3 - movs r5, #0 - ldrsh r2, [r1, r5] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - str r1, [sp] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r3 - movs r2, #0 - ldrsh r1, [r0, r2] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - str r0, [sp, #4] - adds r4, #0x38 - ldrb r0, [r4] - ldr r5, _0806105C @ =gUnk_0200D654 - mov sl, r5 - cmp r0, #2 - beq _0806102E - ldr r0, _08061060 @ =gUnk_02027EB4 - mov sl, r0 -_0806102E: - adds r1, r7, #0 - cmp r7, #0 - bge _08061036 - adds r1, #0xff -_08061036: - asrs r5, r1, #8 - adds r2, r6, #0 - cmp r6, #0 - bge _08061040 - adds r2, #0xff -_08061040: - asrs r4, r2, #8 - mov r0, sl - adds r1, r5, #0 - adds r2, r4, #0 - movs r3, #6 - bl sub_080AE4CC - cmp r0, #0 - beq _08061064 - movs r0, #0 - b _08061084 - .align 2, 0 -_08061058: .4byte gSineTable -_0806105C: .4byte gUnk_0200D654 -_08061060: .4byte gUnk_02027EB4 -_08061064: - mov r1, sb - subs r0, r1, r5 - adds r0, #6 - cmp r0, #0xc - bhi _08061078 - mov r2, r8 - subs r0, r2, r4 - adds r0, #6 - cmp r0, #0xc - bls _08061082 -_08061078: - ldr r5, [sp] - adds r7, r7, r5 - ldr r0, [sp, #4] - subs r6, r6, r0 - b _0806102E -_08061082: - movs r0, #1 -_08061084: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08061090 -sub_08061090: @ 0x08061090 - push {r4, r5, r6, lr} - adds r3, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - ldr r1, _080610C8 @ =gPlayerEntity - movs r0, #0x2e - ldrsh r2, [r1, r0] - movs r4, #0x2e - ldrsh r0, [r3, r4] - subs r2, r2, r0 - movs r4, #0x32 - ldrsh r0, [r1, r4] - movs r4, #0x32 - ldrsh r1, [r3, r4] - subs r0, r0, r1 - adds r1, r2, #0 - muls r1, r2, r1 - adds r2, r0, #0 - muls r2, r0, r2 - adds r0, r2, #0 - adds r1, r1, r0 - ldr r0, _080610CC @ =0x000008FF - cmp r1, r0 - bgt _080610D0 - movs r0, #0x90 - lsls r0, r0, #1 - b _080610F0 - .align 2, 0 -_080610C8: .4byte gPlayerEntity -_080610CC: .4byte 0x000008FF -_080610D0: - ldr r0, _080610E4 @ =0x000018FF - cmp r1, r0 - bgt _080610EC - ldr r4, _080610E8 @ =0xFFFFF700 - adds r0, r1, r4 - asrs r0, r0, #4 - movs r1, #0x90 - lsls r1, r1, #1 - adds r0, r0, r1 - b _080610F0 - .align 2, 0 -_080610E4: .4byte 0x000018FF -_080610E8: .4byte 0xFFFFF700 -_080610EC: - movs r0, #0x88 - lsls r0, r0, #2 -_080610F0: - strh r0, [r3, #0x24] - movs r2, #0x24 - ldrsh r1, [r3, r2] - movs r0, #0x90 - lsls r0, r0, #1 - cmp r1, r0 - bne _08061102 - movs r4, #4 - b _0806110C -_08061102: - ldr r0, _0806111C @ =0x0000015F - movs r4, #0xc - cmp r1, r0 - bgt _0806110C - movs r4, #8 -_0806110C: - adds r0, r3, #0 - adds r1, r5, #0 - adds r2, r6, #0 - adds r3, r4, #0 - bl sub_08061120 - pop {r4, r5, r6, pc} - .align 2, 0 -_0806111C: .4byte 0x0000015F - - thumb_func_start sub_08061120 -sub_08061120: @ 0x08061120 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r4, r1, #0 - adds r5, r2, #0 - adds r7, r3, #0 - movs r1, #0x2e - ldrsh r0, [r6, r1] - movs r2, #0x32 - ldrsh r1, [r6, r2] - adds r2, r4, #0 - adds r3, r5, #0 - bl sub_080045D4 - strb r0, [r6, #0x15] - adds r0, r6, #0 - adds r0, #0x6c - ldrb r0, [r0] - cmp r7, r0 - bne _08061158 - ldrb r0, [r6, #0x15] - ldrb r1, [r6, #0x14] - lsls r1, r1, #2 - subs r0, r0, r1 - adds r0, #5 - movs r1, #0x1f - ands r0, r1 - cmp r0, #0xa - ble _0806116C -_08061158: - ldrb r0, [r6, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r0, r0, #2 - strb r0, [r6, #0x14] - adds r0, r6, #0 - adds r1, r7, #0 - bl sub_08060E70 -_0806116C: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08061170 -sub_08061170: @ 0x08061170 - push {r4, r5, lr} - adds r4, r0, #0 - bl UpdateAnimationSingleFrame - adds r0, r4, #0 - bl sub_080AF1EC - cmp r0, #0 - bne _080611CA - adds r0, r4, #0 - bl sub_080611D4 - adds r5, r0, #0 - cmp r5, #0xff - beq _080611C6 - movs r0, #6 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl sub_08079FD4 - lsls r0, r0, #4 - subs r0, #4 - lsls r0, r0, #0xc - str r0, [r4, #0x20] - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r4, #0x24] - strb r5, [r4, #0x15] - lsrs r1, r5, #2 - strb r1, [r4, #0x14] - lsrs r0, r0, #0x10 - cmp r0, #0 - beq _080611BE - adds r0, r4, #0 - movs r1, #0x14 - bl sub_08060E70 - b _080611C6 -_080611BE: - adds r0, r4, #0 - movs r1, #0x18 - bl sub_08060E70 -_080611C6: - movs r0, #0 - b _080611D2 -_080611CA: - adds r0, r4, #0 - bl sub_08016AD2 - movs r0, #1 -_080611D2: - pop {r4, r5, pc} - - thumb_func_start sub_080611D4 -sub_080611D4: @ 0x080611D4 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x14] - movs r0, #6 - ands r0, r1 - ldr r1, _08061218 @ =gUnk_0810AC4C - adds r0, r0, r1 - movs r1, #0 - ldrsb r1, [r0, r1] - movs r2, #1 - ldrsb r2, [r0, r2] - adds r0, r4, #0 - bl sub_080002B4 - adds r3, r0, #0 - ldr r2, _0806121C @ =gUnk_0810AC54 -_080611F4: - ldrb r0, [r2] - cmp r0, r3 - bne _08061220 - ldrb r0, [r2, #1] - ldrb r1, [r4, #0x14] - lsrs r0, r0, #2 - cmp r1, r0 - bne _08061220 - ldrb r0, [r4, #0xf] - adds r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #7 - bls _0806122A - ldrb r0, [r2, #1] - b _0806122C - .align 2, 0 -_08061218: .4byte gUnk_0810AC4C -_0806121C: .4byte gUnk_0810AC54 -_08061220: - adds r2, #2 - ldrb r0, [r2] - cmp r0, #0 - bne _080611F4 - strb r0, [r4, #0xf] -_0806122A: - movs r0, #0xff -_0806122C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08061230 -sub_08061230: @ 0x08061230 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x64] - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08061302 - adds r1, r4, #0 - adds r1, #0x41 - ldrb r3, [r1] - movs r0, #0x80 - ands r0, r3 - adds r2, r1, #0 - cmp r0, #0 - beq _0806133A - movs r0, #0x7f - ands r0, r3 - cmp r0, #0x1f - bhi _080612E8 - lsls r0, r0, #2 - ldr r1, _08061264 @ =_08061268 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08061264: .4byte _08061268 -_08061268: @ jump table - .4byte _0806133A @ case 0 - .4byte _0806133A @ case 1 - .4byte _0806133A @ case 2 - .4byte _0806133A @ case 3 - .4byte _080612E8 @ case 4 - .4byte _080612E8 @ case 5 - .4byte _080612E8 @ case 6 - .4byte _080612E8 @ case 7 - .4byte _080612E8 @ case 8 - .4byte _080612E8 @ case 9 - .4byte _080612E8 @ case 10 - .4byte _080612E8 @ case 11 - .4byte _080612E8 @ case 12 - .4byte _080612E8 @ case 13 - .4byte _080612E8 @ case 14 - .4byte _0806133A @ case 15 - .4byte _080612E8 @ case 16 - .4byte _080612E8 @ case 17 - .4byte _080612E8 @ case 18 - .4byte _0806133A @ case 19 - .4byte _080612E8 @ case 20 - .4byte _080612E8 @ case 21 - .4byte _080612E8 @ case 22 - .4byte _080612E8 @ case 23 - .4byte _080612E8 @ case 24 - .4byte _080612E8 @ case 25 - .4byte _080612E8 @ case 26 - .4byte _0806133A @ case 27 - .4byte _080612E8 @ case 28 - .4byte _080612E8 @ case 29 - .4byte _0806133A @ case 30 - .4byte _0806133A @ case 31 -_080612E8: - ldr r2, [r4, #0x64] - ldrb r1, [r2] - movs r0, #1 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 - adds r1, #0x40 - adds r0, r4, #0 - bl InitAnimationForceUpdate - movs r0, #1 - b _08061356 -_08061302: - 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 - bne _0806131A - movs r0, #1 - b _08061356 -_0806131A: - ldr r2, [r4, #0x64] - ldrb r1, [r2] - movs r0, #0xfe - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x6c - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 - ldrb r0, [r0] - adds r1, r1, r0 - adds r0, r4, #0 - bl InitAnimationForceUpdate - adds r2, r4, #0 - adds r2, #0x41 -_0806133A: - ldrb r0, [r2] - movs r1, #0x7f - ands r1, r0 - strb r1, [r2] - adds r1, r4, #0 - adds r1, #0x3d - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08061354 - adds r0, r2, #1 - strb r0, [r1] -_08061354: - movs r0, #0 -_08061356: - pop {r4, pc} - - thumb_func_start sub_08061358 -sub_08061358: @ 0x08061358 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xd] - cmp r5, #1 - beq _0806139C - cmp r5, #1 - bgt _0806136C - cmp r5, #0 - beq _08061376 - b _08061460 -_0806136C: - cmp r5, #2 - beq _080613D0 - cmp r5, #3 - beq _0806141E - b _08061460 -_08061376: - 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 _08061460 - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0xf - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0 - bl sub_08060E70 - b _08061460 -_0806139C: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08061460 - bl Random - adds r6, r0, #0 - ands r5, r6 - cmp r5, #0 - beq _080613FA - movs r0, #2 - strb r0, [r4, #0xd] - ldr r3, _080613CC @ =gUnk_0810AC5D - ldrb r0, [r4, #0x14] - lsls r0, r0, #1 - lsrs r1, r6, #4 - movs r2, #3 - ands r1, r2 - adds r0, r0, r1 - adds r0, r0, r3 - b _0806143A - .align 2, 0 -_080613CC: .4byte gUnk_0810AC5D -_080613D0: - 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 _08061460 - movs r0, #0x18 - ands r0, r1 - lsrs r0, r0, #2 - strb r0, [r4, #0x14] - bl Random - adds r1, r0, #0 - movs r0, #1 - ands r1, r0 - cmp r1, #0 - beq _08061412 -_080613FA: - movs r0, #3 - strb r0, [r4, #0xd] - movs r0, #0x18 - ands r6, r0 - adds r0, r6, #0 - adds r0, #0x1e - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #4 - bl sub_08060E70 - b _08061460 -_08061412: - strb r1, [r4, #0xd] - adds r0, r4, #0 - movs r1, #0x10 - bl sub_08060E70 - b _08061460 -_0806141E: - adds r0, r4, #0 - bl sub_08061170 - cmp r0, #0 - bne _08061448 - movs r0, #2 - strb r0, [r4, #0xd] - ldr r2, _08061444 @ =gUnk_0810AC5D - ldrb r0, [r4, #0x14] - lsls r0, r0, #1 - lsrs r1, r6, #4 - ands r1, r5 - adds r0, r0, r1 - adds r0, r0, r2 -_0806143A: - ldrb r1, [r0] - adds r0, r4, #0 - bl InitAnimationForceUpdate - b _08061460 - .align 2, 0 -_08061444: .4byte gUnk_0810AC5D -_08061448: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _08061460 - strb r0, [r4, #0xd] - adds r0, r4, #0 - movs r1, #0x10 - bl sub_08060E70 -_08061460: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08061464 -sub_08061464: @ 0x08061464 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r4, r0, #0 - mov r8, r1 - adds r5, r2, #0 - movs r0, #0x2e - ldrsh r7, [r4, r0] - movs r1, #0x32 - ldrsh r6, [r4, r1] - adds r0, r7, #0 - adds r1, r6, #0 - mov r2, r8 - adds r3, r5, #0 - bl sub_080045D4 - adds r0, #2 - movs r1, #0x1c - ands r0, r1 - lsrs r0, r0, #2 - cmp r0, #7 - bls _08061494 - b _08061612 -_08061494: - lsls r0, r0, #2 - ldr r1, _080614A0 @ =_080614A4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080614A0: .4byte _080614A4 -_080614A4: @ jump table - .4byte _080614C4 @ case 0 - .4byte _080614E2 @ case 1 - .4byte _08061514 @ case 2 - .4byte _08061544 @ case 3 - .4byte _08061566 @ case 4 - .4byte _08061584 @ case 5 - .4byte _080615B4 @ case 6 - .4byte _080615E4 @ case 7 -_080614C4: - adds r0, r4, #0 - adds r0, #0x6e - strh r5, [r0] - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, r8 - ble _08061504 - adds r2, r6, #0 - subs r2, #8 - adds r0, r4, #0 - adds r1, r7, #0 - mov r3, r8 - bl sub_08061630 - b _08061612 -_080614E2: - movs r0, #0x6e - adds r0, r0, r4 - mov sb, r0 - mov r1, r8 - strh r1, [r0] - adds r1, r7, #0 - adds r1, #8 - adds r0, r4, #0 - adds r2, r6, #0 - adds r3, r5, #0 - bl sub_08061720 - cmp r0, #0 - beq _08061500 - b _08061612 -_08061500: - mov r0, sb - strh r5, [r0] -_08061504: - adds r2, r6, #0 - subs r2, #8 - adds r0, r4, #0 - adds r1, r7, #0 - mov r3, r8 - bl sub_080616A8 - b _08061612 -_08061514: - adds r0, r4, #0 - adds r0, #0x6e - mov r1, r8 - strh r1, [r0] - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, r5 - ble _08061534 - adds r1, r7, #0 - adds r1, #8 - adds r0, r4, #0 - adds r2, r6, #0 - adds r3, r5, #0 - bl sub_08061720 - b _08061612 -_08061534: - adds r1, r7, #0 - adds r1, #8 - adds r0, r4, #0 - adds r2, r6, #0 - adds r3, r5, #0 - bl sub_08061798 - b _08061612 -_08061544: - movs r0, #0x6e - adds r0, r0, r4 - mov sb, r0 - mov r1, r8 - strh r1, [r0] - adds r1, r7, #0 - adds r1, #8 - adds r0, r4, #0 - adds r2, r6, #0 - adds r3, r5, #0 - bl sub_08061798 - cmp r0, #0 - bne _08061612 - mov r0, sb - strh r5, [r0] - b _08061574 -_08061566: - adds r0, r4, #0 - adds r0, #0x6e - strh r5, [r0] - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, r8 - bgt _080615A4 -_08061574: - adds r2, r6, #0 - adds r2, #8 - adds r0, r4, #0 - adds r1, r7, #0 - mov r3, r8 - bl sub_08061888 - b _08061612 -_08061584: - movs r0, #0x6e - adds r0, r0, r4 - mov sb, r0 - mov r1, r8 - strh r1, [r0] - adds r1, r7, #0 - subs r1, #8 - adds r0, r4, #0 - adds r2, r6, #0 - adds r3, r5, #0 - bl sub_08061978 - cmp r0, #0 - bne _08061612 - mov r0, sb - strh r5, [r0] -_080615A4: - adds r2, r6, #0 - adds r2, #8 - adds r0, r4, #0 - adds r1, r7, #0 - mov r3, r8 - bl sub_08061810 - b _08061612 -_080615B4: - adds r0, r4, #0 - adds r0, #0x6e - mov r1, r8 - strh r1, [r0] - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, r5 - ble _080615D4 - adds r1, r7, #0 - subs r1, #8 - adds r0, r4, #0 - adds r2, r6, #0 - adds r3, r5, #0 - bl sub_08061900 - b _08061612 -_080615D4: - adds r1, r7, #0 - subs r1, #8 - adds r0, r4, #0 - adds r2, r6, #0 - adds r3, r5, #0 - bl sub_08061978 - b _08061612 -_080615E4: - movs r0, #0x6e - adds r0, r0, r4 - mov sb, r0 - mov r1, r8 - strh r1, [r0] - adds r1, r7, #0 - subs r1, #8 - adds r0, r4, #0 - adds r2, r6, #0 - adds r3, r5, #0 - bl sub_08061900 - cmp r0, #0 - bne _08061612 - mov r0, sb - strh r5, [r0] - adds r2, r6, #0 - subs r2, #8 - adds r0, r4, #0 - adds r1, r7, #0 - mov r3, r8 - bl sub_08061630 -_08061612: - ldr r0, [r4, #0x64] - ldrb r1, [r0] - movs r0, #8 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _08061628 - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_08061628: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08061630 -sub_08061630: @ 0x08061630 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - adds r6, r1, #0 - adds r4, r2, #0 - mov sb, r3 - mov r8, r4 - adds r0, #0x38 - ldrb r0, [r0] - ldr r7, _08061650 @ =gUnk_02027EB4 - cmp r0, #2 - bne _0806168C - ldr r7, _08061654 @ =gUnk_0200D654 - b _0806168C - .align 2, 0 -_08061650: .4byte gUnk_02027EB4 -_08061654: .4byte gUnk_0200D654 -_08061658: - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r4, #0 - mov r3, sb - bl sub_08061A74 - cmp r0, #0 - beq _0806168A - ldr r0, [r5, #0x64] - strh r6, [r0, #0xe] - ldr r0, [r5, #0x64] - mov r1, r8 - strh r1, [r0, #0x10] - ldr r2, [r5, #0x64] - ldrb r1, [r2] - movs r0, #8 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x6e - ldrh r0, [r0] - cmp r0, r4 - blt _0806168A - movs r0, #1 - b _0806169E -_0806168A: - subs r4, #8 -_0806168C: - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r4, #0 - movs r3, #6 - bl sub_080AE4CC - cmp r0, #0 - beq _08061658 - movs r0, #0 -_0806169E: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_080616A8 -sub_080616A8: @ 0x080616A8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - adds r6, r1, #0 - adds r4, r2, #0 - mov sb, r3 - mov r8, r4 - adds r0, #0x38 - ldrb r0, [r0] - ldr r7, _080616C8 @ =gUnk_02027EB4 - cmp r0, #2 - bne _08061704 - ldr r7, _080616CC @ =gUnk_0200D654 - b _08061704 - .align 2, 0 -_080616C8: .4byte gUnk_02027EB4 -_080616CC: .4byte gUnk_0200D654 -_080616D0: - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r4, #0 - mov r3, sb - bl sub_08061A1C - cmp r0, #0 - beq _08061702 - ldr r0, [r5, #0x64] - strh r6, [r0, #0xe] - ldr r0, [r5, #0x64] - mov r1, r8 - strh r1, [r0, #0x10] - ldr r2, [r5, #0x64] - ldrb r1, [r2] - movs r0, #8 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x6e - ldrh r0, [r0] - cmp r0, r4 - blt _08061702 - movs r0, #1 - b _08061716 -_08061702: - subs r4, #8 -_08061704: - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r4, #0 - movs r3, #6 - bl sub_080AE4CC - cmp r0, #0 - beq _080616D0 - movs r0, #0 -_08061716: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08061720 -sub_08061720: @ 0x08061720 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - adds r4, r1, #0 - adds r6, r2, #0 - mov sb, r3 - mov r8, r4 - adds r0, #0x38 - ldrb r0, [r0] - ldr r7, _08061740 @ =gUnk_02027EB4 - cmp r0, #2 - bne _0806177C - ldr r7, _08061744 @ =gUnk_0200D654 - b _0806177C - .align 2, 0 -_08061740: .4byte gUnk_02027EB4 -_08061744: .4byte gUnk_0200D654 -_08061748: - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r6, #0 - mov r3, sb - bl sub_080619F0 - cmp r0, #0 - beq _0806177A - ldr r0, [r5, #0x64] - mov r1, r8 - strh r1, [r0, #0xe] - ldr r0, [r5, #0x64] - strh r6, [r0, #0x10] - ldr r2, [r5, #0x64] - ldrb r1, [r2] - movs r0, #8 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x6e - ldrh r0, [r0] - cmp r0, r4 - bgt _0806177A - movs r0, #1 - b _0806178E -_0806177A: - adds r4, #8 -_0806177C: - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r6, #0 - movs r3, #6 - bl sub_080AE4CC - cmp r0, #0 - beq _08061748 - movs r0, #0 -_0806178E: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08061798 -sub_08061798: @ 0x08061798 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - adds r4, r1, #0 - adds r6, r2, #0 - mov sb, r3 - mov r8, r4 - adds r0, #0x38 - ldrb r0, [r0] - ldr r7, _080617B8 @ =gUnk_02027EB4 - cmp r0, #2 - bne _080617F4 - ldr r7, _080617BC @ =gUnk_0200D654 - b _080617F4 - .align 2, 0 -_080617B8: .4byte gUnk_02027EB4 -_080617BC: .4byte gUnk_0200D654 -_080617C0: - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r6, #0 - mov r3, sb - bl sub_08061A48 - cmp r0, #0 - beq _080617F2 - ldr r0, [r5, #0x64] - mov r1, r8 - strh r1, [r0, #0xe] - ldr r0, [r5, #0x64] - strh r6, [r0, #0x10] - ldr r2, [r5, #0x64] - ldrb r1, [r2] - movs r0, #8 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x6e - ldrh r0, [r0] - cmp r0, r4 - bgt _080617F2 - movs r0, #1 - b _08061806 -_080617F2: - adds r4, #8 -_080617F4: - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r6, #0 - movs r3, #6 - bl sub_080AE4CC - cmp r0, #0 - beq _080617C0 - movs r0, #0 -_08061806: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08061810 -sub_08061810: @ 0x08061810 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - adds r6, r1, #0 - adds r4, r2, #0 - mov sb, r3 - mov r8, r4 - adds r0, #0x38 - ldrb r0, [r0] - ldr r7, _08061830 @ =gUnk_02027EB4 - cmp r0, #2 - bne _0806186C - ldr r7, _08061834 @ =gUnk_0200D654 - b _0806186C - .align 2, 0 -_08061830: .4byte gUnk_02027EB4 -_08061834: .4byte gUnk_0200D654 -_08061838: - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r4, #0 - mov r3, sb - bl sub_08061A74 - cmp r0, #0 - beq _0806186A - ldr r0, [r5, #0x64] - strh r6, [r0, #0xe] - ldr r0, [r5, #0x64] - mov r1, r8 - strh r1, [r0, #0x10] - ldr r2, [r5, #0x64] - ldrb r1, [r2] - movs r0, #8 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x6e - ldrh r0, [r0] - cmp r0, r4 - bgt _0806186A - movs r0, #1 - b _0806187E -_0806186A: - adds r4, #8 -_0806186C: - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r4, #0 - movs r3, #6 - bl sub_080AE4CC - cmp r0, #0 - beq _08061838 - movs r0, #0 -_0806187E: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08061888 -sub_08061888: @ 0x08061888 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - adds r6, r1, #0 - adds r4, r2, #0 - mov sb, r3 - mov r8, r4 - adds r0, #0x38 - ldrb r0, [r0] - ldr r7, _080618A8 @ =gUnk_02027EB4 - cmp r0, #2 - bne _080618E4 - ldr r7, _080618AC @ =gUnk_0200D654 - b _080618E4 - .align 2, 0 -_080618A8: .4byte gUnk_02027EB4 -_080618AC: .4byte gUnk_0200D654 -_080618B0: - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r4, #0 - mov r3, sb - bl sub_08061A1C - cmp r0, #0 - beq _080618E2 - ldr r0, [r5, #0x64] - strh r6, [r0, #0xe] - ldr r0, [r5, #0x64] - mov r1, r8 - strh r1, [r0, #0x10] - ldr r2, [r5, #0x64] - ldrb r1, [r2] - movs r0, #8 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x6e - ldrh r0, [r0] - cmp r0, r4 - bgt _080618E2 - movs r0, #1 - b _080618F6 -_080618E2: - adds r4, #8 -_080618E4: - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r4, #0 - movs r3, #6 - bl sub_080AE4CC - cmp r0, #0 - beq _080618B0 - movs r0, #0 -_080618F6: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08061900 -sub_08061900: @ 0x08061900 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - adds r4, r1, #0 - adds r6, r2, #0 - mov sb, r3 - mov r8, r4 - adds r0, #0x38 - ldrb r0, [r0] - ldr r7, _08061920 @ =gUnk_02027EB4 - cmp r0, #2 - bne _0806195C - ldr r7, _08061924 @ =gUnk_0200D654 - b _0806195C - .align 2, 0 -_08061920: .4byte gUnk_02027EB4 -_08061924: .4byte gUnk_0200D654 -_08061928: - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r6, #0 - mov r3, sb - bl sub_080619F0 - cmp r0, #0 - beq _0806195A - ldr r0, [r5, #0x64] - mov r1, r8 - strh r1, [r0, #0xe] - ldr r0, [r5, #0x64] - strh r6, [r0, #0x10] - ldr r2, [r5, #0x64] - ldrb r1, [r2] - movs r0, #8 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x6e - ldrh r0, [r0] - cmp r0, r4 - blt _0806195A - movs r0, #1 - b _0806196E -_0806195A: - subs r4, #8 -_0806195C: - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r6, #0 - movs r3, #6 - bl sub_080AE4CC - cmp r0, #0 - beq _08061928 - movs r0, #0 -_0806196E: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08061978 -sub_08061978: @ 0x08061978 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - adds r4, r1, #0 - adds r6, r2, #0 - mov sb, r3 - mov r8, r4 - adds r0, #0x38 - ldrb r0, [r0] - ldr r7, _08061998 @ =gUnk_02027EB4 - cmp r0, #2 - bne _080619D4 - ldr r7, _0806199C @ =gUnk_0200D654 - b _080619D4 - .align 2, 0 -_08061998: .4byte gUnk_02027EB4 -_0806199C: .4byte gUnk_0200D654 -_080619A0: - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r6, #0 - mov r3, sb - bl sub_08061A48 - cmp r0, #0 - beq _080619D2 - ldr r0, [r5, #0x64] - mov r1, r8 - strh r1, [r0, #0xe] - ldr r0, [r5, #0x64] - strh r6, [r0, #0x10] - ldr r2, [r5, #0x64] - ldrb r1, [r2] - movs r0, #8 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x6e - ldrh r0, [r0] - cmp r0, r4 - blt _080619D2 - movs r0, #1 - b _080619E6 -_080619D2: - subs r4, #8 -_080619D4: - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r6, #0 - movs r3, #6 - bl sub_080AE4CC - cmp r0, #0 - beq _080619A0 - movs r0, #0 -_080619E6: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_080619F0 -sub_080619F0: @ 0x080619F0 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r6, r1, #0 - adds r4, r2, #0 - adds r5, r3, #0 - cmp r5, r4 - bgt _08061A18 -_080619FE: - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r4, #0 - movs r3, #6 - bl sub_080AE4CC - cmp r0, #0 - beq _08061A12 - movs r0, #0 - b _08061A1A -_08061A12: - subs r4, #8 - cmp r5, r4 - ble _080619FE -_08061A18: - movs r0, #1 -_08061A1A: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08061A1C -sub_08061A1C: @ 0x08061A1C - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r4, r1, #0 - adds r6, r2, #0 - adds r5, r3, #0 - cmp r5, r4 - blt _08061A44 -_08061A2A: - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r6, #0 - movs r3, #6 - bl sub_080AE4CC - cmp r0, #0 - beq _08061A3E - movs r0, #0 - b _08061A46 -_08061A3E: - adds r4, #8 - cmp r5, r4 - bge _08061A2A -_08061A44: - movs r0, #1 -_08061A46: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08061A48 -sub_08061A48: @ 0x08061A48 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r6, r1, #0 - adds r4, r2, #0 - adds r5, r3, #0 - cmp r5, r4 - blt _08061A70 -_08061A56: - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r4, #0 - movs r3, #6 - bl sub_080AE4CC - cmp r0, #0 - beq _08061A6A - movs r0, #0 - b _08061A72 -_08061A6A: - adds r4, #8 - cmp r5, r4 - bge _08061A56 -_08061A70: - movs r0, #1 -_08061A72: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08061A74 -sub_08061A74: @ 0x08061A74 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r4, r1, #0 - adds r6, r2, #0 - adds r5, r3, #0 - cmp r5, r4 - bgt _08061A9C -_08061A82: - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r6, #0 - movs r3, #6 - bl sub_080AE4CC - cmp r0, #0 - beq _08061A96 - movs r0, #0 - b _08061A9E -_08061A96: - subs r4, #8 - cmp r5, r4 - ble _08061A82 -_08061A9C: - movs r0, #1 -_08061A9E: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08061AA0 -sub_08061AA0: @ 0x08061AA0 - push {lr} - bl DeleteThisEntity - pop {pc} - - thumb_func_start sub_08061AA8 -sub_08061AA8: @ 0x08061AA8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08061AC8 @ =gUnk_0810AC70 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl CopyPosition - pop {r4, pc} - .align 2, 0 -_08061AC8: .4byte gUnk_0810AC70 - - thumb_func_start sub_08061ACC -sub_08061ACC: @ 0x08061ACC - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #0x20 - movs r2, #0 - orrs r0, r1 - strb r0, [r4, #0x10] - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0xff - strb r0, [r4, #0xd] - strb r2, [r4, #0xe] - ldrb r1, [r4, #0x17] - movs r0, #0xfe - ands r0, r1 - strb r0, [r4, #0x17] - adds r0, r4, #0 - bl sub_08078778 - adds r0, r4, #0 - bl sub_08061AFC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08061AFC -sub_08061AFC: @ 0x08061AFC - push {lr} - adds r1, r0, #0 - movs r2, #0 - ldrb r0, [r1, #0xd] - cmp r0, #0 - beq _08061B12 - strb r2, [r1, #0xd] - ldr r0, _08061B14 @ =gUnk_0810B660 - ldr r0, [r0] - str r0, [r1, #0x68] - strb r2, [r1, #0xe] -_08061B12: - pop {pc} - .align 2, 0 -_08061B14: .4byte gUnk_0810B660 - - thumb_func_start sub_08061B18 -sub_08061B18: @ 0x08061B18 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08061B54 - cmp r0, #1 - bne _08061B54 - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08061AFC - ldr r2, [r4, #0x68] - ldrb r0, [r4, #0xe] - adds r1, r0, #1 - strb r1, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r2, r2, r0 - ldrh r0, [r2, #2] - cmp r0, #0 - bne _08061B4C - strb r0, [r4, #0xe] -_08061B4C: - ldrh r0, [r2] - adds r1, r4, #0 - bl TextboxNoOverlap -_08061B54: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08061B58 -sub_08061B58: @ 0x08061B58 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08061B6E - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl InitAnimationForceUpdate -_08061B6E: - ldr r0, _08061B88 @ =gScreenTransition - adds r0, #0x2c - ldrb r0, [r0] - cmp r0, #2 - bne _08061B7E - adds r0, r4, #0 - bl UpdateAnimationSingleFrame -_08061B7E: - adds r0, r4, #0 - bl sub_0806FD3C - pop {r4, pc} - .align 2, 0 -_08061B88: .4byte gScreenTransition diff --git a/linker.ld b/linker.ld index 62e2c4ab..7da2ddea 100644 --- a/linker.ld +++ b/linker.ld @@ -555,7 +555,6 @@ SECTIONS { src/npc/postman.o(.text); asm/postman.o(.text); src/npc/npc5.o(.text); - asm/npc5.o(.text); src/npc/townsperson.o(.text); asm/kid.o(.text); src/npc/npc9.o(.text); diff --git a/src/npc/npc5.c b/src/npc/npc5.c new file mode 100644 index 00000000..6d1a7699 --- /dev/null +++ b/src/npc/npc5.c @@ -0,0 +1,943 @@ +#include "global.h" +#include "entity.h" +#include "player.h" +#include "room.h" +#include "coord.h" +#include "random.h" +#include "utils.h" +#include "functions.h" +#include "textbox.h" + +extern void (*const gUnk_0810AC1C[])(Entity*); + +extern void (*const gUnk_0810AC2C[])(Entity*); + +typedef struct { + u8 unk_0; // u8 + u8 unk_0b; // u8 + u16 unk_1; // u16 + u16 unk_2; // u16 + u16 unk_3; + u16 unk_4; + u16 unk_5; // u16 + u16 unk_6; // u16 + u16 unk_7; // u16 + u16 unk_8; // u16 +} UnkHeap; + +extern Hitbox gUnk_080FD150; + +void sub_08060E70(Entity*, u32); + +u32 sub_08061230(Entity*); +u32 sub_08060F80(Entity*); +void sub_08060EDC(Entity*); +void sub_08061090(Entity*, u32, u32); + +bool32 sub_08060FD0(Entity*, u32, u32); +void sub_08061464(Entity*, u32, u32); +void sub_08061120(Entity*, u32, u32, u32); +bool32 sub_08061170(Entity*); + +void sub_08061358(Entity*); + +void sub_08060E94(Entity*); + +u32 sub_0806FCD0(u32, u32, u32); + +extern Entity gUnk_0200D654; +extern Entity gUnk_02027EB4; +extern bool32 sub_080AE4CC(Entity*, u32, u32, u32); + +extern u32 sub_080AF1EC(Entity*); +u32 sub_080611D4(Entity*); +extern u32 sub_08079FD4(Entity*, u32); +extern void sub_08016AD2(Entity*); + +extern struct { + s8 unk_0; + s8 unk_1; +} gUnk_0810AC4C[]; +extern u8 gUnk_0810AC54[8]; +extern u32 sub_080002B4(Entity*, u32, u32); + +extern u8 gUnk_0810AC5D; + +bool32 sub_08061630(Entity*, s32, s32, s32); +bool32 sub_08061720(Entity*, s32, s32, s32); +bool32 sub_080616A8(Entity*, s32, s32, s32); +bool32 sub_08061798(Entity*, s32, s32, s32); +bool32 sub_08061888(Entity*, s32, s32, s32); +bool32 sub_08061978(Entity*, s32, s32, s32); +bool32 sub_08061810(Entity*, s32, s32, s32); +bool32 sub_08061900(Entity*, s32, s32, s32); + +bool32 sub_08061A74(Entity*, s32, s32, s32); + +bool32 sub_08061A1C(Entity*, s32, s32, s32); + +bool32 sub_080619F0(Entity*, s32, s32, s32); + +bool32 sub_08061A48(Entity*, s32, s32, s32); + +extern void (*const gUnk_0810AC70[])(Entity*); + +void sub_08061AFC(Entity*); + +extern u16* gUnk_0810B660[8]; + +void NPC5(Entity* this) { + gUnk_0810AC1C[this->type](this); +} + +void sub_08060A00(Entity* this) { + u32 tmp; + + if ((gPlayerState.jumpStatus & 0x80) != 0) { + if (this->action != 0) { + if (((((UnkHeap*)this->myHeap)->unk_0) & 4) == 0) { + ((UnkHeap*)this->myHeap)->unk_0 |= 4; + ((UnkHeap*)this->myHeap)->unk_5 = (gPlayerEntity.x.HALF.HI & 0xfff0) + 8; + ((UnkHeap*)this->myHeap)->unk_6 = (gPlayerEntity.y.HALF.HI & 0xfff0) + 8; + } + } + } + + if ((this->action == 0) || (this->spriteSettings.b.draw != 0)) { + gUnk_0810AC2C[this->action](this); + } + + if (this->action != 0) { + ((UnkHeap*)this->myHeap)->unk_1 = gPlayerEntity.x.HALF.HI; + ((UnkHeap*)this->myHeap)->unk_2 = gPlayerEntity.y.HALF.HI; + } + if (this->field_0x74.HWORD != gRoomControls.roomID) { + this->field_0x74.HWORD = gRoomControls.roomID; + CopyPosition(&gPlayerEntity, this); + this->action = 1; + this->spriteSettings.b.draw = 1; + this->speed = 0x120; + tmp = gRoomControls.filler[0]; + this->animationState = tmp * 2; + InitAnimationForceUpdate(this, tmp << 0x19 >> 0x19); // TODO some conversion between u8 and u32? + this->frameDuration = (Random() & 0x7f) + 0x80; + ((UnkHeap*)this->myHeap)->unk_0 &= 0xfb; + } +} + +void sub_08060AE0(Entity* this) { + UnkHeap* heapObj; + Entity* otherNpc; + + heapObj = (UnkHeap*)zMalloc(0x14); // TODO UnkHeap struct should have size 0x14? + if (heapObj != NULL) { + this->myHeap = (u32*)heapObj; + heapObj->unk_0b = 0x20; + this->action = 1; + this->flags |= 0x80; + this->animationState &= 3; + this->field_0x3c = 7; + this->field_0x40 = 0x48; + this->damageType = 0x49; + this->flags2 = 3; + this->hitbox = &gUnk_080FD150; + this->field_0x17 &= 0xfe; + this->field_0x6c.HALF.LO = 0xff; + sub_08060E70(this, this->animationState); + otherNpc = CreateNPC(5, 2, 0); + if (otherNpc != NULL) { + otherNpc->parent = this; + *(Entity**)&this->field_0x78 = otherNpc; + } + } +} + +void sub_08060B5C(Entity* this) { + if (sub_08061230(this) == 0) { + if ((sub_08060F80(this) == 0) && + (((GetFacingDirection(this, &gPlayerEntity) + (this->animationState * -4) + 4) & 0x1f)) < 9) { + this->action = 2; + this->field_0xf = 0; + return; + } + sub_08060EDC(this); + } +} + +void sub_08060BA0(Entity* this) { + Entity* r5; + + if (sub_08061230(this) != 0) { + return; + } + if ((((UnkHeap*)this->myHeap)->unk_0 & 4) != 0) { + if ((((UnkHeap*)this->myHeap)->unk_0 & 8) != 0) { + this->speed = 0x1e0; + sub_08061120(this, ((UnkHeap*)this->myHeap)->unk_7, ((UnkHeap*)this->myHeap)->unk_8, 0xc); + sub_08061170(this); + if (sub_0806FCB8(this, ((UnkHeap*)this->myHeap)->unk_7, ((UnkHeap*)this->myHeap)->unk_8, 4) != 0) { + ((UnkHeap*)this->myHeap)->unk_0 &= 0xf7; + } + } else { + if (sub_08060FD0(this, ((UnkHeap*)this->myHeap)->unk_5, ((UnkHeap*)this->myHeap)->unk_6) != 0) { + if (sub_0806FCB8(this, ((UnkHeap*)this->myHeap)->unk_5, ((UnkHeap*)this->myHeap)->unk_6, 4) != 0) { + ((UnkHeap*)this->myHeap)->unk_0 &= 0xfb; + this->action = 5; + this->direction = r5->direction; + this->speed = 0x160; + sub_08060E70(this, 8); + } else { + this->speed = 0x1e0; + sub_08061120(this, r5->x.HALF.HI, r5->y.HALF.HI, 0xc); + sub_08061170(this); + } + } else { + sub_08061464(this, r5->x.HALF.HI, r5->y.HALF.HI); + } + } + + } else { + if (sub_08060FD0(this, gPlayerEntity.x.HALF.HI, gPlayerEntity.y.HALF.HI) != 0) { + sub_08061090(this, gPlayerEntity.x.HALF.HI, gPlayerEntity.y.HALF.HI); + sub_08061170(this); + ((UnkHeap*)this->myHeap)->unk_0 &= 0xf5; + } else { + ((UnkHeap*)this->myHeap) = (UnkHeap*)this->myHeap; + if ((((UnkHeap*)this->myHeap)->unk_0 & 8) != 0) { + this->speed = 0x1e0; + sub_08061120(this, ((UnkHeap*)this->myHeap)->unk_7, ((UnkHeap*)this->myHeap)->unk_8, 0xc); + sub_08061170(this); + if (sub_0806FCB8(this, ((UnkHeap*)this->myHeap)->unk_7, ((UnkHeap*)this->myHeap)->unk_8, 4) != 0) { + ((UnkHeap*)this->myHeap)->unk_0 &= 0xf7; + } + } else { + if ((((UnkHeap*)this->myHeap)->unk_0 & 2) == 0) { + ((UnkHeap*)this->myHeap)->unk_0 |= 2; + ((UnkHeap*)this->myHeap)->unk_3 = ((UnkHeap*)this->myHeap)->unk_1; + ((UnkHeap*)this->myHeap)->unk_4 = ((UnkHeap*)this->myHeap)->unk_2; + } + if (sub_08060FD0(this, ((UnkHeap*)this->myHeap)->unk_3, ((UnkHeap*)this->myHeap)->unk_4) != 0) { + this->speed = 0x1e0; + sub_08061120(this, ((UnkHeap*)this->myHeap)->unk_3, ((UnkHeap*)this->myHeap)->unk_4, 0xc); + sub_08061170(this); + if (sub_0806FCB8(this, ((UnkHeap*)this->myHeap)->unk_3, ((UnkHeap*)this->myHeap)->unk_4, 4) != 0) { + ((UnkHeap*)this->myHeap)->unk_0 &= 0xfd; + } + } else { + ((UnkHeap*)this->myHeap)->unk_0 &= 0xfd; + sub_08061464(this, gPlayerEntity.x.HALF.HI, gPlayerEntity.y.HALF.HI); + } + } + } + } + if (sub_08060F80(this) != 0) { + this->action = 1; + ((UnkHeap*)this->myHeap)->unk_0 &= 0xfb; + sub_08060E70(this, 0); + } +} + +void sub_08060D78(Entity* this) { + sub_08061358(this); + if (sub_08060F80(this) != 0) { + if ((u32)this->animIndex - 0x20 < 0x10) { + if ((this->frames.all & 7) != 0) { + this->frameDuration = 1; + UpdateAnimationSingleFrame(this); + } + this->animationState = this->frames.all & 0x18; + this->field_0x6c.HALF.LO = 0xff; + } + this->action = 1; + sub_08060E70(this, 0); + } +} + +void sub_08060DD0(Entity* this) { + UpdateAnimationSingleFrame(this); + if ((this->frames.all & 0x80) != 0) { + this->action = 1; + sub_08060E70(this, 0); + } +} + +void sub_08060DF4(Entity* this) { + sub_08061170(this); +} + +void sub_08060DFC(Entity* this) { + u32 uVar1; + + sub_0806F69C(this); + sub_08060E94(this); + uVar1 = sub_08003FC4(this, 0x2000); + if (uVar1 == 0) { + this->action = 7; + this->collisionLayer = 1; + UpdateSpriteForCollisionLayer(this); + sub_08060E70(this, 0x1c); + } +} + +void sub_08060E34(Entity* this) { + UpdateAnimationSingleFrame(this); + if ((this->frames.all & 0x80) != 0) { + this->action = 2; + this->animationState = DirectionToAnimationState(GetFacingDirection(this, &gPlayerEntity)) * 2; + sub_08060E70(this, 8); + } +} + +void sub_08060E70(Entity* this, u32 param) { + u32 tmp = param + this->animationState / 2; + if (tmp != this->animIndex) { + this->field_0x6c.HALF.LO = param; + InitAnimationForceUpdate(this, tmp); + } +} + +void sub_08060E94(Entity* this) { + if (((*(u32*)&this->animIndex & 0x80ff00) == 0x800100) && (this->animIndex < 4)) { + InitAnimationForceUpdate(this, (this->animationState >> 1)); + this->frameDuration = (Random() & 0x7f) + 0x80; + } else { + UpdateAnimationSingleFrame(this); + } +} + +void sub_08060EDC(Entity* this) { + s32 tmp; + + if (((u32)this->animIndex - 0x20 < 0x10) && ((this->frames.all & 0x80) == 0)) { + UpdateAnimationSingleFrame(this); + } else { + tmp = GetFacingDirection(this, &gPlayerEntity) + this->animationState * -4; + if (((tmp + 3) & 0x1f) >= 7) { + if ((tmp & 0x1f) < 0x10) { + InitAnimationForceUpdate(this, this->animationState + 0x20); + this->animationState = (this->animationState + 1) & 7; + } else { + InitAnimationForceUpdate(this, this->animationState + 0x28); + this->animationState = (this->animationState - 1) & 7; + } + } else { + if ((this->animationState & 1) == 0) { + if (((this->frames.all & 0x80) != 0) && (0xf >= (u32)this->animIndex - 0x20)) { + sub_08060E70(this, 0); + } else { + sub_08060E94(this); + } + } + } + } +} +u32 sub_08060F80(Entity* this) { + if (sub_08060FD0(this, (s32)gPlayerEntity.x.HALF.HI, (s32)gPlayerEntity.y.HALF.HI) == 0) { + return 0; + } + ((UnkHeap*)this->myHeap)->unk_0 &= 0xfb; + if (sub_0806FCD0(gPlayerEntity.x.HALF.HI - this->x.HALF.HI, gPlayerEntity.y.HALF.HI - this->y.HALF.HI, + ((UnkHeap*)this->myHeap)->unk_0b) != 0) { + return 1; + } + return 0; +} + +NONMATCH("asm/non_matching/npc5/sub_08060FD0.inc", bool32 sub_08060FD0(Entity* this, u32 a, u32 b)) { + u32 sVar1; + u32 sVar2; + u32 uVar3; + s32 iVar4; + s32 iVar5; + s32 iVar6; + u32 r6; + u32 r7; + Entity* puVar9; + r7 = this->x.HALF.HI; + r6 = this->y.HALF.HI; + // asm("c"); + uVar3 = sub_080045DA(a - r7, b - r6); + // asm("b"); + r7 = r7 << 8; + r6 = r6 << 8; + // asm("a"); + sVar1 = gSineTable[uVar3]; + // asm("b"); + sVar2 = gSineTable[uVar3 + 0x40]; + asm("c"); + puVar9 = &gUnk_0200D654; + if (this->collisionLayer != 2) { + puVar9 = &gUnk_02027EB4; + } +code0: + // for(;;) { + asm("k"); + if (r7 < 0) { + r7 += 0xff; + } + // asm("i"); + if (r6 < 0) { + // asm("j"); + r6 += 0xff; + } + // asm("k"); + // asm("m"); + if (sub_080AE4CC(puVar9, r7 >> 8, r6 >> 8, 6) != 0) { + return FALSE; + } + if (!(((a - (r7 >> 8)) + 6 < 0xd) && ((b - (r6 >> 8)) + 6 < 0xd))) { + r7 += sVar1 * 6; + r6 -= sVar2 * -6; + // asm("q"); + // asm("r"); + } else { + return TRUE; + + // asm("p"); + } + goto code0; +// }; +code4: + // asm("l"); + return FALSE; +} +END_NONMATCH + +void sub_08061090(Entity* this, u32 a, u32 b) { + s32 xDist; + s32 yDist; + s32 sqrDist; + u32 tmp; + + xDist = gPlayerEntity.x.HALF.HI - this->x.HALF.HI; + yDist = gPlayerEntity.y.HALF.HI - this->y.HALF.HI; + sqrDist = (xDist * xDist) + (yDist * yDist); + if (sqrDist < 0x900) { + this->speed = 0x120; + } else { + if (sqrDist < 0x1900) { + this->speed = ((sqrDist - 0x900) >> 4) + 0x120; + } else { + this->speed = 0x220; + } + } + if (this->speed == 0x120) { + tmp = 4; + } else if (this->speed < 0x160) { + tmp = 8; + } else { + tmp = 0xc; + } + sub_08061120(this, a, b, tmp); +} + +void sub_08061120(Entity* this, u32 param_a, u32 param_b, u32 param_c) { + this->direction = sub_080045D4(this->x.HALF.HI, this->y.HALF.HI, param_a, param_b); + if ((param_c != this->field_0x6c.HALF.LO) || (10 < ((this->direction + this->animationState * -4 + 5) & 0x1f))) { + this->animationState = DirectionRoundUp(this->direction) >> 2; + sub_08060E70(this, param_c); + } +} + +NONMATCH("asm/non_matching/npc5/sub_08061170.inc", bool32 sub_08061170(Entity* this)) { + u32 direction; + u32 tmp; + + UpdateAnimationSingleFrame(this); + if (sub_080AF1EC(this) == 0) { + direction = sub_080611D4(this); + if (direction != 0xff) { + this->action = 6; + tmp = (sub_08079FD4(this, 1) * 0x10 - 4); + // tmp <<= 0xc; + this->field_0x20 = tmp; + this->speed = 0x100; + this->direction = direction; + this->animationState = direction >> 2; + if (tmp >> 0x10 != 0) { + sub_08060E70(this, 0x14); + } else { + sub_08060E70(this, 0x18); + } + } + return FALSE; + } else { + sub_08016AD2(this); + return TRUE; + } +} +END_NONMATCH + +NONMATCH("asm/non_matching/npc5/sub_080611D4.inc", u32 sub_080611D4(Entity* this)) { + u8 bVar1; + u32 uVar2; + u8* pbVar3; + + u32 x; + s32 a; + s32 b; + x = this->animationState & 6; + // asm("a"); + a = gUnk_0810AC4C[x].unk_0; + // asm("c"); + b = gUnk_0810AC4C[x].unk_1; + // asm("d"); + uVar2 = sub_080002B4(this, a, b); +// asm("b"); +code4: + if ((gUnk_0810AC54[0] != uVar2 || (this->animationState != gUnk_0810AC54[1] >> 2))) { + // asm ("e"); + if (gUnk_0810AC54[2] == 0) { + this->field_0xf = 0; + return 0xff; + } + } + this->field_0xf += 1; + if (this->field_0xf < 8) { + return 0xff; + } + return gUnk_0810AC54[3]; +} +END_NONMATCH + +u32 sub_08061230(Entity* this) { + if ((((UnkHeap*)this->myHeap)->unk_0 & 1) == 0) { + if ((this->bitfield & 0x80) != 0) { + switch (this->bitfield & 0x7f) { + case 0: + case 1: + case 2: + case 3: + case 0xf: + case 0x13: + case 0x1b: + case 0x1e: + case 0x1f: + break; + default: + ((UnkHeap*)this->myHeap)->unk_0 = ((UnkHeap*)this->myHeap)->unk_0 | 1; + InitAnimationForceUpdate(this, (this->animationState >> 1) + 0x40); + return 1; + } + } + } else { + UpdateAnimationSingleFrame(this); + if ((this->frames.all & 0x80) == 0) { + return 1; + } + ((UnkHeap*)this->myHeap)->unk_0 &= 0xfe; + InitAnimationForceUpdate(this, this->field_0x6c.HALF.LO + (this->animationState >> 1)); + } + this->bitfield = this->bitfield & 0x7f; + if (this->iframes != 0) { + this->iframes += 1; + } + return 0; +} + +NONMATCH("asm/non_matching/npc5/sub_08061358.inc", void sub_08061358(Entity* this)) { + u8 bVar1; + u32 uVar2; + s32 iVar3; + u8 bVar4; + u32 unaff_r6; + + bVar4 = (u8)unaff_r6; + + switch (this->subAction) { + case 0: + UpdateAnimationSingleFrame(this); + if ((this->frames.all & 0x80) == 0) { + return; + } + this->subAction = 1; + this->actionDelay = 0xf; + sub_08060E70(this, 0); + return; + case 1: + this->actionDelay -= 1; + asm("x"); + if (this->actionDelay != 0) { + return; + } + uVar2 = Random(); + // bVar4 = (u8)uVar2; + if ((uVar2 & 1) == 0) + goto _080613FA; + this->subAction = 2; + iVar3 = (u32)this->animationState * 2 + (uVar2 >> 4 & 3); + InitAnimationForceUpdate(this, (u32)(u8)(&gUnk_0810AC5D)[iVar3 + 1]); + break; + case 2: + UpdateAnimationSingleFrame(this); + if ((this->frames.all & 0x80) == 0) { + return; + } + this->animationState = (u8)(((u8)this->frames.all & 0x18) >> 2); + uVar2 = Random(); + if ((uVar2 & 1) == 0) { + this->subAction = 0; + sub_08060E70(this, 0x10); + return; + } + _080613FA: + this->subAction = 3; + this->actionDelay = (bVar4 & 0x18) + 0x1e; + sub_08060E70(this, 4); + return; + case 3: + iVar3 = sub_08061170(this); + if (iVar3 != 0) { + this->subAction = this->actionDelay - 1; + this->actionDelay = this->subAction; + if (this->subAction != 0) { + return; + } + this->subAction = 0; + sub_08060E70(this, 0x10); + return; + } + this->subAction = 2; + iVar3 = (u32)this->animationState * 2 + (unaff_r6 >> 4 & 3); + InitAnimationForceUpdate(this, (u32)(u8)(&gUnk_0810AC5D)[iVar3 + 1]); + break; + } +} +END_NONMATCH + +NONMATCH("asm/non_matching/npc5/sub_08061464.inc", void sub_08061464(Entity* this, u32 param_a, u32 param_b)) { + u8 bVar1; + s16 sVar2; + s16 sVar3; + u16 uVar4; + u32 uVar6; + u32 uVar7; + s32 iVar8; + s32 iVar9; + s32 iVar10; + u16 uVar5; + + sVar2 = this->x.HALF.HI; + iVar10 = (s32)sVar2; + sVar3 = this->y.HALF.HI; + iVar9 = (s32)sVar3; + uVar6 = sub_080045D4(sVar2, sVar3, param_a, param_b); + // uVar7 = (uVar6 + 2) & 0x1c; + // if (7 < uVar7 >> 2) + // goto _08061612; + // uVar4 = (u16)param_b; + // uVar5 = (u16)param_a; + // asm("----"); + switch (uVar7) { + case 0: + this->field_0x6e.HALF.LO = uVar4; + if ((s32)param_a < this->x.HALF.HI) { + sub_08061630(this, iVar10, iVar9 + -8, param_a); + break; + } + goto _08061504; + case 4: + this->field_0x6e.HALF.LO = uVar5; + iVar8 = sub_08061720(this, iVar10 + 8, iVar9, param_b); + if (iVar8 != 0) + break; + this->field_0x6e.HALF.LO = uVar4; + _08061504: + sub_080616A8(this, iVar10, iVar9 + -8, param_a); + break; + case 8: + this->field_0x6e.HALF.LO = uVar5; + if ((s32)param_b < this->y.HALF.HI) { + sub_08061720(this, iVar10 + 8, iVar9, param_b); + } else { + sub_08061798(this, iVar10 + 8, iVar9, param_b); + } + break; + case 0xc: + this->field_0x6e.HALF.LO = uVar5; + iVar8 = sub_08061798(this, iVar10 + 8, iVar9, param_b); + if (iVar8 != 0) + break; + this->field_0x6e.HALF.LO = uVar4; + goto _08061574; + case 0x10: + this->field_0x6e.HALF.LO = uVar4; + if ((s32)param_a < this->x.HALF.HI) + goto _080615A4; + _08061574: + sub_08061888(this, iVar10, iVar9 + 8, param_a); + break; + case 0x14: + this->field_0x6e.HALF.LO = uVar5; + iVar8 = sub_08061978(this, iVar10 + -8, iVar9, param_b); + if (iVar8 != 0) + break; + this->field_0x6e.HALF.LO = uVar4; + _080615A4: + sub_08061810(this, iVar10, iVar9 + 8, param_a); + break; + case 0x18: + this->field_0x6e.HALF.LO = uVar5; + if ((s32)param_b < this->y.HALF.HI) { + sub_08061900(this, iVar10 + -8, iVar9, param_b); + } else { + sub_08061978(this, iVar10 + -8, iVar9, param_b); + } + break; + case 0x1c: + this->field_0x6e.HALF.LO = uVar5; + iVar8 = sub_08061900(this, iVar10 + -8, iVar9, param_b); + if (iVar8 == 0) { + this->field_0x6e.HALF.LO = uVar4; + sub_08061630(this, iVar10, iVar9 + -8, param_a); + } + } +_08061612: + bVar1 = ((UnkHeap*)this->myHeap)->unk_0; + if ((bVar1 & 8) == 0) { + this->action = 3; + this->subAction = bVar1 & 8; + } +} +END_NONMATCH + +bool32 sub_08061630(Entity* this, s32 x, s32 y, s32 param) { + u32 param_y = y; + Entity* entity = (this->collisionLayer == 2) ? &gUnk_0200D654 : &gUnk_02027EB4; + while (!sub_080AE4CC(entity, x, y, 6)) { + if (sub_08061A74(entity, x, y, param)) { + ((UnkHeap*)this->myHeap)->unk_7 = x; + ((UnkHeap*)this->myHeap)->unk_8 = param_y; + ((UnkHeap*)this->myHeap)->unk_0 |= 8; + if (this->field_0x6e.HWORD >= y) { + return TRUE; + } + } + y -= 8; + } + return FALSE; +} + +bool32 sub_080616A8(Entity* this, s32 x, s32 y, s32 param) { + u32 param_y = y; + Entity* entity = (this->collisionLayer == 2) ? &gUnk_0200D654 : &gUnk_02027EB4; + while (!sub_080AE4CC(entity, x, y, 6)) { + if (sub_08061A1C(entity, x, y, param)) { + ((UnkHeap*)this->myHeap)->unk_7 = x; + ((UnkHeap*)this->myHeap)->unk_8 = param_y; + ((UnkHeap*)this->myHeap)->unk_0 |= 8; + if (this->field_0x6e.HWORD >= y) { + return TRUE; + } + } + y -= 8; + } + return FALSE; +} + +bool32 sub_08061720(Entity* this, s32 x, s32 y, s32 param) { + u32 param_x = x; + Entity* entity = (this->collisionLayer == 2) ? &gUnk_0200D654 : &gUnk_02027EB4; + while (!sub_080AE4CC(entity, x, y, 6)) { + if (sub_080619F0(entity, x, y, param)) { + ((UnkHeap*)this->myHeap)->unk_7 = param_x; + ((UnkHeap*)this->myHeap)->unk_8 = y; + ((UnkHeap*)this->myHeap)->unk_0 |= 8; + if (this->field_0x6e.HWORD <= x) { + return TRUE; + } + } + x += 8; + } + return FALSE; +} + +bool32 sub_08061798(Entity* this, s32 x, s32 y, s32 param) { + u32 param_x = x; + Entity* entity = (this->collisionLayer == 2) ? &gUnk_0200D654 : &gUnk_02027EB4; + while (!sub_080AE4CC(entity, x, y, 6)) { + if (sub_08061A48(entity, x, y, param)) { + ((UnkHeap*)this->myHeap)->unk_7 = param_x; + ((UnkHeap*)this->myHeap)->unk_8 = y; + ((UnkHeap*)this->myHeap)->unk_0 |= 8; + if (this->field_0x6e.HWORD <= x) { + return TRUE; + } + } + x += 8; + } + return FALSE; +} + +bool32 sub_08061810(Entity* this, s32 x, s32 y, s32 param) { + u32 param_y = y; + Entity* entity = (this->collisionLayer == 2) ? &gUnk_0200D654 : &gUnk_02027EB4; + while (!sub_080AE4CC(entity, x, y, 6)) { + if (sub_08061A74(entity, x, y, param)) { + ((UnkHeap*)this->myHeap)->unk_7 = x; + ((UnkHeap*)this->myHeap)->unk_8 = param_y; + ((UnkHeap*)this->myHeap)->unk_0 |= 8; + if (this->field_0x6e.HWORD <= y) { + return TRUE; + } + } + y += 8; + } + return FALSE; +} + +bool32 sub_08061888(Entity* this, s32 x, s32 y, s32 param) { + u32 param_y = y; + Entity* entity = (this->collisionLayer == 2) ? &gUnk_0200D654 : &gUnk_02027EB4; + while (!sub_080AE4CC(entity, x, y, 6)) { + if (sub_08061A1C(entity, x, y, param)) { + ((UnkHeap*)this->myHeap)->unk_7 = x; + ((UnkHeap*)this->myHeap)->unk_8 = param_y; + ((UnkHeap*)this->myHeap)->unk_0 |= 8; + if (this->field_0x6e.HWORD <= y) { + return TRUE; + } + } + y += 8; + } + return FALSE; +} + +bool32 sub_08061900(Entity* this, s32 x, s32 y, s32 param) { + u32 param_x = x; + Entity* entity = (this->collisionLayer == 2) ? &gUnk_0200D654 : &gUnk_02027EB4; + while (!sub_080AE4CC(entity, x, y, 6)) { + if (sub_080619F0(entity, x, y, param)) { + ((UnkHeap*)this->myHeap)->unk_7 = param_x; + ((UnkHeap*)this->myHeap)->unk_8 = y; + ((UnkHeap*)this->myHeap)->unk_0 |= 8; + if (this->field_0x6e.HWORD >= x) { + return TRUE; + } + } + x -= 8; + } + return FALSE; +} + +bool32 sub_08061978(Entity* this, s32 x, s32 y, s32 param) { + u32 param_x = x; + Entity* entity = (this->collisionLayer == 2) ? &gUnk_0200D654 : &gUnk_02027EB4; + while (!sub_080AE4CC(entity, x, y, 6)) { + if (sub_08061A48(entity, x, y, param)) { + ((UnkHeap*)this->myHeap)->unk_7 = param_x; + ((UnkHeap*)this->myHeap)->unk_8 = y; + ((UnkHeap*)this->myHeap)->unk_0 |= 8; + if (this->field_0x6e.HWORD >= x) { + return TRUE; + } + } + x -= 8; + } + return FALSE; +} + +bool32 sub_080619F0(Entity* this, s32 x, s32 y, s32 param) { + while (param <= y) { + if (sub_080AE4CC(this, x, y, 6) != 0) { + return FALSE; + } + y -= 8; + } + return TRUE; +} + +bool32 sub_08061A1C(Entity* this, s32 x, s32 y, s32 param) { + while (param >= x) { + if (sub_080AE4CC(this, x, y, 6) != 0) { + return FALSE; + } + x += 8; + } + return TRUE; +} + +bool32 sub_08061A48(Entity* this, s32 x, s32 y, s32 param) { + while (param >= y) { + if (sub_080AE4CC(this, x, y, 6) != 0) { + return FALSE; + } + y += 8; + } + return TRUE; +} + +bool32 sub_08061A74(Entity* this, s32 x, s32 y, s32 param) { + while (param <= x) { + if (sub_080AE4CC(this, x, y, 6) != 0) { + return FALSE; + } + x -= 8; + } + return TRUE; +} + +void sub_08061AA0() { + DeleteThisEntity(); +} + +void sub_08061AA8(Entity* this) { + gUnk_0810AC70[this->action](this); + CopyPosition(this->parent, this); +} + +void sub_08061ACC(Entity* this) { + this->flags = this->flags | 0x20; + this->action = 1; + this->subAction = 0xff; + this->actionDelay = 0; + this->field_0x17 = this->field_0x17 & 0xfe; + sub_08078778(this); + sub_08061AFC(this); +} + +void sub_08061AFC(Entity* this) { + u32 tmp = 0; + if (this->subAction != 0) { + this->subAction = tmp; + *((u16**)&this->field_0x68) = gUnk_0810B660[0]; + this->actionDelay = 0; + } +} + +NONMATCH("asm/non_matching/npc5/sub_08061B18.inc", void sub_08061B18(Entity* this)) { + u8 bVar1; + u16* puVar2; + + typedef struct { + u16 unk_0; + u16 unk_2; + } Tmp; + + switch(this->interactType) { + case 0: + break; + case 1: + this->interactType = 0; + sub_08061AFC(this); + //puVar2 = (u16*)(*(int*)&this->field_0x68 + (((u32)this->actionDelay << 0x18) >> 0x17)); + // if puVar2[1] == 0 + if ((((Tmp**)&this->field_0x68))[++this->actionDelay]->unk_2 == 0) { + this->actionDelay = 0; + } + TextboxNoOverlap((u32)*puVar2, this); + break; + } +} +END_NONMATCH + +void sub_08061B58(Entity* this) { + if (this->action == 0) { + this->action = 1; + InitAnimationForceUpdate(this, 2); + } + if (gScreenTransition.field_0x24[8] == 2) { + UpdateAnimationSingleFrame(this); + } + sub_0806FD3C(this); +} From 8466d7e8e87b95fc6c751aad6a2ef8e4ffd6b614 Mon Sep 17 00:00:00 2001 From: octorock <79596758+octorock@users.noreply.github.com> Date: Wed, 12 May 2021 18:49:23 +0200 Subject: [PATCH 07/74] Decompile marcy --- asm/marcy.s | 158 ----------------------------------------------- linker.ld | 2 +- src/npc/din.c | 16 ++--- src/npc/farore.c | 16 ++--- src/npc/marcy.c | 63 +++++++++++++++++++ src/npc/nayru.c | 16 ++--- src/npc/npc5.c | 28 ++++----- src/npc/pita.c | 8 +-- 8 files changed, 106 insertions(+), 201 deletions(-) delete mode 100644 asm/marcy.s create mode 100644 src/npc/marcy.c diff --git a/asm/marcy.s b/asm/marcy.s deleted file mode 100644 index b8420d47..00000000 --- a/asm/marcy.s +++ /dev/null @@ -1,158 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Marcy -Marcy: @ 0x08062CF0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08062D0C - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD64 -_08062D0C: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08062D18 -sub_08062D18: @ 0x08062D18 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - movs r4, #0 - movs r0, #0x4f - bl GetInventoryValue - cmp r0, #0 - beq _08062D36 - movs r0, #0x26 - bl CheckLocalFlag - cmp r0, #0 - bne _08062D36 - movs r4, #7 -_08062D36: - movs r0, #0x4e - bl GetInventoryValue - cmp r0, #0 - beq _08062D4C - movs r0, #0x25 - bl CheckLocalFlag - cmp r0, #0 - bne _08062D4C - movs r4, #6 -_08062D4C: - movs r0, #0x4d - bl GetInventoryValue - cmp r0, #0 - beq _08062D62 - movs r0, #0x24 - bl CheckLocalFlag - cmp r0, #0 - bne _08062D62 - movs r4, #5 -_08062D62: - movs r0, #0x4c - bl GetInventoryValue - cmp r0, #0 - beq _08062D78 - movs r0, #0x23 - bl CheckLocalFlag - cmp r0, #0 - bne _08062D78 - movs r4, #4 -_08062D78: - movs r0, #0x4b - bl GetInventoryValue - cmp r0, #0 - beq _08062D8E - movs r0, #0x22 - bl CheckLocalFlag - cmp r0, #0 - bne _08062D8E - movs r4, #3 -_08062D8E: - movs r0, #0x4a - bl GetInventoryValue - cmp r0, #0 - beq _08062DA4 - movs r0, #0x21 - bl CheckLocalFlag - cmp r0, #0 - bne _08062DA4 - movs r4, #2 -_08062DA4: - movs r0, #0x49 - bl GetInventoryValue - cmp r0, #0 - beq _08062DBA - movs r0, #0x20 - bl CheckLocalFlag - cmp r0, #0 - bne _08062DBA - movs r4, #1 -_08062DBA: - strb r4, [r5, #0xb] - movs r4, #0 - ldr r0, _08062DCC @ =0x00001C1F - bl CheckFlags - cmp r0, #0 - beq _08062DD0 - movs r4, #1 - b _08062DF0 - .align 2, 0 -_08062DCC: .4byte 0x00001C1F -_08062DD0: - movs r0, #0x8c - bl CheckLocalFlag - cmp r0, #0 - beq _08062DE4 - movs r4, #2 - movs r0, #0x8c - bl ClearLocalFlag - b _08062DF0 -_08062DE4: - movs r0, #0x8b - bl CheckLocalFlag - cmp r0, #0 - beq _08062DF0 - movs r4, #3 -_08062DF0: - ldr r0, _08062E08 @ =gUnk_0810C34C - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl TextboxNoOverlap - cmp r4, #0 - bne _08062E0C - movs r0, #1 - b _08062E0E - .align 2, 0 -_08062E08: .4byte gUnk_0810C34C -_08062E0C: - movs r0, #0 -_08062E0E: - str r0, [r6, #0x14] - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08062E14 -sub_08062E14: @ 0x08062E14 - push {lr} - movs r0, #0x8b - bl SetLocalFlag - pop {pc} - .align 2, 0 diff --git a/linker.ld b/linker.ld index 7da2ddea..b88eaad4 100644 --- a/linker.ld +++ b/linker.ld @@ -559,7 +559,7 @@ SECTIONS { asm/kid.o(.text); src/npc/npc9.o(.text); src/npc/stamp.o(.text); - asm/marcy.o(.text); + src/npc/marcy.o(.text); src/npc/wheaton.o(.text); src/npc/pita.o(.text); asm/pita.o(.text); diff --git a/src/npc/din.c b/src/npc/din.c index 2800f883..ec340fb1 100644 --- a/src/npc/din.c +++ b/src/npc/din.c @@ -8,23 +8,23 @@ extern u32 sub_08002632(Entity*); void Din(Entity* this) { - switch(this->action) { + switch (this->action) { case 0: this->action = 1; this->spriteSettings.b.draw = 1; sub_0807DD50(this); break; case 1: - if (this->interactType ==2) { - this->action = 2; - this->interactType = 0; - sub_0806F118(this); - this->field_0x68.HALF.LO = this->animIndex; - InitAnimationForceUpdate(this, sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity))); + if (this->interactType == 2) { + this->action = 2; + this->interactType = 0; + sub_0806F118(this); + this->field_0x68.HALF.LO = this->animIndex; + InitAnimationForceUpdate(this, sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity))); } else { sub_0807DD94(this, NULL); } - break; + break; case 2: if (UpdateFuseInteraction(this) != 0) { this->action = 1; diff --git a/src/npc/farore.c b/src/npc/farore.c index 858217a6..8629827a 100644 --- a/src/npc/farore.c +++ b/src/npc/farore.c @@ -8,23 +8,23 @@ extern u32 sub_08002632(Entity*); void Farore(Entity* this) { - switch(this->action) { + switch (this->action) { case 0: this->action = 1; this->spriteSettings.b.draw = 1; sub_0807DD50(this); break; case 1: - if (this->interactType ==2) { - this->action = 2; - this->interactType = 0; - sub_0806F118(this); - this->field_0x68.HALF.LO = this->animIndex; - InitAnimationForceUpdate(this, sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity))); + if (this->interactType == 2) { + this->action = 2; + this->interactType = 0; + sub_0806F118(this); + this->field_0x68.HALF.LO = this->animIndex; + InitAnimationForceUpdate(this, sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity))); } else { sub_0807DD94(this, NULL); } - break; + break; case 2: if (UpdateFuseInteraction(this) != 0) { this->action = 1; diff --git a/src/npc/marcy.c b/src/npc/marcy.c new file mode 100644 index 00000000..35e66f8f --- /dev/null +++ b/src/npc/marcy.c @@ -0,0 +1,63 @@ +#include "entity.h" +#include "functions.h" +#include "script.h" +#include "flags.h" +#include "textbox.h" + +extern u16 gUnk_0810C34C[]; + +void Marcy(Entity* this) { + if (this->action == 0) { + this->action += 1; + sub_0805E3A0(this, 2); + sub_0807DD64(this); + } + sub_0807DD94(this, NULL); +} + +void sub_08062D18(Entity* this, ScriptExecutionContext* context) { + u8 tmp = 0; + if ((GetInventoryValue(0x4f) != 0) && (CheckLocalFlag(0x26) == 0)) { + tmp = 7; + } + if ((GetInventoryValue(0x4e) != 0) && (CheckLocalFlag(0x25) == 0)) { + tmp = 6; + } + if ((GetInventoryValue(0x4d) != 0) && (CheckLocalFlag(0x24) == 0)) { + tmp = 5; + } + if ((GetInventoryValue(0x4c) != 0) && (CheckLocalFlag(0x23) == 0)) { + tmp = 4; + } + if ((GetInventoryValue(0x4b) != 0) && (CheckLocalFlag(0x22) == 0)) { + tmp = 3; + } + if ((GetInventoryValue(0x4a) != 0) && (CheckLocalFlag(0x21) == 0)) { + tmp = 2; + } + if ((GetInventoryValue(0x49) != 0) && (CheckLocalFlag(0x20) == 0)) { + tmp = 1; + } + this->type2 = tmp; + + tmp = 0; + if (CheckFlags(0x1c1f) != 0) { + tmp = 1; + } else if (CheckLocalFlag(0x8c) != 0) { + tmp = 2; + ClearLocalFlag(0x8c); + } else if (CheckLocalFlag(0x8b) != 0) { + tmp = 3; + } + + TextboxNoOverlap(gUnk_0810C34C[tmp], this); + if (tmp == 0) { + context->condition = TRUE; + } else { + context->condition = FALSE; + } +} + +void sub_08062E14(Entity* this, ScriptExecutionContext* context) { + SetLocalFlag(0x8b); +} diff --git a/src/npc/nayru.c b/src/npc/nayru.c index fd8332a3..7bfd89ba 100644 --- a/src/npc/nayru.c +++ b/src/npc/nayru.c @@ -8,23 +8,23 @@ extern u32 sub_08002632(Entity*); void Nayru(Entity* this) { - switch(this->action) { + switch (this->action) { case 0: this->action = 1; this->spriteSettings.b.draw = 1; sub_0807DD50(this); break; case 1: - if (this->interactType ==2) { - this->action = 2; - this->interactType = 0; - sub_0806F118(this); - this->field_0x68.HALF.LO = this->animIndex; - InitAnimationForceUpdate(this, sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity))); + if (this->interactType == 2) { + this->action = 2; + this->interactType = 0; + sub_0806F118(this); + this->field_0x68.HALF.LO = this->animIndex; + InitAnimationForceUpdate(this, sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity))); } else { sub_0807DD94(this, NULL); } - break; + break; case 2: if (UpdateFuseInteraction(this) != 0) { this->action = 1; diff --git a/src/npc/npc5.c b/src/npc/npc5.c index 6d1a7699..b8e9d488 100644 --- a/src/npc/npc5.c +++ b/src/npc/npc5.c @@ -908,25 +908,25 @@ void sub_08061AFC(Entity* this) { NONMATCH("asm/non_matching/npc5/sub_08061B18.inc", void sub_08061B18(Entity* this)) { u8 bVar1; u16* puVar2; - + typedef struct { u16 unk_0; u16 unk_2; } Tmp; - switch(this->interactType) { - case 0: - break; - case 1: - this->interactType = 0; - sub_08061AFC(this); - //puVar2 = (u16*)(*(int*)&this->field_0x68 + (((u32)this->actionDelay << 0x18) >> 0x17)); - // if puVar2[1] == 0 - if ((((Tmp**)&this->field_0x68))[++this->actionDelay]->unk_2 == 0) { - this->actionDelay = 0; - } - TextboxNoOverlap((u32)*puVar2, this); - break; + switch (this->interactType) { + case 0: + break; + case 1: + this->interactType = 0; + sub_08061AFC(this); + // puVar2 = (u16*)(*(int*)&this->field_0x68 + (((u32)this->actionDelay << 0x18) >> 0x17)); + // if puVar2[1] == 0 + if ((((Tmp**)&this->field_0x68))[++this->actionDelay]->unk_2 == 0) { + this->actionDelay = 0; + } + TextboxNoOverlap((u32)*puVar2, this); + break; } } END_NONMATCH diff --git a/src/npc/pita.c b/src/npc/pita.c index 0d43bda6..ebd369bc 100644 --- a/src/npc/pita.c +++ b/src/npc/pita.c @@ -28,10 +28,10 @@ void Pita(Entity* this) { } void sub_08062EB8(void) { - sub_0807CAA0(0x68,0); - sub_0807CAA0(0x69,0); - sub_0807CAA0(0x6a,0); - sub_0807CAA0(0x6b,0); + sub_0807CAA0(0x68, 0); + sub_0807CAA0(0x69, 0); + sub_0807CAA0(0x6a, 0); + sub_0807CAA0(0x6b, 0); } bool32 sub_08062EDC(Entity* this, ScriptExecutionContext* context) { From 54ae9dfa85b4dffae5d314ca27b3071f8f863509 Mon Sep 17 00:00:00 2001 From: octorock <79596758+octorock@users.noreply.github.com> Date: Fri, 14 May 2021 18:29:45 +0200 Subject: [PATCH 08/74] Decompile kid --- asm/non_matching/kid/Kid_Head.inc | 127 ++++++++ asm/non_matching/kid/sub_080621AC.inc | 173 ++++++++++ asm/non_matching/kid/sub_080622F4.inc | 275 ++++++++++++++++ asm/non_matching/kid/sub_0806252C.inc | 131 ++++++++ asm/non_matching/kid/sub_08062634.inc | 23 ++ asm/non_matching/kid/sub_0806265C.inc | 34 ++ asm/non_matching/kid/sub_080626E0.inc | 90 ++++++ asm/non_matching/kid/sub_08062948.inc | 142 ++++++++ linker.ld | 2 +- src/npc/kid.c | 444 ++++++++++++++++++++++++++ 10 files changed, 1440 insertions(+), 1 deletion(-) create mode 100644 asm/non_matching/kid/Kid_Head.inc create mode 100644 asm/non_matching/kid/sub_080621AC.inc create mode 100644 asm/non_matching/kid/sub_080622F4.inc create mode 100644 asm/non_matching/kid/sub_0806252C.inc create mode 100644 asm/non_matching/kid/sub_08062634.inc create mode 100644 asm/non_matching/kid/sub_0806265C.inc create mode 100644 asm/non_matching/kid/sub_080626E0.inc create mode 100644 asm/non_matching/kid/sub_08062948.inc create mode 100644 src/npc/kid.c diff --git a/asm/non_matching/kid/Kid_Head.inc b/asm/non_matching/kid/Kid_Head.inc new file mode 100644 index 00000000..4d98f33f --- /dev/null +++ b/asm/non_matching/kid/Kid_Head.inc @@ -0,0 +1,127 @@ + .syntax unified + .text + +Kid_Head: @ 0x08062834 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldrb r4, [r5, #0xa] + lsls r0, r4, #2 + mov ip, r0 + ldr r2, _08062868 @ =gUnk_0810C0A0 + add r2, ip + adds r0, r5, #0 + adds r0, #0x5a + ldrb r3, [r0] + movs r1, #0x1f + adds r0, r1, #0 + ands r0, r3 + ldrb r3, [r2] + adds r6, r0, r3 + ldrb r0, [r5, #0x1e] + ands r1, r0 + ldrb r2, [r2, #1] + adds r7, r1, r2 + cmp r4, #8 + bhi _08062946 + ldr r0, _0806286C @ =_08062870 + add r0, ip + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08062868: .4byte gUnk_0810C0A0 +_0806286C: .4byte _08062870 @ jump table +_08062870: + .4byte _08062894 @ case 0 + .4byte _08062894 @ case 1 + .4byte _08062894 @ case 2 + .4byte _08062894 @ case 3 + .4byte _08062894 @ case 4 + .4byte _08062894 @ case 5 + .4byte _080628D8 @ case 6 + .4byte _08062922 @ case 7 + .4byte _08062922 @ case 8 +_08062894: + adds r0, r5, #0 + adds r0, #0x5b + ldrb r1, [r0] + movs r0, #0x30 + ands r0, r1 + lsrs r4, r0, #4 + cmp r4, #0 + beq _080628A6 + adds r4, #0x50 +_080628A6: + subs r4, #1 + adds r0, r5, #0 + movs r1, #0 + adds r2, r6, #0 + bl SetExtraSpriteFrame + adds r0, r5, #0 + movs r1, #1 + adds r2, r7, #0 + bl SetExtraSpriteFrame + adds r0, r5, #0 + movs r1, #2 + adds r2, r4, #0 + bl SetExtraSpriteFrame + adds r0, r5, #0 + movs r1, #1 + movs r2, #0 + bl SetSpriteSubEntryOffsetData1 + adds r0, r5, #0 + movs r1, #1 + movs r2, #2 + b _08062916 +_080628D8: + adds r0, r5, #0 + adds r0, #0x5b + ldrb r0, [r0] + movs r2, #0xf + ands r2, r0 + cmp r2, #0 + beq _080628E8 + adds r2, #0x93 +_080628E8: + subs r2, #1 + adds r0, r5, #0 + movs r1, #0 + bl SetExtraSpriteFrame + adds r0, r5, #0 + movs r1, #1 + adds r2, r6, #0 + bl SetExtraSpriteFrame + adds r0, r5, #0 + movs r1, #2 + adds r2, r7, #0 + bl SetExtraSpriteFrame + adds r0, r5, #0 + movs r1, #2 + movs r2, #1 + bl SetSpriteSubEntryOffsetData1 + adds r0, r5, #0 + movs r1, #1 + movs r2, #0 +_08062916: + bl SetSpriteSubEntryOffsetData2 + adds r0, r5, #0 + bl sub_0807000C + b _08062946 +_08062922: + adds r0, r5, #0 + movs r1, #0 + adds r2, r6, #0 + bl SetExtraSpriteFrame + adds r0, r5, #0 + movs r1, #1 + adds r2, r7, #0 + bl SetExtraSpriteFrame + adds r0, r5, #0 + movs r1, #1 + movs r2, #0 + bl SetSpriteSubEntryOffsetData1 + adds r0, r5, #0 + bl sub_0807000C +_08062946: + pop {r4, r5, r6, r7, pc} + + .syntax divided diff --git a/asm/non_matching/kid/sub_080621AC.inc b/asm/non_matching/kid/sub_080621AC.inc new file mode 100644 index 00000000..e474a346 --- /dev/null +++ b/asm/non_matching/kid/sub_080621AC.inc @@ -0,0 +1,173 @@ + .syntax unified + .text + +sub_080621AC: @ 0x080621AC + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #1 + beq _08062234 + cmp r5, #1 + bgt _080621C0 + cmp r5, #0 + beq _080621CE + b _080622F2 +_080621C0: + cmp r5, #2 + bne _080621C6 + b _080622CC +_080621C6: + cmp r5, #3 + bne _080621CC + b _080622E4 +_080621CC: + b _080622F2 +_080621CE: + ldr r1, _0806221C @ =gUnk_0810BDC4 + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl LoadExtraSpriteData + cmp r0, #0 + bne _080621E4 + b _080622F2 +_080621E4: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + strb r0, [r4, #0x14] + strb r5, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x68 + strb r5, [r0] + adds r0, #1 + strb r5, [r0] + adds r1, r4, #0 + adds r1, #0x6b + movs r0, #0xff + strb r0, [r1] + adds r0, r4, #0 + bl sub_0805ACC0 + adds r2, r0, #0 + cmp r2, #0 + bne _08062220 + ldrh r0, [r4, #0x2e] + adds r1, r4, #0 + adds r1, #0x6c + strh r0, [r1] + ldrh r0, [r4, #0x32] + adds r1, #2 + strh r0, [r1] + b _0806222C + .align 2, 0 +_0806221C: .4byte gUnk_0810BDC4 +_08062220: + lsrs r1, r2, #0x10 + adds r0, r4, #0 + adds r0, #0x6c + strh r1, [r0] + adds r0, #2 + strh r2, [r0] +_0806222C: + adds r0, r4, #0 + bl sub_0807DD50 + b _080622F2 +_08062234: + adds r5, r4, #0 + adds r5, #0x39 + movs r1, #0 + ldrsb r1, [r5, r1] + cmp r1, #2 + bne _08062252 + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r5] + adds r0, r4, #0 + bl sub_0806F118 + adds r5, #0x1f + b _0806229A +_08062252: + adds r0, r4, #0 + adds r0, #0x68 + movs r6, #0 + ldrsb r6, [r0, r6] + cmp r6, #0 + beq _08062274 + cmp r1, #0 + beq _0806226C + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r5] + b _0806228A +_0806226C: + adds r0, r4, #0 + bl sub_080622F4 + b _080622F2 +_08062274: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #0 + beq _080622F2 + movs r0, #2 + strb r0, [r4, #0xc] + strb r6, [r5] +_0806228A: + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_0806265C + adds r5, r4, #0 + adds r5, #0x58 +_0806229A: + ldrb r0, [r5] + adds r1, r4, #0 + adds r1, #0x6b + strb r0, [r1] + ldrb r0, [r5] + cmp r0, #7 + bhi _080622F2 + ldr r1, _080622C8 @ =gPlayerEntity + adds r0, r4, #0 + bl GetFacingDirection + bl sub_0806F5A4 + ldrb r1, [r5] + movs r2, #4 + rsbs r2, r2, #0 + ands r1, r2 + adds r1, r1, r0 + adds r0, r4, #0 + bl InitializeAnimation + b _080622F2 + .align 2, 0 +_080622C8: .4byte gPlayerEntity +_080622CC: + adds r0, r4, #0 + bl GetNextFrame + ldr r0, _080622E0 @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _080622F2 + b _080622EE + .align 2, 0 +_080622E0: .4byte gTextBox +_080622E4: + adds r0, r4, #0 + bl UpdateFuseInteraction + cmp r0, #0 + beq _080622F2 +_080622EE: + movs r0, #1 + strb r0, [r4, #0xc] +_080622F2: + pop {r4, r5, r6, pc} + .syntax divided diff --git a/asm/non_matching/kid/sub_080622F4.inc b/asm/non_matching/kid/sub_080622F4.inc new file mode 100644 index 00000000..94e8ae01 --- /dev/null +++ b/asm/non_matching/kid/sub_080622F4.inc @@ -0,0 +1,275 @@ + .syntax unified + .text + +sub_080622F4: @ 0x080622F4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + ldr r0, _0806239C @ =gPlayerEntity + mov r8, r0 + ldrh r1, [r0, #0x2e] + ldr r3, _080623A0 @ =0xFFFF0000 + adds r0, r3, #0 + ands r0, r5 + orrs r0, r1 + mov r2, r8 + ldrh r1, [r2, #0x32] + lsls r1, r1, #0x10 + ldr r2, _080623A4 @ =0x0000FFFF + ands r0, r2 + adds r5, r0, #0 + orrs r5, r1 + mov r1, r8 + ldrh r0, [r1, #0x36] + ands r3, r6 + orrs r3, r0 + ldr r0, _080623A8 @ =gPlayerState + adds r0, #0xa8 + ldrb r0, [r0] + lsls r0, r0, #0x10 + ldr r2, _080623AC @ =0xFF00FFFF + ands r2, r3 + orrs r2, r0 + ldrb r1, [r1, #0x14] + movs r0, #0x3f + ands r1, r0 + lsls r1, r1, #0x18 + ldr r0, _080623B0 @ =0xC0FFFFFF + ands r0, r2 + orrs r0, r1 + mov r1, r8 + adds r1, #0x38 + ldrb r1, [r1] + lsls r1, r1, #0x1e + ldr r2, _080623B4 @ =0x3FFFFFFF + ands r0, r2 + adds r6, r0, #0 + orrs r6, r1 + ldr r4, [r7, #0x64] + ldrb r0, [r4, #6] + cmp r0, #0x16 + bne _080623BE + lsrs r0, r6, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x16 + beq _080623BE + movs r2, #0x2e + ldrsh r1, [r7, r2] + mov r3, r8 + movs r2, #0x2e + ldrsh r0, [r3, r2] + subs r2, r1, r0 + movs r0, #0x32 + ldrsh r3, [r7, r0] + mov sb, r3 + mov r1, r8 + movs r3, #0x32 + ldrsh r0, [r1, r3] + mov r3, sb + subs r1, r3, r0 + cmp r2, #0 + bge _08062382 + rsbs r2, r2, #0 +_08062382: + cmp r1, #0 + bge _08062388 + rsbs r1, r1, #0 +_08062388: + cmp r2, #0x78 + bgt _08062390 + cmp r1, #0x50 + ble _080623B8 +_08062390: + adds r1, r7, #0 + adds r1, #0x68 + movs r0, #0 + strb r0, [r1] + b _080624F8 + .align 2, 0 +_0806239C: .4byte gPlayerEntity +_080623A0: .4byte 0xFFFF0000 +_080623A4: .4byte 0x0000FFFF +_080623A8: .4byte gPlayerState +_080623AC: .4byte 0xFF00FFFF +_080623B0: .4byte 0xC0FFFFFF +_080623B4: .4byte 0x3FFFFFFF +_080623B8: + adds r0, r7, #0 + bl sub_0806252C +_080623BE: + movs r0, #0 + mov sb, r0 + ldr r0, [r4] + cmp r5, r0 + bne _080623CE + ldr r0, [r4, #4] + cmp r6, r0 + beq _08062410 +_080623CE: + ldr r4, [r7, #0x64] + adds r4, #0x90 + movs r1, #0x69 + adds r1, r1, r7 + mov r8, r1 + adds r3, r7, #0 + adds r3, #0x38 + movs r2, #0x58 + adds r2, r2, r7 + mov ip, r2 + movs r2, #0x12 +_080623E4: + ldr r0, [r4] + ldr r1, [r4, #4] + str r0, [r4, #8] + str r1, [r4, #0xc] + subs r4, #8 + subs r2, #1 + cmp r2, #0 + bge _080623E4 + ldr r4, [r7, #0x64] + str r5, [r4] + str r6, [r4, #4] + movs r0, #4 + mov sb, r0 + mov r2, r8 + ldrb r1, [r2] + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + ble _08062484 + subs r0, r1, #1 + strb r0, [r2] + b _08062484 +_08062410: + adds r4, #0x98 + movs r3, #4 + ldrsh r0, [r4, r3] + cmp r0, #0 + bge _08062442 + ldr r4, [r7, #0x64] + adds r4, #0x90 + movs r0, #0x69 + adds r0, r0, r7 + mov r8, r0 + adds r3, r7, #0 + adds r3, #0x38 + movs r1, #0x58 + adds r1, r1, r7 + mov ip, r1 + movs r2, #0x12 +_08062430: + ldr r0, [r4] + ldr r1, [r4, #4] + str r0, [r4, #8] + str r1, [r4, #0xc] + subs r4, #8 + subs r2, #1 + cmp r2, #0 + bge _08062430 + b _08062480 +_08062442: + ldr r1, _080624E8 @ =gPlayerEntity + movs r3, #0x2e + ldrsh r0, [r1, r3] + movs r2, #0x32 + ldrsh r1, [r1, r2] + ldrh r2, [r4] + ldrh r3, [r4, #2] + bl sub_080041E8 + lsrs r0, r0, #4 + movs r3, #0x69 + adds r3, r3, r7 + mov r8, r3 + adds r3, r7, #0 + adds r3, #0x38 + movs r1, #0x58 + adds r1, r1, r7 + mov ip, r1 + cmp r0, #0x18 + ble _08062484 + ldr r4, [r7, #0x64] + adds r4, #0x90 + movs r2, #0x12 +_08062470: + ldr r0, [r4] + ldr r1, [r4, #4] + str r0, [r4, #8] + str r1, [r4, #0xc] + subs r4, #8 + subs r2, #1 + cmp r2, #0 + bge _08062470 +_08062480: + movs r2, #4 + mov sb, r2 +_08062484: + ldr r4, [r7, #0x64] + adds r4, #0x98 + ldrh r0, [r4] + strh r0, [r7, #0x2e] + ldrh r0, [r4, #2] + strh r0, [r7, #0x32] + ldrh r0, [r4, #4] + strh r0, [r7, #0x36] + ldrb r0, [r4, #7] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1a + strb r0, [r7, #0x14] + ldrb r0, [r4, #7] + lsrs r0, r0, #6 + strb r0, [r3] + mov r1, r8 + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + ble _080624B2 + subs r0, r2, #1 + strb r0, [r1] +_080624B2: + mov r2, sb + ldrb r0, [r7, #0x14] + lsrs r0, r0, #1 + add sb, r0 + ldrb r0, [r7, #0xa] + cmp r0, #6 + bne _080624C4 + movs r3, #0x10 + add sb, r3 +_080624C4: + mov r0, ip + ldrb r0, [r0] + cmp sb, r0 + beq _080624EC + cmp r2, #0 + bne _080624D8 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bgt _080624EC +_080624D8: + adds r0, r7, #0 + mov r1, sb + bl InitAnimationForceUpdate + movs r0, #0x1e + mov r1, r8 + strb r0, [r1] + b _080624F2 + .align 2, 0 +_080624E8: .4byte gPlayerEntity +_080624EC: + adds r0, r7, #0 + bl UpdateAnimationSingleFrame +_080624F2: + adds r0, r7, #0 + bl sub_0800451C +_080624F8: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + .syntax divided diff --git a/asm/non_matching/kid/sub_0806252C.inc b/asm/non_matching/kid/sub_0806252C.inc new file mode 100644 index 00000000..c647a74c --- /dev/null +++ b/asm/non_matching/kid/sub_0806252C.inc @@ -0,0 +1,131 @@ + .syntax unified + .text + +sub_0806252C: @ 0x0806252C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r7, r0, #0 + ldr r4, _08062618 @ =gPlayerEntity + ldrh r1, [r4, #0x2e] + ldr r3, _0806261C @ =0xFFFF0000 + adds r0, r3, #0 + ands r0, r5 + orrs r0, r1 + ldrh r1, [r4, #0x32] + lsls r1, r1, #0x10 + ldr r2, _08062620 @ =0x0000FFFF + ands r0, r2 + adds r5, r0, #0 + orrs r5, r1 + ldrh r0, [r4, #0x36] + ands r3, r6 + orrs r3, r0 + ldr r0, _08062624 @ =gPlayerState + adds r0, #0xa8 + ldrb r0, [r0] + lsls r0, r0, #0x10 + ldr r2, _08062628 @ =0xFF00FFFF + ands r2, r3 + orrs r2, r0 + ldrb r1, [r4, #0x14] + movs r0, #0x3f + ands r1, r0 + lsls r1, r1, #0x18 + ldr r0, _0806262C @ =0xC0FFFFFF + ands r0, r2 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + lsls r1, r1, #0x1e + ldr r2, _08062630 @ =0x3FFFFFFF + ands r0, r2 + adds r6, r0, #0 + orrs r6, r1 + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r2, #0x2e + ldrsh r0, [r7, r2] + subs r1, r1, r0 + mov sl, r1 + movs r0, #0x32 + ldrsh r1, [r4, r0] + movs r2, #0x32 + ldrsh r0, [r7, r2] + subs r1, r1, r0 + mov r8, r1 + mov r1, sl + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x14 + bl FixedDiv + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov sl, r0 + mov r2, r8 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x14 + bl FixedDiv + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov r8, r0 + ldr r3, [r7, #0x64] + movs r0, #0 + mov sb, r0 + mov ip, r0 + movs r4, #0x13 +_080625C8: + mov r1, ip + asrs r0, r1, #8 + subs r0, r5, r0 + strh r0, [r3] + lsrs r0, r5, #0x10 + mov r2, sb + asrs r1, r2, #8 + subs r0, r0, r1 + strh r0, [r3, #2] + strh r6, [r3, #4] + lsrs r0, r6, #0x10 + strb r0, [r3, #6] + ldrb r0, [r7, #0x14] + movs r1, #0x3f + ands r1, r0 + ldrb r2, [r3, #7] + movs r0, #0x40 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #7] + adds r1, r7, #0 + adds r1, #0x38 + ldrb r1, [r1] + lsls r1, r1, #6 + movs r2, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #7] + adds r3, #8 + add sb, r8 + add ip, sl + subs r4, #1 + cmp r4, #0 + bge _080625C8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08062618: .4byte gPlayerEntity +_0806261C: .4byte 0xFFFF0000 +_08062620: .4byte 0x0000FFFF +_08062624: .4byte gPlayerState +_08062628: .4byte 0xFF00FFFF +_0806262C: .4byte 0xC0FFFFFF +_08062630: .4byte 0x3FFFFFFF + + .syntax divided diff --git a/asm/non_matching/kid/sub_08062634.inc b/asm/non_matching/kid/sub_08062634.inc new file mode 100644 index 00000000..0fe2a5cf --- /dev/null +++ b/asm/non_matching/kid/sub_08062634.inc @@ -0,0 +1,23 @@ + .syntax unified + .text + +sub_08062634: @ 0x08062634 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r4, [r5, #0xb] + bl Random + movs r1, #1 + ands r1, r0 + ldr r0, _08062658 @ =gUnk_0810BDE8 + lsls r1, r1, #1 + lsls r4, r4, #2 + adds r1, r1, r4 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl TextboxNoOverlap + pop {r4, r5, pc} + .align 2, 0 +_08062658: .4byte gUnk_0810BDE8 + + .syntax divided diff --git a/asm/non_matching/kid/sub_0806265C.inc b/asm/non_matching/kid/sub_0806265C.inc new file mode 100644 index 00000000..b4f5dcf9 --- /dev/null +++ b/asm/non_matching/kid/sub_0806265C.inc @@ -0,0 +1,34 @@ + .syntax unified + .text + +sub_0806265C: @ 0x0806265C + push {lr} + adds r2, r0, #0 + ldr r3, _08062674 @ =gSave + ldrb r0, [r3, #8] + cmp r0, #0 + bne _08062678 + movs r0, #0 + adds r1, r2, #0 + bl TextboxNoOverlap + b _08062690 + .align 2, 0 +_08062674: .4byte gSave +_08062678: + ldrb r0, [r2, #0xa] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _08062694 @ =gUnk_0810BE10 + adds r1, r1, r0 + ldrb r0, [r3, #8] + lsls r0, r0, #3 + adds r1, r1, r0 + adds r0, r2, #0 + bl ShowNPCDialogue +_08062690: + pop {pc} + .align 2, 0 +_08062694: .4byte gUnk_0810BE10 + + .syntax divided diff --git a/asm/non_matching/kid/sub_080626E0.inc b/asm/non_matching/kid/sub_080626E0.inc new file mode 100644 index 00000000..ebdce74f --- /dev/null +++ b/asm/non_matching/kid/sub_080626E0.inc @@ -0,0 +1,90 @@ + .syntax unified + .text + +sub_080626E0: @ 0x080626E0 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + ldrb r0, [r4, #0x18] + cmp r0, #0 + bne _0806270E + adds r0, #1 + strb r0, [r4, #0x18] + movs r0, #0xa + strb r0, [r4, #0x19] + ldr r0, [r4, #8] + movs r1, #2 + orrs r0, r1 + str r0, [r4, #8] + ldrh r2, [r4, #4] + ldr r1, _08062778 @ =gRoomControls + ldrh r0, [r4, #6] + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r4, #0x1e] + ldrh r0, [r1, #8] + adds r0, r0, r2 + strh r0, [r4, #0x22] +_0806270E: + ldrb r0, [r4, #0x19] + subs r0, #1 + strb r0, [r4, #0x19] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806274A + movs r0, #0xa + strb r0, [r4, #0x19] + movs r1, #0x1e + ldrsh r0, [r4, r1] + movs r2, #0x2e + ldrsh r1, [r5, r2] + subs r0, r0, r1 + movs r3, #0x22 + ldrsh r1, [r4, r3] + movs r3, #0x32 + ldrsh r2, [r5, r3] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r5, #0x15] + bl Random + movs r1, #0xb + bl __modsi3 + ldrb r1, [r5, #0x15] + adds r1, r1, r0 + subs r1, #5 + strb r1, [r5, #0x15] +_0806274A: + movs r0, #0x24 + ldrsh r1, [r5, r0] + ldrb r2, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F62C + movs r2, #0x2e + ldrsh r1, [r5, r2] + movs r3, #0x1e + ldrsh r0, [r4, r3] + subs r1, r1, r0 + lsls r1, r1, #8 + ldrh r0, [r5, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + adds r1, r1, r0 + movs r2, #0x24 + ldrsh r0, [r5, r2] + cmp r1, r0 + bhi _0806277C + ldrh r0, [r4, #0x1e] + strh r0, [r5, #0x2e] + b _08062782 + .align 2, 0 +_08062778: .4byte gRoomControls +_0806277C: + ldr r1, _08062784 @ =gActiveScriptInfo + movs r0, #0 + strb r0, [r1, #6] +_08062782: + pop {r4, r5, pc} + .align 2, 0 +_08062784: .4byte gActiveScriptInfo + + .syntax divided diff --git a/asm/non_matching/kid/sub_08062948.inc b/asm/non_matching/kid/sub_08062948.inc new file mode 100644 index 00000000..e698b073 --- /dev/null +++ b/asm/non_matching/kid/sub_08062948.inc @@ -0,0 +1,142 @@ + .syntax unified + .text + +sub_08062948: @ 0x08062948 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldrb r0, [r6, #0x18] + cmp r0, #0 + bne _080629B4 + adds r0, #1 + strb r0, [r6, #0x18] + bl Random + movs r1, #0x3f + ands r0, r1 + adds r0, #0x20 + strh r0, [r6, #0x12] + bl Random + adds r1, r0, #0 + movs r0, #0x18 + ands r1, r0 + ldrb r0, [r4, #0x15] + cmp r0, #8 + beq _08062990 + cmp r0, #8 + bgt _0806297E + cmp r0, #0 + beq _08062988 + b _080629A6 +_0806297E: + cmp r0, #0x10 + beq _08062998 + cmp r0, #0x18 + beq _080629A0 + b _080629A6 +_08062988: + cmp r1, #0x10 + bne _080629A6 + movs r1, #8 + b _080629A6 +_08062990: + cmp r1, #0x18 + bne _080629A6 + movs r1, #0x10 + b _080629A6 +_08062998: + cmp r1, #0 + bne _080629A6 + movs r1, #0x18 + b _080629A6 +_080629A0: + cmp r1, #8 + bne _080629A6 + movs r1, #0 +_080629A6: + strb r1, [r4, #0x15] + adds r0, r1, #0 + bl sub_0806F5B0 + strb r0, [r4, #0x14] + movs r0, #0x80 + strh r0, [r4, #0x24] +_080629B4: + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + adds r1, r0, #4 + adds r5, r4, #0 + adds r5, #0x58 + ldrb r0, [r5] + cmp r1, r0 + beq _080629D2 + adds r0, r4, #0 + bl InitializeAnimation + ldrb r1, [r5] + adds r0, r4, #0 + adds r0, #0x80 + strh r1, [r0] +_080629D2: + adds r0, r4, #0 + bl ProcessMovement + movs r3, #0x2e + ldrsh r1, [r4, r3] + adds r2, r4, #0 + adds r2, #0x6c + movs r5, #0 + ldrsh r0, [r2, r5] + subs r1, r1, r0 + cmp r1, #0x10 + ble _080629F4 + ldrh r0, [r2] + adds r0, #0x10 + strh r0, [r4, #0x2e] + movs r0, #1 + strh r0, [r6, #0x12] +_080629F4: + movs r3, #0x10 + rsbs r3, r3, #0 + cmp r1, r3 + bge _08062A06 + ldrh r0, [r2] + subs r0, #0x10 + strh r0, [r4, #0x2e] + movs r0, #1 + strh r0, [r6, #0x12] +_08062A06: + movs r0, #0x32 + ldrsh r1, [r4, r0] + adds r2, r4, #0 + adds r2, #0x6e + movs r5, #0 + ldrsh r0, [r2, r5] + subs r1, r1, r0 + cmp r1, #0x10 + ble _08062A22 + ldrh r0, [r2] + adds r0, #0x10 + strh r0, [r4, #0x32] + movs r0, #1 + strh r0, [r6, #0x12] +_08062A22: + cmp r1, r3 + bge _08062A30 + ldrh r0, [r2] + subs r0, #0x10 + strh r0, [r4, #0x32] + movs r0, #1 + strh r0, [r6, #0x12] +_08062A30: + ldrh r0, [r6, #0x12] + subs r0, #1 + strh r0, [r6, #0x12] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08062A42 + ldr r1, _08062A44 @ =gActiveScriptInfo + movs r0, #0 + strb r0, [r1, #6] +_08062A42: + pop {r4, r5, r6, pc} + .align 2, 0 +_08062A44: .4byte gActiveScriptInfo + + .syntax divided diff --git a/linker.ld b/linker.ld index b88eaad4..06817df7 100644 --- a/linker.ld +++ b/linker.ld @@ -556,7 +556,7 @@ SECTIONS { asm/postman.o(.text); src/npc/npc5.o(.text); src/npc/townsperson.o(.text); - asm/kid.o(.text); + src/npc/kid.o(.text); src/npc/npc9.o(.text); src/npc/stamp.o(.text); src/npc/marcy.o(.text); diff --git a/src/npc/kid.c b/src/npc/kid.c new file mode 100644 index 00000000..f265106e --- /dev/null +++ b/src/npc/kid.c @@ -0,0 +1,444 @@ +#include "entity.h" +#include "functions.h" +#include "textbox.h" +#include "npc.h" +#include "script.h" +#include "utils.h" +#include "random.h" +#include "save.h" + +extern void (*const gUnk_0810BE0C[])(Entity*); +void sub_080621AC(Entity*); + +extern SpriteLoadData* gUnk_0810BDC4[]; + +void sub_080622F4(Entity*); +void sub_0806265C(Entity*, ScriptExecutionContext*); + +void sub_0806252C(Entity*); + +typedef struct { + u16 unk_0; /* u16 */ + u16 unk_2; /* u16 */ + u16 unk_4; /* u16 */ + u8 unk_6; + u8 unk_7; +} KidHeap; + +extern u16 gUnk_0810BDE8[]; + +extern Dialog gUnk_0810BE10[]; + +extern u8 gUnk_0810C0A0[]; + +extern SpriteLoadData* gUnk_0810BDC4[]; + +void Kid(Entity* this) { + if ((this->flags & 2) != 0) { + sub_080621AC(this); + } else { + gUnk_0810BE0C[this->action](this); + } +} + +void sub_080620F4(Entity* this) { + if (LoadExtraSpriteData(this, gUnk_0810BDC4[this->type]) != 0) { + this->animationState = 4; + this->field_0x68.HALF.LO = 0; + this->action = 1; + InitAnimationForceUpdate(this, 2); + sub_08078778(this); + } +} + +void sub_08062130(Entity* this) { + if (this->interactType != 0) { + this->action = 2; + InitAnimationForceUpdate(this, GetAnimationState(this)); + } + if (this->field_0xf++ >= 0x79) { + this->field_0xf = 0; + this->actionDelay = (this->actionDelay + 1) & 7; + if (this->type == 6) { + this->actionDelay = this->actionDelay + 0x10; + } + InitAnimationForceUpdate(this, this->actionDelay); + } else { + UpdateAnimationSingleFrame(this); + } + sub_0806ED78(this); +} + +void sub_08062194(Entity* this) { + TextboxNoOverlapFollow(0); + this->action = 1; + this->interactType = 0; +} + +NONMATCH("asm/non_matching/kid/sub_080621AC.inc", void sub_080621AC(Entity* this)) { + u32 tmp; + + switch (this->action) { + case 0: + if (LoadExtraSpriteData(this, gUnk_0810BDC4[this->type]) != 0) { + this->action = 1; + this->animationState = this->actionDelay; + this->actionDelay = 0; + this->field_0x68.HALF.LO = 0; + this->field_0x68.HALF.HI = 0; + this->field_0x6a.HALF.HI = 0xff; + tmp = sub_0805ACC0(this); + if (tmp == 0) { + this->field_0x6c.HWORD = this->x.HALF.HI; + this->field_0x6e.HWORD = this->y.HALF.HI; + } else { + this->field_0x6c.HWORD = tmp >> 0x10; + this->field_0x6e.HWORD = tmp; + } + sub_0807DD50(this); + } + break; + case 1: + if (this->interactType == 2) { + this->action = 3; + this->interactType = 0; + sub_0806F118(this); + } else { + if ((s8)this->field_0x68.HALF.LO != 0) { + if (this->interactType != 0) { + this->action = 2; + this->interactType = 0; + } else { + sub_080622F4(this); + return; + } + } else { + sub_0807DD94(this, NULL); + if (this->interactType != 0) { + this->action = 2; + this->interactType = 0; + } else { + return; + } + } + sub_0806265C(this, *(ScriptExecutionContext**)&this->cutsceneBeh); + } + // TODO this needs to be moved up somehow? + this->field_0x6a.HALF.HI = this->animIndex; + if (this->animIndex < 8) { + InitializeAnimation(this, (this->animIndex & 0xfffffffc) + + sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity))); + } + break; + case 2: + GetNextFrame(this); + if ((gTextBox.doTextBox & 0x7f) == 0) { + this->action = 1; + } + break; + case 3: + if (UpdateFuseInteraction(this) != 0) { + this->action = 1; + } + break; + default: + break; + } +} +END_NONMATCH + +ASM_FUNC("asm/non_matching/kid/sub_080622F4.inc", void sub_080622F4(Entity* this)) + +void sub_08062500(Entity* this) { + this->myHeap = zMalloc(0xa0); + if (this->myHeap != NULL) { + this->field_0x68.HALF.LO = 1; + sub_080788E0(this); + this->hitbox = NULL; + sub_0806252C(this); + } +} + +NONMATCH("asm/non_matching/kid/sub_0806252C.inc", void sub_0806252C(Entity* this)) { + s16 sVar1; + s16 sVar2; + u16 uVar3; + u8 uVar4; + s16 r0; + s16 sVar5; + s16 sVar6; + u8 bVar7; + KidHeap* heapObj; + s32 loopVar; + s32 iVar10; + s32 iVar11; + + uVar4 = gPlayerState.field_0xa8; + uVar3 = gPlayerEntity.height.HALF.HI; + sVar2 = gPlayerEntity.y.HALF.HI; + sVar1 = gPlayerEntity.x.HALF.HI; + r0 = gPlayerEntity.y.HALF.HI - this->y.HALF.HI; + sVar5 = FixedDiv(gPlayerEntity.x.HALF.HI - this->x.HALF.HI, 0x14); + sVar6 = FixedDiv(r0, 0x14); + heapObj = (KidHeap*)this->myHeap; + iVar10 = 0; + iVar11 = 0; + loopVar = 0x13; + while (loopVar > -1) { + heapObj->unk_0 = sVar1 - (s16)((u32)iVar11 >> 8); + heapObj->unk_2 = sVar2 - (s16)((u32)iVar10 >> 8); + heapObj->unk_4 = uVar3; + heapObj->unk_6 = uVar4; + bVar7 = this->animationState & 0x3f; + heapObj->unk_7 = (heapObj->unk_7 & 0xc0) | bVar7; + heapObj->unk_7 = bVar7 | this->collisionLayer << 6; + heapObj = heapObj + 1; + iVar10 = iVar10 + sVar6; + iVar11 = iVar11 + sVar5; + loopVar = loopVar - 1; + }; +} +END_NONMATCH + +NONMATCH("asm/non_matching/kid/sub_08062634.inc", void sub_08062634(Entity* this)) { + u8 arr = this->type2; + u32 arr2 = arr * 2 + (Random() & 1); + u16 id = gUnk_0810BDE8[arr2]; + TextboxNoOverlap(id, this); +} +END_NONMATCH + +NONMATCH("asm/non_matching/kid/sub_0806265C.inc", void sub_0806265C(Entity* this, ScriptExecutionContext* context)) { + if (gSave.unk8 == 0) { + TextboxNoOverlap(0, this); + } else { + ShowNPCDialogue(this, &gUnk_0810BE10[this->type * 9 + gSave.unk8]); + } +} +END_NONMATCH + +void sub_08062698(Entity* this) { + this->speed = (Random() & 0x3f) + 0xc0; +} + +void sub_080626AC(Entity* this) { + this->actionDelay = (Random() & 0x1f) + 0x40; +} + +void sub_080626C0(Entity* this, ScriptExecutionContext* context) { + context->condition = 0; + if ((this->actionDelay != 0) && (--this->actionDelay == 0)) { + context->condition = 1; + } +} + +NONMATCH("asm/non_matching/kid/sub_080626E0.inc", void sub_080626E0(Entity* this, ScriptExecutionContext* context)) { + // TODO second parameter might be anything as this function does not seem to be called? + s16 sVar1; + u8 bVar2; + u8 cVar3; + s32 uVar4; + + if (context->unk_18 == 0) { + context->unk_18 += 1; + context->unk_19 = 10; + context->postScriptActions |= 2; + sVar1 = *(s16*)&context->intVariable; + context->x.HALF.HI = *((u16*)&context->intVariable + 2) + gRoomControls.roomOriginX; + context->y.HALF.HI = gRoomControls.roomOriginY + sVar1; + } + bVar2 = context->unk_19 - 1; + context->unk_19 = bVar2; + if (bVar2 == 0) { + context->unk_19 = 10; + uVar4 = sub_080045DA(context->x.HALF.HI - this->x.HALF.HI, context->y.HALF.HI - this->y.HALF.HI); + this->direction = (u8)uVar4; + uVar4 = Random(); + cVar3 = uVar4 % 0xb; + this->direction = (this->direction + cVar3) - 5; + } + sub_0806F62C(this, (s32)this->speed, (u32)this->direction); + if ((u32)(s32)this->speed < + (u32)((this->x.HALF.HI - context->x.HALF.HI) * 0x100 + ((s32)((u32)(u16)this->speed << 0x10) >> 0x11))) { + gActiveScriptInfo.commandSize = 0; + } else { + this->x.HALF.HI = context->x.HALF.HI; + } +} +END_NONMATCH + +void sub_08062788(Entity* this, ScriptExecutionContext* context) { + SetTile(0x4072, 0x60b, 1); + SetTile(0x4072, 0x60c, 1); + SetTile(0x4072, 0x60d, 1); + SetTile(0x4072, 0x64b, 1); + SetTile(0x4072, 0x64c, 1); + SetTile(0x4072, 0x64d, 1); +} + +void sub_080627E8(Entity* this, ScriptExecutionContext* context) { + sub_0807BA8C(0x60b, 1); + sub_0807BA8C(0x60c, 1); + sub_0807BA8C(0x60d, 1); + sub_0807BA8C(0x64b, 1); + sub_0807BA8C(0x64c, 1); + sub_0807BA8C(0x64d, 1); +} + +NONMATCH("asm/non_matching/kid/Kid_Head.inc", void Kid_Head(Entity* this)) { + s32 iVar1; + u32 uVar2; + u32 uVar3; + u32 uVar4; + + iVar1 = (u32)this->type * 4; + uVar3 = ((u8)this->frames.all & 0x1f) + (u32)gUnk_0810C0A0[iVar1]; + uVar4 = (this->frameIndex & 0x1f) + (u32)gUnk_0810C0A0[iVar1 + 1]; + switch (this->type) { + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + uVar2 = (this->frameSpriteSettings & 0x30) >> 4; + if (uVar2 != 0) { + uVar2 = uVar2 + 0x50; + } + SetExtraSpriteFrame(this, 0, uVar3); + SetExtraSpriteFrame(this, 1, uVar4); + SetExtraSpriteFrame(this, 2, uVar2 - 1); + SetSpriteSubEntryOffsetData1(this, 1, 0); + SetSpriteSubEntryOffsetData2(this, 1, 2); + sub_0807000C(this); + break; + case 6: + uVar2 = this->frameSpriteSettings & 0xf; + if ((this->frameSpriteSettings & 0xf) != 0) { + uVar2 = uVar2 + 0x93; + } + SetExtraSpriteFrame(this, 0, uVar2 - 1); + SetExtraSpriteFrame(this, 1, uVar3); + SetExtraSpriteFrame(this, 2, uVar4); + SetSpriteSubEntryOffsetData1(this, 2, 1); + SetSpriteSubEntryOffsetData2(this, 1, 0); + sub_0807000C(this); + break; + case 7: + case 8: + SetExtraSpriteFrame(this, 0, uVar3); + SetExtraSpriteFrame(this, 1, uVar4); + SetSpriteSubEntryOffsetData1(this, 1, 0); + sub_0807000C(this); + break; + default: + break; + } +} +END_NONMATCH + +NONMATCH("asm/non_matching/kid/sub_08062948.inc", void sub_08062948(Entity* this, ScriptExecutionContext* context)) { + u8 bVar1; + u16 uVar2; + u32 uVar3; + s32 iVar4; + s16* psVar5; + + if (context->unk_18 == 0) { + context->unk_18 += 1; + context->unk_12 = (Random() & 0x3f) + 0x20; + uVar3 = Random() & 0x18; + bVar1 = this->direction; + if (bVar1 != 8) { + if (bVar1 >= 9) { + if (bVar1 == 0x10) { + if (uVar3 == 0) { + uVar3 = 0x18; + } + } else { + if ((bVar1 == 0x18) && (uVar3 == 8)) { + uVar3 = 0; + } + } + } else { + if ((bVar1 == 0) && (uVar3 == 0x10)) { + uVar3 = 8; + } + } + } else { + if (uVar3 == 0x18) { + uVar3 = 0x10; + } + } + this->direction = (u8)uVar3; + uVar3 = sub_0806F5B0(uVar3); + this->animationState = (u8)uVar3; + this->speed = 0x80; + } + uVar3 = (this->animationState >> 1) + 4; + if (uVar3 != this->animIndex) { + InitializeAnimation(this, uVar3); + this->field_0x80.HALF.LO = (u16)this->animIndex; + } + ProcessMovement(this); + iVar4 = this->x.HALF.HI - this->field_0x6c.HALF.LO; + if (0x10 < iVar4) { + this->x.HALF.HI = this->field_0x6c.HALF.LO + 0x10; + context->unk_12 = 1; + } + if (iVar4 < -0x10) { + this->x.HALF.HI = this->field_0x6c.HALF.LO + -0x10; + context->unk_12 = 1; + } + iVar4 = this->y.HALF.HI - this->field_0x6e.HALF.LO; + if (0x10 < iVar4) { + this->y.HALF.HI = this->field_0x6e.HALF.LO + 0x10; + context->unk_12 = 1; + } + if (iVar4 < -0x10) { + this->y.HALF.HI = this->field_0x6e.HALF.LO + -0x10; + context->unk_12 = 1; + } + uVar2 = context->unk_12 - 1; + context->unk_12 = uVar2; + if (uVar2 != 0) { + gActiveScriptInfo.commandSize = 0; + } +} +END_NONMATCH + +void sub_08062A48(Entity* this, ScriptExecutionContext* context) { + this->field_0x6a.HALF.LO = sub_0801E99C(this); + sub_08078784(this, this->field_0x6a.HALF.LO); +} + +void Kid_Fusion(Entity* this) { + u32 tmp; + if (this->action == 0) { + if (LoadExtraSpriteData(this, gUnk_0810BDC4[this->type]) != 0) { + this->action = this->action + 1; + this->spriteSettings.b.draw = 1; + this->y.HALF.HI = this->y.HALF.HI + -8; + tmp = 6; + if (this->type == 6) { + tmp = 0x16; + } + InitializeAnimation(this, tmp); + } + } else { + GetNextFrame(this); + } +} + +// TODO does this belong to child or next, unused entity? +extern void (*const gUnk_0810C268[])(Entity*); + +void sub_08062AB8(Entity* this) { + gUnk_0810C268[this->action](this); +} + +void sub_08062AD0(Entity* this) { +} + +void sub_08062AD4(Entity* this) { +} From fce61af0b8b1c67692e05cd74303a6d0460a94bd Mon Sep 17 00:00:00 2001 From: octorock <79596758+octorock@users.noreply.github.com> Date: Thu, 27 May 2021 22:14:22 +0200 Subject: [PATCH 09/74] Split npc files --- asm/bigGoron.s | 1143 -------------- asm/bowUse.s | 8 - asm/brocco.s | 287 ---- asm/castleMaid.s | 352 ----- asm/castorWildsStatue.s | 546 ------- asm/cucco.s | 327 ---- asm/cuccoChick.s | 245 --- asm/drLeft.s | 166 --- asm/evilSpirit/sub_080862B8.inc | 100 -- asm/farmers.s | 205 --- asm/ghostBrothers.s | 553 ------- asm/gorman.s | 479 ------ asm/gregal.s | 386 ----- asm/guardWithSpear.s | 624 -------- asm/hiddenLadderDown.s | 7 - asm/hurdyGurdyMan.s | 209 --- asm/kid.s | 1319 ----------------- asm/kingDaltus.s | 255 ---- asm/librarians.s | 259 ---- asm/mama.s | 231 --- asm/ministerPotho.s | 251 ---- asm/mountainMinish.s | 587 -------- asm/non_matching/CreateItemDrop.inc | 1 - asm/non_matching/ForceEquipItem.inc | 2 - asm/non_matching/bigGoron/sub_0806D02C.inc | 74 + asm/non_matching/bigGoron/sub_0806D138.inc | 23 + asm/non_matching/bigGoron/sub_0806D164.inc | 52 + asm/non_matching/bigGoron/sub_0806D1D0.inc | 87 ++ asm/non_matching/bigGoron/sub_0806D520.inc | 96 ++ asm/non_matching/bigGoron/sub_0806D5D4.inc | 21 + asm/non_matching/bigGoron/sub_0806D67C.inc | 46 + asm/non_matching/brocco/sub_08063584.inc | 64 + asm/non_matching/button/sub_08081E6C.inc | 1 - asm/non_matching/castleMaid/sub_08064570.inc | 105 ++ asm/non_matching/castleMaid/sub_080646A4.inc | 127 ++ .../castorWildsStatue/sub_080675D4.inc | 131 ++ .../castorWildsStatue/sub_080676E0.inc | 63 + .../clothesRack/sub_0806DD90.inc} | 16 +- asm/non_matching/cucco/sub_0806E564.inc | 64 + asm/non_matching/cucco/sub_0806E5E4.inc | 50 + asm/non_matching/cucco/sub_0806E6A8.inc | 26 + asm/non_matching/cuccoChick/sub_0806E7B0.inc | 60 + asm/non_matching/farmers/Farmers.inc | 58 + asm/non_matching/farmers/sub_0806BC94.inc | 19 + .../ghostBrothers/GhostBrothers.inc | 41 + .../ghostBrothers/sub_08065C0C.inc | 98 ++ .../ghostBrothers/sub_08065D74.inc | 35 + .../ghostBrothers/sub_08065DB8.inc | 126 ++ .../ghostBrothers/sub_08065EDC.inc | 36 + asm/non_matching/gibdo/sub_08037810.inc | 86 -- asm/non_matching/gibdo/sub_08037A58.inc | 64 - asm/non_matching/gorman/sub_0806991C.inc | 69 + asm/non_matching/gorman/sub_080699AC.inc | 69 + .../guardWithSpear/sub_0806407C.inc | 140 ++ .../guardWithSpear/sub_08064198.inc | 144 ++ .../guardWithSpear/sub_080642B8.inc | 144 ++ .../guardWithSpear/sub_080643D8.inc | 40 + .../guardWithSpear/sub_08064428.inc | 37 + .../guardWithSpear/sub_080644C8.inc | 36 + asm/non_matching/helmasaur/sub_0802BD8C.inc | 47 - asm/non_matching/kid/Kid_Head.inc | 1 - asm/non_matching/kid/sub_080621AC.inc | 1 - asm/non_matching/kid/sub_080622F4.inc | 1 - asm/non_matching/kid/sub_0806252C.inc | 1 - asm/non_matching/kid/sub_08062634.inc | 1 - asm/non_matching/kid/sub_0806265C.inc | 1 - asm/non_matching/kid/sub_080626E0.inc | 1 - asm/non_matching/kid/sub_08062948.inc | 1 - asm/non_matching/librarians/Librarians.inc | 32 + asm/non_matching/librarians/sub_0806BA34.inc | 114 ++ asm/non_matching/m4a/CgbModVol.inc | 64 - asm/non_matching/manager15/sub_0805A9CC.inc | 1 - asm/non_matching/manager4/sub_0805795C.inc | 1 - asm/non_matching/managerC/sub_08058D34.inc | 1 - asm/non_matching/mazaal/sub_0803BA8C.inc | 129 -- .../minishEzlo/MinishEzlo_Head.inc | 54 + .../minishEzlo/sub_080630A4.inc} | 161 +- .../mountainMinish/MountainMinish_Head.inc | 67 + .../mountainMinish/sub_08067EF0.inc | 249 ++++ .../mountainMinish/sub_0806811C.inc | 62 + .../mountainMinish/sub_08068190.inc | 37 + asm/non_matching/npc23/sub_08066490.inc | 66 + asm/non_matching/npc23/sub_0806650C.inc | 57 + asm/non_matching/npc23/sub_08066570.inc | 59 + asm/non_matching/npc5/sub_08060FD0.inc | 1 - asm/non_matching/npc5/sub_08061170.inc | 1 - asm/non_matching/npc5/sub_080611D4.inc | 1 - asm/non_matching/npc5/sub_08061358.inc | 1 - asm/non_matching/npc5/sub_08061464.inc | 1 - asm/non_matching/npc5/sub_08061B18.inc | 1 - .../phonograph/sub_0806E964.inc} | 70 +- .../picolyteBottles/sub_0806DF74.inc | 34 + .../picolyteBottles/sub_0806E014.inc | 95 ++ .../picolyteBottles/sub_0806E140.inc | 78 + asm/non_matching/pina/sub_08063AC0.inc | 64 + .../postman/sub_0806076C.inc} | 146 +- asm/non_matching/postman/sub_080608E4.inc | 79 + asm/non_matching/rem/sub_0806A674.inc | 235 +++ asm/non_matching/rem/sub_0806AA50.inc | 153 ++ .../sittingPerson/SittingPerson_Head.inc | 42 + .../sittingPerson/sub_08063758.inc | 49 + .../sittingPerson/sub_08063850.inc | 19 + .../sittingPerson/sub_0806387C.inc | 66 + .../sittingPerson/sub_0806390C.inc | 27 + asm/non_matching/stockwell/sub_080650CC.inc | 107 ++ asm/non_matching/stockwell/sub_08065370.inc | 186 +++ asm/non_matching/sturgeon/Sturgeon.inc | 84 ++ asm/non_matching/sturgeon/sub_08064B88.inc | 83 ++ .../syrup/Syrup_Head.inc} | 10 +- .../tingleSiblings/sub_08064DE4.inc | 97 ++ .../tingleSiblings/sub_08064EE8.inc | 34 + .../tingleSiblings/sub_08064F28.inc | 121 ++ .../zeldaFollower/sub_08068318.inc} | 209 +-- .../zeldaFollower/sub_08068578.inc | 127 ++ asm/npc23.s | 420 ------ asm/npc58.s | 149 -- asm/ocarinaUpdate.s | 46 - asm/percy.s | 156 -- asm/picolyteBottles.s | 486 ------ asm/pina.s | 359 ----- asm/pita.s | 11 - asm/projectile/mv | 0 asm/rem.s | 1053 ------------- asm/sittingPerson.s | 412 ----- asm/stockwell.s | 662 --------- asm/sturgeon.s | 375 ----- asm/sub_08007DE0.s | 22 - asm/tingleSiblings.s | 331 ----- asm/windTribespeople.s | 199 --- include/enemy.h | 8 +- include/greatFairy.h | 1 - include/save.h | 3 +- include/structures.h | 3 +- include/utils.h | 7 + linker.ld | 63 +- src/enemy.c | 8 +- src/enemy/gibdo.c | 16 +- src/gba/m4a.c | 1 - src/manager/managerC.c | 7 +- src/npc/bigGoron.c | 337 ++++- src/npc/brocco.c | 93 ++ src/npc/castleMaid.c | 114 ++ src/npc/castorWildsStatue.c | 128 ++ src/npc/clothesRack.c | 6 + src/npc/cucco.c | 87 ++ src/npc/cuccoChick.c | 85 ++ src/npc/drLeft.c | 85 ++ src/npc/farmers.c | 58 + src/npc/ghostBrothers.c | 143 ++ src/npc/gorman.c | 138 ++ src/npc/gregal.c | 162 ++ src/npc/guardWithSpear.c | 45 + src/npc/hurdyGurdyMan.c | 88 ++ src/npc/kid.c | 7 +- src/npc/kingDaltus.c | 104 ++ src/npc/librarians.c | 61 + src/npc/mama.c | 98 ++ src/npc/minishEzlo.c | 44 + src/npc/ministerPotho.c | 106 ++ src/npc/mountainMinish.c | 109 ++ src/npc/npc23.c | 108 ++ src/npc/npc58.c | 54 + src/npc/percy.c | 61 + src/npc/phonograph.c | 33 + src/npc/picolyteBottle.c | 132 ++ src/npc/pina.c | 130 ++ src/npc/postman.c | 27 + src/npc/rem.c | 274 ++++ src/npc/sittingPerson.c | 95 ++ src/npc/stockwell.c | 156 ++ src/npc/sturgeon.c | 128 ++ src/npc/syrup.c | 2 + src/npc/tingleSiblings.c | 42 + src/npc/windTribespeople.c | 90 ++ src/npc/zeldaFollower.c | 40 +- 175 files changed, 8281 insertions(+), 14307 deletions(-) delete mode 100644 asm/bigGoron.s delete mode 100644 asm/bowUse.s delete mode 100644 asm/brocco.s delete mode 100644 asm/castleMaid.s delete mode 100644 asm/castorWildsStatue.s delete mode 100644 asm/cucco.s delete mode 100644 asm/cuccoChick.s delete mode 100644 asm/drLeft.s delete mode 100644 asm/evilSpirit/sub_080862B8.inc delete mode 100644 asm/farmers.s delete mode 100644 asm/ghostBrothers.s delete mode 100644 asm/gorman.s delete mode 100644 asm/gregal.s delete mode 100644 asm/guardWithSpear.s delete mode 100644 asm/hiddenLadderDown.s delete mode 100644 asm/hurdyGurdyMan.s delete mode 100644 asm/kid.s delete mode 100644 asm/kingDaltus.s delete mode 100644 asm/librarians.s delete mode 100644 asm/mama.s delete mode 100644 asm/ministerPotho.s delete mode 100644 asm/mountainMinish.s create mode 100644 asm/non_matching/bigGoron/sub_0806D02C.inc create mode 100644 asm/non_matching/bigGoron/sub_0806D138.inc create mode 100644 asm/non_matching/bigGoron/sub_0806D164.inc create mode 100644 asm/non_matching/bigGoron/sub_0806D1D0.inc create mode 100644 asm/non_matching/bigGoron/sub_0806D520.inc create mode 100644 asm/non_matching/bigGoron/sub_0806D5D4.inc create mode 100644 asm/non_matching/bigGoron/sub_0806D67C.inc create mode 100644 asm/non_matching/brocco/sub_08063584.inc create mode 100644 asm/non_matching/castleMaid/sub_08064570.inc create mode 100644 asm/non_matching/castleMaid/sub_080646A4.inc create mode 100644 asm/non_matching/castorWildsStatue/sub_080675D4.inc create mode 100644 asm/non_matching/castorWildsStatue/sub_080676E0.inc rename asm/{clothesRack.s => non_matching/clothesRack/sub_0806DD90.inc} (91%) create mode 100644 asm/non_matching/cucco/sub_0806E564.inc create mode 100644 asm/non_matching/cucco/sub_0806E5E4.inc create mode 100644 asm/non_matching/cucco/sub_0806E6A8.inc create mode 100644 asm/non_matching/cuccoChick/sub_0806E7B0.inc create mode 100644 asm/non_matching/farmers/Farmers.inc create mode 100644 asm/non_matching/farmers/sub_0806BC94.inc create mode 100644 asm/non_matching/ghostBrothers/GhostBrothers.inc create mode 100644 asm/non_matching/ghostBrothers/sub_08065C0C.inc create mode 100644 asm/non_matching/ghostBrothers/sub_08065D74.inc create mode 100644 asm/non_matching/ghostBrothers/sub_08065DB8.inc create mode 100644 asm/non_matching/ghostBrothers/sub_08065EDC.inc delete mode 100644 asm/non_matching/gibdo/sub_08037810.inc delete mode 100644 asm/non_matching/gibdo/sub_08037A58.inc create mode 100644 asm/non_matching/gorman/sub_0806991C.inc create mode 100644 asm/non_matching/gorman/sub_080699AC.inc create mode 100644 asm/non_matching/guardWithSpear/sub_0806407C.inc create mode 100644 asm/non_matching/guardWithSpear/sub_08064198.inc create mode 100644 asm/non_matching/guardWithSpear/sub_080642B8.inc create mode 100644 asm/non_matching/guardWithSpear/sub_080643D8.inc create mode 100644 asm/non_matching/guardWithSpear/sub_08064428.inc create mode 100644 asm/non_matching/guardWithSpear/sub_080644C8.inc delete mode 100644 asm/non_matching/helmasaur/sub_0802BD8C.inc create mode 100644 asm/non_matching/librarians/Librarians.inc create mode 100644 asm/non_matching/librarians/sub_0806BA34.inc delete mode 100644 asm/non_matching/m4a/CgbModVol.inc delete mode 100644 asm/non_matching/mazaal/sub_0803BA8C.inc create mode 100644 asm/non_matching/minishEzlo/MinishEzlo_Head.inc rename asm/{minishEzlo.s => non_matching/minishEzlo/sub_080630A4.inc} (52%) create mode 100644 asm/non_matching/mountainMinish/MountainMinish_Head.inc create mode 100644 asm/non_matching/mountainMinish/sub_08067EF0.inc create mode 100644 asm/non_matching/mountainMinish/sub_0806811C.inc create mode 100644 asm/non_matching/mountainMinish/sub_08068190.inc create mode 100644 asm/non_matching/npc23/sub_08066490.inc create mode 100644 asm/non_matching/npc23/sub_0806650C.inc create mode 100644 asm/non_matching/npc23/sub_08066570.inc rename asm/{phonograph.s => non_matching/phonograph/sub_0806E964.inc} (68%) create mode 100644 asm/non_matching/picolyteBottles/sub_0806DF74.inc create mode 100644 asm/non_matching/picolyteBottles/sub_0806E014.inc create mode 100644 asm/non_matching/picolyteBottles/sub_0806E140.inc create mode 100644 asm/non_matching/pina/sub_08063AC0.inc rename asm/{postman.s => non_matching/postman/sub_0806076C.inc} (55%) create mode 100644 asm/non_matching/postman/sub_080608E4.inc create mode 100644 asm/non_matching/rem/sub_0806A674.inc create mode 100644 asm/non_matching/rem/sub_0806AA50.inc create mode 100644 asm/non_matching/sittingPerson/SittingPerson_Head.inc create mode 100644 asm/non_matching/sittingPerson/sub_08063758.inc create mode 100644 asm/non_matching/sittingPerson/sub_08063850.inc create mode 100644 asm/non_matching/sittingPerson/sub_0806387C.inc create mode 100644 asm/non_matching/sittingPerson/sub_0806390C.inc create mode 100644 asm/non_matching/stockwell/sub_080650CC.inc create mode 100644 asm/non_matching/stockwell/sub_08065370.inc create mode 100644 asm/non_matching/sturgeon/Sturgeon.inc create mode 100644 asm/non_matching/sturgeon/sub_08064B88.inc rename asm/{syrup.s => non_matching/syrup/Syrup_Head.inc} (90%) create mode 100644 asm/non_matching/tingleSiblings/sub_08064DE4.inc create mode 100644 asm/non_matching/tingleSiblings/sub_08064EE8.inc create mode 100644 asm/non_matching/tingleSiblings/sub_08064F28.inc rename asm/{zeldaFollower.s => non_matching/zeldaFollower/sub_08068318.inc} (56%) create mode 100644 asm/non_matching/zeldaFollower/sub_08068578.inc delete mode 100644 asm/npc23.s delete mode 100644 asm/npc58.s delete mode 100644 asm/ocarinaUpdate.s delete mode 100644 asm/percy.s delete mode 100644 asm/picolyteBottles.s delete mode 100644 asm/pina.s delete mode 100644 asm/pita.s delete mode 100644 asm/projectile/mv delete mode 100644 asm/rem.s delete mode 100644 asm/sittingPerson.s delete mode 100644 asm/stockwell.s delete mode 100644 asm/sturgeon.s delete mode 100644 asm/sub_08007DE0.s delete mode 100644 asm/tingleSiblings.s delete mode 100644 asm/windTribespeople.s create mode 100644 src/npc/brocco.c create mode 100644 src/npc/castleMaid.c create mode 100644 src/npc/castorWildsStatue.c create mode 100644 src/npc/cucco.c create mode 100644 src/npc/cuccoChick.c create mode 100644 src/npc/drLeft.c create mode 100644 src/npc/farmers.c create mode 100644 src/npc/ghostBrothers.c create mode 100644 src/npc/gorman.c create mode 100644 src/npc/gregal.c create mode 100644 src/npc/guardWithSpear.c create mode 100644 src/npc/hurdyGurdyMan.c create mode 100644 src/npc/kingDaltus.c create mode 100644 src/npc/librarians.c create mode 100644 src/npc/mama.c create mode 100644 src/npc/minishEzlo.c create mode 100644 src/npc/ministerPotho.c create mode 100644 src/npc/mountainMinish.c create mode 100644 src/npc/npc23.c create mode 100644 src/npc/npc58.c create mode 100644 src/npc/phonograph.c create mode 100644 src/npc/picolyteBottle.c create mode 100644 src/npc/pina.c create mode 100644 src/npc/sittingPerson.c create mode 100644 src/npc/stockwell.c create mode 100644 src/npc/sturgeon.c diff --git a/asm/bigGoron.s b/asm/bigGoron.s deleted file mode 100644 index 8e59000e..00000000 --- a/asm/bigGoron.s +++ /dev/null @@ -1,1143 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0806D02C -sub_0806D02C: @ 0x0806D02C - push {lr} - bl sub_0806D164 - ldr r2, _0806D0A8 @ =gScreen - ldrh r1, [r2] - movs r3, #0x80 - lsls r3, r3, #7 - adds r0, r3, #0 - orrs r0, r1 - strh r0, [r2] - adds r1, r2, #0 - adds r1, #0x60 - ldr r0, _0806D0AC @ =0x00003F3F - strh r0, [r1] - adds r1, #2 - movs r0, #0x3d - strh r0, [r1] - movs r1, #0x16 - ldrsh r0, [r2, r1] - rsbs r0, r0, #0 - movs r3, #0x80 - lsls r3, r3, #1 - adds r1, r0, r3 - cmp r0, #0 - bge _0806D060 - movs r0, #0 -_0806D060: - cmp r0, #0xf0 - ble _0806D066 - movs r0, #0xf0 -_0806D066: - cmp r1, #0 - bge _0806D06C - movs r1, #0 -_0806D06C: - cmp r1, #0xf0 - ble _0806D072 - movs r1, #0xf0 -_0806D072: - lsls r0, r0, #8 - orrs r0, r1 - adds r1, r2, #0 - adds r1, #0x5a - strh r0, [r1] - movs r1, #0x18 - ldrsh r0, [r2, r1] - rsbs r0, r0, #0 - adds r1, r0, r3 - cmp r0, #0 - bge _0806D08A - movs r0, #0 -_0806D08A: - cmp r0, #0xa0 - ble _0806D090 - movs r0, #0xa0 -_0806D090: - cmp r1, #0 - bge _0806D096 - movs r1, #0 -_0806D096: - cmp r1, #0xa0 - ble _0806D09C - movs r1, #0xa0 -_0806D09C: - lsls r0, r0, #8 - orrs r0, r1 - adds r1, r2, #0 - adds r1, #0x5e - strh r0, [r1] - pop {pc} - .align 2, 0 -_0806D0A8: .4byte gScreen -_0806D0AC: .4byte 0x00003F3F - - thumb_func_start sub_0806D0B0 -sub_0806D0B0: @ 0x0806D0B0 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _0806D0E8 @ =gUnk_0200B650 - movs r1, #0 - str r1, [r0] - movs r0, #0x30 - bl LoadGfxGroup - bl sub_0806D110 - ldr r5, _0806D0EC @ =gMapDataTopSpecial - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r5, #0 - bl MemClear - cmp r4, #0 - beq _0806D0DA - adds r0, r4, #0 - bl sub_0806D164 -_0806D0DA: - ldr r0, _0806D0F0 @ =gScreen - ldr r1, _0806D0F4 @ =0x00001D47 - strh r1, [r0, #0x14] - str r5, [r0, #0x1c] - movs r1, #1 - strh r1, [r0, #0x1a] - pop {r4, r5, pc} - .align 2, 0 -_0806D0E8: .4byte gUnk_0200B650 -_0806D0EC: .4byte gMapDataTopSpecial -_0806D0F0: .4byte gScreen -_0806D0F4: .4byte 0x00001D47 - - thumb_func_start sub_0806D0F8 -sub_0806D0F8: @ 0x0806D0F8 - push {lr} - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - bl FindEntityByID - cmp r0, #0 - beq _0806D10C - bl sub_0806D0B0 -_0806D10C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806D110 -sub_0806D110: @ 0x0806D110 - push {r4, r5, lr} - ldr r4, _0806D134 @ =gMapDataTopSpecial - movs r0, #0x80 - lsls r0, r0, #7 - adds r5, r4, r0 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806D138 - movs r0, #0x80 - lsls r0, r0, #4 - adds r4, r4, r0 - adds r5, #0x40 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806D138 - pop {r4, r5, pc} - .align 2, 0 -_0806D134: .4byte gMapDataTopSpecial - - thumb_func_start sub_0806D138 -sub_0806D138: @ 0x0806D138 - push {r4, r5, r6, lr} - adds r3, r0, #0 - movs r4, #0 - ldr r2, _0806D15C @ =0x040000D4 - ldr r6, _0806D160 @ =0x80000020 - movs r5, #0x80 - lsls r5, r5, #1 -_0806D146: - str r3, [r2] - str r1, [r2, #4] - str r6, [r2, #8] - ldr r0, [r2, #8] - adds r4, #1 - adds r3, #0x40 - adds r1, r1, r5 - cmp r4, #0x1f - bls _0806D146 - pop {r4, r5, r6, pc} - .align 2, 0 -_0806D15C: .4byte 0x040000D4 -_0806D160: .4byte 0x80000020 - - thumb_func_start sub_0806D164 -sub_0806D164: @ 0x0806D164 - push {r4, r5, r6, r7, lr} - ldr r5, _0806D1B8 @ =gRoomControls - movs r1, #0xa - ldrsh r2, [r5, r1] - movs r3, #0x2e - ldrsh r1, [r0, r3] - subs r2, r2, r1 - adds r2, #0xa0 - ldr r4, _0806D1BC @ =gScreen - movs r3, #0xf - adds r1, r2, #0 - ands r1, r3 - strh r1, [r4, #0x16] - ldrh r1, [r5, #0xc] - ldrh r0, [r0, #0x32] - subs r1, r1, r0 - adds r1, #0xb0 - strh r1, [r4, #0x18] - ldr r3, _0806D1C0 @ =gUnk_02006F00 - ldr r0, _0806D1C4 @ =0xFFFFC000 - adds r6, r3, r0 - movs r5, #0x20 - lsrs r2, r2, #4 - lsls r2, r2, #2 - adds r3, r2, r3 - adds r7, r4, #0 - ldr r1, _0806D1C8 @ =0x040000D4 - ldr r4, _0806D1CC @ =0x80000020 - movs r2, #0x80 - lsls r2, r2, #1 -_0806D1A0: - str r3, [r1] - str r6, [r1, #4] - str r4, [r1, #8] - ldr r0, [r1, #8] - adds r3, r3, r2 - adds r6, #0x40 - subs r5, #1 - cmp r5, #0 - bne _0806D1A0 - movs r0, #1 - strh r0, [r7, #0x1a] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806D1B8: .4byte gRoomControls -_0806D1BC: .4byte gScreen -_0806D1C0: .4byte gUnk_02006F00 -_0806D1C4: .4byte 0xFFFFC000 -_0806D1C8: .4byte 0x040000D4 -_0806D1CC: .4byte 0x80000020 - - thumb_func_start sub_0806D1D0 -sub_0806D1D0: @ 0x0806D1D0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xc] - cmp r5, #0 - bne _0806D21A - bl sub_0806D00C - cmp r0, #0 - bne _0806D1E6 - bl DeleteThisEntity -_0806D1E6: - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0x1b] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - 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] - ldrb r0, [r4, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x18] - strb r5, [r4, #0x1e] - movs r0, #0x1e - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 -_0806D21A: - ldrb r0, [r4, #0xd] - cmp r0, #1 - beq _0806D25A - cmp r0, #1 - ble _0806D228 - cmp r0, #2 - beq _0806D25E -_0806D228: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r5, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806D24A - bl Random - movs r1, #0x7f - ands r0, r1 - adds r0, #0x30 - strb r0, [r4, #0xe] - movs r0, #8 - strb r0, [r4, #0xf] - movs r0, #1 - strb r0, [r4, #0x1e] -_0806D24A: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0806D268 - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r5 - cmp r0, #0 - bne _0806D268 -_0806D25A: - strb r0, [r4, #0x1e] - b _0806D268 -_0806D25E: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_0806D268: - ldr r0, [r4, #0x50] - ldrh r1, [r0, #0x2e] - strh r1, [r4, #0x2e] - ldrh r0, [r0, #0x32] - strh r0, [r4, #0x32] - pop {r4, r5, pc} - - thumb_func_start sub_0806D274 -sub_0806D274: @ 0x0806D274 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806D2CA - adds r0, r4, #0 - bl sub_0806D00C - cmp r0, #0 - bne _0806D28C - bl DeleteThisEntity -_0806D28C: - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0x1b] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - 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] - movs r0, #2 - strb r0, [r4, #0x1e] - movs r0, #8 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - movs r0, #0x4c - movs r1, #3 - movs r2, #0 - bl CreateNPC - cmp r0, #0 - beq _0806D2CA - str r4, [r0, #0x54] -_0806D2CA: - ldrb r0, [r4, #0xd] - cmp r0, #4 - bhi _0806D2F4 - lsls r0, r0, #2 - ldr r1, _0806D2DC @ =_0806D2E0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806D2DC: .4byte _0806D2E0 -_0806D2E0: @ jump table - .4byte _0806D2F4 @ case 0 - .4byte _0806D2F4 @ case 1 - .4byte _0806D31C @ case 2 - .4byte _0806D334 @ case 3 - .4byte _0806D338 @ case 4 -_0806D2F4: - ldr r0, _0806D318 @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - beq _0806D338 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806D33C - movs r0, #8 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x1e] - movs r1, #1 - eors r0, r1 - b _0806D33A - .align 2, 0 -_0806D318: .4byte gTextBox -_0806D31C: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806D33C - movs r0, #8 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x1e] - movs r1, #1 - eors r0, r1 - b _0806D33A -_0806D334: - movs r0, #4 - b _0806D33A -_0806D338: - movs r0, #2 -_0806D33A: - strb r0, [r4, #0x1e] -_0806D33C: - ldr r0, [r4, #0x50] - ldrh r1, [r0, #0x2e] - strh r1, [r4, #0x2e] - ldrh r0, [r0, #0x32] - strh r0, [r4, #0x32] - pop {r4, pc} - - thumb_func_start sub_0806D348 -sub_0806D348: @ 0x0806D348 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806D39A - adds r0, r4, #0 - bl sub_0806D00C - cmp r0, #0 - bne _0806D360 - bl DeleteThisEntity -_0806D360: - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0x1b] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - orrs r0, r1 - strb r0, [r4, #0x19] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - movs r0, #5 - strb r0, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 -_0806D39A: - ldr r0, [r4, #0x54] - ldrb r0, [r0, #0x1e] - cmp r0, #4 - bne _0806D3AA - ldrb r0, [r4, #0x18] - movs r1, #3 - orrs r0, r1 - b _0806D3B2 -_0806D3AA: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 -_0806D3B2: - strb r0, [r4, #0x18] - ldr r0, [r4, #0x50] - ldrh r1, [r0, #0x2e] - strh r1, [r4, #0x2e] - ldrh r0, [r0, #0x32] - strh r0, [r4, #0x32] - pop {r4, pc} - - thumb_func_start sub_0806D3C0 -sub_0806D3C0: @ 0x0806D3C0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806D3F4 - adds r0, r4, #0 - bl sub_0806D00C - cmp r0, #0 - bne _0806D3D8 - bl DeleteThisEntity -_0806D3D8: - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _0806D3F0 @ =gUnk_080FD180 - str r0, [r4, #0x48] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD64 - b _0806D408 - .align 2, 0 -_0806D3F0: .4byte gUnk_080FD180 -_0806D3F4: - ldr r0, [r4, #0x50] - ldrh r0, [r0, #0x2e] - strh r0, [r4, #0x2e] - adds r0, r4, #0 - movs r1, #0 - bl ExecuteScriptForEntity - adds r0, r4, #0 - bl HandleEntity0x82Actions -_0806D408: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806D40C -sub_0806D40C: @ 0x0806D40C - push {lr} - ldrb r1, [r0, #0x18] - movs r2, #0x40 - orrs r1, r2 - strb r1, [r0, #0x18] - bl sub_0806D41C - pop {pc} - - thumb_func_start sub_0806D41C -sub_0806D41C: @ 0x0806D41C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806D45E - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #6 - strb r0, [r4, #0x1e] - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806D4C0 - adds r0, r4, #0 - movs r1, #1 - bl sub_0806D4C0 - adds r0, r4, #0 - movs r1, #2 - bl sub_0806D4C0 - adds r0, r4, #0 - movs r1, #3 - bl sub_0806D4C0 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - b _0806D46C -_0806D45E: - adds r0, r4, #0 - movs r1, #0 - bl ExecuteScriptForEntity - adds r0, r4, #0 - bl HandleEntity0x82Actions -_0806D46C: - ldr r0, _0806D4A8 @ =gScreenTransition - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _0806D4BE - movs r1, #0x2e - ldrsh r0, [r4, r1] - subs r0, #0x20 - movs r2, #0x32 - ldrsh r1, [r4, r2] - movs r2, #0x40 - movs r3, #0x40 - bl CheckPlayerProximity - cmp r0, #0 - beq _0806D4AC - adds r2, r4, #0 - adds r2, #0x63 - ldrb r3, [r2] - movs r1, #0 - ldrsb r1, [r2, r1] - movs r0, #8 - rsbs r0, r0, #0 - cmp r1, r0 - ble _0806D4BE - subs r0, r3, #1 - strb r0, [r2] - b _0806D4BE - .align 2, 0 -_0806D4A8: .4byte gScreenTransition -_0806D4AC: - adds r1, r4, #0 - adds r1, #0x63 - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bge _0806D4BE - adds r0, r2, #1 - strb r0, [r1] -_0806D4BE: - pop {r4, pc} - - thumb_func_start sub_0806D4C0 -sub_0806D4C0: @ 0x0806D4C0 - push {r4, r5, lr} - adds r5, r0, #0 - adds r1, #6 - movs r0, #0x4c - movs r2, #0 - bl CreateNPC - adds r4, r0, #0 - cmp r4, #0 - beq _0806D4EE - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - adds r0, r5, #0 - adds r1, r4, #0 - bl ResolveEntityOnTop - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 -_0806D4EE: - pop {r4, r5, pc} - - thumb_func_start sub_0806D4F0 -sub_0806D4F0: @ 0x0806D4F0 - push {lr} - movs r1, #0 - bl sub_0806D520 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806D4FC -sub_0806D4FC: @ 0x0806D4FC - push {lr} - movs r1, #1 - bl sub_0806D520 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806D508 -sub_0806D508: @ 0x0806D508 - push {lr} - movs r1, #2 - bl sub_0806D520 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806D514 -sub_0806D514: @ 0x0806D514 - push {lr} - movs r1, #3 - bl sub_0806D520 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806D520 -sub_0806D520: @ 0x0806D520 - push {r4, lr} - adds r4, r0, #0 - adds r3, r1, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806D540 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _0806D5B0 @ =gUnk_08114100 - adds r0, r3, r0 - ldrb r0, [r0] - adds r0, #6 - strb r0, [r4, #0xf] - strb r0, [r4, #0x1e] - movs r0, #8 - strb r0, [r4, #0xe] -_0806D540: - ldr r0, [r4, #0x50] - ldrh r1, [r0, #0x2e] - strh r1, [r4, #0x2e] - ldrh r1, [r0, #0x32] - strh r1, [r4, #0x32] - adds r0, #0x62 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x62 - strb r0, [r1] - ldr r0, [r4, #0x50] - adds r0, #0x63 - ldrb r0, [r0] - adds r1, #1 - strb r0, [r1] - ldr r0, [r4, #0x50] - ldrb r1, [r0, #0x1b] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r4, #0x1b] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _0806D590 - movs r1, #0x2e - ldrsh r0, [r4, r1] - lsls r1, r3, #4 - subs r0, r0, r1 - adds r0, #0xc - movs r2, #0x32 - ldrsh r1, [r4, r2] - movs r2, #0x18 - movs r3, #0x40 - bl CheckPlayerProximity - cmp r0, #0 - beq _0806D5B4 -_0806D590: - ldrb r1, [r4, #0x1e] - ldrb r0, [r4, #0xf] - adds r0, #2 - cmp r1, r0 - bge _0806D5D0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806D5D0 - movs r0, #8 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x1e] - adds r0, #1 - b _0806D5CE - .align 2, 0 -_0806D5B0: .4byte gUnk_08114100 -_0806D5B4: - ldrb r1, [r4, #0x1e] - ldrb r0, [r4, #0xf] - cmp r1, r0 - bls _0806D5D0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806D5D0 - movs r0, #8 - strb r0, [r4, #0xe] - subs r0, r1, #1 -_0806D5CE: - strb r0, [r4, #0x1e] -_0806D5D0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806D5D4 -sub_0806D5D4: @ 0x0806D5D4 - push {lr} - bl sub_08053500 - movs r0, #0xd - bl IsItemEquipped - adds r1, r0, #0 - cmp r1, #2 - beq _0806D5F0 - ldr r0, _0806D5FC @ =gSave - adds r0, #0xb4 - adds r0, r1, r0 - movs r1, #0 - strb r1, [r0] -_0806D5F0: - movs r0, #0xd - movs r1, #0 - bl sub_0807CAA0 - pop {pc} - .align 2, 0 -_0806D5FC: .4byte gSave - - thumb_func_start sub_0806D600 -sub_0806D600: @ 0x0806D600 - push {lr} - movs r2, #0 - ldr r0, _0806D618 @ =gSave - ldr r3, _0806D61C @ =0x00000494 - adds r0, r0, r3 - ldr r0, [r0] - cmp r0, #0 - bne _0806D612 - movs r2, #1 -_0806D612: - str r2, [r1, #0x14] - pop {pc} - .align 2, 0 -_0806D618: .4byte gSave -_0806D61C: .4byte 0x00000494 - - thumb_func_start sub_0806D620 -sub_0806D620: @ 0x0806D620 - push {lr} - movs r0, #0xd - movs r1, #0 - bl sub_0807CAA0 - movs r0, #0xe - movs r1, #0 - movs r2, #0 - bl sub_080A7C18 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806D638 -sub_0806D638: @ 0x0806D638 - ldrh r1, [r0, #0x32] - subs r1, #0x20 - strh r1, [r0, #0x32] - bx lr - - thumb_func_start sub_0806D640 -sub_0806D640: @ 0x0806D640 - ldrh r1, [r0, #0x32] - adds r1, #0x20 - movs r2, #0 - strh r1, [r0, #0x32] - adds r0, #0x39 - strb r2, [r0] - bx lr - .align 2, 0 - - thumb_func_start sub_0806D650 -sub_0806D650: @ 0x0806D650 - movs r1, #2 - strb r1, [r0, #0xd] - bx lr - .align 2, 0 - - thumb_func_start sub_0806D658 -sub_0806D658: @ 0x0806D658 - ldr r1, [r1, #4] - strb r1, [r0, #0xd] - bx lr - .align 2, 0 - - thumb_func_start sub_0806D660 -sub_0806D660: @ 0x0806D660 - ldrb r1, [r0, #0x1b] - movs r2, #0xc0 - orrs r1, r2 - strb r1, [r0, #0x1b] - bx lr - .align 2, 0 - - thumb_func_start sub_0806D66C -sub_0806D66C: @ 0x0806D66C - ldrb r2, [r0, #0x1b] - movs r1, #0x3f - ands r1, r2 - movs r2, #0x80 - orrs r1, r2 - strb r1, [r0, #0x1b] - bx lr - .align 2, 0 - - thumb_func_start sub_0806D67C -sub_0806D67C: @ 0x0806D67C - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r4, _0806D6CC @ =gUnk_08114104 - movs r0, #0 - ldrsb r0, [r4, r0] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _0806D6CA - adds r6, r1, #0 -_0806D690: - movs r1, #0 - ldrsb r1, [r4, r1] - adds r0, r5, #0 - movs r2, #0x40 - bl CreateFx - adds r1, r0, #0 - cmp r1, #0 - beq _0806D6C0 - movs r0, #1 - ldrsb r0, [r4, r0] - ldrh r2, [r1, #0x2e] - adds r0, r0, r2 - strh r0, [r1, #0x2e] - movs r0, #2 - ldrsb r0, [r4, r0] - ldrh r2, [r1, #0x32] - adds r0, r0, r2 - strh r0, [r1, #0x32] - ldrb r0, [r4, #3] - strb r0, [r1, #0x15] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r1, #0x24] -_0806D6C0: - adds r4, #4 - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, r6 - bne _0806D690 -_0806D6CA: - pop {r4, r5, r6, pc} - .align 2, 0 -_0806D6CC: .4byte gUnk_08114104 - - thumb_func_start sub_0806D6D0 -sub_0806D6D0: @ 0x0806D6D0 - push {r4, lr} - sub sp, #4 - movs r4, #0 - str r4, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #2 - bl FindEntity - adds r1, r0, #0 - cmp r1, #0 - beq _0806D6EE - movs r0, #2 - strb r0, [r1, #0xd] -_0806D6EE: - str r4, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #1 - bl FindEntity - adds r1, r0, #0 - cmp r1, #0 - beq _0806D706 - movs r0, #1 - strb r0, [r1, #0xd] -_0806D706: - add sp, #4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806D70C -sub_0806D70C: @ 0x0806D70C - push {r4, lr} - sub sp, #4 - movs r4, #0 - str r4, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #2 - bl FindEntity - adds r2, r0, #0 - cmp r2, #0 - beq _0806D728 - strb r4, [r2, #0xd] -_0806D728: - str r4, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #1 - bl FindEntity - adds r2, r0, #0 - cmp r2, #0 - beq _0806D746 - strb r4, [r2, #0xd] - ldrb r0, [r2, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r2, #0x18] -_0806D746: - add sp, #4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806D74C -sub_0806D74C: @ 0x0806D74C - push {r4, lr} - sub sp, #4 - movs r4, #0 - str r4, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #2 - bl FindEntity - adds r1, r0, #0 - cmp r1, #0 - beq _0806D76A - movs r0, #3 - strb r0, [r1, #0xd] -_0806D76A: - str r4, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #1 - bl FindEntity - adds r1, r0, #0 - cmp r1, #0 - beq _0806D782 - movs r0, #2 - strb r0, [r1, #0xd] -_0806D782: - add sp, #4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806D788 -sub_0806D788: @ 0x0806D788 - push {r4, lr} - sub sp, #4 - movs r4, #0 - str r4, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #2 - bl FindEntity - adds r1, r0, #0 - cmp r1, #0 - beq _0806D7A6 - movs r0, #4 - strb r0, [r1, #0xd] -_0806D7A6: - str r4, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #1 - bl FindEntity - adds r1, r0, #0 - cmp r1, #0 - beq _0806D7BE - movs r0, #1 - strb r0, [r1, #0xd] -_0806D7BE: - add sp, #4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806D7C4 -sub_0806D7C4: @ 0x0806D7C4 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _0806D800 @ =gPlayerEntity - ldrh r0, [r1, #0x2e] - movs r2, #0 - strh r0, [r4, #0x2e] - ldrh r0, [r1, #0x32] - subs r0, #0x18 - strh r0, [r4, #0x32] - str r2, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #2 - bl FindEntity - cmp r0, #0 - beq _0806D7FC - movs r1, #0x2e - ldrsh r2, [r0, r1] - movs r1, #0x32 - ldrsh r3, [r0, r1] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0807DEDC -_0806D7FC: - add sp, #4 - pop {r4, r5, pc} - .align 2, 0 -_0806D800: .4byte gPlayerEntity - - thumb_func_start sub_0806D804 -sub_0806D804: @ 0x0806D804 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #0 - str r0, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #2 - bl FindEntity - adds r1, r0, #0 - cmp r1, #0 - beq _0806D83A - ldrh r0, [r1, #0x2e] - strh r0, [r4, #0x2e] - ldrh r0, [r1, #0x32] - subs r0, #0x10 - strh r0, [r4, #0x32] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_0806D83A: - ldr r0, _0806D854 @ =gPlayerEntity - movs r1, #0x2e - ldrsh r2, [r0, r1] - movs r1, #0x32 - ldrsh r3, [r0, r1] - subs r3, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0807DEDC - add sp, #4 - pop {r4, r5, pc} - .align 2, 0 -_0806D854: .4byte gPlayerEntity - - thumb_func_start sub_0806D858 -sub_0806D858: @ 0x0806D858 - adds r0, #0x29 - ldrb r2, [r0] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #8 - orrs r1, r2 - strb r1, [r0] - bx lr - .align 2, 0 diff --git a/asm/bowUse.s b/asm/bowUse.s deleted file mode 100644 index 0d8cf868..00000000 --- a/asm/bowUse.s +++ /dev/null @@ -1,8 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - diff --git a/asm/brocco.s b/asm/brocco.s deleted file mode 100644 index 80ac6909..00000000 --- a/asm/brocco.s +++ /dev/null @@ -1,287 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Brocco -Brocco: @ 0x08063524 - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0806353A - adds r0, r2, #0 - bl sub_0806362C - b _08063540 -_0806353A: - adds r0, r2, #0 - bl sub_08063544 -_08063540: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08063544 -sub_08063544: @ 0x08063544 - push {lr} - ldr r2, _08063558 @ =gUnk_0810CAA0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08063558: .4byte gUnk_0810CAA0 - - thumb_func_start sub_0806355C -sub_0806355C: @ 0x0806355C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #4 - bl InitAnimationForceUpdate - adds r0, r4, #0 - bl sub_08078778 - pop {r4, pc} - - thumb_func_start sub_08063584 -sub_08063584: @ 0x08063584 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x20 - movs r2, #0x20 - bl sub_0806ED9C - cmp r0, #0 - blt _080635B2 - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _080635B8 - bl Random - movs r1, #0x3f - ands r1, r0 - cmp r1, #0 - bne _080635B2 - movs r0, #1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #0 - bl InitAnimationForceUpdate -_080635B2: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _080635D0 -_080635B8: - 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 _080635D0 - movs r0, #0 - strb r0, [r4, #0xf] -_080635D0: - adds r0, r4, #0 - adds r0, #0x39 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _080635FC - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl GetAnimationState - adds r1, r0, #0 - adds r1, #4 - adds r0, r4, #0 - bl InitAnimationForceUpdate - ldrb r0, [r4, #0xe] - ldr r1, _08063604 @ =0x00000A01 - adds r0, r0, r1 - bl TextboxNoOverlapFollow -_080635FC: - adds r0, r4, #0 - bl sub_0806ED78 - pop {r4, pc} - .align 2, 0 -_08063604: .4byte 0x00000A01 - - thumb_func_start sub_08063608 -sub_08063608: @ 0x08063608 - push {lr} - adds r2, r0, #0 - ldr r0, _08063628 @ =gTextBox - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0 - bne _08063626 - movs r0, #1 - strb r0, [r2, #0xc] - strb r1, [r2, #0xf] - adds r0, r2, #0 - movs r1, #4 - bl InitAnimationForceUpdate -_08063626: - pop {pc} - .align 2, 0 -_08063628: .4byte gTextBox - - thumb_func_start sub_0806362C -sub_0806362C: @ 0x0806362C - push {r4, lr} - adds r4, r0, #0 - ldrb r3, [r4, #0xc] - cmp r3, #1 - beq _08063662 - cmp r3, #1 - bgt _08063640 - cmp r3, #0 - beq _08063646 - b _080636D4 -_08063640: - cmp r3, #2 - beq _080636BA - b _080636D4 -_08063646: - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - adds r0, #0x69 - strb r3, [r0] - adds r0, r4, #0 - bl sub_0807DD64 -_08063662: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _080636A4 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x69 - strb r0, [r1] - ldr r1, _080636A0 @ =gPlayerEntity - adds r0, r4, #0 - bl GetFacingDirection - bl sub_0806F5A4 - adds r1, r0, #0 - adds r1, #4 - adds r0, r4, #0 - bl InitAnimationForceUpdate - adds r0, r4, #0 - bl sub_0806F118 - b _080636D4 - .align 2, 0 -_080636A0: .4byte gPlayerEntity -_080636A4: - adds r0, r4, #0 - movs r1, #0 - bl ExecuteScriptForEntity - adds r0, r4, #0 - bl HandleEntity0x82Actions - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - b _080636D4 -_080636BA: - adds r0, r4, #0 - bl UpdateFuseInteraction - cmp r0, #0 - beq _080636D4 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - ldrb r1, [r0] - adds r0, r4, #0 - bl InitAnimationForceUpdate -_080636D4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080636D8 -sub_080636D8: @ 0x080636D8 - push {lr} - ldr r1, _080636EC @ =gSave - ldrb r1, [r1, #8] - lsls r1, r1, #3 - ldr r2, _080636F0 @ =gUnk_0810CAAC - adds r1, r1, r2 - bl ShowNPCDialogue - pop {pc} - .align 2, 0 -_080636EC: .4byte gSave -_080636F0: .4byte gUnk_0810CAAC - - thumb_func_start sub_080636F4 -sub_080636F4: @ 0x080636F4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start Brocco_Fusion -Brocco_Fusion: @ 0x0806370C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _08063738 - adds r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - ldrh r0, [r2, #0x32] - subs r0, #4 - strh r0, [r2, #0x32] - adds r0, r2, #0 - movs r1, #2 - bl InitAnimationForceUpdate - b _0806373E -_08063738: - adds r0, r2, #0 - bl UpdateAnimationSingleFrame -_0806373E: - pop {pc} diff --git a/asm/castleMaid.s b/asm/castleMaid.s deleted file mode 100644 index f8f6d720..00000000 --- a/asm/castleMaid.s +++ /dev/null @@ -1,352 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Maid -Maid: @ 0x08064508 - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0806451E - adds r0, r2, #0 - bl sub_08064570 - b _08064522 -_0806451E: - bl DeleteThisEntity -_08064522: - pop {pc} - - thumb_func_start Maid_Head -Maid_Head: @ 0x08064524 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r2, #0x7f - ands r2, r0 - ldrb r5, [r4, #0x1e] - ldrb r0, [r4, #9] - cmp r0, #0x16 - bne _08064540 - cmp r2, #0 - beq _08064548 - adds r2, #0xa - b _08064548 -_08064540: - cmp r2, #0 - beq _08064546 - adds r2, #0x1a -_08064546: - adds r5, #0x10 -_08064548: - subs r2, #1 - adds r0, r4, #0 - movs r1, #0 - bl SetExtraSpriteFrame - adds r0, r4, #0 - movs r1, #1 - adds r2, r5, #0 - bl SetExtraSpriteFrame - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl SetSpriteSubEntryOffsetData1 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08064570 -sub_08064570: @ 0x08064570 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xc] - cmp r5, #1 - beq _080645EA - cmp r5, #1 - bgt _08064584 - cmp r5, #0 - beq _0806458A - b _0806463C -_08064584: - cmp r5, #2 - beq _0806462C - b _0806463C -_0806458A: - ldrb r1, [r4, #9] - movs r0, #0x16 - eors r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _080645D0 @ =gUnk_0810F874 - adds r1, r1, r0 - adds r0, r4, #0 - bl LoadExtraSpriteData - cmp r0, #0 - beq _0806463C - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - strb r5, [r4, #0xe] - adds r0, r4, #0 - bl sub_0805ACC0 - adds r2, r0, #0 - cmp r2, #0 - bne _080645D4 - ldrh r0, [r4, #0x2e] - adds r1, r4, #0 - adds r1, #0x6c - strh r0, [r1] - ldrh r0, [r4, #0x32] - adds r1, #2 - strh r0, [r1] - b _080645E0 - .align 2, 0 -_080645D0: .4byte gUnk_0810F874 -_080645D4: - lsrs r1, r2, #0x10 - adds r0, r4, #0 - adds r0, #0x6c - strh r1, [r0] - adds r0, #2 - strh r2, [r0] -_080645E0: - movs r0, #0 - str r0, [r4, #0x68] - adds r0, r4, #0 - bl sub_0807DD50 -_080645EA: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - adds r2, r4, #0 - adds r2, #0x39 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0 - beq _0806463C - ldrb r0, [r4, #0xc] - adds r0, #1 - movs r1, #0 - strb r0, [r4, #0xc] - strb r1, [r2] - ldr r1, _08064628 @ =gPlayerEntity - adds r0, r4, #0 - bl GetFacingDirection - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl InitializeAnimation - ldr r0, [r4, #0x68] - cmp r0, #0 - beq _0806463C - bl _call_via_r0 - b _0806463C - .align 2, 0 -_08064628: .4byte gPlayerEntity -_0806462C: - ldr r0, _08064640 @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0806463C - movs r0, #1 - strb r0, [r4, #0xc] -_0806463C: - pop {r4, r5, pc} - .align 2, 0 -_08064640: .4byte gTextBox - - thumb_func_start sub_08064644 -sub_08064644: @ 0x08064644 - ldr r1, [r1, #4] - str r1, [r0, #0x68] - bx lr - .align 2, 0 - - thumb_func_start sub_0806464C -sub_0806464C: @ 0x0806464C - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x15 - bl CheckGlobalFlag - cmp r0, #0 - beq _0806465E - movs r4, #2 - b _08064674 -_0806465E: - movs r0, #0xa0 - bl CheckLocalFlag - cmp r0, #0 - bne _08064672 - movs r4, #0 - movs r0, #0xa0 - bl SetLocalFlag - b _08064674 -_08064672: - movs r4, #1 -_08064674: - ldr r0, _08064684 @ =gUnk_0810F88C - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_08064684: .4byte gUnk_0810F88C - - thumb_func_start sub_08064688 -sub_08064688: @ 0x08064688 - push {lr} - ldr r1, _0806469C @ =gSave - ldrb r1, [r1, #8] - lsls r1, r1, #3 - ldr r2, _080646A0 @ =gUnk_0810F894 - adds r1, r1, r2 - bl ShowNPCDialogue - pop {pc} - .align 2, 0 -_0806469C: .4byte gSave -_080646A0: .4byte gUnk_0810F894 - - thumb_func_start sub_080646A4 -sub_080646A4: @ 0x080646A4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r5, #0x18] - cmp r0, #0 - bne _08064710 - adds r0, #1 - strb r0, [r5, #0x18] - bl Random - movs r1, #0x3f - ands r0, r1 - adds r0, #0x20 - strh r0, [r5, #0x12] - bl Random - adds r1, r0, #0 - movs r0, #0x18 - ands r1, r0 - ldrb r0, [r4, #0x15] - cmp r0, #8 - beq _080646EC - cmp r0, #8 - bgt _080646DA - cmp r0, #0 - beq _080646E4 - b _08064702 -_080646DA: - cmp r0, #0x10 - beq _080646F4 - cmp r0, #0x18 - beq _080646FC - b _08064702 -_080646E4: - cmp r1, #0x10 - bne _08064702 - movs r1, #8 - b _08064702 -_080646EC: - cmp r1, #0x18 - bne _08064702 - movs r1, #0x10 - b _08064702 -_080646F4: - cmp r1, #0 - bne _08064702 - movs r1, #0x18 - b _08064702 -_080646FC: - cmp r1, #8 - bne _08064702 - movs r1, #0 -_08064702: - strb r1, [r4, #0x15] - adds r0, r1, #0 - bl sub_0806F5B0 - strb r0, [r4, #0x14] - movs r0, #0x80 - strh r0, [r4, #0x24] -_08064710: - ldr r0, [r5, #8] - movs r1, #2 - orrs r0, r1 - str r0, [r5, #8] - adds r0, r4, #0 - bl ProcessMovement - movs r0, #0x2e - ldrsh r1, [r4, r0] - adds r2, r4, #0 - adds r2, #0x6c - movs r3, #0 - ldrsh r0, [r2, r3] - subs r1, r1, r0 - cmp r1, #0x10 - ble _0806473A - ldrh r0, [r2] - adds r0, #0x10 - strh r0, [r4, #0x2e] - movs r0, #1 - strh r0, [r5, #0x12] -_0806473A: - movs r3, #0x10 - rsbs r3, r3, #0 - cmp r1, r3 - bge _0806474C - ldrh r0, [r2] - subs r0, #0x10 - strh r0, [r4, #0x2e] - movs r0, #1 - strh r0, [r5, #0x12] -_0806474C: - movs r6, #0x32 - ldrsh r1, [r4, r6] - adds r2, r4, #0 - adds r2, #0x6e - movs r6, #0 - ldrsh r0, [r2, r6] - subs r1, r1, r0 - cmp r1, #0x10 - ble _08064768 - ldrh r0, [r2] - adds r0, #0x10 - strh r0, [r4, #0x32] - movs r0, #1 - strh r0, [r5, #0x12] -_08064768: - cmp r1, r3 - bge _08064776 - ldrh r0, [r2] - subs r0, #0x10 - strh r0, [r4, #0x32] - movs r0, #1 - strh r0, [r5, #0x12] -_08064776: - ldrh r0, [r5, #0x12] - subs r0, #1 - strh r0, [r5, #0x12] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08064788 - ldr r1, _0806478C @ =gActiveScriptInfo - movs r0, #0 - strb r0, [r1, #6] -_08064788: - pop {r4, r5, r6, pc} - .align 2, 0 -_0806478C: .4byte gActiveScriptInfo diff --git a/asm/castorWildsStatue.s b/asm/castorWildsStatue.s deleted file mode 100644 index 53ada4bf..00000000 --- a/asm/castorWildsStatue.s +++ /dev/null @@ -1,546 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start CastorWildsStatue -CastorWildsStatue: @ 0x08067380 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080673A4 - ldr r0, _080673A0 @ =gUnk_08110E5C - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _080673BA - .align 2, 0 -_080673A0: .4byte gUnk_08110E5C -_080673A4: - ldr r0, _080673BC @ =gUnk_08110E4C - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0806ED78 -_080673BA: - pop {r4, pc} - .align 2, 0 -_080673BC: .4byte gUnk_08110E4C - - thumb_func_start sub_080673C0 -sub_080673C0: @ 0x080673C0 - push {lr} - adds r2, r0, #0 - ldr r0, _080673D4 @ =gScreenTransition - adds r0, #0x2c - ldrb r0, [r0] - cmp r0, #0 - beq _080673D8 - movs r0, #3 - b _080673DA - .align 2, 0 -_080673D4: .4byte gScreenTransition -_080673D8: - movs r0, #1 -_080673DA: - strb r0, [r2, #0xc] - ldrb r1, [r2, #0xa] - movs r0, #1 - ands r0, r1 - strb r0, [r2, #0x1e] - cmp r0, #0 - bne _080673EC - ldr r0, _080673F0 @ =gUnk_08110E94 - str r0, [r2, #0x48] -_080673EC: - pop {pc} - .align 2, 0 -_080673F0: .4byte gUnk_08110E94 - - thumb_func_start sub_080673F4 -sub_080673F4: @ 0x080673F4 - push {lr} - adds r2, r0, #0 - adds r3, r2, #0 - adds r3, #0x39 - movs r0, #0 - ldrsb r0, [r3, r0] - cmp r0, #0 - beq _0806740C - movs r1, #0 - movs r0, #2 - strb r0, [r2, #0xc] - strb r1, [r3] -_0806740C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08067410 -sub_08067410: @ 0x08067410 - movs r1, #1 - strb r1, [r0, #0xc] - bx lr - .align 2, 0 - - thumb_func_start sub_08067418 -sub_08067418: @ 0x08067418 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - movs r0, #1 - strb r0, [r6, #0xc] - movs r0, #0x2e - ldrsh r1, [r6, r0] - ldr r2, _08067488 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r4, #0x32 - ldrsh r0, [r6, r4] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r7, r6, #0 - adds r7, #0x74 - strh r1, [r7] - ldrb r0, [r6, #0xa] - cmp r0, #0 - bne _08067494 - ldr r0, _0806748C @ =gUnk_08110E94 - str r0, [r6, #0x48] - ldr r5, _08067490 @ =0x00004022 - ldrh r1, [r7] - subs r1, #1 - adds r4, r6, #0 - adds r4, #0x38 - ldrb r2, [r4] - adds r0, r5, #0 - bl SetTile - ldrh r1, [r7] - ldrb r2, [r4] - adds r0, r5, #0 - bl SetTile - ldrh r1, [r7] - adds r1, #0x3f - ldrb r2, [r4] - adds r0, r5, #0 - bl SetTile - ldrh r1, [r7] - adds r1, #0x40 - ldrb r2, [r4] - adds r0, r5, #0 - bl SetTile - b _080674F8 - .align 2, 0 -_08067488: .4byte gRoomControls -_0806748C: .4byte gUnk_08110E94 -_08067490: .4byte 0x00004022 -_08067494: - adds r1, r6, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - ldrb r2, [r6, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r6, #0x1b] - ldrb r0, [r6, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r6, #0x19] - adds r2, r6, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r2] - movs r0, #0x1d - bl CheckLocalFlag - cmp r0, #0 - bne _080674F8 - ldr r4, _08067500 @ =0x00004022 - ldr r1, _08067504 @ =0x00000E81 - adds r0, r4, #0 - movs r2, #1 - bl SetTile - ldr r1, _08067508 @ =0x00000E82 - adds r0, r4, #0 - movs r2, #1 - bl SetTile - ldr r1, _0806750C @ =0x00000E83 - adds r0, r4, #0 - movs r2, #1 - bl SetTile - ldr r1, _08067510 @ =0x00000EC3 - adds r0, r4, #0 - movs r2, #1 - bl SetTile -_080674F8: - adds r0, r6, #0 - bl sub_0807DD50 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08067500: .4byte 0x00004022 -_08067504: .4byte 0x00000E81 -_08067508: .4byte 0x00000E82 -_0806750C: .4byte 0x00000E83 -_08067510: .4byte 0x00000EC3 - - thumb_func_start sub_08067514 -sub_08067514: @ 0x08067514 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl sub_0807DD94 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0806752A - adds r0, r4, #0 - bl sub_0806ED78 -_0806752A: - pop {r4, pc} - - thumb_func_start sub_0806752C -sub_0806752C: @ 0x0806752C - push {lr} - bl sub_0806FD3C - pop {pc} - - thumb_func_start sub_08067534 -sub_08067534: @ 0x08067534 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 -_0806753A: - adds r0, r5, #0 - movs r1, #2 - movs r2, #0 - bl CreateFx - adds r1, r0, #0 - cmp r1, #0 - beq _08067560 - ldr r0, _08067578 @ =gUnk_08110E64 - adds r0, r4, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r2, [r1, #0x2e] - adds r0, r0, r2 - strh r0, [r1, #0x2e] - ldrh r0, [r1, #0x32] - adds r0, #0x1c - strh r0, [r1, #0x32] -_08067560: - adds r4, #1 - cmp r4, #1 - ble _0806753A - movs r0, #0xa6 - lsls r0, r0, #1 - bl EnqueueSFX - movs r0, #0x28 - movs r1, #4 - bl sub_08080964 - pop {r4, r5, pc} - .align 2, 0 -_08067578: .4byte gUnk_08110E64 - - thumb_func_start sub_0806757C -sub_0806757C: @ 0x0806757C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xd] - cmp r0, #0 - beq _080675CC - cmp r0, #2 - bls _080675BC - ldr r0, _080675AC @ =0x00000E81 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _080675B0 @ =0x00000E82 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _080675B4 @ =0x00000E83 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _080675B8 @ =0x00000EC3 - movs r1, #1 - bl sub_0807BA8C - b _080675CC - .align 2, 0 -_080675AC: .4byte 0x00000E81 -_080675B0: .4byte 0x00000E82 -_080675B4: .4byte 0x00000E83 -_080675B8: .4byte 0x00000EC3 -_080675BC: - ldr r0, _080675D0 @ =gUnk_08110E68 - ldrb r1, [r2, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl LoadFixedGFX -_080675CC: - pop {pc} - .align 2, 0 -_080675D0: .4byte gUnk_08110E68 - - thumb_func_start sub_080675D4 -sub_080675D4: @ 0x080675D4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - ldr r5, _080676D0 @ =gUnk_08110E78 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r7, r0, #0 - subs r7, #0xc - movs r0, #0x3f - mov r8, r0 - movs r6, #8 -_080675EC: - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFx - adds r3, r0, #0 - cmp r3, #0 - beq _08067646 - movs r0, #0 - ldrsb r0, [r5, r0] - ldrh r1, [r3, #0x2e] - adds r0, r0, r1 - strh r0, [r3, #0x2e] - movs r0, #1 - ldrsb r0, [r5, r0] - ldrh r1, [r3, #0x32] - adds r0, r0, r1 - strh r0, [r3, #0x32] - strh r7, [r3, #0x36] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r3, #0 - adds r0, #0x38 - strb r1, [r0] - ldrb r1, [r4, #0x1b] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r3, #0x1b] - mov r0, r8 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x1b] - ldrb r1, [r4, #0x19] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r3, #0x19] - mov r0, r8 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x19] - adds r0, r4, #0 - adds r1, r3, #0 - bl ResolveEntityOnTop -_08067646: - subs r6, #1 - adds r5, #2 - cmp r6, #0 - bge _080675EC - ldr r5, _080676D4 @ =gUnk_08110E8A - movs r0, #0x3f - mov r8, r0 - movs r6, #3 -_08067656: - adds r0, r4, #0 - movs r1, #4 - movs r2, #0 - bl CreateFx - adds r3, r0, #0 - cmp r3, #0 - beq _080676B0 - movs r0, #0 - ldrsb r0, [r5, r0] - ldrh r1, [r3, #0x2e] - adds r0, r0, r1 - strh r0, [r3, #0x2e] - movs r0, #1 - ldrsb r0, [r5, r0] - ldrh r1, [r3, #0x32] - adds r0, r0, r1 - strh r0, [r3, #0x32] - strh r7, [r3, #0x36] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r3, #0 - adds r0, #0x38 - strb r1, [r0] - ldrb r1, [r4, #0x1b] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r3, #0x1b] - mov r0, r8 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x1b] - ldrb r1, [r4, #0x19] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r3, #0x19] - mov r0, r8 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x19] - adds r0, r4, #0 - adds r1, r3, #0 - bl ResolveEntityOnTop -_080676B0: - subs r6, #1 - adds r5, #2 - cmp r6, #0 - bge _08067656 - ldrb r0, [r4, #0xd] - cmp r0, #2 - bls _080676C8 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_080676C8: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080676D0: .4byte gUnk_08110E78 -_080676D4: .4byte gUnk_08110E8A - - thumb_func_start sub_080676D8 -sub_080676D8: @ 0x080676D8 - ldrb r1, [r0, #0xd] - adds r1, #1 - strb r1, [r0, #0xd] - bx lr - - thumb_func_start sub_080676E0 -sub_080676E0: @ 0x080676E0 - push {lr} - adds r3, r0, #0 - adds r2, r1, #0 - ldrb r0, [r2, #0x18] - cmp r0, #1 - beq _08067706 - cmp r0, #1 - bgt _080676F6 - cmp r0, #0 - beq _080676FC - b _08067734 -_080676F6: - cmp r0, #2 - beq _08067722 - b _08067734 -_080676FC: - movs r0, #1 - strb r0, [r2, #0x18] - movs r0, #0x20 - strb r0, [r2, #0x19] - b _08067742 -_08067706: - ldrb r1, [r2, #0x19] - lsrs r0, r1, #1 - subs r0, #0x10 - strh r0, [r3, #0x36] - subs r1, #1 - strb r1, [r2, #0x19] - lsls r1, r1, #0x18 - cmp r1, #0 - bne _08067742 - movs r0, #2 - strb r0, [r2, #0x18] - movs r0, #0x24 - strb r0, [r2, #0x19] - b _08067742 -_08067722: - ldrb r0, [r2, #0x19] - subs r0, #1 - strb r0, [r2, #0x19] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08067742 - movs r0, #3 - strb r0, [r2, #0x18] - b _08067742 -_08067734: - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r3, #0 - bl sub_08003FC4 - cmp r0, #0 - beq _08067748 -_08067742: - ldr r1, _0806774C @ =gActiveScriptInfo - movs r0, #0 - strb r0, [r1, #6] -_08067748: - pop {pc} - .align 2, 0 -_0806774C: .4byte gActiveScriptInfo - - thumb_func_start CastorWildsStatue_Fusion -CastorWildsStatue_Fusion: @ 0x08067750 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08067788 - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrh r0, [r4, #0x32] - subs r0, #0x18 - strh r0, [r4, #0x32] - adds r0, r4, #0 - movs r1, #1 - bl InitializeAnimation - ldr r1, _08067784 @ =0x0000017B - adds r0, r4, #0 - bl sub_0801D2B4 - b _0806778E - .align 2, 0 -_08067784: .4byte 0x0000017B -_08067788: - adds r0, r4, #0 - bl GetNextFrame -_0806778E: - pop {r4, pc} diff --git a/asm/cucco.s b/asm/cucco.s deleted file mode 100644 index ccd70dd0..00000000 --- a/asm/cucco.s +++ /dev/null @@ -1,327 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Cucco -Cucco: @ 0x0806E4A0 - push {lr} - ldr r2, _0806E4B4 @ =gUnk_081145B4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0806E4B4: .4byte gUnk_081145B4 - - thumb_func_start sub_0806E4B8 -sub_0806E4B8: @ 0x0806E4B8 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - movs r5, #0 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_080787A8 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - strb r5, [r4, #0xd] - adds r0, r4, #0 - bl sub_0806E4EC - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806E4EC -sub_0806E4EC: @ 0x0806E4EC - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xd] - cmp r0, #0 - bne _0806E50E - adds r0, #1 - strb r0, [r5, #0xd] - bl Random - movs r1, #0x1f - ands r0, r1 - adds r0, #0x3c - strb r0, [r5, #0xe] - adds r0, r5, #0 - movs r1, #0 - bl InitAnimationForceUpdate -_0806E50E: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806E552 - bl Random - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0806E52A - movs r0, #3 - b _0806E52C -_0806E52A: - movs r0, #2 -_0806E52C: - strb r0, [r5, #0xc] - movs r0, #0 - strb r0, [r5, #0xd] - bl Random - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0806E552 - ldr r4, _0806E560 @ =gUnk_081145C8 - bl Random - movs r1, #3 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r0, [r1] - bl EnqueueSFX -_0806E552: - adds r0, r5, #0 - bl sub_0806E65C - adds r0, r5, #0 - bl UpdateAnimationSingleFrame - pop {r4, r5, pc} - .align 2, 0 -_0806E560: .4byte gUnk_081145C8 - - thumb_func_start sub_0806E564 -sub_0806E564: @ 0x0806E564 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _0806E5AA - adds r0, #1 - strb r0, [r4, #0xd] - bl Random - movs r2, #1 - ands r0, r2 - cmp r0, #0 - beq _0806E590 - ldrb r0, [r4, #0x18] - lsls r1, r0, #0x19 - lsrs r1, r1, #0x1f - eors r1, r2 - lsls r1, r1, #6 - subs r2, #0x42 - ands r2, r0 - orrs r2, r1 - strb r2, [r4, #0x18] -_0806E590: - bl Random - movs r1, #1 - ands r0, r1 - adds r0, #1 - strb r0, [r4, #0xe] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r4, #0x20] - adds r0, r4, #0 - movs r1, #1 - bl InitAnimationForceUpdate -_0806E5AA: - movs r1, #0xa0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _0806E5D4 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0806E5CE - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - b _0806E5D4 -_0806E5CE: - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r4, #0x20] -_0806E5D4: - adds r0, r4, #0 - bl sub_0806E65C - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806E5E4 -sub_0806E5E4: @ 0x0806E5E4 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _0806E622 - adds r0, #1 - strb r0, [r4, #0xd] - bl Random - movs r5, #1 - ands r0, r5 - cmp r0, #0 - beq _0806E612 - ldrb r0, [r4, #0x18] - lsls r1, r0, #0x19 - lsrs r1, r1, #0x1f - eors r1, r5 - lsls r1, r1, #6 - movs r2, #0x41 - rsbs r2, r2, #0 - ands r2, r0 - orrs r2, r1 - strb r2, [r4, #0x18] -_0806E612: - bl Random - adds r1, r0, #0 - ands r1, r5 - adds r1, #2 - adds r0, r4, #0 - bl InitAnimationForceUpdate -_0806E622: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806E638 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_0806E638: - adds r0, r4, #0 - bl sub_0806E65C - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806E648 -sub_0806E648: @ 0x0806E648 - push {r4, lr} - adds r4, r0, #0 - bl UpdateFuseInteraction - cmp r0, #0 - beq _0806E658 - movs r0, #1 - strb r0, [r4, #0xc] -_0806E658: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806E65C -sub_0806E65C: @ 0x0806E65C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x39 - movs r2, #0 - ldrsb r2, [r0, r2] - cmp r2, #0 - beq _0806E6A6 - ldr r0, _0806E688 @ =gPlayerState - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806E694 - cmp r2, #2 - bne _0806E68C - movs r0, #4 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0806F118 - b _0806E698 - .align 2, 0 -_0806E688: .4byte gPlayerState -_0806E68C: - adds r0, r4, #0 - bl sub_0806E6A8 - b _0806E698 -_0806E694: - bl sub_080791D0 -_0806E698: - movs r0, #0xd5 - bl SoundReq - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - strb r0, [r1] -_0806E6A6: - pop {r4, pc} - - thumb_func_start sub_0806E6A8 -sub_0806E6A8: @ 0x0806E6A8 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #0 - bl sub_08002632 - ldr r1, _0806E6D4 @ =gSave - ldr r2, _0806E6D8 @ =0x000001C1 - adds r1, r1, r2 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0xf3 - bne _0806E6C2 - movs r5, #1 -_0806E6C2: - ldr r0, _0806E6DC @ =gUnk_081145D0 - lsls r1, r5, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r4, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_0806E6D4: .4byte gSave -_0806E6D8: .4byte 0x000001C1 -_0806E6DC: .4byte gUnk_081145D0 - - thumb_func_start Cucco_Fusion -Cucco_Fusion: @ 0x0806E6E0 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _0806E706 - adds r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - adds r0, r2, #0 - movs r1, #1 - bl InitAnimationForceUpdate - b _0806E70C -_0806E706: - adds r0, r2, #0 - bl UpdateAnimationSingleFrame -_0806E70C: - pop {pc} - .align 2, 0 diff --git a/asm/cuccoChick.s b/asm/cuccoChick.s deleted file mode 100644 index dd10f79d..00000000 --- a/asm/cuccoChick.s +++ /dev/null @@ -1,245 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start CuccoChick -CuccoChick: @ 0x0806E710 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0806E72C @ =gUnk_081145D4 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0806ED78 - pop {r4, pc} - .align 2, 0 -_0806E72C: .4byte gUnk_081145D4 - - thumb_func_start sub_0806E730 -sub_0806E730: @ 0x0806E730 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - movs r5, #0 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_080787A8 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - strb r5, [r4, #0xd] - adds r0, r4, #0 - bl sub_0806E764 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806E764 -sub_0806E764: @ 0x0806E764 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - adds r5, r0, #0 - cmp r5, #0 - bne _0806E782 - adds r0, #1 - strb r0, [r4, #0xd] - bl Random - movs r1, #0x1f - ands r0, r1 - adds r0, #0x1e - strb r0, [r4, #0xe] - strb r5, [r4, #0x1e] -_0806E782: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0806E7A8 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - bl Random - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0806E7A8 - movs r0, #0xd6 - bl EnqueueSFX -_0806E7A8: - adds r0, r4, #0 - bl sub_0806E838 - pop {r4, r5, pc} - - thumb_func_start sub_0806E7B0 -sub_0806E7B0: @ 0x0806E7B0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _0806E7F2 - adds r0, #1 - strb r0, [r4, #0xd] - bl Random - movs r5, #1 - ands r0, r5 - cmp r0, #0 - beq _0806E7DE - ldrb r0, [r4, #0x18] - lsls r1, r0, #0x19 - lsrs r1, r1, #0x1f - eors r1, r5 - lsls r1, r1, #6 - movs r2, #0x41 - rsbs r2, r2, #0 - ands r2, r0 - orrs r2, r1 - strb r2, [r4, #0x18] -_0806E7DE: - bl Random - movs r1, #3 - ands r0, r1 - adds r0, #1 - strb r0, [r4, #0xe] - movs r0, #0x80 - lsls r0, r0, #9 - str r0, [r4, #0x20] - strb r5, [r4, #0x1e] -_0806E7F2: - movs r1, #0xc0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _0806E81C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0806E816 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - b _0806E81C -_0806E816: - movs r0, #0x80 - lsls r0, r0, #9 - str r0, [r4, #0x20] -_0806E81C: - adds r0, r4, #0 - bl sub_0806E838 - pop {r4, r5, pc} - - thumb_func_start sub_0806E824 -sub_0806E824: @ 0x0806E824 - push {r4, lr} - adds r4, r0, #0 - bl UpdateFuseInteraction - cmp r0, #0 - beq _0806E834 - movs r0, #1 - strb r0, [r4, #0xc] -_0806E834: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806E838 -sub_0806E838: @ 0x0806E838 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x39 - movs r2, #0 - ldrsb r2, [r0, r2] - cmp r2, #0 - beq _0806E882 - ldr r0, _0806E864 @ =gPlayerState - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806E870 - cmp r2, #2 - bne _0806E868 - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0806F118 - b _0806E874 - .align 2, 0 -_0806E864: .4byte gPlayerState -_0806E868: - adds r0, r4, #0 - bl sub_0806E884 - b _0806E874 -_0806E870: - bl sub_080791D0 -_0806E874: - movs r0, #0xd6 - bl SoundReq - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - strb r0, [r1] -_0806E882: - pop {r4, pc} - - thumb_func_start sub_0806E884 -sub_0806E884: @ 0x0806E884 - push {lr} - adds r1, r0, #0 - ldr r0, _0806E890 @ =0x00000DB6 - bl TextboxNoOverlap - pop {pc} - .align 2, 0 -_0806E890: .4byte 0x00000DB6 - - thumb_func_start CuccoChick_Fusion -CuccoChick_Fusion: @ 0x0806E894 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806E8B6 - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #1 - strb r0, [r4, #0x1e] - b _0806E8CA -_0806E8B6: - movs r1, #0xc0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _0806E8CA - movs r0, #0x80 - lsls r0, r0, #9 - str r0, [r4, #0x20] -_0806E8CA: - pop {r4, pc} - diff --git a/asm/drLeft.s b/asm/drLeft.s deleted file mode 100644 index b575c71b..00000000 --- a/asm/drLeft.s +++ /dev/null @@ -1,166 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start DrLeft -DrLeft: @ 0x0806BF80 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0806BFBE - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806BFA2 - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 -_0806BFA2: - adds r0, r4, #0 - movs r1, #0 - bl ExecuteScriptForEntity - adds r0, r4, #0 - bl HandleEntity0x82Actions - adds r0, r4, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_0806BFD8 - b _0806BFD4 -_0806BFBE: - ldrb r0, [r4, #0xc] - adds r1, r0, #0 - cmp r1, #0 - bne _0806BFD4 - adds r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0x1e] - adds r0, r4, #0 - adds r1, r4, #0 - bl sub_0806FAD8 -_0806BFD4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806BFD8 -sub_0806BFD8: @ 0x0806BFD8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x5b - ldrb r0, [r0] - movs r5, #3 - adds r1, r5, #0 - ands r1, r0 - cmp r1, #1 - beq _0806BFF0 - cmp r1, #2 - beq _0806C002 - b _0806C00A -_0806BFF0: - bl Random - adds r1, r0, #0 - ands r1, r5 - adds r1, #0xc - adds r0, r4, #0 - bl InitializeAnimation - b _0806C00A -_0806C002: - adds r0, r4, #0 - movs r1, #0 - bl InitializeAnimation -_0806C00A: - pop {r4, r5, pc} - - thumb_func_start sub_0806C00C -sub_0806C00C: @ 0x0806C00C - push {lr} - adds r2, r1, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _0806C022 - movs r0, #1 -_0806C022: - str r0, [r2, #0x14] - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806C028 -sub_0806C028: @ 0x0806C028 - push {lr} - ldrb r2, [r0, #0x14] - lsrs r2, r2, #1 - ldr r1, [r1, #4] - adds r1, r1, r2 - bl InitializeAnimation - pop {pc} - - thumb_func_start sub_0806C038 -sub_0806C038: @ 0x0806C038 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0806C074 @ =gSave - ldrb r0, [r0, #8] - subs r4, r0, #5 - cmp r4, #0 - beq _0806C048 - movs r4, #0 -_0806C048: - movs r0, #0x46 - bl GetInventoryValue - cmp r0, #0 - bne _0806C086 - movs r0, #0x3a - bl GetInventoryValue - cmp r0, #0 - bne _0806C078 - movs r4, #6 - movs r0, #0xaf - bl CheckLocalFlag - cmp r0, #0 - bne _0806C086 - movs r4, #5 - movs r0, #0xaf - bl SetLocalFlag - b _0806C086 - .align 2, 0 -_0806C074: .4byte gSave -_0806C078: - movs r4, #7 - movs r0, #0x3a - bl GetInventoryValue - cmp r0, #1 - bls _0806C086 - movs r4, #0 -_0806C086: - ldr r0, _0806C098 @ =gUnk_081133A4 - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_0806C098: .4byte gUnk_081133A4 - - thumb_func_start sub_0806C09C -sub_0806C09C: @ 0x0806C09C - push {lr} - ldr r3, _0806C0AC @ =gUnk_081133B4 - movs r1, #1 - movs r2, #0 - bl sub_08078850 - pop {pc} - .align 2, 0 -_0806C0AC: .4byte gUnk_081133B4 diff --git a/asm/evilSpirit/sub_080862B8.inc b/asm/evilSpirit/sub_080862B8.inc deleted file mode 100644 index 329a5bec..00000000 --- a/asm/evilSpirit/sub_080862B8.inc +++ /dev/null @@ -1,100 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x63 - bl CheckLocalFlag - cmp r0, #0 - beq _080862CA - bl DeleteThisEntity -_080862CA: - movs r3, #1 - strb r3, [r4, #0xc] - ldr r1, _08086350 @ =gUnk_08120678 - ldrb r0, [r4, #0xa] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x7c - strh r0, [r1] - adds r2, r4, #0 - adds r2, #0x76 - strh r0, [r2] - ldrh r0, [r1] - subs r1, #2 - strh r0, [r1] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08086354 - adds r1, #6 - ldr r0, [r4, #0x2c] - str r0, [r1] - adds r1, #4 - ldr r0, [r4, #0x30] - str r0, [r1] - ldrb r1, [r4, #0x19] - movs r0, #0x3f - ands r0, r1 - strb r0, [r4, #0x19] - str r4, [r4, #0x50] - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x3f - strb r3, [r0] - subs r1, #1 - movs r0, #4 - strb r0, [r1] - movs r2, #0 -_08086324: - adds r5, r2, #1 - adds r0, r4, #0 - movs r1, #0x18 - adds r2, r5, #0 - movs r3, #0 - bl CreateObjectWithParent - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _08086346 - ldr r0, [r4, #0x50] - str r0, [r1, #0x50] - ldr r0, [r4, #0x54] - str r4, [r0, #0x54] - ldr r0, [r4, #0x54] - str r0, [r4, #0x50] -_08086346: - adds r2, r5, #0 - cmp r2, #3 - bls _08086324 - b _08086360 - .align 2, 0 -_08086350: .4byte gUnk_08120678 -_08086354: - ldrb r0, [r4, #0x19] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x40 - orrs r1, r0 - strb r1, [r4, #0x19] -_08086360: - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl InitializeAnimation - adds r0, r4, #0 - bl sub_08086370 - pop {r4, r5, pc} - .syntax divided diff --git a/asm/farmers.s b/asm/farmers.s deleted file mode 100644 index 485c065c..00000000 --- a/asm/farmers.s +++ /dev/null @@ -1,205 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Farmers -Farmers: @ 0x0806BBE4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806BC40 - ldrb r0, [r4, #0xa] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _0806BC28 @ =gUnk_08113140 - adds r1, r1, r0 - adds r0, r4, #0 - bl LoadExtraSpriteData - cmp r0, #0 - beq _0806BC54 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0xe] - movs r0, #1 - ands 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] - lsls r0, r0, #0x19 - cmp r0, #0 - blt _0806BC2C - movs r0, #6 - b _0806BC2E - .align 2, 0 -_0806BC28: .4byte gUnk_08113140 -_0806BC2C: - movs r0, #2 -_0806BC2E: - strb r0, [r4, #0x14] - ldrb r0, [r4, #0x14] - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_0806BC58 - adds r0, r4, #0 - bl sub_0807DD64 -_0806BC40: - adds r0, r4, #0 - movs r1, #0 - bl ExecuteScriptForEntity - adds r0, r4, #0 - bl HandleEntity0x82Actions - adds r0, r4, #0 - bl GetNextFrame -_0806BC54: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806BC58 -sub_0806BC58: @ 0x0806BC58 - push {lr} - movs r1, #2 - bl sub_0805E3A0 - pop {pc} - .align 2, 0 - - thumb_func_start Farmers_Head -Farmers_Head: @ 0x0806BC64 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r2, #0x7f - ands r2, r0 - adds r0, r4, #0 - movs r1, #0 - bl SetExtraSpriteFrame - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl SetExtraSpriteFrame - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl SetSpriteSubEntryOffsetData1 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, pc} - - thumb_func_start sub_0806BC94 -sub_0806BC94: @ 0x0806BC94 - push {lr} - ldrb r3, [r0, #0x18] - lsls r3, r3, #0x19 - lsrs r3, r3, #0x1f - rsbs r2, r3, #0 - orrs r2, r3 - asrs r2, r2, #0x1f - movs r3, #8 - ands r2, r3 - ldr r1, [r1, #4] - adds r1, r1, r2 - ldrb r2, [r0, #0x14] - lsrs r2, r2, #1 - adds r1, r1, r2 - bl InitializeAnimation - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806BCB8 -sub_0806BCB8: @ 0x0806BCB8 - ldrb r1, [r0, #0xe] - strb r1, [r0, #0x14] - bx lr - .align 2, 0 - - thumb_func_start sub_0806BCC0 -sub_0806BCC0: @ 0x0806BCC0 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xa] - cmp r0, #0 - bne _0806BCD0 - adds r0, r1, #0 - bl sub_0806F188 -_0806BCD0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806BCD4 -sub_0806BCD4: @ 0x0806BCD4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806BCE8 -sub_0806BCE8: @ 0x0806BCE8 - push {lr} - ldrb r1, [r0, #0xa] - lsls r1, r1, #3 - ldr r2, _0806BCF8 @ =gUnk_08113158 - adds r1, r1, r2 - bl ShowNPCDialogue - pop {pc} - .align 2, 0 -_0806BCF8: .4byte gUnk_08113158 - - thumb_func_start Farmers_Fusion -Farmers_Fusion: @ 0x0806BCFC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806BD4C - ldrb r0, [r4, #0xa] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _0806BD48 @ =gUnk_08113140 - adds r1, r1, r0 - adds r0, r4, #0 - bl LoadExtraSpriteData - cmp r0, #0 - beq _0806BD52 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - movs r1, #0x41 - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0806BC58 - adds r0, r4, #0 - movs r1, #3 - bl InitAnimationForceUpdate - b _0806BD52 - .align 2, 0 -_0806BD48: .4byte gUnk_08113140 -_0806BD4C: - adds r0, r4, #0 - bl UpdateAnimationSingleFrame -_0806BD52: - pop {r4, pc} diff --git a/asm/ghostBrothers.s b/asm/ghostBrothers.s deleted file mode 100644 index d930929d..00000000 --- a/asm/ghostBrothers.s +++ /dev/null @@ -1,553 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start GhostBrothers -GhostBrothers: @ 0x08065BA4 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08065BBA - adds r0, r4, #0 - bl sub_08065C0C - b _08065BEA -_08065BBA: - ldr r1, _08065BEC @ =gUnk_08110164 - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r4, #0xa] - cmp r0, #2 - bhi _08065BEA - ldr r2, _08065BF0 @ =gUnk_0811015C - ldrb r0, [r4, #0xf] - adds r1, r0, #1 - strb r1, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1b - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - strh r0, [r4, #0x36] -_08065BEA: - pop {r4, pc} - .align 2, 0 -_08065BEC: .4byte gUnk_08110164 -_08065BF0: .4byte gUnk_0811015C - - thumb_func_start sub_08065BF4 -sub_08065BF4: @ 0x08065BF4 - push {lr} - ldr r2, _08065C08 @ =gUnk_0811017C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08065C08: .4byte gUnk_0811017C - - thumb_func_start sub_08065C0C -sub_08065C0C: @ 0x08065C0C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _08065C42 - cmp r0, #1 - bgt _08065C20 - cmp r0, #0 - beq _08065C2A - b _08065CCA -_08065C20: - cmp r0, #2 - beq _08065C7E - cmp r0, #3 - beq _08065C8A - b _08065CCA -_08065C2A: - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0807DD50 - b _08065CCA -_08065C42: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _08065C74 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - ldr r1, _08065C70 @ =gPlayerEntity - adds r0, r4, #0 - bl GetFacingDirection - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl InitAnimationForceUpdate - adds r0, r4, #0 - bl sub_0806F118 - b _08065CCA - .align 2, 0 -_08065C70: .4byte gPlayerEntity -_08065C74: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _08065CCA -_08065C7E: - adds r0, r4, #0 - bl UpdateFuseInteraction - cmp r0, #0 - beq _08065CCA - b _08065CC6 -_08065C8A: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08065CCA - ldr r1, [r4, #0x6c] - ldrh r2, [r1] - ldr r0, _08065CB4 @ =0x0000FFFF - cmp r2, r0 - beq _08065CBC - ldr r0, _08065CB8 @ =gScreen - adds r0, #0x68 - strh r2, [r0] - adds r1, #2 - ldrh r0, [r1] - strb r0, [r4, #0xe] - adds r1, #2 - str r1, [r4, #0x6c] - b _08065CCA - .align 2, 0 -_08065CB4: .4byte 0x0000FFFF -_08065CB8: .4byte gScreen -_08065CBC: - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #0x18] -_08065CC6: - movs r0, #1 - strb r0, [r4, #0xc] -_08065CCA: - pop {r4, pc} - - thumb_func_start sub_08065CCC -sub_08065CCC: @ 0x08065CCC - movs r1, #3 - strb r1, [r0, #0xc] - movs r1, #0x1e - strb r1, [r0, #0xe] - ldrb r2, [r0, #0x19] - subs r1, #0x2b - ands r1, r2 - movs r2, #4 - orrs r1, r2 - strb r1, [r0, #0x19] - ldr r1, _08065CF8 @ =gUnk_0811022E - str r1, [r0, #0x6c] - ldr r1, _08065CFC @ =gScreen - adds r2, r1, #0 - adds r2, #0x66 - movs r0, #0xfd - lsls r0, r0, #6 - strh r0, [r2] - adds r1, #0x68 - movs r0, #0x10 - strh r0, [r1] - bx lr - .align 2, 0 -_08065CF8: .4byte gUnk_0811022E -_08065CFC: .4byte gScreen - - thumb_func_start sub_08065D00 -sub_08065D00: @ 0x08065D00 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_08065D18 -sub_08065D18: @ 0x08065D18 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - ldrb r1, [r4, #0x18] - subs r0, #0x22 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x19] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r4, #0x19] - ldr r0, _08065D6C @ =gUnk_08110188 - str r0, [r4, #0x6c] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #2 - bl InitAnimationForceUpdate - ldr r1, _08065D70 @ =gScreen - adds r2, r1, #0 - adds r2, #0x66 - movs r0, #0xfd - lsls r0, r0, #6 - strh r0, [r2] - adds r1, #0x68 - movs r0, #0x80 - lsls r0, r0, #5 - strh r0, [r1] - pop {r4, pc} - .align 2, 0 -_08065D6C: .4byte gUnk_08110188 -_08065D70: .4byte gScreen - - thumb_func_start sub_08065D74 -sub_08065D74: @ 0x08065D74 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08065DB4 - ldr r2, [r1, #0x6c] - ldrh r3, [r2] - ldr r0, _08065DA0 @ =0x0000FFFF - cmp r3, r0 - beq _08065DA8 - ldr r0, _08065DA4 @ =gScreen - adds r0, #0x68 - strh r3, [r0] - ldrh r0, [r2, #2] - strb r0, [r1, #0xe] - adds r0, r2, #4 - str r0, [r1, #0x6c] - b _08065DB4 - .align 2, 0 -_08065DA0: .4byte 0x0000FFFF -_08065DA4: .4byte gScreen -_08065DA8: - ldrb r0, [r1, #0xc] - adds r0, #1 - strb r0, [r1, #0xc] - movs r0, #0 - bl TextboxNoOverlapFollow -_08065DB4: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08065DB8 -sub_08065DB8: @ 0x08065DB8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #4 - bhi _08065E74 - lsls r0, r0, #2 - ldr r1, _08065DCC @ =_08065DD0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08065DCC: .4byte _08065DD0 -_08065DD0: @ jump table - .4byte _08065DE4 @ case 0 - .4byte _08065E08 @ case 1 - .4byte _08065EB0 @ case 2 - .4byte _08065E34 @ case 3 - .4byte _08065E4E @ case 4 -_08065DE4: - ldr r0, _08065E04 @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _08065EB0 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #4 - bl InitAnimationForceUpdate - b _08065EB0 - .align 2, 0 -_08065E04: .4byte gTextBox -_08065E08: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08065EB0 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #0xb4 - strb r0, [r4, #0xe] - ldr r1, _08065E30 @ =gUnk_02018EB0 - ldrb r0, [r1, #1] - adds r0, #1 - strb r0, [r1, #1] - adds r0, r4, #0 - movs r1, #2 - bl InitAnimationForceUpdate - b _08065EB0 - .align 2, 0 -_08065E30: .4byte gUnk_02018EB0 -_08065E34: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08065EB0 - movs r0, #0 - bl TextboxNoOverlapFollow - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - b _08065EB0 -_08065E4E: - ldr r0, _08065E6C @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _08065EB0 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x1e - strb r0, [r4, #0xe] - ldr r0, _08065E70 @ =gUnk_0811022E - str r0, [r4, #0x6c] - b _08065EB0 - .align 2, 0 -_08065E6C: .4byte gTextBox -_08065E70: .4byte gUnk_0811022E -_08065E74: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08065EB0 - ldr r1, [r4, #0x6c] - ldrh r2, [r1] - ldr r0, _08065E9C @ =0x0000FFFF - cmp r2, r0 - beq _08065EA4 - ldr r0, _08065EA0 @ =gScreen - adds r0, #0x68 - strh r2, [r0] - ldrh r0, [r1, #2] - strb r0, [r4, #0xe] - adds r0, r1, #4 - str r0, [r4, #0x6c] - b _08065EB0 - .align 2, 0 -_08065E9C: .4byte 0x0000FFFF -_08065EA0: .4byte gScreen -_08065EA4: - ldr r1, _08065EB8 @ =gUnk_02018EB0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - bl DeleteThisEntity -_08065EB0: - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - pop {r4, pc} - .align 2, 0 -_08065EB8: .4byte gUnk_02018EB0 - - thumb_func_start sub_08065EBC -sub_08065EBC: @ 0x08065EBC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08065ED8 @ =gUnk_08110274 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0806ED78 - pop {r4, pc} - .align 2, 0 -_08065ED8: .4byte gUnk_08110274 - - thumb_func_start sub_08065EDC -sub_08065EDC: @ 0x08065EDC - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08065F1C - ldr r1, [r2, #0x6c] - ldrh r3, [r1] - ldr r0, _08065F08 @ =0x0000FFFF - cmp r3, r0 - beq _08065F10 - ldr r0, _08065F0C @ =gScreen - adds r0, #0x68 - strh r3, [r0] - adds r1, #2 - ldrh r0, [r1] - strb r0, [r2, #0xe] - adds r1, #2 - str r1, [r2, #0x6c] - b _08065F1C - .align 2, 0 -_08065F08: .4byte 0x0000FFFF -_08065F0C: .4byte gScreen -_08065F10: - ldrb r0, [r2, #0xc] - adds r0, #1 - strb r0, [r2, #0xc] - adds r0, r2, #0 - bl sub_08078778 -_08065F1C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08065F20 -sub_08065F20: @ 0x08065F20 - push {r4, lr} - adds r4, r0, #0 - bl UpdateAnimationSingleFrame - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08065F5E - movs r0, #0 - strb r0, [r1] - bl TextboxNoOverlapFollow - adds r2, r4, #0 - adds r2, #0x58 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - ldr r1, _08065F60 @ =gUnk_0811033C - ldrb r0, [r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, #0 - bne _08065F56 - strb r0, [r2] -_08065F56: - ldrb r1, [r2] - adds r0, r4, #0 - bl InitAnimationForceUpdate -_08065F5E: - pop {r4, pc} - .align 2, 0 -_08065F60: .4byte gUnk_0811033C - - thumb_func_start sub_08065F64 -sub_08065F64: @ 0x08065F64 - push {lr} - adds r3, r0, #0 - ldr r0, _08065F88 @ =gSave - ldrb r0, [r0, #8] - subs r0, #2 - cmp r0, #0 - bge _08065F74 - movs r0, #0 -_08065F74: - ldrb r1, [r3, #0xa] - lsls r1, r1, #6 - lsls r0, r0, #3 - ldr r2, _08065F8C @ =gUnk_08110280 - adds r0, r0, r2 - adds r1, r1, r0 - adds r0, r3, #0 - bl ShowNPCDialogue - pop {pc} - .align 2, 0 -_08065F88: .4byte gSave -_08065F8C: .4byte gUnk_08110280 - - thumb_func_start GhostBrothers_Fusion -GhostBrothers_Fusion: @ 0x08065F90 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _08065FB6 - adds r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - adds r0, r2, #0 - movs r1, #2 - bl InitAnimationForceUpdate - b _08065FBC -_08065FB6: - adds r0, r2, #0 - bl UpdateAnimationSingleFrame -_08065FBC: - pop {pc} - .align 2, 0 diff --git a/asm/gorman.s b/asm/gorman.s deleted file mode 100644 index 9760e2f9..00000000 --- a/asm/gorman.s +++ /dev/null @@ -1,479 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Gorman -Gorman: @ 0x08069784 - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0806979A - adds r0, r2, #0 - bl sub_08069838 - b _080697A0 -_0806979A: - adds r0, r2, #0 - bl sub_080697A4 -_080697A0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080697A4 -sub_080697A4: @ 0x080697A4 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080697C0 @ =gUnk_08111C48 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0806ED78 - pop {r4, pc} - .align 2, 0 -_080697C0: .4byte gUnk_08111C48 - - thumb_func_start sub_080697C4 -sub_080697C4: @ 0x080697C4 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080697E8 @ =gUnk_08111C3C - bl LoadExtraSpriteData - cmp r0, #0 - beq _080697E4 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl InitializeAnimation - adds r0, r4, #0 - bl sub_08078778 -_080697E4: - pop {r4, pc} - .align 2, 0 -_080697E8: .4byte gUnk_08111C3C - - thumb_func_start sub_080697EC -sub_080697EC: @ 0x080697EC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x20 - movs r2, #0x20 - bl sub_0806ED9C - adds r1, r0, #0 - cmp r1, #0 - blt _0806981E - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _0806981A - movs r0, #0x10 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, r1 - beq _0806981E - adds r0, r4, #0 - bl InitializeAnimation - b _0806981E -_0806981A: - subs r0, #1 - strb r0, [r4, #0xf] -_0806981E: - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08069834 - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08069888 -_08069834: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08069838 -sub_08069838: @ 0x08069838 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xc] - cmp r5, #0 - bne _08069862 - ldr r1, _08069884 @ =gUnk_08111C3C - bl LoadExtraSpriteData - cmp r0, #0 - beq _08069880 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x68 - strb r5, [r0] - adds r0, #1 - strb r5, [r0] - adds r0, r4, #0 - bl sub_0807DD64 -_08069862: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08069880 - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08069888 -_08069880: - pop {r4, r5, pc} - .align 2, 0 -_08069884: .4byte gUnk_08111C3C - - thumb_func_start sub_08069888 -sub_08069888: @ 0x08069888 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x47 - bl CheckGlobalFlag - cmp r0, #0 - bne _080698A0 - movs r4, #0 - movs r0, #0x47 - bl SetGlobalFlag - b _08069906 -_080698A0: - movs r0, #0x2b - bl CheckGlobalFlag - cmp r0, #0 - bne _080698C2 - movs r0, #0x2c - bl CheckGlobalFlag - cmp r0, #0 - bne _080698C2 - movs r0, #0x2d - bl CheckGlobalFlag - cmp r0, #0 - bne _080698C2 - movs r4, #1 - b _08069906 -_080698C2: - movs r0, #0x18 - bl CheckGlobalFlag - cmp r0, #0 - bne _080698D0 - movs r4, #2 - b _08069906 -_080698D0: - movs r0, #0x48 - bl CheckGlobalFlag - cmp r0, #0 - bne _080698E4 - movs r4, #3 - movs r0, #0x48 - bl SetGlobalFlag - b _08069906 -_080698E4: - movs r0, #0x2e - bl CheckGlobalFlag - cmp r0, #0 - bne _08069904 - movs r0, #0x2f - bl CheckGlobalFlag - cmp r0, #0 - bne _08069904 - movs r0, #0x30 - bl CheckGlobalFlag - movs r4, #4 - cmp r0, #0 - beq _08069906 -_08069904: - movs r4, #5 -_08069906: - ldr r0, _08069918 @ =gUnk_08111C50 - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_08069918: .4byte gUnk_08111C50 - - thumb_func_start sub_0806991C -sub_0806991C: @ 0x0806991C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl Random - movs r1, #0x1f - ands r0, r1 - adds r0, #0x3c - adds r1, r5, #0 - adds r1, #0x68 - movs r3, #0 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x69 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r1, r1, #2 - ldr r0, _0806999C @ =gUnk_08111C5C - adds r1, r1, r0 - ldr r2, _080699A0 @ =gRoomControls - ldrh r0, [r1] - ldrh r6, [r2, #6] - adds r0, r0, r6 - strh r0, [r4, #0x1e] - ldrh r0, [r1, #2] - ldrh r2, [r2, #8] - adds r0, r0, r2 - strh r0, [r4, #0x22] - movs r0, #8 - strb r0, [r4, #0x19] - ldr r0, [r4, #8] - movs r1, #2 - orrs r0, r1 - str r0, [r4, #8] - str r3, [r4, #0x14] - movs r1, #0x1e - ldrsh r0, [r4, r1] - movs r2, #0x2e - ldrsh r1, [r5, r2] - subs r0, r0, r1 - movs r3, #0x22 - ldrsh r1, [r4, r3] - movs r6, #0x32 - ldrsh r2, [r5, r6] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r5, #0x15] - ldrb r2, [r5, #0x14] - movs r1, #0x80 - ands r1, r2 - ldr r2, _080699A4 @ =gUnk_08111C74 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1c - adds r0, r0, r2 - ldrb r0, [r0] - orrs r1, r0 - strb r1, [r5, #0x14] - ldr r2, _080699A8 @ =gActiveScriptInfo - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, r5, r6, pc} - .align 2, 0 -_0806999C: .4byte gUnk_08111C5C -_080699A0: .4byte gRoomControls -_080699A4: .4byte gUnk_08111C74 -_080699A8: .4byte gActiveScriptInfo - - thumb_func_start sub_080699AC -sub_080699AC: @ 0x080699AC - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl Random - movs r1, #0x1f - ands r0, r1 - adds r0, #0x3c - adds r1, r5, #0 - adds r1, #0x68 - movs r3, #0 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x69 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r1, r1, #2 - ldr r0, _08069A2C @ =gUnk_08111C84 - adds r1, r1, r0 - ldr r2, _08069A30 @ =gRoomControls - ldrh r0, [r1] - ldrh r6, [r2, #6] - adds r0, r0, r6 - strh r0, [r4, #0x1e] - ldrh r0, [r1, #2] - ldrh r2, [r2, #8] - adds r0, r0, r2 - strh r0, [r4, #0x22] - movs r0, #8 - strb r0, [r4, #0x19] - ldr r0, [r4, #8] - movs r1, #2 - orrs r0, r1 - str r0, [r4, #8] - str r3, [r4, #0x14] - movs r1, #0x1e - ldrsh r0, [r4, r1] - movs r2, #0x2e - ldrsh r1, [r5, r2] - subs r0, r0, r1 - movs r3, #0x22 - ldrsh r1, [r4, r3] - movs r6, #0x32 - ldrsh r2, [r5, r6] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r5, #0x15] - ldrb r2, [r5, #0x14] - movs r1, #0x80 - ands r1, r2 - ldr r2, _08069A34 @ =gUnk_08111C8C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1c - adds r0, r0, r2 - ldrb r0, [r0] - orrs r1, r0 - strb r1, [r5, #0x14] - ldr r2, _08069A38 @ =gActiveScriptInfo - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, r5, r6, pc} - .align 2, 0 -_08069A2C: .4byte gUnk_08111C84 -_08069A30: .4byte gRoomControls -_08069A34: .4byte gUnk_08111C8C -_08069A38: .4byte gActiveScriptInfo - - thumb_func_start sub_08069A3C -sub_08069A3C: @ 0x08069A3C - push {r4, lr} - adds r4, r0, #0 - bl Random - ldr r2, _08069A5C @ =gUnk_08111C9C - movs r1, #1 - ands r1, r0 - adds r4, #0x69 - movs r0, #0 - ldrsb r0, [r4, r0] - lsls r0, r0, #1 - adds r1, r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_08069A5C: .4byte gUnk_08111C9C - - thumb_func_start sub_08069A60 -sub_08069A60: @ 0x08069A60 - push {r4, lr} - adds r4, r0, #0 - bl Random - ldr r2, _08069A80 @ =gUnk_08111CA8 - movs r1, #1 - ands r1, r0 - adds r4, #0x69 - movs r0, #0 - ldrsb r0, [r4, r0] - lsls r0, r0, #1 - adds r1, r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_08069A80: .4byte gUnk_08111CA8 - - thumb_func_start sub_08069A84 -sub_08069A84: @ 0x08069A84 - push {r4, lr} - adds r4, r0, #0 - bl Random - ldr r2, _08069AA4 @ =gUnk_08111CB4 - movs r1, #1 - ands r1, r0 - adds r4, #0x69 - movs r0, #0 - ldrsb r0, [r4, r0] - lsls r0, r0, #1 - adds r1, r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_08069AA4: .4byte gUnk_08111CB4 - - thumb_func_start sub_08069AA8 -sub_08069AA8: @ 0x08069AA8 - push {r4, lr} - adds r4, r0, #0 - bl Random - ldr r2, _08069AC8 @ =gUnk_08111CB8 - movs r1, #1 - ands r1, r0 - adds r4, #0x69 - movs r0, #0 - ldrsb r0, [r4, r0] - lsls r0, r0, #1 - adds r1, r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_08069AC8: .4byte gUnk_08111CB8 - - thumb_func_start sub_08069ACC -sub_08069ACC: @ 0x08069ACC - push {lr} - adds r2, r1, #0 - adds r0, #0x68 - ldrb r1, [r0] - subs r1, #1 - strb r1, [r0] - lsls r1, r1, #0x18 - cmp r1, #0 - bgt _08069AE2 - movs r0, #1 - b _08069AE4 -_08069AE2: - movs r0, #0 -_08069AE4: - str r0, [r2, #0x14] - pop {pc} - - thumb_func_start Gorman_Head -Gorman_Head: @ 0x08069AE8 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r2, #7 - ands r2, r0 - adds r2, #0xf - adds r0, r4, #0 - movs r1, #0 - bl SetExtraSpriteFrame - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl SetExtraSpriteFrame - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl SetSpriteSubEntryOffsetData1 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, pc} - .align 2, 0 diff --git a/asm/gregal.s b/asm/gregal.s deleted file mode 100644 index 65a0271b..00000000 --- a/asm/gregal.s +++ /dev/null @@ -1,386 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Gregal -Gregal: @ 0x0806CADC - push {lr} - ldr r2, _0806CAF0 @ =gUnk_08113D8C - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0806CAF0: .4byte gUnk_08113D8C - - thumb_func_start sub_0806CAF4 -sub_0806CAF4: @ 0x0806CAF4 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _0806CB66 - adds r0, #1 - strb r0, [r5, #0xc] - adds r0, r5, #0 - movs r1, #2 - bl sub_0805E3A0 - movs r0, #0x4a - movs r1, #1 - movs r2, #0 - bl CreateNPC - adds r4, r0, #0 - cmp r4, #0 - beq _0806CB2C - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAD8 -_0806CB2C: - movs r0, #0x4a - movs r1, #2 - movs r2, #0 - bl CreateNPC - adds r4, r0, #0 - cmp r4, #0 - beq _0806CB4E - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - adds r0, r5, #0 - adds r1, r4, #0 - bl ResolveEntityOnTop -_0806CB4E: - adds r0, r5, #0 - bl sub_0807DD64 - adds r0, r5, #0 - bl sub_08078778 - ldr r3, _0806CB7C @ =gUnk_08113D84 - ldrb r2, [r3, #4] - adds r0, r5, #0 - movs r1, #1 - bl sub_08078850 -_0806CB66: - adds r0, r5, #0 - movs r1, #0 - bl ExecuteScriptForEntity - adds r0, r5, #0 - bl HandleEntity0x82Actions - adds r0, r5, #0 - bl GetNextFrame - pop {r4, r5, pc} - .align 2, 0 -_0806CB7C: .4byte gUnk_08113D84 - - thumb_func_start sub_0806CB80 -sub_0806CB80: @ 0x0806CB80 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r1, r0, #0 - cmp r1, #0 - bne _0806CB9E - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #2 - strb r0, [r4, #0x14] - strb r1, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 -_0806CB9E: - ldr r0, [r4, #0x50] - cmp r0, #0 - beq _0806CBB0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - adds r0, #0x21 - strb r0, [r4, #0x1e] -_0806CBB0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806CBB4 -sub_0806CBB4: @ 0x0806CBB4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806CBD6 - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #2 - strb r0, [r4, #0x14] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #0x11 - bl InitializeAnimation -_0806CBD6: - adds r0, r4, #0 - bl GetNextFrame - ldr r1, [r4, #0x50] - cmp r1, #0 - beq _0806CC06 - ldrb r0, [r4, #0x18] - movs r3, #4 - rsbs r3, r3, #0 - adds r2, r3, #0 - ands r2, r0 - strb r2, [r4, #0x18] - adds r0, r1, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0806CC06 - adds r0, r2, #0 - ands r0, r3 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] -_0806CC06: - pop {r4, pc} - - thumb_func_start sub_0806CC08 -sub_0806CC08: @ 0x0806CC08 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _0806CC40 - cmp r0, #1 - bgt _0806CC1C - cmp r0, #0 - beq _0806CC22 - b _0806CCB0 -_0806CC1C: - cmp r0, #2 - beq _0806CC96 - b _0806CCB0 -_0806CC22: - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD64 -_0806CC40: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806CC80 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x69 - strb r0, [r1] - ldr r1, _0806CC7C @ =gPlayerEntity - adds r0, r4, #0 - bl GetFacingDirection - bl sub_0806F5A4 - adds r1, r0, #0 - adds r1, #8 - adds r0, r4, #0 - bl InitAnimationForceUpdate - adds r0, r4, #0 - bl sub_0806F118 - b _0806CCB0 - .align 2, 0 -_0806CC7C: .4byte gPlayerEntity -_0806CC80: - adds r0, r4, #0 - movs r1, #0 - bl ExecuteScriptForEntity - adds r0, r4, #0 - bl HandleEntity0x82Actions - adds r0, r4, #0 - bl GetNextFrame - b _0806CCB0 -_0806CC96: - adds r0, r4, #0 - bl UpdateFuseInteraction - cmp r0, #0 - beq _0806CCB0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - ldrb r1, [r0] - adds r0, r4, #0 - bl InitAnimationForceUpdate -_0806CCB0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806CCB4 -sub_0806CCB4: @ 0x0806CCB4 - push {lr} - adds r2, r1, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _0806CCCA - movs r0, #1 -_0806CCCA: - str r0, [r2, #0x14] - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806CCD0 -sub_0806CCD0: @ 0x0806CCD0 - push {r4, lr} - adds r3, r0, #0 - adds r4, r1, #0 - adds r0, #0x5b - ldrb r0, [r0] - movs r2, #0x3f - ands r2, r0 - cmp r2, #0 - beq _0806CCF4 - ldrb r1, [r3, #0x14] - lsrs r1, r1, #1 - adds r1, r2, r1 - adds r0, r3, #0 - bl InitializeAnimation - movs r0, #1 - str r0, [r4, #0x14] - b _0806CCF6 -_0806CCF4: - str r2, [r4, #0x14] -_0806CCF6: - pop {r4, pc} - - thumb_func_start sub_0806CCF8 -sub_0806CCF8: @ 0x0806CCF8 - push {lr} - movs r1, #0x85 - lsls r1, r1, #1 - bl sub_0801D2B4 - pop {pc} - - thumb_func_start sub_0806CD04 -sub_0806CD04: @ 0x0806CD04 - push {lr} - ldr r1, _0806CD10 @ =0x0000010B - bl sub_0801D2B4 - pop {pc} - .align 2, 0 -_0806CD10: .4byte 0x0000010B - - thumb_func_start sub_0806CD14 -sub_0806CD14: @ 0x0806CD14 - push {lr} - movs r1, #0x86 - lsls r1, r1, #1 - bl sub_0801D2B4 - pop {pc} - - thumb_func_start sub_0806CD20 -sub_0806CD20: @ 0x0806CD20 - push {lr} - ldr r1, _0806CD2C @ =0x0000010D - bl sub_0801D2B4 - pop {pc} - .align 2, 0 -_0806CD2C: .4byte 0x0000010D - - thumb_func_start sub_0806CD30 -sub_0806CD30: @ 0x0806CD30 - push {lr} - movs r1, #0x87 - lsls r1, r1, #1 - bl sub_0801D2B4 - pop {pc} - - thumb_func_start sub_0806CD3C -sub_0806CD3C: @ 0x0806CD3C - push {lr} - ldr r1, _0806CD48 @ =0x0000010F - bl sub_0801D2B4 - pop {pc} - .align 2, 0 -_0806CD48: .4byte 0x0000010F - - thumb_func_start sub_0806CD4C -sub_0806CD4C: @ 0x0806CD4C - push {lr} - movs r1, #0x88 - lsls r1, r1, #1 - bl sub_0801D2B4 - pop {pc} - - thumb_func_start sub_0806CD58 -sub_0806CD58: @ 0x0806CD58 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start Gregal_Fusion -Gregal_Fusion: @ 0x0806CD70 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806CD9E - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #6 - bl InitAnimationForceUpdate - b _0806CDA4 -_0806CD9E: - adds r0, r4, #0 - bl UpdateAnimationSingleFrame -_0806CDA4: - pop {r4, pc} - .align 2, 0 diff --git a/asm/guardWithSpear.s b/asm/guardWithSpear.s deleted file mode 100644 index 4d328260..00000000 --- a/asm/guardWithSpear.s +++ /dev/null @@ -1,624 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0806407C -sub_0806407C: @ 0x0806407C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r5, #0x18] - cmp r0, #0 - bne _080640E8 - adds r0, #1 - strb r0, [r5, #0x18] - bl Random - movs r1, #0x3f - ands r0, r1 - adds r0, #0x20 - strh r0, [r5, #0x12] - bl Random - adds r1, r0, #0 - movs r0, #0x18 - ands r1, r0 - ldrb r0, [r4, #0x15] - cmp r0, #8 - beq _080640C4 - cmp r0, #8 - bgt _080640B2 - cmp r0, #0 - beq _080640BC - b _080640DA -_080640B2: - cmp r0, #0x10 - beq _080640CC - cmp r0, #0x18 - beq _080640D4 - b _080640DA -_080640BC: - cmp r1, #0x10 - bne _080640DA - movs r1, #8 - b _080640DA -_080640C4: - cmp r1, #0x18 - bne _080640DA - movs r1, #0x10 - b _080640DA -_080640CC: - cmp r1, #0 - bne _080640DA - movs r1, #0x18 - b _080640DA -_080640D4: - cmp r1, #8 - bne _080640DA - movs r1, #0 -_080640DA: - strb r1, [r4, #0x15] - adds r0, r1, #0 - bl sub_0806F5B0 - strb r0, [r4, #0x14] - movs r0, #0x80 - strh r0, [r4, #0x24] -_080640E8: - ldrb r0, [r4, #0x14] - lsrs r2, r0, #1 - adds r1, r2, #4 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r1, r0 - beq _0806410A - adds r0, r4, #0 - adds r0, #0x70 - movs r1, #0 - ldrsb r1, [r0, r1] - adds r1, #4 - adds r1, r2, r1 - adds r0, r4, #0 - bl InitializeAnimation -_0806410A: - adds r0, r4, #0 - bl ProcessMovement - movs r0, #0x2e - ldrsh r1, [r4, r0] - adds r2, r4, #0 - adds r2, #0x68 - movs r3, #0 - ldrsh r0, [r2, r3] - subs r1, r1, r0 - cmp r1, #0x10 - ble _0806412C - ldrh r0, [r2] - adds r0, #0x10 - strh r0, [r4, #0x2e] - movs r0, #1 - strh r0, [r5, #0x12] -_0806412C: - movs r3, #0x10 - rsbs r3, r3, #0 - cmp r1, r3 - bge _0806413E - ldrh r0, [r2] - subs r0, #0x10 - strh r0, [r4, #0x2e] - movs r0, #1 - strh r0, [r5, #0x12] -_0806413E: - movs r6, #0x32 - ldrsh r1, [r4, r6] - adds r2, r4, #0 - adds r2, #0x6a - movs r6, #0 - ldrsh r0, [r2, r6] - subs r1, r1, r0 - cmp r1, #0x10 - ble _0806415A - ldrh r0, [r2] - adds r0, #0x10 - strh r0, [r4, #0x32] - movs r0, #1 - strh r0, [r5, #0x12] -_0806415A: - cmp r1, r3 - bge _08064168 - ldrh r0, [r2] - subs r0, #0x10 - strh r0, [r4, #0x32] - movs r0, #1 - strh r0, [r5, #0x12] -_08064168: - ldrh r0, [r5, #0x12] - subs r0, #1 - strh r0, [r5, #0x12] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0806417A - ldr r1, _0806417C @ =gActiveScriptInfo - movs r0, #0 - strb r0, [r1, #6] -_0806417A: - pop {r4, r5, r6, pc} - .align 2, 0 -_0806417C: .4byte gActiveScriptInfo - - thumb_func_start sub_08064180 -sub_08064180: @ 0x08064180 - push {lr} - movs r0, #7 - movs r1, #0x15 - movs r2, #7 - bl FindEntityByID - cmp r0, #0 - beq _08064194 - bl DeleteEntity -_08064194: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08064198 -sub_08064198: @ 0x08064198 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r5, #0 - adds r4, #0x71 - ldrb r1, [r4] - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #0 - ble _080641AE - subs r0, r1, #1 - strb r0, [r4] -_080641AE: - ldr r0, _080641D8 @ =gPlayerEntity - movs r2, #0x32 - ldrsh r1, [r0, r2] - movs r2, #0x32 - ldrsh r0, [r5, r2] - subs r1, r1, r0 - cmp r1, #2 - ble _080641C0 - movs r1, #2 -_080641C0: - movs r0, #2 - rsbs r0, r0, #0 - cmp r1, r0 - bge _080641CA - adds r1, r0, #0 -_080641CA: - adds r6, r4, #0 - cmp r1, #0 - beq _08064256 - cmp r1, #0 - ble _080641DC - movs r0, #0x10 - b _080641DE - .align 2, 0 -_080641D8: .4byte gPlayerEntity -_080641DC: - movs r0, #0 -_080641DE: - strb r0, [r5, #0x15] - cmp r1, #0 - bge _080641E6 - rsbs r1, r1, #0 -_080641E6: - lsls r0, r1, #8 - strh r0, [r5, #0x24] - movs r0, #0x32 - ldrsh r4, [r5, r0] - adds r0, r5, #0 - bl ProcessMovement - movs r1, #0x32 - ldrsh r0, [r5, r1] - adds r6, r5, #0 - adds r6, #0x71 - cmp r4, r0 - beq _08064256 - ldr r0, _080642B0 @ =gPlayerEntity - movs r2, #0x24 - ldrsh r1, [r0, r2] - movs r0, #0xa0 - lsls r0, r0, #1 - cmp r1, r0 - ble _08064222 - ldr r0, _080642B4 @ =gScreenTransition - ldr r0, [r0] - movs r1, #6 - bl __modsi3 - cmp r0, #0 - bne _08064222 - adds r0, r5, #0 - bl CreateDustSmall -_08064222: - adds r4, r5, #0 - adds r4, #0x71 - movs r0, #0xa - strb r0, [r4] - ldrb r0, [r5, #0x15] - bl sub_0806F5B0 - strb r0, [r5, #0x14] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x19 - adds r1, r5, #0 - adds r1, #0x70 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r1, #4 - adds r1, r0, r1 - adds r0, r5, #0 - adds r0, #0x58 - adds r6, r4, #0 - ldrb r0, [r0] - cmp r1, r0 - beq _08064256 - adds r0, r5, #0 - bl InitializeAnimation -_08064256: - movs r0, #0 - ldrsb r0, [r6, r0] - cmp r0, #0 - bne _0806428C - ldr r1, _080642B0 @ =gPlayerEntity - adds r0, r5, #0 - bl GetFacingDirection - bl sub_0806F5B0 - strb r0, [r5, #0x14] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x19 - adds r1, r5, #0 - adds r1, #0x70 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r1, r0, r1 - adds r0, r5, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r1, r0 - beq _0806428C - adds r0, r5, #0 - bl InitializeAnimation -_0806428C: - adds r0, r5, #0 - bl sub_0806ED78 - movs r0, #0x36 - ldrsh r4, [r5, r0] - ldr r0, _080642B0 @ =gPlayerEntity - ldrh r0, [r0, #0x36] - strh r0, [r5, #0x36] - cmp r4, #0 - bge _080642AC - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080642AC - adds r0, r5, #0 - bl CreateDustSmall -_080642AC: - pop {r4, r5, r6, pc} - .align 2, 0 -_080642B0: .4byte gPlayerEntity -_080642B4: .4byte gScreenTransition - - thumb_func_start sub_080642B8 -sub_080642B8: @ 0x080642B8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r5, #0 - adds r4, #0x71 - ldrb r1, [r4] - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #0 - ble _080642CE - subs r0, r1, #1 - strb r0, [r4] -_080642CE: - ldr r0, _080642F8 @ =gPlayerEntity - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r2, #0x2e - ldrsh r0, [r5, r2] - subs r1, r1, r0 - cmp r1, #2 - ble _080642E0 - movs r1, #2 -_080642E0: - movs r0, #2 - rsbs r0, r0, #0 - cmp r1, r0 - bge _080642EA - adds r1, r0, #0 -_080642EA: - adds r6, r4, #0 - cmp r1, #0 - beq _08064376 - cmp r1, #0 - ble _080642FC - movs r0, #8 - b _080642FE - .align 2, 0 -_080642F8: .4byte gPlayerEntity -_080642FC: - movs r0, #0x18 -_080642FE: - strb r0, [r5, #0x15] - cmp r1, #0 - bge _08064306 - rsbs r1, r1, #0 -_08064306: - lsls r0, r1, #8 - strh r0, [r5, #0x24] - movs r0, #0x2e - ldrsh r4, [r5, r0] - adds r0, r5, #0 - bl ProcessMovement - movs r1, #0x2e - ldrsh r0, [r5, r1] - adds r6, r5, #0 - adds r6, #0x71 - cmp r4, r0 - beq _08064376 - ldr r0, _080643D0 @ =gPlayerEntity - movs r2, #0x24 - ldrsh r1, [r0, r2] - movs r0, #0xa0 - lsls r0, r0, #1 - cmp r1, r0 - ble _08064342 - ldr r0, _080643D4 @ =gScreenTransition - ldr r0, [r0] - movs r1, #6 - bl __modsi3 - cmp r0, #0 - bne _08064342 - adds r0, r5, #0 - bl CreateDustSmall -_08064342: - adds r4, r5, #0 - adds r4, #0x71 - movs r0, #0xa - strb r0, [r4] - ldrb r0, [r5, #0x15] - bl sub_0806F5B0 - strb r0, [r5, #0x14] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x19 - adds r1, r5, #0 - adds r1, #0x70 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r1, #4 - adds r1, r0, r1 - adds r0, r5, #0 - adds r0, #0x58 - adds r6, r4, #0 - ldrb r0, [r0] - cmp r1, r0 - beq _08064376 - adds r0, r5, #0 - bl InitializeAnimation -_08064376: - movs r0, #0 - ldrsb r0, [r6, r0] - cmp r0, #0 - bne _080643AC - ldr r1, _080643D0 @ =gPlayerEntity - adds r0, r5, #0 - bl GetFacingDirection - bl sub_0806F5B0 - strb r0, [r5, #0x14] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x19 - adds r1, r5, #0 - adds r1, #0x70 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r1, r0, r1 - adds r0, r5, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r1, r0 - beq _080643AC - adds r0, r5, #0 - bl InitializeAnimation -_080643AC: - adds r0, r5, #0 - bl sub_0806ED78 - movs r0, #0x36 - ldrsh r4, [r5, r0] - ldr r0, _080643D0 @ =gPlayerEntity - ldrh r0, [r0, #0x36] - strh r0, [r5, #0x36] - cmp r4, #0 - bge _080643CC - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080643CC - adds r0, r5, #0 - bl CreateDustSmall -_080643CC: - pop {r4, r5, r6, pc} - .align 2, 0 -_080643D0: .4byte gPlayerEntity -_080643D4: .4byte gScreenTransition - - thumb_func_start sub_080643D8 -sub_080643D8: @ 0x080643D8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - bl CheckGlobalFlag - cmp r0, #0 - bne _080643EA - movs r3, #0 - b _08064406 -_080643EA: - movs r0, #2 - bl GetInventoryValue - cmp r0, #0 - bne _080643F8 - movs r3, #1 - b _08064406 -_080643F8: - movs r0, #3 - bl GetInventoryValue - movs r3, #3 - cmp r0, #0 - bne _08064406 - movs r3, #2 -_08064406: - ldrb r1, [r4, #0xb] - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - ldr r2, _08064424 @ =gUnk_0810F6D4 - lsls r1, r3, #1 - lsls r0, r0, #3 - adds r1, r1, r0 - adds r1, r1, r2 - ldrh r0, [r1] - adds r1, r4, #0 - bl TextboxNoOverlap - pop {r4, pc} - .align 2, 0 -_08064424: .4byte gUnk_0810F6D4 - - thumb_func_start sub_08064428 -sub_08064428: @ 0x08064428 - push {lr} - adds r3, r0, #0 - ldr r0, _0806444C @ =gSave - ldrb r0, [r0, #8] - subs r1, r0, #2 - cmp r1, #0 - bge _08064438 - movs r1, #0 -_08064438: - ldrb r2, [r3, #0xb] - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - bne _08064454 - ldrb r0, [r3, #0xb] - lsls r0, r0, #3 - ldr r1, _08064450 @ =gUnk_0810CF4C - b _08064460 - .align 2, 0 -_0806444C: .4byte gSave -_08064450: .4byte gUnk_0810CF4C -_08064454: - movs r0, #0x7f - ands r0, r2 - lsls r0, r0, #6 - lsls r1, r1, #3 - ldr r2, _0806446C @ =gUnk_0810D0A4 - adds r1, r1, r2 -_08064460: - adds r1, r0, r1 - adds r0, r3, #0 - bl ShowNPCDialogue - pop {pc} - .align 2, 0 -_0806446C: .4byte gUnk_0810D0A4 - - thumb_func_start sub_08064470 -sub_08064470: @ 0x08064470 - push {lr} - ldr r0, _08064484 @ =gPlayerState - adds r0, #0xab - ldrb r0, [r0] - cmp r0, #1 - beq _0806447E - movs r0, #0 -_0806447E: - str r0, [r1, #0x14] - pop {pc} - .align 2, 0 -_08064484: .4byte gPlayerState - - thumb_func_start sub_08064488 -sub_08064488: @ 0x08064488 - push {lr} - ldr r1, _080644A0 @ =gPlayerState - adds r0, r1, #0 - adds r0, #0xa8 - ldrb r0, [r0] - cmp r0, #2 - beq _0806449C - adds r1, #0xab - movs r0, #0 - strb r0, [r1] -_0806449C: - pop {pc} - .align 2, 0 -_080644A0: .4byte gPlayerState - - thumb_func_start sub_080644A4 -sub_080644A4: @ 0x080644A4 - ldr r0, _080644B0 @ =gPlayerState - adds r0, #0xab - movs r1, #0 - strb r1, [r0] - bx lr - .align 2, 0 -_080644B0: .4byte gPlayerState - - thumb_func_start sub_080644B4 -sub_080644B4: @ 0x080644B4 - push {lr} - adds r2, r1, #0 - movs r3, #0 - ldrb r1, [r0, #0x14] - ldr r0, [r2, #4] - cmp r1, r0 - bne _080644C4 - movs r3, #1 -_080644C4: - str r3, [r2, #0x14] - pop {pc} - - thumb_func_start sub_080644C8 -sub_080644C8: @ 0x080644C8 - push {r4, lr} - adds r2, r0, #0 - movs r1, #0x2e - ldrsh r0, [r2, r1] - ldr r3, _08064500 @ =gRoomControls - movs r4, #0xa - ldrsh r1, [r3, r4] - subs r1, r0, r1 - adds r0, r1, #0 - adds r0, #8 - cmp r0, #0 - blt _08064504 - adds r0, r1, #0 - subs r0, #8 - cmp r0, #0xf0 - bgt _08064504 - movs r0, #0x32 - ldrsh r1, [r2, r0] - movs r2, #0xc - ldrsh r0, [r3, r2] - subs r0, r1, r0 - cmp r0, #0 - blt _08064504 - subs r0, #0x18 - cmp r0, #0xa0 - bgt _08064504 - movs r0, #1 - b _08064506 - .align 2, 0 -_08064500: .4byte gRoomControls -_08064504: - movs r0, #0 -_08064506: - pop {r4, pc} diff --git a/asm/hiddenLadderDown.s b/asm/hiddenLadderDown.s deleted file mode 100644 index 9851257c..00000000 --- a/asm/hiddenLadderDown.s +++ /dev/null @@ -1,7 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text diff --git a/asm/hurdyGurdyMan.s b/asm/hurdyGurdyMan.s deleted file mode 100644 index 33d3bf98..00000000 --- a/asm/hurdyGurdyMan.s +++ /dev/null @@ -1,209 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start HurdyGurdyMan -HurdyGurdyMan: @ 0x0806E308 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xc] - cmp r5, #1 - beq _0806E34C - cmp r5, #1 - bgt _0806E31C - cmp r5, #0 - beq _0806E322 - b _0806E3E0 -_0806E31C: - cmp r5, #2 - beq _0806E3C6 - b _0806E3E0 -_0806E322: - ldr r1, _0806E348 @ =gUnk_081144F0 - adds r0, r4, #0 - bl LoadExtraSpriteData - cmp r0, #0 - beq _0806E3E0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - strb r5, [r0] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 - b _0806E3E0 - .align 2, 0 -_0806E348: .4byte gUnk_081144F0 -_0806E34C: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806E3BC - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x69 - strb r0, [r1] - ldr r1, _0806E3B0 @ =gPlayerEntity - adds r0, r4, #0 - bl GetFacingDirection - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl InitializeAnimation - adds r0, r4, #0 - bl sub_08002632 - ldr r1, _0806E3B4 @ =gUnk_08001A7C - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r3, [r0] - adds r0, r4, #0 - adds r0, #0x68 - ldrb r0, [r0] - cmp r0, #0x32 - bne _0806E398 - adds r3, #6 -_0806E398: - ldrh r1, [r3] - ldrh r2, [r3, #2] - ldrh r3, [r3, #4] - adds r0, r4, #0 - bl sub_0801DFB4 - ldr r0, _0806E3B8 @ =gPlayerState - adds r0, #0x8b - movs r1, #3 - strb r1, [r0] - b _0806E3E0 - .align 2, 0 -_0806E3B0: .4byte gPlayerEntity -_0806E3B4: .4byte gUnk_08001A7C -_0806E3B8: .4byte gPlayerState -_0806E3BC: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _0806E3E0 -_0806E3C6: - adds r0, r4, #0 - bl UpdateFuseInteraction - cmp r0, #0 - beq _0806E3E0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - ldrb r1, [r0] - adds r0, r4, #0 - bl InitializeAnimation -_0806E3E0: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start HurdyGurdyMan_Head -HurdyGurdyMan_Head: @ 0x0806E3E4 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r2, [r0] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r2, r0 - adds r2, #8 - adds r0, r4, #0 - movs r1, #0 - bl SetExtraSpriteFrame - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl SetExtraSpriteFrame - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl SetSpriteSubEntryOffsetData1 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, pc} - - thumb_func_start sub_0806E418 -sub_0806E418: @ 0x0806E418 - push {lr} - adds r2, r0, #0 - ldr r0, _0806E438 @ =gSave - ldrb r0, [r0, #8] - subs r0, #2 - cmp r0, #0 - bge _0806E428 - movs r0, #0 -_0806E428: - lsls r1, r0, #3 - ldr r0, _0806E43C @ =gUnk_081144FC - adds r1, r1, r0 - adds r0, r2, #0 - bl ShowNPCDialogue - pop {pc} - .align 2, 0 -_0806E438: .4byte gSave -_0806E43C: .4byte gUnk_081144FC - - thumb_func_start sub_0806E440 -sub_0806E440: @ 0x0806E440 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start HurdyGurdyMan_Fusion -HurdyGurdyMan_Fusion: @ 0x0806E458 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806E498 - ldr r1, _0806E494 @ =gUnk_081144F0 - adds r0, r4, #0 - bl LoadExtraSpriteData - cmp r0, #0 - beq _0806E49E - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #0xa - bl InitializeAnimation - b _0806E49E - .align 2, 0 -_0806E494: .4byte gUnk_081144F0 -_0806E498: - adds r0, r4, #0 - bl GetNextFrame -_0806E49E: - pop {r4, pc} diff --git a/asm/kid.s b/asm/kid.s deleted file mode 100644 index 59d6b6e7..00000000 --- a/asm/kid.s +++ /dev/null @@ -1,1319 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Kid -Kid: @ 0x080620C8 - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080620DE - adds r0, r2, #0 - bl sub_080621AC - b _080620EE -_080620DE: - ldr r0, _080620F0 @ =gUnk_0810BE0C - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 -_080620EE: - pop {pc} - .align 2, 0 -_080620F0: .4byte gUnk_0810BE0C - - thumb_func_start sub_080620F4 -sub_080620F4: @ 0x080620F4 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0806212C @ =gUnk_0810BDC4 - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl LoadExtraSpriteData - cmp r0, #0 - beq _0806212A - movs r1, #0 - movs r0, #4 - strb r0, [r4, #0x14] - adds r0, r4, #0 - adds r0, #0x68 - strb r1, [r0] - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl InitAnimationForceUpdate - adds r0, r4, #0 - bl sub_08078778 -_0806212A: - pop {r4, pc} - .align 2, 0 -_0806212C: .4byte gUnk_0810BDC4 - - thumb_func_start sub_08062130 -sub_08062130: @ 0x08062130 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x39 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _08062152 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl GetAnimationState - adds r1, r0, #0 - adds r0, r4, #0 - bl InitAnimationForceUpdate -_08062152: - ldrb r0, [r4, #0xf] - adds r1, r0, #1 - strb r1, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x78 - bls _08062184 - movs r0, #0 - strb r0, [r4, #0xf] - ldrb r0, [r4, #0xe] - adds r1, r0, #1 - movs r0, #7 - ands r1, r0 - strb r1, [r4, #0xe] - ldrb r0, [r4, #0xa] - cmp r0, #6 - bne _0806217A - adds r0, r1, #0 - adds r0, #0x10 - strb r0, [r4, #0xe] -_0806217A: - ldrb r1, [r4, #0xe] - adds r0, r4, #0 - bl InitAnimationForceUpdate - b _0806218A -_08062184: - adds r0, r4, #0 - bl UpdateAnimationSingleFrame -_0806218A: - adds r0, r4, #0 - bl sub_0806ED78 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08062194 -sub_08062194: @ 0x08062194 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0 - bl TextboxNoOverlapFollow - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r4, #0x39 - strb r1, [r4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080621AC -sub_080621AC: @ 0x080621AC - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xc] - cmp r5, #1 - beq _08062234 - cmp r5, #1 - bgt _080621C0 - cmp r5, #0 - beq _080621CE - b _080622F2 -_080621C0: - cmp r5, #2 - bne _080621C6 - b _080622CC -_080621C6: - cmp r5, #3 - bne _080621CC - b _080622E4 -_080621CC: - b _080622F2 -_080621CE: - ldr r1, _0806221C @ =gUnk_0810BDC4 - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl LoadExtraSpriteData - cmp r0, #0 - bne _080621E4 - b _080622F2 -_080621E4: - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xe] - strb r0, [r4, #0x14] - strb r5, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x68 - strb r5, [r0] - adds r0, #1 - strb r5, [r0] - adds r1, r4, #0 - adds r1, #0x6b - movs r0, #0xff - strb r0, [r1] - adds r0, r4, #0 - bl sub_0805ACC0 - adds r2, r0, #0 - cmp r2, #0 - bne _08062220 - ldrh r0, [r4, #0x2e] - adds r1, r4, #0 - adds r1, #0x6c - strh r0, [r1] - ldrh r0, [r4, #0x32] - adds r1, #2 - strh r0, [r1] - b _0806222C - .align 2, 0 -_0806221C: .4byte gUnk_0810BDC4 -_08062220: - lsrs r1, r2, #0x10 - adds r0, r4, #0 - adds r0, #0x6c - strh r1, [r0] - adds r0, #2 - strh r2, [r0] -_0806222C: - adds r0, r4, #0 - bl sub_0807DD50 - b _080622F2 -_08062234: - adds r5, r4, #0 - adds r5, #0x39 - movs r1, #0 - ldrsb r1, [r5, r1] - cmp r1, #2 - bne _08062252 - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r5] - adds r0, r4, #0 - bl sub_0806F118 - adds r5, #0x1f - b _0806229A -_08062252: - adds r0, r4, #0 - adds r0, #0x68 - movs r6, #0 - ldrsb r6, [r0, r6] - cmp r6, #0 - beq _08062274 - cmp r1, #0 - beq _0806226C - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r5] - b _0806228A -_0806226C: - adds r0, r4, #0 - bl sub_080622F4 - b _080622F2 -_08062274: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r0, #0 - beq _080622F2 - movs r0, #2 - strb r0, [r4, #0xc] - strb r6, [r5] -_0806228A: - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_0806265C - adds r5, r4, #0 - adds r5, #0x58 -_0806229A: - ldrb r0, [r5] - adds r1, r4, #0 - adds r1, #0x6b - strb r0, [r1] - ldrb r0, [r5] - cmp r0, #7 - bhi _080622F2 - ldr r1, _080622C8 @ =gPlayerEntity - adds r0, r4, #0 - bl GetFacingDirection - bl sub_0806F5A4 - ldrb r1, [r5] - movs r2, #4 - rsbs r2, r2, #0 - ands r1, r2 - adds r1, r1, r0 - adds r0, r4, #0 - bl InitializeAnimation - b _080622F2 - .align 2, 0 -_080622C8: .4byte gPlayerEntity -_080622CC: - adds r0, r4, #0 - bl GetNextFrame - ldr r0, _080622E0 @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _080622F2 - b _080622EE - .align 2, 0 -_080622E0: .4byte gTextBox -_080622E4: - adds r0, r4, #0 - bl UpdateFuseInteraction - cmp r0, #0 - beq _080622F2 -_080622EE: - movs r0, #1 - strb r0, [r4, #0xc] -_080622F2: - pop {r4, r5, r6, pc} - - thumb_func_start sub_080622F4 -sub_080622F4: @ 0x080622F4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r7, r0, #0 - ldr r0, _0806239C @ =gPlayerEntity - mov r8, r0 - ldrh r1, [r0, #0x2e] - ldr r3, _080623A0 @ =0xFFFF0000 - adds r0, r3, #0 - ands r0, r5 - orrs r0, r1 - mov r2, r8 - ldrh r1, [r2, #0x32] - lsls r1, r1, #0x10 - ldr r2, _080623A4 @ =0x0000FFFF - ands r0, r2 - adds r5, r0, #0 - orrs r5, r1 - mov r1, r8 - ldrh r0, [r1, #0x36] - ands r3, r6 - orrs r3, r0 - ldr r0, _080623A8 @ =gPlayerState - adds r0, #0xa8 - ldrb r0, [r0] - lsls r0, r0, #0x10 - ldr r2, _080623AC @ =0xFF00FFFF - ands r2, r3 - orrs r2, r0 - ldrb r1, [r1, #0x14] - movs r0, #0x3f - ands r1, r0 - lsls r1, r1, #0x18 - ldr r0, _080623B0 @ =0xC0FFFFFF - ands r0, r2 - orrs r0, r1 - mov r1, r8 - adds r1, #0x38 - ldrb r1, [r1] - lsls r1, r1, #0x1e - ldr r2, _080623B4 @ =0x3FFFFFFF - ands r0, r2 - adds r6, r0, #0 - orrs r6, r1 - ldr r4, [r7, #0x64] - ldrb r0, [r4, #6] - cmp r0, #0x16 - bne _080623BE - lsrs r0, r6, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x16 - beq _080623BE - movs r2, #0x2e - ldrsh r1, [r7, r2] - mov r3, r8 - movs r2, #0x2e - ldrsh r0, [r3, r2] - subs r2, r1, r0 - movs r0, #0x32 - ldrsh r3, [r7, r0] - mov sb, r3 - mov r1, r8 - movs r3, #0x32 - ldrsh r0, [r1, r3] - mov r3, sb - subs r1, r3, r0 - cmp r2, #0 - bge _08062382 - rsbs r2, r2, #0 -_08062382: - cmp r1, #0 - bge _08062388 - rsbs r1, r1, #0 -_08062388: - cmp r2, #0x78 - bgt _08062390 - cmp r1, #0x50 - ble _080623B8 -_08062390: - adds r1, r7, #0 - adds r1, #0x68 - movs r0, #0 - strb r0, [r1] - b _080624F8 - .align 2, 0 -_0806239C: .4byte gPlayerEntity -_080623A0: .4byte 0xFFFF0000 -_080623A4: .4byte 0x0000FFFF -_080623A8: .4byte gPlayerState -_080623AC: .4byte 0xFF00FFFF -_080623B0: .4byte 0xC0FFFFFF -_080623B4: .4byte 0x3FFFFFFF -_080623B8: - adds r0, r7, #0 - bl sub_0806252C -_080623BE: - movs r0, #0 - mov sb, r0 - ldr r0, [r4] - cmp r5, r0 - bne _080623CE - ldr r0, [r4, #4] - cmp r6, r0 - beq _08062410 -_080623CE: - ldr r4, [r7, #0x64] - adds r4, #0x90 - movs r1, #0x69 - adds r1, r1, r7 - mov r8, r1 - adds r3, r7, #0 - adds r3, #0x38 - movs r2, #0x58 - adds r2, r2, r7 - mov ip, r2 - movs r2, #0x12 -_080623E4: - ldr r0, [r4] - ldr r1, [r4, #4] - str r0, [r4, #8] - str r1, [r4, #0xc] - subs r4, #8 - subs r2, #1 - cmp r2, #0 - bge _080623E4 - ldr r4, [r7, #0x64] - str r5, [r4] - str r6, [r4, #4] - movs r0, #4 - mov sb, r0 - mov r2, r8 - ldrb r1, [r2] - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0 - ble _08062484 - subs r0, r1, #1 - strb r0, [r2] - b _08062484 -_08062410: - adds r4, #0x98 - movs r3, #4 - ldrsh r0, [r4, r3] - cmp r0, #0 - bge _08062442 - ldr r4, [r7, #0x64] - adds r4, #0x90 - movs r0, #0x69 - adds r0, r0, r7 - mov r8, r0 - adds r3, r7, #0 - adds r3, #0x38 - movs r1, #0x58 - adds r1, r1, r7 - mov ip, r1 - movs r2, #0x12 -_08062430: - ldr r0, [r4] - ldr r1, [r4, #4] - str r0, [r4, #8] - str r1, [r4, #0xc] - subs r4, #8 - subs r2, #1 - cmp r2, #0 - bge _08062430 - b _08062480 -_08062442: - ldr r1, _080624E8 @ =gPlayerEntity - movs r3, #0x2e - ldrsh r0, [r1, r3] - movs r2, #0x32 - ldrsh r1, [r1, r2] - ldrh r2, [r4] - ldrh r3, [r4, #2] - bl sub_080041E8 - lsrs r0, r0, #4 - movs r3, #0x69 - adds r3, r3, r7 - mov r8, r3 - adds r3, r7, #0 - adds r3, #0x38 - movs r1, #0x58 - adds r1, r1, r7 - mov ip, r1 - cmp r0, #0x18 - ble _08062484 - ldr r4, [r7, #0x64] - adds r4, #0x90 - movs r2, #0x12 -_08062470: - ldr r0, [r4] - ldr r1, [r4, #4] - str r0, [r4, #8] - str r1, [r4, #0xc] - subs r4, #8 - subs r2, #1 - cmp r2, #0 - bge _08062470 -_08062480: - movs r2, #4 - mov sb, r2 -_08062484: - ldr r4, [r7, #0x64] - adds r4, #0x98 - ldrh r0, [r4] - strh r0, [r7, #0x2e] - ldrh r0, [r4, #2] - strh r0, [r7, #0x32] - ldrh r0, [r4, #4] - strh r0, [r7, #0x36] - ldrb r0, [r4, #7] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1a - strb r0, [r7, #0x14] - ldrb r0, [r4, #7] - lsrs r0, r0, #6 - strb r0, [r3] - mov r1, r8 - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - ble _080624B2 - subs r0, r2, #1 - strb r0, [r1] -_080624B2: - mov r2, sb - ldrb r0, [r7, #0x14] - lsrs r0, r0, #1 - add sb, r0 - ldrb r0, [r7, #0xa] - cmp r0, #6 - bne _080624C4 - movs r3, #0x10 - add sb, r3 -_080624C4: - mov r0, ip - ldrb r0, [r0] - cmp sb, r0 - beq _080624EC - cmp r2, #0 - bne _080624D8 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bgt _080624EC -_080624D8: - adds r0, r7, #0 - mov r1, sb - bl InitAnimationForceUpdate - movs r0, #0x1e - mov r1, r8 - strb r0, [r1] - b _080624F2 - .align 2, 0 -_080624E8: .4byte gPlayerEntity -_080624EC: - adds r0, r7, #0 - bl UpdateAnimationSingleFrame -_080624F2: - adds r0, r7, #0 - bl sub_0800451C -_080624F8: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08062500 -sub_08062500: @ 0x08062500 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0xa0 - bl zMalloc - str r0, [r5, #0x64] - cmp r0, #0 - beq _08062528 - adds r0, r5, #0 - adds r0, #0x68 - movs r4, #0 - movs r1, #1 - strb r1, [r0] - adds r0, r5, #0 - bl sub_080788E0 - str r4, [r5, #0x48] - adds r0, r5, #0 - bl sub_0806252C -_08062528: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806252C -sub_0806252C: @ 0x0806252C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r7, r0, #0 - ldr r4, _08062618 @ =gPlayerEntity - ldrh r1, [r4, #0x2e] - ldr r3, _0806261C @ =0xFFFF0000 - adds r0, r3, #0 - ands r0, r5 - orrs r0, r1 - ldrh r1, [r4, #0x32] - lsls r1, r1, #0x10 - ldr r2, _08062620 @ =0x0000FFFF - ands r0, r2 - adds r5, r0, #0 - orrs r5, r1 - ldrh r0, [r4, #0x36] - ands r3, r6 - orrs r3, r0 - ldr r0, _08062624 @ =gPlayerState - adds r0, #0xa8 - ldrb r0, [r0] - lsls r0, r0, #0x10 - ldr r2, _08062628 @ =0xFF00FFFF - ands r2, r3 - orrs r2, r0 - ldrb r1, [r4, #0x14] - movs r0, #0x3f - ands r1, r0 - lsls r1, r1, #0x18 - ldr r0, _0806262C @ =0xC0FFFFFF - ands r0, r2 - orrs r0, r1 - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - lsls r1, r1, #0x1e - ldr r2, _08062630 @ =0x3FFFFFFF - ands r0, r2 - adds r6, r0, #0 - orrs r6, r1 - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r2, #0x2e - ldrsh r0, [r7, r2] - subs r1, r1, r0 - mov sl, r1 - movs r0, #0x32 - ldrsh r1, [r4, r0] - movs r2, #0x32 - ldrsh r0, [r7, r2] - subs r1, r1, r0 - mov r8, r1 - mov r1, sl - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x14 - bl FixedDiv - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mov sl, r0 - mov r2, r8 - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x14 - bl FixedDiv - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mov r8, r0 - ldr r3, [r7, #0x64] - movs r0, #0 - mov sb, r0 - mov ip, r0 - movs r4, #0x13 -_080625C8: - mov r1, ip - asrs r0, r1, #8 - subs r0, r5, r0 - strh r0, [r3] - lsrs r0, r5, #0x10 - mov r2, sb - asrs r1, r2, #8 - subs r0, r0, r1 - strh r0, [r3, #2] - strh r6, [r3, #4] - lsrs r0, r6, #0x10 - strb r0, [r3, #6] - ldrb r0, [r7, #0x14] - movs r1, #0x3f - ands r1, r0 - ldrb r2, [r3, #7] - movs r0, #0x40 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #7] - adds r1, r7, #0 - adds r1, #0x38 - ldrb r1, [r1] - lsls r1, r1, #6 - movs r2, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #7] - adds r3, #8 - add sb, r8 - add ip, sl - subs r4, #1 - cmp r4, #0 - bge _080625C8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08062618: .4byte gPlayerEntity -_0806261C: .4byte 0xFFFF0000 -_08062620: .4byte 0x0000FFFF -_08062624: .4byte gPlayerState -_08062628: .4byte 0xFF00FFFF -_0806262C: .4byte 0xC0FFFFFF -_08062630: .4byte 0x3FFFFFFF - - thumb_func_start sub_08062634 -sub_08062634: @ 0x08062634 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r4, [r5, #0xb] - bl Random - movs r1, #1 - ands r1, r0 - ldr r0, _08062658 @ =gUnk_0810BDE8 - lsls r1, r1, #1 - lsls r4, r4, #2 - adds r1, r1, r4 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_08062658: .4byte gUnk_0810BDE8 - - thumb_func_start sub_0806265C -sub_0806265C: @ 0x0806265C - push {lr} - adds r2, r0, #0 - ldr r3, _08062674 @ =gSave - ldrb r0, [r3, #8] - cmp r0, #0 - bne _08062678 - movs r0, #0 - adds r1, r2, #0 - bl TextboxNoOverlap - b _08062690 - .align 2, 0 -_08062674: .4byte gSave -_08062678: - ldrb r0, [r2, #0xa] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _08062694 @ =gUnk_0810BE10 - adds r1, r1, r0 - ldrb r0, [r3, #8] - lsls r0, r0, #3 - adds r1, r1, r0 - adds r0, r2, #0 - bl ShowNPCDialogue -_08062690: - pop {pc} - .align 2, 0 -_08062694: .4byte gUnk_0810BE10 - - thumb_func_start sub_08062698 -sub_08062698: @ 0x08062698 - push {r4, lr} - adds r4, r0, #0 - bl Random - movs r1, #0x3f - ands r0, r1 - adds r0, #0xc0 - strh r0, [r4, #0x24] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080626AC -sub_080626AC: @ 0x080626AC - push {r4, lr} - adds r4, r0, #0 - bl Random - movs r1, #0x1f - ands r0, r1 - adds r0, #0x40 - strb r0, [r4, #0xe] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080626C0 -sub_080626C0: @ 0x080626C0 - push {lr} - adds r2, r0, #0 - movs r0, #0 - str r0, [r1, #0x14] - ldrb r0, [r2, #0xe] - cmp r0, #0 - beq _080626DC - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080626DC - movs r0, #1 - str r0, [r1, #0x14] -_080626DC: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080626E0 -sub_080626E0: @ 0x080626E0 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - ldrb r0, [r4, #0x18] - cmp r0, #0 - bne _0806270E - adds r0, #1 - strb r0, [r4, #0x18] - movs r0, #0xa - strb r0, [r4, #0x19] - ldr r0, [r4, #8] - movs r1, #2 - orrs r0, r1 - str r0, [r4, #8] - ldrh r2, [r4, #4] - ldr r1, _08062778 @ =gRoomControls - ldrh r0, [r4, #6] - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r4, #0x1e] - ldrh r0, [r1, #8] - adds r0, r0, r2 - strh r0, [r4, #0x22] -_0806270E: - ldrb r0, [r4, #0x19] - subs r0, #1 - strb r0, [r4, #0x19] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806274A - movs r0, #0xa - strb r0, [r4, #0x19] - movs r1, #0x1e - ldrsh r0, [r4, r1] - movs r2, #0x2e - ldrsh r1, [r5, r2] - subs r0, r0, r1 - movs r3, #0x22 - ldrsh r1, [r4, r3] - movs r3, #0x32 - ldrsh r2, [r5, r3] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r5, #0x15] - bl Random - movs r1, #0xb - bl __modsi3 - ldrb r1, [r5, #0x15] - adds r1, r1, r0 - subs r1, #5 - strb r1, [r5, #0x15] -_0806274A: - movs r0, #0x24 - ldrsh r1, [r5, r0] - ldrb r2, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F62C - movs r2, #0x2e - ldrsh r1, [r5, r2] - movs r3, #0x1e - ldrsh r0, [r4, r3] - subs r1, r1, r0 - lsls r1, r1, #8 - ldrh r0, [r5, #0x24] - lsls r0, r0, #0x10 - asrs r0, r0, #0x11 - adds r1, r1, r0 - movs r2, #0x24 - ldrsh r0, [r5, r2] - cmp r1, r0 - bhi _0806277C - ldrh r0, [r4, #0x1e] - strh r0, [r5, #0x2e] - b _08062782 - .align 2, 0 -_08062778: .4byte gRoomControls -_0806277C: - ldr r1, _08062784 @ =gActiveScriptInfo - movs r0, #0 - strb r0, [r1, #6] -_08062782: - pop {r4, r5, pc} - .align 2, 0 -_08062784: .4byte gActiveScriptInfo - - thumb_func_start sub_08062788 -sub_08062788: @ 0x08062788 - push {r4, lr} - ldr r4, _080627CC @ =0x00004072 - ldr r1, _080627D0 @ =0x0000060B - adds r0, r4, #0 - movs r2, #1 - bl SetTile - ldr r1, _080627D4 @ =0x0000060C - adds r0, r4, #0 - movs r2, #1 - bl SetTile - ldr r1, _080627D8 @ =0x0000060D - adds r0, r4, #0 - movs r2, #1 - bl SetTile - ldr r1, _080627DC @ =0x0000064B - adds r0, r4, #0 - movs r2, #1 - bl SetTile - ldr r1, _080627E0 @ =0x0000064C - adds r0, r4, #0 - movs r2, #1 - bl SetTile - ldr r1, _080627E4 @ =0x0000064D - adds r0, r4, #0 - movs r2, #1 - bl SetTile - pop {r4, pc} - .align 2, 0 -_080627CC: .4byte 0x00004072 -_080627D0: .4byte 0x0000060B -_080627D4: .4byte 0x0000060C -_080627D8: .4byte 0x0000060D -_080627DC: .4byte 0x0000064B -_080627E0: .4byte 0x0000064C -_080627E4: .4byte 0x0000064D - - thumb_func_start sub_080627E8 -sub_080627E8: @ 0x080627E8 - push {lr} - ldr r0, _0806281C @ =0x0000060B - movs r1, #1 - bl sub_0807BA8C - ldr r0, _08062820 @ =0x0000060C - movs r1, #1 - bl sub_0807BA8C - ldr r0, _08062824 @ =0x0000060D - movs r1, #1 - bl sub_0807BA8C - ldr r0, _08062828 @ =0x0000064B - movs r1, #1 - bl sub_0807BA8C - ldr r0, _0806282C @ =0x0000064C - movs r1, #1 - bl sub_0807BA8C - ldr r0, _08062830 @ =0x0000064D - movs r1, #1 - bl sub_0807BA8C - pop {pc} - .align 2, 0 -_0806281C: .4byte 0x0000060B -_08062820: .4byte 0x0000060C -_08062824: .4byte 0x0000060D -_08062828: .4byte 0x0000064B -_0806282C: .4byte 0x0000064C -_08062830: .4byte 0x0000064D - - thumb_func_start Kid_Head -Kid_Head: @ 0x08062834 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldrb r4, [r5, #0xa] - lsls r0, r4, #2 - mov ip, r0 - ldr r2, _08062868 @ =gUnk_0810C0A0 - add r2, ip - adds r0, r5, #0 - adds r0, #0x5a - ldrb r3, [r0] - movs r1, #0x1f - adds r0, r1, #0 - ands r0, r3 - ldrb r3, [r2] - adds r6, r0, r3 - ldrb r0, [r5, #0x1e] - ands r1, r0 - ldrb r2, [r2, #1] - adds r7, r1, r2 - cmp r4, #8 - bhi _08062946 - ldr r0, _0806286C @ =_08062870 - add r0, ip - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08062868: .4byte gUnk_0810C0A0 -_0806286C: .4byte _08062870 @ jump table -_08062870: - .4byte _08062894 @ case 0 - .4byte _08062894 @ case 1 - .4byte _08062894 @ case 2 - .4byte _08062894 @ case 3 - .4byte _08062894 @ case 4 - .4byte _08062894 @ case 5 - .4byte _080628D8 @ case 6 - .4byte _08062922 @ case 7 - .4byte _08062922 @ case 8 -_08062894: - adds r0, r5, #0 - adds r0, #0x5b - ldrb r1, [r0] - movs r0, #0x30 - ands r0, r1 - lsrs r4, r0, #4 - cmp r4, #0 - beq _080628A6 - adds r4, #0x50 -_080628A6: - subs r4, #1 - adds r0, r5, #0 - movs r1, #0 - adds r2, r6, #0 - bl SetExtraSpriteFrame - adds r0, r5, #0 - movs r1, #1 - adds r2, r7, #0 - bl SetExtraSpriteFrame - adds r0, r5, #0 - movs r1, #2 - adds r2, r4, #0 - bl SetExtraSpriteFrame - adds r0, r5, #0 - movs r1, #1 - movs r2, #0 - bl SetSpriteSubEntryOffsetData1 - adds r0, r5, #0 - movs r1, #1 - movs r2, #2 - b _08062916 -_080628D8: - adds r0, r5, #0 - adds r0, #0x5b - ldrb r0, [r0] - movs r2, #0xf - ands r2, r0 - cmp r2, #0 - beq _080628E8 - adds r2, #0x93 -_080628E8: - subs r2, #1 - adds r0, r5, #0 - movs r1, #0 - bl SetExtraSpriteFrame - adds r0, r5, #0 - movs r1, #1 - adds r2, r6, #0 - bl SetExtraSpriteFrame - adds r0, r5, #0 - movs r1, #2 - adds r2, r7, #0 - bl SetExtraSpriteFrame - adds r0, r5, #0 - movs r1, #2 - movs r2, #1 - bl SetSpriteSubEntryOffsetData1 - adds r0, r5, #0 - movs r1, #1 - movs r2, #0 -_08062916: - bl SetSpriteSubEntryOffsetData2 - adds r0, r5, #0 - bl sub_0807000C - b _08062946 -_08062922: - adds r0, r5, #0 - movs r1, #0 - adds r2, r6, #0 - bl SetExtraSpriteFrame - adds r0, r5, #0 - movs r1, #1 - adds r2, r7, #0 - bl SetExtraSpriteFrame - adds r0, r5, #0 - movs r1, #1 - movs r2, #0 - bl SetSpriteSubEntryOffsetData1 - adds r0, r5, #0 - bl sub_0807000C -_08062946: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08062948 -sub_08062948: @ 0x08062948 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldrb r0, [r6, #0x18] - cmp r0, #0 - bne _080629B4 - adds r0, #1 - strb r0, [r6, #0x18] - bl Random - movs r1, #0x3f - ands r0, r1 - adds r0, #0x20 - strh r0, [r6, #0x12] - bl Random - adds r1, r0, #0 - movs r0, #0x18 - ands r1, r0 - ldrb r0, [r4, #0x15] - cmp r0, #8 - beq _08062990 - cmp r0, #8 - bgt _0806297E - cmp r0, #0 - beq _08062988 - b _080629A6 -_0806297E: - cmp r0, #0x10 - beq _08062998 - cmp r0, #0x18 - beq _080629A0 - b _080629A6 -_08062988: - cmp r1, #0x10 - bne _080629A6 - movs r1, #8 - b _080629A6 -_08062990: - cmp r1, #0x18 - bne _080629A6 - movs r1, #0x10 - b _080629A6 -_08062998: - cmp r1, #0 - bne _080629A6 - movs r1, #0x18 - b _080629A6 -_080629A0: - cmp r1, #8 - bne _080629A6 - movs r1, #0 -_080629A6: - strb r1, [r4, #0x15] - adds r0, r1, #0 - bl sub_0806F5B0 - strb r0, [r4, #0x14] - movs r0, #0x80 - strh r0, [r4, #0x24] -_080629B4: - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - adds r1, r0, #4 - adds r5, r4, #0 - adds r5, #0x58 - ldrb r0, [r5] - cmp r1, r0 - beq _080629D2 - adds r0, r4, #0 - bl InitializeAnimation - ldrb r1, [r5] - adds r0, r4, #0 - adds r0, #0x80 - strh r1, [r0] -_080629D2: - adds r0, r4, #0 - bl ProcessMovement - movs r3, #0x2e - ldrsh r1, [r4, r3] - adds r2, r4, #0 - adds r2, #0x6c - movs r5, #0 - ldrsh r0, [r2, r5] - subs r1, r1, r0 - cmp r1, #0x10 - ble _080629F4 - ldrh r0, [r2] - adds r0, #0x10 - strh r0, [r4, #0x2e] - movs r0, #1 - strh r0, [r6, #0x12] -_080629F4: - movs r3, #0x10 - rsbs r3, r3, #0 - cmp r1, r3 - bge _08062A06 - ldrh r0, [r2] - subs r0, #0x10 - strh r0, [r4, #0x2e] - movs r0, #1 - strh r0, [r6, #0x12] -_08062A06: - movs r0, #0x32 - ldrsh r1, [r4, r0] - adds r2, r4, #0 - adds r2, #0x6e - movs r5, #0 - ldrsh r0, [r2, r5] - subs r1, r1, r0 - cmp r1, #0x10 - ble _08062A22 - ldrh r0, [r2] - adds r0, #0x10 - strh r0, [r4, #0x32] - movs r0, #1 - strh r0, [r6, #0x12] -_08062A22: - cmp r1, r3 - bge _08062A30 - ldrh r0, [r2] - subs r0, #0x10 - strh r0, [r4, #0x32] - movs r0, #1 - strh r0, [r6, #0x12] -_08062A30: - ldrh r0, [r6, #0x12] - subs r0, #1 - strh r0, [r6, #0x12] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08062A42 - ldr r1, _08062A44 @ =gActiveScriptInfo - movs r0, #0 - strb r0, [r1, #6] -_08062A42: - pop {r4, r5, r6, pc} - .align 2, 0 -_08062A44: .4byte gActiveScriptInfo - - thumb_func_start sub_08062A48 -sub_08062A48: @ 0x08062A48 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x6a - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start Kid_Fusion -Kid_Fusion: @ 0x08062A60 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08062AB0 - ldr r1, _08062AAC @ =gUnk_0810BDC4 - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl LoadExtraSpriteData - cmp r0, #0 - beq _08062AB6 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrh r0, [r4, #0x32] - subs r0, #8 - strh r0, [r4, #0x32] - movs r1, #6 - ldrb r0, [r4, #0xa] - cmp r0, #6 - bne _08062AA2 - movs r1, #0x16 -_08062AA2: - adds r0, r4, #0 - bl InitializeAnimation - b _08062AB6 - .align 2, 0 -_08062AAC: .4byte gUnk_0810BDC4 -_08062AB0: - adds r0, r4, #0 - bl GetNextFrame -_08062AB6: - pop {r4, pc} - - thumb_func_start sub_08062AB8 -sub_08062AB8: @ 0x08062AB8 - push {lr} - ldr r2, _08062ACC @ =gUnk_0810C268 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08062ACC: .4byte gUnk_0810C268 - - thumb_func_start sub_08062AD0 -sub_08062AD0: @ 0x08062AD0 - bx lr - .align 2, 0 - - thumb_func_start sub_08062AD4 -sub_08062AD4: @ 0x08062AD4 - bx lr - .align 2, 0 diff --git a/asm/kingDaltus.s b/asm/kingDaltus.s deleted file mode 100644 index e77fb2d8..00000000 --- a/asm/kingDaltus.s +++ /dev/null @@ -1,255 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start KingDaltus -KingDaltus: @ 0x080665E4 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08066638 - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806661E - movs r0, #0 - strb r0, [r2] - strb r1, [r4, #0xc] - ldr r1, _08066630 @ =gPlayerEntity - adds r0, r4, #0 - bl GetFacingDirection - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl InitAnimationForceUpdate - adds r0, r4, #0 - bl sub_0806F118 -_0806661E: - ldr r0, _08066634 @ =gUnk_081104EC - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _0806664E - .align 2, 0 -_08066630: .4byte gPlayerEntity -_08066634: .4byte gUnk_081104EC -_08066638: - ldr r0, _08066650 @ =gUnk_081104E0 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0806ED78 -_0806664E: - pop {r4, pc} - .align 2, 0 -_08066650: .4byte gUnk_081104E0 - - thumb_func_start sub_08066654 -sub_08066654: @ 0x08066654 - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - adds r0, r4, #0 - movs r1, #2 - bl InitAnimationForceUpdate - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08066688 -sub_08066688: @ 0x08066688 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x28 - movs r2, #0x28 - bl sub_0806ED9C - adds r1, r0, #0 - cmp r1, #0 - bge _0806669E - movs r1, #2 - b _080666B4 -_0806669E: - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _080666AA - movs r0, #0x10 - strb r0, [r4, #0xf] - b _080666B4 -_080666AA: - subs r0, #1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] -_080666B4: - adds r0, r4, #0 - bl sub_0806F078 - cmp r0, #0 - bne _080666C4 - adds r0, r4, #0 - bl UpdateAnimationSingleFrame -_080666C4: - adds r2, r4, #0 - adds r2, #0x39 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0 - beq _080666D8 - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r2] -_080666D8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080666DC -sub_080666DC: @ 0x080666DC - movs r1, #1 - strb r1, [r0, #0xc] - bx lr - .align 2, 0 - - thumb_func_start sub_080666E4 -sub_080666E4: @ 0x080666E4 - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0807DD50 - pop {r4, pc} - - thumb_func_start sub_0806670C -sub_0806670C: @ 0x0806670C - push {lr} - movs r1, #0 - bl sub_0807DD94 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08066718 -sub_08066718: @ 0x08066718 - push {r4, lr} - adds r4, r0, #0 - bl UpdateFuseInteraction - cmp r0, #0 - beq _08066728 - movs r0, #1 - strb r0, [r4, #0xc] -_08066728: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806672C -sub_0806672C: @ 0x0806672C - push {lr} - adds r1, r0, #0 - adds r1, #0x68 - ldrb r1, [r1] - bl sub_08078784 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806673C -sub_0806673C: @ 0x0806673C - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - bl CheckGlobalFlag - cmp r0, #0 - bne _0806674E - movs r1, #0 - b _0806676A -_0806674E: - movs r0, #2 - bl GetInventoryValue - cmp r0, #0 - bne _0806675C - movs r1, #1 - b _0806676A -_0806675C: - movs r0, #3 - bl GetInventoryValue - movs r1, #3 - cmp r0, #0 - bne _0806676A - movs r1, #2 -_0806676A: - ldr r0, _0806677C @ =gUnk_081104F8 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r4, #0 - bl TextboxNoOverlap - pop {r4, pc} - .align 2, 0 -_0806677C: .4byte gUnk_081104F8 - - thumb_func_start KingDaltus_Fusion -KingDaltus_Fusion: @ 0x08066780 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _080667A6 - adds r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - adds r0, r2, #0 - movs r1, #6 - bl InitAnimationForceUpdate - b _080667AC -_080667A6: - adds r0, r2, #0 - bl UpdateAnimationSingleFrame -_080667AC: - pop {pc} - .align 2, 0 diff --git a/asm/librarians.s b/asm/librarians.s deleted file mode 100644 index f80ef358..00000000 --- a/asm/librarians.s +++ /dev/null @@ -1,259 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Librarians -Librarians: @ 0x0806B9F0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806BA18 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0807DD50 - ldr r1, _0806BA30 @ =gUnk_08114F30 - ldrb r2, [r4, #0x19] - lsrs r0, r2, #6 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r1, r1, #6 - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x19] -_0806BA18: - adds r0, r4, #0 - movs r1, #0 - bl ExecuteScriptForEntity - adds r0, r4, #0 - bl HandleEntity0x82Actions - adds r0, r4, #0 - bl GetNextFrame - pop {r4, pc} - .align 2, 0 -_0806BA30: .4byte gUnk_08114F30 - - thumb_func_start sub_0806BA34 -sub_0806BA34: @ 0x0806BA34 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov sb, r0 - adds r4, r1, #0 - ldr r0, _0806BA58 @ =0x00004912 - mov r8, r0 - movs r0, #0 - str r0, [r4, #0x14] - movs r0, #0x73 - bl CheckLocalFlag - cmp r0, #0 - beq _0806BA60 - ldr r0, _0806BA5C @ =0x00004913 - mov r8, r0 - b _0806BB06 - .align 2, 0 -_0806BA58: .4byte 0x00004912 -_0806BA5C: .4byte 0x00004913 -_0806BA60: - movs r0, #0x39 - bl GetInventoryValue - adds r7, r0, #0 - movs r0, #0x3a - bl GetInventoryValue - adds r6, r0, #0 - movs r0, #0x3b - bl GetInventoryValue - adds r5, r0, #0 - cmp r7, #1 - bne _0806BA88 - ldr r0, _0806BA84 @ =0x00004906 - mov r8, r0 - str r7, [r4, #0x14] - b _0806BAA2 - .align 2, 0 -_0806BA84: .4byte 0x00004906 -_0806BA88: - cmp r6, #1 - bne _0806BA98 - ldr r0, _0806BA94 @ =0x00004907 - mov r8, r0 - str r6, [r4, #0x14] - b _0806BAA2 - .align 2, 0 -_0806BA94: .4byte 0x00004907 -_0806BA98: - cmp r5, #1 - bne _0806BAB4 - ldr r0, _0806BAB0 @ =0x00004908 - mov r8, r0 - str r5, [r4, #0x14] -_0806BAA2: - movs r0, #0x6b - bl SetLocalFlag - movs r0, #0x6a - bl SetLocalFlag - b _0806BB06 - .align 2, 0 -_0806BAB0: .4byte 0x00004908 -_0806BAB4: - movs r0, #0x6a - bl CheckLocalFlag - cmp r0, #0 - beq _0806BB06 - movs r0, #0x6b - bl CheckLocalFlag - cmp r0, #0 - bne _0806BAD0 - ldr r0, _0806BACC @ =0x00004901 - b _0806BAD6 - .align 2, 0 -_0806BACC: .4byte 0x00004901 -_0806BAD0: - cmp r7, #0 - bne _0806BAE4 - ldr r0, _0806BAE0 @ =0x00004902 -_0806BAD6: - mov r8, r0 - movs r0, #0x6b - bl SetLocalFlag - b _0806BB06 - .align 2, 0 -_0806BAE0: .4byte 0x00004902 -_0806BAE4: - cmp r6, #0 - bne _0806BAF8 - ldr r0, _0806BAF4 @ =0x00004903 - mov r8, r0 - movs r0, #0x6d - bl SetLocalFlag - b _0806BB06 - .align 2, 0 -_0806BAF4: .4byte 0x00004903 -_0806BAF8: - cmp r5, #0 - bne _0806BB06 - ldr r0, _0806BB18 @ =0x00004904 - mov r8, r0 - movs r0, #0x70 - bl SetLocalFlag -_0806BB06: - mov r0, r8 - mov r1, sb - bl TextboxNoOverlap - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806BB18: .4byte 0x00004904 - - thumb_func_start sub_0806BB1C -sub_0806BB1C: @ 0x0806BB1C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - movs r4, #1 - rsbs r4, r4, #0 - movs r0, #0x39 - bl GetInventoryValue - cmp r0, #1 - bne _0806BB34 - movs r4, #0x39 - b _0806BB52 -_0806BB34: - movs r0, #0x3a - bl GetInventoryValue - cmp r0, #1 - bne _0806BB42 - movs r4, #0x3a - b _0806BB52 -_0806BB42: - movs r0, #0x3b - bl GetInventoryValue - cmp r0, #1 - bne _0806BB4E - movs r4, #0x3b -_0806BB4E: - cmp r4, #0 - ble _0806BB78 -_0806BB52: - ldr r0, [r6, #4] - cmp r0, #0 - bne _0806BB70 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08095BE0 - adds r0, r5, #0 - movs r1, #0xc - bl InitializeAnimation - movs r0, #0xcd - bl SoundReq - b _0806BB78 -_0806BB70: - adds r0, r4, #0 - movs r1, #2 - bl sub_0807CAA0 -_0806BB78: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0806BB7C -sub_0806BB7C: @ 0x0806BB7C - push {r4, lr} - adds r4, r1, #0 - movs r0, #0 - str r0, [r4, #0x14] - movs r0, #0x39 - bl GetInventoryValue - cmp r0, #2 - bne _0806BBAC - movs r0, #0x3a - bl GetInventoryValue - cmp r0, #2 - bne _0806BBAC - movs r0, #0x3b - bl GetInventoryValue - cmp r0, #2 - bne _0806BBAC - movs r0, #0x73 - bl SetLocalFlag - movs r0, #1 - str r0, [r4, #0x14] -_0806BBAC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806BBB0 -sub_0806BBB0: @ 0x0806BBB0 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x46 - bl GetInventoryValue - cmp r0, #0 - bne _0806BBCC - movs r0, #0x29 - bl CheckGlobalFlag - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r1, r1, #0x1f - b _0806BBCE -_0806BBCC: - movs r1, #2 -_0806BBCE: - ldr r0, _0806BBE0 @ =gUnk_08113078 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r4, #0 - bl TextboxNoOverlap - pop {r4, pc} - .align 2, 0 -_0806BBE0: .4byte gUnk_08113078 diff --git a/asm/mama.s b/asm/mama.s deleted file mode 100644 index 252b21e6..00000000 --- a/asm/mama.s +++ /dev/null @@ -1,231 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Mama -Mama: @ 0x0806C39C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xc] - cmp r5, #1 - beq _0806C3E2 - cmp r5, #1 - bgt _0806C3B0 - cmp r5, #0 - beq _0806C3B6 - b _0806C450 -_0806C3B0: - cmp r5, #2 - beq _0806C436 - b _0806C450 -_0806C3B6: - adds r0, r4, #0 - bl sub_0806C454 - cmp r0, #0 - beq _0806C450 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xe] - strb r0, [r4, #0x14] - adds r0, r4, #0 - adds r0, #0x69 - strb r5, [r0] - adds r0, r4, #0 - bl sub_0807DD50 - b _0806C450 -_0806C3E2: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806C420 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x69 - strb r0, [r1] - ldr r1, _0806C41C @ =gPlayerEntity - adds r0, r4, #0 - bl GetFacingDirection - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl InitializeAnimation - adds r0, r4, #0 - bl sub_0806F118 - b _0806C450 - .align 2, 0 -_0806C41C: .4byte gPlayerEntity -_0806C420: - adds r0, r4, #0 - movs r1, #0 - bl ExecuteScriptForEntity - adds r0, r4, #0 - bl HandleEntity0x82Actions - adds r0, r4, #0 - bl GetNextFrame - b _0806C450 -_0806C436: - adds r0, r4, #0 - bl UpdateFuseInteraction - cmp r0, #0 - beq _0806C450 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - ldrb r1, [r0] - adds r0, r4, #0 - bl InitializeAnimation -_0806C450: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806C454 -sub_0806C454: @ 0x0806C454 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0806C470 @ =gUnk_08113754 - bl LoadExtraSpriteData - cmp r0, #0 - beq _0806C474 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - movs r0, #1 - b _0806C476 - .align 2, 0 -_0806C470: .4byte gUnk_08113754 -_0806C474: - movs r0, #0 -_0806C476: - pop {r4, pc} - - thumb_func_start Mama_Head -Mama_Head: @ 0x0806C478 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r2, #0x7f - ands r2, r0 - adds r0, r4, #0 - movs r1, #0 - bl SetExtraSpriteFrame - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl SetExtraSpriteFrame - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl SetSpriteSubEntryOffsetData1 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, pc} - - thumb_func_start sub_0806C4A8 -sub_0806C4A8: @ 0x0806C4A8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _0806C4D8 - adds r0, r4, #0 - bl GetAnimationState - adds r1, r0, #0 - cmp r1, #0 - bge _0806C4CC - movs r1, #3 -_0806C4CC: - lsls r0, r1, #1 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl InitAnimationForceUpdate - movs r0, #1 -_0806C4D8: - str r0, [r5, #0x14] - pop {r4, r5, pc} - - thumb_func_start sub_0806C4DC -sub_0806C4DC: @ 0x0806C4DC - push {lr} - ldr r1, _0806C4F0 @ =gSave - ldrb r1, [r1, #8] - lsls r1, r1, #3 - ldr r2, _0806C4F4 @ =gUnk_08113760 - adds r1, r1, r2 - bl ShowNPCDialogue - pop {pc} - .align 2, 0 -_0806C4F0: .4byte gSave -_0806C4F4: .4byte gUnk_08113760 - - thumb_func_start sub_0806C4F8 -sub_0806C4F8: @ 0x0806C4F8 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start Mama_Fusion -Mama_Fusion: @ 0x0806C510 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806C548 - adds r0, r4, #0 - bl sub_0806C454 - cmp r0, #0 - beq _0806C54E - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrh r0, [r4, #0x32] - subs r0, #4 - strh r0, [r4, #0x32] - adds r0, r4, #0 - movs r1, #2 - bl InitializeAnimation - b _0806C54E -_0806C548: - adds r0, r4, #0 - bl GetNextFrame -_0806C54E: - pop {r4, pc} diff --git a/asm/ministerPotho.s b/asm/ministerPotho.s deleted file mode 100644 index ea0d3c95..00000000 --- a/asm/ministerPotho.s +++ /dev/null @@ -1,251 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start MinisterPotho -MinisterPotho: @ 0x080667B0 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080667C6 - adds r0, r4, #0 - bl sub_08066864 - b _080667DC -_080667C6: - ldr r0, _080667E0 @ =gUnk_08110644 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0806ED78 -_080667DC: - pop {r4, pc} - .align 2, 0 -_080667E0: .4byte gUnk_08110644 - - thumb_func_start sub_080667E4 -sub_080667E4: @ 0x080667E4 - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #2 - bl InitAnimationForceUpdate - adds r0, r4, #0 - bl sub_08078778 - pop {r4, pc} - - thumb_func_start sub_08066808 -sub_08066808: @ 0x08066808 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x28 - movs r2, #0x28 - bl sub_0806ED9C - adds r1, r0, #0 - cmp r1, #0 - bge _0806681E - movs r1, #2 - b _08066834 -_0806681E: - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _0806682A - movs r0, #0x10 - strb r0, [r4, #0xf] - b _08066834 -_0806682A: - subs r0, #1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] -_08066834: - adds r0, r4, #0 - bl sub_0806F078 - cmp r0, #0 - bne _08066844 - adds r0, r4, #0 - bl UpdateAnimationSingleFrame -_08066844: - adds r2, r4, #0 - adds r2, #0x39 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0 - beq _08066858 - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r2] -_08066858: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806685C -sub_0806685C: @ 0x0806685C - movs r1, #1 - strb r1, [r0, #0xc] - bx lr - .align 2, 0 - - thumb_func_start sub_08066864 -sub_08066864: @ 0x08066864 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _080668A2 - cmp r0, #1 - bgt _08066878 - cmp r0, #0 - beq _0806687E - b _080668EC -_08066878: - cmp r0, #2 - beq _080668DE - b _080668EC -_0806687E: - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0807DD50 - b _080668EC -_080668A2: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _080668D4 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - ldr r1, _080668D0 @ =gPlayerEntity - adds r0, r4, #0 - bl GetFacingDirection - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl InitAnimationForceUpdate - adds r0, r4, #0 - bl sub_0806F118 - b _080668EC - .align 2, 0 -_080668D0: .4byte gPlayerEntity -_080668D4: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _080668EC -_080668DE: - adds r0, r4, #0 - bl UpdateFuseInteraction - cmp r0, #0 - beq _080668EC - movs r0, #1 - strb r0, [r4, #0xc] -_080668EC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080668F0 -sub_080668F0: @ 0x080668F0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08066904 -sub_08066904: @ 0x08066904 - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - bl CheckGlobalFlag - cmp r0, #0 - bne _08066916 - movs r1, #0 - b _08066932 -_08066916: - movs r0, #2 - bl GetInventoryValue - cmp r0, #0 - bne _08066924 - movs r1, #1 - b _08066932 -_08066924: - movs r0, #3 - bl GetInventoryValue - movs r1, #3 - cmp r0, #0 - bne _08066932 - movs r1, #2 -_08066932: - ldr r0, _08066944 @ =gUnk_08110650 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r4, #0 - bl TextboxNoOverlap - pop {r4, pc} - .align 2, 0 -_08066944: .4byte gUnk_08110650 - - thumb_func_start MinisterPotho_Fusion -MinisterPotho_Fusion: @ 0x08066948 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _0806696E - adds r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - adds r0, r2, #0 - movs r1, #6 - bl InitAnimationForceUpdate - b _08066974 -_0806696E: - adds r0, r2, #0 - bl UpdateAnimationSingleFrame -_08066974: - pop {pc} - .align 2, 0 diff --git a/asm/mountainMinish.s b/asm/mountainMinish.s deleted file mode 100644 index 3b8e7e7f..00000000 --- a/asm/mountainMinish.s +++ /dev/null @@ -1,587 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start MountainMinish -MountainMinish: @ 0x08067E2C - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08067E58 - ldr r0, _08067E54 @ =gUnk_08111368 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0806ED78 - b _08067E5E - .align 2, 0 -_08067E54: .4byte gUnk_08111368 -_08067E58: - adds r0, r4, #0 - bl sub_08067EF0 -_08067E5E: - pop {r4, pc} - - thumb_func_start sub_08067E60 -sub_08067E60: @ 0x08067E60 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08067E84 @ =gUnk_08111358 - bl LoadExtraSpriteData - cmp r0, #0 - beq _08067E80 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_08078778 - adds r0, r4, #0 - movs r1, #2 - bl InitializeAnimation -_08067E80: - pop {r4, pc} - .align 2, 0 -_08067E84: .4byte gUnk_08111358 - - thumb_func_start sub_08067E88 -sub_08067E88: @ 0x08067E88 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x28 - movs r2, #0x28 - bl sub_0806ED9C - adds r1, r0, #0 - cmp r1, #0 - bge _08067E9E - movs r1, #2 - b _08067EB4 -_08067E9E: - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _08067EAA - movs r0, #0x10 - strb r0, [r4, #0xf] - b _08067EB4 -_08067EAA: - subs r0, #1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] -_08067EB4: - adds r0, r4, #0 - bl sub_0806F078 - cmp r0, #0 - bne _08067EC4 - adds r0, r4, #0 - bl GetNextFrame -_08067EC4: - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08067EE4 - movs r0, #0 - strb r0, [r1] - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xe] - movs r1, #0x90 - lsls r1, r1, #5 - adds r0, r0, r1 - bl TextboxNoOverlapFollow -_08067EE4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08067EE8 -sub_08067EE8: @ 0x08067EE8 - movs r1, #1 - strb r1, [r0, #0xc] - bx lr - .align 2, 0 - - thumb_func_start sub_08067EF0 -sub_08067EF0: @ 0x08067EF0 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldrb r4, [r5, #0xc] - cmp r4, #1 - beq _08067F58 - cmp r4, #1 - bgt _08067F04 - cmp r4, #0 - beq _08067F10 - b _0806801A -_08067F04: - cmp r4, #2 - beq _08067FDC - cmp r4, #3 - bne _08067F0E - b _08068000 -_08067F0E: - b _0806801A -_08067F10: - ldr r1, _08067F50 @ =gUnk_08111358 - adds r0, r5, #0 - bl LoadExtraSpriteData - cmp r0, #0 - bne _08067F1E - b _080680F0 -_08067F1E: - 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] - strb r0, [r5, #0x14] - adds r0, r5, #0 - adds r0, #0x69 - strb r4, [r0] - adds r0, r5, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r5, #0 - bl sub_0807DD50 - ldr r1, _08067F54 @ =gUnk_08111304 - ldrb r0, [r5, #0xb] - adds r0, r0, r1 - ldrb r1, [r0] - b _08067FF2 - .align 2, 0 -_08067F50: .4byte gUnk_08111358 -_08067F54: .4byte gUnk_08111304 -_08067F58: - adds r4, r5, #0 - adds r4, #0x39 - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #2 - bne _08067F98 - movs r1, #0 - movs r0, #3 - strb r0, [r5, #0xc] - strb r1, [r4] - adds r0, r5, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r1, r5, #0 - adds r1, #0x69 - strb r0, [r1] - ldr r1, _08067F94 @ =gPlayerEntity - adds r0, r5, #0 - bl GetFacingDirection - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r5, #0 - bl InitializeAnimation - adds r0, r5, #0 - bl sub_0806F118 - b _0806801A - .align 2, 0 -_08067F94: .4byte gPlayerEntity -_08067F98: - adds r0, r5, #0 - movs r1, #0 - bl ExecuteScriptForEntity - adds r0, r5, #0 - bl HandleEntity0x82Actions - ldrb r0, [r5, #0xb] - cmp r0, #3 - bne _0806801A - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #0 - beq _0806801A - movs r1, #0 - movs r0, #2 - strb r0, [r5, #0xc] - strb r1, [r4] - ldr r1, _08067FD8 @ =gPlayerEntity - adds r0, r5, #0 - bl GetFacingDirection - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r5, #0 - bl InitializeAnimation - adds r0, r5, #0 - bl sub_08068190 - b _0806801A - .align 2, 0 -_08067FD8: .4byte gPlayerEntity -_08067FDC: - ldr r0, _08067FFC @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0806801A - movs r0, #1 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x14] - lsrs r1, r1, #1 - adds r1, #4 -_08067FF2: - adds r0, r5, #0 - bl InitializeAnimation - b _0806801A - .align 2, 0 -_08067FFC: .4byte gTextBox -_08068000: - adds r0, r5, #0 - bl UpdateFuseInteraction - cmp r0, #0 - beq _0806801A - movs r0, #1 - strb r0, [r5, #0xc] - adds r0, r5, #0 - adds r0, #0x69 - ldrb r1, [r0] - adds r0, r5, #0 - bl InitializeAnimation -_0806801A: - adds r0, r5, #0 - adds r0, #0x59 - ldrb r1, [r0] - adds r7, r0, #0 - cmp r1, #0xff - beq _0806802C - adds r0, r5, #0 - bl GetNextFrame -_0806802C: - adds r1, r5, #0 - adds r1, #0x5b - ldrb r2, [r1] - movs r0, #1 - ands r0, r2 - adds r6, r1, #0 - cmp r0, #0 - beq _0806807E - movs r0, #0xfe - ands r0, r2 - strb r0, [r6] - adds r0, r5, #0 - bl sub_080040A8 - cmp r0, #0 - bne _08068068 - ldr r4, _08068064 @ =gUnk_0811137A - bl Random - movs r1, #3 - bl __modsi3 - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r0, [r0] - bl SoundReq - b _0806807E - .align 2, 0 -_08068064: .4byte gUnk_0811137A -_08068068: - ldr r4, _080680F4 @ =gUnk_08111374 - bl Random - movs r1, #3 - bl __modsi3 - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r0, [r0] - bl EnqueueSFX -_0806807E: - ldrb r1, [r6] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080680A8 - movs r0, #0xfd - ands r0, r1 - strb r0, [r6] - adds r0, r5, #0 - movs r1, #4 - movs r2, #0 - bl CreateFx - adds r1, r0, #0 - cmp r1, #0 - beq _080680A8 - ldr r3, _080680F8 @ =0xFFE80000 - adds r0, r5, #0 - movs r2, #0 - bl PositionRelative -_080680A8: - ldrb r1, [r6] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080680D2 - movs r0, #0xfb - ands r0, r1 - strb r0, [r6] - adds r0, r5, #0 - movs r1, #0x3d - movs r2, #0x20 - bl CreateFx - adds r1, r0, #0 - cmp r1, #0 - beq _080680D2 - ldr r2, _080680FC @ =0xFFEC0000 - ldr r3, _08068100 @ =0xFFF60000 - adds r0, r5, #0 - bl PositionRelative -_080680D2: - ldrb r1, [r6] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080680F0 - movs r0, #0xf7 - ands r0, r1 - strb r0, [r6] - bl Random - movs r1, #0x1f - ands r0, r1 - ldrb r1, [r7] - adds r0, r0, r1 - strb r0, [r7] -_080680F0: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080680F4: .4byte gUnk_08111374 -_080680F8: .4byte 0xFFE80000 -_080680FC: .4byte 0xFFEC0000 -_08068100: .4byte 0xFFF60000 - - thumb_func_start sub_08068104 -sub_08068104: @ 0x08068104 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806811C -sub_0806811C: @ 0x0806811C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - adds r7, r0, #0 - cmp r7, #0 - beq _0806812E - subs r0, #1 - strb r0, [r4, #0xe] - b _0806818A -_0806812E: - movs r0, #2 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0x20 - movs r2, #0x20 - bl sub_0806EDD8 - adds r3, r0, #0 - cmp r3, #0 - bge _08068148 - ldrb r0, [r4, #0xa] - strb r0, [r4, #0x14] - lsls r3, r0, #2 -_08068148: - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #5 - asrs r1, r3, #1 - lsls r1, r1, #1 - ldr r2, _0806818C @ =gUnk_08111284 - adds r1, r1, r2 - adds r0, r0, r1 - ldrb r6, [r0] - ldrb r5, [r0, #1] - movs r0, #0x80 - ands r0, r5 - cmp r0, #0 - beq _0806816C - adds r0, r3, #0 - bl sub_0806F5B0 - strb r0, [r4, #0x14] -_0806816C: - movs r0, #0x40 - orrs r6, r0 - adds r0, r4, #0 - adds r0, #0x5a - strb r6, [r0] - movs r0, #0x7f - ands r5, r0 - strb r5, [r4, #0x1e] - adds r0, r4, #0 - adds r0, #0x58 - strb r7, [r0] - adds r1, r4, #0 - adds r1, #0x59 - movs r0, #0xff - strb r0, [r1] -_0806818A: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806818C: .4byte gUnk_08111284 - - thumb_func_start sub_08068190 -sub_08068190: @ 0x08068190 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldrb r5, [r6, #0xb] - cmp r5, #8 - bls _0806819C - movs r5, #8 -_0806819C: - movs r0, #0x7e - bl CheckLocalFlag - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r4, r1, #0x1f - movs r0, #0x41 - bl GetInventoryValue - cmp r0, #0 - beq _080681B4 - movs r4, #2 -_080681B4: - movs r0, #2 - bl GetInventoryValue - cmp r0, #0 - beq _080681C0 - movs r4, #3 -_080681C0: - ldr r2, _080681D4 @ =gUnk_0811130E - lsls r0, r4, #1 - lsls r1, r5, #3 - adds r0, r0, r1 - adds r0, r0, r2 - ldrh r0, [r0] - adds r1, r6, #0 - bl TextboxNoOverlap - pop {r4, r5, r6, pc} - .align 2, 0 -_080681D4: .4byte gUnk_0811130E - - thumb_func_start sub_080681D8 -sub_080681D8: @ 0x080681D8 - ldr r1, [r1, #4] - strb r1, [r0, #0xa] - bx lr - .align 2, 0 - - thumb_func_start MountainMinish_Head -MountainMinish_Head: @ 0x080681E0 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x5a - ldrb r4, [r0] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r4, r0 - ldrb r2, [r5, #0x1e] - adds r0, r5, #0 - movs r1, #1 - bl SetExtraSpriteFrame - movs r0, #0x40 - ands r0, r4 - cmp r0, #0 - beq _08068226 - movs r0, #0xe1 - rsbs r0, r0, #0 - ands r4, r0 - adds r2, r4, #4 - adds r0, r5, #0 - movs r1, #0 - bl SetExtraSpriteFrame - adds r0, r5, #0 - movs r1, #2 - movs r2, #0xff - bl SetExtraSpriteFrame - adds r0, r5, #0 - movs r1, #1 - movs r2, #0 - bl SetSpriteSubEntryOffsetData1 - b _08068268 -_08068226: - movs r0, #0x20 - ands r0, r4 - cmp r0, #0 - beq _08068254 - adds r0, r5, #0 - movs r1, #0 - movs r2, #0xff - bl SetExtraSpriteFrame - movs r0, #0xe1 - rsbs r0, r0, #0 - ands r4, r0 - adds r0, r5, #0 - movs r1, #2 - adds r2, r4, #0 - bl SetExtraSpriteFrame - adds r0, r5, #0 - movs r1, #1 - movs r2, #2 - bl SetSpriteSubEntryOffsetData1 - b _08068268 -_08068254: - adds r0, r5, #0 - movs r1, #0 - movs r2, #0xff - bl SetExtraSpriteFrame - adds r0, r5, #0 - movs r1, #2 - movs r2, #0xff - bl SetExtraSpriteFrame -_08068268: - adds r0, r5, #0 - bl sub_0807000C - pop {r4, r5, pc} - - thumb_func_start MountainMinish_Fusion -MountainMinish_Fusion: @ 0x08068270 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080682A8 - ldr r1, _080682A4 @ =gUnk_08111358 - adds r0, r4, #0 - bl LoadExtraSpriteData - cmp r0, #0 - beq _080682AE - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #6 - bl InitializeAnimation - b _080682AE - .align 2, 0 -_080682A4: .4byte gUnk_08111358 -_080682A8: - adds r0, r4, #0 - bl GetNextFrame -_080682AE: - pop {r4, pc} diff --git a/asm/non_matching/CreateItemDrop.inc b/asm/non_matching/CreateItemDrop.inc index d84a8817..1ade408f 100644 --- a/asm/non_matching/CreateItemDrop.inc +++ b/asm/non_matching/CreateItemDrop.inc @@ -1,5 +1,4 @@ .syntax unified -CreateItemDrop: @ 0x08054754 push {r4, r5, r6, lr} adds r6, r0, #0 adds r4, r1, #0 diff --git a/asm/non_matching/ForceEquipItem.inc b/asm/non_matching/ForceEquipItem.inc index e12f3ea5..82b1212c 100644 --- a/asm/non_matching/ForceEquipItem.inc +++ b/asm/non_matching/ForceEquipItem.inc @@ -1,7 +1,5 @@ .syntax unified .text - -ForceEquipItem: @ 0x08054414 push {r4, r5, r6, r7, lr} adds r4, r0, #0 subs r0, r4, #1 diff --git a/asm/non_matching/bigGoron/sub_0806D02C.inc b/asm/non_matching/bigGoron/sub_0806D02C.inc new file mode 100644 index 00000000..61ecbbf4 --- /dev/null +++ b/asm/non_matching/bigGoron/sub_0806D02C.inc @@ -0,0 +1,74 @@ + .syntax unified + push {lr} + bl sub_0806D164 + ldr r2, _0806D0A8 @ =gScreen + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #7 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + adds r1, r2, #0 + adds r1, #0x60 + ldr r0, _0806D0AC @ =0x00003F3F + strh r0, [r1] + adds r1, #2 + movs r0, #0x3d + strh r0, [r1] + movs r1, #0x16 + ldrsh r0, [r2, r1] + rsbs r0, r0, #0 + movs r3, #0x80 + lsls r3, r3, #1 + adds r1, r0, r3 + cmp r0, #0 + bge _0806D060 + movs r0, #0 +_0806D060: + cmp r0, #0xf0 + ble _0806D066 + movs r0, #0xf0 +_0806D066: + cmp r1, #0 + bge _0806D06C + movs r1, #0 +_0806D06C: + cmp r1, #0xf0 + ble _0806D072 + movs r1, #0xf0 +_0806D072: + lsls r0, r0, #8 + orrs r0, r1 + adds r1, r2, #0 + adds r1, #0x5a + strh r0, [r1] + movs r1, #0x18 + ldrsh r0, [r2, r1] + rsbs r0, r0, #0 + adds r1, r0, r3 + cmp r0, #0 + bge _0806D08A + movs r0, #0 +_0806D08A: + cmp r0, #0xa0 + ble _0806D090 + movs r0, #0xa0 +_0806D090: + cmp r1, #0 + bge _0806D096 + movs r1, #0 +_0806D096: + cmp r1, #0xa0 + ble _0806D09C + movs r1, #0xa0 +_0806D09C: + lsls r0, r0, #8 + orrs r0, r1 + adds r1, r2, #0 + adds r1, #0x5e + strh r0, [r1] + pop {pc} + .align 2, 0 +_0806D0A8: .4byte gScreen +_0806D0AC: .4byte 0x00003F3F + .syntax divided diff --git a/asm/non_matching/bigGoron/sub_0806D138.inc b/asm/non_matching/bigGoron/sub_0806D138.inc new file mode 100644 index 00000000..d519da48 --- /dev/null +++ b/asm/non_matching/bigGoron/sub_0806D138.inc @@ -0,0 +1,23 @@ + .syntax unified + push {r4, r5, r6, lr} + adds r3, r0, #0 + movs r4, #0 + ldr r2, _0806D15C @ =0x040000D4 + ldr r6, _0806D160 @ =0x80000020 + movs r5, #0x80 + lsls r5, r5, #1 +_0806D146: + str r3, [r2] + str r1, [r2, #4] + str r6, [r2, #8] + ldr r0, [r2, #8] + adds r4, #1 + adds r3, #0x40 + adds r1, r1, r5 + cmp r4, #0x1f + bls _0806D146 + pop {r4, r5, r6, pc} + .align 2, 0 +_0806D15C: .4byte 0x040000D4 +_0806D160: .4byte 0x80000020 + .syntax divided diff --git a/asm/non_matching/bigGoron/sub_0806D164.inc b/asm/non_matching/bigGoron/sub_0806D164.inc new file mode 100644 index 00000000..118f34fe --- /dev/null +++ b/asm/non_matching/bigGoron/sub_0806D164.inc @@ -0,0 +1,52 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + ldr r5, _0806D1B8 @ =gRoomControls + movs r1, #0xa + ldrsh r2, [r5, r1] + movs r3, #0x2e + ldrsh r1, [r0, r3] + subs r2, r2, r1 + adds r2, #0xa0 + ldr r4, _0806D1BC @ =gScreen + movs r3, #0xf + adds r1, r2, #0 + ands r1, r3 + strh r1, [r4, #0x16] + ldrh r1, [r5, #0xc] + ldrh r0, [r0, #0x32] + subs r1, r1, r0 + adds r1, #0xb0 + strh r1, [r4, #0x18] + ldr r3, _0806D1C0 @ =gUnk_02006F00 + ldr r0, _0806D1C4 @ =0xFFFFC000 + adds r6, r3, r0 + movs r5, #0x20 + lsrs r2, r2, #4 + lsls r2, r2, #2 + adds r3, r2, r3 + adds r7, r4, #0 + ldr r1, _0806D1C8 @ =0x040000D4 + ldr r4, _0806D1CC @ =0x80000020 + movs r2, #0x80 + lsls r2, r2, #1 +_0806D1A0: + str r3, [r1] + str r6, [r1, #4] + str r4, [r1, #8] + ldr r0, [r1, #8] + adds r3, r3, r2 + adds r6, #0x40 + subs r5, #1 + cmp r5, #0 + bne _0806D1A0 + movs r0, #1 + strh r0, [r7, #0x1a] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806D1B8: .4byte gRoomControls +_0806D1BC: .4byte gScreen +_0806D1C0: .4byte gUnk_02006F00 +_0806D1C4: .4byte 0xFFFFC000 +_0806D1C8: .4byte 0x040000D4 +_0806D1CC: .4byte 0x80000020 + .syntax divided diff --git a/asm/non_matching/bigGoron/sub_0806D1D0.inc b/asm/non_matching/bigGoron/sub_0806D1D0.inc new file mode 100644 index 00000000..07de3c4b --- /dev/null +++ b/asm/non_matching/bigGoron/sub_0806D1D0.inc @@ -0,0 +1,87 @@ + .syntax unified + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #0 + bne _0806D21A + bl sub_0806D00C + cmp r0, #0 + bne _0806D1E6 + bl DeleteThisEntity +_0806D1E6: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x1b] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + 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] + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + strb r5, [r4, #0x1e] + movs r0, #0x1e + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_0806D21A: + ldrb r0, [r4, #0xd] + cmp r0, #1 + beq _0806D25A + cmp r0, #1 + ble _0806D228 + cmp r0, #2 + beq _0806D25E +_0806D228: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r5, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806D24A + bl Random + movs r1, #0x7f + ands r0, r1 + adds r0, #0x30 + strb r0, [r4, #0xe] + movs r0, #8 + strb r0, [r4, #0xf] + movs r0, #1 + strb r0, [r4, #0x1e] +_0806D24A: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0806D268 + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r5 + cmp r0, #0 + bne _0806D268 +_0806D25A: + strb r0, [r4, #0x1e] + b _0806D268 +_0806D25E: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_0806D268: + ldr r0, [r4, #0x50] + ldrh r1, [r0, #0x2e] + strh r1, [r4, #0x2e] + ldrh r0, [r0, #0x32] + strh r0, [r4, #0x32] + pop {r4, r5, pc} + .syntax divided diff --git a/asm/non_matching/bigGoron/sub_0806D520.inc b/asm/non_matching/bigGoron/sub_0806D520.inc new file mode 100644 index 00000000..f02c64da --- /dev/null +++ b/asm/non_matching/bigGoron/sub_0806D520.inc @@ -0,0 +1,96 @@ + .syntax unified + push {r4, lr} + adds r4, r0, #0 + adds r3, r1, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806D540 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0806D5B0 @ =gUnk_08114100 + adds r0, r3, r0 + ldrb r0, [r0] + adds r0, #6 + strb r0, [r4, #0xf] + strb r0, [r4, #0x1e] + movs r0, #8 + strb r0, [r4, #0xe] +_0806D540: + ldr r0, [r4, #0x50] + ldrh r1, [r0, #0x2e] + strh r1, [r4, #0x2e] + ldrh r1, [r0, #0x32] + strh r1, [r4, #0x32] + adds r0, #0x62 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x62 + strb r0, [r1] + ldr r0, [r4, #0x50] + adds r0, #0x63 + ldrb r0, [r0] + adds r1, #1 + strb r0, [r1] + ldr r0, [r4, #0x50] + ldrb r1, [r0, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r4, #0x1b] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0806D590 + movs r1, #0x2e + ldrsh r0, [r4, r1] + lsls r1, r3, #4 + subs r0, r0, r1 + adds r0, #0xc + movs r2, #0x32 + ldrsh r1, [r4, r2] + movs r2, #0x18 + movs r3, #0x40 + bl CheckPlayerProximity + cmp r0, #0 + beq _0806D5B4 +_0806D590: + ldrb r1, [r4, #0x1e] + ldrb r0, [r4, #0xf] + adds r0, #2 + cmp r1, r0 + bge _0806D5D0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806D5D0 + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x1e] + adds r0, #1 + b _0806D5CE + .align 2, 0 +_0806D5B0: .4byte gUnk_08114100 +_0806D5B4: + ldrb r1, [r4, #0x1e] + ldrb r0, [r4, #0xf] + cmp r1, r0 + bls _0806D5D0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806D5D0 + movs r0, #8 + strb r0, [r4, #0xe] + subs r0, r1, #1 +_0806D5CE: + strb r0, [r4, #0x1e] +_0806D5D0: + pop {r4, pc} + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/bigGoron/sub_0806D5D4.inc b/asm/non_matching/bigGoron/sub_0806D5D4.inc new file mode 100644 index 00000000..82655104 --- /dev/null +++ b/asm/non_matching/bigGoron/sub_0806D5D4.inc @@ -0,0 +1,21 @@ + .syntax unified + push {lr} + bl sub_08053500 + movs r0, #0xd + bl IsItemEquipped + adds r1, r0, #0 + cmp r1, #2 + beq _0806D5F0 + ldr r0, _0806D5FC @ =gSave + adds r0, #0xb4 + adds r0, r1, r0 + movs r1, #0 + strb r1, [r0] +_0806D5F0: + movs r0, #0xd + movs r1, #0 + bl sub_0807CAA0 + pop {pc} + .align 2, 0 +_0806D5FC: .4byte gSave + .syntax divided diff --git a/asm/non_matching/bigGoron/sub_0806D67C.inc b/asm/non_matching/bigGoron/sub_0806D67C.inc new file mode 100644 index 00000000..0f5a1113 --- /dev/null +++ b/asm/non_matching/bigGoron/sub_0806D67C.inc @@ -0,0 +1,46 @@ + .syntax unified + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r4, _0806D6CC @ =gUnk_08114104 + movs r0, #0 + ldrsb r0, [r4, r0] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _0806D6CA + adds r6, r1, #0 +_0806D690: + movs r1, #0 + ldrsb r1, [r4, r1] + adds r0, r5, #0 + movs r2, #0x40 + bl CreateFx + adds r1, r0, #0 + cmp r1, #0 + beq _0806D6C0 + movs r0, #1 + ldrsb r0, [r4, r0] + ldrh r2, [r1, #0x2e] + adds r0, r0, r2 + strh r0, [r1, #0x2e] + movs r0, #2 + ldrsb r0, [r4, r0] + ldrh r2, [r1, #0x32] + adds r0, r0, r2 + strh r0, [r1, #0x32] + ldrb r0, [r4, #3] + strb r0, [r1, #0x15] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r1, #0x24] +_0806D6C0: + adds r4, #4 + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, r6 + bne _0806D690 +_0806D6CA: + pop {r4, r5, r6, pc} + .align 2, 0 +_0806D6CC: .4byte gUnk_08114104 + .syntax divided diff --git a/asm/non_matching/brocco/sub_08063584.inc b/asm/non_matching/brocco/sub_08063584.inc new file mode 100644 index 00000000..25e669f5 --- /dev/null +++ b/asm/non_matching/brocco/sub_08063584.inc @@ -0,0 +1,64 @@ + .syntax unified + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x20 + movs r2, #0x20 + bl sub_0806ED9C + cmp r0, #0 + blt _080635B2 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _080635B8 + bl Random + movs r1, #0x3f + ands r1, r0 + cmp r1, #0 + bne _080635B2 + movs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0 + bl InitAnimationForceUpdate +_080635B2: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _080635D0 +_080635B8: + 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 _080635D0 + movs r0, #0 + strb r0, [r4, #0xf] +_080635D0: + adds r0, r4, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _080635FC + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl GetAnimationState + adds r1, r0, #0 + adds r1, #4 + adds r0, r4, #0 + bl InitAnimationForceUpdate + ldrb r0, [r4, #0xe] + ldr r1, _08063604 @ =0x00000A01 + adds r0, r0, r1 + bl TextboxNoOverlapFollow +_080635FC: + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + .align 2, 0 +_08063604: .4byte 0x00000A01 + .syntax divided diff --git a/asm/non_matching/button/sub_08081E6C.inc b/asm/non_matching/button/sub_08081E6C.inc index d5774f1c..179e601a 100644 --- a/asm/non_matching/button/sub_08081E6C.inc +++ b/asm/non_matching/button/sub_08081E6C.inc @@ -1,5 +1,4 @@ -sub_08081E6C: @ 0x08081E6C push {r4, r5, r6, r7, lr} add r4, r0, #0 add r0, #0x74 diff --git a/asm/non_matching/castleMaid/sub_08064570.inc b/asm/non_matching/castleMaid/sub_08064570.inc new file mode 100644 index 00000000..abcae064 --- /dev/null +++ b/asm/non_matching/castleMaid/sub_08064570.inc @@ -0,0 +1,105 @@ + .syntax unified + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #1 + beq _080645EA + cmp r5, #1 + bgt _08064584 + cmp r5, #0 + beq _0806458A + b _0806463C +_08064584: + cmp r5, #2 + beq _0806462C + b _0806463C +_0806458A: + ldrb r1, [r4, #9] + movs r0, #0x16 + eors r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080645D0 @ =gUnk_0810F874 + adds r1, r1, r0 + adds r0, r4, #0 + bl LoadExtraSpriteData + cmp r0, #0 + beq _0806463C + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + strb r5, [r4, #0xe] + adds r0, r4, #0 + bl sub_0805ACC0 + adds r2, r0, #0 + cmp r2, #0 + bne _080645D4 + ldrh r0, [r4, #0x2e] + adds r1, r4, #0 + adds r1, #0x6c + strh r0, [r1] + ldrh r0, [r4, #0x32] + adds r1, #2 + strh r0, [r1] + b _080645E0 + .align 2, 0 +_080645D0: .4byte gUnk_0810F874 +_080645D4: + lsrs r1, r2, #0x10 + adds r0, r4, #0 + adds r0, #0x6c + strh r1, [r0] + adds r0, #2 + strh r2, [r0] +_080645E0: + movs r0, #0 + str r0, [r4, #0x68] + adds r0, r4, #0 + bl sub_0807DD50 +_080645EA: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + adds r2, r4, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + beq _0806463C + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r1, #0 + strb r0, [r4, #0xc] + strb r1, [r2] + ldr r1, _08064628 @ =gPlayerEntity + adds r0, r4, #0 + bl GetFacingDirection + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl InitializeAnimation + ldr r0, [r4, #0x68] + cmp r0, #0 + beq _0806463C + bl _call_via_r0 + b _0806463C + .align 2, 0 +_08064628: .4byte gPlayerEntity +_0806462C: + ldr r0, _08064640 @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0806463C + movs r0, #1 + strb r0, [r4, #0xc] +_0806463C: + pop {r4, r5, pc} + .align 2, 0 +_08064640: .4byte gTextBox + .syntax divided diff --git a/asm/non_matching/castleMaid/sub_080646A4.inc b/asm/non_matching/castleMaid/sub_080646A4.inc new file mode 100644 index 00000000..a14b2422 --- /dev/null +++ b/asm/non_matching/castleMaid/sub_080646A4.inc @@ -0,0 +1,127 @@ + .syntax unified + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r5, #0x18] + cmp r0, #0 + bne _08064710 + adds r0, #1 + strb r0, [r5, #0x18] + bl Random + movs r1, #0x3f + ands r0, r1 + adds r0, #0x20 + strh r0, [r5, #0x12] + bl Random + adds r1, r0, #0 + movs r0, #0x18 + ands r1, r0 + ldrb r0, [r4, #0x15] + cmp r0, #8 + beq _080646EC + cmp r0, #8 + bgt _080646DA + cmp r0, #0 + beq _080646E4 + b _08064702 +_080646DA: + cmp r0, #0x10 + beq _080646F4 + cmp r0, #0x18 + beq _080646FC + b _08064702 +_080646E4: + cmp r1, #0x10 + bne _08064702 + movs r1, #8 + b _08064702 +_080646EC: + cmp r1, #0x18 + bne _08064702 + movs r1, #0x10 + b _08064702 +_080646F4: + cmp r1, #0 + bne _08064702 + movs r1, #0x18 + b _08064702 +_080646FC: + cmp r1, #8 + bne _08064702 + movs r1, #0 +_08064702: + strb r1, [r4, #0x15] + adds r0, r1, #0 + bl sub_0806F5B0 + strb r0, [r4, #0x14] + movs r0, #0x80 + strh r0, [r4, #0x24] +_08064710: + ldr r0, [r5, #8] + movs r1, #2 + orrs r0, r1 + str r0, [r5, #8] + adds r0, r4, #0 + bl ProcessMovement + movs r0, #0x2e + ldrsh r1, [r4, r0] + adds r2, r4, #0 + adds r2, #0x6c + movs r3, #0 + ldrsh r0, [r2, r3] + subs r1, r1, r0 + cmp r1, #0x10 + ble _0806473A + ldrh r0, [r2] + adds r0, #0x10 + strh r0, [r4, #0x2e] + movs r0, #1 + strh r0, [r5, #0x12] +_0806473A: + movs r3, #0x10 + rsbs r3, r3, #0 + cmp r1, r3 + bge _0806474C + ldrh r0, [r2] + subs r0, #0x10 + strh r0, [r4, #0x2e] + movs r0, #1 + strh r0, [r5, #0x12] +_0806474C: + movs r6, #0x32 + ldrsh r1, [r4, r6] + adds r2, r4, #0 + adds r2, #0x6e + movs r6, #0 + ldrsh r0, [r2, r6] + subs r1, r1, r0 + cmp r1, #0x10 + ble _08064768 + ldrh r0, [r2] + adds r0, #0x10 + strh r0, [r4, #0x32] + movs r0, #1 + strh r0, [r5, #0x12] +_08064768: + cmp r1, r3 + bge _08064776 + ldrh r0, [r2] + subs r0, #0x10 + strh r0, [r4, #0x32] + movs r0, #1 + strh r0, [r5, #0x12] +_08064776: + ldrh r0, [r5, #0x12] + subs r0, #1 + strh r0, [r5, #0x12] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08064788 + ldr r1, _0806478C @ =gActiveScriptInfo + movs r0, #0 + strb r0, [r1, #6] +_08064788: + pop {r4, r5, r6, pc} + .align 2, 0 +_0806478C: .4byte gActiveScriptInfo + .syntax divided diff --git a/asm/non_matching/castorWildsStatue/sub_080675D4.inc b/asm/non_matching/castorWildsStatue/sub_080675D4.inc new file mode 100644 index 00000000..f47dc575 --- /dev/null +++ b/asm/non_matching/castorWildsStatue/sub_080675D4.inc @@ -0,0 +1,131 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + ldr r5, _080676D0 @ =gUnk_08110E78 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r7, r0, #0 + subs r7, #0xc + movs r0, #0x3f + mov r8, r0 + movs r6, #8 +_080675EC: + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFx + adds r3, r0, #0 + cmp r3, #0 + beq _08067646 + movs r0, #0 + ldrsb r0, [r5, r0] + ldrh r1, [r3, #0x2e] + adds r0, r0, r1 + strh r0, [r3, #0x2e] + movs r0, #1 + ldrsb r0, [r5, r0] + ldrh r1, [r3, #0x32] + adds r0, r0, r1 + strh r0, [r3, #0x32] + strh r7, [r3, #0x36] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r3, #0 + adds r0, #0x38 + strb r1, [r0] + ldrb r1, [r4, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r3, #0x1b] + mov r0, r8 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x1b] + ldrb r1, [r4, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r3, #0x19] + mov r0, r8 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x19] + adds r0, r4, #0 + adds r1, r3, #0 + bl ResolveEntityOnTop +_08067646: + subs r6, #1 + adds r5, #2 + cmp r6, #0 + bge _080675EC + ldr r5, _080676D4 @ =gUnk_08110E8A + movs r0, #0x3f + mov r8, r0 + movs r6, #3 +_08067656: + adds r0, r4, #0 + movs r1, #4 + movs r2, #0 + bl CreateFx + adds r3, r0, #0 + cmp r3, #0 + beq _080676B0 + movs r0, #0 + ldrsb r0, [r5, r0] + ldrh r1, [r3, #0x2e] + adds r0, r0, r1 + strh r0, [r3, #0x2e] + movs r0, #1 + ldrsb r0, [r5, r0] + ldrh r1, [r3, #0x32] + adds r0, r0, r1 + strh r0, [r3, #0x32] + strh r7, [r3, #0x36] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r3, #0 + adds r0, #0x38 + strb r1, [r0] + ldrb r1, [r4, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r3, #0x1b] + mov r0, r8 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x1b] + ldrb r1, [r4, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r3, #0x19] + mov r0, r8 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x19] + adds r0, r4, #0 + adds r1, r3, #0 + bl ResolveEntityOnTop +_080676B0: + subs r6, #1 + adds r5, #2 + cmp r6, #0 + bge _08067656 + ldrb r0, [r4, #0xd] + cmp r0, #2 + bls _080676C8 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_080676C8: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080676D0: .4byte gUnk_08110E78 +_080676D4: .4byte gUnk_08110E8A + .syntax divided diff --git a/asm/non_matching/castorWildsStatue/sub_080676E0.inc b/asm/non_matching/castorWildsStatue/sub_080676E0.inc new file mode 100644 index 00000000..dbf35d08 --- /dev/null +++ b/asm/non_matching/castorWildsStatue/sub_080676E0.inc @@ -0,0 +1,63 @@ + .syntax unified + push {lr} + adds r3, r0, #0 + adds r2, r1, #0 + ldrb r0, [r2, #0x18] + cmp r0, #1 + beq _08067706 + cmp r0, #1 + bgt _080676F6 + cmp r0, #0 + beq _080676FC + b _08067734 +_080676F6: + cmp r0, #2 + beq _08067722 + b _08067734 +_080676FC: + movs r0, #1 + strb r0, [r2, #0x18] + movs r0, #0x20 + strb r0, [r2, #0x19] + b _08067742 +_08067706: + ldrb r1, [r2, #0x19] + lsrs r0, r1, #1 + subs r0, #0x10 + strh r0, [r3, #0x36] + subs r1, #1 + strb r1, [r2, #0x19] + lsls r1, r1, #0x18 + cmp r1, #0 + bne _08067742 + movs r0, #2 + strb r0, [r2, #0x18] + movs r0, #0x24 + strb r0, [r2, #0x19] + b _08067742 +_08067722: + ldrb r0, [r2, #0x19] + subs r0, #1 + strb r0, [r2, #0x19] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08067742 + movs r0, #3 + strb r0, [r2, #0x18] + b _08067742 +_08067734: + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r3, #0 + bl sub_08003FC4 + cmp r0, #0 + beq _08067748 +_08067742: + ldr r1, _0806774C @ =gActiveScriptInfo + movs r0, #0 + strb r0, [r1, #6] +_08067748: + pop {pc} + .align 2, 0 +_0806774C: .4byte gActiveScriptInfo + .syntax divided diff --git a/asm/clothesRack.s b/asm/non_matching/clothesRack/sub_0806DD90.inc similarity index 91% rename from asm/clothesRack.s rename to asm/non_matching/clothesRack/sub_0806DD90.inc index 77f17df6..f20d50cc 100644 --- a/asm/clothesRack.s +++ b/asm/non_matching/clothesRack/sub_0806DD90.inc @@ -1,13 +1,4 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - .syntax unified - - .text - - thumb_func_start sub_0806DD90 -sub_0806DD90: @ 0x0806DD90 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb @@ -155,9 +146,4 @@ _0806DDC4: .align 2, 0 _0806DEC0: .4byte 0x00004072 _0806DEC4: .4byte gRoomControls - - thumb_func_start sub_0806DEC8 -sub_0806DEC8: @ 0x0806DEC8 - push {lr} - bl GetNextFrame - pop {pc} + .syntax divided diff --git a/asm/non_matching/cucco/sub_0806E564.inc b/asm/non_matching/cucco/sub_0806E564.inc new file mode 100644 index 00000000..81b21c45 --- /dev/null +++ b/asm/non_matching/cucco/sub_0806E564.inc @@ -0,0 +1,64 @@ + .syntax unified + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0806E5AA + adds r0, #1 + strb r0, [r4, #0xd] + bl Random + movs r2, #1 + ands r0, r2 + cmp r0, #0 + beq _0806E590 + ldrb r0, [r4, #0x18] + lsls r1, r0, #0x19 + lsrs r1, r1, #0x1f + eors r1, r2 + lsls r1, r1, #6 + subs r2, #0x42 + ands r2, r0 + orrs r2, r1 + strb r2, [r4, #0x18] +_0806E590: + bl Random + movs r1, #1 + ands r0, r1 + adds r0, #1 + strb r0, [r4, #0xe] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + adds r0, r4, #0 + movs r1, #1 + bl InitAnimationForceUpdate +_0806E5AA: + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0806E5D4 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0806E5CE + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + b _0806E5D4 +_0806E5CE: + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] +_0806E5D4: + adds r0, r4, #0 + bl sub_0806E65C + adds r0, r4, #0 + bl UpdateAnimationSingleFrame + pop {r4, pc} + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/cucco/sub_0806E5E4.inc b/asm/non_matching/cucco/sub_0806E5E4.inc new file mode 100644 index 00000000..2e2a651e --- /dev/null +++ b/asm/non_matching/cucco/sub_0806E5E4.inc @@ -0,0 +1,50 @@ + .syntax unified + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0806E622 + adds r0, #1 + strb r0, [r4, #0xd] + bl Random + movs r5, #1 + ands r0, r5 + cmp r0, #0 + beq _0806E612 + ldrb r0, [r4, #0x18] + lsls r1, r0, #0x19 + lsrs r1, r1, #0x1f + eors r1, r5 + lsls r1, r1, #6 + movs r2, #0x41 + rsbs r2, r2, #0 + ands r2, r0 + orrs r2, r1 + strb r2, [r4, #0x18] +_0806E612: + bl Random + adds r1, r0, #0 + ands r1, r5 + adds r1, #2 + adds r0, r4, #0 + bl InitAnimationForceUpdate +_0806E622: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806E638 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_0806E638: + adds r0, r4, #0 + bl sub_0806E65C + adds r0, r4, #0 + bl UpdateAnimationSingleFrame + pop {r4, r5, pc} + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/cucco/sub_0806E6A8.inc b/asm/non_matching/cucco/sub_0806E6A8.inc new file mode 100644 index 00000000..3088da67 --- /dev/null +++ b/asm/non_matching/cucco/sub_0806E6A8.inc @@ -0,0 +1,26 @@ + .syntax unified + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #0 + bl sub_08002632 + ldr r1, _0806E6D4 @ =gSave + ldr r2, _0806E6D8 @ =0x000001C1 + adds r1, r1, r2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0xf3 + bne _0806E6C2 + movs r5, #1 +_0806E6C2: + ldr r0, _0806E6DC @ =gUnk_081145D0 + lsls r1, r5, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl TextboxNoOverlap + pop {r4, r5, pc} + .align 2, 0 +_0806E6D4: .4byte gSave +_0806E6D8: .4byte 0x000001C1 +_0806E6DC: .4byte gUnk_081145D0 + .syntax divided diff --git a/asm/non_matching/cuccoChick/sub_0806E7B0.inc b/asm/non_matching/cuccoChick/sub_0806E7B0.inc new file mode 100644 index 00000000..25c8580e --- /dev/null +++ b/asm/non_matching/cuccoChick/sub_0806E7B0.inc @@ -0,0 +1,60 @@ + .syntax unified + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0806E7F2 + adds r0, #1 + strb r0, [r4, #0xd] + bl Random + movs r5, #1 + ands r0, r5 + cmp r0, #0 + beq _0806E7DE + ldrb r0, [r4, #0x18] + lsls r1, r0, #0x19 + lsrs r1, r1, #0x1f + eors r1, r5 + lsls r1, r1, #6 + movs r2, #0x41 + rsbs r2, r2, #0 + ands r2, r0 + orrs r2, r1 + strb r2, [r4, #0x18] +_0806E7DE: + bl Random + movs r1, #3 + ands r0, r1 + adds r0, #1 + strb r0, [r4, #0xe] + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [r4, #0x20] + strb r5, [r4, #0x1e] +_0806E7F2: + movs r1, #0xc0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0806E81C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0806E816 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + b _0806E81C +_0806E816: + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [r4, #0x20] +_0806E81C: + adds r0, r4, #0 + bl sub_0806E838 + pop {r4, r5, pc} + .syntax divided diff --git a/asm/non_matching/farmers/Farmers.inc b/asm/non_matching/farmers/Farmers.inc new file mode 100644 index 00000000..8e428da6 --- /dev/null +++ b/asm/non_matching/farmers/Farmers.inc @@ -0,0 +1,58 @@ + .syntax unified + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806BC40 + ldrb r0, [r4, #0xa] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _0806BC28 @ =gUnk_08113140 + adds r1, r1, r0 + adds r0, r4, #0 + bl LoadExtraSpriteData + cmp r0, #0 + beq _0806BC54 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xe] + movs r0, #1 + ands 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] + lsls r0, r0, #0x19 + cmp r0, #0 + blt _0806BC2C + movs r0, #6 + b _0806BC2E + .align 2, 0 +_0806BC28: .4byte gUnk_08113140 +_0806BC2C: + movs r0, #2 +_0806BC2E: + strb r0, [r4, #0x14] + ldrb r0, [r4, #0x14] + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_0806BC58 + adds r0, r4, #0 + bl sub_0807DD64 +_0806BC40: + adds r0, r4, #0 + movs r1, #0 + bl ExecuteScriptForEntity + adds r0, r4, #0 + bl HandleEntity0x82Actions + adds r0, r4, #0 + bl GetNextFrame +_0806BC54: + pop {r4, pc} + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/farmers/sub_0806BC94.inc b/asm/non_matching/farmers/sub_0806BC94.inc new file mode 100644 index 00000000..e6b32265 --- /dev/null +++ b/asm/non_matching/farmers/sub_0806BC94.inc @@ -0,0 +1,19 @@ + .syntax unified + push {lr} + ldrb r3, [r0, #0x18] + lsls r3, r3, #0x19 + lsrs r3, r3, #0x1f + rsbs r2, r3, #0 + orrs r2, r3 + asrs r2, r2, #0x1f + movs r3, #8 + ands r2, r3 + ldr r1, [r1, #4] + adds r1, r1, r2 + ldrb r2, [r0, #0x14] + lsrs r2, r2, #1 + adds r1, r1, r2 + bl InitializeAnimation + pop {pc} + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/ghostBrothers/GhostBrothers.inc b/asm/non_matching/ghostBrothers/GhostBrothers.inc new file mode 100644 index 00000000..6f4d6ce3 --- /dev/null +++ b/asm/non_matching/ghostBrothers/GhostBrothers.inc @@ -0,0 +1,41 @@ + .syntax unified + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08065BBA + adds r0, r4, #0 + bl sub_08065C0C + b _08065BEA +_08065BBA: + ldr r1, _08065BEC @ =gUnk_08110164 + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xa] + cmp r0, #2 + bhi _08065BEA + ldr r2, _08065BF0 @ =gUnk_0811015C + ldrb r0, [r4, #0xf] + adds r1, r0, #1 + strb r1, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1b + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r4, #0x36] +_08065BEA: + pop {r4, pc} + .align 2, 0 +_08065BEC: .4byte gUnk_08110164 +_08065BF0: .4byte gUnk_0811015C + .syntax divided diff --git a/asm/non_matching/ghostBrothers/sub_08065C0C.inc b/asm/non_matching/ghostBrothers/sub_08065C0C.inc new file mode 100644 index 00000000..c308e49a --- /dev/null +++ b/asm/non_matching/ghostBrothers/sub_08065C0C.inc @@ -0,0 +1,98 @@ + .syntax unified + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08065C42 + cmp r0, #1 + bgt _08065C20 + cmp r0, #0 + beq _08065C2A + b _08065CCA +_08065C20: + cmp r0, #2 + beq _08065C7E + cmp r0, #3 + beq _08065C8A + b _08065CCA +_08065C2A: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0807DD50 + b _08065CCA +_08065C42: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _08065C74 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _08065C70 @ =gPlayerEntity + adds r0, r4, #0 + bl GetFacingDirection + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl InitAnimationForceUpdate + adds r0, r4, #0 + bl sub_0806F118 + b _08065CCA + .align 2, 0 +_08065C70: .4byte gPlayerEntity +_08065C74: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _08065CCA +_08065C7E: + adds r0, r4, #0 + bl UpdateFuseInteraction + cmp r0, #0 + beq _08065CCA + b _08065CC6 +_08065C8A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08065CCA + ldr r1, [r4, #0x6c] + ldrh r2, [r1] + ldr r0, _08065CB4 @ =0x0000FFFF + cmp r2, r0 + beq _08065CBC + ldr r0, _08065CB8 @ =gScreen + adds r0, #0x68 + strh r2, [r0] + adds r1, #2 + ldrh r0, [r1] + strb r0, [r4, #0xe] + adds r1, #2 + str r1, [r4, #0x6c] + b _08065CCA + .align 2, 0 +_08065CB4: .4byte 0x0000FFFF +_08065CB8: .4byte gScreen +_08065CBC: + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #0x18] +_08065CC6: + movs r0, #1 + strb r0, [r4, #0xc] +_08065CCA: + pop {r4, pc} + .syntax divided diff --git a/asm/non_matching/ghostBrothers/sub_08065D74.inc b/asm/non_matching/ghostBrothers/sub_08065D74.inc new file mode 100644 index 00000000..eee44d0e --- /dev/null +++ b/asm/non_matching/ghostBrothers/sub_08065D74.inc @@ -0,0 +1,35 @@ + .syntax unified + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08065DB4 + ldr r2, [r1, #0x6c] + ldrh r3, [r2] + ldr r0, _08065DA0 @ =0x0000FFFF + cmp r3, r0 + beq _08065DA8 + ldr r0, _08065DA4 @ =gScreen + adds r0, #0x68 + strh r3, [r0] + ldrh r0, [r2, #2] + strb r0, [r1, #0xe] + adds r0, r2, #4 + str r0, [r1, #0x6c] + b _08065DB4 + .align 2, 0 +_08065DA0: .4byte 0x0000FFFF +_08065DA4: .4byte gScreen +_08065DA8: + ldrb r0, [r1, #0xc] + adds r0, #1 + strb r0, [r1, #0xc] + movs r0, #0 + bl TextboxNoOverlapFollow +_08065DB4: + pop {pc} + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/ghostBrothers/sub_08065DB8.inc b/asm/non_matching/ghostBrothers/sub_08065DB8.inc new file mode 100644 index 00000000..6e6e7d6e --- /dev/null +++ b/asm/non_matching/ghostBrothers/sub_08065DB8.inc @@ -0,0 +1,126 @@ + .syntax unified + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #4 + bhi _08065E74 + lsls r0, r0, #2 + ldr r1, _08065DCC @ =_08065DD0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08065DCC: .4byte _08065DD0 +_08065DD0: @ jump table + .4byte _08065DE4 @ case 0 + .4byte _08065E08 @ case 1 + .4byte _08065EB0 @ case 2 + .4byte _08065E34 @ case 3 + .4byte _08065E4E @ case 4 +_08065DE4: + ldr r0, _08065E04 @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08065EB0 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #4 + bl InitAnimationForceUpdate + b _08065EB0 + .align 2, 0 +_08065E04: .4byte gTextBox +_08065E08: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08065EB0 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xb4 + strb r0, [r4, #0xe] + ldr r1, _08065E30 @ =gUnk_02018EB0 + ldrb r0, [r1, #1] + adds r0, #1 + strb r0, [r1, #1] + adds r0, r4, #0 + movs r1, #2 + bl InitAnimationForceUpdate + b _08065EB0 + .align 2, 0 +_08065E30: .4byte gUnk_02018EB0 +_08065E34: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08065EB0 + movs r0, #0 + bl TextboxNoOverlapFollow + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + b _08065EB0 +_08065E4E: + ldr r0, _08065E6C @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08065EB0 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] + ldr r0, _08065E70 @ =gUnk_0811022E + str r0, [r4, #0x6c] + b _08065EB0 + .align 2, 0 +_08065E6C: .4byte gTextBox +_08065E70: .4byte gUnk_0811022E +_08065E74: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08065EB0 + ldr r1, [r4, #0x6c] + ldrh r2, [r1] + ldr r0, _08065E9C @ =0x0000FFFF + cmp r2, r0 + beq _08065EA4 + ldr r0, _08065EA0 @ =gScreen + adds r0, #0x68 + strh r2, [r0] + ldrh r0, [r1, #2] + strb r0, [r4, #0xe] + adds r0, r1, #4 + str r0, [r4, #0x6c] + b _08065EB0 + .align 2, 0 +_08065E9C: .4byte 0x0000FFFF +_08065EA0: .4byte gScreen +_08065EA4: + ldr r1, _08065EB8 @ =gUnk_02018EB0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + bl DeleteThisEntity +_08065EB0: + adds r0, r4, #0 + bl UpdateAnimationSingleFrame + pop {r4, pc} + .align 2, 0 +_08065EB8: .4byte gUnk_02018EB0 + .syntax divided diff --git a/asm/non_matching/ghostBrothers/sub_08065EDC.inc b/asm/non_matching/ghostBrothers/sub_08065EDC.inc new file mode 100644 index 00000000..429f2abe --- /dev/null +++ b/asm/non_matching/ghostBrothers/sub_08065EDC.inc @@ -0,0 +1,36 @@ + .syntax unified + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08065F1C + ldr r1, [r2, #0x6c] + ldrh r3, [r1] + ldr r0, _08065F08 @ =0x0000FFFF + cmp r3, r0 + beq _08065F10 + ldr r0, _08065F0C @ =gScreen + adds r0, #0x68 + strh r3, [r0] + adds r1, #2 + ldrh r0, [r1] + strb r0, [r2, #0xe] + adds r1, #2 + str r1, [r2, #0x6c] + b _08065F1C + .align 2, 0 +_08065F08: .4byte 0x0000FFFF +_08065F0C: .4byte gScreen +_08065F10: + ldrb r0, [r2, #0xc] + adds r0, #1 + strb r0, [r2, #0xc] + adds r0, r2, #0 + bl sub_08078778 +_08065F1C: + pop {pc} + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/gibdo/sub_08037810.inc b/asm/non_matching/gibdo/sub_08037810.inc deleted file mode 100644 index b4ce2803..00000000 --- a/asm/non_matching/gibdo/sub_08037810.inc +++ /dev/null @@ -1,86 +0,0 @@ - - - .syntax unified - - .text - - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r1, r5, #0 - adds r1, #0x76 - ldrb r0, [r1] - cmp r0, #0 - bne _080378A8 - adds r0, r5, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _080378AC - ldr r6, _080378A4 @ =gUnk_020000B0 - ldr r0, [r6] - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r3, #0x32 - ldrsh r2, [r0, r3] - adds r0, r5, #0 - movs r3, #0x40 - bl sub_0806FCB8 - cmp r0, #0 - beq _080378AC - ldr r1, [r6] - adds r0, r5, #0 - bl GetFacingDirection - ldrb r1, [r5, #0x15] - subs r0, r0, r1 - adds r0, #6 - movs r1, #0x1f - ands r0, r1 - cmp r0, #0xc - bhi _080378AC - movs r0, #3 - strb r0, [r5, #0xc] - movs r4, #0x18 - movs r0, #0x18 - strb r0, [r5, #0xe] - movs r0, #8 - strb r0, [r5, #0xf] - movs r0, #0xc0 - strh r0, [r5, #0x24] - ldr r1, [r6] - adds r0, r5, #0 - bl GetFacingDirection - adds r0, #4 - ands r0, r4 - strb r0, [r5, #0x15] - lsrs r0, r0, #3 - strb r0, [r5, #0x14] - adds r1, r5, #0 - adds r1, #0x74 - movs r0, #0x96 - lsls r0, r0, #1 - strh r0, [r1] - ldr r2, [r6] - ldrh r1, [r2, #0x2e] - adds r0, r5, #0 - adds r0, #0x78 - strh r1, [r0] - ldrh r0, [r2, #0x32] - adds r3, r5, #0 - adds r3, #0x7a - strh r0, [r3] - ldrb r1, [r5, #0x14] - adds r0, r5, #0 - bl InitAnimationForceUpdate - movs r0, #1 - b _080378AE - .align 2, 0 -_080378A4: .4byte gUnk_020000B0 -_080378A8: - subs r0, #1 - strb r0, [r1] -_080378AC: - movs r0, #0 -_080378AE: - pop {r4, r5, r6, pc} - - .syntax divided diff --git a/asm/non_matching/gibdo/sub_08037A58.inc b/asm/non_matching/gibdo/sub_08037A58.inc deleted file mode 100644 index b973955f..00000000 --- a/asm/non_matching/gibdo/sub_08037A58.inc +++ /dev/null @@ -1,64 +0,0 @@ - - .syntax unified - - .text - - push {r4, lr} - adds r4, r0, #0 - bl sub_08037ACC - movs r0, #7 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0xf - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - adds r3, r4, #0 - adds r3, #0x3d - movs r0, #0 - ldrsb r0, [r3, r0] - cmp r0, #0 - bne _08037A84 - movs r0, #0xec - strb r0, [r3] -_08037A84: - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x26 - strb r0, [r1] - adds r2, r4, #0 - adds r2, #0x3b - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - movs r0, #0xf4 - strb r0, [r3] - ldrb r0, [r4, #0x14] - lsls r0, r0, #3 - movs r1, #0x10 - eors r0, r1 - adds r1, r4, #0 - adds r1, #0x3e - strb r0, [r1] - adds r1, #4 - movs r0, #8 - strb r0, [r1] - adds r1, #4 - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r1] - adds r1, #0x30 - movs r0, #0x3c - strb r0, [r1] - ldrb r1, [r4, #0x14] - adds r1, #0x10 - adds r0, r4, #0 - bl InitAnimationForceUpdate - pop {r4, pc} - .align 2, 0 - - .syntax divided diff --git a/asm/non_matching/gorman/sub_0806991C.inc b/asm/non_matching/gorman/sub_0806991C.inc new file mode 100644 index 00000000..d4115e2b --- /dev/null +++ b/asm/non_matching/gorman/sub_0806991C.inc @@ -0,0 +1,69 @@ + .syntax unified + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl Random + movs r1, #0x1f + ands r0, r1 + adds r0, #0x3c + adds r1, r5, #0 + adds r1, #0x68 + movs r3, #0 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x69 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r1, r1, #2 + ldr r0, _0806999C @ =gUnk_08111C5C + adds r1, r1, r0 + ldr r2, _080699A0 @ =gRoomControls + ldrh r0, [r1] + ldrh r6, [r2, #6] + adds r0, r0, r6 + strh r0, [r4, #0x1e] + ldrh r0, [r1, #2] + ldrh r2, [r2, #8] + adds r0, r0, r2 + strh r0, [r4, #0x22] + movs r0, #8 + strb r0, [r4, #0x19] + ldr r0, [r4, #8] + movs r1, #2 + orrs r0, r1 + str r0, [r4, #8] + str r3, [r4, #0x14] + movs r1, #0x1e + ldrsh r0, [r4, r1] + movs r2, #0x2e + ldrsh r1, [r5, r2] + subs r0, r0, r1 + movs r3, #0x22 + ldrsh r1, [r4, r3] + movs r6, #0x32 + ldrsh r2, [r5, r6] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r5, #0x15] + ldrb r2, [r5, #0x14] + movs r1, #0x80 + ands r1, r2 + ldr r2, _080699A4 @ =gUnk_08111C74 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1c + adds r0, r0, r2 + ldrb r0, [r0] + orrs r1, r0 + strb r1, [r5, #0x14] + ldr r2, _080699A8 @ =gActiveScriptInfo + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, r5, r6, pc} + .align 2, 0 +_0806999C: .4byte gUnk_08111C5C +_080699A0: .4byte gRoomControls +_080699A4: .4byte gUnk_08111C74 +_080699A8: .4byte gActiveScriptInfo + .syntax divided diff --git a/asm/non_matching/gorman/sub_080699AC.inc b/asm/non_matching/gorman/sub_080699AC.inc new file mode 100644 index 00000000..db5408e0 --- /dev/null +++ b/asm/non_matching/gorman/sub_080699AC.inc @@ -0,0 +1,69 @@ + .syntax unified + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl Random + movs r1, #0x1f + ands r0, r1 + adds r0, #0x3c + adds r1, r5, #0 + adds r1, #0x68 + movs r3, #0 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x69 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r1, r1, #2 + ldr r0, _08069A2C @ =gUnk_08111C84 + adds r1, r1, r0 + ldr r2, _08069A30 @ =gRoomControls + ldrh r0, [r1] + ldrh r6, [r2, #6] + adds r0, r0, r6 + strh r0, [r4, #0x1e] + ldrh r0, [r1, #2] + ldrh r2, [r2, #8] + adds r0, r0, r2 + strh r0, [r4, #0x22] + movs r0, #8 + strb r0, [r4, #0x19] + ldr r0, [r4, #8] + movs r1, #2 + orrs r0, r1 + str r0, [r4, #8] + str r3, [r4, #0x14] + movs r1, #0x1e + ldrsh r0, [r4, r1] + movs r2, #0x2e + ldrsh r1, [r5, r2] + subs r0, r0, r1 + movs r3, #0x22 + ldrsh r1, [r4, r3] + movs r6, #0x32 + ldrsh r2, [r5, r6] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r5, #0x15] + ldrb r2, [r5, #0x14] + movs r1, #0x80 + ands r1, r2 + ldr r2, _08069A34 @ =gUnk_08111C8C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1c + adds r0, r0, r2 + ldrb r0, [r0] + orrs r1, r0 + strb r1, [r5, #0x14] + ldr r2, _08069A38 @ =gActiveScriptInfo + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, r5, r6, pc} + .align 2, 0 +_08069A2C: .4byte gUnk_08111C84 +_08069A30: .4byte gRoomControls +_08069A34: .4byte gUnk_08111C8C +_08069A38: .4byte gActiveScriptInfo + .syntax divided diff --git a/asm/non_matching/guardWithSpear/sub_0806407C.inc b/asm/non_matching/guardWithSpear/sub_0806407C.inc new file mode 100644 index 00000000..21843fdf --- /dev/null +++ b/asm/non_matching/guardWithSpear/sub_0806407C.inc @@ -0,0 +1,140 @@ + .syntax unified + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r5, #0x18] + cmp r0, #0 + bne _080640E8 + adds r0, #1 + strb r0, [r5, #0x18] + bl Random + movs r1, #0x3f + ands r0, r1 + adds r0, #0x20 + strh r0, [r5, #0x12] + bl Random + adds r1, r0, #0 + movs r0, #0x18 + ands r1, r0 + ldrb r0, [r4, #0x15] + cmp r0, #8 + beq _080640C4 + cmp r0, #8 + bgt _080640B2 + cmp r0, #0 + beq _080640BC + b _080640DA +_080640B2: + cmp r0, #0x10 + beq _080640CC + cmp r0, #0x18 + beq _080640D4 + b _080640DA +_080640BC: + cmp r1, #0x10 + bne _080640DA + movs r1, #8 + b _080640DA +_080640C4: + cmp r1, #0x18 + bne _080640DA + movs r1, #0x10 + b _080640DA +_080640CC: + cmp r1, #0 + bne _080640DA + movs r1, #0x18 + b _080640DA +_080640D4: + cmp r1, #8 + bne _080640DA + movs r1, #0 +_080640DA: + strb r1, [r4, #0x15] + adds r0, r1, #0 + bl sub_0806F5B0 + strb r0, [r4, #0x14] + movs r0, #0x80 + strh r0, [r4, #0x24] +_080640E8: + ldrb r0, [r4, #0x14] + lsrs r2, r0, #1 + adds r1, r2, #4 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r1, r0 + beq _0806410A + adds r0, r4, #0 + adds r0, #0x70 + movs r1, #0 + ldrsb r1, [r0, r1] + adds r1, #4 + adds r1, r2, r1 + adds r0, r4, #0 + bl InitializeAnimation +_0806410A: + adds r0, r4, #0 + bl ProcessMovement + movs r0, #0x2e + ldrsh r1, [r4, r0] + adds r2, r4, #0 + adds r2, #0x68 + movs r3, #0 + ldrsh r0, [r2, r3] + subs r1, r1, r0 + cmp r1, #0x10 + ble _0806412C + ldrh r0, [r2] + adds r0, #0x10 + strh r0, [r4, #0x2e] + movs r0, #1 + strh r0, [r5, #0x12] +_0806412C: + movs r3, #0x10 + rsbs r3, r3, #0 + cmp r1, r3 + bge _0806413E + ldrh r0, [r2] + subs r0, #0x10 + strh r0, [r4, #0x2e] + movs r0, #1 + strh r0, [r5, #0x12] +_0806413E: + movs r6, #0x32 + ldrsh r1, [r4, r6] + adds r2, r4, #0 + adds r2, #0x6a + movs r6, #0 + ldrsh r0, [r2, r6] + subs r1, r1, r0 + cmp r1, #0x10 + ble _0806415A + ldrh r0, [r2] + adds r0, #0x10 + strh r0, [r4, #0x32] + movs r0, #1 + strh r0, [r5, #0x12] +_0806415A: + cmp r1, r3 + bge _08064168 + ldrh r0, [r2] + subs r0, #0x10 + strh r0, [r4, #0x32] + movs r0, #1 + strh r0, [r5, #0x12] +_08064168: + ldrh r0, [r5, #0x12] + subs r0, #1 + strh r0, [r5, #0x12] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0806417A + ldr r1, _0806417C @ =gActiveScriptInfo + movs r0, #0 + strb r0, [r1, #6] +_0806417A: + pop {r4, r5, r6, pc} + .align 2, 0 +_0806417C: .4byte gActiveScriptInfo + .syntax divided diff --git a/asm/non_matching/guardWithSpear/sub_08064198.inc b/asm/non_matching/guardWithSpear/sub_08064198.inc new file mode 100644 index 00000000..40e2c114 --- /dev/null +++ b/asm/non_matching/guardWithSpear/sub_08064198.inc @@ -0,0 +1,144 @@ + .syntax unified + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x71 + ldrb r1, [r4] + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0 + ble _080641AE + subs r0, r1, #1 + strb r0, [r4] +_080641AE: + ldr r0, _080641D8 @ =gPlayerEntity + movs r2, #0x32 + ldrsh r1, [r0, r2] + movs r2, #0x32 + ldrsh r0, [r5, r2] + subs r1, r1, r0 + cmp r1, #2 + ble _080641C0 + movs r1, #2 +_080641C0: + movs r0, #2 + rsbs r0, r0, #0 + cmp r1, r0 + bge _080641CA + adds r1, r0, #0 +_080641CA: + adds r6, r4, #0 + cmp r1, #0 + beq _08064256 + cmp r1, #0 + ble _080641DC + movs r0, #0x10 + b _080641DE + .align 2, 0 +_080641D8: .4byte gPlayerEntity +_080641DC: + movs r0, #0 +_080641DE: + strb r0, [r5, #0x15] + cmp r1, #0 + bge _080641E6 + rsbs r1, r1, #0 +_080641E6: + lsls r0, r1, #8 + strh r0, [r5, #0x24] + movs r0, #0x32 + ldrsh r4, [r5, r0] + adds r0, r5, #0 + bl ProcessMovement + movs r1, #0x32 + ldrsh r0, [r5, r1] + adds r6, r5, #0 + adds r6, #0x71 + cmp r4, r0 + beq _08064256 + ldr r0, _080642B0 @ =gPlayerEntity + movs r2, #0x24 + ldrsh r1, [r0, r2] + movs r0, #0xa0 + lsls r0, r0, #1 + cmp r1, r0 + ble _08064222 + ldr r0, _080642B4 @ =gScreenTransition + ldr r0, [r0] + movs r1, #6 + bl __modsi3 + cmp r0, #0 + bne _08064222 + adds r0, r5, #0 + bl CreateDustSmall +_08064222: + adds r4, r5, #0 + adds r4, #0x71 + movs r0, #0xa + strb r0, [r4] + ldrb r0, [r5, #0x15] + bl sub_0806F5B0 + strb r0, [r5, #0x14] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x19 + adds r1, r5, #0 + adds r1, #0x70 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r1, #4 + adds r1, r0, r1 + adds r0, r5, #0 + adds r0, #0x58 + adds r6, r4, #0 + ldrb r0, [r0] + cmp r1, r0 + beq _08064256 + adds r0, r5, #0 + bl InitializeAnimation +_08064256: + movs r0, #0 + ldrsb r0, [r6, r0] + cmp r0, #0 + bne _0806428C + ldr r1, _080642B0 @ =gPlayerEntity + adds r0, r5, #0 + bl GetFacingDirection + bl sub_0806F5B0 + strb r0, [r5, #0x14] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x19 + adds r1, r5, #0 + adds r1, #0x70 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r1, r0, r1 + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r1, r0 + beq _0806428C + adds r0, r5, #0 + bl InitializeAnimation +_0806428C: + adds r0, r5, #0 + bl sub_0806ED78 + movs r0, #0x36 + ldrsh r4, [r5, r0] + ldr r0, _080642B0 @ =gPlayerEntity + ldrh r0, [r0, #0x36] + strh r0, [r5, #0x36] + cmp r4, #0 + bge _080642AC + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080642AC + adds r0, r5, #0 + bl CreateDustSmall +_080642AC: + pop {r4, r5, r6, pc} + .align 2, 0 +_080642B0: .4byte gPlayerEntity +_080642B4: .4byte gScreenTransition + .syntax divided diff --git a/asm/non_matching/guardWithSpear/sub_080642B8.inc b/asm/non_matching/guardWithSpear/sub_080642B8.inc new file mode 100644 index 00000000..108c643e --- /dev/null +++ b/asm/non_matching/guardWithSpear/sub_080642B8.inc @@ -0,0 +1,144 @@ + .syntax unified + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x71 + ldrb r1, [r4] + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0 + ble _080642CE + subs r0, r1, #1 + strb r0, [r4] +_080642CE: + ldr r0, _080642F8 @ =gPlayerEntity + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r2, #0x2e + ldrsh r0, [r5, r2] + subs r1, r1, r0 + cmp r1, #2 + ble _080642E0 + movs r1, #2 +_080642E0: + movs r0, #2 + rsbs r0, r0, #0 + cmp r1, r0 + bge _080642EA + adds r1, r0, #0 +_080642EA: + adds r6, r4, #0 + cmp r1, #0 + beq _08064376 + cmp r1, #0 + ble _080642FC + movs r0, #8 + b _080642FE + .align 2, 0 +_080642F8: .4byte gPlayerEntity +_080642FC: + movs r0, #0x18 +_080642FE: + strb r0, [r5, #0x15] + cmp r1, #0 + bge _08064306 + rsbs r1, r1, #0 +_08064306: + lsls r0, r1, #8 + strh r0, [r5, #0x24] + movs r0, #0x2e + ldrsh r4, [r5, r0] + adds r0, r5, #0 + bl ProcessMovement + movs r1, #0x2e + ldrsh r0, [r5, r1] + adds r6, r5, #0 + adds r6, #0x71 + cmp r4, r0 + beq _08064376 + ldr r0, _080643D0 @ =gPlayerEntity + movs r2, #0x24 + ldrsh r1, [r0, r2] + movs r0, #0xa0 + lsls r0, r0, #1 + cmp r1, r0 + ble _08064342 + ldr r0, _080643D4 @ =gScreenTransition + ldr r0, [r0] + movs r1, #6 + bl __modsi3 + cmp r0, #0 + bne _08064342 + adds r0, r5, #0 + bl CreateDustSmall +_08064342: + adds r4, r5, #0 + adds r4, #0x71 + movs r0, #0xa + strb r0, [r4] + ldrb r0, [r5, #0x15] + bl sub_0806F5B0 + strb r0, [r5, #0x14] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x19 + adds r1, r5, #0 + adds r1, #0x70 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r1, #4 + adds r1, r0, r1 + adds r0, r5, #0 + adds r0, #0x58 + adds r6, r4, #0 + ldrb r0, [r0] + cmp r1, r0 + beq _08064376 + adds r0, r5, #0 + bl InitializeAnimation +_08064376: + movs r0, #0 + ldrsb r0, [r6, r0] + cmp r0, #0 + bne _080643AC + ldr r1, _080643D0 @ =gPlayerEntity + adds r0, r5, #0 + bl GetFacingDirection + bl sub_0806F5B0 + strb r0, [r5, #0x14] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x19 + adds r1, r5, #0 + adds r1, #0x70 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r1, r0, r1 + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r1, r0 + beq _080643AC + adds r0, r5, #0 + bl InitializeAnimation +_080643AC: + adds r0, r5, #0 + bl sub_0806ED78 + movs r0, #0x36 + ldrsh r4, [r5, r0] + ldr r0, _080643D0 @ =gPlayerEntity + ldrh r0, [r0, #0x36] + strh r0, [r5, #0x36] + cmp r4, #0 + bge _080643CC + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080643CC + adds r0, r5, #0 + bl CreateDustSmall +_080643CC: + pop {r4, r5, r6, pc} + .align 2, 0 +_080643D0: .4byte gPlayerEntity +_080643D4: .4byte gScreenTransition + .syntax divided diff --git a/asm/non_matching/guardWithSpear/sub_080643D8.inc b/asm/non_matching/guardWithSpear/sub_080643D8.inc new file mode 100644 index 00000000..75d9f6e8 --- /dev/null +++ b/asm/non_matching/guardWithSpear/sub_080643D8.inc @@ -0,0 +1,40 @@ + .syntax unified + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + bl CheckGlobalFlag + cmp r0, #0 + bne _080643EA + movs r3, #0 + b _08064406 +_080643EA: + movs r0, #2 + bl GetInventoryValue + cmp r0, #0 + bne _080643F8 + movs r3, #1 + b _08064406 +_080643F8: + movs r0, #3 + bl GetInventoryValue + movs r3, #3 + cmp r0, #0 + bne _08064406 + movs r3, #2 +_08064406: + ldrb r1, [r4, #0xb] + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + ldr r2, _08064424 @ =gUnk_0810F6D4 + lsls r1, r3, #1 + lsls r0, r0, #3 + adds r1, r1, r0 + adds r1, r1, r2 + ldrh r0, [r1] + adds r1, r4, #0 + bl TextboxNoOverlap + pop {r4, pc} + .align 2, 0 +_08064424: .4byte gUnk_0810F6D4 + .syntax divided diff --git a/asm/non_matching/guardWithSpear/sub_08064428.inc b/asm/non_matching/guardWithSpear/sub_08064428.inc new file mode 100644 index 00000000..9ac9ff63 --- /dev/null +++ b/asm/non_matching/guardWithSpear/sub_08064428.inc @@ -0,0 +1,37 @@ + .syntax unified + push {lr} + adds r3, r0, #0 + ldr r0, _0806444C @ =gSave + ldrb r0, [r0, #8] + subs r1, r0, #2 + cmp r1, #0 + bge _08064438 + movs r1, #0 +_08064438: + ldrb r2, [r3, #0xb] + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + bne _08064454 + ldrb r0, [r3, #0xb] + lsls r0, r0, #3 + ldr r1, _08064450 @ =gUnk_0810CF4C + b _08064460 + .align 2, 0 +_0806444C: .4byte gSave +_08064450: .4byte gUnk_0810CF4C +_08064454: + movs r0, #0x7f + ands r0, r2 + lsls r0, r0, #6 + lsls r1, r1, #3 + ldr r2, _0806446C @ =gUnk_0810D0A4 + adds r1, r1, r2 +_08064460: + adds r1, r0, r1 + adds r0, r3, #0 + bl ShowNPCDialogue + pop {pc} + .align 2, 0 +_0806446C: .4byte gUnk_0810D0A4 + .syntax divided diff --git a/asm/non_matching/guardWithSpear/sub_080644C8.inc b/asm/non_matching/guardWithSpear/sub_080644C8.inc new file mode 100644 index 00000000..a588e9e2 --- /dev/null +++ b/asm/non_matching/guardWithSpear/sub_080644C8.inc @@ -0,0 +1,36 @@ + .syntax unified + push {r4, lr} + adds r2, r0, #0 + movs r1, #0x2e + ldrsh r0, [r2, r1] + ldr r3, _08064500 @ =gRoomControls + movs r4, #0xa + ldrsh r1, [r3, r4] + subs r1, r0, r1 + adds r0, r1, #0 + adds r0, #8 + cmp r0, #0 + blt _08064504 + adds r0, r1, #0 + subs r0, #8 + cmp r0, #0xf0 + bgt _08064504 + movs r0, #0x32 + ldrsh r1, [r2, r0] + movs r2, #0xc + ldrsh r0, [r3, r2] + subs r0, r1, r0 + cmp r0, #0 + blt _08064504 + subs r0, #0x18 + cmp r0, #0xa0 + bgt _08064504 + movs r0, #1 + b _08064506 + .align 2, 0 +_08064500: .4byte gRoomControls +_08064504: + movs r0, #0 +_08064506: + pop {r4, pc} + .syntax divided diff --git a/asm/non_matching/helmasaur/sub_0802BD8C.inc b/asm/non_matching/helmasaur/sub_0802BD8C.inc deleted file mode 100644 index 3e53e7d0..00000000 --- a/asm/non_matching/helmasaur/sub_0802BD8C.inc +++ /dev/null @@ -1,47 +0,0 @@ - - .syntax unified - - .text - - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0802BD9C - subs r0, #1 - strb r0, [r4, #0xe] - b _0802BDDE -_0802BD9C: - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0802BDCA - adds r0, r4, #0 - movs r1, #1 - movs r2, #0x10 - bl sub_0804A024 - adds r1, r0, #0 - cmp r1, #0xff - beq _0802BDCA - adds r0, r4, #0 - adds r0, #0x79 - ldrb r0, [r0] - cmp r1, r0 - beq _0802BDCA - adds r0, r4, #0 - bl sub_0802C058 - b _0802BDDE -_0802BDCA: - adds r0, r4, #0 - bl sub_0802C020 - adds r1, r0, #0 - ldrb r0, [r4, #0x15] - cmp r1, r0 - beq _0802BDDE - adds r0, r4, #0 - bl sub_0802C058 -_0802BDDE: - pop {r4, pc} - - .syntax divided diff --git a/asm/non_matching/kid/Kid_Head.inc b/asm/non_matching/kid/Kid_Head.inc index 4d98f33f..acd3574a 100644 --- a/asm/non_matching/kid/Kid_Head.inc +++ b/asm/non_matching/kid/Kid_Head.inc @@ -1,7 +1,6 @@ .syntax unified .text -Kid_Head: @ 0x08062834 push {r4, r5, r6, r7, lr} adds r5, r0, #0 ldrb r4, [r5, #0xa] diff --git a/asm/non_matching/kid/sub_080621AC.inc b/asm/non_matching/kid/sub_080621AC.inc index e474a346..63614833 100644 --- a/asm/non_matching/kid/sub_080621AC.inc +++ b/asm/non_matching/kid/sub_080621AC.inc @@ -1,7 +1,6 @@ .syntax unified .text -sub_080621AC: @ 0x080621AC push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r5, [r4, #0xc] diff --git a/asm/non_matching/kid/sub_080622F4.inc b/asm/non_matching/kid/sub_080622F4.inc index 94e8ae01..66a11664 100644 --- a/asm/non_matching/kid/sub_080622F4.inc +++ b/asm/non_matching/kid/sub_080622F4.inc @@ -1,7 +1,6 @@ .syntax unified .text -sub_080622F4: @ 0x080622F4 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 diff --git a/asm/non_matching/kid/sub_0806252C.inc b/asm/non_matching/kid/sub_0806252C.inc index c647a74c..c8148e64 100644 --- a/asm/non_matching/kid/sub_0806252C.inc +++ b/asm/non_matching/kid/sub_0806252C.inc @@ -1,7 +1,6 @@ .syntax unified .text -sub_0806252C: @ 0x0806252C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb diff --git a/asm/non_matching/kid/sub_08062634.inc b/asm/non_matching/kid/sub_08062634.inc index 0fe2a5cf..8d76db7c 100644 --- a/asm/non_matching/kid/sub_08062634.inc +++ b/asm/non_matching/kid/sub_08062634.inc @@ -1,7 +1,6 @@ .syntax unified .text -sub_08062634: @ 0x08062634 push {r4, r5, lr} adds r5, r0, #0 ldrb r4, [r5, #0xb] diff --git a/asm/non_matching/kid/sub_0806265C.inc b/asm/non_matching/kid/sub_0806265C.inc index b4f5dcf9..7d7aa455 100644 --- a/asm/non_matching/kid/sub_0806265C.inc +++ b/asm/non_matching/kid/sub_0806265C.inc @@ -1,7 +1,6 @@ .syntax unified .text -sub_0806265C: @ 0x0806265C push {lr} adds r2, r0, #0 ldr r3, _08062674 @ =gSave diff --git a/asm/non_matching/kid/sub_080626E0.inc b/asm/non_matching/kid/sub_080626E0.inc index ebdce74f..c0a6e841 100644 --- a/asm/non_matching/kid/sub_080626E0.inc +++ b/asm/non_matching/kid/sub_080626E0.inc @@ -1,7 +1,6 @@ .syntax unified .text -sub_080626E0: @ 0x080626E0 push {r4, r5, lr} adds r5, r0, #0 adds r4, r1, #0 diff --git a/asm/non_matching/kid/sub_08062948.inc b/asm/non_matching/kid/sub_08062948.inc index e698b073..6e77f2ee 100644 --- a/asm/non_matching/kid/sub_08062948.inc +++ b/asm/non_matching/kid/sub_08062948.inc @@ -1,7 +1,6 @@ .syntax unified .text -sub_08062948: @ 0x08062948 push {r4, r5, r6, lr} adds r4, r0, #0 adds r6, r1, #0 diff --git a/asm/non_matching/librarians/Librarians.inc b/asm/non_matching/librarians/Librarians.inc new file mode 100644 index 00000000..80ec2181 --- /dev/null +++ b/asm/non_matching/librarians/Librarians.inc @@ -0,0 +1,32 @@ + .syntax unified + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806BA18 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0807DD50 + ldr r1, _0806BA30 @ =gUnk_08114F30 + ldrb r2, [r4, #0x19] + lsrs r0, r2, #6 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #6 + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] +_0806BA18: + adds r0, r4, #0 + movs r1, #0 + bl ExecuteScriptForEntity + adds r0, r4, #0 + bl HandleEntity0x82Actions + adds r0, r4, #0 + bl GetNextFrame + pop {r4, pc} + .align 2, 0 +_0806BA30: .4byte gUnk_08114F30 + .syntax divided diff --git a/asm/non_matching/librarians/sub_0806BA34.inc b/asm/non_matching/librarians/sub_0806BA34.inc new file mode 100644 index 00000000..ca7a41f4 --- /dev/null +++ b/asm/non_matching/librarians/sub_0806BA34.inc @@ -0,0 +1,114 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov sb, r0 + adds r4, r1, #0 + ldr r0, _0806BA58 @ =0x00004912 + mov r8, r0 + movs r0, #0 + str r0, [r4, #0x14] + movs r0, #0x73 + bl CheckLocalFlag + cmp r0, #0 + beq _0806BA60 + ldr r0, _0806BA5C @ =0x00004913 + mov r8, r0 + b _0806BB06 + .align 2, 0 +_0806BA58: .4byte 0x00004912 +_0806BA5C: .4byte 0x00004913 +_0806BA60: + movs r0, #0x39 + bl GetInventoryValue + adds r7, r0, #0 + movs r0, #0x3a + bl GetInventoryValue + adds r6, r0, #0 + movs r0, #0x3b + bl GetInventoryValue + adds r5, r0, #0 + cmp r7, #1 + bne _0806BA88 + ldr r0, _0806BA84 @ =0x00004906 + mov r8, r0 + str r7, [r4, #0x14] + b _0806BAA2 + .align 2, 0 +_0806BA84: .4byte 0x00004906 +_0806BA88: + cmp r6, #1 + bne _0806BA98 + ldr r0, _0806BA94 @ =0x00004907 + mov r8, r0 + str r6, [r4, #0x14] + b _0806BAA2 + .align 2, 0 +_0806BA94: .4byte 0x00004907 +_0806BA98: + cmp r5, #1 + bne _0806BAB4 + ldr r0, _0806BAB0 @ =0x00004908 + mov r8, r0 + str r5, [r4, #0x14] +_0806BAA2: + movs r0, #0x6b + bl SetLocalFlag + movs r0, #0x6a + bl SetLocalFlag + b _0806BB06 + .align 2, 0 +_0806BAB0: .4byte 0x00004908 +_0806BAB4: + movs r0, #0x6a + bl CheckLocalFlag + cmp r0, #0 + beq _0806BB06 + movs r0, #0x6b + bl CheckLocalFlag + cmp r0, #0 + bne _0806BAD0 + ldr r0, _0806BACC @ =0x00004901 + b _0806BAD6 + .align 2, 0 +_0806BACC: .4byte 0x00004901 +_0806BAD0: + cmp r7, #0 + bne _0806BAE4 + ldr r0, _0806BAE0 @ =0x00004902 +_0806BAD6: + mov r8, r0 + movs r0, #0x6b + bl SetLocalFlag + b _0806BB06 + .align 2, 0 +_0806BAE0: .4byte 0x00004902 +_0806BAE4: + cmp r6, #0 + bne _0806BAF8 + ldr r0, _0806BAF4 @ =0x00004903 + mov r8, r0 + movs r0, #0x6d + bl SetLocalFlag + b _0806BB06 + .align 2, 0 +_0806BAF4: .4byte 0x00004903 +_0806BAF8: + cmp r5, #0 + bne _0806BB06 + ldr r0, _0806BB18 @ =0x00004904 + mov r8, r0 + movs r0, #0x70 + bl SetLocalFlag +_0806BB06: + mov r0, r8 + mov r1, sb + bl TextboxNoOverlap + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806BB18: .4byte 0x00004904 + .syntax divided diff --git a/asm/non_matching/m4a/CgbModVol.inc b/asm/non_matching/m4a/CgbModVol.inc deleted file mode 100644 index d1015d19..00000000 --- a/asm/non_matching/m4a/CgbModVol.inc +++ /dev/null @@ -1,64 +0,0 @@ - - .syntax unified - - .text - - push {r4, lr} - adds r2, r0, #0 - ldrb r0, [r2, #2] - ldrb r1, [r2, #3] - lsls r3, r0, #0x18 - lsrs r4, r3, #0x18 - lsls r0, r1, #0x18 - lsrs r1, r0, #0x18 - cmp r4, r1 - blo _080B0B0C - lsrs r0, r3, #0x19 - cmp r0, r1 - blo _080B0B18 - movs r0, #0xf - strb r0, [r2, #0x1b] - b _080B0B26 -_080B0B0C: - lsrs r0, r0, #0x19 - cmp r0, r4 - blo _080B0B18 - movs r0, #0xf0 - strb r0, [r2, #0x1b] - b _080B0B26 -_080B0B18: - movs r0, #0xff - strb r0, [r2, #0x1b] - ldrb r0, [r2, #2] - ldrb r1, [r2, #3] - adds r0, r0, r1 - lsrs r0, r0, #4 - b _080B0B36 -_080B0B26: - ldrb r0, [r2, #2] - ldrb r1, [r2, #3] - adds r0, r0, r1 - lsrs r0, r0, #4 - strb r0, [r2, #0xa] - cmp r0, #0xf - bls _080B0B38 - movs r0, #0xf -_080B0B36: - strb r0, [r2, #0xa] -_080B0B38: - ldrb r1, [r2, #0xa] - ldrb r0, [r2, #6] - muls r0, r1, r0 - adds r0, #0xf - asrs r0, r0, #4 - strb r0, [r2, #0x19] - ldrb r1, [r2, #0x1b] - ldrb r0, [r2, #0x1c] - ands r0, r1 - strb r0, [r2, #0x1b] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 - - .syntax divided diff --git a/asm/non_matching/manager15/sub_0805A9CC.inc b/asm/non_matching/manager15/sub_0805A9CC.inc index f1ce8e4d..a9cf2adc 100644 --- a/asm/non_matching/manager15/sub_0805A9CC.inc +++ b/asm/non_matching/manager15/sub_0805A9CC.inc @@ -1,4 +1,3 @@ -sub_0805A9CC: @ 0x0805A9CC push {r4, r5, lr} add r4, r0, #0 ldr r3, _0805AA4C @ =gScreen diff --git a/asm/non_matching/manager4/sub_0805795C.inc b/asm/non_matching/manager4/sub_0805795C.inc index 4f6c20b0..a74f41ed 100644 --- a/asm/non_matching/manager4/sub_0805795C.inc +++ b/asm/non_matching/manager4/sub_0805795C.inc @@ -1,4 +1,3 @@ -sub_0805795C: @ 0x0805795C push {r4, r5, r6, r7, lr} add r7, r0, #0 add r6, r1, #0 diff --git a/asm/non_matching/managerC/sub_08058D34.inc b/asm/non_matching/managerC/sub_08058D34.inc index 9f0aac05..dbbcd9e7 100644 --- a/asm/non_matching/managerC/sub_08058D34.inc +++ b/asm/non_matching/managerC/sub_08058D34.inc @@ -1,4 +1,3 @@ -sub_08058D34: @ 0x08058D34 push {r4, lr} mov r0, #0x28 bl LoadPaletteGroup diff --git a/asm/non_matching/mazaal/sub_0803BA8C.inc b/asm/non_matching/mazaal/sub_0803BA8C.inc deleted file mode 100644 index 3b0fd69f..00000000 --- a/asm/non_matching/mazaal/sub_0803BA8C.inc +++ /dev/null @@ -1,129 +0,0 @@ - - .syntax unified - - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r5, r1, #0 - movs r1, #0 - adds r4, r6, #0 - adds r4, #0x74 - ldrb r3, [r4] - movs r2, #0xe0 - ands r2, r3 - cmp r2, #0 - bne _0803BAEC - cmp r3, #0 - bne _0803BAD2 - adds r2, r6, #0 - adds r2, #0x75 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #9 - bls _0803BABA - strb r1, [r2] -_0803BABA: - ldrb r0, [r6, #0xa] - cmp r0, #2 - bne _0803BAC8 - ldr r1, _0803BAC4 @ =gUnk_080CFD30 - b _0803BACA - .align 2, 0 -_0803BAC4: .4byte gUnk_080CFD30 -_0803BAC8: - ldr r1, _0803BAE8 @ =gUnk_080CFD44 -_0803BACA: - ldrb r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] -_0803BAD2: - adds r2, r6, #0 - adds r2, #0x74 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - cmp r5, r0 - bhi _0803BB18 - movs r0, #0 - strb r0, [r2] - b _0803BB18 - .align 2, 0 -_0803BAE8: .4byte gUnk_080CFD44 -_0803BAEC: - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - bne _0803BB18 - movs r0, #0x80 - orrs r0, r3 - strb r0, [r4] - movs r0, #0x20 - ands r2, r0 - cmp r2, #0 - beq _0803BB0C - ldr r1, _0803BB08 @ =gUnk_080CFD58 - b _0803BB0E - .align 2, 0 -_0803BB08: .4byte gUnk_080CFD58 -_0803BB0C: - ldr r1, _0803BB78 @ =gUnk_080CFD5C -_0803BB0E: - ldrb r0, [r6, #0xa] - subs r0, #2 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] -_0803BB18: - cmp r1, #0 - beq _0803BB74 - adds r0, r6, #0 - bl sub_0801D2B4 - ldr r0, [r6, #0x50] - ldr r4, [r0, #0x78] - ldrb r1, [r6, #0x1a] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - ldrb r2, [r4, #0x1a] - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r3, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x1a] - ldr r0, [r6, #0x50] - ldr r5, [r0, #0x78] - ldrb r1, [r6, #0x1a] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x18 - ldrb r4, [r5, #0x1a] - movs r2, #0xf - adds r0, r2, #0 - ands r0, r4 - orrs r0, r1 - strb r0, [r5, #0x1a] - ldr r0, [r6, #0x50] - ldr r4, [r0, #0x54] - ldrb r0, [r6, #0x1a] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - ldrb r1, [r4, #0x1a] - ands r3, r1 - orrs r3, r0 - strb r3, [r4, #0x1a] - ldr r0, [r6, #0x50] - ldr r3, [r0, #0x54] - ldrb r0, [r6, #0x1a] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x18 - ldrb r1, [r3, #0x1a] - ands r2, r1 - orrs r2, r0 - strb r2, [r3, #0x1a] -_0803BB74: - pop {r4, r5, r6, pc} - .align 2, 0 -_0803BB78: .4byte gUnk_080CFD5C - .syntax divided diff --git a/asm/non_matching/minishEzlo/MinishEzlo_Head.inc b/asm/non_matching/minishEzlo/MinishEzlo_Head.inc new file mode 100644 index 00000000..f0742d98 --- /dev/null +++ b/asm/non_matching/minishEzlo/MinishEzlo_Head.inc @@ -0,0 +1,54 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r0, #0x5b + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08063006 + movs r6, #1 + movs r5, #0 + b _0806300A +_08063006: + movs r6, #0 + movs r5, #1 +_0806300A: + adds r0, r4, #0 + adds r0, #0x5b + ldrb r1, [r0] + movs r0, #8 + ands r0, r1 + movs r7, #0x8e + lsls r7, r7, #1 + cmp r0, #0 + beq _0806301E + movs r7, #0x16 +_0806301E: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r2, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 + subs r2, #1 + adds r0, r4, #0 + adds r1, r6, #0 + bl SetExtraSpriteFrame + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + adds r1, r5, #0 + bl SetExtraSpriteFrame + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r7, #0 + bl sub_0806FF10 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl SetSpriteSubEntryOffsetData1 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, r5, r6, r7, pc} + .align 2, 0 + .syntax divided diff --git a/asm/minishEzlo.s b/asm/non_matching/minishEzlo/sub_080630A4.inc similarity index 52% rename from asm/minishEzlo.s rename to asm/non_matching/minishEzlo/sub_080630A4.inc index e6c2ea60..4a041f21 100644 --- a/asm/minishEzlo.s +++ b/asm/non_matching/minishEzlo/sub_080630A4.inc @@ -1,164 +1,4 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - .syntax unified - - .text - - - thumb_func_start MinishEzlo -MinishEzlo: @ 0x08062F70 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08062FA0 - ldr r1, _08062FE8 @ =gUnk_0810C48C - adds r0, r4, #0 - bl LoadExtraSpriteData - cmp r0, #0 - beq _08062FE4 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xe] - lsls r0, r0, #1 - strb r0, [r4, #0x14] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 -_08062FA0: - adds r0, r4, #0 - movs r1, #0 - bl ExecuteScriptForEntity - adds r0, r4, #0 - bl HandleEntity0x82Actions - adds r0, r4, #0 - bl GetNextFrame - adds r4, #0x5b - ldrb r1, [r4] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08062FCC - movs r0, #0xef - ands r0, r1 - strb r0, [r4] - ldr r0, _08062FEC @ =0x000001CF - bl EnqueueSFX -_08062FCC: - ldrb r1, [r4] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08062FE4 - movs r0, #0xdf - ands r0, r1 - strb r0, [r4] - movs r0, #0x88 - lsls r0, r0, #2 - bl EnqueueSFX -_08062FE4: - pop {r4, pc} - .align 2, 0 -_08062FE8: .4byte gUnk_0810C48C -_08062FEC: .4byte 0x000001CF - - thumb_func_start MinishEzlo_Head -MinishEzlo_Head: @ 0x08062FF0 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r0, #0x5b - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08063006 - movs r6, #1 - movs r5, #0 - b _0806300A -_08063006: - movs r6, #0 - movs r5, #1 -_0806300A: - adds r0, r4, #0 - adds r0, #0x5b - ldrb r1, [r0] - movs r0, #8 - ands r0, r1 - movs r7, #0x8e - lsls r7, r7, #1 - cmp r0, #0 - beq _0806301E - movs r7, #0x16 -_0806301E: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r2, [r0] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r2, r0 - subs r2, #1 - adds r0, r4, #0 - adds r1, r6, #0 - bl SetExtraSpriteFrame - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - adds r1, r5, #0 - bl SetExtraSpriteFrame - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r7, #0 - bl sub_0806FF10 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl SetSpriteSubEntryOffsetData1 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0806305C -sub_0806305C: @ 0x0806305C - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldrb r0, [r4, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x19] - movs r2, #0x80 - lsls r2, r2, #1 - str r2, [r4, #0x6c] - str r2, [r4, #0x70] - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C - adds r0, r4, #0 - movs r1, #0x10 - bl InitAnimationForceUpdate - adds r4, #0x80 - movs r0, #0x10 - strh r0, [r4] - ldr r0, _080630A0 @ =0x0000016F - bl SoundReq - pop {r4, pc} - .align 2, 0 -_080630A0: .4byte 0x0000016F - - thumb_func_start sub_080630A4 -sub_080630A4: @ 0x080630A4 push {r4, r5, r6, lr} adds r4, r0, #0 adds r0, #0x6d @@ -332,3 +172,4 @@ _080631DC: .align 2, 0 _080631E0: .4byte 0xFFFE0000 _080631E4: .4byte gActiveScriptInfo + .syntax divided diff --git a/asm/non_matching/mountainMinish/MountainMinish_Head.inc b/asm/non_matching/mountainMinish/MountainMinish_Head.inc new file mode 100644 index 00000000..b51e3e3c --- /dev/null +++ b/asm/non_matching/mountainMinish/MountainMinish_Head.inc @@ -0,0 +1,67 @@ + .syntax unified + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x5a + ldrb r4, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r4, r0 + ldrb r2, [r5, #0x1e] + adds r0, r5, #0 + movs r1, #1 + bl SetExtraSpriteFrame + movs r0, #0x40 + ands r0, r4 + cmp r0, #0 + beq _08068226 + movs r0, #0xe1 + rsbs r0, r0, #0 + ands r4, r0 + adds r2, r4, #4 + adds r0, r5, #0 + movs r1, #0 + bl SetExtraSpriteFrame + adds r0, r5, #0 + movs r1, #2 + movs r2, #0xff + bl SetExtraSpriteFrame + adds r0, r5, #0 + movs r1, #1 + movs r2, #0 + bl SetSpriteSubEntryOffsetData1 + b _08068268 +_08068226: + movs r0, #0x20 + ands r0, r4 + cmp r0, #0 + beq _08068254 + adds r0, r5, #0 + movs r1, #0 + movs r2, #0xff + bl SetExtraSpriteFrame + movs r0, #0xe1 + rsbs r0, r0, #0 + ands r4, r0 + adds r0, r5, #0 + movs r1, #2 + adds r2, r4, #0 + bl SetExtraSpriteFrame + adds r0, r5, #0 + movs r1, #1 + movs r2, #2 + bl SetSpriteSubEntryOffsetData1 + b _08068268 +_08068254: + adds r0, r5, #0 + movs r1, #0 + movs r2, #0xff + bl SetExtraSpriteFrame + adds r0, r5, #0 + movs r1, #2 + movs r2, #0xff + bl SetExtraSpriteFrame +_08068268: + adds r0, r5, #0 + bl sub_0807000C + pop {r4, r5, pc} + .syntax divided diff --git a/asm/non_matching/mountainMinish/sub_08067EF0.inc b/asm/non_matching/mountainMinish/sub_08067EF0.inc new file mode 100644 index 00000000..3087d0e6 --- /dev/null +++ b/asm/non_matching/mountainMinish/sub_08067EF0.inc @@ -0,0 +1,249 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldrb r4, [r5, #0xc] + cmp r4, #1 + beq _08067F58 + cmp r4, #1 + bgt _08067F04 + cmp r4, #0 + beq _08067F10 + b _0806801A +_08067F04: + cmp r4, #2 + beq _08067FDC + cmp r4, #3 + bne _08067F0E + b _08068000 +_08067F0E: + b _0806801A +_08067F10: + ldr r1, _08067F50 @ =gUnk_08111358 + adds r0, r5, #0 + bl LoadExtraSpriteData + cmp r0, #0 + bne _08067F1E + b _080680F0 +_08067F1E: + 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] + strb r0, [r5, #0x14] + adds r0, r5, #0 + adds r0, #0x69 + strb r4, [r0] + adds r0, r5, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r5, #0 + bl sub_0807DD50 + ldr r1, _08067F54 @ =gUnk_08111304 + ldrb r0, [r5, #0xb] + adds r0, r0, r1 + ldrb r1, [r0] + b _08067FF2 + .align 2, 0 +_08067F50: .4byte gUnk_08111358 +_08067F54: .4byte gUnk_08111304 +_08067F58: + adds r4, r5, #0 + adds r4, #0x39 + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #2 + bne _08067F98 + movs r1, #0 + movs r0, #3 + strb r0, [r5, #0xc] + strb r1, [r4] + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r1, r5, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _08067F94 @ =gPlayerEntity + adds r0, r5, #0 + bl GetFacingDirection + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r5, #0 + bl InitializeAnimation + adds r0, r5, #0 + bl sub_0806F118 + b _0806801A + .align 2, 0 +_08067F94: .4byte gPlayerEntity +_08067F98: + adds r0, r5, #0 + movs r1, #0 + bl ExecuteScriptForEntity + adds r0, r5, #0 + bl HandleEntity0x82Actions + ldrb r0, [r5, #0xb] + cmp r0, #3 + bne _0806801A + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0 + beq _0806801A + movs r1, #0 + movs r0, #2 + strb r0, [r5, #0xc] + strb r1, [r4] + ldr r1, _08067FD8 @ =gPlayerEntity + adds r0, r5, #0 + bl GetFacingDirection + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r5, #0 + bl InitializeAnimation + adds r0, r5, #0 + bl sub_08068190 + b _0806801A + .align 2, 0 +_08067FD8: .4byte gPlayerEntity +_08067FDC: + ldr r0, _08067FFC @ =gTextBox + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0806801A + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x14] + lsrs r1, r1, #1 + adds r1, #4 +_08067FF2: + adds r0, r5, #0 + bl InitializeAnimation + b _0806801A + .align 2, 0 +_08067FFC: .4byte gTextBox +_08068000: + adds r0, r5, #0 + bl UpdateFuseInteraction + cmp r0, #0 + beq _0806801A + movs r0, #1 + strb r0, [r5, #0xc] + adds r0, r5, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r5, #0 + bl InitializeAnimation +_0806801A: + adds r0, r5, #0 + adds r0, #0x59 + ldrb r1, [r0] + adds r7, r0, #0 + cmp r1, #0xff + beq _0806802C + adds r0, r5, #0 + bl GetNextFrame +_0806802C: + adds r1, r5, #0 + adds r1, #0x5b + ldrb r2, [r1] + movs r0, #1 + ands r0, r2 + adds r6, r1, #0 + cmp r0, #0 + beq _0806807E + movs r0, #0xfe + ands r0, r2 + strb r0, [r6] + adds r0, r5, #0 + bl sub_080040A8 + cmp r0, #0 + bne _08068068 + ldr r4, _08068064 @ =gUnk_0811137A + bl Random + movs r1, #3 + bl __modsi3 + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + bl SoundReq + b _0806807E + .align 2, 0 +_08068064: .4byte gUnk_0811137A +_08068068: + ldr r4, _080680F4 @ =gUnk_08111374 + bl Random + movs r1, #3 + bl __modsi3 + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + bl EnqueueSFX +_0806807E: + ldrb r1, [r6] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080680A8 + movs r0, #0xfd + ands r0, r1 + strb r0, [r6] + adds r0, r5, #0 + movs r1, #4 + movs r2, #0 + bl CreateFx + adds r1, r0, #0 + cmp r1, #0 + beq _080680A8 + ldr r3, _080680F8 @ =0xFFE80000 + adds r0, r5, #0 + movs r2, #0 + bl PositionRelative +_080680A8: + ldrb r1, [r6] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080680D2 + movs r0, #0xfb + ands r0, r1 + strb r0, [r6] + adds r0, r5, #0 + movs r1, #0x3d + movs r2, #0x20 + bl CreateFx + adds r1, r0, #0 + cmp r1, #0 + beq _080680D2 + ldr r2, _080680FC @ =0xFFEC0000 + ldr r3, _08068100 @ =0xFFF60000 + adds r0, r5, #0 + bl PositionRelative +_080680D2: + ldrb r1, [r6] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080680F0 + movs r0, #0xf7 + ands r0, r1 + strb r0, [r6] + bl Random + movs r1, #0x1f + ands r0, r1 + ldrb r1, [r7] + adds r0, r0, r1 + strb r0, [r7] +_080680F0: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080680F4: .4byte gUnk_08111374 +_080680F8: .4byte 0xFFE80000 +_080680FC: .4byte 0xFFEC0000 +_08068100: .4byte 0xFFF60000 + .syntax divided diff --git a/asm/non_matching/mountainMinish/sub_0806811C.inc b/asm/non_matching/mountainMinish/sub_0806811C.inc new file mode 100644 index 00000000..fc57bc7d --- /dev/null +++ b/asm/non_matching/mountainMinish/sub_0806811C.inc @@ -0,0 +1,62 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + adds r7, r0, #0 + cmp r7, #0 + beq _0806812E + subs r0, #1 + strb r0, [r4, #0xe] + b _0806818A +_0806812E: + movs r0, #2 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0x20 + movs r2, #0x20 + bl sub_0806EDD8 + adds r3, r0, #0 + cmp r3, #0 + bge _08068148 + ldrb r0, [r4, #0xa] + strb r0, [r4, #0x14] + lsls r3, r0, #2 +_08068148: + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #5 + asrs r1, r3, #1 + lsls r1, r1, #1 + ldr r2, _0806818C @ =gUnk_08111284 + adds r1, r1, r2 + adds r0, r0, r1 + ldrb r6, [r0] + ldrb r5, [r0, #1] + movs r0, #0x80 + ands r0, r5 + cmp r0, #0 + beq _0806816C + adds r0, r3, #0 + bl sub_0806F5B0 + strb r0, [r4, #0x14] +_0806816C: + movs r0, #0x40 + orrs r6, r0 + adds r0, r4, #0 + adds r0, #0x5a + strb r6, [r0] + movs r0, #0x7f + ands r5, r0 + strb r5, [r4, #0x1e] + adds r0, r4, #0 + adds r0, #0x58 + strb r7, [r0] + adds r1, r4, #0 + adds r1, #0x59 + movs r0, #0xff + strb r0, [r1] +_0806818A: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806818C: .4byte gUnk_08111284 + .syntax divided diff --git a/asm/non_matching/mountainMinish/sub_08068190.inc b/asm/non_matching/mountainMinish/sub_08068190.inc new file mode 100644 index 00000000..496f19d5 --- /dev/null +++ b/asm/non_matching/mountainMinish/sub_08068190.inc @@ -0,0 +1,37 @@ + .syntax unified + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrb r5, [r6, #0xb] + cmp r5, #8 + bls _0806819C + movs r5, #8 +_0806819C: + movs r0, #0x7e + bl CheckLocalFlag + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f + movs r0, #0x41 + bl GetInventoryValue + cmp r0, #0 + beq _080681B4 + movs r4, #2 +_080681B4: + movs r0, #2 + bl GetInventoryValue + cmp r0, #0 + beq _080681C0 + movs r4, #3 +_080681C0: + ldr r2, _080681D4 @ =gUnk_0811130E + lsls r0, r4, #1 + lsls r1, r5, #3 + adds r0, r0, r1 + adds r0, r0, r2 + ldrh r0, [r0] + adds r1, r6, #0 + bl TextboxNoOverlap + pop {r4, r5, r6, pc} + .align 2, 0 +_080681D4: .4byte gUnk_0811130E + .syntax divided diff --git a/asm/non_matching/npc23/sub_08066490.inc b/asm/non_matching/npc23/sub_08066490.inc new file mode 100644 index 00000000..87549b7f --- /dev/null +++ b/asm/non_matching/npc23/sub_08066490.inc @@ -0,0 +1,66 @@ + .syntax unified + push {r4, r5, r6, lr} + mov ip, r0 + adds r5, r1, #0 + ldrb r1, [r0, #0xb] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0806650A + mov r1, ip + ldrh r0, [r1, #0x2e] + adds r1, #0x86 + strh r0, [r1] + mov r0, ip + adds r0, #0x7e + ldrh r2, [r0] + adds r0, #4 + ldrh r0, [r0] + adds r3, r2, r0 + subs r4, r2, r0 + movs r6, #0x2e + ldrsh r0, [r5, r6] + cmp r0, r3 + bge _080664C6 + cmp r0, r4 + ble _080664C6 + adds r2, r0, #0 + b _080664D2 +_080664C6: + movs r2, #0x2e + ldrsh r0, [r5, r2] + adds r2, r4, #0 + cmp r0, r3 + blt _080664D2 + adds r2, r3, #0 +_080664D2: + ldrh r0, [r1] + cmp r0, r2 + bne _080664F0 + mov r1, ip + adds r1, #0x84 + ldrh r0, [r1] + cmp r0, #1 + bne _0806650A + movs r0, #0 + strh r0, [r1] + mov r0, ip + movs r1, #2 + bl InitializeAnimation + b _0806650A +_080664F0: + mov r6, ip + strh r2, [r6, #0x2e] + mov r1, ip + adds r1, #0x84 + ldrh r0, [r1] + cmp r0, #0 + bne _0806650A + movs r0, #1 + strh r0, [r1] + mov r0, ip + movs r1, #6 + bl InitializeAnimation +_0806650A: + pop {r4, r5, r6, pc} + .syntax divided diff --git a/asm/non_matching/npc23/sub_0806650C.inc b/asm/non_matching/npc23/sub_0806650C.inc new file mode 100644 index 00000000..f545b4db --- /dev/null +++ b/asm/non_matching/npc23/sub_0806650C.inc @@ -0,0 +1,57 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + adds r3, r0, #0 + movs r4, #0 + ldr r1, _0806652C @ =gPlayerEntity + ldrh r5, [r1, #0x2e] + adds r7, r5, #0 + ldrh r2, [r1, #0x32] + adds r0, #0x80 + ldrh r0, [r0] + adds r0, #0x10 + adds r6, r1, #0 + cmp r2, r0 + bge _08066530 + movs r4, #4 + b _0806654C + .align 2, 0 +_0806652C: .4byte gPlayerEntity +_08066530: + adds r0, r3, #0 + adds r0, #0x7e + ldrh r1, [r0] + adds r0, r1, #2 + cmp r5, r0 + bge _0806653E + movs r4, #2 +_0806653E: + adds r0, r1, #6 + cmp r7, r0 + ble _08066546 + movs r4, #6 +_08066546: + cmp r4, #0 + bne _0806654C + strh r4, [r6, #0x24] +_0806654C: + ldrb r0, [r6, #0xc] + cmp r0, #0xf + beq _0806656A + cmp r4, #0 + bne _0806655A + movs r0, #0 + b _0806656C +_0806655A: + movs r0, #8 + movs r1, #0 + movs r2, #0 + bl sub_08078AC0 + strb r4, [r6, #0x14] + lsls r0, r4, #2 + strb r0, [r6, #0x15] +_0806656A: + movs r0, #1 +_0806656C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/npc23/sub_08066570.inc b/asm/non_matching/npc23/sub_08066570.inc new file mode 100644 index 00000000..00dc26d9 --- /dev/null +++ b/asm/non_matching/npc23/sub_08066570.inc @@ -0,0 +1,59 @@ + .syntax unified + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080665DE + ldrb r0, [r5, #0xc] + cmp r0, #3 + beq _080665DE + ldr r4, _080665E0 @ =gPlayerEntity + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x50 + bl sub_0806FC80 + cmp r0, #0 + beq _080665DE + adds r0, r5, #0 + adds r1, r4, #0 + bl GetFacingDirection + adds r3, r0, #0 + movs r6, #1 + movs r1, #0x18 + adds r4, r3, #0 + ands r4, r1 + ldrb r0, [r5, #0x15] + adds r2, r1, #0 + ands r2, r0 + cmp r2, r4 + bne _080665C8 + adds r2, r3, #5 + movs r1, #7 + ands r2, r1 + ldrb r0, [r5, #0x15] + adds r0, #5 + ands r0, r1 + cmp r0, #2 + bhi _080665C8 + cmp r2, #2 + bhi _080665C8 + movs r6, #0 +_080665C8: + cmp r6, #0 + beq _080665DE + strb r3, [r5, #0x15] + adds r3, #4 + movs r0, #0x18 + ands r3, r0 + lsrs r3, r3, #3 + adds r0, r5, #0 + adds r1, r3, #0 + bl InitializeAnimation +_080665DE: + pop {r4, r5, r6, pc} + .align 2, 0 +_080665E0: .4byte gPlayerEntity + .syntax divided diff --git a/asm/non_matching/npc5/sub_08060FD0.inc b/asm/non_matching/npc5/sub_08060FD0.inc index 7f5cf29c..4e81f326 100644 --- a/asm/non_matching/npc5/sub_08060FD0.inc +++ b/asm/non_matching/npc5/sub_08060FD0.inc @@ -1,7 +1,6 @@ .syntax unified .text -sub_08060FD0: @ 0x08060FD0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb diff --git a/asm/non_matching/npc5/sub_08061170.inc b/asm/non_matching/npc5/sub_08061170.inc index ffde2fbf..fe9d7f84 100644 --- a/asm/non_matching/npc5/sub_08061170.inc +++ b/asm/non_matching/npc5/sub_08061170.inc @@ -1,7 +1,6 @@ .syntax unified .text -sub_08061170: @ 0x08061170 push {r4, r5, lr} adds r4, r0, #0 bl UpdateAnimationSingleFrame diff --git a/asm/non_matching/npc5/sub_080611D4.inc b/asm/non_matching/npc5/sub_080611D4.inc index 97048cc0..c30d3dda 100644 --- a/asm/non_matching/npc5/sub_080611D4.inc +++ b/asm/non_matching/npc5/sub_080611D4.inc @@ -1,7 +1,6 @@ .syntax unified .text -sub_080611D4: @ 0x080611D4 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x14] diff --git a/asm/non_matching/npc5/sub_08061358.inc b/asm/non_matching/npc5/sub_08061358.inc index ab2190cd..fa9f4f14 100644 --- a/asm/non_matching/npc5/sub_08061358.inc +++ b/asm/non_matching/npc5/sub_08061358.inc @@ -1,7 +1,6 @@ .syntax unified .text -sub_08061358: @ 0x08061358 push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r5, [r4, #0xd] diff --git a/asm/non_matching/npc5/sub_08061464.inc b/asm/non_matching/npc5/sub_08061464.inc index 7a0f024a..aaba9f38 100644 --- a/asm/non_matching/npc5/sub_08061464.inc +++ b/asm/non_matching/npc5/sub_08061464.inc @@ -1,7 +1,6 @@ .syntax unified .text -sub_08061464: @ 0x08061464 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 diff --git a/asm/non_matching/npc5/sub_08061B18.inc b/asm/non_matching/npc5/sub_08061B18.inc index f420ee89..7875a8d3 100644 --- a/asm/non_matching/npc5/sub_08061B18.inc +++ b/asm/non_matching/npc5/sub_08061B18.inc @@ -1,7 +1,6 @@ .syntax unified .text -sub_08061B18: @ 0x08061B18 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 diff --git a/asm/phonograph.s b/asm/non_matching/phonograph/sub_0806E964.inc similarity index 68% rename from asm/phonograph.s rename to asm/non_matching/phonograph/sub_0806E964.inc index dc6a64f8..0f7e9760 100644 --- a/asm/phonograph.s +++ b/asm/non_matching/phonograph/sub_0806E964.inc @@ -1,50 +1,4 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - .syntax unified - - .text - - thumb_func_start Phonograph -Phonograph: @ 0x0806E91C - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _0806E950 - adds r0, #1 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r5, #0x18] - adds r1, r5, #0 - adds r1, #0x68 - movs r4, #0 - movs r0, #1 - strh r0, [r1] - adds r1, #2 - ldr r0, _0806E960 @ =0x0000FFFF - strh r0, [r1] - adds r0, r5, #0 - bl sub_0807DD64 - strb r4, [r5, #0x1e] -_0806E950: - adds r0, r5, #0 - movs r1, #0 - bl ExecuteScriptForEntity - adds r0, r5, #0 - bl HandleEntity0x82Actions - pop {r4, r5, pc} - .align 2, 0 -_0806E960: .4byte 0x0000FFFF - - thumb_func_start sub_0806E964 -sub_0806E964: @ 0x0806E964 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 @@ -225,26 +179,4 @@ _0806EAAA: .align 2, 0 _0806EAB4: .4byte 0x80010000 _0806EAB8: .4byte gActiveScriptInfo - - thumb_func_start sub_0806EABC -sub_0806EABC: @ 0x0806EABC - push {r4, lr} - adds r4, r1, #0 - bl sub_08050384 - ldr r1, _0806EAE0 @ =gUnk_020227E8 - ldr r2, _0806EAE4 @ =0x00202020 - adds r0, r4, #0 - bl sub_08057044 - ldr r0, _0806EAE8 @ =0x00003302 - ldr r1, _0806EAEC @ =gUnk_081146B8 - bl sub_0805F46C - ldr r1, _0806EAF0 @ =gScreen - movs r0, #1 - strh r0, [r1, #0xe] - pop {r4, pc} - .align 2, 0 -_0806EAE0: .4byte gUnk_020227E8 -_0806EAE4: .4byte 0x00202020 -_0806EAE8: .4byte 0x00003302 -_0806EAEC: .4byte gUnk_081146B8 -_0806EAF0: .4byte gScreen + .syntax divided diff --git a/asm/non_matching/picolyteBottles/sub_0806DF74.inc b/asm/non_matching/picolyteBottles/sub_0806DF74.inc new file mode 100644 index 00000000..b18ebae9 --- /dev/null +++ b/asm/non_matching/picolyteBottles/sub_0806DF74.inc @@ -0,0 +1,34 @@ + .syntax unified + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_0807DD94 + ldrb r0, [r4, #0xe] + cmp r0, #0xff + beq _0806DFB0 + adds r0, r4, #0 + adds r0, #0x44 + ldrb r0, [r0] + cmp r0, #0 + beq _0806DF96 + ldr r1, [r4, #0x70] + ldrb r0, [r1, #0xe] + adds r0, #1 + strb r0, [r1, #0xe] +_0806DF96: + ldr r1, [r4, #0x68] + ldrb r0, [r1, #0xe] + adds r0, #1 + strb r0, [r1, #0xe] + ldr r1, [r4, #0x6c] + ldrb r0, [r1, #0xe] + adds r0, #1 + strb r0, [r1, #0xe] + movs r0, #0xff + strb r0, [r4, #0xe] + movs r0, #0 + bl SetRoomFlag +_0806DFB0: + pop {r4, pc} + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/picolyteBottles/sub_0806E014.inc b/asm/non_matching/picolyteBottles/sub_0806E014.inc new file mode 100644 index 00000000..f00a6ec0 --- /dev/null +++ b/asm/non_matching/picolyteBottles/sub_0806E014.inc @@ -0,0 +1,95 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + bl Random + movs r1, #0x70 + ands r1, r0 + lsrs r4, r1, #4 + movs r0, #0xff + strb r0, [r5, #0xb] + movs r0, #1 + rsbs r0, r0, #0 + adds r7, r0, #0 + strb r0, [r5, #0xe] + movs r0, #0x93 + bl CheckLocalFlag + adds r1, r0, #0 + cmp r1, #0 + bne _0806E088 + adds r0, r5, #0 + adds r0, #0x44 + strb r1, [r0] + lsls r1, r4, #1 + ldr r0, _0806E084 @ =gUnk_081142CC + adds r6, r1, r0 + ldr r1, [r5, #0x68] + ldrb r0, [r6] + strb r0, [r1, #0xf] + ldr r1, [r5, #0x68] + movs r4, #0x90 + lsls r4, r4, #0xf + adds r0, r5, #0 + adds r2, r4, #0 + adds r3, r4, #0 + bl PositionRelative + ldr r1, [r5, #0x6c] + ldrb r0, [r6, #1] + strb r0, [r1, #0xf] + ldr r1, [r5, #0x6c] + movs r2, #0xd0 + lsls r2, r2, #0xf + adds r0, r5, #0 + adds r3, r4, #0 + bl PositionRelative + ldr r1, [r5, #0x70] + ldrb r0, [r1, #0xf] + orrs r0, r7 + strb r0, [r1, #0xf] + ldr r1, [r5, #0x70] + adds r0, r5, #0 + bl CopyPosition + b _0806E0D6 + .align 2, 0 +_0806E084: .4byte gUnk_081142CC +_0806E088: + adds r1, r5, #0 + adds r1, #0x44 + movs r0, #1 + strb r0, [r1] + lsls r1, r4, #2 + ldr r0, _0806E0D8 @ =gUnk_081142DC + adds r6, r1, r0 + ldr r1, [r5, #0x68] + ldrb r0, [r6] + strb r0, [r1, #0xf] + ldr r1, [r5, #0x68] + movs r2, #0xe0 + lsls r2, r2, #0xe + movs r4, #0x90 + lsls r4, r4, #0xf + adds r0, r5, #0 + adds r3, r4, #0 + bl PositionRelative + ldr r1, [r5, #0x6c] + ldrb r0, [r6, #1] + strb r0, [r1, #0xf] + ldr r1, [r5, #0x6c] + movs r2, #0xb0 + lsls r2, r2, #0xf + adds r0, r5, #0 + adds r3, r4, #0 + bl PositionRelative + ldr r1, [r5, #0x70] + ldrb r0, [r6, #2] + strb r0, [r1, #0xf] + ldr r1, [r5, #0x70] + movs r2, #0xf0 + lsls r2, r2, #0xf + adds r0, r5, #0 + adds r3, r4, #0 + bl PositionRelative +_0806E0D6: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806E0D8: .4byte gUnk_081142DC + .syntax divided diff --git a/asm/non_matching/picolyteBottles/sub_0806E140.inc b/asm/non_matching/picolyteBottles/sub_0806E140.inc new file mode 100644 index 00000000..f20da175 --- /dev/null +++ b/asm/non_matching/picolyteBottles/sub_0806E140.inc @@ -0,0 +1,78 @@ + .syntax unified + push {r4, r5, lr} + adds r3, r0, #0 + adds r5, r1, #0 + ldrb r1, [r3, #0xb] + cmp r1, #0 + beq _0806E1AC + movs r0, #1 + str r0, [r5, #0x14] + adds r1, r3, #0 + adds r1, #0x74 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + adds r1, #2 + ldrh r2, [r1] + adds r0, r3, #0 + adds r0, #0x44 + ldrb r0, [r0] + adds r4, r1, #0 + cmp r0, #0 + bne _0806E16E + lsls r0, r2, #1 + b _0806E172 +_0806E16E: + lsls r0, r2, #1 + adds r0, r0, r2 +_0806E172: + strh r0, [r4] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _0806E18C @ =0x000003E7 + cmp r0, r1 + bls _0806E194 + strh r1, [r4] + movs r0, #0 + str r0, [r5, #0x14] + ldr r0, _0806E190 @ =0x0000421B + bl TextboxNoOverlapFollow + b _0806E1C0 + .align 2, 0 +_0806E18C: .4byte 0x000003E7 +_0806E190: .4byte 0x0000421B +_0806E194: + ldr r0, _0806E1A4 @ =0x00004218 + bl TextboxNoOverlapFollow + ldr r1, _0806E1A8 @ =gTextBox + ldrh r0, [r4] + str r0, [r1, #0x10] + b _0806E1C0 + .align 2, 0 +_0806E1A4: .4byte 0x00004218 +_0806E1A8: .4byte gTextBox +_0806E1AC: + str r1, [r5, #0x14] + adds r0, r3, #0 + adds r0, #0x74 + strh r1, [r0] + adds r4, r3, #0 + adds r4, #0x76 + strh r1, [r4] + ldr r0, _0806E1D4 @ =0x0000421C + bl TextboxNoOverlapFollow +_0806E1C0: + ldr r1, _0806E1D8 @ =gScreenTransition + ldrh r0, [r4] + strh r0, [r1, #6] + ldr r2, _0806E1DC @ =gActiveScriptInfo + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, r5, pc} + .align 2, 0 +_0806E1D4: .4byte 0x0000421C +_0806E1D8: .4byte gScreenTransition +_0806E1DC: .4byte gActiveScriptInfo + .syntax divided diff --git a/asm/non_matching/pina/sub_08063AC0.inc b/asm/non_matching/pina/sub_08063AC0.inc new file mode 100644 index 00000000..e08da02c --- /dev/null +++ b/asm/non_matching/pina/sub_08063AC0.inc @@ -0,0 +1,64 @@ + .syntax unified + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x20 + movs r2, #0x20 + bl sub_0806ED9C + cmp r0, #0 + blt _08063AEE + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _08063AF4 + bl Random + movs r1, #0x3f + ands r1, r0 + cmp r1, #0 + bne _08063AEE + adds r0, r4, #0 + movs r1, #0 + bl InitAnimationForceUpdate + movs r0, #1 + strb r0, [r4, #0xf] +_08063AEE: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08063B0C +_08063AF4: + 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 _08063B0C + movs r0, #0 + strb r0, [r4, #0xf] +_08063B0C: + adds r0, r4, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _08063B38 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl GetAnimationState + adds r1, r0, #0 + adds r1, #4 + adds r0, r4, #0 + bl InitAnimationForceUpdate + ldrb r0, [r4, #0xe] + ldr r1, _08063B40 @ =0x00000A01 + adds r0, r0, r1 + bl TextboxNoOverlapFollow +_08063B38: + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + .align 2, 0 +_08063B40: .4byte 0x00000A01 + .syntax divided diff --git a/asm/postman.s b/asm/non_matching/postman/sub_0806076C.inc similarity index 55% rename from asm/postman.s rename to asm/non_matching/postman/sub_0806076C.inc index 98732474..086d9be1 100644 --- a/asm/postman.s +++ b/asm/non_matching/postman/sub_0806076C.inc @@ -1,13 +1,4 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - .syntax unified - - .text - - thumb_func_start sub_0806076C -sub_0806076C: @ 0x0806076C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb @@ -192,139 +183,4 @@ _080608D8: mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080608E4 -sub_080608E4: @ 0x080608E4 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #0 - str r0, [r5, #0x14] - ldr r0, [r4, #0x34] - cmp r0, #0 - blt _08060970 - adds r0, r4, #0 - adds r0, #0x38 - ldrb r1, [r0] - ldr r6, _08060974 @ =gPlayerEntity - cmp r1, #1 - bne _0806090A - adds r0, r6, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #2 - beq _08060970 -_0806090A: - cmp r1, #2 - bne _08060918 - adds r0, r6, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #1 - beq _08060970 -_08060918: - ldr r2, [r5, #4] - lsls r2, r2, #4 - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #2 - ldr r1, _08060978 @ =gUnk_0810AA70 - adds r0, r0, r1 - adds r2, r2, r0 - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r0, #0 - ldrsb r0, [r2, r0] - adds r1, r1, r0 - movs r7, #0x32 - ldrsh r3, [r4, r7] - movs r0, #1 - ldrsb r0, [r2, r0] - adds r3, r3, r0 - movs r7, #0x2e - ldrsh r0, [r6, r7] - subs r1, r0, r1 - movs r7, #0x32 - ldrsh r0, [r6, r7] - subs r3, r0, r3 - movs r0, #2 - ldrsb r0, [r2, r0] - adds r1, r1, r0 - ldrb r2, [r2, #3] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - adds r3, r3, r2 - lsls r0, r0, #1 - cmp r0, r1 - bls _08060970 - lsls r0, r2, #1 - cmp r0, r3 - bls _08060970 - movs r0, #1 - str r0, [r5, #0x14] - adds r1, r4, #0 - adds r1, #0x6a - ldrh r0, [r1] - adds r0, #2 - strh r0, [r1] -_08060970: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08060974: .4byte gPlayerEntity -_08060978: .4byte gUnk_0810AA70 - - thumb_func_start Postman_Fusion -Postman_Fusion: @ 0x0806097C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _080609A2 - adds r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - adds r0, r2, #0 - movs r1, #2 - bl InitAnimationForceUpdate - b _080609A8 -_080609A2: - adds r0, r2, #0 - bl UpdateAnimationSingleFrame -_080609A8: - pop {pc} - .align 2, 0 - - thumb_func_start CreateZeldaFollower -CreateZeldaFollower: @ 0x080609AC - push {r4, lr} - movs r0, #0x1c - bl CheckGlobalFlag - cmp r0, #0 - beq _080609E0 - movs r0, #0x2e - movs r1, #0 - movs r2, #0 - bl CreateNPC - adds r4, r0, #0 - cmp r4, #0 - beq _080609E0 - ldr r0, _080609E4 @ =gPlayerEntity - adds r1, r4, #0 - bl CopyPosition - ldrb r1, [r4, #0x10] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - bl GetAnimationState - strb r0, [r4, #0x14] -_080609E0: - pop {r4, pc} - .align 2, 0 -_080609E4: .4byte gPlayerEntity + .syntax divided diff --git a/asm/non_matching/postman/sub_080608E4.inc b/asm/non_matching/postman/sub_080608E4.inc new file mode 100644 index 00000000..52c2bf03 --- /dev/null +++ b/asm/non_matching/postman/sub_080608E4.inc @@ -0,0 +1,79 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #0 + str r0, [r5, #0x14] + ldr r0, [r4, #0x34] + cmp r0, #0 + blt _08060970 + adds r0, r4, #0 + adds r0, #0x38 + ldrb r1, [r0] + ldr r6, _08060974 @ =gPlayerEntity + cmp r1, #1 + bne _0806090A + adds r0, r6, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #2 + beq _08060970 +_0806090A: + cmp r1, #2 + bne _08060918 + adds r0, r6, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #1 + beq _08060970 +_08060918: + ldr r2, [r5, #4] + lsls r2, r2, #4 + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #2 + ldr r1, _08060978 @ =gUnk_0810AA70 + adds r0, r0, r1 + adds r2, r2, r0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r0, #0 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + movs r7, #0x32 + ldrsh r3, [r4, r7] + movs r0, #1 + ldrsb r0, [r2, r0] + adds r3, r3, r0 + movs r7, #0x2e + ldrsh r0, [r6, r7] + subs r1, r0, r1 + movs r7, #0x32 + ldrsh r0, [r6, r7] + subs r3, r0, r3 + movs r0, #2 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + ldrb r2, [r2, #3] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r3, r3, r2 + lsls r0, r0, #1 + cmp r0, r1 + bls _08060970 + lsls r0, r2, #1 + cmp r0, r3 + bls _08060970 + movs r0, #1 + str r0, [r5, #0x14] + adds r1, r4, #0 + adds r1, #0x6a + ldrh r0, [r1] + adds r0, #2 + strh r0, [r1] +_08060970: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08060974: .4byte gPlayerEntity +_08060978: .4byte gUnk_0810AA70 + .syntax divided diff --git a/asm/non_matching/rem/sub_0806A674.inc b/asm/non_matching/rem/sub_0806A674.inc new file mode 100644 index 00000000..d95609e6 --- /dev/null +++ b/asm/non_matching/rem/sub_0806A674.inc @@ -0,0 +1,235 @@ + .syntax unified + push {r4, lr} + sub sp, #8 + adds r4, r0, #0 + ldr r1, _0806A694 @ =gUnk_08112294 + mov r0, sp + movs r2, #8 + bl memcpy + ldrb r3, [r4, #0xc] + cmp r3, #1 + beq _0806A6BE + cmp r3, #1 + bgt _0806A698 + cmp r3, #0 + beq _0806A6A0 + b _0806A82A + .align 2, 0 +_0806A694: .4byte gUnk_08112294 +_0806A698: + cmp r3, #2 + bne _0806A69E + b _0806A824 +_0806A69E: + b _0806A82A +_0806A6A0: + movs r0, #1 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #9 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0x13 + bl InitializeAnimation + b _0806A82A +_0806A6BE: + ldr r0, _0806A6E0 @ =gActiveScriptInfo + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0806A6E4 + movs r0, #0 + movs r1, #2 + strb r1, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x63 + strb r0, [r1] + subs r1, #1 + strb r0, [r1] + b _0806A82A + .align 2, 0 +_0806A6E0: .4byte gActiveScriptInfo +_0806A6E4: + ldr r0, [r4, #0x50] + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #9 + bne _0806A7C8 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #3 + orrs r1, r0 + strb r1, [r2] + ldrb r2, [r4, #0xe] + cmp r2, #0 + bne _0806A724 + bl Random + adds r2, r0, #0 + movs r1, #7 + ands r0, r1 + strb r0, [r4, #0xe] + lsrs r0, r2, #8 + movs r1, #7 + ands r0, r1 + add r0, sp + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x68 + strb r1, [r0] + b _0806A75A +_0806A724: + ldr r0, _0806A780 @ =gScreenTransition + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0806A75A + subs r0, r2, #1 + strb r0, [r4, #0xe] + adds r2, r4, #0 + adds r2, #0x62 + movs r0, #0 + ldrsb r0, [r2, r0] + adds r1, r4, #0 + adds r1, #0x68 + cmp r0, #0 + bgt _0806A746 + strb r3, [r1] +_0806A746: + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0xf + ble _0806A752 + movs r0, #0xff + strb r0, [r1] +_0806A752: + ldrb r0, [r1] + ldrb r1, [r2] + adds r0, r0, r1 + strb r0, [r2] +_0806A75A: + ldrb r2, [r4, #0xf] + cmp r2, #0 + bne _0806A784 + bl Random + adds r2, r0, #0 + movs r1, #7 + ands r0, r1 + strb r0, [r4, #0xf] + lsrs r0, r2, #8 + movs r1, #7 + ands r0, r1 + add r0, sp + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x69 + strb r1, [r0] + b _0806A82A + .align 2, 0 +_0806A780: .4byte gScreenTransition +_0806A784: + ldr r0, _0806A7C4 @ =gScreenTransition + ldr r0, [r0] + lsrs r0, r0, #4 + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0806A82A + subs r0, r2, #1 + strb r0, [r4, #0xf] + adds r3, r4, #0 + adds r3, #0x63 + movs r0, #0 + ldrsb r0, [r3, r0] + adds r2, r4, #0 + adds r2, #0x69 + cmp r0, #0 + blt _0806A7AA + movs r0, #0xff + strb r0, [r2] +_0806A7AA: + movs r1, #0 + ldrsb r1, [r3, r1] + movs r0, #8 + rsbs r0, r0, #0 + cmp r1, r0 + bgt _0806A7BA + movs r0, #1 + strb r0, [r2] +_0806A7BA: + ldrb r0, [r2] + ldrb r1, [r3] + adds r0, r0, r1 + strb r0, [r3] + b _0806A82A + .align 2, 0 +_0806A7C4: .4byte gScreenTransition +_0806A7C8: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #6 + orrs r1, r0 + strb r1, [r2] + adds r1, r4, #0 + adds r1, #0x62 + ldrb r0, [r1] + movs r2, #0 + ldrsb r2, [r1, r2] + cmp r2, #0 + beq _0806A7FE + cmp r2, #0 + ble _0806A7F0 + subs r0, #1 + strb r0, [r1] +_0806A7F0: + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bge _0806A7FE + adds r0, r2, #1 + strb r0, [r1] +_0806A7FE: + adds r1, r4, #0 + adds r1, #0x63 + ldrb r0, [r1] + movs r2, #0 + ldrsb r2, [r1, r2] + cmp r2, #0 + beq _0806A82A + cmp r2, #0 + ble _0806A814 + subs r0, #1 + strb r0, [r1] +_0806A814: + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bge _0806A82A + adds r0, r2, #1 + strb r0, [r1] + b _0806A82A +_0806A824: + adds r0, r4, #0 + bl GetNextFrame +_0806A82A: + add sp, #8 + pop {r4, pc} + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/rem/sub_0806AA50.inc b/asm/non_matching/rem/sub_0806AA50.inc new file mode 100644 index 00000000..8d40bee1 --- /dev/null +++ b/asm/non_matching/rem/sub_0806AA50.inc @@ -0,0 +1,153 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r5, r1, #0 + ldrb r0, [r5, #0x18] + cmp r0, #1 + beq _0806AB38 + cmp r0, #1 + bgt _0806AA6A + cmp r0, #0 + beq _0806AA70 + b _0806AB64 +_0806AA6A: + cmp r0, #2 + beq _0806AB5C + b _0806AB64 +_0806AA70: + str r0, [r5, #0x14] + movs r0, #0x8f + bl CheckLocalFlag + cmp r0, #0 + bne _0806AA84 + ldr r2, _0806AA80 @ =gUnk_081122A8 + b _0806AA9A + .align 2, 0 +_0806AA80: .4byte gUnk_081122A8 +_0806AA84: + movs r0, #0x15 + bl GetInventoryValue + cmp r0, #0 + bne _0806AA98 + ldr r2, _0806AA94 @ =gUnk_081122B0 + b _0806AA9A + .align 2, 0 +_0806AA94: .4byte gUnk_081122B0 +_0806AA98: + ldr r2, _0806AAD0 @ =gUnk_081122B8 +_0806AA9A: + ldr r1, _0806AAD4 @ =gRoomVars + ldr r0, [r1, #0x68] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r7, [r0] + mov r8, r1 + mov r4, r8 + ldr r0, [r4, #0x68] + adds r0, #1 + str r0, [r4, #0x68] + cmp r0, #2 + bls _0806AAB6 + movs r0, #0 + str r0, [r4, #0x68] +_0806AAB6: + adds r0, r7, #0 + adds r1, r6, #0 + bl TextboxNoOverlap + ldr r0, [r5, #4] + cmp r0, #1 + beq _0806AAEE + cmp r0, #1 + blo _0806AAD8 + cmp r0, #2 + beq _0806AB02 + b _0806AB1C + .align 2, 0 +_0806AAD0: .4byte gUnk_081122B8 +_0806AAD4: .4byte gRoomVars +_0806AAD8: + adds r0, r4, #0 + adds r0, #0xac + str r6, [r0] + adds r0, r6, #0 + movs r1, #7 + bl PrependEntityToList + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r6, #0x20] + b _0806AB1C +_0806AAEE: + adds r0, r4, #0 + adds r0, #0xac + ldr r0, [r0] + movs r1, #7 + bl FindNextDuplicateID + adds r1, r0, #0 + adds r0, r4, #0 + adds r0, #0xb0 + b _0806AB14 +_0806AB02: + mov r0, r8 + adds r0, #0xb0 + ldr r0, [r0] + movs r1, #7 + bl FindNextDuplicateID + adds r1, r0, #0 + mov r0, r8 + adds r0, #0xb4 +_0806AB14: + str r1, [r0] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r1, #0x20] +_0806AB1C: + ldr r0, _0806AB34 @ =0x0000441E + cmp r7, r0 + bne _0806AB2C + movs r0, #0x8f + bl SetLocalFlag + movs r0, #1 + str r0, [r5, #0x14] +_0806AB2C: + movs r0, #1 + strb r0, [r5, #0x18] + b _0806AB64 + .align 2, 0 +_0806AB34: .4byte 0x0000441E +_0806AB38: + ldr r0, _0806AB58 @ =gRoomVars + ldr r1, [r5, #4] + lsls r1, r1, #2 + adds r0, #0xac + adds r1, r1, r0 + ldr r1, [r1] + movs r2, #0x36 + ldrsh r0, [r1, r2] + cmp r0, #0 + blt _0806AB64 + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r1, #0x20] + movs r0, #2 + strb r0, [r5, #0x18] + b _0806AB64 + .align 2, 0 +_0806AB58: .4byte gRoomVars +_0806AB5C: + movs r1, #0x36 + ldrsh r0, [r6, r1] + cmp r0, #0 + bge _0806AB6A +_0806AB64: + ldr r1, _0806AB70 @ =gActiveScriptInfo + movs r0, #0 + strb r0, [r1, #6] +_0806AB6A: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806AB70: .4byte gActiveScriptInfo + .syntax divided diff --git a/asm/non_matching/sittingPerson/SittingPerson_Head.inc b/asm/non_matching/sittingPerson/SittingPerson_Head.inc new file mode 100644 index 00000000..5e2a7ef9 --- /dev/null +++ b/asm/non_matching/sittingPerson/SittingPerson_Head.inc @@ -0,0 +1,42 @@ + .syntax unified + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xa] + lsls r5, r5, #2 + ldr r0, _080639C8 @ =gUnk_0810CBC0 + adds r5, r5, r0 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #0xf + ands r2, r0 + ldrb r0, [r5] + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0 + bl SetExtraSpriteFrame + ldr r2, _080639CC @ =gUnk_0810CD88 + ldrb r1, [r4, #0x1e] + movs r0, #3 + ands r0, r1 + ldrb r1, [r4, #0xa] + lsls r1, r1, #2 + adds r0, r0, r1 + adds r0, r0, r2 + ldrb r2, [r0] + ldrb r0, [r5, #1] + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #1 + bl SetExtraSpriteFrame + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl SetSpriteSubEntryOffsetData1 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, r5, pc} + .align 2, 0 +_080639C8: .4byte gUnk_0810CBC0 +_080639CC: .4byte gUnk_0810CD88 + .syntax divided diff --git a/asm/non_matching/sittingPerson/sub_08063758.inc b/asm/non_matching/sittingPerson/sub_08063758.inc new file mode 100644 index 00000000..8684d941 --- /dev/null +++ b/asm/non_matching/sittingPerson/sub_08063758.inc @@ -0,0 +1,49 @@ + .syntax unified + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08063794 @ =gUnk_0810CB78 + adds r1, r1, r0 + adds r0, r4, #0 + bl LoadExtraSpriteData + cmp r0, #0 + beq _080637B4 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xe] + ands r1, r2 + lsls r1, r1, #6 + ldrb r2, [r4, #0x18] + subs r0, #0x42 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + lsls r0, r0, #0x19 + cmp r0, #0 + blt _08063798 + movs r0, #6 + b _0806379A + .align 2, 0 +_08063794: .4byte gUnk_0810CB78 +_08063798: + movs r0, #2 +_0806379A: + strb r0, [r4, #0x14] + ldrb r0, [r4, #0x14] + movs r1, #0 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x69 + strb r1, [r0] + adds r0, r4, #0 + bl sub_0807DD50 + adds r0, r4, #0 + bl sub_080637B8 +_080637B4: + pop {r4, pc} + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/sittingPerson/sub_08063850.inc b/asm/non_matching/sittingPerson/sub_08063850.inc new file mode 100644 index 00000000..7ecf28e3 --- /dev/null +++ b/asm/non_matching/sittingPerson/sub_08063850.inc @@ -0,0 +1,19 @@ + .syntax unified + push {lr} + ldrb r3, [r0, #0x18] + lsls r3, r3, #0x19 + lsrs r3, r3, #0x1f + rsbs r2, r3, #0 + orrs r2, r3 + asrs r2, r2, #0x1f + movs r3, #4 + ands r2, r3 + ldr r1, [r1, #4] + adds r1, r1, r2 + ldrb r2, [r0, #0x14] + lsrs r2, r2, #1 + adds r1, r1, r2 + bl InitializeAnimation + pop {pc} + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/sittingPerson/sub_0806387C.inc b/asm/non_matching/sittingPerson/sub_0806387C.inc new file mode 100644 index 00000000..1ebc3a3c --- /dev/null +++ b/asm/non_matching/sittingPerson/sub_0806387C.inc @@ -0,0 +1,66 @@ + .syntax unified + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r4, #3 + movs r0, #0xda + bl CheckLocalFlag + cmp r0, #0 + bne _08063896 + movs r4, #0 + movs r0, #0xda + bl SetLocalFlag + b _080638D6 +_08063896: + movs r0, #0xd1 + bl CheckLocalFlag + cmp r0, #0 + bne _080638D6 + movs r5, #0 + movs r4, #1 +_080638A4: + ldr r0, _080638F8 @ =gUnk_02002B0E + adds r1, r4, #0 + bl ReadBit + cmp r0, #0 + beq _080638B2 + adds r5, #1 +_080638B2: + adds r4, #1 + cmp r4, #0x82 + ble _080638A4 + movs r4, #1 + cmp r5, #0x81 + ble _080638D6 + movs r4, #2 + movs r0, #0xd1 + bl SetLocalFlag + ldr r0, _080638FC @ =0x00000A17 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _08063900 @ =0x00000A57 + movs r1, #1 + bl sub_0807BA8C +_080638D6: + ldr r0, _08063904 @ =gSave + ldrb r0, [r0, #8] + subs r1, r0, #6 + cmp r1, #0 + bge _080638E2 + movs r1, #0 +_080638E2: + ldr r2, _08063908 @ =gUnk_0810CBE4 + lsls r0, r4, #1 + lsls r1, r1, #3 + adds r0, r0, r1 + adds r0, r0, r2 + ldrh r0, [r0] + adds r1, r6, #0 + bl TextboxNoOverlap + pop {r4, r5, r6, pc} + .align 2, 0 +_080638F8: .4byte gUnk_02002B0E +_080638FC: .4byte 0x00000A17 +_08063900: .4byte 0x00000A57 +_08063904: .4byte gSave +_08063908: .4byte gUnk_0810CBE4 + .syntax divided diff --git a/asm/non_matching/sittingPerson/sub_0806390C.inc b/asm/non_matching/sittingPerson/sub_0806390C.inc new file mode 100644 index 00000000..acde9c97 --- /dev/null +++ b/asm/non_matching/sittingPerson/sub_0806390C.inc @@ -0,0 +1,27 @@ + .syntax unified + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #1 + movs r0, #0xd9 + bl CheckLocalFlag + cmp r0, #0 + bne _0806392E + movs r5, #0 + movs r0, #0xd9 + bl SetLocalFlag + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + movs r0, #1 + str r0, [r1, #0x14] +_0806392E: + ldr r0, _08063940 @ =gUnk_0810CC04 + lsls r1, r5, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl TextboxNoOverlap + pop {r4, r5, pc} + .align 2, 0 +_08063940: .4byte gUnk_0810CC04 + .syntax divided diff --git a/asm/non_matching/stockwell/sub_080650CC.inc b/asm/non_matching/stockwell/sub_080650CC.inc new file mode 100644 index 00000000..bdd7f568 --- /dev/null +++ b/asm/non_matching/stockwell/sub_080650CC.inc @@ -0,0 +1,107 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + ldr r6, _080650F8 @ =gRoomVars + ldr r0, [r6, #0x68] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08065100 + movs r1, #0 + movs r0, #4 + strb r0, [r5, #0xc] + strb r1, [r5, #0xd] + adds r0, r5, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r1, _080650FC @ =script_080143C0 + bl InitScriptExecutionContext + b _080651A6 + .align 2, 0 +_080650F8: .4byte gRoomVars +_080650FC: .4byte script_080143C0 +_08065100: + adds r2, r5, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x20 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _0806517C + adds r3, r5, #0 + adds r3, #0x39 + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #0 + beq _0806517C + strb r4, [r3] + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] + adds r0, r5, #0 + movs r1, #7 + bl InitializeAnimation + ldrb r0, [r6, #6] + cmp r0, #0 + bne _0806513C + ldr r7, _08065138 @ =0x00002C01 + b _0806515E + .align 2, 0 +_08065138: .4byte 0x00002C01 +_0806513C: + ldrb r0, [r6, #6] + bl GetSaleItemConfirmMessageID + adds r7, r0, #0 + ldrb r0, [r6, #6] + bl GetItemPrice + mov r8, r0 + movs r0, #4 + strb r0, [r5, #0xc] + strb r4, [r5, #0xd] + adds r0, r5, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r1, _08065174 @ =script_08014384 + bl InitScriptExecutionContext +_0806515E: + adds r0, r7, #0 + adds r1, r5, #0 + bl TextboxNoOverlap + ldr r1, _08065178 @ =gTextBox + mov r2, r8 + lsls r0, r2, #0x10 + lsrs r0, r0, #0x10 + str r0, [r1, #0x10] + b _080651A6 + .align 2, 0 +_08065174: .4byte script_08014384 +_08065178: .4byte gTextBox +_0806517C: + ldrb r1, [r2] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080651A0 + ldr r4, _0806519C @ =gUnk_0810FDB8 + bl Random + movs r1, #0xf + ands r1, r0 + adds r1, r1, r4 + ldrb r1, [r1] + adds r0, r5, #0 + bl InitializeAnimation + b _080651A6 + .align 2, 0 +_0806519C: .4byte gUnk_0810FDB8 +_080651A0: + adds r0, r5, #0 + bl GetNextFrame +_080651A6: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .syntax divided diff --git a/asm/non_matching/stockwell/sub_08065370.inc b/asm/non_matching/stockwell/sub_08065370.inc new file mode 100644 index 00000000..e8beb8c8 --- /dev/null +++ b/asm/non_matching/stockwell/sub_08065370.inc @@ -0,0 +1,186 @@ + .syntax unified + 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, _0806539C @ =gRoomVars + ldrb r5, [r0, #6] + movs r0, #0 + mov sb, r0 + cmp r5, #0x66 + beq _0806541A + cmp r5, #0x66 + bhi _080653AA + cmp r5, #0x61 + beq _08065426 + cmp r5, #0x61 + bhi _080653A0 + cmp r5, #0xd + beq _080653D0 + b _0806543C + .align 2, 0 +_0806539C: .4byte gRoomVars +_080653A0: + cmp r5, #0x64 + beq _08065414 + cmp r5, #0x65 + beq _08065420 + b _0806543C +_080653AA: + cmp r5, #0x6c + blo _0806543C + cmp r5, #0x6d + bls _080653EC + cmp r5, #0x6f + bhi _0806543C + ldr r2, _080653C8 @ =gQuiverSizes + ldr r1, _080653CC @ =gSave + adds r0, r1, #0 + adds r0, #0xaf + ldrb r0, [r0] + adds r0, r0, r2 + adds r1, #0xad + b _080653FA + .align 2, 0 +_080653C8: .4byte gQuiverSizes +_080653CC: .4byte gSave +_080653D0: + movs r0, #0xd + bl GetInventoryValue + cmp r0, #0 + bne _080653E4 + movs r0, #0xe + bl GetInventoryValue + cmp r0, #0 + beq _0806543C +_080653E4: + ldr r0, _080653E8 @ =0x00002C0B + b _080654C2 + .align 2, 0 +_080653E8: .4byte 0x00002C0B +_080653EC: + ldr r2, _08065408 @ =gBombBagSizes + ldr r1, _0806540C @ =gSave + adds r0, r1, #0 + adds r0, #0xae + ldrb r0, [r0] + adds r0, r0, r2 + adds r1, #0xac +_080653FA: + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bhi _0806543C + ldr r0, _08065410 @ =0x00002C0E + b _080654C2 + .align 2, 0 +_08065408: .4byte gBombBagSizes +_0806540C: .4byte gSave +_08065410: .4byte 0x00002C0E +_08065414: + movs r1, #0x55 + mov sb, r1 + b _0806543C +_0806541A: + movs r0, #0x56 + mov sb, r0 + b _0806543C +_08065420: + movs r1, #0xcd + mov sb, r1 + b _0806543C +_08065426: + ldr r0, _08065494 @ =gSave + adds r0, #0xc2 + ldrh r1, [r0] + ldr r0, _08065498 @ =0x000003E6 + cmp r1, r0 + bls _0806543C + ldr r0, _0806549C @ =0x00002C0E + adds r1, r4, #0 + bl TextboxNoOverlap + movs r6, #0 +_0806543C: + cmp r6, #0 + beq _080654C8 + adds r0, r5, #0 + bl GetItemPrice + adds r6, r0, #0 + ldr r7, _08065494 @ =gSave + adds r0, r7, #0 + adds r0, #0xc0 + ldrh r0, [r0] + cmp r6, r0 + bhi _080654C0 + rsbs r0, r6, #0 + bl ModRupees + ldr r4, _080654A0 @ =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 _0806547C + bl SetLocalFlag +_0806547C: + ldr r1, [r7, #0x5c] + movs r0, #2 + rsbs r0, r0, #0 + cmp r1, r0 + bhi _0806548A + adds r0, r1, #1 + str r0, [r7, #0x5c] +_0806548A: + ldr r0, [r7, #0x5c] + cmp r0, #9 + bls _080654A8 + ldr r0, _080654A4 @ =0x00002C11 + b _080654B6 + .align 2, 0 +_08065494: .4byte gSave +_08065498: .4byte 0x000003E6 +_0806549C: .4byte 0x00002C0E +_080654A0: .4byte gRoomVars +_080654A4: .4byte 0x00002C11 +_080654A8: + cmp r6, #0x63 + bls _080654B4 + ldr r0, _080654B0 @ =0x00002C10 + b _080654B6 + .align 2, 0 +_080654B0: .4byte 0x00002C10 +_080654B4: + ldr r0, _080654BC @ =0x00002C0F +_080654B6: + mov r1, r8 + str r0, [r1, #4] + b _080654CE + .align 2, 0 +_080654BC: .4byte 0x00002C0F +_080654C0: + ldr r0, _080654D8 @ =0x00002C0D +_080654C2: + adds r1, r4, #0 + bl TextboxNoOverlap +_080654C8: + movs r0, #0 + mov r1, r8 + str r0, [r1, #0x14] +_080654CE: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080654D8: .4byte 0x00002C0D + .syntax divided diff --git a/asm/non_matching/sturgeon/Sturgeon.inc b/asm/non_matching/sturgeon/Sturgeon.inc new file mode 100644 index 00000000..b5d0f078 --- /dev/null +++ b/asm/non_matching/sturgeon/Sturgeon.inc @@ -0,0 +1,84 @@ + .syntax unified + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08064ABC + ldr r0, _08064AB8 @ =gUnk_0810FA44 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 + b _08064B42 + .align 2, 0 +_08064AB8: .4byte gUnk_0810FA44 +_08064ABC: + ldrb r1, [r4, #0xc] + adds r5, r1, #0 + cmp r5, #0 + bne _08064AE4 + ldr r1, _08064AE0 @ =gUnk_0810FA38 + adds r0, r4, #0 + bl LoadExtraSpriteData + cmp r0, #0 + beq _08064B42 + movs r0, #1 + strb r0, [r4, #0xc] + strb r5, [r4, #0xe] + adds r0, r4, #0 + bl sub_0807DD50 + b _08064B42 + .align 2, 0 +_08064AE0: .4byte gUnk_0810FA38 +_08064AE4: + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + beq _08064B00 + adds r0, r4, #0 + bl UpdateFuseInteraction + cmp r0, #0 + beq _08064B42 + movs r0, #1 + strb r0, [r4, #0xc] + b _08064B42 +_08064B00: + adds r2, r4, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #2 + bne _08064B34 + movs r0, #0xff + orrs r0, r1 + strb r0, [r4, #0xc] + strb r3, [r2] + ldr r1, _08064B30 @ =gPlayerEntity + adds r0, r4, #0 + bl GetFacingDirection + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl InitAnimationForceUpdate + adds r0, r4, #0 + bl sub_0806F118 + b _08064B42 + .align 2, 0 +_08064B30: .4byte gPlayerEntity +_08064B34: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + adds r0, r4, #0 + bl sub_08064C9C +_08064B42: + pop {r4, r5, pc} + .syntax divided diff --git a/asm/non_matching/sturgeon/sub_08064B88.inc b/asm/non_matching/sturgeon/sub_08064B88.inc new file mode 100644 index 00000000..c1b3a290 --- /dev/null +++ b/asm/non_matching/sturgeon/sub_08064B88.inc @@ -0,0 +1,83 @@ + .syntax unified + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x39 + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #1 + beq _08064BFA + cmp r0, #1 + bgt _08064BA2 + cmp r0, #0 + beq _08064BA8 + b _08064BFA +_08064BA2: + cmp r0, #2 + beq _08064BCE + b _08064BFA +_08064BA8: + adds r0, r4, #0 + bl sub_0806EE20 + adds r2, r0, #0 + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + strb r0, [r4, #0x14] + cmp r2, #0 + beq _08064BC6 + movs r1, #0x7f + ands r1, r2 + adds r0, r4, #0 + bl InitializeAnimation +_08064BC6: + adds r0, r4, #0 + bl GetNextFrame + b _08064C28 +_08064BCE: + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl GetAnimationState + adds r1, r0, #0 + cmp r1, #0 + bge _08064BE0 + ldrb r1, [r4, #0x14] +_08064BE0: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl InitializeAnimation + movs r0, #0 + strb r0, [r5] + adds r0, r4, #0 + bl sub_0806F118 + b _08064C28 +_08064BFA: + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl GetAnimationState + adds r1, r0, #0 + cmp r1, #0 + bge _08064C0C + ldrb r1, [r4, #0x14] +_08064C0C: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl InitializeAnimation + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08064CD8 +_08064C28: + pop {r4, r5, pc} + .align 2, 0 + .syntax divided diff --git a/asm/syrup.s b/asm/non_matching/syrup/Syrup_Head.inc similarity index 90% rename from asm/syrup.s rename to asm/non_matching/syrup/Syrup_Head.inc index 35ecf185..bfc12df8 100644 --- a/asm/syrup.s +++ b/asm/non_matching/syrup/Syrup_Head.inc @@ -1,13 +1,4 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - .syntax unified - - .text - - thumb_func_start Syrup_Head -Syrup_Head: @ 0x0806A2B4 push {r4, r5, r6, lr} mov r6, sb mov r5, r8 @@ -81,3 +72,4 @@ Syrup_Head: @ 0x0806A2B4 .align 2, 0 _0806A350: .4byte gUnk_081121E4 _0806A354: .4byte gUnk_08112204 + .syntax divided diff --git a/asm/non_matching/tingleSiblings/sub_08064DE4.inc b/asm/non_matching/tingleSiblings/sub_08064DE4.inc new file mode 100644 index 00000000..d6ca6b67 --- /dev/null +++ b/asm/non_matching/tingleSiblings/sub_08064DE4.inc @@ -0,0 +1,97 @@ + .syntax unified + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08064E1A + cmp r0, #1 + bgt _08064DF8 + cmp r0, #0 + beq _08064DFE + b _08064E6A +_08064DF8: + cmp r0, #2 + beq _08064E56 + b _08064E6A +_08064DFE: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + movs r0, #4 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0807DD50 + b _08064E6A +_08064E1A: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _08064E4C + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _08064E48 @ =gPlayerEntity + adds r0, r4, #0 + bl GetFacingDirection + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl InitAnimationForceUpdate + adds r0, r4, #0 + bl sub_0806F118 + b _08064E6A + .align 2, 0 +_08064E48: .4byte gPlayerEntity +_08064E4C: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _08064E6A +_08064E56: + adds r0, r4, #0 + bl UpdateFuseInteraction + cmp r0, #0 + beq _08064E6A + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0801E99C +_08064E6A: + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r5, #0xf + ands r5, r1 + adds r0, r5, #0 + eors r0, r1 + strb r0, [r2] + cmp r5, #0 + beq _08064EA0 + movs r1, #0x29 + cmp r5, #3 + bne _08064E86 + movs r1, #0x2a +_08064E86: + adds r0, r4, #0 + movs r2, #0 + bl CreateFx + adds r2, r0, #0 + cmp r2, #0 + beq _08064EA0 + cmp r5, #2 + bne _08064EA0 + ldrb r0, [r2, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2, #0x18] +_08064EA0: + pop {r4, r5, pc} + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/tingleSiblings/sub_08064EE8.inc b/asm/non_matching/tingleSiblings/sub_08064EE8.inc new file mode 100644 index 00000000..f5ac250c --- /dev/null +++ b/asm/non_matching/tingleSiblings/sub_08064EE8.inc @@ -0,0 +1,34 @@ + .syntax unified + push {r4, r5, lr} + adds r4, r0, #0 + bl UpdateAnimationSingleFrame + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r5, #0xf + ands r5, r1 + adds r0, r5, #0 + eors r0, r1 + strb r0, [r2] + cmp r5, #0 + beq _08064F26 + movs r1, #0x2a + cmp r5, #3 + beq _08064F0C + movs r1, #0x29 +_08064F0C: + adds r0, r4, #0 + movs r2, #0 + bl CreateFx + adds r2, r0, #0 + cmp r2, #0 + beq _08064F26 + cmp r5, #2 + bne _08064F26 + ldrb r0, [r2, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2, #0x18] +_08064F26: + pop {r4, r5, pc} + .syntax divided diff --git a/asm/non_matching/tingleSiblings/sub_08064F28.inc b/asm/non_matching/tingleSiblings/sub_08064F28.inc new file mode 100644 index 00000000..837f5fc0 --- /dev/null +++ b/asm/non_matching/tingleSiblings/sub_08064F28.inc @@ -0,0 +1,121 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + mov r8, r1 + movs r0, #0 + str r0, [r1, #0x14] + ldr r1, _08064F60 @ =gUnk_0810FC50 + ldrb r0, [r6, #0xa] + adds r0, r0, r1 + ldrb r7, [r0] + adds r0, r7, #0 + bl CheckRoomFlag + cmp r0, #0 + bne _08064F84 + ldr r4, _08064F64 @ =gSave + adds r0, r6, #0 + bl sub_08002632 + ldr r1, _08064F68 @ =0x00000141 + adds r4, r4, r1 + adds r0, r0, r4 + ldrb r4, [r0] + cmp r4, #1 + bls _08064F6C + movs r5, #3 + b _08064F7E + .align 2, 0 +_08064F60: .4byte gUnk_0810FC50 +_08064F64: .4byte gSave +_08064F68: .4byte 0x00000141 +_08064F6C: + movs r0, #0xc + bl GetInventoryValue + movs r5, #2 + cmp r0, #0 + bne _08064F7E + rsbs r0, r4, #0 + orrs r0, r4 + lsrs r5, r0, #0x1f +_08064F7E: + movs r4, #1 + rsbs r4, r4, #0 + b _08064FD2 +_08064F84: + movs r0, #0x3a + bl CheckGlobalFlag + cmp r0, #0 + bne _08064FCE + ldr r0, _08064FB0 @ =gSave + ldr r1, _08064FB4 @ =0x00000117 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0x64 + subs r4, r0, r1 + cmp r4, #0 + bgt _08064FB8 + movs r5, #8 + movs r4, #0 + movs r0, #0x3a + bl SetGlobalFlag + movs r0, #1 + mov r1, r8 + str r0, [r1, #0x14] + b _08064FD2 + .align 2, 0 +_08064FB0: .4byte gSave +_08064FB4: .4byte 0x00000117 +_08064FB8: + movs r5, #7 + cmp r4, #9 + ble _08064FC0 + movs r5, #6 +_08064FC0: + cmp r4, #0x27 + ble _08064FC6 + movs r5, #5 +_08064FC6: + cmp r4, #0x45 + ble _08064FD2 + movs r5, #4 + b _08064FD2 +_08064FCE: + movs r5, #8 + movs r4, #0 +_08064FD2: + ldr r2, _08065008 @ =gUnk_0810FC08 + ldrb r1, [r6, #0xa] + lsls r0, r1, #3 + adds r0, r0, r1 + adds r0, r0, r5 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + adds r1, r6, #0 + bl TextboxNoOverlap + cmp r4, #0 + ble _08064FF4 + ldr r1, _0806500C @ =gTextBox + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + str r0, [r1, #0x10] +_08064FF4: + adds r0, r7, #0 + bl CheckRoomFlag + cmp r0, #0 + bne _08065010 + adds r0, r7, #0 + bl SetRoomFlag + b _08065016 + .align 2, 0 +_08065008: .4byte gUnk_0810FC08 +_0806500C: .4byte gTextBox +_08065010: + adds r0, r7, #0 + bl ClearRoomFlag +_08065016: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .syntax divided diff --git a/asm/zeldaFollower.s b/asm/non_matching/zeldaFollower/sub_08068318.inc similarity index 56% rename from asm/zeldaFollower.s rename to asm/non_matching/zeldaFollower/sub_08068318.inc index 51994bf1..620448a5 100644 --- a/asm/zeldaFollower.s +++ b/asm/non_matching/zeldaFollower/sub_08068318.inc @@ -1,13 +1,4 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - .syntax unified - - .text - - thumb_func_start sub_08068318 -sub_08068318: @ 0x08068318 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 @@ -293,202 +284,4 @@ _08068542: mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 - - thumb_func_start sub_0806854C -sub_0806854C: @ 0x0806854C - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0xa0 - bl zMalloc - str r0, [r5, #0x64] - cmp r0, #0 - beq _08068574 - adds r0, r5, #0 - adds r0, #0x68 - movs r4, #0 - movs r1, #1 - strb r1, [r0] - adds r0, r5, #0 - bl sub_080788E0 - str r4, [r5, #0x48] - adds r0, r5, #0 - bl sub_08068578 -_08068574: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08068578 -sub_08068578: @ 0x08068578 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r7, r0, #0 - ldr r4, _08068664 @ =gPlayerEntity - ldrh r1, [r4, #0x2e] - ldr r3, _08068668 @ =0xFFFF0000 - adds r0, r3, #0 - ands r0, r5 - orrs r0, r1 - ldrh r1, [r4, #0x32] - lsls r1, r1, #0x10 - ldr r2, _0806866C @ =0x0000FFFF - ands r0, r2 - adds r5, r0, #0 - orrs r5, r1 - ldrh r0, [r4, #0x36] - ands r3, r6 - orrs r3, r0 - ldr r0, _08068670 @ =gPlayerState - adds r0, #0xa8 - ldrb r0, [r0] - lsls r0, r0, #0x10 - ldr r2, _08068674 @ =0xFF00FFFF - ands r2, r3 - orrs r2, r0 - ldrb r1, [r4, #0x14] - movs r0, #0x3f - ands r1, r0 - lsls r1, r1, #0x18 - ldr r0, _08068678 @ =0xC0FFFFFF - ands r0, r2 - orrs r0, r1 - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - lsls r1, r1, #0x1e - ldr r2, _0806867C @ =0x3FFFFFFF - ands r0, r2 - adds r6, r0, #0 - orrs r6, r1 - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r2, #0x2e - ldrsh r0, [r7, r2] - subs r1, r1, r0 - mov sl, r1 - movs r0, #0x32 - ldrsh r1, [r4, r0] - movs r2, #0x32 - ldrsh r0, [r7, r2] - subs r1, r1, r0 - mov r8, r1 - mov r1, sl - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x14 - bl FixedDiv - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mov sl, r0 - mov r2, r8 - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x14 - bl FixedDiv - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mov r8, r0 - ldr r3, [r7, #0x64] - movs r0, #0 - mov sb, r0 - mov ip, r0 - movs r4, #0x13 -_08068614: - mov r1, ip - asrs r0, r1, #8 - subs r0, r5, r0 - strh r0, [r3] - lsrs r0, r5, #0x10 - mov r2, sb - asrs r1, r2, #8 - subs r0, r0, r1 - strh r0, [r3, #2] - strh r6, [r3, #4] - lsrs r0, r6, #0x10 - strb r0, [r3, #6] - ldrb r0, [r7, #0x14] - movs r1, #0x3f - ands r1, r0 - ldrb r2, [r3, #7] - movs r0, #0x40 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #7] - adds r1, r7, #0 - adds r1, #0x38 - ldrb r1, [r1] - lsls r1, r1, #6 - movs r2, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #7] - adds r3, #8 - add sb, r8 - add ip, sl - subs r4, #1 - cmp r4, #0 - bge _08068614 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08068664: .4byte gPlayerEntity -_08068668: .4byte 0xFFFF0000 -_0806866C: .4byte 0x0000FFFF -_08068670: .4byte gPlayerState -_08068674: .4byte 0xFF00FFFF -_08068678: .4byte 0xC0FFFFFF -_0806867C: .4byte 0x3FFFFFFF - - thumb_func_start sub_08068680 -sub_08068680: @ 0x08068680 - adds r2, r1, #0 - adds r2, #0x68 - movs r0, #0 - strb r0, [r2] - ldrb r2, [r1, #0x18] - subs r0, #4 - ands r0, r2 - strb r0, [r1, #0x18] - bx lr - .align 2, 0 - - thumb_func_start sub_08068694 -sub_08068694: @ 0x08068694 - push {r4, lr} - adds r4, r1, #0 - adds r2, r4, #0 - adds r2, #0x68 - movs r3, #1 - movs r1, #1 - strb r1, [r2] - ldrb r2, [r4, #0x18] - subs r1, #5 - ands r1, r2 - orrs r1, r3 - strb r1, [r4, #0x18] - ldrb r0, [r0, #0x14] - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_08068578 - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 - adds r0, r4, #0 - bl InitAnimationForceUpdate - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080686C4 -sub_080686C4: @ 0x080686C4 - push {lr} - adds r0, r1, #0 - ldrh r1, [r0, #0x32] - subs r1, #0x10 - strh r1, [r0, #0x32] - bl sub_08068578 - pop {pc} + .syntax divided diff --git a/asm/non_matching/zeldaFollower/sub_08068578.inc b/asm/non_matching/zeldaFollower/sub_08068578.inc new file mode 100644 index 00000000..dea71d3a --- /dev/null +++ b/asm/non_matching/zeldaFollower/sub_08068578.inc @@ -0,0 +1,127 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r7, r0, #0 + ldr r4, _08068664 @ =gPlayerEntity + ldrh r1, [r4, #0x2e] + ldr r3, _08068668 @ =0xFFFF0000 + adds r0, r3, #0 + ands r0, r5 + orrs r0, r1 + ldrh r1, [r4, #0x32] + lsls r1, r1, #0x10 + ldr r2, _0806866C @ =0x0000FFFF + ands r0, r2 + adds r5, r0, #0 + orrs r5, r1 + ldrh r0, [r4, #0x36] + ands r3, r6 + orrs r3, r0 + ldr r0, _08068670 @ =gPlayerState + adds r0, #0xa8 + ldrb r0, [r0] + lsls r0, r0, #0x10 + ldr r2, _08068674 @ =0xFF00FFFF + ands r2, r3 + orrs r2, r0 + ldrb r1, [r4, #0x14] + movs r0, #0x3f + ands r1, r0 + lsls r1, r1, #0x18 + ldr r0, _08068678 @ =0xC0FFFFFF + ands r0, r2 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + lsls r1, r1, #0x1e + ldr r2, _0806867C @ =0x3FFFFFFF + ands r0, r2 + adds r6, r0, #0 + orrs r6, r1 + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r2, #0x2e + ldrsh r0, [r7, r2] + subs r1, r1, r0 + mov sl, r1 + movs r0, #0x32 + ldrsh r1, [r4, r0] + movs r2, #0x32 + ldrsh r0, [r7, r2] + subs r1, r1, r0 + mov r8, r1 + mov r1, sl + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x14 + bl FixedDiv + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov sl, r0 + mov r2, r8 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x14 + bl FixedDiv + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov r8, r0 + ldr r3, [r7, #0x64] + movs r0, #0 + mov sb, r0 + mov ip, r0 + movs r4, #0x13 +_08068614: + mov r1, ip + asrs r0, r1, #8 + subs r0, r5, r0 + strh r0, [r3] + lsrs r0, r5, #0x10 + mov r2, sb + asrs r1, r2, #8 + subs r0, r0, r1 + strh r0, [r3, #2] + strh r6, [r3, #4] + lsrs r0, r6, #0x10 + strb r0, [r3, #6] + ldrb r0, [r7, #0x14] + movs r1, #0x3f + ands r1, r0 + ldrb r2, [r3, #7] + movs r0, #0x40 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #7] + adds r1, r7, #0 + adds r1, #0x38 + ldrb r1, [r1] + lsls r1, r1, #6 + movs r2, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #7] + adds r3, #8 + add sb, r8 + add ip, sl + subs r4, #1 + cmp r4, #0 + bge _08068614 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08068664: .4byte gPlayerEntity +_08068668: .4byte 0xFFFF0000 +_0806866C: .4byte 0x0000FFFF +_08068670: .4byte gPlayerState +_08068674: .4byte 0xFF00FFFF +_08068678: .4byte 0xC0FFFFFF +_0806867C: .4byte 0x3FFFFFFF + .syntax divided diff --git a/asm/npc23.s b/asm/npc23.s deleted file mode 100644 index bed87076..00000000 --- a/asm/npc23.s +++ /dev/null @@ -1,420 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start NPC23 -NPC23: @ 0x080662D8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080662F4 @ =gUnk_081104C8 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0806ED78 - pop {r4, pc} - .align 2, 0 -_080662F4: .4byte gUnk_081104C8 - - thumb_func_start sub_080662F8 -sub_080662F8: @ 0x080662F8 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r5, #0xc] - strb r4, [r5, #0xd] - ldrb r1, [r5, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - ldrb r0, [r5, #0xa] - lsls r0, r0, #1 - strb r0, [r5, #0x14] - ldrb r1, [r5, #0xa] - adds r0, r5, #0 - bl InitializeAnimation - ldrh r0, [r5, #0x2e] - adds r1, r5, #0 - adds r1, #0x7e - strh r0, [r1] - ldrh r1, [r5, #0x32] - adds r0, r5, #0 - adds r0, #0x80 - strh r1, [r0] - adds r0, #6 - strh r4, [r0] - ldrb r0, [r5, #0xe] - adds r1, r5, #0 - adds r1, #0x82 - strh r0, [r1] - ldr r0, _08066354 @ =gPlayerEntity - str r0, [r5, #0x50] - adds r0, r5, #0 - adds r0, #0x84 - strh r4, [r0] - ldr r1, [r5, #0x50] - adds r0, r5, #0 - bl sub_08066490 - adds r0, r5, #0 - bl sub_08078778 - pop {r4, r5, pc} - .align 2, 0 -_08066354: .4byte gPlayerEntity - - thumb_func_start sub_08066358 -sub_08066358: @ 0x08066358 - push {r4, r5, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _080663B8 - movs r5, #0 - strb r5, [r1] - movs r0, #0 - bl TextboxNoOverlapFollow - ldrb r1, [r4, #0xb] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080663C0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r5, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x7e - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - cmp r0, #8 - ble _08066396 - movs r0, #8 - b _08066398 -_08066396: - movs r0, #0x18 -_08066398: - strb r0, [r4, #0x15] - movs r0, #0x80 - strh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x84 - movs r2, #1 - movs r0, #1 - strh r0, [r1] - ldr r0, _080663B4 @ =gUnk_02034490 - strb r2, [r0] - adds r0, r4, #0 - bl sub_080788E0 - b _080663C0 - .align 2, 0 -_080663B4: .4byte gUnk_02034490 -_080663B8: - ldr r1, [r4, #0x50] - adds r0, r4, #0 - bl sub_08066490 -_080663C0: - adds r0, r4, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_08066570 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start nullsub_110 -nullsub_110: @ 0x080663D0 - bx lr - .align 2, 0 - - thumb_func_start sub_080663D4 -sub_080663D4: @ 0x080663D4 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x2e - ldrsh r1, [r4, r0] - adds r0, r4, #0 - adds r0, #0x7e - ldrh r0, [r0] - subs r0, #8 - cmp r1, r0 - bne _08066410 - ldr r0, _0806640C @ =gPlayerEntity - ldrb r0, [r0, #0xc] - cmp r0, #0xf - beq _0806642E - movs r0, #0 - movs r1, #4 - strb r1, [r4, #0xc] - strb r0, [r4, #0x15] - strh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x84 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #2 - bl InitializeAnimation - b _0806642E - .align 2, 0 -_0806640C: .4byte gPlayerEntity -_08066410: - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _08066428 - ldrb r1, [r4, #0x15] - lsrs r1, r1, #3 - adds r1, #4 - adds r0, r4, #0 - bl InitializeAnimation - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] -_08066428: - adds r0, r4, #0 - bl ProcessMovement -_0806642E: - bl sub_08078B48 - adds r0, r4, #0 - bl GetNextFrame - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806643C -sub_0806643C: @ 0x0806643C - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_0806650C - adds r4, r0, #0 - cmp r4, #0 - bne _08066462 - movs r0, #5 - strb r0, [r5, #0xc] - ldr r0, _0806646C @ =gRoomControls - str r4, [r0, #0x30] - movs r0, #0x40 - movs r1, #0 - movs r2, #0 - bl sub_08078AC0 - ldr r0, _08066470 @ =gPlayerEntity - strb r4, [r0, #0x14] - strb r4, [r0, #0x15] -_08066462: - adds r0, r5, #0 - bl GetNextFrame - pop {r4, r5, pc} - .align 2, 0 -_0806646C: .4byte gRoomControls -_08066470: .4byte gPlayerEntity - - thumb_func_start sub_08066474 -sub_08066474: @ 0x08066474 - push {lr} - ldr r0, _08066488 @ =gPlayerEntity - ldrb r0, [r0, #0xc] - cmp r0, #0xf - beq _08066484 - ldr r1, _0806648C @ =gUnk_02034490 - movs r0, #0 - strb r0, [r1] -_08066484: - pop {pc} - .align 2, 0 -_08066488: .4byte gPlayerEntity -_0806648C: .4byte gUnk_02034490 - - thumb_func_start sub_08066490 -sub_08066490: @ 0x08066490 - push {r4, r5, r6, lr} - mov ip, r0 - adds r5, r1, #0 - ldrb r1, [r0, #0xb] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0806650A - mov r1, ip - ldrh r0, [r1, #0x2e] - adds r1, #0x86 - strh r0, [r1] - mov r0, ip - adds r0, #0x7e - ldrh r2, [r0] - adds r0, #4 - ldrh r0, [r0] - adds r3, r2, r0 - subs r4, r2, r0 - movs r6, #0x2e - ldrsh r0, [r5, r6] - cmp r0, r3 - bge _080664C6 - cmp r0, r4 - ble _080664C6 - adds r2, r0, #0 - b _080664D2 -_080664C6: - movs r2, #0x2e - ldrsh r0, [r5, r2] - adds r2, r4, #0 - cmp r0, r3 - blt _080664D2 - adds r2, r3, #0 -_080664D2: - ldrh r0, [r1] - cmp r0, r2 - bne _080664F0 - mov r1, ip - adds r1, #0x84 - ldrh r0, [r1] - cmp r0, #1 - bne _0806650A - movs r0, #0 - strh r0, [r1] - mov r0, ip - movs r1, #2 - bl InitializeAnimation - b _0806650A -_080664F0: - mov r6, ip - strh r2, [r6, #0x2e] - mov r1, ip - adds r1, #0x84 - ldrh r0, [r1] - cmp r0, #0 - bne _0806650A - movs r0, #1 - strh r0, [r1] - mov r0, ip - movs r1, #6 - bl InitializeAnimation -_0806650A: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0806650C -sub_0806650C: @ 0x0806650C - push {r4, r5, r6, r7, lr} - adds r3, r0, #0 - movs r4, #0 - ldr r1, _0806652C @ =gPlayerEntity - ldrh r5, [r1, #0x2e] - adds r7, r5, #0 - ldrh r2, [r1, #0x32] - adds r0, #0x80 - ldrh r0, [r0] - adds r0, #0x10 - adds r6, r1, #0 - cmp r2, r0 - bge _08066530 - movs r4, #4 - b _0806654C - .align 2, 0 -_0806652C: .4byte gPlayerEntity -_08066530: - adds r0, r3, #0 - adds r0, #0x7e - ldrh r1, [r0] - adds r0, r1, #2 - cmp r5, r0 - bge _0806653E - movs r4, #2 -_0806653E: - adds r0, r1, #6 - cmp r7, r0 - ble _08066546 - movs r4, #6 -_08066546: - cmp r4, #0 - bne _0806654C - strh r4, [r6, #0x24] -_0806654C: - ldrb r0, [r6, #0xc] - cmp r0, #0xf - beq _0806656A - cmp r4, #0 - bne _0806655A - movs r0, #0 - b _0806656C -_0806655A: - movs r0, #8 - movs r1, #0 - movs r2, #0 - bl sub_08078AC0 - strb r4, [r6, #0x14] - lsls r0, r4, #2 - strb r0, [r6, #0x15] -_0806656A: - movs r0, #1 -_0806656C: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08066570 -sub_08066570: @ 0x08066570 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080665DE - ldrb r0, [r5, #0xc] - cmp r0, #3 - beq _080665DE - ldr r4, _080665E0 @ =gPlayerEntity - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x50 - bl sub_0806FC80 - cmp r0, #0 - beq _080665DE - adds r0, r5, #0 - adds r1, r4, #0 - bl GetFacingDirection - adds r3, r0, #0 - movs r6, #1 - movs r1, #0x18 - adds r4, r3, #0 - ands r4, r1 - ldrb r0, [r5, #0x15] - adds r2, r1, #0 - ands r2, r0 - cmp r2, r4 - bne _080665C8 - adds r2, r3, #5 - movs r1, #7 - ands r2, r1 - ldrb r0, [r5, #0x15] - adds r0, #5 - ands r0, r1 - cmp r0, #2 - bhi _080665C8 - cmp r2, #2 - bhi _080665C8 - movs r6, #0 -_080665C8: - cmp r6, #0 - beq _080665DE - strb r3, [r5, #0x15] - adds r3, #4 - movs r0, #0x18 - ands r3, r0 - lsrs r3, r3, #3 - adds r0, r5, #0 - adds r1, r3, #0 - bl InitializeAnimation -_080665DE: - pop {r4, r5, r6, pc} - .align 2, 0 -_080665E0: .4byte gPlayerEntity diff --git a/asm/npc58.s b/asm/npc58.s deleted file mode 100644 index d095899a..00000000 --- a/asm/npc58.s +++ /dev/null @@ -1,149 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start NPC58 -NPC58: @ 0x0806EAF4 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldrb r0, [r6, #0xc] - cmp r0, #0 - bne _0806EB48 - ldr r1, _0806EBA0 @ =gUnk_081146D0 - adds r0, r6, #0 - bl LoadExtraSpriteData - cmp r0, #0 - beq _0806EBA8 - ldrb r0, [r6, #0xc] - adds r0, #1 - strb r0, [r6, #0xc] - ldrb r1, [r6, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r6, #0x18] - ldrb r2, [r6, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r6, #0x19] - adds r3, r6, #0 - adds r3, #0x29 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r3] - ldrb r0, [r6, #0x1b] - ands r1, r0 - movs r0, #0x40 - orrs r1, r0 - strb r1, [r6, #0x1b] - movs r0, #0x78 - strh r0, [r6, #0x2e] - movs r0, #0x10 - strh r0, [r6, #0x32] -_0806EB48: - ldr r7, [r6, #0x50] - cmp r7, #0 - beq _0806EBA4 - adds r0, r7, #0 - adds r0, #0x68 - movs r1, #0 - ldrsh r4, [r0, r1] - movs r5, #0x96 - lsls r5, r5, #2 - adds r0, r4, #0 - adds r1, r5, #0 - bl __divsi3 - adds r1, r6, #0 - adds r1, #0x68 - strh r0, [r1] - adds r0, r4, #0 - adds r1, r5, #0 - bl __modsi3 - adds r4, r0, #0 - movs r1, #0x3c - bl __divsi3 - adds r1, r6, #0 - adds r1, #0x6a - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0x3c - bl __modsi3 - movs r1, #6 - bl __divsi3 - adds r1, r6, #0 - adds r1, #0x6c - strh r0, [r1] - ldr r0, [r7, #4] - cmp r0, #0 - bne _0806EBA8 - bl DeleteThisEntity - b _0806EBA8 - .align 2, 0 -_0806EBA0: .4byte gUnk_081146D0 -_0806EBA4: - bl DeleteThisEntity -_0806EBA8: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start NPC58_Head -NPC58_Head: @ 0x0806EBAC - push {r4, lr} - adds r4, r0, #0 - movs r0, #0xff - strb r0, [r4, #0x1e] - adds r0, r4, #0 - adds r0, #0x68 - movs r1, #0 - ldrsh r2, [r0, r1] - adds r0, r4, #0 - movs r1, #0 - bl SetExtraSpriteFrame - adds r0, r4, #0 - adds r0, #0x6a - movs r1, #0 - ldrsh r2, [r0, r1] - adds r0, r4, #0 - movs r1, #1 - bl SetExtraSpriteFrame - adds r0, r4, #0 - adds r0, #0x6c - movs r1, #0 - ldrsh r2, [r0, r1] - adds r0, r4, #0 - movs r1, #2 - bl SetExtraSpriteFrame - adds r0, r4, #0 - movs r1, #3 - movs r2, #0xa - bl SetExtraSpriteFrame - movs r2, #0xc - rsbs r2, r2, #0 - adds r0, r4, #0 - movs r1, #0 - movs r3, #0 - bl sub_0806FFBC - movs r2, #4 - rsbs r2, r2, #0 - adds r0, r4, #0 - movs r1, #1 - movs r3, #0 - bl sub_0806FFBC - adds r0, r4, #0 - movs r1, #2 - movs r2, #0xc - movs r3, #0 - bl sub_0806FFBC - adds r0, r4, #0 - bl sub_0807000C - pop {r4, pc} - .align 2, 0 diff --git a/asm/ocarinaUpdate.s b/asm/ocarinaUpdate.s deleted file mode 100644 index 9b509008..00000000 --- a/asm/ocarinaUpdate.s +++ /dev/null @@ -1,46 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start OcarinaUpdate -OcarinaUpdate: @ 0x08076C2C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - bl UpdateItemAnim - ldrb r1, [r5, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08076C6E - ldr r0, _08076C70 @ =gPlayerEntity - ldrb r2, [r0, #0x10] - movs r4, #0 - movs r1, #0x80 - orrs r1, r2 - strb r1, [r0, #0x10] - ldr r2, _08076C74 @ =gPlayerState - ldr r1, [r2, #0x30] - ldr r3, _08076C78 @ =0xEFFFFFFF - ands r1, r3 - str r1, [r2, #0x30] - adds r2, #0x27 - strb r4, [r2] - ldr r1, _08076C7C @ =gUnk_02034490 - strb r4, [r1] - bl CreateBird - bl UnfreezeTime - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_08077E78 -_08076C6E: - pop {r4, r5, r6, pc} - .align 2, 0 -_08076C70: .4byte gPlayerEntity -_08076C74: .4byte gPlayerState -_08076C78: .4byte 0xEFFFFFFF -_08076C7C: .4byte gUnk_02034490 diff --git a/asm/percy.s b/asm/percy.s deleted file mode 100644 index d00ceec6..00000000 --- a/asm/percy.s +++ /dev/null @@ -1,156 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0806B540 -sub_0806B540: @ 0x0806B540 - push {r4, lr} - adds r2, r0, #0 - adds r0, #0x84 - ldr r4, [r0] - ldrb r0, [r4, #0x18] - cmp r0, #1 - beq _0806B588 - cmp r0, #1 - bgt _0806B558 - cmp r0, #0 - beq _0806B562 - b _0806B600 -_0806B558: - cmp r0, #2 - beq _0806B5AC - cmp r0, #3 - beq _0806B5EE - b _0806B600 -_0806B562: - ldr r0, _0806B584 @ =0x00002312 - adds r1, r2, #0 - bl TextboxNoOverlap - movs r0, #0x3f - bl CheckLocalFlag - cmp r0, #0 - bne _0806B606 - ldrb r0, [r4, #0x18] - adds r0, #1 - strb r0, [r4, #0x18] - movs r0, #0x3f - bl SetLocalFlag - b _0806B600 - .align 2, 0 -_0806B584: .4byte 0x00002312 -_0806B588: - ldr r0, _0806B5A4 @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0806B600 - movs r0, #2 - strb r0, [r4, #0x18] - ldr r0, _0806B5A8 @ =0x00002315 - adds r1, r2, #0 - bl TextboxNoOverlap - b _0806B600 - .align 2, 0 -_0806B5A4: .4byte gTextBox -_0806B5A8: .4byte 0x00002315 -_0806B5AC: - ldr r0, _0806B5D4 @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0806B600 - movs r0, #3 - strb r0, [r4, #0x18] - ldr r0, _0806B5D8 @ =gSave - adds r0, #0xbb - ldrb r0, [r0] - cmp r0, #0 - beq _0806B5DC - movs r0, #0x58 - movs r1, #0 - movs r2, #0 - bl sub_080A7C18 - b _0806B5E6 - .align 2, 0 -_0806B5D4: .4byte gTextBox -_0806B5D8: .4byte gSave -_0806B5DC: - movs r0, #0x3f - movs r1, #0x64 - movs r2, #0 - bl sub_080A7C18 -_0806B5E6: - movs r0, #0xf - bl SetRoomFlag - b _0806B600 -_0806B5EE: - ldr r0, _0806B5FC @ =gPlayerEntity - ldrb r0, [r0, #0xc] - cmp r0, #8 - beq _0806B600 - movs r0, #0x2d - strh r0, [r4, #0x10] - b _0806B606 - .align 2, 0 -_0806B5FC: .4byte gPlayerEntity -_0806B600: - ldr r1, _0806B608 @ =gActiveScriptInfo - movs r0, #0 - strb r0, [r1, #6] -_0806B606: - pop {r4, pc} - .align 2, 0 -_0806B608: .4byte gActiveScriptInfo - - thumb_func_start sub_0806B60C -sub_0806B60C: @ 0x0806B60C - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start Percy_Fusion -Percy_Fusion: @ 0x0806B624 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806B65C - ldr r1, _0806B658 @ =gUnk_08112E1C - adds r0, r4, #0 - bl LoadExtraSpriteData - cmp r0, #0 - beq _0806B662 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #2 - bl InitializeAnimation - b _0806B662 - .align 2, 0 -_0806B658: .4byte gUnk_08112E1C -_0806B65C: - adds r0, r4, #0 - bl GetNextFrame -_0806B662: - pop {r4, pc} diff --git a/asm/picolyteBottles.s b/asm/picolyteBottles.s deleted file mode 100644 index 0930627e..00000000 --- a/asm/picolyteBottles.s +++ /dev/null @@ -1,486 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start PicolyteBottle -PicolyteBottle: @ 0x0806DED0 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0806DEF8 @ =gUnk_081142BC - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0806DEF4 - ldr r2, _0806DEFC @ =gPlayerState - ldrb r1, [r2, #0x1a] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x1a] -_0806DEF4: - pop {r4, pc} - .align 2, 0 -_0806DEF8: .4byte gUnk_081142BC -_0806DEFC: .4byte gPlayerState - - thumb_func_start sub_0806DF00 -sub_0806DF00: @ 0x0806DF00 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xa] - cmp r5, #0 - bne _0806DF5C - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x51 - movs r1, #1 - movs r2, #0 - bl CreateNPC - str r0, [r4, #0x68] - str r4, [r0, #0x50] - movs r0, #0x51 - movs r1, #1 - movs r2, #1 - bl CreateNPC - str r0, [r4, #0x6c] - str r4, [r0, #0x50] - movs r0, #0x51 - movs r1, #1 - movs r2, #2 - bl CreateNPC - str r0, [r4, #0x70] - str r4, [r0, #0x50] - adds r0, r4, #0 - adds r0, #0x74 - strh r5, [r0] - adds r0, #2 - movs r1, #0xa - strh r1, [r0] - ldr r0, _0806DF58 @ =gScreenTransition - strh r1, [r0, #6] - adds r0, r4, #0 - bl sub_0806E014 - adds r0, r4, #0 - bl sub_0807DD50 - b _0806DF6E - .align 2, 0 -_0806DF58: .4byte gScreenTransition -_0806DF5C: - ldr r0, _0806DF70 @ =gUnk_080FD150 - str r0, [r4, #0x48] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0806E0DC -_0806DF6E: - pop {r4, r5, pc} - .align 2, 0 -_0806DF70: .4byte gUnk_080FD150 - - thumb_func_start sub_0806DF74 -sub_0806DF74: @ 0x0806DF74 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl sub_0807DD94 - ldrb r0, [r4, #0xe] - cmp r0, #0xff - beq _0806DFB0 - adds r0, r4, #0 - adds r0, #0x44 - ldrb r0, [r0] - cmp r0, #0 - beq _0806DF96 - ldr r1, [r4, #0x70] - ldrb r0, [r1, #0xe] - adds r0, #1 - strb r0, [r1, #0xe] -_0806DF96: - ldr r1, [r4, #0x68] - ldrb r0, [r1, #0xe] - adds r0, #1 - strb r0, [r1, #0xe] - ldr r1, [r4, #0x6c] - ldrb r0, [r1, #0xe] - adds r0, #1 - strb r0, [r1, #0xe] - movs r0, #0xff - strb r0, [r4, #0xe] - movs r0, #0 - bl SetRoomFlag -_0806DFB0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806DFB4 -sub_0806DFB4: @ 0x0806DFB4 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x39 - movs r2, #0 - ldrsb r2, [r1, r2] - cmp r2, #0 - beq _0806DFD6 - movs r0, #0 - strb r0, [r1] - ldr r1, [r4, #0x50] - ldrb r0, [r4, #0xb] - strb r0, [r1, #0xe] - ldr r1, [r4, #0x50] - ldrb r0, [r4, #0xf] - strb r0, [r1, #0xb] - b _0806E00C -_0806DFD6: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0806E00C - strb r2, [r4, #0xe] - ldrb r2, [r4, #0xf] - movs r0, #0x35 - movs r1, #2 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0806DFF8 - str r4, [r1, #0x50] - str r1, [r4, #0x54] - adds r0, r4, #0 - bl CopyPosition -_0806DFF8: - adds r0, r4, #0 - bl sub_080788E0 - adds r0, r4, #0 - adds r0, #0x76 - ldrh r1, [r0] - movs r0, #0x74 - movs r2, #2 - bl sub_0807B7D8 -_0806E00C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start nullsub_111 -nullsub_111: @ 0x0806E010 - bx lr - .align 2, 0 - - thumb_func_start sub_0806E014 -sub_0806E014: @ 0x0806E014 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - bl Random - movs r1, #0x70 - ands r1, r0 - lsrs r4, r1, #4 - movs r0, #0xff - strb r0, [r5, #0xb] - movs r0, #1 - rsbs r0, r0, #0 - adds r7, r0, #0 - strb r0, [r5, #0xe] - movs r0, #0x93 - bl CheckLocalFlag - adds r1, r0, #0 - cmp r1, #0 - bne _0806E088 - adds r0, r5, #0 - adds r0, #0x44 - strb r1, [r0] - lsls r1, r4, #1 - ldr r0, _0806E084 @ =gUnk_081142CC - adds r6, r1, r0 - ldr r1, [r5, #0x68] - ldrb r0, [r6] - strb r0, [r1, #0xf] - ldr r1, [r5, #0x68] - movs r4, #0x90 - lsls r4, r4, #0xf - adds r0, r5, #0 - adds r2, r4, #0 - adds r3, r4, #0 - bl PositionRelative - ldr r1, [r5, #0x6c] - ldrb r0, [r6, #1] - strb r0, [r1, #0xf] - ldr r1, [r5, #0x6c] - movs r2, #0xd0 - lsls r2, r2, #0xf - adds r0, r5, #0 - adds r3, r4, #0 - bl PositionRelative - ldr r1, [r5, #0x70] - ldrb r0, [r1, #0xf] - orrs r0, r7 - strb r0, [r1, #0xf] - ldr r1, [r5, #0x70] - adds r0, r5, #0 - bl CopyPosition - b _0806E0D6 - .align 2, 0 -_0806E084: .4byte gUnk_081142CC -_0806E088: - adds r1, r5, #0 - adds r1, #0x44 - movs r0, #1 - strb r0, [r1] - lsls r1, r4, #2 - ldr r0, _0806E0D8 @ =gUnk_081142DC - adds r6, r1, r0 - ldr r1, [r5, #0x68] - ldrb r0, [r6] - strb r0, [r1, #0xf] - ldr r1, [r5, #0x68] - movs r2, #0xe0 - lsls r2, r2, #0xe - movs r4, #0x90 - lsls r4, r4, #0xf - adds r0, r5, #0 - adds r3, r4, #0 - bl PositionRelative - ldr r1, [r5, #0x6c] - ldrb r0, [r6, #1] - strb r0, [r1, #0xf] - ldr r1, [r5, #0x6c] - movs r2, #0xb0 - lsls r2, r2, #0xf - adds r0, r5, #0 - adds r3, r4, #0 - bl PositionRelative - ldr r1, [r5, #0x70] - ldrb r0, [r6, #2] - strb r0, [r1, #0xf] - ldr r1, [r5, #0x70] - movs r2, #0xf0 - lsls r2, r2, #0xf - adds r0, r5, #0 - adds r3, r4, #0 - bl PositionRelative -_0806E0D6: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806E0D8: .4byte gUnk_081142DC - - thumb_func_start sub_0806E0DC -sub_0806E0DC: @ 0x0806E0DC - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r6, #0 - strb r6, [r4, #0xe] - ldrb r0, [r4, #0xf] - cmp r0, #0xff - beq _0806E138 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0806E134 @ =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 - adds r5, r4, #0 - adds r5, #0x76 - strh r1, [r5] - ldr r0, [r4, #0x54] - cmp r0, #0 - beq _0806E120 - bl DeleteEntity - str r6, [r4, #0x54] -_0806E120: - adds r0, r4, #0 - bl sub_08078828 - ldrh r1, [r5] - movs r0, #0x73 - movs r2, #2 - bl sub_0807B7D8 - b _0806E13C - .align 2, 0 -_0806E134: .4byte gRoomControls -_0806E138: - movs r0, #3 - strb r0, [r4, #0xc] -_0806E13C: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0806E140 -sub_0806E140: @ 0x0806E140 - push {r4, r5, lr} - adds r3, r0, #0 - adds r5, r1, #0 - ldrb r1, [r3, #0xb] - cmp r1, #0 - beq _0806E1AC - movs r0, #1 - str r0, [r5, #0x14] - adds r1, r3, #0 - adds r1, #0x74 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - adds r1, #2 - ldrh r2, [r1] - adds r0, r3, #0 - adds r0, #0x44 - ldrb r0, [r0] - adds r4, r1, #0 - cmp r0, #0 - bne _0806E16E - lsls r0, r2, #1 - b _0806E172 -_0806E16E: - lsls r0, r2, #1 - adds r0, r0, r2 -_0806E172: - strh r0, [r4] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _0806E18C @ =0x000003E7 - cmp r0, r1 - bls _0806E194 - strh r1, [r4] - movs r0, #0 - str r0, [r5, #0x14] - ldr r0, _0806E190 @ =0x0000421B - bl TextboxNoOverlapFollow - b _0806E1C0 - .align 2, 0 -_0806E18C: .4byte 0x000003E7 -_0806E190: .4byte 0x0000421B -_0806E194: - ldr r0, _0806E1A4 @ =0x00004218 - bl TextboxNoOverlapFollow - ldr r1, _0806E1A8 @ =gTextBox - ldrh r0, [r4] - str r0, [r1, #0x10] - b _0806E1C0 - .align 2, 0 -_0806E1A4: .4byte 0x00004218 -_0806E1A8: .4byte gTextBox -_0806E1AC: - str r1, [r5, #0x14] - adds r0, r3, #0 - adds r0, #0x74 - strh r1, [r0] - adds r4, r3, #0 - adds r4, #0x76 - strh r1, [r4] - ldr r0, _0806E1D4 @ =0x0000421C - bl TextboxNoOverlapFollow -_0806E1C0: - ldr r1, _0806E1D8 @ =gScreenTransition - ldrh r0, [r4] - strh r0, [r1, #6] - ldr r2, _0806E1DC @ =gActiveScriptInfo - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, r5, pc} - .align 2, 0 -_0806E1D4: .4byte 0x0000421C -_0806E1D8: .4byte gScreenTransition -_0806E1DC: .4byte gActiveScriptInfo - - thumb_func_start sub_0806E1E0 -sub_0806E1E0: @ 0x0806E1E0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806E014 - ldr r0, [r4, #0x68] - bl sub_0806E0DC - ldr r0, [r4, #0x6c] - bl sub_0806E0DC - ldr r0, [r4, #0x70] - bl sub_0806E0DC - pop {r4, pc} - - thumb_func_start sub_0806E1FC -sub_0806E1FC: @ 0x0806E1FC - push {lr} - ldr r0, _0806E208 @ =gUnk_0813AD4C - bl DoExitTransition - pop {pc} - .align 2, 0 -_0806E208: .4byte gUnk_0813AD4C - - thumb_func_start sub_0806E20C -sub_0806E20C: @ 0x0806E20C - push {r4, lr} - ldr r4, _0806E224 @ =gScreenTransition - ldrh r0, [r4, #6] - cmp r0, #0 - beq _0806E230 - ldr r0, _0806E228 @ =0x0000421F - bl TextboxNoOverlapFollow - ldr r1, _0806E22C @ =gTextBox - ldrh r0, [r4, #6] - str r0, [r1, #0x10] - b _0806E236 - .align 2, 0 -_0806E224: .4byte gScreenTransition -_0806E228: .4byte 0x0000421F -_0806E22C: .4byte gTextBox -_0806E230: - ldr r0, _0806E238 @ =0x00004220 - bl TextboxNoOverlapFollow -_0806E236: - pop {r4, pc} - .align 2, 0 -_0806E238: .4byte 0x00004220 - - thumb_func_start sub_0806E23C -sub_0806E23C: @ 0x0806E23C - push {lr} - ldr r1, _0806E24C @ =gScreenTransition - ldrh r0, [r1, #6] - cmp r0, #0 - beq _0806E24A - bl ModRupees -_0806E24A: - pop {pc} - .align 2, 0 -_0806E24C: .4byte gScreenTransition - - thumb_func_start sub_0806E250 -sub_0806E250: @ 0x0806E250 - push {r4, lr} - adds r4, r1, #0 - movs r0, #0 - str r0, [r4, #0x14] - movs r0, #0x31 - bl CheckKinstoneFused - cmp r0, #0 - beq _0806E266 - movs r0, #1 - str r0, [r4, #0x14] -_0806E266: - ldr r2, _0806E274 @ =gActiveScriptInfo - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, pc} - .align 2, 0 -_0806E274: .4byte gActiveScriptInfo diff --git a/asm/pina.s b/asm/pina.s deleted file mode 100644 index c92b8889..00000000 --- a/asm/pina.s +++ /dev/null @@ -1,359 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Pina -Pina: @ 0x08063A60 - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08063A76 - adds r0, r2, #0 - bl sub_08063B68 - b _08063A7C -_08063A76: - adds r0, r2, #0 - bl sub_08063A80 -_08063A7C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08063A80 -sub_08063A80: @ 0x08063A80 - push {lr} - ldr r2, _08063A94 @ =gUnk_0810CDF8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08063A94: .4byte gUnk_0810CDF8 - - thumb_func_start sub_08063A98 -sub_08063A98: @ 0x08063A98 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #4 - bl InitAnimationForceUpdate - adds r0, r4, #0 - bl sub_08078778 - pop {r4, pc} - - thumb_func_start sub_08063AC0 -sub_08063AC0: @ 0x08063AC0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x20 - movs r2, #0x20 - bl sub_0806ED9C - cmp r0, #0 - blt _08063AEE - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _08063AF4 - bl Random - movs r1, #0x3f - ands r1, r0 - cmp r1, #0 - bne _08063AEE - adds r0, r4, #0 - movs r1, #0 - bl InitAnimationForceUpdate - movs r0, #1 - strb r0, [r4, #0xf] -_08063AEE: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _08063B0C -_08063AF4: - 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 _08063B0C - movs r0, #0 - strb r0, [r4, #0xf] -_08063B0C: - adds r0, r4, #0 - adds r0, #0x39 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _08063B38 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl GetAnimationState - adds r1, r0, #0 - adds r1, #4 - adds r0, r4, #0 - bl InitAnimationForceUpdate - ldrb r0, [r4, #0xe] - ldr r1, _08063B40 @ =0x00000A01 - adds r0, r0, r1 - bl TextboxNoOverlapFollow -_08063B38: - adds r0, r4, #0 - bl sub_0806ED78 - pop {r4, pc} - .align 2, 0 -_08063B40: .4byte 0x00000A01 - - thumb_func_start sub_08063B44 -sub_08063B44: @ 0x08063B44 - push {lr} - adds r2, r0, #0 - ldr r0, _08063B64 @ =gTextBox - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0 - bne _08063B62 - movs r0, #1 - strb r0, [r2, #0xc] - strb r1, [r2, #0xf] - adds r0, r2, #0 - movs r1, #4 - bl InitAnimationForceUpdate -_08063B62: - pop {pc} - .align 2, 0 -_08063B64: .4byte gTextBox - - thumb_func_start sub_08063B68 -sub_08063B68: @ 0x08063B68 - push {r4, lr} - adds r4, r0, #0 - ldrb r3, [r4, #0xc] - cmp r3, #1 - beq _08063B9E - cmp r3, #1 - bgt _08063B7C - cmp r3, #0 - beq _08063B82 - b _08063C10 -_08063B7C: - cmp r3, #2 - beq _08063BF6 - b _08063C10 -_08063B82: - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - adds r0, #0x69 - strb r3, [r0] - adds r0, r4, #0 - bl sub_0807DD64 -_08063B9E: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _08063BE0 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x69 - strb r0, [r1] - ldr r1, _08063BDC @ =gPlayerEntity - adds r0, r4, #0 - bl GetFacingDirection - bl sub_0806F5A4 - adds r1, r0, #0 - adds r1, #4 - adds r0, r4, #0 - bl InitAnimationForceUpdate - adds r0, r4, #0 - bl sub_0806F118 - b _08063C10 - .align 2, 0 -_08063BDC: .4byte gPlayerEntity -_08063BE0: - adds r0, r4, #0 - movs r1, #0 - bl ExecuteScriptForEntity - adds r0, r4, #0 - bl HandleEntity0x82Actions - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - b _08063C10 -_08063BF6: - adds r0, r4, #0 - bl UpdateFuseInteraction - cmp r0, #0 - beq _08063C10 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - ldrb r1, [r0] - adds r0, r4, #0 - bl InitAnimationForceUpdate -_08063C10: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08063C14 -sub_08063C14: @ 0x08063C14 - push {lr} - movs r0, #7 - movs r1, #0x14 - bl DeepFindEntityByID - cmp r0, #0 - beq _08063C28 - movs r1, #8 - bl InitAnimationForceUpdate -_08063C28: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08063C2C -sub_08063C2C: @ 0x08063C2C - push {lr} - movs r0, #7 - movs r1, #0x14 - bl DeepFindEntityByID - cmp r0, #0 - beq _08063C40 - movs r1, #4 - bl InitAnimationForceUpdate -_08063C40: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08063C44 -sub_08063C44: @ 0x08063C44 - push {lr} - movs r0, #7 - movs r1, #0x14 - bl DeepFindEntityByID - cmp r0, #0 - beq _08063C58 - movs r1, #0 - bl InitAnimationForceUpdate -_08063C58: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08063C5C -sub_08063C5C: @ 0x08063C5C - push {lr} - movs r0, #7 - movs r1, #0x14 - bl DeepFindEntityByID - cmp r0, #0 - beq _08063C70 - movs r1, #9 - bl InitAnimationForceUpdate -_08063C70: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08063C74 -sub_08063C74: @ 0x08063C74 - push {lr} - movs r0, #7 - movs r1, #0x14 - bl DeepFindEntityByID - cmp r0, #0 - beq _08063C8C - movs r2, #0x18 - rsbs r2, r2, #0 - movs r1, #8 - bl CreateSpeechBubbleExclamationMark -_08063C8C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08063C90 -sub_08063C90: @ 0x08063C90 - push {lr} - ldr r1, _08063CA4 @ =gSave - ldrb r1, [r1, #8] - lsls r1, r1, #3 - ldr r2, _08063CA8 @ =gUnk_0810CE04 - adds r1, r1, r2 - bl ShowNPCDialogue - pop {pc} - .align 2, 0 -_08063CA4: .4byte gSave -_08063CA8: .4byte gUnk_0810CE04 - - thumb_func_start sub_08063CAC -sub_08063CAC: @ 0x08063CAC - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start Pina_Fusion -Pina_Fusion: @ 0x08063CC4 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _08063CF0 - adds r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - ldrh r0, [r2, #0x32] - subs r0, #4 - strh r0, [r2, #0x32] - adds r0, r2, #0 - movs r1, #2 - bl InitAnimationForceUpdate - b _08063CF6 -_08063CF0: - adds r0, r2, #0 - bl UpdateAnimationSingleFrame -_08063CF6: - pop {pc} diff --git a/asm/pita.s b/asm/pita.s deleted file mode 100644 index 1ee5d2f4..00000000 --- a/asm/pita.s +++ /dev/null @@ -1,11 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - - diff --git a/asm/projectile/mv b/asm/projectile/mv deleted file mode 100644 index e69de29b..00000000 diff --git a/asm/rem.s b/asm/rem.s deleted file mode 100644 index 4f86ff07..00000000 --- a/asm/rem.s +++ /dev/null @@ -1,1053 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0806A410 -sub_0806A410: @ 0x0806A410 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xd] - cmp r0, #0 - beq _0806A420 - cmp r0, #1 - beq _0806A43C - b _0806A456 -_0806A420: - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806A456 - ldrb r0, [r2, #0xd] - adds r0, #1 - strb r0, [r2, #0xd] - adds r0, r2, #0 - movs r1, #8 - bl InitializeAnimation - b _0806A456 -_0806A43C: - adds r0, r2, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A456 - adds r0, r2, #0 - adds r0, #0x84 - ldr r1, [r0] - adds r0, r2, #0 - bl sub_0806A9B0 -_0806A456: - pop {pc} - - thumb_func_start sub_0806A458 -sub_0806A458: @ 0x0806A458 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xd] - cmp r0, #1 - beq _0806A486 - cmp r0, #1 - bgt _0806A46C - cmp r0, #0 - beq _0806A472 - b _0806A4CA -_0806A46C: - cmp r0, #2 - beq _0806A4A8 - b _0806A4CA -_0806A472: - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806A4CA - ldrb r0, [r2, #0xd] - adds r0, #1 - strb r0, [r2, #0xd] - b _0806A4CA -_0806A486: - adds r0, r2, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A4CA - movs r0, #2 - strb r0, [r2, #0xd] - adds r0, r2, #0 - movs r1, #0xa - bl InitializeAnimation - movs r0, #0x62 - bl ClearLocalFlag - b _0806A4CA -_0806A4A8: - adds r0, r2, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A4CA - movs r0, #0 - movs r1, #1 - strb r1, [r2, #0xc] - strb r0, [r2, #0xd] - movs r0, #0x3c - strb r0, [r2, #0xe] - adds r0, r2, #0 - movs r1, #2 - bl InitializeAnimation -_0806A4CA: - pop {pc} - - thumb_func_start sub_0806A4CC -sub_0806A4CC: @ 0x0806A4CC - push {r4, lr} - adds r4, r0, #0 - ldrb r2, [r4, #0xd] - cmp r2, #0 - beq _0806A4E0 - cmp r2, #1 - beq _0806A52C - movs r0, #0xb4 - strb r0, [r4, #0xe] - b _0806A54C -_0806A4E0: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A54C - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - subs r0, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0806A512 - movs r0, #1 - strb r0, [r4, #0xd] - adds r1, r4, #0 - adds r1, #0x6a - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0xa - bl InitializeAnimation - b _0806A54C -_0806A512: - movs r0, #2 - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x6a - strh r2, [r0] - adds r0, r4, #0 - bl GetAnimationState - adds r1, r0, #0 - adds r0, r4, #0 - bl InitializeAnimation - b _0806A54C -_0806A52C: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A54C - movs r0, #2 - strb r0, [r4, #0xd] - adds r0, r4, #0 - bl GetAnimationState - adds r1, r0, #0 - adds r0, r4, #0 - bl InitializeAnimation -_0806A54C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806A550 -sub_0806A550: @ 0x0806A550 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _0806A568 - movs r0, #1 - strb r0, [r4, #0xd] - adds r0, r4, #0 - movs r1, #0xc - bl InitializeAnimation - b _0806A5B0 -_0806A568: - adds r5, r4, #0 - adds r5, #0x5a - ldrb r0, [r5] - cmp r0, #1 - bne _0806A590 - movs r0, #0 - strb r0, [r5] - movs r0, #8 - movs r1, #2 - bl sub_08080964 - ldr r2, _0806A5B4 @ =gActiveScriptInfo - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #1 - orrs r0, r1 - str r0, [r2] - ldr r0, _0806A5B8 @ =0x0000011B - bl SoundReq -_0806A590: - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A5B0 - movs r1, #0 - movs r0, #5 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - adds r0, r4, #0 - movs r1, #0xd - bl InitializeAnimation - adds r0, r4, #0 - bl sub_0806A914 -_0806A5B0: - pop {r4, r5, pc} - .align 2, 0 -_0806A5B4: .4byte gActiveScriptInfo -_0806A5B8: .4byte 0x0000011B - - thumb_func_start nullsub_503 -nullsub_503: @ 0x0806A5BC - bx lr - .align 2, 0 - - thumb_func_start sub_0806A5C0 -sub_0806A5C0: @ 0x0806A5C0 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A5E6 - bl Random - movs r1, #3 - ands r1, r0 - adds r1, #4 - adds r0, r4, #0 - bl InitializeAnimation -_0806A5E6: - pop {r4, pc} - - thumb_func_start sub_0806A5E8 -sub_0806A5E8: @ 0x0806A5E8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806A60A - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x10 - bl InitializeAnimation - bl Random - movs r1, #0x3f - ands r0, r1 - adds r0, #0x3c - strb r0, [r4, #0xe] -_0806A60A: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806A628 - bl Random - movs r1, #0x3f - ands r0, r1 - adds r0, #0x78 - strb r0, [r4, #0xe] - movs r0, #0xcc - bl SoundReq -_0806A628: - adds r0, r4, #0 - bl GetNextFrame - pop {r4, pc} - - thumb_func_start sub_0806A630 -sub_0806A630: @ 0x0806A630 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806A646 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x12 - bl InitializeAnimation -_0806A646: - ldr r0, _0806A670 @ =gActiveScriptInfo - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0806A65A - adds r0, r4, #0 - bl GetNextFrame -_0806A65A: - adds r1, r4, #0 - adds r1, #0x5a - ldrb r0, [r1] - cmp r0, #1 - bne _0806A66E - movs r0, #0 - strb r0, [r1] - movs r0, #0x72 - bl SoundReq -_0806A66E: - pop {r4, pc} - .align 2, 0 -_0806A670: .4byte gActiveScriptInfo - - thumb_func_start sub_0806A674 -sub_0806A674: @ 0x0806A674 - push {r4, lr} - sub sp, #8 - adds r4, r0, #0 - ldr r1, _0806A694 @ =gUnk_08112294 - mov r0, sp - movs r2, #8 - bl memcpy - ldrb r3, [r4, #0xc] - cmp r3, #1 - beq _0806A6BE - cmp r3, #1 - bgt _0806A698 - cmp r3, #0 - beq _0806A6A0 - b _0806A82A - .align 2, 0 -_0806A694: .4byte gUnk_08112294 -_0806A698: - cmp r3, #2 - bne _0806A69E - b _0806A824 -_0806A69E: - b _0806A82A -_0806A6A0: - movs r0, #1 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #9 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #0x13 - bl InitializeAnimation - b _0806A82A -_0806A6BE: - ldr r0, _0806A6E0 @ =gActiveScriptInfo - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0806A6E4 - movs r0, #0 - movs r1, #2 - strb r1, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x63 - strb r0, [r1] - subs r1, #1 - strb r0, [r1] - b _0806A82A - .align 2, 0 -_0806A6E0: .4byte gActiveScriptInfo -_0806A6E4: - ldr r0, [r4, #0x50] - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #9 - bne _0806A7C8 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #3 - orrs r1, r0 - strb r1, [r2] - ldrb r2, [r4, #0xe] - cmp r2, #0 - bne _0806A724 - bl Random - adds r2, r0, #0 - movs r1, #7 - ands r0, r1 - strb r0, [r4, #0xe] - lsrs r0, r2, #8 - movs r1, #7 - ands r0, r1 - add r0, sp - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x68 - strb r1, [r0] - b _0806A75A -_0806A724: - ldr r0, _0806A780 @ =gScreenTransition - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0806A75A - subs r0, r2, #1 - strb r0, [r4, #0xe] - adds r2, r4, #0 - adds r2, #0x62 - movs r0, #0 - ldrsb r0, [r2, r0] - adds r1, r4, #0 - adds r1, #0x68 - cmp r0, #0 - bgt _0806A746 - strb r3, [r1] -_0806A746: - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0xf - ble _0806A752 - movs r0, #0xff - strb r0, [r1] -_0806A752: - ldrb r0, [r1] - ldrb r1, [r2] - adds r0, r0, r1 - strb r0, [r2] -_0806A75A: - ldrb r2, [r4, #0xf] - cmp r2, #0 - bne _0806A784 - bl Random - adds r2, r0, #0 - movs r1, #7 - ands r0, r1 - strb r0, [r4, #0xf] - lsrs r0, r2, #8 - movs r1, #7 - ands r0, r1 - add r0, sp - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x69 - strb r1, [r0] - b _0806A82A - .align 2, 0 -_0806A780: .4byte gScreenTransition -_0806A784: - ldr r0, _0806A7C4 @ =gScreenTransition - ldr r0, [r0] - lsrs r0, r0, #4 - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0806A82A - subs r0, r2, #1 - strb r0, [r4, #0xf] - adds r3, r4, #0 - adds r3, #0x63 - movs r0, #0 - ldrsb r0, [r3, r0] - adds r2, r4, #0 - adds r2, #0x69 - cmp r0, #0 - blt _0806A7AA - movs r0, #0xff - strb r0, [r2] -_0806A7AA: - movs r1, #0 - ldrsb r1, [r3, r1] - movs r0, #8 - rsbs r0, r0, #0 - cmp r1, r0 - bgt _0806A7BA - movs r0, #1 - strb r0, [r2] -_0806A7BA: - ldrb r0, [r2] - ldrb r1, [r3] - adds r0, r0, r1 - strb r0, [r3] - b _0806A82A - .align 2, 0 -_0806A7C4: .4byte gScreenTransition -_0806A7C8: - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #6 - orrs r1, r0 - strb r1, [r2] - adds r1, r4, #0 - adds r1, #0x62 - ldrb r0, [r1] - movs r2, #0 - ldrsb r2, [r1, r2] - cmp r2, #0 - beq _0806A7FE - cmp r2, #0 - ble _0806A7F0 - subs r0, #1 - strb r0, [r1] -_0806A7F0: - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bge _0806A7FE - adds r0, r2, #1 - strb r0, [r1] -_0806A7FE: - adds r1, r4, #0 - adds r1, #0x63 - ldrb r0, [r1] - movs r2, #0 - ldrsb r2, [r1, r2] - cmp r2, #0 - beq _0806A82A - cmp r2, #0 - ble _0806A814 - subs r0, #1 - strb r0, [r1] -_0806A814: - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bge _0806A82A - adds r0, r2, #1 - strb r0, [r1] - b _0806A82A -_0806A824: - adds r0, r4, #0 - bl GetNextFrame -_0806A82A: - add sp, #8 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806A830 -sub_0806A830: @ 0x0806A830 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806A84E - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x14 - bl InitializeAnimation - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 -_0806A84E: - ldr r0, _0806A88C @ =gActiveScriptInfo - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #2 - ands r0, r1 - cmp r0, #0 - beq _0806A860 - bl DeleteThisEntity -_0806A860: - adds r0, r4, #0 - bl GetNextFrame - adds r1, r4, #0 - adds r1, #0x5a - ldrb r0, [r1] - cmp r0, #1 - bne _0806A88A - movs r0, #0 - strb r0, [r1] - movs r0, #0x37 - movs r1, #5 - movs r2, #0 - bl CreateNPC - adds r1, r0, #0 - cmp r1, #0 - beq _0806A88A - adds r0, r4, #0 - bl PositionEntityOnTop -_0806A88A: - pop {r4, pc} - .align 2, 0 -_0806A88C: .4byte gActiveScriptInfo - - thumb_func_start sub_0806A890 -sub_0806A890: @ 0x0806A890 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806A8AE - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x15 - bl InitializeAnimation - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 -_0806A8AE: - adds r0, r4, #0 - bl GetNextFrame - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A8C6 - bl DeleteThisEntity -_0806A8C6: - pop {r4, pc} - - thumb_func_start sub_0806A8C8 -sub_0806A8C8: @ 0x0806A8C8 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x60 - bl CheckLocalFlag - cmp r0, #0 - bne _0806A8F0 - movs r0, #0x37 - movs r1, #2 - movs r2, #0 - bl CreateNPC - adds r4, r0, #0 - cmp r4, #0 - beq _0806A8F0 - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - str r5, [r4, #0x50] -_0806A8F0: - movs r0, #0x37 - movs r1, #3 - movs r2, #0 - bl CreateNPC - adds r4, r0, #0 - cmp r4, #0 - beq _0806A910 - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - ldrh r0, [r4, #0x32] - adds r0, #2 - strh r0, [r4, #0x32] - str r5, [r4, #0x50] -_0806A910: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806A914 -sub_0806A914: @ 0x0806A914 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x37 - movs r1, #1 - movs r2, #0 - bl CreateNPC - adds r4, r0, #0 - cmp r4, #0 - beq _0806A938 - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - adds r0, r5, #0 - adds r1, r4, #0 - bl ResolveEntityOnTop -_0806A938: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806A93C -sub_0806A93C: @ 0x0806A93C - push {r4, lr} - adds r4, r0, #0 - bl sub_08078778 - ldr r3, _0806A954 @ =gUnk_0811229C - adds r0, r4, #0 - movs r1, #0 - movs r2, #0 - bl sub_08078850 - pop {r4, pc} - .align 2, 0 -_0806A954: .4byte gUnk_0811229C - - thumb_func_start sub_0806A958 -sub_0806A958: @ 0x0806A958 - push {lr} - ldrb r0, [r0, #0xc] - cmp r0, #5 - beq _0806A966 - ldr r1, _0806A968 @ =gActiveScriptInfo - movs r0, #0 - strb r0, [r1, #6] -_0806A966: - pop {pc} - .align 2, 0 -_0806A968: .4byte gActiveScriptInfo - - thumb_func_start sub_0806A96C -sub_0806A96C: @ 0x0806A96C - push {r4, lr} - adds r2, r0, #0 - movs r3, #0 - str r3, [r1, #0x14] - movs r0, #0x39 - adds r0, r0, r2 - mov ip, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _0806A9A8 - ldrb r0, [r2, #0xc] - cmp r0, #3 - beq _0806A992 - movs r0, #3 - strb r0, [r2, #0xc] - strb r3, [r2, #0xd] - b _0806A9A8 -_0806A992: - ldrb r0, [r2, #0xd] - cmp r0, #1 - bls _0806A9A8 - mov r4, ip - strb r3, [r4] - movs r0, #1 - str r0, [r1, #0x14] - ldr r2, _0806A9AC @ =gActiveScriptInfo - ldrb r1, [r2, #7] - orrs r0, r1 - strb r0, [r2, #7] -_0806A9A8: - pop {r4, pc} - .align 2, 0 -_0806A9AC: .4byte gActiveScriptInfo - - thumb_func_start sub_0806A9B0 -sub_0806A9B0: @ 0x0806A9B0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - bl Random - ldr r2, _0806A9E4 @ =gUnk_081122A0 - movs r1, #7 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x80 - movs r0, #9 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #9 - bl InitializeAnimation - movs r0, #0x62 - bl SetLocalFlag - pop {r4, pc} - .align 2, 0 -_0806A9E4: .4byte gUnk_081122A0 - - thumb_func_start sub_0806A9E8 -sub_0806A9E8: @ 0x0806A9E8 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x37 - movs r1, #4 - movs r2, #0 - bl CreateNPC - adds r4, r0, #0 - cmp r4, #0 - beq _0806AA0C - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAD8 -_0806AA0C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806AA10 -sub_0806AA10: @ 0x0806AA10 - push {lr} - bl sub_0806A914 - pop {pc} - - thumb_func_start sub_0806AA18 -sub_0806AA18: @ 0x0806AA18 - push {lr} - adds r2, r0, #0 - adds r0, #0x6a - ldrh r0, [r0] - cmp r0, #0 - beq _0806AA2C - ldr r1, _0806AA28 @ =0x00004408 - b _0806AA3C - .align 2, 0 -_0806AA28: .4byte 0x00004408 -_0806AA2C: - ldr r0, _0806AA48 @ =gScreenTransition - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - ldr r1, _0806AA4C @ =0x0000440D - cmp r0, #0 - bne _0806AA3C - subs r1, #6 -_0806AA3C: - adds r0, r1, #0 - adds r1, r2, #0 - bl TextboxNoOverlap - pop {pc} - .align 2, 0 -_0806AA48: .4byte gScreenTransition -_0806AA4C: .4byte 0x0000440D - - thumb_func_start sub_0806AA50 -sub_0806AA50: @ 0x0806AA50 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - adds r5, r1, #0 - ldrb r0, [r5, #0x18] - cmp r0, #1 - beq _0806AB38 - cmp r0, #1 - bgt _0806AA6A - cmp r0, #0 - beq _0806AA70 - b _0806AB64 -_0806AA6A: - cmp r0, #2 - beq _0806AB5C - b _0806AB64 -_0806AA70: - str r0, [r5, #0x14] - movs r0, #0x8f - bl CheckLocalFlag - cmp r0, #0 - bne _0806AA84 - ldr r2, _0806AA80 @ =gUnk_081122A8 - b _0806AA9A - .align 2, 0 -_0806AA80: .4byte gUnk_081122A8 -_0806AA84: - movs r0, #0x15 - bl GetInventoryValue - cmp r0, #0 - bne _0806AA98 - ldr r2, _0806AA94 @ =gUnk_081122B0 - b _0806AA9A - .align 2, 0 -_0806AA94: .4byte gUnk_081122B0 -_0806AA98: - ldr r2, _0806AAD0 @ =gUnk_081122B8 -_0806AA9A: - ldr r1, _0806AAD4 @ =gRoomVars - ldr r0, [r1, #0x68] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r7, [r0] - mov r8, r1 - mov r4, r8 - ldr r0, [r4, #0x68] - adds r0, #1 - str r0, [r4, #0x68] - cmp r0, #2 - bls _0806AAB6 - movs r0, #0 - str r0, [r4, #0x68] -_0806AAB6: - adds r0, r7, #0 - adds r1, r6, #0 - bl TextboxNoOverlap - ldr r0, [r5, #4] - cmp r0, #1 - beq _0806AAEE - cmp r0, #1 - blo _0806AAD8 - cmp r0, #2 - beq _0806AB02 - b _0806AB1C - .align 2, 0 -_0806AAD0: .4byte gUnk_081122B8 -_0806AAD4: .4byte gRoomVars -_0806AAD8: - adds r0, r4, #0 - adds r0, #0xac - str r6, [r0] - adds r0, r6, #0 - movs r1, #7 - bl PrependEntityToList - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r6, #0x20] - b _0806AB1C -_0806AAEE: - adds r0, r4, #0 - adds r0, #0xac - ldr r0, [r0] - movs r1, #7 - bl FindNextDuplicateID - adds r1, r0, #0 - adds r0, r4, #0 - adds r0, #0xb0 - b _0806AB14 -_0806AB02: - mov r0, r8 - adds r0, #0xb0 - ldr r0, [r0] - movs r1, #7 - bl FindNextDuplicateID - adds r1, r0, #0 - mov r0, r8 - adds r0, #0xb4 -_0806AB14: - str r1, [r0] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r1, #0x20] -_0806AB1C: - ldr r0, _0806AB34 @ =0x0000441E - cmp r7, r0 - bne _0806AB2C - movs r0, #0x8f - bl SetLocalFlag - movs r0, #1 - str r0, [r5, #0x14] -_0806AB2C: - movs r0, #1 - strb r0, [r5, #0x18] - b _0806AB64 - .align 2, 0 -_0806AB34: .4byte 0x0000441E -_0806AB38: - ldr r0, _0806AB58 @ =gRoomVars - ldr r1, [r5, #4] - lsls r1, r1, #2 - adds r0, #0xac - adds r1, r1, r0 - ldr r1, [r1] - movs r2, #0x36 - ldrsh r0, [r1, r2] - cmp r0, #0 - blt _0806AB64 - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r1, #0x20] - movs r0, #2 - strb r0, [r5, #0x18] - b _0806AB64 - .align 2, 0 -_0806AB58: .4byte gRoomVars -_0806AB5C: - movs r1, #0x36 - ldrsh r0, [r6, r1] - cmp r0, #0 - bge _0806AB6A -_0806AB64: - ldr r1, _0806AB70 @ =gActiveScriptInfo - movs r0, #0 - strb r0, [r1, #6] -_0806AB6A: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806AB70: .4byte gActiveScriptInfo - - thumb_func_start sub_0806AB74 -sub_0806AB74: @ 0x0806AB74 - push {lr} - adds r2, r0, #0 - ldr r1, _0806AB94 @ =gRoomVars - movs r0, #1 - strb r0, [r1, #3] - movs r1, #0x32 - ldrsh r0, [r2, r1] - ldr r1, _0806AB98 @ =gRoomControls - ldrh r1, [r1, #8] - subs r0, r0, r1 - cmp r0, #0xa7 - bgt _0806AB92 - adds r0, r1, #0 - adds r0, #0xa8 - strh r0, [r2, #0x32] -_0806AB92: - pop {pc} - .align 2, 0 -_0806AB94: .4byte gRoomVars -_0806AB98: .4byte gRoomControls - - thumb_func_start sub_0806AB9C -sub_0806AB9C: @ 0x0806AB9C - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #0 - str r0, [sp] - movs r0, #7 - movs r1, #0x37 - movs r2, #7 - movs r3, #1 - bl FindEntity - cmp r0, #0 - beq _0806ABBC - bl DeleteEntity -_0806ABBC: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0807F950 - add sp, #4 - pop {r4, r5, pc} diff --git a/asm/sittingPerson.s b/asm/sittingPerson.s deleted file mode 100644 index 74e7db0e..00000000 --- a/asm/sittingPerson.s +++ /dev/null @@ -1,412 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start SittingPerson -SittingPerson: @ 0x08063740 - push {lr} - ldr r2, _08063754 @ =gUnk_0810CBD8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08063754: .4byte gUnk_0810CBD8 - - thumb_func_start sub_08063758 -sub_08063758: @ 0x08063758 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _08063794 @ =gUnk_0810CB78 - adds r1, r1, r0 - adds r0, r4, #0 - bl LoadExtraSpriteData - cmp r0, #0 - beq _080637B4 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0xe] - ands r1, r2 - lsls r1, r1, #6 - ldrb r2, [r4, #0x18] - subs r0, #0x42 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - lsls r0, r0, #0x19 - cmp r0, #0 - blt _08063798 - movs r0, #6 - b _0806379A - .align 2, 0 -_08063794: .4byte gUnk_0810CB78 -_08063798: - movs r0, #2 -_0806379A: - strb r0, [r4, #0x14] - ldrb r0, [r4, #0x14] - movs r1, #0 - strb r0, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x69 - strb r1, [r0] - adds r0, r4, #0 - bl sub_0807DD50 - adds r0, r4, #0 - bl sub_080637B8 -_080637B4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080637B8 -sub_080637B8: @ 0x080637B8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _08063804 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x69 - strb r0, [r1] - ldr r1, _08063800 @ =gPlayerEntity - adds r0, r4, #0 - bl GetFacingDirection - bl sub_0806F5A4 - adds r1, r0, #0 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x19 - cmp r0, #0 - bge _080637F2 - adds r1, #4 -_080637F2: - adds r0, r4, #0 - bl InitializeAnimation - adds r0, r4, #0 - bl sub_0806F118 - b _0806382E - .align 2, 0 -_08063800: .4byte gPlayerEntity -_08063804: - adds r0, r4, #0 - movs r1, #0 - bl ExecuteScriptForEntity - adds r0, r4, #0 - bl HandleEntity0x82Actions - adds r5, r4, #0 - adds r5, #0x59 - ldrb r0, [r5] - cmp r0, #0xfe - bne _08063828 - bl Random - movs r1, #0x1f - ands r0, r1 - adds r0, #0x1e - strb r0, [r5] -_08063828: - adds r0, r4, #0 - bl GetNextFrame -_0806382E: - pop {r4, r5, pc} - - thumb_func_start sub_08063830 -sub_08063830: @ 0x08063830 - push {r4, lr} - adds r4, r0, #0 - bl UpdateFuseInteraction - cmp r0, #0 - beq _0806384C - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - ldrb r1, [r0] - adds r0, r4, #0 - bl InitializeAnimation -_0806384C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08063850 -sub_08063850: @ 0x08063850 - push {lr} - ldrb r3, [r0, #0x18] - lsls r3, r3, #0x19 - lsrs r3, r3, #0x1f - rsbs r2, r3, #0 - orrs r2, r3 - asrs r2, r2, #0x1f - movs r3, #4 - ands r2, r3 - ldr r1, [r1, #4] - adds r1, r1, r2 - ldrb r2, [r0, #0x14] - lsrs r2, r2, #1 - adds r1, r1, r2 - bl InitializeAnimation - pop {pc} - .align 2, 0 - - thumb_func_start sub_08063874 -sub_08063874: @ 0x08063874 - ldrb r1, [r0, #0xe] - strb r1, [r0, #0x14] - bx lr - .align 2, 0 - - thumb_func_start sub_0806387C -sub_0806387C: @ 0x0806387C - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r4, #3 - movs r0, #0xda - bl CheckLocalFlag - cmp r0, #0 - bne _08063896 - movs r4, #0 - movs r0, #0xda - bl SetLocalFlag - b _080638D6 -_08063896: - movs r0, #0xd1 - bl CheckLocalFlag - cmp r0, #0 - bne _080638D6 - movs r5, #0 - movs r4, #1 -_080638A4: - ldr r0, _080638F8 @ =gUnk_02002B0E - adds r1, r4, #0 - bl ReadBit - cmp r0, #0 - beq _080638B2 - adds r5, #1 -_080638B2: - adds r4, #1 - cmp r4, #0x82 - ble _080638A4 - movs r4, #1 - cmp r5, #0x81 - ble _080638D6 - movs r4, #2 - movs r0, #0xd1 - bl SetLocalFlag - ldr r0, _080638FC @ =0x00000A17 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _08063900 @ =0x00000A57 - movs r1, #1 - bl sub_0807BA8C -_080638D6: - ldr r0, _08063904 @ =gSave - ldrb r0, [r0, #8] - subs r1, r0, #6 - cmp r1, #0 - bge _080638E2 - movs r1, #0 -_080638E2: - ldr r2, _08063908 @ =gUnk_0810CBE4 - lsls r0, r4, #1 - lsls r1, r1, #3 - adds r0, r0, r1 - adds r0, r0, r2 - ldrh r0, [r0] - adds r1, r6, #0 - bl TextboxNoOverlap - pop {r4, r5, r6, pc} - .align 2, 0 -_080638F8: .4byte gUnk_02002B0E -_080638FC: .4byte 0x00000A17 -_08063900: .4byte 0x00000A57 -_08063904: .4byte gSave -_08063908: .4byte gUnk_0810CBE4 - - thumb_func_start sub_0806390C -sub_0806390C: @ 0x0806390C - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #1 - movs r0, #0xd9 - bl CheckLocalFlag - cmp r0, #0 - bne _0806392E - movs r5, #0 - movs r0, #0xd9 - bl SetLocalFlag - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - movs r0, #1 - str r0, [r1, #0x14] -_0806392E: - ldr r0, _08063940 @ =gUnk_0810CC04 - lsls r1, r5, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r4, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_08063940: .4byte gUnk_0810CC04 - - thumb_func_start sub_08063944 -sub_08063944: @ 0x08063944 - push {lr} - adds r3, r0, #0 - movs r0, #0 - str r0, [r1, #0x14] - ldr r0, _0806396C @ =gSave - ldrb r0, [r0, #8] - subs r0, #2 - cmp r0, #0 - bge _08063958 - movs r0, #0 -_08063958: - ldrb r1, [r3, #0xb] - lsls r1, r1, #6 - lsls r0, r0, #3 - ldr r2, _08063970 @ =gUnk_0810CC08 - adds r0, r0, r2 - adds r1, r1, r0 - adds r0, r3, #0 - bl ShowNPCDialogue - pop {pc} - .align 2, 0 -_0806396C: .4byte gSave -_08063970: .4byte gUnk_0810CC08 - - thumb_func_start SittingPerson_Head -SittingPerson_Head: @ 0x08063974 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xa] - lsls r5, r5, #2 - ldr r0, _080639C8 @ =gUnk_0810CBC0 - adds r5, r5, r0 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r2, #0xf - ands r2, r0 - ldrb r0, [r5] - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0 - bl SetExtraSpriteFrame - ldr r2, _080639CC @ =gUnk_0810CD88 - ldrb r1, [r4, #0x1e] - movs r0, #3 - ands r0, r1 - ldrb r1, [r4, #0xa] - lsls r1, r1, #2 - adds r0, r0, r1 - adds r0, r0, r2 - ldrb r2, [r0] - ldrb r0, [r5, #1] - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #1 - bl SetExtraSpriteFrame - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl SetSpriteSubEntryOffsetData1 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, r5, pc} - .align 2, 0 -_080639C8: .4byte gUnk_0810CBC0 -_080639CC: .4byte gUnk_0810CD88 - - thumb_func_start sub_080639D0 -sub_080639D0: @ 0x080639D0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start SittingPerson_Fusion -SittingPerson_Fusion: @ 0x080639E8 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08063A40 - ldrb r0, [r4, #0xa] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _08063A3C @ =gUnk_0810CB78 - adds r1, r1, r0 - adds r0, r4, #0 - bl LoadExtraSpriteData - cmp r0, #0 - beq _08063A5C - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - movs r1, #0x41 - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r4, #0x18] - ldrh r0, [r4, #0x32] - subs r0, #4 - strh r0, [r4, #0x32] - adds r0, r4, #0 - movs r1, #2 - bl InitializeAnimation - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl sub_08096208 - b _08063A5C - .align 2, 0 -_08063A3C: .4byte gUnk_0810CB78 -_08063A40: - adds r5, r4, #0 - adds r5, #0x59 - ldrb r0, [r5] - cmp r0, #0xfe - bne _08063A56 - bl Random - movs r1, #0x1f - ands r0, r1 - adds r0, #0x1e - strb r0, [r5] -_08063A56: - adds r0, r4, #0 - bl GetNextFrame -_08063A5C: - pop {r4, r5, pc} - .align 2, 0 diff --git a/asm/stockwell.s b/asm/stockwell.s deleted file mode 100644 index 6d91bf82..00000000 --- a/asm/stockwell.s +++ /dev/null @@ -1,662 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Stockwell -Stockwell: @ 0x08065054 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0806507C @ =gUnk_0810FDA4 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - adds r0, r4, #0 - bl ExecuteScript - adds r0, r4, #0 - bl sub_0806ED78 - pop {r4, pc} - .align 2, 0 -_0806507C: .4byte gUnk_0810FDA4 - - thumb_func_start sub_08065080 -sub_08065080: @ 0x08065080 - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #4 - bl InitializeAnimation - adds r0, r4, #0 - bl sub_08078778 - ldr r3, _080650C4 @ =gUnk_0810FDA0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #0 - bl sub_08078850 - ldr r1, _080650C8 @ =script_080142B0 - adds r0, r4, #0 - bl StartCutscene - adds r4, #0x84 - str r0, [r4] - pop {r4, pc} - .align 2, 0 -_080650C4: .4byte gUnk_0810FDA0 -_080650C8: .4byte script_080142B0 - - thumb_func_start sub_080650CC -sub_080650CC: @ 0x080650CC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - ldr r6, _080650F8 @ =gRoomVars - ldr r0, [r6, #0x68] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08065100 - movs r1, #0 - movs r0, #4 - strb r0, [r5, #0xc] - strb r1, [r5, #0xd] - adds r0, r5, #0 - adds r0, #0x84 - ldr r0, [r0] - ldr r1, _080650FC @ =script_080143C0 - bl InitScriptExecutionContext - b _080651A6 - .align 2, 0 -_080650F8: .4byte gRoomVars -_080650FC: .4byte script_080143C0 -_08065100: - adds r2, r5, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0x20 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _0806517C - adds r3, r5, #0 - adds r3, #0x39 - movs r0, #0 - ldrsb r0, [r3, r0] - cmp r0, #0 - beq _0806517C - strb r4, [r3] - ldrb r0, [r5, #0xc] - adds r0, #1 - strb r0, [r5, #0xc] - adds r0, r5, #0 - movs r1, #7 - bl InitializeAnimation - ldrb r0, [r6, #6] - cmp r0, #0 - bne _0806513C - ldr r7, _08065138 @ =0x00002C01 - b _0806515E - .align 2, 0 -_08065138: .4byte 0x00002C01 -_0806513C: - ldrb r0, [r6, #6] - bl GetSaleItemConfirmMessageID - adds r7, r0, #0 - ldrb r0, [r6, #6] - bl GetItemPrice - mov r8, r0 - movs r0, #4 - strb r0, [r5, #0xc] - strb r4, [r5, #0xd] - adds r0, r5, #0 - adds r0, #0x84 - ldr r0, [r0] - ldr r1, _08065174 @ =script_08014384 - bl InitScriptExecutionContext -_0806515E: - adds r0, r7, #0 - adds r1, r5, #0 - bl TextboxNoOverlap - ldr r1, _08065178 @ =gTextBox - mov r2, r8 - lsls r0, r2, #0x10 - lsrs r0, r0, #0x10 - str r0, [r1, #0x10] - b _080651A6 - .align 2, 0 -_08065174: .4byte script_08014384 -_08065178: .4byte gTextBox -_0806517C: - ldrb r1, [r2] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080651A0 - ldr r4, _0806519C @ =gUnk_0810FDB8 - bl Random - movs r1, #0xf - ands r1, r0 - adds r1, r1, r4 - ldrb r1, [r1] - adds r0, r5, #0 - bl InitializeAnimation - b _080651A6 - .align 2, 0 -_0806519C: .4byte gUnk_0810FDB8 -_080651A0: - adds r0, r5, #0 - bl GetNextFrame -_080651A6: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080651AC -sub_080651AC: @ 0x080651AC - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - ldr r0, _080651D4 @ =gTextBox - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0 - bne _080651D2 - adds r0, r4, #0 - adds r0, #0x39 - strb r1, [r0] - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #4 - bl InitializeAnimation -_080651D2: - pop {r4, pc} - .align 2, 0 -_080651D4: .4byte gTextBox - - thumb_func_start sub_080651D8 -sub_080651D8: @ 0x080651D8 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - ldr r1, _080651F4 @ =gUnk_0810FDC8 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080651F4: .4byte gUnk_0810FDC8 - - thumb_func_start sub_080651F8 -sub_080651F8: @ 0x080651F8 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _0806522A - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #1 - bl InitializeAnimation - movs r2, #0x18 - rsbs r2, r2, #0 - adds r0, r4, #0 - movs r1, #8 - bl CreateSpeechBubbleExclamationMark - movs r0, #1 - bl sub_08078A90 -_0806522A: - pop {r4, pc} - - thumb_func_start sub_0806522C -sub_0806522C: @ 0x0806522C - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08065248 - ldrb r0, [r1, #0xd] - adds r0, #1 - strb r0, [r1, #0xd] - ldr r0, _0806524C @ =0x00002C16 - bl TextboxNoOverlap -_08065248: - pop {pc} - .align 2, 0 -_0806524C: .4byte 0x00002C16 - - thumb_func_start sub_08065250 -sub_08065250: @ 0x08065250 - push {r4, lr} - adds r4, r0, #0 - bl sub_08056338 - adds r1, r0, #0 - cmp r1, #0 - beq _08065264 - cmp r1, #1 - beq _0806527E - b _0806528A -_08065264: - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x1e - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - movs r2, #0x18 - rsbs r2, r2, #0 - adds r0, r4, #0 - movs r1, #8 - bl CreateSpeechBubbleExclamationMark - b _0806528A -_0806527E: - movs r0, #0 - movs r1, #7 - strb r1, [r4, #0xd] - strb r0, [r4, #0xe] - movs r0, #2 - strb r0, [r4, #0xf] -_0806528A: - pop {r4, pc} - - thumb_func_start sub_0806528C -sub_0806528C: @ 0x0806528C - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080652A8 - ldrb r0, [r1, #0xd] - adds r0, #1 - strb r0, [r1, #0xd] - ldr r0, _080652AC @ =0x00002C18 - bl TextboxNoOverlap -_080652A8: - pop {pc} - .align 2, 0 -_080652AC: .4byte 0x00002C18 - - thumb_func_start sub_080652B0 -sub_080652B0: @ 0x080652B0 - push {lr} - adds r2, r0, #0 - ldr r0, _080652DC @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _080652DA - ldrb r0, [r2, #0xd] - adds r0, #1 - strb r0, [r2, #0xd] - movs r0, #0xa - strb r0, [r2, #0xe] - ldr r1, _080652E0 @ =gRoomVars - ldrb r0, [r2, #0xf] - str r0, [r1, #0x68] - movs r0, #0x36 - movs r1, #0 - movs r2, #0 - bl CreateItemEntity -_080652DA: - pop {pc} - .align 2, 0 -_080652DC: .4byte gTextBox -_080652E0: .4byte gRoomVars - - thumb_func_start sub_080652E4 -sub_080652E4: @ 0x080652E4 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - cmp r0, #0 - beq _080652F4 - subs r0, #1 - strb r0, [r1, #0xe] - b _08065308 -_080652F4: - ldr r0, _0806530C @ =gPlayerEntity - ldrb r0, [r0, #0xc] - cmp r0, #8 - beq _08065308 - ldrb r0, [r1, #0xd] - adds r0, #1 - strb r0, [r1, #0xd] - ldr r0, _08065310 @ =0x00002C19 - bl TextboxNoOverlap -_08065308: - pop {pc} - .align 2, 0 -_0806530C: .4byte gPlayerEntity -_08065310: .4byte 0x00002C19 - - thumb_func_start sub_08065314 -sub_08065314: @ 0x08065314 - push {lr} - adds r2, r0, #0 - ldr r0, _08065334 @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _08065332 - ldrb r0, [r2, #0xd] - adds r0, #1 - strb r0, [r2, #0xd] - movs r0, #3 - movs r1, #3 - bl MenuFadeIn -_08065332: - pop {pc} - .align 2, 0 -_08065334: .4byte gTextBox - - thumb_func_start sub_08065338 -sub_08065338: @ 0x08065338 - push {lr} - adds r2, r0, #0 - ldr r0, _08065360 @ =gTextBox - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0 - bne _0806535C - movs r0, #1 - strb r0, [r2, #0xc] - strb r1, [r2, #0xd] - ldr r1, _08065364 @ =gRoomVars - ldrb r0, [r2, #0xf] - str r0, [r1, #0x68] - adds r0, r2, #0 - movs r1, #4 - bl InitializeAnimation -_0806535C: - pop {pc} - .align 2, 0 -_08065360: .4byte gTextBox -_08065364: .4byte gRoomVars - - thumb_func_start sub_08065368 -sub_08065368: @ 0x08065368 - push {lr} - bl GetNextFrame - pop {pc} - - thumb_func_start sub_08065370 -sub_08065370: @ 0x08065370 - 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, _0806539C @ =gRoomVars - ldrb r5, [r0, #6] - movs r0, #0 - mov sb, r0 - cmp r5, #0x66 - beq _0806541A - cmp r5, #0x66 - bhi _080653AA - cmp r5, #0x61 - beq _08065426 - cmp r5, #0x61 - bhi _080653A0 - cmp r5, #0xd - beq _080653D0 - b _0806543C - .align 2, 0 -_0806539C: .4byte gRoomVars -_080653A0: - cmp r5, #0x64 - beq _08065414 - cmp r5, #0x65 - beq _08065420 - b _0806543C -_080653AA: - cmp r5, #0x6c - blo _0806543C - cmp r5, #0x6d - bls _080653EC - cmp r5, #0x6f - bhi _0806543C - ldr r2, _080653C8 @ =gQuiverSizes - ldr r1, _080653CC @ =gSave - adds r0, r1, #0 - adds r0, #0xaf - ldrb r0, [r0] - adds r0, r0, r2 - adds r1, #0xad - b _080653FA - .align 2, 0 -_080653C8: .4byte gQuiverSizes -_080653CC: .4byte gSave -_080653D0: - movs r0, #0xd - bl GetInventoryValue - cmp r0, #0 - bne _080653E4 - movs r0, #0xe - bl GetInventoryValue - cmp r0, #0 - beq _0806543C -_080653E4: - ldr r0, _080653E8 @ =0x00002C0B - b _080654C2 - .align 2, 0 -_080653E8: .4byte 0x00002C0B -_080653EC: - ldr r2, _08065408 @ =gBombBagSizes - ldr r1, _0806540C @ =gSave - adds r0, r1, #0 - adds r0, #0xae - ldrb r0, [r0] - adds r0, r0, r2 - adds r1, #0xac -_080653FA: - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bhi _0806543C - ldr r0, _08065410 @ =0x00002C0E - b _080654C2 - .align 2, 0 -_08065408: .4byte gBombBagSizes -_0806540C: .4byte gSave -_08065410: .4byte 0x00002C0E -_08065414: - movs r1, #0x55 - mov sb, r1 - b _0806543C -_0806541A: - movs r0, #0x56 - mov sb, r0 - b _0806543C -_08065420: - movs r1, #0xcd - mov sb, r1 - b _0806543C -_08065426: - ldr r0, _08065494 @ =gSave - adds r0, #0xc2 - ldrh r1, [r0] - ldr r0, _08065498 @ =0x000003E6 - cmp r1, r0 - bls _0806543C - ldr r0, _0806549C @ =0x00002C0E - adds r1, r4, #0 - bl TextboxNoOverlap - movs r6, #0 -_0806543C: - cmp r6, #0 - beq _080654C8 - adds r0, r5, #0 - bl GetItemPrice - adds r6, r0, #0 - ldr r7, _08065494 @ =gSave - adds r0, r7, #0 - adds r0, #0xc0 - ldrh r0, [r0] - cmp r6, r0 - bhi _080654C0 - rsbs r0, r6, #0 - bl ModRupees - ldr r4, _080654A0 @ =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 _0806547C - bl SetLocalFlag -_0806547C: - ldr r1, [r7, #0x5c] - movs r0, #2 - rsbs r0, r0, #0 - cmp r1, r0 - bhi _0806548A - adds r0, r1, #1 - str r0, [r7, #0x5c] -_0806548A: - ldr r0, [r7, #0x5c] - cmp r0, #9 - bls _080654A8 - ldr r0, _080654A4 @ =0x00002C11 - b _080654B6 - .align 2, 0 -_08065494: .4byte gSave -_08065498: .4byte 0x000003E6 -_0806549C: .4byte 0x00002C0E -_080654A0: .4byte gRoomVars -_080654A4: .4byte 0x00002C11 -_080654A8: - cmp r6, #0x63 - bls _080654B4 - ldr r0, _080654B0 @ =0x00002C10 - b _080654B6 - .align 2, 0 -_080654B0: .4byte 0x00002C10 -_080654B4: - ldr r0, _080654BC @ =0x00002C0F -_080654B6: - mov r1, r8 - str r0, [r1, #4] - b _080654CE - .align 2, 0 -_080654BC: .4byte 0x00002C0F -_080654C0: - ldr r0, _080654D8 @ =0x00002C0D -_080654C2: - adds r1, r4, #0 - bl TextboxNoOverlap -_080654C8: - movs r0, #0 - mov r1, r8 - str r0, [r1, #0x14] -_080654CE: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080654D8: .4byte 0x00002C0D - - thumb_func_start sub_080654DC -sub_080654DC: @ 0x080654DC - push {lr} - movs r2, #0x18 - rsbs r2, r2, #0 - movs r1, #8 - bl CreateSpeechBubbleQuestionMark - pop {pc} - .align 2, 0 - - thumb_func_start sub_080654EC -sub_080654EC: @ 0x080654EC - push {lr} - movs r2, #0x18 - rsbs r2, r2, #0 - movs r1, #8 - bl CreateSpeechBubbleExclamationMark - pop {pc} - .align 2, 0 - - thumb_func_start sub_080654FC -sub_080654FC: @ 0x080654FC - push {lr} - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08065518 - ldr r1, _08065514 @ =gActiveScriptInfo - movs r0, #0 - strb r0, [r1, #6] - b _08065522 - .align 2, 0 -_08065514: .4byte gActiveScriptInfo -_08065518: - ldr r2, _08065524 @ =gActiveScriptInfo - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] -_08065522: - pop {pc} - .align 2, 0 -_08065524: .4byte gActiveScriptInfo - - thumb_func_start sub_08065528 -sub_08065528: @ 0x08065528 - ldr r2, _08065530 @ =gRoomVars - ldr r0, [r1, #4] - str r0, [r2, #0x68] - bx lr - .align 2, 0 -_08065530: .4byte gRoomVars diff --git a/asm/sturgeon.s b/asm/sturgeon.s deleted file mode 100644 index 66a5193b..00000000 --- a/asm/sturgeon.s +++ /dev/null @@ -1,375 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Sturgeon -Sturgeon: @ 0x08064A90 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08064ABC - ldr r0, _08064AB8 @ =gUnk_0810FA44 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0806ED78 - b _08064B42 - .align 2, 0 -_08064AB8: .4byte gUnk_0810FA44 -_08064ABC: - ldrb r1, [r4, #0xc] - adds r5, r1, #0 - cmp r5, #0 - bne _08064AE4 - ldr r1, _08064AE0 @ =gUnk_0810FA38 - adds r0, r4, #0 - bl LoadExtraSpriteData - cmp r0, #0 - beq _08064B42 - movs r0, #1 - strb r0, [r4, #0xc] - strb r5, [r4, #0xe] - adds r0, r4, #0 - bl sub_0807DD50 - b _08064B42 - .align 2, 0 -_08064AE0: .4byte gUnk_0810FA38 -_08064AE4: - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - beq _08064B00 - adds r0, r4, #0 - bl UpdateFuseInteraction - cmp r0, #0 - beq _08064B42 - movs r0, #1 - strb r0, [r4, #0xc] - b _08064B42 -_08064B00: - adds r2, r4, #0 - adds r2, #0x39 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #2 - bne _08064B34 - movs r0, #0xff - orrs r0, r1 - strb r0, [r4, #0xc] - strb r3, [r2] - ldr r1, _08064B30 @ =gPlayerEntity - adds r0, r4, #0 - bl GetFacingDirection - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl InitAnimationForceUpdate - adds r0, r4, #0 - bl sub_0806F118 - b _08064B42 - .align 2, 0 -_08064B30: .4byte gPlayerEntity -_08064B34: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - adds r0, r4, #0 - bl sub_08064C9C -_08064B42: - pop {r4, r5, pc} - - thumb_func_start sub_08064B44 -sub_08064B44: @ 0x08064B44 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08064B80 @ =gUnk_0810FA38 - bl LoadExtraSpriteData - cmp r0, #0 - beq _08064B7E - adds r0, r4, #0 - movs r1, #2 - bl InitializeAnimation - ldr r1, _08064B84 @ =gUnk_0810FA5A - adds r0, r4, #0 - movs r2, #0 - bl sub_0806EE04 - adds r0, r4, #0 - bl sub_08064CC0 - movs r1, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] -_08064B7E: - pop {r4, pc} - .align 2, 0 -_08064B80: .4byte gUnk_0810FA38 -_08064B84: .4byte gUnk_0810FA5A - - thumb_func_start sub_08064B88 -sub_08064B88: @ 0x08064B88 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x39 - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r0, #1 - beq _08064BFA - cmp r0, #1 - bgt _08064BA2 - cmp r0, #0 - beq _08064BA8 - b _08064BFA -_08064BA2: - cmp r0, #2 - beq _08064BCE - b _08064BFA -_08064BA8: - adds r0, r4, #0 - bl sub_0806EE20 - adds r2, r0, #0 - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - strb r0, [r4, #0x14] - cmp r2, #0 - beq _08064BC6 - movs r1, #0x7f - ands r1, r2 - adds r0, r4, #0 - bl InitializeAnimation -_08064BC6: - adds r0, r4, #0 - bl GetNextFrame - b _08064C28 -_08064BCE: - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl GetAnimationState - adds r1, r0, #0 - cmp r1, #0 - bge _08064BE0 - ldrb r1, [r4, #0x14] -_08064BE0: - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl InitializeAnimation - movs r0, #0 - strb r0, [r5] - adds r0, r4, #0 - bl sub_0806F118 - b _08064C28 -_08064BFA: - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl GetAnimationState - adds r1, r0, #0 - cmp r1, #0 - bge _08064C0C - ldrb r1, [r4, #0x14] -_08064C0C: - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl InitializeAnimation - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08064CD8 -_08064C28: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08064C2C -sub_08064C2C: @ 0x08064C2C - push {lr} - adds r2, r0, #0 - ldr r0, _08064C4C @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _08064C48 - movs r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0xf] - adds r0, r2, #0 - bl InitializeAnimation -_08064C48: - pop {pc} - .align 2, 0 -_08064C4C: .4byte gTextBox - - thumb_func_start sub_08064C50 -sub_08064C50: @ 0x08064C50 - push {r4, lr} - adds r4, r0, #0 - bl UpdateFuseInteraction - cmp r0, #0 - beq _08064C68 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0xf] - adds r0, r4, #0 - bl InitializeAnimation -_08064C68: - pop {r4, pc} - .align 2, 0 - - thumb_func_start Sturgeon_Head -Sturgeon_Head: @ 0x08064C6C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r2, #0x3f - ands r2, r0 - adds r0, r4, #0 - movs r1, #0 - bl SetExtraSpriteFrame - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl SetExtraSpriteFrame - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl SetSpriteSubEntryOffsetData1 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, pc} - - thumb_func_start sub_08064C9C -sub_08064C9C: @ 0x08064C9C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - cmp r0, #0 - beq _08064CB8 - ldr r0, _08064CBC @ =gScreenTransition - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _08064CB8 - adds r0, r2, #0 - bl CreateDust -_08064CB8: - pop {pc} - .align 2, 0 -_08064CBC: .4byte gScreenTransition - - thumb_func_start sub_08064CC0 -sub_08064CC0: @ 0x08064CC0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_08064CD8 -sub_08064CD8: @ 0x08064CD8 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #2 - movs r0, #0x46 - bl GetInventoryValue - cmp r0, #0 - bne _08064CF4 - movs r0, #0x73 - bl CheckLocalFlag - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r4, r1, #0x1f -_08064CF4: - ldr r0, _08064D04 @ =gUnk_0810FA54 - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_08064D04: .4byte gUnk_0810FA54 - - thumb_func_start sub_08064D08 -sub_08064D08: @ 0x08064D08 - movs r1, #1 - strb r1, [r0, #0xe] - bx lr - .align 2, 0 - - thumb_func_start sub_08064D10 -sub_08064D10: @ 0x08064D10 - movs r1, #0 - strb r1, [r0, #0xe] - bx lr - .align 2, 0 - - thumb_func_start Sturgeon_Fusion -Sturgeon_Fusion: @ 0x08064D18 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08064D50 - ldr r1, _08064D4C @ =gUnk_0810FA38 - adds r0, r4, #0 - bl LoadExtraSpriteData - cmp r0, #0 - beq _08064D56 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #6 - bl InitializeAnimation - b _08064D56 - .align 2, 0 -_08064D4C: .4byte gUnk_0810FA38 -_08064D50: - adds r0, r4, #0 - bl GetNextFrame -_08064D56: - pop {r4, pc} diff --git a/asm/sub_08007DE0.s b/asm/sub_08007DE0.s deleted file mode 100644 index 6c4e5b03..00000000 --- a/asm/sub_08007DE0.s +++ /dev/null @@ -1,22 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_08007DE0 -sub_08007DE0: @ 0x08007DE0 - subs r1, #4 -_08007DE2: - adds r1, #4 - ldrh r3, [r1] - cmp r3, #0 - beq _08007DF2 - cmp r0, r3 - bne _08007DE2 - ldrh r3, [r1, #2] - movs r2, #1 -_08007DF2: - bx lr diff --git a/asm/tingleSiblings.s b/asm/tingleSiblings.s deleted file mode 100644 index f90adb6c..00000000 --- a/asm/tingleSiblings.s +++ /dev/null @@ -1,331 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_08064DE4 -sub_08064DE4: @ 0x08064DE4 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _08064E1A - cmp r0, #1 - bgt _08064DF8 - cmp r0, #0 - beq _08064DFE - b _08064E6A -_08064DF8: - cmp r0, #2 - beq _08064E56 - b _08064E6A -_08064DFE: - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - movs r0, #4 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_0807DD50 - b _08064E6A -_08064E1A: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _08064E4C - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - ldr r1, _08064E48 @ =gPlayerEntity - adds r0, r4, #0 - bl GetFacingDirection - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl InitAnimationForceUpdate - adds r0, r4, #0 - bl sub_0806F118 - b _08064E6A - .align 2, 0 -_08064E48: .4byte gPlayerEntity -_08064E4C: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _08064E6A -_08064E56: - adds r0, r4, #0 - bl UpdateFuseInteraction - cmp r0, #0 - beq _08064E6A - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0801E99C -_08064E6A: - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r5, #0xf - ands r5, r1 - adds r0, r5, #0 - eors r0, r1 - strb r0, [r2] - cmp r5, #0 - beq _08064EA0 - movs r1, #0x29 - cmp r5, #3 - bne _08064E86 - movs r1, #0x2a -_08064E86: - adds r0, r4, #0 - movs r2, #0 - bl CreateFx - adds r2, r0, #0 - cmp r2, #0 - beq _08064EA0 - cmp r5, #2 - bne _08064EA0 - ldrb r0, [r2, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2, #0x18] -_08064EA0: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08064EA4 -sub_08064EA4: @ 0x08064EA4 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r5, r4, #0 - adds r5, #0x68 - strb r0, [r5] - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _08064EBE - cmp r0, #3 - beq _08064EC2 - b _08064ED8 -_08064EBE: - movs r0, #0x59 - b _08064EC4 -_08064EC2: - movs r0, #0x5a -_08064EC4: - bl CheckKinstoneFused - cmp r0, #0 - beq _08064ED8 - movs r0, #0xc - bl GetInventoryValue - cmp r0, #0 - bne _08064ED8 - strb r0, [r5] -_08064ED8: - adds r0, r4, #0 - adds r0, #0x68 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08064EE8 -sub_08064EE8: @ 0x08064EE8 - push {r4, r5, lr} - adds r4, r0, #0 - bl UpdateAnimationSingleFrame - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r5, #0xf - ands r5, r1 - adds r0, r5, #0 - eors r0, r1 - strb r0, [r2] - cmp r5, #0 - beq _08064F26 - movs r1, #0x2a - cmp r5, #3 - beq _08064F0C - movs r1, #0x29 -_08064F0C: - adds r0, r4, #0 - movs r2, #0 - bl CreateFx - adds r2, r0, #0 - cmp r2, #0 - beq _08064F26 - cmp r5, #2 - bne _08064F26 - ldrb r0, [r2, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2, #0x18] -_08064F26: - pop {r4, r5, pc} - - thumb_func_start sub_08064F28 -sub_08064F28: @ 0x08064F28 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - mov r8, r1 - movs r0, #0 - str r0, [r1, #0x14] - ldr r1, _08064F60 @ =gUnk_0810FC50 - ldrb r0, [r6, #0xa] - adds r0, r0, r1 - ldrb r7, [r0] - adds r0, r7, #0 - bl CheckRoomFlag - cmp r0, #0 - bne _08064F84 - ldr r4, _08064F64 @ =gSave - adds r0, r6, #0 - bl sub_08002632 - ldr r1, _08064F68 @ =0x00000141 - adds r4, r4, r1 - adds r0, r0, r4 - ldrb r4, [r0] - cmp r4, #1 - bls _08064F6C - movs r5, #3 - b _08064F7E - .align 2, 0 -_08064F60: .4byte gUnk_0810FC50 -_08064F64: .4byte gSave -_08064F68: .4byte 0x00000141 -_08064F6C: - movs r0, #0xc - bl GetInventoryValue - movs r5, #2 - cmp r0, #0 - bne _08064F7E - rsbs r0, r4, #0 - orrs r0, r4 - lsrs r5, r0, #0x1f -_08064F7E: - movs r4, #1 - rsbs r4, r4, #0 - b _08064FD2 -_08064F84: - movs r0, #0x3a - bl CheckGlobalFlag - cmp r0, #0 - bne _08064FCE - ldr r0, _08064FB0 @ =gSave - ldr r1, _08064FB4 @ =0x00000117 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0x64 - subs r4, r0, r1 - cmp r4, #0 - bgt _08064FB8 - movs r5, #8 - movs r4, #0 - movs r0, #0x3a - bl SetGlobalFlag - movs r0, #1 - mov r1, r8 - str r0, [r1, #0x14] - b _08064FD2 - .align 2, 0 -_08064FB0: .4byte gSave -_08064FB4: .4byte 0x00000117 -_08064FB8: - movs r5, #7 - cmp r4, #9 - ble _08064FC0 - movs r5, #6 -_08064FC0: - cmp r4, #0x27 - ble _08064FC6 - movs r5, #5 -_08064FC6: - cmp r4, #0x45 - ble _08064FD2 - movs r5, #4 - b _08064FD2 -_08064FCE: - movs r5, #8 - movs r4, #0 -_08064FD2: - ldr r2, _08065008 @ =gUnk_0810FC08 - ldrb r1, [r6, #0xa] - lsls r0, r1, #3 - adds r0, r0, r1 - adds r0, r0, r5 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - adds r1, r6, #0 - bl TextboxNoOverlap - cmp r4, #0 - ble _08064FF4 - ldr r1, _0806500C @ =gTextBox - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - str r0, [r1, #0x10] -_08064FF4: - adds r0, r7, #0 - bl CheckRoomFlag - cmp r0, #0 - bne _08065010 - adds r0, r7, #0 - bl SetRoomFlag - b _08065016 - .align 2, 0 -_08065008: .4byte gUnk_0810FC08 -_0806500C: .4byte gTextBox -_08065010: - adds r0, r7, #0 - bl ClearRoomFlag -_08065016: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start TingleSiblings_Fusion -TingleSiblings_Fusion: @ 0x0806501C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _0806504A - adds r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - movs r1, #6 - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _08065042 - movs r1, #0xa -_08065042: - adds r0, r2, #0 - bl InitAnimationForceUpdate - b _08065050 -_0806504A: - adds r0, r2, #0 - bl sub_08064EE8 -_08065050: - pop {pc} - .align 2, 0 diff --git a/asm/windTribespeople.s b/asm/windTribespeople.s deleted file mode 100644 index 0c4770e5..00000000 --- a/asm/windTribespeople.s +++ /dev/null @@ -1,199 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0806C978 -sub_0806C978: @ 0x0806C978 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x58 - bl CheckGlobalFlag - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r1, r1, #0x1f - ldr r0, _0806C998 @ =gUnk_08113B12 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r4, #0 - bl TextboxNoOverlap - pop {r4, pc} - .align 2, 0 -_0806C998: .4byte gUnk_08113B12 - - thumb_func_start sub_0806C99C -sub_0806C99C: @ 0x0806C99C - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x58 - bl CheckGlobalFlag - rsbs r1, r0, #0 - orrs r1, r0 - asrs r4, r1, #0x1f - movs r0, #2 - ands r4, r0 - movs r0, #0x63 - bl CheckLocalFlag - cmp r0, #0 - beq _0806C9BC - adds r4, #1 -_0806C9BC: - ldr r0, _0806C9CC @ =gUnk_08113B16 - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_0806C9CC: .4byte gUnk_08113B16 - - thumb_func_start sub_0806C9D0 -sub_0806C9D0: @ 0x0806C9D0 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - movs r0, #0x64 - bl CheckLocalFlag - cmp r0, #0 - bne _0806C9E2 - movs r4, #1 -_0806C9E2: - ldr r0, _0806C9F4 @ =gUnk_08113B1E - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl TextboxNoOverlap - pop {r4, r5, pc} - .align 2, 0 -_0806C9F4: .4byte gUnk_08113B1E - - thumb_func_start sub_0806C9F8 -sub_0806C9F8: @ 0x0806C9F8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x58 - bl CheckGlobalFlag - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r1, r1, #0x1f - ldr r0, _0806CA18 @ =gUnk_08113B22 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r4, #0 - bl TextboxNoOverlap - pop {r4, pc} - .align 2, 0 -_0806CA18: .4byte gUnk_08113B22 - - thumb_func_start sub_0806CA1C -sub_0806CA1C: @ 0x0806CA1C - push {lr} - adds r1, r0, #0 - ldr r0, _0806CA28 @ =0x0000251B - bl TextboxNoOverlap - pop {pc} - .align 2, 0 -_0806CA28: .4byte 0x0000251B - - thumb_func_start sub_0806CA2C -sub_0806CA2C: @ 0x0806CA2C - push {lr} - adds r1, r0, #0 - ldr r0, _0806CA38 @ =0x00002527 - bl TextboxNoOverlap - pop {pc} - .align 2, 0 -_0806CA38: .4byte 0x00002527 - - thumb_func_start sub_0806CA3C -sub_0806CA3C: @ 0x0806CA3C - push {lr} - ldr r1, _0806CA48 @ =gUnk_08113B28 - bl ShowNPCDialogue - pop {pc} - .align 2, 0 -_0806CA48: .4byte gUnk_08113B28 - - thumb_func_start sub_0806CA4C -sub_0806CA4C: @ 0x0806CA4C - push {lr} - ldr r1, _0806CA58 @ =gUnk_08113B30 - bl ShowNPCDialogue - pop {pc} - .align 2, 0 -_0806CA58: .4byte gUnk_08113B30 - - thumb_func_start sub_0806CA5C -sub_0806CA5C: @ 0x0806CA5C - push {r4, lr} - adds r4, r1, #0 - ldr r3, _0806CA8C @ =gUnk_08113B38 - ldrb r1, [r4, #0x18] - adds r2, r1, #1 - strb r2, [r4, #0x18] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r1, r1, r3 - ldrb r1, [r1] - strh r1, [r4, #0x10] - ldrb r0, [r0, #0xb] - cmp r0, #0xa - bne _0806CA7E - movs r0, #0xe8 - bl EnqueueSFX -_0806CA7E: - ldrh r0, [r4, #0x10] - cmp r0, #0 - beq _0806CA8A - ldr r1, _0806CA90 @ =gActiveScriptInfo - movs r0, #0 - strb r0, [r1, #6] -_0806CA8A: - pop {r4, pc} - .align 2, 0 -_0806CA8C: .4byte gUnk_08113B38 -_0806CA90: .4byte gActiveScriptInfo - - thumb_func_start WindTribespeople_Fusion -WindTribespeople_Fusion: @ 0x0806CA94 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806CAD4 - ldrb r1, [r4, #0xa] - lsls r1, r1, #4 - ldr r0, _0806CAD0 @ =gUnk_08113A1C - adds r1, r1, r0 - adds r0, r4, #0 - bl LoadExtraSpriteData - cmp r0, #0 - beq _0806CADA - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #6 - bl InitializeAnimation - b _0806CADA - .align 2, 0 -_0806CAD0: .4byte gUnk_08113A1C -_0806CAD4: - adds r0, r4, #0 - bl GetNextFrame -_0806CADA: - pop {r4, pc} diff --git a/include/enemy.h b/include/enemy.h index 655af99a..cdfdfafe 100644 --- a/include/enemy.h +++ b/include/enemy.h @@ -5,7 +5,7 @@ #include "entity.h" typedef enum { - /*0x00*/ OCTOROCK, + /*0x00*/ OCTOROK, /*0x01*/ CHUCHU, /*0x02*/ LEEVER, /*0x03*/ PEAHAT, @@ -62,10 +62,10 @@ typedef enum { /*0x36*/ MAZAAL_HEAD, /*0x37*/ MAZAAL_MACRO, /*0x38*/ MAZAAL_HAND, - /*0x39*/ OCTOROCK_BOSS, + /*0x39*/ OCTOROK_BOSS, /*0x3a*/ FLYING_POT, /*0x3b*/ GOBDO, - /*0x3c*/ OCTOROCK_GOLDEN, + /*0x3c*/ OCTOROK_GOLDEN, /*0x3d*/ TEKTITE_GOLDEN, /*0x3e*/ ROPE_GOLDEN, /*0x3f*/ CLOUD_PIRANHA, @@ -90,7 +90,7 @@ typedef enum { /*0x52*/ VAATI_ARM, /*0x53*/ DUST, /*0x54*/ VAATI_BALL, - /*0x55*/ OCTOROCK2, + /*0x55*/ OCTOROK2, /*0x56*/ SLIME, /*0x57*/ MINI_SLIME, /*0x58*/ FIREBALL_GUY, diff --git a/include/greatFairy.h b/include/greatFairy.h index fd325b6c..39d3e539 100644 --- a/include/greatFairy.h +++ b/include/greatFairy.h @@ -22,7 +22,6 @@ extern void (*const gUnk_081207A4[])(Entity*); extern u32 gUnk_0810C2E4; extern const s16 GreatFairy_RippleOffsets[10]; -extern u32 gUnk_02034350; extern u8 gUnk_0812079C[8]; extern s8 gUnk_081207AC[]; diff --git a/include/save.h b/include/save.h index 40434f8b..65258dee 100644 --- a/include/save.h +++ b/include/save.h @@ -40,7 +40,8 @@ typedef struct { /*0x0D0*/ u8 fillerD0[0x71]; /*0x141*/ u8 unk141[0x34f]; /*0x490*/ u32 unk490; - /*0x494*/ u8 filler494[0x20]; + /*0x494*/ u32 unk494; + /*0x498*/ u8 filler498[0x1C]; } SaveFile; extern SaveFile gSave; diff --git a/include/structures.h b/include/structures.h index 11d66ac8..4b5d3e17 100644 --- a/include/structures.h +++ b/include/structures.h @@ -36,7 +36,8 @@ extern struct_02000010 gUnk_02000010; typedef struct { s32 frameCount; // regular frame count? does anything reset it? - u8 field_0x4[0x4]; + u8 field_0x4[0x2]; + u16 field_0x8; bool8 transitioningOut; u8 transitionType; // transition when changing areas u16 field_0xa; // seems to be a tile type diff --git a/include/utils.h b/include/utils.h index 040eacee..0634700e 100644 --- a/include/utils.h +++ b/include/utils.h @@ -1,3 +1,8 @@ +#ifndef UTILS_H +#define UTILS_H + +#include "global.h" + typedef struct { u16 heldKeys; u16 newKeys; @@ -62,3 +67,5 @@ void zFree(void* ptr); * @param updateHUD bool32 Request refresh of HUD layer (bg 0) */ void DispReset(bool32 updateHUD); + +#endif \ No newline at end of file diff --git a/linker.ld b/linker.ld index 06817df7..a4280231 100644 --- a/linker.ld +++ b/linker.ld @@ -553,7 +553,6 @@ SECTIONS { src/npc/festari.o(.text); src/npc/forestMinish.o(.text); src/npc/postman.o(.text); - asm/postman.o(.text); src/npc/npc5.o(.text); src/npc/townsperson.o(.text); src/npc/kid.o(.text); @@ -562,90 +561,82 @@ SECTIONS { src/npc/marcy.o(.text); src/npc/wheaton.o(.text); src/npc/pita.o(.text); - asm/pita.o(.text); - asm/minishEzlo.o(.text); + src/npc/minishEzlo.o(.text); src/npc/mailbox.o(.text); src/npc/beedle.o(.text); - asm/brocco.o(.text); - asm/sittingPerson.o(.text); - asm/pina.o(.text); + src/npc/brocco.o(.text); + src/npc/sittingPerson.o(.text); + src/npc/pina.o(.text); src/npc/guard.o(.text); - asm/guardWithSpear.o(.text); - asm/castleMaid.o(.text); + src/npc/guardWithSpear.o(.text); + src/npc/castleMaid.o(.text); src/npc/din.o(.text); src/npc/nayru.o(.text); src/npc/farore.o(.text); - asm/sturgeon.o(.text); + src/npc/sturgeon.o(.text); src/npc/tingleSiblings.o(.text); - asm/tingleSiblings.o(.text); - asm/stockwell.o(.text); + src/npc/stockwell.o(.text); src/npc/talon.o(.text); src/npc/malon.o(.text); src/npc/epona.o(.text); src/npc/milkCart.o(.text); - asm/ghostBrothers.o(.text); + src/npc/ghostBrothers.o(.text); src/npc/smith.o(.text); - asm/npc23.o(.text); - asm/kingDaltus.o(.text); - asm/ministerPotho.o(.text); + src/npc/npc23.o(.text); + src/npc/kingDaltus.o(.text); + src/npc/ministerPotho.o(.text); src/npc/npc26.o(.text); asm/vaati.o(.text); src/npc/zelda.o(.text); src/npc/mutoh.o(.text); src/npc/carpenter.o(.text); - asm/castorWildsStatue.o(.text); + src/npc/castorWildsStatue.o(.text); src/npc/cat.o(.text); - asm/mountainMinish.o(.text); + src/npc/mountainMinish.o(.text); src/npc/zeldaFollower.o(.text); - asm/zeldaFollower.o(.text); src/npc/melari.o(.text); src/npc/bladeBrothers.o(.text); src/npc/cow.o(.text); src/npc/goron.o(.text); src/npc/goronMerchant.o(.text); - asm/gorman.o(.text); + src/npc/gorman.o(.text); src/npc/dog.o(.text); src/npc/syrup.o(.text); - asm/syrup.o(.text); src/npc/rem.o(.text); - asm/rem.o(.text); + src/npc/rem.o(.text); src/npc/townMinish.o(.text); src/npc/librari.o(.text); src/npc/percy.o(.text); - asm/percy.o(.text); asm/vaatiReborn.o(.text); src/npc/moblinLady.o(.text); - asm/librarians.o(.text); - asm/farmers.o(.text); + src/npc/librarians.o(.text); + src/npc/farmers.o(.text); src/npc/carlov.o(.text); src/npc/dampe.o(.text); - asm/drLeft.o(.text); + src/npc/drLeft.o(.text); src/npc/kingGustaf.o(.text); src/npc/gina.o(.text); src/npc/simon.o(.text); src/npc/anju.o(.text); - asm/mama.o(.text); + src/npc/mama.o(.text); src/npc/emma.o(.text); src/npc/teachers.o(.text); src/npc/windTribespeople.o(.text); - asm/windTribespeople.o(.text); - asm/gregal.o(.text); + src/npc/gregal.o(.text); src/npc/mayorHagen.o(.text); src/npc/bigGoron.o(.text); - asm/bigGoron.o(.text); src/npc/ezloCap.o(.text); src/npc/npc4E.o(.text); src/npc/npc4F.o(.text); src/npc/clothesRack.o(.text); - asm/clothesRack.o(.text); - asm/picolyteBottles.o(.text); + src/npc/picolyteBottle.o(.text); src/npc/smallTownMinish.o(.text); - asm/hurdyGurdyMan.o(.text); - asm/cucco.o(.text); - asm/cuccoChick.o(.text); + src/npc/hurdyGurdyMan.o(.text); + src/npc/cucco.o(.text); + src/npc/cuccoChick.o(.text); src/npc/fusionMenuNPC.o(.text); - asm/phonograph.o(.text); - asm/npc58.o(.text); + src/npc/phonograph.o(.text); + src/npc/npc58.o(.text); /* END npcs */ asm/code_0806EC20.o(.text); src/createNPC.o(.text); diff --git a/src/enemy.c b/src/enemy.c index 38c96f98..88f48905 100644 --- a/src/enemy.c +++ b/src/enemy.c @@ -4,7 +4,7 @@ // clang-format off void (*const gEnemyFunctions[])(Entity* ent) = { - [OCTOROCK] = Octorok, + [OCTOROK] = Octorok, [CHUCHU] = Chuchu, [LEEVER] = Leever, [PEAHAT] = Peahat, @@ -61,10 +61,10 @@ void (*const gEnemyFunctions[])(Entity* ent) = { [MAZAAL_HEAD] = MazaalHead, [MAZAAL_MACRO] = MazaalMacro, [MAZAAL_HAND] = MazaalHand, - [OCTOROCK_BOSS] = OctorokBoss, + [OCTOROK_BOSS] = OctorokBoss, [FLYING_POT] = FlyingPot, [GOBDO] = Gibdo, - [OCTOROCK_GOLDEN] = OctorokGolden, + [OCTOROK_GOLDEN] = OctorokGolden, [TEKTITE_GOLDEN] = TektiteGolden, [ROPE_GOLDEN] = RopeGolden, [CLOUD_PIRANHA] = CloudPiranha, @@ -89,7 +89,7 @@ void (*const gEnemyFunctions[])(Entity* ent) = { [VAATI_ARM] = VaatiArm, [DUST] = Dust, [VAATI_BALL] = VaatiBall, - [OCTOROCK2] = Octorok, + [OCTOROK2] = Octorok, [SLIME] = Slime, [MINI_SLIME] = MiniSlime, [FIREBALL_GUY] = FireballGuy, diff --git a/src/enemy/gibdo.c b/src/enemy/gibdo.c index 3a318a4d..7f6d04e6 100644 --- a/src/enemy/gibdo.c +++ b/src/enemy/gibdo.c @@ -223,8 +223,8 @@ void sub_080377B0(Entity* this) { this->animationState = this->direction / 8; InitAnimationForceUpdate(this, this->animationState + 4); } -// Nonmatching -NONMATCH("asm/non_matching/gibdo/sub_08037810.inc", u32 sub_08037810(Entity* this)) { + +u32 sub_08037810(Entity* this) { u32 x; u32 y; if (this->field_0x76.HALF.LO == 0) { @@ -236,9 +236,8 @@ NONMATCH("asm/non_matching/gibdo/sub_08037810.inc", u32 sub_08037810(Entity* thi this->actionDelay = 0x18; this->field_0xf = 0x8; this->speed = 0xc0; - y = DirectionRoundUp(GetFacingDirection(this, gUnk_020000B0)); - this->direction = y; - this->animationState = y / 8; + this->direction = DirectionRoundUp(GetFacingDirection(this, gUnk_020000B0)); + this->animationState = this->direction >> 3; this->field_0x74.HWORD = 300; this->field_0x78.HWORD = gUnk_020000B0->x.HALF.HI; this->field_0x7a.HWORD = gUnk_020000B0->y.HALF.HI; @@ -252,7 +251,6 @@ NONMATCH("asm/non_matching/gibdo/sub_08037810.inc", u32 sub_08037810(Entity* thi } return 0; } -END_NONMATCH u32 sub_080378B0(Entity* this) { if (this->field_0x76.HALF.HI == 0) { @@ -333,12 +331,11 @@ void sub_08037A14(Entity* this) { CopyPosition(this, this->field_0x4c); InitAnimationForceUpdate(this, this->animationState + 0xc); } -// Not match // Take Damage maybe? -NONMATCH("asm/non_matching/gibdo/sub_08037A58.inc", void sub_08037A58(Entity* this)) { +void sub_08037A58(Entity* this) { sub_08037ACC(this); this->action = 7; - this->spritePriority.b0 = (this->spritePriority.b0 & 0xf8) | 4; + this->spritePriority.b0 = 4; if (this->iframes == 0) { this->iframes = 0xec; } @@ -351,7 +348,6 @@ NONMATCH("asm/non_matching/gibdo/sub_08037A58.inc", void sub_08037A58(Entity* th this->field_0x76.HALF.LO = 0x3c; InitAnimationForceUpdate(this, this->animationState + 0x10); } -END_NONMATCH void sub_08037ACC(Entity* this) { gPlayerState.flags.all &= 0xFFFFFEFF; diff --git a/src/gba/m4a.c b/src/gba/m4a.c index bcd552d9..38c5c9d0 100644 --- a/src/gba/m4a.c +++ b/src/gba/m4a.c @@ -1,6 +1,5 @@ #include "global.h" #include "gba/m4a.h" - #include "gba/gba.h" // ASCII encoding of 'Smsh' in reverse diff --git a/src/manager/managerC.c b/src/manager/managerC.c index f1965a35..fdc1d480 100644 --- a/src/manager/managerC.c +++ b/src/manager/managerC.c @@ -278,17 +278,22 @@ void sub_08058CFC() { } NONMATCH("asm/non_matching/managerC/sub_08058D34.inc", void sub_08058D34()) { + u16 tmp; LoadPaletteGroup(0x28); MemCopy(gUnk_02017700, gUnk_02017700 + 0x240, 0x20); gUsedPalettes |= 0x200000; LoadGfxGroup(0x16); + tmp = gScreen.lcd.displayControl; gScreen.lcd.displayControl |= 1; gScreen.affine.bg2Control = 0xBC82; - gScreen.bg.bg1xOffset = 0x5E86; + gScreen.bg.bg1Control = 0x5E86; + gScreen.bg.bg1xOffset = 0; gScreen.bg.bg1yOffset = 0; gScreen.bg.bg1Tilemap = 0; gScreen.controls.layerFXControl = 0x3456; + gScreen.controls.alphaBlend = 0x909; + gArea.musicIndex = gArea.pMusicIndex; gUnk_02000070 = 0; if (CheckGlobalFlag(LV1TARU_OPEN)) { diff --git a/src/npc/bigGoron.c b/src/npc/bigGoron.c index c3032d54..1a6ac60a 100644 --- a/src/npc/bigGoron.c +++ b/src/npc/bigGoron.c @@ -6,11 +6,36 @@ #include "random.h" #include "audio.h" #include "functions.h" +#include "script.h" +#include "save.h" +#include "screen.h" +#include "utils.h" +#include "textbox.h" extern void (*gUnk_081140D4[])(Entity*); extern u16 gUnk_081140CC[]; +void sub_0806D520(Entity*, u32); + +void sub_0806D41C(Entity* this); + +extern u8 gMapDataTopSpecial[]; + +void sub_0806D138(u8* param_1, u8* param_2); + +extern void sub_08053500(void); + +extern u32 gUnk_0200B650; +void sub_0806D110(void); +void sub_0806D164(Entity* this); + +extern Hitbox gUnk_080FD180; +Entity* sub_0806D00C(Entity* this); + +void sub_0806D4C0(Entity*, u32); +extern u32 CheckPlayerProximity(u32, u32, u32, u32); + void BigGoron(Entity* this) { gUnk_081140D4[this->type](this); } @@ -54,11 +79,313 @@ void sub_0806CF30(Entity* this) { sub_0806D02C(this); } -void sub_0806D00C(Entity* this) { - Entity* pEVar1; +Entity* sub_0806D00C(Entity* this) { + Entity* entity = FindEntity(7, 76, 7, 0, 0); + if (entity != NULL) { + this->parent = entity; + } + return entity; +} - pEVar1 = FindEntity(7, 76, 7, 0, 0); - if (pEVar1 != NULL) { - this->parent = pEVar1; +ASM_FUNC("asm/non_matching/bigGoron/sub_0806D02C.inc", void sub_0806D02C(Entity* this)) + +void sub_0806D0B0(Entity* this) { + gUnk_0200B650 = 0; + LoadGfxGroup(0x30); + sub_0806D110(); + MemClear(&gMapDataTopSpecial, 0x2000); + if (this != NULL) { + sub_0806D164(this); + } + gScreen.bg.bg1Control = 0x1d47; + gScreen.bg.bg1Tilemap = &gMapDataTopSpecial; + gScreen.bg.bg1Updated = 1; +} + +void sub_0806D0F8(void) { + Entity* entity = FindEntityByID(7, 0x4c, 7); + if (entity != NULL) { + sub_0806D0B0(entity); } } + +void sub_0806D110(void) { + u8* tmp = gMapDataTopSpecial; + u8* tmp2 = tmp + 0x4000; + sub_0806D138(tmp, tmp2); + tmp += 0x800; + tmp2 += 0x40; + sub_0806D138(tmp, tmp2); +} + +ASM_FUNC("asm/non_matching/bigGoron/sub_0806D138.inc", void sub_0806D138(u8* param_1, u8* param_2)) + +ASM_FUNC("asm/non_matching/bigGoron/sub_0806D164.inc", void sub_0806D164(Entity* this)) + +ASM_FUNC("asm/non_matching/bigGoron/sub_0806D1D0.inc", void sub_0806D1D0(Entity* this)) + +void sub_0806D274(Entity* this) { + Entity* npc; + + if (this->action == 0) { + if (sub_0806D00C(this) == NULL) { + DeleteThisEntity(); + } + this->action = 1; + this->spriteOrientation.flipY = 3; + this->spriteRendering.b3 = 3; + this->spritePriority.b0 = 7; + this->frameIndex = 2; + this->actionDelay = 8; + sub_0805E3A0(this, 2); + npc = CreateNPC(0x4c, 3, 0); + if (npc != NULL) { + npc->attachedEntity = this; + } + } + switch (this->subAction) { + case 0: + case 1: + default: + if ((gTextBox.doTextBox & 0x7f) == 0) { + this->frameIndex = 2; + break; + } + if (--this->actionDelay == 0) { + this->actionDelay = 8; + this->frameIndex ^= 1; + } + break; + case 2: + if (--this->actionDelay == 0) { + this->actionDelay = 8; + this->frameIndex ^= 1; + } + break; + case 3: + this->frameIndex = 4; + break; + case 4: + this->frameIndex = 2; + break; + } + this->x.HALF.HI = this->parent->x.HALF.HI; + this->y.HALF.HI = this->parent->y.HALF.HI; +} + +void sub_0806D348(Entity* this) { + if (this->action == 0) { + if (sub_0806D00C(this) == NULL) { + DeleteThisEntity(); + } + this->action = 1; + this->spriteOrientation.flipY = 3; + this->spriteRendering.b3 = 3; + this->spritePriority.b0 = 6; + this->spriteSettings.b.draw = 0; + this->frameIndex = 5; + sub_0805E3A0(this, 2); + } + if (this->attachedEntity->frameIndex == 4) { + this->spriteSettings.b.draw = 3; + } else { + this->spriteSettings.b.draw = 0; + } + this->x.HALF.HI = this->parent->x.HALF.HI; + this->y.HALF.HI = this->parent->y.HALF.HI; +} + +void sub_0806D3C0(Entity* this) { + if (this->action == 0) { + if (sub_0806D00C(this) == NULL) { + DeleteThisEntity(); + } + this->action = 1; + this->hitbox = &gUnk_080FD180; + sub_0805E3A0(this, 2); + sub_0807DD64(this); + } else { + this->x.HALF.HI = this->parent->x.HALF.HI; + ExecuteScriptForEntity(this, NULL); + HandleEntity0x82Actions(this); + } +} + +void sub_0806D40C(Entity* this) { + this->spriteSettings.b.flipX = 1; + sub_0806D41C(this); +} + +void sub_0806D41C(Entity* this) { + if (this->action == 0) { + this->action = 1; + this->frameIndex = 6; + sub_0807DD64(this); + sub_0806D4C0(this, 0); + sub_0806D4C0(this, 1); + sub_0806D4C0(this, 2); + sub_0806D4C0(this, 3); + sub_0805E3A0(this, 2); + } else { + ExecuteScriptForEntity(this, NULL); + HandleEntity0x82Actions(this); + } + if ((gScreenTransition.frameCount & 1) == 0) { + if (CheckPlayerProximity(this->x.HALF.HI - 0x20, this->y.HALF.HI, 0x40, 0x40) != 0) { + if (this->spriteOffsetY > -8) { + this->spriteOffsetY -= 1; + } + } else { + if (this->spriteOffsetY < 0) { + this->spriteOffsetY += 1; + } + } + } +} + +void sub_0806D4C0(Entity* this, u32 param) { + Entity* npc = CreateNPC(0x4c, param + 6, 0); + if (npc != NULL) { + npc->parent = this; + CopyPosition(this, npc); + ResolveEntityOnTop(this, npc); + sub_0805E3A0(npc, 2); + } +} + +void sub_0806D4F0(Entity* this) { + sub_0806D520(this, 0); +} + +void sub_0806D4FC(Entity* this) { + sub_0806D520(this, 1); +} + +void sub_0806D508(Entity* this) { + sub_0806D520(this, 2); +} + +void sub_0806D514(Entity* this) { + sub_0806D520(this, 3); +} + +ASM_FUNC("asm/non_matching/bigGoron/sub_0806D520.inc", void sub_0806D520(Entity* this, u32 param)) + +// TODO itemOnA and itemOnB would need to be in array? +NONMATCH("asm/non_matching/bigGoron/sub_0806D5D4.inc", void sub_0806D5D4(void)) { + u32 itemSlot; + + sub_08053500(); + itemSlot = IsItemEquipped(0xd); + if (itemSlot != 2) { + ((u8*)&gSave.stats.itemOnA)[itemSlot] = 0; + } + sub_0807CAA0(0xd, 0); +} +END_NONMATCH + +void sub_0806D600(Entity* this, ScriptExecutionContext* context) { + context->condition = gSave.unk494 == 0; +} + +void sub_0806D620(void) { + sub_0807CAA0(0xd, 0); + sub_080A7C18(0xe, 0, 0); +} + +void sub_0806D638(Entity* this) { + this->y.HALF.HI -= 0x20; +} + +void sub_0806D640(Entity* this) { + this->y.HALF.HI += 0x20; + this->interactType = 0; +} + +void sub_0806D650(Entity* this) { + this->subAction = 2; +} + +void sub_0806D658(Entity* this, ScriptExecutionContext* context) { + this->subAction = context->intVariable; +} + +void sub_0806D660(Entity* this) { + this->spriteOrientation.flipY = 3; +} + +void sub_0806D66C(Entity* this) { + this->spriteOrientation.flipY = 2; +} + +ASM_FUNC("asm/non_matching/bigGoron/sub_0806D67C.inc", void sub_0806D67C(Entity* this)) + +void sub_0806D6D0(void) { + Entity* entity = FindEntity(7, 0x4c, 7, 2, 0); + if (entity != NULL) { + entity->subAction = 2; + } + entity = FindEntity(7, 0x4c, 7, 1, 0); + if (entity != NULL) { + entity->subAction = 1; + } +} + +void sub_0806D70C(void) { + Entity* entity = FindEntity(7, 0x4c, 7, 2, 0); + if (entity != NULL) { + entity->subAction = 0; + } + entity = FindEntity(7, 0x4c, 7, 1, 0); + if (entity != NULL) { + entity->subAction = 0; + entity->spriteSettings.b.draw = 3; + } +} + +void sub_0806D74C(void) { + Entity* entity = FindEntity(7, 0x4c, 7, 2, 0); + if (entity != NULL) { + entity->subAction = 3; + } + entity = FindEntity(7, 0x4c, 7, 1, 0); + if (entity != NULL) { + entity->subAction = 2; + } +} + +void sub_0806D788(void) { + Entity* entity = FindEntity(7, 0x4c, 7, 2, 0); + if (entity != NULL) { + entity->subAction = 4; + } + entity = FindEntity(7, 0x4c, 7, 1, 0); + if (entity != NULL) { + entity->subAction = 1; + } +} + +void sub_0806D7C4(Entity* this, ScriptExecutionContext* context) { + Entity* entity; + + this->x.HALF.HI = gPlayerEntity.x.HALF.HI; + this->y.HALF.HI = gPlayerEntity.y.HALF.HI - 0x18; + entity = FindEntity(7, 0x4c, 7, 2, 0); + if (entity != NULL) { + sub_0807DEDC(this, context, entity->x.HALF.HI, entity->y.HALF.HI); + } +} + +void sub_0806D804(Entity* this, ScriptExecutionContext* context) { + Entity* entity = FindEntity(7, 0x4c, 7, 2, 0); + if (entity != NULL) { + this->x.HALF.HI = entity->x.HALF.HI; + this->y.HALF.HI = entity->y.HALF.HI - 0x10; + this->spritePriority.b1 = 0; + } + sub_0807DEDC(this, context, gPlayerEntity.x.HALF.HI, gPlayerEntity.y.HALF.HI - 0x10); +} + +void sub_0806D858(Entity* this) { + this->spritePriority.b1 = 1; +} diff --git a/src/npc/brocco.c b/src/npc/brocco.c new file mode 100644 index 00000000..46ec7aa5 --- /dev/null +++ b/src/npc/brocco.c @@ -0,0 +1,93 @@ +#include "entity.h" +#include "functions.h" +#include "textbox.h" +#include "save.h" +#include "npc.h" +#include "script.h" + +void sub_08063544(Entity*); +void sub_0806362C(Entity*); + +extern void (*gUnk_0810CAA0[])(Entity*); + +extern Dialog gUnk_0810CAAC[]; + +void Brocco(Entity* this) { + if ((this->flags & 2) != 0) { + sub_0806362C(this); + } else { + sub_08063544(this); + } +} + +void sub_08063544(Entity* this) { + gUnk_0810CAA0[this->action](this); +} + +void sub_0806355C(Entity* this) { + this->action = this->action + 1; + this->spriteSettings.b.draw = 1; + InitAnimationForceUpdate(this, 4); + sub_08078778(this); +} + +ASM_FUNC("asm/non_matching/brocco/sub_08063584.inc", void sub_08063584(Entity* this)) + +void sub_08063608(Entity* this) { + u8 tmp = gTextBox.doTextBox & 0x7f; + if (tmp == 0) { + this->action = 1; + this->field_0xf = tmp; + InitAnimationForceUpdate(this, 4); + } +} + +void sub_0806362C(Entity* this) { + switch (this->action) { + case 0: + this->action = 1; + this->spriteSettings.b.draw = 1; + this->field_0x68.HALF.HI = 0; + sub_0807DD64(this); + case 1: + if (this->interactType == 2) { + this->action = 2; + this->interactType = 0; + this->field_0x68.HALF.HI = this->animIndex; + InitAnimationForceUpdate(this, sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity)) + 4); + sub_0806F118(this); + } else { + ExecuteScriptForEntity(this, NULL); + HandleEntity0x82Actions(this); + UpdateAnimationSingleFrame(this); + } + break; + case 2: + if (UpdateFuseInteraction(this) == 0) { + return; + } + this->action = 1; + InitAnimationForceUpdate(this, this->field_0x68.HALF.HI); + break; + } +} + +void sub_080636D8(Entity* this) { + ShowNPCDialogue(this, &gUnk_0810CAAC[gSave.unk8]); +} + +void sub_080636F4(Entity* this) { + this->field_0x68.HALF.LO = sub_0801E99C(this); + sub_08078784(this, this->field_0x68.HALF.LO); +} + +void Brocco_Fusion(Entity* this) { + if (this->action == 0) { + this->action += 1; + this->spriteSettings.b.draw = 1; + this->y.HALF.HI -= 4; + InitAnimationForceUpdate(this, 2); + } else { + UpdateAnimationSingleFrame(this); + } +} diff --git a/src/npc/castleMaid.c b/src/npc/castleMaid.c new file mode 100644 index 00000000..606c1974 --- /dev/null +++ b/src/npc/castleMaid.c @@ -0,0 +1,114 @@ +#include "entity.h" +#include "script.h" +#include "save.h" +#include "functions.h" +#include "flags.h" +#include "textbox.h" + +extern Dialog gUnk_0810F894[]; + +void sub_08064570(Entity* this); + +extern u16 gUnk_0810F88C[]; + +extern SpriteLoadData gUnk_0810F874[]; +extern u32 _call_via_r0(u32*); + +void Maid(Entity* this) { + if ((this->flags & 2) != 0) { + sub_08064570(this); + } else { + DeleteThisEntity(); + } +} + +void Maid_Head(Entity* this) { + u32 uVar2; + u32 uVar3; + + uVar2 = this->frames.all & 0x7f; + uVar3 = this->frameIndex; + if (this->id == 0x16) { + if ((this->frames.all & 0x7f) != 0) { + uVar2 += 10; + } + } else { + if ((this->frames.all & 0x7f) != 0) { + uVar2 += 0x1a; + } + uVar3 += 0x10; + } + SetExtraSpriteFrame(this, 0, uVar2 - 1); + SetExtraSpriteFrame(this, 1, uVar3); + SetSpriteSubEntryOffsetData1(this, 1, 0); + sub_0807000C(this); +} + +NONMATCH("asm/non_matching/castleMaid/sub_08064570.inc", void sub_08064570(Entity* this)) { + u8 bVar1; + u32 tmp; + + switch (this->action) { + case 0: + // (&gUnk_0810F874[((s32)-(this->id ^ 0x16) >> 0x1f) * -0xc])) + // TODO fix this array access + tmp = -(this->id ^ 0x16); + if (LoadExtraSpriteData(this, &gUnk_0810F874[(BOOLCAST(tmp)) * 2 + tmp]) == 0) { + return; + } + this->action += 1; + this->actionDelay = 0; + tmp = sub_0805ACC0(this); + if (tmp == 0) { + this->field_0x6c.HWORD = this->x.HALF.HI; + this->field_0x6e.HWORD = this->y.HALF.HI; + } else { + this->field_0x6c.HWORD = tmp >> 0x10; + this->field_0x6e.HWORD = tmp; + } + *(u32*)&this->field_0x68 = 0; + sub_0807DD50(this); + case 1: + sub_0807DD94(this, NULL); + if (this->interactType != 0) { + this->action += 1; + this->interactType = 0; + InitializeAnimation(this, sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity))); + if (*(void**)&this->field_0x68 != NULL) { + _call_via_r0(*(void**)&this->field_0x68); + } + } + break; + case 2: + if ((gTextBox.doTextBox & 0x7f) != 0) { + return; + } + this->action = 1; + break; + } +} +END_NONMATCH + +void sub_08064644(Entity* this, ScriptExecutionContext* context) { + *(u32*)&this->field_0x68 = context->intVariable; +} + +void sub_0806464C(Entity* this) { + s32 tmp; + if (CheckGlobalFlag(0x15) != 0) { + tmp = 2; + } else if (CheckLocalFlag(0xa0) == 0) { + tmp = 0; + SetLocalFlag(0xa0); + } else { + tmp = 1; + } + TextboxNoOverlap(gUnk_0810F88C[tmp], this); +} + +void sub_08064688(Entity* this) { + ShowNPCDialogue(this, &gUnk_0810F894[gSave.unk8]); +} + +ASM_FUNC("asm/non_matching/castleMaid/sub_080646A4.inc", + void sub_080646A4(Entity* this, ScriptExecutionContext* context)) diff --git a/src/npc/castorWildsStatue.c b/src/npc/castorWildsStatue.c new file mode 100644 index 00000000..4ce8bb80 --- /dev/null +++ b/src/npc/castorWildsStatue.c @@ -0,0 +1,128 @@ +#include "entity.h" +#include "script.h" +#include "functions.h" +#include "flags.h" + +extern Hitbox gUnk_08110E94; + +extern void (*gUnk_08110E4C[])(Entity*); +extern void (*gUnk_08110E5C[])(Entity*); + +extern s8 gUnk_08110E64[]; + +extern u32 gUnk_08110E68[]; + +void CastorWildsStatue(Entity* this) { + if ((this->flags & 2) != 0) { + gUnk_08110E5C[this->action](this); + } else { + gUnk_08110E4C[this->action](this); + sub_0806ED78(this); + } +} + +void sub_080673C0(Entity* this) { + if (gScreenTransition.field_0x24[8] != 0) { + this->action = 3; + } else { + this->action = 1; + } + this->frameIndex = this->type & 1; + if ((this->type & 1) == 0) { + this->hitbox = &gUnk_08110E94; + } +} + +void sub_080673F4(Entity* this) { + if (this->interactType != 0) { + this->action = 2; + this->interactType = 0; + } +} + +void sub_08067410(Entity* this) { + this->action = 1; +} + +void sub_08067418(Entity* this) { + this->action = 1; + this->field_0x74.HWORD = COORD_TO_TILE(this); + if (this->type == 0) { + this->hitbox = &gUnk_08110E94; + SetTile(0x4022, this->field_0x74.HWORD - 1, this->collisionLayer); + SetTile(0x4022, this->field_0x74.HWORD, this->collisionLayer); + SetTile(0x4022, this->field_0x74.HWORD + 0x3f, this->collisionLayer); + SetTile(0x4022, this->field_0x74.HWORD + 0x40, this->collisionLayer); + } else { + this->collisionLayer = 3; + this->spriteOrientation.flipY = 1; + this->spriteRendering.b3 = 1; + this->spritePriority.b0 = 2; + if (CheckLocalFlag(0x1d) == 0) { + SetTile(0x4022, 0xe81, 1); + SetTile(0x4022, 0xe82, 1); + SetTile(0x4022, 0xe83, 1); + SetTile(0x4022, 0xec3, 1); + } + } + sub_0807DD50(this); +} + +void sub_08067514(Entity* this) { + sub_0807DD94(this, NULL); + if (this->type == 0) { + sub_0806ED78(this); + } +} + +void sub_0806752C(Entity* this) { + sub_0806FD3C(this); +} + +void sub_08067534(Entity* this) { + Entity* entity; + s32 i; + for (i = 0; i < 2; ++i) { + entity = CreateFx(this, 2, 0); + if (entity != NULL) { + entity->x.HALF.HI += gUnk_08110E64[i]; + entity->y.HALF.HI += 0x1c; + } + } + EnqueueSFX(0x14c); + sub_08080964(0x28, 4); +} + +void sub_0806757C(Entity* this) { + if (this->subAction != 0) { + if (this->subAction >= 3) { + sub_0807BA8C(0xe81, 1); + sub_0807BA8C(0xe82, 1); + sub_0807BA8C(0xe83, 1); + sub_0807BA8C(0xec3, 1); + } else { + LoadFixedGFX(this, gUnk_08110E68[this->subAction]); + } + } +} + +ASM_FUNC("asm/non_matching/castorWildsStatue/sub_080675D4.inc", void sub_080675D4(Entity* this)) + +void sub_080676D8(Entity* this) { + this->subAction += 1; +} + +ASM_FUNC("asm/non_matching/castorWildsStatue/sub_080676E0.inc", + void sub_080676E0(Entity* this, ScriptExecutionContext* context)) + +void CastorWildsStatue_Fusion(Entity* this) { + if (this->action == 0) { + this->action += 1; + this->spriteSettings.b.draw = 1; + this->y.HALF.HI -= 0x18; + InitializeAnimation(this, 1); + sub_0801D2B4(this, 0x17b); + } else { + GetNextFrame(this); + } +} diff --git a/src/npc/clothesRack.c b/src/npc/clothesRack.c index 9dd18b37..c103f5f3 100644 --- a/src/npc/clothesRack.c +++ b/src/npc/clothesRack.c @@ -6,3 +6,9 @@ extern void (*gUnk_0811423C[])(Entity*); void ClothesRack(Entity* this) { gUnk_0811423C[this->action](this); } + +ASM_FUNC("asm/non_matching/clothesRack/sub_0806DD90.inc", void sub_0806DD90(Entity* this)) + +void sub_0806DEC8(Entity* this) { + GetNextFrame(this); +} diff --git a/src/npc/cucco.c b/src/npc/cucco.c new file mode 100644 index 00000000..abfe0904 --- /dev/null +++ b/src/npc/cucco.c @@ -0,0 +1,87 @@ +#include "entity.h" +#include "functions.h" +#include "npc.h" +#include "audio.h" +#include "random.h" + +extern void (*const gUnk_081145B4[])(Entity*); + +void sub_0806E4EC(Entity*); + +void sub_0806E6A8(Entity*); + +extern u16 gUnk_081145C8[]; +void sub_0806E65C(Entity* this); + +void Cucco(Entity* this) { + gUnk_081145B4[this->action](this); +} + +void sub_0806E4B8(Entity* this) { + this->action += 1; + this->field_0x68.HALF.LO = sub_0801E99C(this); + sub_080787A8(this, this->field_0x68.HALF.LO); + sub_0805E3A0(this, 2); + this->subAction = 0; + sub_0806E4EC(this); +} + +void sub_0806E4EC(Entity* this) { + if (this->subAction == 0) { + this->subAction += 1; + this->actionDelay = (Random() & 0x1f) + 0x3c; + InitAnimationForceUpdate(this, 0); + } + if (--this->actionDelay == 0) { + if ((Random() & 1) != 0) { + this->action = 3; + } else { + this->action = 2; + } + this->subAction = 0; + if ((Random() & 1) != 0) { + EnqueueSFX(gUnk_081145C8[Random() & 3]); + } + } + sub_0806E65C(this); + UpdateAnimationSingleFrame(this); +} + +ASM_FUNC("asm/non_matching/cucco/sub_0806E564.inc", void sub_0806E564(Entity* this)) + +ASM_FUNC("asm/non_matching/cucco/sub_0806E5E4.inc", void sub_0806E5E4(Entity* this)) + +void sub_0806E648(Entity* this) { + if (UpdateFuseInteraction(this) != 0) { + this->action = 1; + } +} + +void sub_0806E65C(Entity* this) { + if (this->interactType != 0) { + if ((gPlayerState.flags.all & 0x80) != 0) { + if (this->interactType == 2) { + this->action = 4; + sub_0806F118(this); + } else { + sub_0806E6A8(this); + } + } else { + sub_080791D0(); + } + SoundReq(SFX_VO_CUCCO_CALL); + this->interactType = 0; + } +} + +ASM_FUNC("asm/non_matching/cucco/sub_0806E6A8.inc", void sub_0806E6A8(Entity* this)) + +void Cucco_Fusion(Entity* this) { + if (this->action == 0) { + this->action += 1; + this->spriteSettings.b.draw = 1; + InitAnimationForceUpdate(this, 1); + } else { + UpdateAnimationSingleFrame(this); + } +} diff --git a/src/npc/cuccoChick.c b/src/npc/cuccoChick.c new file mode 100644 index 00000000..a1963b41 --- /dev/null +++ b/src/npc/cuccoChick.c @@ -0,0 +1,85 @@ +#include "entity.h" +#include "textbox.h" +#include "npc.h" +#include "functions.h" +#include "random.h" +#include "audio.h" + +extern void (*const gUnk_081145D4[])(Entity*); + +void sub_0806E764(Entity*); + +void sub_0806E838(Entity* this); + +void sub_0806E884(Entity* this); + +void CuccoChick(Entity* this) { + gUnk_081145D4[this->action](this); + sub_0806ED78(this); +} + +void sub_0806E730(Entity* this) { + this->action += 1; + this->field_0x68.HALF.LO = sub_0801E99C(this); + sub_080787A8(this, this->field_0x68.HALF.LO); + sub_0805E3A0(this, 2); + this->subAction = 0; + sub_0806E764(this); +} + +void sub_0806E764(Entity* this) { + if (this->subAction == 0) { + this->subAction += 1; + this->actionDelay = (Random() & 0x1f) + 0x1e; + this->frameIndex = 0; + } + if (--this->actionDelay == 0) { + this->action = 2; + this->subAction = 0; + if ((Random() & 1) != 0) { + EnqueueSFX(0xd6); + } + } + sub_0806E838(this); +} + +ASM_FUNC("asm/non_matching/cuccoChick/sub_0806E7B0.inc", void sub_0806E7B0(Entity* this)) + +void sub_0806E824(Entity* this) { + if (UpdateFuseInteraction(this) != 0) { + this->action = 1; + } +} + +void sub_0806E838(Entity* this) { + if (this->interactType != 0) { + if ((gPlayerState.flags.all & 0x80) != 0) { + if (this->interactType == 2) { + this->action = 3; + sub_0806F118(this); + } else { + sub_0806E884(this); + } + } else { + sub_080791D0(); + } + SoundReq(SFX_VO_CHEEP); + this->interactType = 0; + } +} + +void sub_0806E884(Entity* this) { + TextboxNoOverlap(0xdb6, this); +} + +void CuccoChick_Fusion(Entity* this) { + if (this->action == 0) { + this->action += 1; + this->spriteSettings.b.draw = 1; + this->frameIndex = 1; + } else { + if (sub_08003FC4(this, 0x3000) == 0) { + this->field_0x20 = 0x10000; + } + } +} diff --git a/src/npc/drLeft.c b/src/npc/drLeft.c new file mode 100644 index 00000000..65863d72 --- /dev/null +++ b/src/npc/drLeft.c @@ -0,0 +1,85 @@ +#include "entity.h" +#include "script.h" +#include "random.h" +#include "functions.h" +#include "save.h" +#include "textbox.h" +#include "flags.h" + +extern void sub_08078850(Entity*, u32, u8, u32*); +extern u32 gUnk_081133B4; + +void sub_0806BFD8(Entity* this); + +extern u16 gUnk_081133A4[]; + +void DrLeft(Entity* this) { + if (this->type == 0) { + if (this->action == 0) { + this->action += 1; + sub_0805E3A0(this, 2); + sub_0807DD50(this); + } + ExecuteScriptForEntity(this, NULL); + HandleEntity0x82Actions(this); + GetNextFrame(this); + sub_0806BFD8(this); + } else { + if (this->action == 0) { + this->action += 1; + this->frameIndex = 0; + sub_0806FAD8(this, this); + } + } +} + +void sub_0806BFD8(Entity* this) { + switch (this->frameSpriteSettings & 3) { + case 1: + InitializeAnimation(this, (Random() & 3) + 0xc); + break; + case 2: + InitializeAnimation(this, 0); + break; + } +} + +void sub_0806C00C(Entity* this, ScriptExecutionContext* context) { + if ((this->frames.all & 0x80) != 0) { + context->condition = 1; + } else { + context->condition = 0; + } +} + +void sub_0806C028(Entity* this, ScriptExecutionContext* context) { + InitializeAnimation(this, context->intVariable + this->animationState / 2); +} + +void sub_0806C038(Entity* this) { + s32 index; + + index = gSave.unk8 - 5; + if (index != 0) { + index = 0; + } + if (GetInventoryValue(0x46) == 0) { + if (GetInventoryValue(0x3a) == 0) { + index = 6; + if (CheckLocalFlag(0xaf) == 0) { + index = 5; + SetLocalFlag(0xaf); + } + } else { + index = 7; + if (GetInventoryValue(0x3a) > 1) { + index = 0; + } + } + } + TextboxNoOverlap(gUnk_081133A4[index], this); +} + +void sub_0806C09C(Entity* this) { + sub_08078850(this, 1, 0, &gUnk_081133B4); +} diff --git a/src/npc/farmers.c b/src/npc/farmers.c new file mode 100644 index 00000000..61f1be97 --- /dev/null +++ b/src/npc/farmers.c @@ -0,0 +1,58 @@ +#include "entity.h" +#include "script.h" +#include "functions.h" + +extern Dialog gUnk_08113158[]; + +extern void sub_0806F188(Entity*); + +extern SpriteLoadData gUnk_08113140[]; +void sub_0806BC58(Entity* this); + +ASM_FUNC("asm/non_matching/farmers/Farmers.inc", void Farmers(Entity* this)) + +void sub_0806BC58(Entity* this) { + sub_0805E3A0(this, 2); +} + +void Farmers_Head(Entity* this) { + SetExtraSpriteFrame(this, 0, this->frames.all & 0x7f); + SetExtraSpriteFrame(this, 1, this->frameIndex); + SetSpriteSubEntryOffsetData1(this, 1, 0); + sub_0807000C(this); +} + +ASM_FUNC("asm/non_matching/farmers/sub_0806BC94.inc", void sub_0806BC94(Entity* this, ScriptExecutionContext* context)) + +void sub_0806BCB8(Entity* this) { + this->animationState = this->actionDelay; +} + +void sub_0806BCC0(Entity* this) { + if (this->type == 0) { + sub_0806F188(this); + } +} + +void sub_0806BCD4(Entity* this) { + sub_08078784(this, sub_0801E99C(this)); +} + +void sub_0806BCE8(Entity* this) { + ShowNPCDialogue(this, &gUnk_08113158[this->type]); +} + +void Farmers_Fusion(Entity* this) { + + if (this->action == 0) { + if (LoadExtraSpriteData(this, &gUnk_08113140[this->type * 3]) != 0) { + this->action = this->action + 1; + this->spriteSettings.b.draw = 1; + this->spriteSettings.b.flipX = 0; + sub_0806BC58(this); + InitAnimationForceUpdate(this, 3); + } + } else { + UpdateAnimationSingleFrame(this); + } +} diff --git a/src/npc/ghostBrothers.c b/src/npc/ghostBrothers.c new file mode 100644 index 00000000..31bedabb --- /dev/null +++ b/src/npc/ghostBrothers.c @@ -0,0 +1,143 @@ +#include "entity.h" +#include "functions.h" +#include "save.h" +#include "screen.h" +#include "textbox.h" +#include "npc.h" +#include "script.h" + +extern void (*const gUnk_0811017C[])(Entity*); + +extern void (*const gUnk_08110274[])(Entity*); + +extern Dialog gUnk_08110280[]; + +extern u32 gUnk_0811022E; + +extern u32 gUnk_0811033C[]; + +extern u32 gUnk_08110188; + +ASM_FUNC("asm/non_matching/ghostBrothers/GhostBrothers.inc", void GhostBrothers(Entity* this)) + +void sub_08065BF4(Entity* this) { + gUnk_0811017C[this->action](this); +} + +NONMATCH("asm/non_matching/ghostBrothers/sub_08065C0C.inc", void sub_08065C0C(Entity* this)) { + u8 bVar1; + u32 uVar2; + u16* puVar3; + + switch (this->action) { + case 0: + this->action = 1; + this->spriteSettings.b.draw = 1; + sub_0807DD50(this); + break; + case 1: + if (this->interactType == 2) { + this->action = 2; + this->interactType = 0; + InitAnimationForceUpdate(this, sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity))); + sub_0806F118(this); + } else { + sub_0807DD94(this, NULL); + } + break; + case 2: + if (UpdateFuseInteraction(this) == 0) { + return; + } + + this->action = 1; + break; + case 3: + if (--this->actionDelay != 0) { + return; + } + // TODO this is still wrong! + puVar3 = *(u16**)&this->field_0x6c.HWORD; + if (*puVar3 != 0xffff) { + gScreen.controls.alphaBlend = *puVar3; + this->actionDelay = (u8)puVar3[1]; + *(u16**)&this->field_0x6c = puVar3 + 2; + return; + } + + this->spriteSettings.b.draw = 0; + + this->action = 1; + break; + } +} +END_NONMATCH + +void sub_08065CCC(Entity* this) { + this->action = 3; + this->actionDelay = 0x1e; + this->spriteRendering.alphaBlend = 1; + *(u32**)&this->field_0x6c = &gUnk_0811022E; + gScreen.controls.layerFXControl = 0x3f40; + gScreen.controls.alphaBlend = 0x10; +} + +void sub_08065D00(Entity* this) { + this->field_0x68.HALF.LO = sub_0801E99C(this); + sub_08078784(this, this->field_0x68.HALF.LO); +} + +void sub_08065D18(Entity* this) { + this->action = 1; + this->actionDelay = 0x1e; + this->field_0xf = 0; + this->spriteSettings.b.draw = 1; + this->spriteRendering.alphaBlend = 1; + *(u32**)&this->field_0x6c = &gUnk_08110188; + sub_0805E3A0(this, 2); + InitAnimationForceUpdate(this, 2); + gScreen.controls.layerFXControl = 0x3f40; + gScreen.controls.alphaBlend = 0x1000; +} + +ASM_FUNC("asm/non_matching/ghostBrothers/sub_08065D74.inc", void sub_08065D74(Entity* this)) + +ASM_FUNC("asm/non_matching/ghostBrothers/sub_08065DB8.inc", void sub_08065DB8(Entity* this)) + +void sub_08065EBC(Entity* this) { + gUnk_08110274[this->action](this); + sub_0806ED78(this); +} + +ASM_FUNC("asm/non_matching/ghostBrothers/sub_08065EDC.inc", void sub_08065EDC(Entity* this)) + +void sub_08065F20(Entity* this) { + UpdateAnimationSingleFrame(this); + if (this->interactType != 0) { + this->interactType = 0; + TextboxNoOverlapFollow(0); + this->animIndex += 1; + if (gUnk_0811033C[this->animIndex] == 0) { + this->animIndex = 0; + } + InitAnimationForceUpdate(this, this->animIndex); + } +} + +void sub_08065F64(Entity* this) { + s32 tmp = gSave.unk8 - 2; + if (tmp < 0) { + tmp = 0; + } + ShowNPCDialogue(this, gUnk_08110280 + this->type * 8 + tmp); +} + +void GhostBrothers_Fusion(Entity* this) { + if (this->action == 0) { + this->action += 1; + this->spriteSettings.b.draw = 1; + InitAnimationForceUpdate(this, 2); + } else { + UpdateAnimationSingleFrame(this); + } +} diff --git a/src/npc/gorman.c b/src/npc/gorman.c new file mode 100644 index 00000000..861a29d8 --- /dev/null +++ b/src/npc/gorman.c @@ -0,0 +1,138 @@ +#include "entity.h" +#include "script.h" +#include "functions.h" +#include "random.h" +#include "flags.h" +#include "textbox.h" + +extern void (*const gUnk_08111C48[])(Entity*); + +void sub_080697A4(Entity* this); +void sub_08069838(Entity* this); + +extern SpriteLoadData gUnk_08111C3C; + +extern u8 gUnk_08111C9C[]; + +extern u8 gUnk_08111CA8[]; + +extern u8 gUnk_08111CB4[]; + +extern u8 gUnk_08111CB8[]; + +void sub_08069888(Entity* this); + +extern u16 gUnk_08111C50[]; + +void Gorman(Entity* this) { + if ((this->flags & 2) != 0) { + sub_08069838(this); + } else { + sub_080697A4(this); + } +} + +void sub_080697A4(Entity* this) { + gUnk_08111C48[this->action](this); + sub_0806ED78(this); +} + +void sub_080697C4(Entity* this) { + if (LoadExtraSpriteData(this, &gUnk_08111C3C) != 0) { + this->action = 1; + InitializeAnimation(this, 2); + sub_08078778(this); + } +} + +void sub_080697EC(Entity* this) { + s32 tmp; + + tmp = sub_0806ED9C(this, 0x20, 0x20); + if (tmp >= 0) { + if (this->field_0xf == 0) { + this->field_0xf = 0x10; + if (this->animIndex != tmp) { + InitializeAnimation(this, tmp); + } + } else { + this->field_0xf -= 1; + } + } + if (this->interactType != 0) { + this->interactType = 0; + sub_08069888(this); + } +} + +void sub_08069838(Entity* this) { + if (this->action == 0) { + if (LoadExtraSpriteData(this, &gUnk_08111C3C) == 0) { + return; + } + this->action += 1; + this->field_0x68.HALF.LO = 0; + this->field_0x68.HALF.HI = 0; + sub_0807DD64(this); + } + sub_0807DD94(this, NULL); + if (this->interactType != 0) { + this->interactType = 0; + sub_08069888(this); + } +} + +void sub_08069888(Entity* this) { + s32 index; + if (CheckGlobalFlag(0x47) == 0) { + index = 0; + SetGlobalFlag(0x47); + } else if (((CheckGlobalFlag(0x2b) == 0) && (CheckGlobalFlag(0x2c) == 0)) && (CheckGlobalFlag(0x2d) == 0)) { + index = 1; + } else if (CheckGlobalFlag(0x18) == 0) { + index = 2; + } else if (CheckGlobalFlag(0x48) == 0) { + index = 3; + SetGlobalFlag(0x48); + } else if ((CheckGlobalFlag(0x2e) == 0) && (CheckGlobalFlag(0x2f) == 0)) { + index = CheckGlobalFlag(0x30) ? 5 : 4; + } else { + index = 5; + } + TextboxNoOverlap(gUnk_08111C50[index], this); +} + +ASM_FUNC("asm/non_matching/gorman/sub_0806991C.inc", void sub_0806991C(Entity* this, ScriptExecutionContext* context)) + +ASM_FUNC("asm/non_matching/gorman/sub_080699AC.inc", void sub_080699AC(Entity* this, ScriptExecutionContext* context)) + +void sub_08069A3C(Entity* this) { + this->field_0x68.HALF.HI = gUnk_08111C9C[(Random() & 1) + (s8)this->field_0x68.HALF.HI * 2]; +} + +void sub_08069A60(Entity* this) { + this->field_0x68.HALF.HI = gUnk_08111CA8[(Random() & 1) + (s8)this->field_0x68.HALF.HI * 2]; +} + +void sub_08069A84(Entity* this) { + this->field_0x68.HALF.HI = gUnk_08111CB4[(Random() & 1) + (s8)this->field_0x68.HALF.HI * 2]; +} + +void sub_08069AA8(Entity* this) { + this->field_0x68.HALF.HI = gUnk_08111CB8[(Random() & 1) + (s8)this->field_0x68.HALF.HI * 2]; +} + +void sub_08069ACC(Entity* this, ScriptExecutionContext* context) { + if (--this->field_0x68.HALF.LO * 0x1000000 < 1) { + context->condition = 1; + } else { + context->condition = 0; + } +} + +void Gorman_Head(Entity* this) { + SetExtraSpriteFrame(this, 0, (this->frames.all & 7) + 0xf); + SetExtraSpriteFrame(this, 1, this->frameIndex); + SetSpriteSubEntryOffsetData1(this, 1, 0); + sub_0807000C(this); +} diff --git a/src/npc/gregal.c b/src/npc/gregal.c new file mode 100644 index 00000000..790385bb --- /dev/null +++ b/src/npc/gregal.c @@ -0,0 +1,162 @@ +#include "entity.h" +#include "script.h" +#include "functions.h" +#include "npc.h" + +void sub_0801D2B4(Entity*, u32); + +extern void (*gUnk_08113D8C[])(Entity*); + +extern void sub_08078850(Entity*, u32, u8, u32*); +extern u32 gUnk_08113D84[]; + +void Gregal(Entity* this) { + gUnk_08113D8C[this->type](this); +} + +void sub_0806CAF4(Entity* this) { + Entity* npc; + + if (this->action == 0) { + this->action += 1; + sub_0805E3A0(this, 2); + npc = CreateNPC(0x4a, 1, 0); + if (npc != NULL) { + npc->parent = this; + CopyPosition(this, npc); + sub_0806FAD8(this, npc); + } + npc = CreateNPC(0x4a, 2, 0); + if (npc != NULL) { + npc->parent = this; + CopyPosition(this, npc); + ResolveEntityOnTop(this, npc); + } + sub_0807DD64(this); + sub_08078778(this); + sub_08078850(this, 1, gUnk_08113D84[1], gUnk_08113D84); + } + ExecuteScriptForEntity(this, NULL); + HandleEntity0x82Actions(this); + GetNextFrame(this); +} + +void sub_0806CB80(Entity* this) { + if (this->action == 0) { + this->action += 1; + this->animationState = 2; + this->frameIndex = 0; + sub_0805E3A0(this, 2); + } + if (this->parent != NULL) { + this->frameIndex = (this->parent->frames.all & 3) + 0x21; + } +} + +void sub_0806CBB4(Entity* this) { + if (this->action == 0) { + this->action += 1; + this->animationState = 2; + sub_0805E3A0(this, 2); + InitializeAnimation(this, 0x11); + } + GetNextFrame(this); + if (this->parent != NULL) { + this->spriteSettings.b.draw = 0; + if ((this->parent->frames.all & 4) != 0) { + this->spriteSettings.b.draw = 1; + } + } +} + +void sub_0806CC08(Entity* this) { + switch (this->action) { + case 0: + this->action = 1; + this->spriteSettings.b.draw = 1; + sub_0805E3A0(this, 2); + sub_0807DD64(this); + case 1: + if (this->interactType == 2) { + this->action = 2; + this->interactType = 0; + this->field_0x68.HALF.HI = this->animIndex; + InitAnimationForceUpdate(this, sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity)) + 8); + sub_0806F118(this); + } else { + ExecuteScriptForEntity(this, NULL); + HandleEntity0x82Actions(this); + GetNextFrame(this); + } + break; + case 2: + if (UpdateFuseInteraction(this) == 0) { + return; + } + this->action = 1; + InitAnimationForceUpdate(this, this->field_0x68.HALF.HI); + break; + } +} + +void sub_0806CCB4(Entity* this, ScriptExecutionContext* context) { + if ((this->frames.all & 0x80) != 0) { + context->condition = 1; + } else { + context->condition = 0; + } +} + +void sub_0806CCD0(Entity* this, ScriptExecutionContext* context) { + u32 tmp = this->frameSpriteSettings & 0x3f; + if ((this->frameSpriteSettings & 0x3f) != 0) { + InitializeAnimation(this, tmp + (this->animationState >> 1)); + context->condition = 1; + } else { + context->condition = tmp; + } +} + +void sub_0806CCF8(Entity* this) { + sub_0801D2B4(this, 0x10a); +} + +void sub_0806CD04(Entity* this) { + sub_0801D2B4(this, 0x10b); +} + +void sub_0806CD14(Entity* this) { + sub_0801D2B4(this, 0x10c); +} + +void sub_0806CD20(Entity* this) { + sub_0801D2B4(this, 0x10d); +} + +void sub_0806CD30(Entity* this) { + sub_0801D2B4(this, 0x10e); +} + +void sub_0806CD3C(Entity* this) { + sub_0801D2B4(this, 0x10f); +} + +void sub_0806CD4C(Entity* this) { + sub_0801D2B4(this, 0x110); +} + +void sub_0806CD58(Entity* this) { + this->field_0x68.HALF.LO = sub_0801E99C(this); + sub_08078784(this, this->field_0x68.HALF.LO); +} + +void Gregal_Fusion(Entity* this) { + if (this->action == 0) { + this->action += 1; + this->spriteSettings.b.draw = 1; + sub_0805E3A0(this, 2); + InitAnimationForceUpdate(this, 6); + } else { + UpdateAnimationSingleFrame(this); + } +} diff --git a/src/npc/guardWithSpear.c b/src/npc/guardWithSpear.c new file mode 100644 index 00000000..0332ce5f --- /dev/null +++ b/src/npc/guardWithSpear.c @@ -0,0 +1,45 @@ +#include "entity.h" +#include "script.h" +#include "player.h" + +ASM_FUNC("asm/non_matching/guardWithSpear/sub_0806407C.inc", + void sub_0806407C(Entity* this, ScriptExecutionContext* context)) + +void sub_08064180(void) { + Entity* entity = FindEntityByID(7, 0x15, 7); + if (entity != NULL) { + DeleteEntity(entity); + } +} + +ASM_FUNC("asm/non_matching/guardWithSpear/sub_08064198.inc", void sub_08064198(Entity* this)) + +ASM_FUNC("asm/non_matching/guardWithSpear/sub_080642B8.inc", void sub_080642B8(Entity* this)) + +ASM_FUNC("asm/non_matching/guardWithSpear/sub_080643D8.inc", void sub_080643D8(Entity* this)) + +ASM_FUNC("asm/non_matching/guardWithSpear/sub_08064428.inc", void sub_08064428(Entity* this)) + +void sub_08064470(Entity* this, ScriptExecutionContext* context) { + if (gPlayerState.field_0xab == 1) { + context->condition = 1; + } else { + context->condition = 0; + } +} + +void sub_08064488(void) { + if (gPlayerState.field_0xa8 != 2) { + gPlayerState.field_0xab = 0; + } +} + +void sub_080644A4(void) { + gPlayerState.field_0xab = 0; +} + +void sub_080644B4(Entity* this, ScriptExecutionContext* context) { + context->condition = this->animationState == context->intVariable; +} + +ASM_FUNC("asm/non_matching/guardWithSpear/sub_080644C8.inc", void sub_080644C8(Entity* this)) diff --git a/src/npc/hurdyGurdyMan.c b/src/npc/hurdyGurdyMan.c new file mode 100644 index 00000000..fd0dd3d5 --- /dev/null +++ b/src/npc/hurdyGurdyMan.c @@ -0,0 +1,88 @@ +#include "entity.h" +#include "functions.h" +#include "save.h" +#include "npc.h" +#include "script.h" + +extern Dialog gUnk_081144FC[]; + +extern SpriteLoadData gUnk_081144F0; + +extern u32 sub_08002632(Entity*); +extern u16* gUnk_08001A7C[]; + +void HurdyGurdyMan(Entity* this) { + u32 index; + u16* pointerToArray; + + switch (this->action) { + case 0: + if (LoadExtraSpriteData(this, &gUnk_081144F0) != 0) { + this->action = 1; + this->field_0x68.HALF.HI = 0; + sub_0805E3A0(this, 2); + sub_0807DD50(this); + } + break; + case 1: + if (this->interactType == 2) { + this->action = 2; + this->interactType = 0; + this->field_0x68.HALF.HI = this->animIndex; + InitializeAnimation(this, sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity))); + index = sub_08002632(this); + pointerToArray = gUnk_08001A7C[index]; + if (this->field_0x68.HALF.LO == 0x32) { + pointerToArray = pointerToArray + 3; + } + sub_0801DFB4(this, (u32)*pointerToArray, (u32)pointerToArray[1], (u32)pointerToArray[2]); + gPlayerState.field_0x8b = 3; + } else { + sub_0807DD94(this, NULL); + } + + break; + case 2: + if ((UpdateFuseInteraction(this) != 0)) { + this->action = 1; + InitializeAnimation(this, this->field_0x68.HALF.HI); + } + break; + } +} + +void HurdyGurdyMan_Head(Entity* this) { + SetExtraSpriteFrame(this, 0, (this->frames.all & 0xffffff7f) + 8); + SetExtraSpriteFrame(this, 1, this->frameIndex); + SetSpriteSubEntryOffsetData1(this, 1, 0); + sub_0807000C(this); +} + +void sub_0806E418(Entity* this) { + s32 tmp = gSave.unk8 - 2; + if (tmp < 0) { + tmp = 0; + } + ShowNPCDialogue(this, &gUnk_081144FC[tmp]); +} + +void sub_0806E440(Entity* this) { + this->field_0x68.HALF.LO = sub_0801E99C(this); + sub_08078784(this, this->field_0x68.HALF.LO); +} + +void HurdyGurdyMan_Fusion(Entity* this) { + u32 uVar1; + + if (this->action == 0) { + uVar1 = LoadExtraSpriteData(this, &gUnk_081144F0); + if (uVar1 != 0) { + this->action += 1; + this->spriteSettings.b.draw = 1; + sub_0805E3A0(this, 2); + InitializeAnimation(this, 10); + } + } else { + GetNextFrame(this); + } +} diff --git a/src/npc/kid.c b/src/npc/kid.c index f265106e..e4c4c80a 100644 --- a/src/npc/kid.c +++ b/src/npc/kid.c @@ -201,10 +201,9 @@ NONMATCH("asm/non_matching/kid/sub_0806252C.inc", void sub_0806252C(Entity* this END_NONMATCH NONMATCH("asm/non_matching/kid/sub_08062634.inc", void sub_08062634(Entity* this)) { - u8 arr = this->type2; - u32 arr2 = arr * 2 + (Random() & 1); - u16 id = gUnk_0810BDE8[arr2]; - TextboxNoOverlap(id, this); + u32 a = this->type2; + u32 b = (Random() & 1); + TextboxNoOverlap(*((u16*)gUnk_0810BDE8 + b + a * 2), this); } END_NONMATCH diff --git a/src/npc/kingDaltus.c b/src/npc/kingDaltus.c new file mode 100644 index 00000000..714ed1f6 --- /dev/null +++ b/src/npc/kingDaltus.c @@ -0,0 +1,104 @@ +#include "entity.h" +#include "script.h" +#include "functions.h" +#include "npc.h" +#include "flags.h" +#include "textbox.h" + +extern u16 gUnk_081104F8[]; + +extern void (*const gUnk_081104E0[])(Entity*); +extern void (*const gUnk_081104EC[])(Entity*); + +void KingDaltus(Entity* this) { + if ((this->flags & 2) != 0) { + if (this->interactType == 2) { + this->interactType = 0; + this->action = 2; + InitAnimationForceUpdate(this, sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity))); + sub_0806F118(this); + } + gUnk_081104EC[this->action](this); + } else { + gUnk_081104E0[this->action](this); + sub_0806ED78(this); + } +} + +void sub_08066654(Entity* this) { + this->action = 1; + this->spriteSettings.b.draw = 1; + this->field_0x68.HALF.LO = sub_0801E99C(this); + sub_08078784(this, this->field_0x68.HALF.LO); + InitAnimationForceUpdate(this, 2); +} + +void sub_08066688(Entity* this) { + s32 tmp = sub_0806ED9C(this, 0x28, 0x28); + if (tmp < 0) { + tmp = 2; + } else { + if (this->field_0xf == 0) { + this->field_0xf = 0x10; + } else { + this->field_0xf -= 1; + tmp = this->animIndex; + } + } + if (sub_0806F078(this, tmp) == 0) { + UpdateAnimationSingleFrame(this); + } + if (this->interactType != 0) { + this->action = 2; + this->interactType = 0; + } +} + +void sub_080666DC(Entity* this) { + this->action = 1; +} + +void sub_080666E4(Entity* this) { + this->action = 1; + this->spriteSettings.b.draw = 1; + this->field_0x68.HALF.LO = sub_0801E99C(this); + sub_0807DD50(this); +} + +void sub_0806670C(Entity* this) { + sub_0807DD94(this, NULL); +} + +void sub_08066718(Entity* this) { + if (UpdateFuseInteraction(this) != 0) { + this->action = 1; + } +} + +void sub_0806672C(Entity* this) { + sub_08078784(this, this->field_0x68.HALF.LO); +} + +void sub_0806673C(Entity* this) { + u32 index; + if (CheckGlobalFlag(2) == 0) { + index = 0; + } else if (GetInventoryValue(2) == 0) { + index = 1; + } else if (GetInventoryValue(3) == 0) { + index = 2; + } else { + index = 3; + } + TextboxNoOverlap(gUnk_081104F8[index], this); +} + +void KingDaltus_Fusion(Entity* this) { + if (this->action == 0) { + this->action += 1; + this->spriteSettings.b.draw = 1; + InitAnimationForceUpdate(this, 6); + } else { + UpdateAnimationSingleFrame(this); + } +} diff --git a/src/npc/librarians.c b/src/npc/librarians.c new file mode 100644 index 00000000..f88ecc6d --- /dev/null +++ b/src/npc/librarians.c @@ -0,0 +1,61 @@ +#include "entity.h" +#include "script.h" +#include "functions.h" +#include "flags.h" +#include "textbox.h" +#include "audio.h" + +extern u16 gUnk_08113078[]; + +extern void sub_08095BE0(Entity*, u32); + +ASM_FUNC("asm/non_matching/librarians/Librarians.inc", void Librarians(Entity* this)) + +ASM_FUNC("asm/non_matching/librarians/sub_0806BA34.inc", + void sub_0806BA34(Entity* this, ScriptExecutionContext* context)) + +void sub_0806BB1C(Entity* this, ScriptExecutionContext* context) { + s32 tmp; + + tmp = 0xffffffff; + if (GetInventoryValue(0x39) == 1) { + tmp = 0x39; + } else if (GetInventoryValue(0x3a) == 1) { + tmp = 0x3a; + } else { + if (GetInventoryValue(0x3b) == 1) { + tmp = 0x3b; + } + if (tmp < 1) { + return; + } + } + if (context->intVariable == 0) { + sub_08095BE0(this, tmp); + InitializeAnimation(this, 0xc); + SoundReq(SFX_TASK_COMPLETE); + } else { + sub_0807CAA0(tmp, 2); + } +} + +void sub_0806BB7C(Entity* this, ScriptExecutionContext* context) { + context->condition = 0; + if ((GetInventoryValue(0x39) == 2) && (GetInventoryValue(0x3a) == 2) && (GetInventoryValue(0x3b) == 2)) { + SetLocalFlag(0x73); + context->condition = 1; + } +} + +void sub_0806BBB0(Entity* this) { + u32 flag; + u32 tmp; + + if (GetInventoryValue(0x46) == 0) { + flag = CheckGlobalFlag(0x29); + tmp = BOOLCAST(flag); + } else { + tmp = 2; + } + TextboxNoOverlap(gUnk_08113078[tmp], this); +} diff --git a/src/npc/mama.c b/src/npc/mama.c new file mode 100644 index 00000000..661684a7 --- /dev/null +++ b/src/npc/mama.c @@ -0,0 +1,98 @@ +#include "entity.h" +#include "script.h" +#include "functions.h" +#include "save.h" +#include "npc.h" + +extern Dialog gUnk_08113760[]; + +extern SpriteLoadData gUnk_08113754; + +bool32 sub_0806C454(Entity* this); + +void Mama(Entity* this) { + switch (this->action) { + case 0: + if (sub_0806C454(this) != 0) { + this->action = 1; + this->spriteSettings.b.draw = 1; + this->animationState = this->actionDelay; + this->field_0x68.HALF.HI = 0; + sub_0807DD50(this); + } + break; + case 1: + if (this->interactType == 2) { + this->action = 2; + this->interactType = 0; + this->field_0x68.HALF.HI = this->animIndex; + InitializeAnimation(this, sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity))); + sub_0806F118(this); + } else { + ExecuteScriptForEntity(this, NULL); + HandleEntity0x82Actions(this); + GetNextFrame(this); + } + break; + + case 2: + if (UpdateFuseInteraction(this) != 0) { + this->action = 1; + InitializeAnimation(this, this->field_0x68.HALF.HI); + } + break; + } +} + +bool32 sub_0806C454(Entity* this) { + if (LoadExtraSpriteData(this, &gUnk_08113754) == 0) { + return FALSE; + } else { + sub_0805E3A0(this, 2); + return TRUE; + } +} + +void Mama_Head(Entity* this) { + SetExtraSpriteFrame(this, 0, this->frames.all & 0x7f); + SetExtraSpriteFrame(this, 1, this->frameIndex); + SetSpriteSubEntryOffsetData1(this, 1, 0); + sub_0807000C(this); +} + +void sub_0806C4A8(Entity* this, ScriptExecutionContext* context) { + s32 tmp; + if ((this->frames.all & 0x80) != 0) { + tmp = GetAnimationState(this); + if (tmp < 0) { + tmp = 3; + } + this->animationState = tmp * 2; + InitAnimationForceUpdate(this, tmp); + context->condition = 1; + } else { + context->condition = 0; + } +} + +void sub_0806C4DC(Entity* this) { + ShowNPCDialogue(this, &gUnk_08113760[gSave.unk8]); +} + +void sub_0806C4F8(Entity* this) { + this->field_0x68.HALF.LO = sub_0801E99C(this); + sub_08078784(this, this->field_0x68.HALF.LO); +} + +void Mama_Fusion(Entity* this) { + if (this->action == 0) { + if (sub_0806C454(this) != 0) { + this->action += 1; + this->spriteSettings.b.draw = 1; + this->y.HALF.HI -= 4; + InitializeAnimation(this, 2); + } + } else { + GetNextFrame(this); + } +} diff --git a/src/npc/minishEzlo.c b/src/npc/minishEzlo.c new file mode 100644 index 00000000..2ab3ac16 --- /dev/null +++ b/src/npc/minishEzlo.c @@ -0,0 +1,44 @@ +#include "entity.h" +#include "functions.h" +#include "script.h" +#include "audio.h" + +extern SpriteLoadData gUnk_0810C48C; + +void MinishEzlo(Entity* this) { + if (this->action == 0) { + if (LoadExtraSpriteData(this, &gUnk_0810C48C) == 0) { + return; + } + this->action += 1; + this->animationState = this->actionDelay * 2; + sub_0805E3A0(this, 2); + sub_0807DD50(this); + } + ExecuteScriptForEntity(this, NULL); + HandleEntity0x82Actions(this); + GetNextFrame(this); + if ((this->frameSpriteSettings & 0x10) != 0) { + this->frameSpriteSettings &= 0xef; + EnqueueSFX(SFX_ELEMENT_CHARGE); + } + if ((this->frameSpriteSettings & 0x20) != 0) { + this->frameSpriteSettings &= 0xdf; + EnqueueSFX(SFX_220); + } +} + +ASM_FUNC("asm/non_matching/minishEzlo/MinishEzlo_Head.inc", void MinishEzlo_Head(Entity* this)) + +void sub_0806305C(Entity* this) { + this->spritePriority.b1 = 0; + this->spriteRendering.b0 = 3; + *(u32*)&this->field_0x6c = 0x100; + this->field_0x70.WORD = 0x100; + sub_0805EC9C(this, 0x100, 0x100, 0x0); + InitAnimationForceUpdate(this, 0x10); + this->field_0x80.HWORD = 0x10; + SoundReq(SFX_PLY_SHRINKING); +} + +ASM_FUNC("asm/non_matching/minishEzlo/sub_080630A4.inc", void sub_080630A4(Entity* this)) diff --git a/src/npc/ministerPotho.c b/src/npc/ministerPotho.c new file mode 100644 index 00000000..5beb9499 --- /dev/null +++ b/src/npc/ministerPotho.c @@ -0,0 +1,106 @@ +#include "entity.h" +#include "functions.h" +#include "flags.h" +#include "textbox.h" +#include "script.h" +#include "npc.h" + +extern void (*const gUnk_08110644[])(Entity*); +void sub_08066864(Entity*); + +extern u16 gUnk_08110650[]; + +void MinisterPotho(Entity* this) { + if ((this->flags & 2) != 0) { + sub_08066864(this); + } else { + gUnk_08110644[this->action](this); + sub_0806ED78(this); + } +} + +void sub_080667E4(Entity* this) { + this->action = 1; + this->spriteSettings.b.draw = 1; + InitAnimationForceUpdate(this, 2); + sub_08078778(this); +} + +void sub_08066808(Entity* this) { + s32 tmp = sub_0806ED9C(this, 0x28, 0x28); + if (tmp < 0) { + tmp = 2; + } else { + if (this->field_0xf == 0) { + this->field_0xf = 0x10; + } else { + this->field_0xf -= 1; + tmp = this->animIndex; + } + } + if (sub_0806F078(this, tmp) == 0) { + UpdateAnimationSingleFrame(this); + } + if (this->interactType != 0) { + this->action = 2; + this->interactType = 0; + } +} + +void sub_0806685C(Entity* this) { + this->action = 1; +} + +void sub_08066864(Entity* this) { + switch (this->action) { + case 0: + this->action = 1; + this->spriteSettings.b.draw = 1; + this->field_0x68.HALF.LO = sub_0801E99C(this); + sub_0807DD50(this); + break; + case 1: + if (this->interactType == 2) { + this->action = 2; + this->interactType = 0; + InitAnimationForceUpdate(this, sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity))); + sub_0806F118(this); + } else { + sub_0807DD94(this, NULL); + } + break; + case 2: + if (UpdateFuseInteraction(this) != 0) { + this->action = 1; + } + break; + } +} + +void sub_080668F0(Entity* this) { + sub_08078784(this, sub_0801E99C(this)); +} + +void sub_08066904(Entity* this) { + u32 index; + if (CheckGlobalFlag(2) == 0) { + index = 0; + } else if (GetInventoryValue(2) == 0) { + index = 1; + } else if (GetInventoryValue(3) == 0) { + index = 2; + } else { + index = 3; + } + TextboxNoOverlap(gUnk_08110650[index], this); +} + +void MinisterPotho_Fusion(Entity* this) { + if (this->action == 0) { + this->action += 1; + this->spriteSettings.b.draw = 1; + InitAnimationForceUpdate(this, 6); + } else { + UpdateAnimationSingleFrame(this); + } +} diff --git a/src/npc/mountainMinish.c b/src/npc/mountainMinish.c new file mode 100644 index 00000000..b295b57d --- /dev/null +++ b/src/npc/mountainMinish.c @@ -0,0 +1,109 @@ +#include "entity.h" +#include "script.h" +#include "functions.h" +#include "textbox.h" +#include "flags.h" + +extern SpriteLoadData gUnk_08111358; + +extern void (*const gUnk_08111368[])(Entity*); +void sub_08067EF0(Entity*); + +extern SpriteLoadData gUnk_08111358; + +extern u16 gUnk_0811130E[]; + +void MountainMinish(Entity* this) { + if ((this->flags & 2) == 0) { + gUnk_08111368[this->action](this); + sub_0806ED78(this); + } else { + sub_08067EF0(this); + } +} + +void sub_08067E60(Entity* this) { + if (LoadExtraSpriteData(this, &gUnk_08111358) != 0) { + this->action = 1; + sub_08078778(this); + InitializeAnimation(this, 2); + } +} + +void sub_08067E88(Entity* this) { + s32 tmp; + + tmp = sub_0806ED9C(this, 0x28, 0x28); + if (tmp < 0) { + tmp = 2; + } else { + if (this->field_0xf == 0) { + this->field_0xf = 0x10; + } else { + this->field_0xf = this->field_0xf - 1; + tmp = this->animIndex; + } + } + if (sub_0806F078(this, tmp) == 0) { + GetNextFrame(this); + } + if (this->interactType != 0) { + this->interactType = 0; + this->action = 2; + TextboxNoOverlapFollow(this->actionDelay + 0x1200); + } +} + +void sub_08067EE8(Entity* this) { + this->action = 1; +} + +ASM_FUNC("asm/non_matching/mountainMinish/sub_08067EF0.inc", void sub_08067EF0(Entity* this)) + +void sub_08068104(Entity* this) { + this->field_0x68.HALF.LO = sub_0801E99C(this); + sub_08078784(this, this->field_0x68.HALF.LO); +} + +ASM_FUNC("asm/non_matching/mountainMinish/sub_0806811C.inc", void sub_0806811C(Entity* this)) + +NONMATCH("asm/non_matching/mountainMinish/sub_08068190.inc", void sub_08068190(Entity* this)) { + u32 uVar1; + u32 uVar2; + u32 uVar3; + + uVar3 = this->type2; + if (uVar3 > 8) { + uVar3 = 8; + } + uVar1 = CheckLocalFlag(0x7e); + uVar2 = BOOLCAST(uVar1); + if (GetInventoryValue(0x41) != 0) { + uVar2 = 2; + } + if (GetInventoryValue(2) != 0) { + uVar2 = 3; + } + + // TODO unable to devide the array access variables by two without breaking everything + TextboxNoOverlap(gUnk_0811130E[uVar2 * 2 + uVar3 * 8], this); +} +END_NONMATCH + +void sub_080681D8(Entity* this, ScriptExecutionContext* context) { + this->type = context->intVariable; +} + +ASM_FUNC("asm/non_matching/mountainMinish/MountainMinish_Head.inc", void MountainMinish_Head(Entity* this)) + +void MountainMinish_Fusion(Entity* this) { + if (this->action == 0) { + if (LoadExtraSpriteData(this, &gUnk_08111358) != 0) { + this->action += 1; + this->spriteSettings.b.draw = 1; + InitializeAnimation(this, 6); + } + } else { + GetNextFrame(this); + } +} diff --git a/src/npc/npc23.c b/src/npc/npc23.c new file mode 100644 index 00000000..6320a7fe --- /dev/null +++ b/src/npc/npc23.c @@ -0,0 +1,108 @@ +#include "entity.h" +#include "script.h" +#include "player.h" +#include "structures.h" +#include "functions.h" +#include "structures.h" +#include "textbox.h" + +extern void (*const gUnk_081104C8[])(Entity*); + +bool32 sub_0806650C(Entity*); +extern void sub_08078AC0(u32, u32, u32); + +void sub_08066490(Entity*, Entity*); + +void sub_08066570(Entity* this); + +void NPC23(Entity* this) { + gUnk_081104C8[this->action](this); + sub_0806ED78(this); +} + +void sub_080662F8(Entity* this) { + this->action = 1; + this->subAction = 0; + this->spriteSettings.b.draw = 1; + this->animationState = this->type << 1; + InitializeAnimation(this, this->type); + this->field_0x7c.HALF.HI = this->x.HALF.HI; + this->field_0x80.HWORD = this->y.HALF.HI; + this->field_0x86.HWORD = 0; + this->field_0x82.HWORD = this->actionDelay; + this->parent = &gPlayerEntity; + this->cutsceneBeh.HWORD = 0; + sub_08066490(this, this->parent); + sub_08078778(this); +} + +void sub_08066358(Entity* this) { + if (this->interactType != 0) { + this->interactType = 0; + TextboxNoOverlapFollow(0); + if ((this->type2 & 0x10) != 0) { + this->action = 3; + this->subAction = 0; + if ((this->field_0x7c.HALF_U.HI - this->x.HALF.HI) > 8) { + this->direction = 8; + } else { + this->direction = 0x18; + } + this->speed = 0x80; + this->cutsceneBeh.HWORD = 1; + gUnk_02034490[0] = 1; + sub_080788E0(this); + } + } else { + sub_08066490(this, this->parent); + } + GetNextFrame(this); + sub_08066570(this); +} + +void nullsub_110(void) { +} + +void sub_080663D4(Entity* this) { + if (this->x.HALF.HI == this->field_0x7c.HALF_U.HI - 8) { + if (gPlayerEntity.action != 0xf) { + this->action = 4; + this->direction = 0; + this->speed = 0; + this->cutsceneBeh.HWORD = 0; + InitializeAnimation(this, 2); + } + } else { + if (this->subAction == 0) { + InitializeAnimation(this, (this->direction >> 3) + 4); + this->subAction = this->subAction + 1; + } + ProcessMovement(this); + } + sub_08078B48(); + GetNextFrame(this); +} + +void sub_0806643C(Entity* this) { + bool32 tmp = sub_0806650C(this); + if (tmp == FALSE) { + this->action = 5; + gRoomControls.cameraTarget = NULL; + sub_08078AC0(0x40, 0, 0); + gPlayerEntity.animationState = 0; + gPlayerEntity.direction = 0; + } + GetNextFrame(this); +} + +void sub_08066474(void) { + if (gPlayerEntity.action != 0xf) { + gUnk_02034490[0] = 0; + } +} + +ASM_FUNC("asm/non_matching/npc23/sub_08066490.inc", void sub_08066490(Entity* this, Entity* entity)) + +ASM_FUNC("asm/non_matching/npc23/sub_0806650C.inc", bool32 sub_0806650C(Entity* this)) + +ASM_FUNC("asm/non_matching/npc23/sub_08066570.inc", void sub_08066570(Entity* this)) diff --git a/src/npc/npc58.c b/src/npc/npc58.c new file mode 100644 index 00000000..c6558930 --- /dev/null +++ b/src/npc/npc58.c @@ -0,0 +1,54 @@ +#include "entity.h" +#include "functions.h" + +extern void sub_0806FFBC(Entity*, u32, u32, u32); + +extern SpriteLoadData gUnk_081146D0; + +void NPC58(Entity* this) { + s32 sVar1; + s32 uVar2; + s32 uVar4; + Entity* entity; + + if (this->action == 0) { + if (LoadExtraSpriteData(this, &gUnk_081146D0) == 0) { + return; + } + this->action += 1; + this->spriteSettings.b.draw = 2; + this->spriteRendering.b3 = 0; + this->spritePriority.b0 = 0; + this->spriteOrientation.flipY = 1; + this->x.HALF.HI = 0x78; + this->y.HALF.HI = 0x10; + } + entity = this->parent; + if (entity != NULL) { + sVar1 = *(s16*)&entity->field_0x68.HWORD; + uVar2 = (s32)sVar1 / 600; + this->field_0x68.HWORD = uVar2; + uVar4 = (s32)sVar1 % 600; + this->field_0x6a.HWORD = uVar4 / 0x3c; + uVar4 = uVar4 % 0x3c; + uVar2 = uVar4 / 6; + this->field_0x6c.HWORD = uVar2; + if (entity->next == NULL) { + DeleteThisEntity(); + } + } else { + DeleteThisEntity(); + } +} + +void NPC58_Head(Entity* this) { + this->frameIndex = 0xff; + SetExtraSpriteFrame(this, 0, (s16)this->field_0x68.HWORD); + SetExtraSpriteFrame(this, 1, (s16)this->field_0x6a.HWORD); + SetExtraSpriteFrame(this, 2, (s16)this->field_0x6c.HWORD); + SetExtraSpriteFrame(this, 3, 10); + sub_0806FFBC(this, 0, 0xfffffff4, 0); + sub_0806FFBC(this, 1, 0xfffffffc, 0); + sub_0806FFBC(this, 2, 0xc, 0); + sub_0807000C(this); +} diff --git a/src/npc/percy.c b/src/npc/percy.c index 3c5c8a01..5bd1fc37 100644 --- a/src/npc/percy.c +++ b/src/npc/percy.c @@ -5,6 +5,7 @@ #include "functions.h" #include "flags.h" #include "script.h" +#include "save.h" extern void sub_0806B41C(Entity*); extern void sub_0806B3CC(Entity*); @@ -16,6 +17,8 @@ extern u16 gUnk_08112E54[4]; extern Dialog gUnk_08112E2C[5]; extern SpriteLoadData gUnk_08112E1C; +extern SpriteLoadData gUnk_08112E1C; + void Percy_Head(Entity* this) { SetExtraSpriteFrame(this, 0, (this->frameSpriteSettings & 0x3f) + 0x13); SetExtraSpriteFrame(this, 1, (this->frames.all & 0x7f) + 0xb); @@ -105,3 +108,61 @@ void sub_0806B504(Entity* this) { TextboxNoOverlap(gUnk_08112E54[idx], this); } + +void sub_0806B540(Entity* this) { + ScriptExecutionContext* context; + + context = *(ScriptExecutionContext**)&this->cutsceneBeh; + switch (context->unk_18) { + case 0: + TextboxNoOverlap(0x2312, this); + if (CheckLocalFlag(0x3f) != 0) { + return; + } + context->unk_18 += 1; + SetLocalFlag(0x3f); + break; + case 1: + if ((gTextBox.doTextBox & 0x7f) == 0) { + context->unk_18 = 2; + TextboxNoOverlap(0x2315, this); + } + break; + case 2: + if ((gTextBox.doTextBox & 0x7f) == 0) { + context->unk_18 = 3; + if (gSave.stats.filler3[0] != 0) { + sub_080A7C18(0x58, 0, 0); + } else { + sub_080A7C18(0x3f, 100, 0); + } + SetRoomFlag(0xf); + } + break; + case 3: + if ((gPlayerEntity.action != 8)) { + context->wait = 0x2d; + return; + } + break; + } + + gActiveScriptInfo.commandSize = 0; +} + +void sub_0806B60C(Entity* this) { + this->field_0x68.HALF.LO = sub_0801E99C(this); + sub_08078784(this, this->field_0x68.HALF.LO); +} + +void Percy_Fusion(Entity* this) { + if (this->action == 0) { + if (LoadExtraSpriteData(this, &gUnk_08112E1C) != 0) { + this->action += 1; + this->spriteSettings.b.draw = 1; + InitializeAnimation(this, 2); + } + } else { + GetNextFrame(this); + } +} diff --git a/src/npc/phonograph.c b/src/npc/phonograph.c new file mode 100644 index 00000000..0b26b4db --- /dev/null +++ b/src/npc/phonograph.c @@ -0,0 +1,33 @@ +#include "entity.h" +#include "script.h" +#include "functions.h" +#include "fileScreen.h" +#include "screen.h" + +extern void sub_08057044(u32, struct_020227E8*, u32); +extern u32 gUnk_081146B8; + +extern u16 gBG0Settings[]; + +void Phonograph(Entity* this) { + if (this->action == 0) { + this->action += 1; + this->spriteSettings.b.draw = 1; + this->field_0x68.HWORD = 1; + this->field_0x6a.HWORD = 0xffff; + sub_0807DD64(this); + this->frameIndex = 0; + } + ExecuteScriptForEntity(this, NULL); + HandleEntity0x82Actions(this); +} + +ASM_FUNC("asm/non_matching/phonograph/sub_0806E964.inc", + void sub_0806E964(Entity* this, ScriptExecutionContext* context)) + +void sub_0806EABC(Entity* this, u32 param) { + sub_08050384(); + sub_08057044(param, &gUnk_020227E8, 0x202020); + sub_0805F46C(0x3302, &gUnk_081146B8); + gScreen.bg.bg0Updated = 1; +} diff --git a/src/npc/picolyteBottle.c b/src/npc/picolyteBottle.c new file mode 100644 index 00000000..720cdf61 --- /dev/null +++ b/src/npc/picolyteBottle.c @@ -0,0 +1,132 @@ +#include "entity.h" +#include "script.h" +#include "structures.h" +#include "functions.h" +#include "textbox.h" + +extern void DoExitTransition(ScreenTransitionData*); +extern ScreenTransitionData gUnk_0813AD4C; + +void sub_0806E014(Entity* this); +void sub_0806E0DC(Entity* this); + +extern void (*const gUnk_081142BC[])(Entity*); + +extern void sub_08078828(Entity*); + +extern Hitbox gUnk_080FD150; + +void PicolyteBottle(Entity* this) { + gUnk_081142BC[this->action](this); + if (this->type == 0) { + gPlayerState.field_0x1a[0] |= 0x80; + } +} + +void sub_0806DF00(Entity* this) { + Entity* npc; + + if (this->type == 0) { + this->action = 1; + npc = CreateNPC(0x51, 1, 0); + *(Entity**)&this->field_0x68 = npc; + npc->parent = this; + npc = CreateNPC(0x51, 1, 1); + *(Entity**)&this->field_0x6c = npc; + npc->parent = this; + npc = CreateNPC(0x51, 1, 2); + *(Entity**)&this->field_0x70 = npc; + npc->parent = this; + this->field_0x74.HWORD = 0; + this->field_0x76.HWORD = 10; + gScreenTransition.field_0x8 = 10; + sub_0806E014(this); + sub_0807DD50(this); + } else { + this->hitbox = &gUnk_080FD150; + this->collisionLayer = 1; + sub_0806E0DC(this); + } +} + +ASM_FUNC("asm/non_matching/picolyteBottles/sub_0806DF74.inc", void sub_0806DF74(Entity* this)) + +void sub_0806DFB4(Entity* this) { + Entity* obj; + + if (this->interactType != 0) { + this->interactType = 0; + this->parent->actionDelay = this->type2; + this->parent->type2 = this->field_0xf; + } else { + if (this->actionDelay != 0) { + this->actionDelay = 0; + obj = CreateObject(0x35, 2, this->field_0xf); + if (obj != NULL) { + obj->parent = this; + this->attachedEntity = obj; + CopyPosition(this, obj); + } + sub_080788E0(this); + sub_0807B7D8(0x74, this->field_0x76.HWORD, 2); + } + } +} + +void nullsub_111(void) { +} + +ASM_FUNC("asm/non_matching/picolyteBottles/sub_0806E014.inc", void sub_0806E014(Entity* this)) + +void sub_0806E0DC(Entity* this) { + this->actionDelay = 0; + if (this->field_0xf != 0xff) { + this->action = 2; + this->field_0x76.HWORD = TILE(this->x.HALF.HI, this->y.HALF.HI); + if (this->attachedEntity != NULL) { + DeleteEntity(this->attachedEntity); + this->attachedEntity = NULL; + } + sub_08078828(this); + sub_0807B7D8(0x73, this->field_0x76.HWORD, 2); + } else { + this->action = 3; + } +} + +ASM_FUNC("asm/non_matching/picolyteBottles/sub_0806E140.inc", + void sub_0806E140(Entity* this, ScriptExecutionContext* context)) + +void sub_0806E1E0(Entity* this) { + sub_0806E014(this); + sub_0806E0DC(*(Entity**)&this->field_0x68); + sub_0806E0DC(*(Entity**)&this->field_0x6c); + sub_0806E0DC(*(Entity**)&this->field_0x70); +} + +void sub_0806E1FC(Entity* this) { + DoExitTransition(&gUnk_0813AD4C); +} + +void sub_0806E20C(void) { + if (gScreenTransition.field_0x8 != 0) { + TextboxNoOverlapFollow(0x421f); + gTextBox.field_0x10 = gScreenTransition.field_0x8; + } else { + TextboxNoOverlapFollow(0x4220); + } +} + +void sub_0806E23C(void) { + if (gScreenTransition.field_0x8 != 0) { + ModRupees(gScreenTransition.field_0x8); + } +} + +void sub_0806E250(Entity* this, ScriptExecutionContext* context) { + context->condition = 0; + if (CheckKinstoneFused(0x31) != 0) { + context->condition = 1; + } + gActiveScriptInfo.flags |= 1; +} diff --git a/src/npc/pina.c b/src/npc/pina.c new file mode 100644 index 00000000..0acf265f --- /dev/null +++ b/src/npc/pina.c @@ -0,0 +1,130 @@ +#include "entity.h" +#include "functions.h" +#include "textbox.h" +#include "save.h" +#include "script.h" +#include "npc.h" + +void sub_08063B68(Entity* this); +void sub_08063A80(Entity* this); + +extern void (*gUnk_0810CDF8[])(Entity*); + +extern void CreateSpeechBubbleExclamationMark(Entity*, u32, u32); + +extern Dialog gUnk_0810CE04[]; + +void Pina(Entity* this) { + if ((this->flags & 2) != 0) { + sub_08063B68(this); + } else { + sub_08063A80(this); + } +} + +void sub_08063A80(Entity* this) { + gUnk_0810CDF8[this->action](this); +} + +void sub_08063A98(Entity* this) { + this->action += 1; + this->spriteSettings.b.draw = 1; + InitAnimationForceUpdate(this, 4); + sub_08078778(this); +} + +ASM_FUNC("asm/non_matching/pina/sub_08063AC0.inc", void sub_08063AC0(Entity* this)) + +void sub_08063B44(Entity* this) { + u8 tmp = gTextBox.doTextBox & 0x7f; + if (tmp == 0) { + this->action = 1; + this->field_0xf = tmp; + InitAnimationForceUpdate(this, 4); + } +} + +void sub_08063B68(Entity* this) { + switch (this->action) { + case 0: + this->action = 1; + this->spriteSettings.b.draw = 1; + this->field_0x68.HALF.HI = 0; + sub_0807DD64(this); + case 1: + if (this->interactType == 2) { + this->action = 2; + this->interactType = 0; + this->field_0x68.HALF.HI = this->animIndex; + InitAnimationForceUpdate(this, sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity)) + 4); + sub_0806F118(this); + } else { + ExecuteScriptForEntity(this, NULL); + HandleEntity0x82Actions(this); + UpdateAnimationSingleFrame(this); + } + break; + case 2: + if (UpdateFuseInteraction(this) == 0) { + return; + } + this->action = 1; + InitAnimationForceUpdate(this, this->field_0x68.HALF.HI); + break; + } +} + +void sub_08063C14(void) { + Entity* entity = DeepFindEntityByID(7, 0x14); + if (entity != NULL) { + InitAnimationForceUpdate(entity, 8); + } +} + +void sub_08063C2C(void) { + Entity* entity = DeepFindEntityByID(7, 0x14); + if (entity != NULL) { + InitAnimationForceUpdate(entity, 4); + } +} + +void sub_08063C44(void) { + Entity* entity = DeepFindEntityByID(7, 0x14); + if (entity != NULL) { + InitAnimationForceUpdate(entity, 0); + } +} + +void sub_08063C5C(void) { + Entity* entity = DeepFindEntityByID(7, 0x14); + if (entity != NULL) { + InitAnimationForceUpdate(entity, 9); + } +} + +void sub_08063C74(void) { + Entity* entity = DeepFindEntityByID(7, 0x14); + if (entity != NULL) { + CreateSpeechBubbleExclamationMark(entity, 8, 0xffffffe8); + } +} + +void sub_08063C90(Entity* this) { + ShowNPCDialogue(this, &gUnk_0810CE04[gSave.unk8]); +} + +void sub_08063CAC(Entity* this) { + this->field_0x68.HALF.LO = sub_0801E99C(this); + sub_08078784(this, this->field_0x68.HALF.LO); +} + +void Pina_Fusion(Entity* this) { + if (this->action == 0) { + this->action += 1; + this->spriteSettings.b.draw = 1; + this->y.HALF.HI -= 4; + InitAnimationForceUpdate(this, 2); + } else { + UpdateAnimationSingleFrame(this); + } +} diff --git a/src/npc/postman.c b/src/npc/postman.c index 34694306..40a482e4 100644 --- a/src/npc/postman.c +++ b/src/npc/postman.c @@ -8,6 +8,7 @@ #include "structures.h" #include "save.h" #include "script.h" +#include "flags.h" extern void sub_08060528(Entity*); extern void sub_0806EE04(Entity*, void*, u32); @@ -202,3 +203,29 @@ void sub_0806075C(Entity* this) { this->field_0x68.HALF.LO = 0xb; this->field_0x68.HALF.HI = 0xff; } + +ASM_FUNC("asm/non_matching/postman/sub_0806076C.inc", void sub_0806076C(Entity* this, ScriptExecutionContext* context)) + +ASM_FUNC("asm/non_matching/postman/sub_080608E4.inc", void sub_080608E4(Entity* this, ScriptExecutionContext* context)) + +void Postman_Fusion(Entity* this) { + if (this->action == 0) { + this->action += 1; + this->spriteSettings.b.draw = 1; + InitAnimationForceUpdate(this, 2); + } else { + UpdateAnimationSingleFrame(this); + } +} + +void CreateZeldaFollower(void) { + Entity* npc; + if (CheckGlobalFlag(0x1c) != 0) { + npc = CreateNPC(0x2e, 0, 0); + if (npc != NULL) { + CopyPosition(&gPlayerEntity, npc); + npc->flags |= 0x20; + npc->animationState = GetAnimationState(npc); + } + } +} diff --git a/src/npc/rem.c b/src/npc/rem.c index de3e0fb5..eec31fe9 100644 --- a/src/npc/rem.c +++ b/src/npc/rem.c @@ -3,6 +3,9 @@ #include "script.h" #include "audio.h" #include "functions.h" +#include "random.h" +#include "flags.h" +#include "textbox.h" extern void sub_0806A8C8(Entity*); @@ -11,6 +14,17 @@ extern void (*gUnk_08112278[])(Entity*); extern void script_08012F0C; +extern void sub_08078850(Entity*, u32, u32, u32*); +extern u32 gUnk_0811229C; + +extern void sub_0807F950(Entity* this, ScriptExecutionContext* context); + +extern u8 gUnk_081122A0[]; + +void sub_0806A9B0(Entity*, ScriptExecutionContext*); + +void sub_0806A914(Entity* this); + void Rem(Entity* this) { gUnk_08112260[this->type](this); } @@ -47,3 +61,263 @@ void sub_0806A3D8(Entity* this) { *(ScriptExecutionContext**)&this->cutsceneBeh = uVar1; sub_0807DD94(this, NULL); } + +void sub_0806A410(Entity* this) { + switch (this->subAction) { + case 0: + if (--this->actionDelay == 0) { + this->subAction = this->subAction + 1; + InitializeAnimation(this, 8); + } + break; + case 1: + if (((this->frames.all & 0x80) != 0)) { + sub_0806A9B0(this, *(ScriptExecutionContext**)&this->cutsceneBeh); + } + break; + } +} + +void sub_0806A458(Entity* this) { + switch (this->subAction) { + case 0: + if (--this->actionDelay == 0) { + this->subAction += 1; + } + break; + case 1: + if ((this->frames.all & 0x80) != 0) { + this->subAction = 2; + InitializeAnimation(this, 10); + ClearLocalFlag(0x62); + } + break; + case 2: + if (((this->frames.all & 0x80) != 0)) { + this->action = 1; + this->subAction = 0; + this->actionDelay = 0x3c; + InitializeAnimation(this, 2); + } + break; + } +} + +void sub_0806A4CC(Entity* this) { + switch (this->subAction) { + case 0: + if ((this->frames.all & 0x80) != 0) { + if ((u8)(this->animIndex - 8) < 2) { + this->subAction = 1; + this->field_0x6a.HWORD = 1; + InitializeAnimation(this, 10); + } else { + this->subAction = 2; + this->field_0x6a.HWORD = 0; + InitializeAnimation(this, GetAnimationState(this)); + } + break; + case 1: + if ((this->frames.all & 0x80) != 0) { + this->subAction = 2; + InitializeAnimation(this, GetAnimationState(this)); + } + break; + default: + this->actionDelay = 0xb4; + break; + } + } +} + +void sub_0806A550(Entity* this) { + if (this->subAction == 0) { + this->subAction = 1; + InitializeAnimation(this, 0xc); + } else { + if (this->frames.all == 1) { + this->frames.all = 0; + sub_08080964(8, 2); + gActiveScriptInfo.unk_00 |= 0x100; + SoundReq(SFX_11B); + } + if ((this->frames.all & 0x80) != 0) { + this->action = 5; + this->subAction = 0; + InitializeAnimation(this, 0xd); + sub_0806A914(this); + } + } +} + +void nullsub_503(void) { +} + +void sub_0806A5C0(Entity* this) { + GetNextFrame(this); + if ((this->frames.all & 0x80) != 0) { + InitializeAnimation(this, (Random() & 3) + 4); + } +} + +void sub_0806A5E8(Entity* this) { + if (this->action == 0) { + this->action = 1; + InitializeAnimation(this, 0x10); + this->actionDelay = (Random() & 0x3f) + 0x3c; + } + this->actionDelay -= 1; + if (this->actionDelay == 0) { + this->actionDelay = (Random() & 0x3f) + 0x78; + SoundReq(SFX_REM_SLEEP); + } + GetNextFrame(this); +} + +void sub_0806A630(Entity* this) { + if (this->action == 0) { + this->action = 1; + InitializeAnimation(this, 0x12); + } + if ((gActiveScriptInfo.unk_00 & 0x100) != 0) { + GetNextFrame(this); + } + if (this->frames.all == 1) { + this->frames.all = 0; + SoundReq(SFX_SECRET); + } +} + +ASM_FUNC("asm/non_matching/rem/sub_0806A674.inc", void sub_0806A674(Entity* this)) + +void sub_0806A830(Entity* this) { + Entity* npc; + + if (this->action == 0) { + this->action = 1; + InitializeAnimation(this, 0x14); + sub_0805E3A0(this, 2); + } + if ((gActiveScriptInfo.unk_00 & 0x200) != 0) { + DeleteThisEntity(); + } + GetNextFrame(this); + if (this->frames.all == 1) { + this->frames.all = 0; + npc = CreateNPC(0x37, 5, 0); + if (npc != NULL) { + PositionEntityOnTop(this, npc); + } + } +} + +void sub_0806A890(Entity* this) { + if (this->action == 0) { + this->action = 1; + InitializeAnimation(this, 0x15); + sub_0805E3A0(this, 2); + } + GetNextFrame(this); + if ((this->frames.all & 0x80) != 0) { + DeleteThisEntity(); + } +} + +void sub_0806A8C8(Entity* this) { + Entity* entity; + if ((CheckLocalFlag(0x60) == 0) && (entity = CreateNPC(0x37, 2, 0), entity != NULL)) { + CopyPosition(this, entity); + entity->parent = this; + } + entity = CreateNPC(0x37, 3, 0); + if (entity != NULL) { + CopyPosition(this, entity); + entity->y.HALF.HI += 2; + entity->parent = this; + } +} + +void sub_0806A914(Entity* this) { + Entity* npc = CreateNPC(0x37, 1, 0); + if (npc != NULL) { + CopyPosition(this, npc); + ResolveEntityOnTop(this, npc); + } +} + +void sub_0806A93C(Entity* this) { + sub_08078778(this); + sub_08078850(this, 0, 0, &gUnk_0811229C); +} + +void sub_0806A958(Entity* this) { + if (this->action != 5) { + gActiveScriptInfo.commandSize = 0; + } +} + +void sub_0806A96C(Entity* this, ScriptExecutionContext* context) { + context->condition = 0; + if (this->interactType != 0) { + if (this->action != 3) { + this->action = 3; + this->subAction = 0; + } else { + if (this->subAction > 1) { + this->interactType = 0; + context->condition = 1; + gActiveScriptInfo.flags |= 1; + } + } + } +} + +void sub_0806A9B0(Entity* this, ScriptExecutionContext* context) { + this->action = 2; + this->subAction = 0; + this->actionDelay = gUnk_081122A0[Random() & 7]; + this->field_0x80.HWORD = 9; + InitializeAnimation(this, 9); + SetLocalFlag(0x62); +} + +void sub_0806A9E8(Entity* this) { + Entity* npc = CreateNPC(0x37, 4, 0); + if (npc != NULL) { + CopyPosition(this, npc); + sub_0806FAD8(this, npc); + } +} + +void sub_0806AA10(Entity* this) { + sub_0806A914(this); +} + +void sub_0806AA18(Entity* this) { + u32 index; + if (this->field_0x6a.HWORD != 0) { + index = 0x4408; + } else if ((gScreenTransition.frameCount & 1U) == 0) { + index = 0x4407; + } else { + index = 0x440d; + } + TextboxNoOverlap(index, this); +} + +ASM_FUNC("asm/non_matching/rem/sub_0806AA50.inc", void sub_0806AA50(Entity* this, ScriptExecutionContext* context)) + +void sub_0806AB74(Entity* this) { + gRoomVars.filler[3] = 1; + if ((s32)(this->y.HALF.HI - (u32)gRoomControls.roomOriginY) < 0xa8) { + this->y.HALF.HI = gRoomControls.roomOriginY + 0xa8; + } +} + +void sub_0806AB9C(Entity* this, ScriptExecutionContext* context) { + Entity* entity = FindEntity(7, 0x37, 7, 1, 0); + if (entity != NULL) { + DeleteEntity(entity); + } + sub_0807F950(this, context); +} diff --git a/src/npc/sittingPerson.c b/src/npc/sittingPerson.c new file mode 100644 index 00000000..34f8eaff --- /dev/null +++ b/src/npc/sittingPerson.c @@ -0,0 +1,95 @@ +#include "entity.h" +#include "script.h" +#include "npc.h" +#include "functions.h" +#include "save.h" +#include "random.h" + +extern void (*gUnk_0810CBD8[])(Entity*); + +extern Dialog gUnk_0810CC08[]; + +extern SpriteLoadData gUnk_0810CB78[]; +extern void sub_08096208(Entity*, u32); + +void SittingPerson(Entity* this) { + gUnk_0810CBD8[this->action](this); +} + +ASM_FUNC("asm/non_matching/sittingPerson/sub_08063758.inc", void sub_08063758(Entity* this)) + +void sub_080637B8(Entity* this) { + u32 tmp; + + if (this->interactType == 2) { + this->action = 2; + this->interactType = 0; + this->field_0x68.HALF.HI = this->animIndex; + tmp = sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity)); + if ((this->spriteSettings.raw * 0x2000000) < 0) { + tmp += 4; + } + InitializeAnimation(this, tmp); + sub_0806F118(this); + } else { + ExecuteScriptForEntity(this, NULL); + HandleEntity0x82Actions(this); + if (this->frameDuration == 0xfe) { + this->frameDuration = (Random() & 0x1f) + 0x1e; + } + GetNextFrame(this); + } +} + +void sub_08063830(Entity* this) { + if (UpdateFuseInteraction(this) != 0) { + this->action = 1; + InitializeAnimation(this, this->field_0x68.HALF.HI); + } +} + +ASM_FUNC("asm/non_matching/sittingPerson/sub_08063850.inc", void sub_08063850(Entity* this)) + +void sub_08063874(Entity* this) { + this->animationState = this->actionDelay; +} + +ASM_FUNC("asm/non_matching/sittingPerson/sub_0806387C.inc", void sub_0806387C(Entity* this)) + +ASM_FUNC("asm/non_matching/sittingPerson/sub_0806390C.inc", void sub_0806390C(Entity* this)) + +void sub_08063944(Entity* this, ScriptExecutionContext* context) { + s32 tmp; + + context->condition = 0; + tmp = gSave.unk8 - 2; + if (tmp < 0) { + tmp = 0; + } + ShowNPCDialogue(this, gUnk_0810CC08 + this->type2 * 8 + tmp); +} + +ASM_FUNC("asm/non_matching/sittingPerson/SittingPerson_Head.inc", void SittingPerson_Head(Entity* this)) + +void sub_080639D0(Entity* this) { + this->field_0x68.HALF.LO = sub_0801E99C(this); + sub_08078784(this, this->field_0x68.HALF.LO); +} + +void SittingPerson_Fusion(Entity* this) { + if (this->action == 0) { + if (LoadExtraSpriteData(this, &gUnk_0810CB78[this->type * 3]) != 0) { + this->action += 1; + this->spriteSettings.b.draw = 1; + this->spriteSettings.b.flipX = 0; + this->y.HALF.HI -= 4; + InitializeAnimation(this, 2); + sub_08096208(this, this->type); + } + } else { + if (this->frameDuration == 0xfe) { + this->frameDuration = (Random() & 0x1f) + 0x1e; + } + GetNextFrame(this); + } +} diff --git a/src/npc/stockwell.c b/src/npc/stockwell.c new file mode 100644 index 00000000..17138947 --- /dev/null +++ b/src/npc/stockwell.c @@ -0,0 +1,156 @@ +#include "entity.h" +#include "script.h" +#include "room.h" +#include "textbox.h" +#include "functions.h" + +extern void CreateSpeechBubbleQuestionMark(Entity*, u32, u32); +extern void CreateSpeechBubbleExclamationMark(Entity*, u32, u32); + +extern void (*const gUnk_0810FDC8[])(Entity*); + +extern void (*const gUnk_0810FDA4[])(Entity*); + +extern bool32 sub_08056338(void); + +extern void sub_08078850(Entity*, u32, u8, u32*); +extern u32 gUnk_0810FDA0; +extern u16 script_080142B0; + +void Stockwell(Entity* this) { + gUnk_0810FDA4[this->action](this); + ExecuteScript(this, *(ScriptExecutionContext**)&this->cutsceneBeh); + sub_0806ED78(this); +} + +void sub_08065080(Entity* this) { + ScriptExecutionContext* context; + + this->action = 1; + this->spriteSettings.b.draw = 1; + sub_0805E3A0(this, 2); + InitializeAnimation(this, 4); + sub_08078778(this); + sub_08078850(this, 0, 0, &gUnk_0810FDA0); + context = StartCutscene(this, &script_080142B0); + *(ScriptExecutionContext**)&this->cutsceneBeh = context; +} + +ASM_FUNC("asm/non_matching/stockwell/sub_080650CC.inc", void sub_080650CC(Entity* this)) + +void sub_080651AC(Entity* this) { + GetNextFrame(this); + if ((gTextBox.doTextBox & 0x7f) == 0) { + this->interactType = gTextBox.doTextBox & 0x7f; + this->action = 1; + InitializeAnimation(this, 4); + } +} + +void sub_080651D8(Entity* this) { + GetNextFrame(this); + gUnk_0810FDC8[this->subAction](this); +} + +void sub_080651F8(Entity* this) { + if ((this->frames.all & 0x20) == 0) { + this->subAction = 1; + this->actionDelay = 0x3c; + InitializeAnimation(this, 1); + CreateSpeechBubbleExclamationMark(this, 8, 0xffffffe8); + sub_08078A90(1); + } +} + +void sub_0806522C(Entity* this) { + if (--this->actionDelay == 0) { + ++this->subAction; + TextboxNoOverlap(0x2c16, this); + } +} + +void sub_08065250(Entity* this) { + switch (sub_08056338()) { + case 0: + this->subAction += 1; + this->actionDelay = 0x1e; + this->field_0xf = 0; + CreateSpeechBubbleExclamationMark(this, 8, 0xffffffe8); + break; + case 1: + this->subAction = 7; + this->actionDelay = 0; + this->field_0xf = 2; + break; + } +} + +void sub_0806528C(Entity* this) { + if (--this->actionDelay == 0) { + ++this->subAction; + TextboxNoOverlap(0x2c18, this); + } +} + +void sub_080652B0(Entity* this) { + if ((gTextBox.doTextBox & 0x7f) == 0) { + this->subAction += 1; + this->actionDelay = 10; + gRoomVars.greatFairyState = this->field_0xf; + CreateItemEntity(0x36, 0, 0); + } +} + +void sub_080652E4(Entity* this) { + if (this->actionDelay != 0) { + this->actionDelay -= 1; + } else { + if (gPlayerEntity.action != 8) { + this->subAction += 1; + TextboxNoOverlap(0x2c19, this); + } + } +} + +void sub_08065314(Entity* this) { + if ((gTextBox.doTextBox & 0x7f) == 0) { + this->subAction += 1; + MenuFadeIn(3, 3); + } +} + +void sub_08065338(Entity* this) { + if ((gTextBox.doTextBox & 0x7f) == 0) { + this->action = 1; + this->subAction = gTextBox.doTextBox & 0x7f; + gRoomVars.greatFairyState = this->field_0xf; + InitializeAnimation(this, 4); + } +} + +void sub_08065368(Entity* this) { + GetNextFrame(this); +} + +ASM_FUNC("asm/non_matching/stockwell/sub_08065370.inc", + void sub_08065370(Entity* this, ScriptExecutionContext* context)) + +void sub_080654DC(Entity* this) { + CreateSpeechBubbleQuestionMark(this, 8, 0xffffffe8); +} + +void sub_080654EC(Entity* this) { + CreateSpeechBubbleExclamationMark(this, 8, 0xffffffe8); +} + +void sub_080654FC(Entity* this) { + if ((this->frames.all & 0x20) != 0) { + gActiveScriptInfo.commandSize = 0; + } else { + gActiveScriptInfo.flags |= 1; + } +} + +void sub_08065528(Entity* this, ScriptExecutionContext* context) { + gRoomVars.greatFairyState = context->intVariable; +} diff --git a/src/npc/sturgeon.c b/src/npc/sturgeon.c new file mode 100644 index 00000000..7f2ce06b --- /dev/null +++ b/src/npc/sturgeon.c @@ -0,0 +1,128 @@ +#include "entity.h" +#include "functions.h" +#include "npc.h" +#include "textbox.h" +#include "createObject.h" +#include "flags.h" +#include "script.h" + +extern u16 gUnk_0810FA54[]; + +extern SpriteLoadData gUnk_0810FA38; + +extern void sub_0806EE04(Entity*, void*, u32); +extern u32 gUnk_0810FA5A; +void sub_08064CC0(Entity* this); + +extern void (*const gUnk_0810FA44[])(Entity*); +void sub_08064C9C(Entity* this); + +NONMATCH("asm/non_matching/sturgeon/Sturgeon.inc", void Sturgeon(Entity* this)) { + u8 uVar2; + + if ((this->flags & 2) == 0) { + gUnk_0810FA44[this->action](this); + sub_0806ED78(this); + } else { + uVar2 = this->action; + if (uVar2 == 0) { + if (LoadExtraSpriteData(this, &gUnk_0810FA38) != 0) { + this->action = 1; + this->actionDelay = 0; + sub_0807DD50(this); + } + } else { + if ((uVar2 & 0x80) != 0) { + if (UpdateFuseInteraction(this) != 0) { + this->action = 1; + } + } else { + if (this->interactType == 2) { + this->action = 0xff; + this->interactType = uVar2 & 0x80; + InitAnimationForceUpdate(this, sub_0806F5A4(GetFacingDirection(this, &gPlayerEntity))); + sub_0806F118(this); + } else { + sub_0807DD94(this, NULL); + sub_08064C9C(this); + } + } + } + } +} +END_NONMATCH + +void sub_08064B44(Entity* this) { + if (LoadExtraSpriteData(this, &gUnk_0810FA38) != 0) { + InitializeAnimation(this, 2); + sub_0806EE04(this, &gUnk_0810FA5A, 0); + sub_08064CC0(this); + this->action = 1; + this->subAction = 0; + this->spriteSettings.b.draw = 1; + } +} + +ASM_FUNC("asm/non_matching/sturgeon/sub_08064B88.inc", void sub_08064B88(Entity* this)) + +void sub_08064C2C(Entity* this) { + if ((gTextBox.doTextBox & 0x7f) == 0) { + this->action = 1; + InitializeAnimation(this, (u32)this->field_0xf); + } +} + +void sub_08064C50(Entity* this) { + if (UpdateFuseInteraction(this) != 0) { + this->action = 1; + InitializeAnimation(this, this->field_0xf); + } +} + +void Sturgeon_Head(Entity* this) { + SetExtraSpriteFrame(this, 0, (u8)this->frames.all & 0x3f); + SetExtraSpriteFrame(this, 1, (u32)this->frameIndex); + SetSpriteSubEntryOffsetData1(this, 1, 0); + sub_0807000C(this); +} + +void sub_08064C9C(Entity* this) { + if ((this->actionDelay != 0) && ((gScreenTransition.frameCount & 3U) == 0)) { + CreateDust(this); + } +} + +void sub_08064CC0(Entity* this) { + this->field_0x68.HALF.LO = sub_0801E99C(this); + sub_08078784(this, this->field_0x68.HALF.LO); +} + +void sub_08064CD8(Entity* this) { + u32 flag; + u32 tmp = 2; + if (GetInventoryValue(0x46) == 0) { + flag = CheckLocalFlag(0x73); + tmp = BOOLCAST(flag); + } + TextboxNoOverlap(gUnk_0810FA54[tmp], this); +} + +void sub_08064D08(Entity* this) { + this->actionDelay = 1; +} + +void sub_08064D10(Entity* this) { + this->actionDelay = 0; +} + +void Sturgeon_Fusion(Entity* this) { + if (this->action == 0) { + if (LoadExtraSpriteData(this, &gUnk_0810FA38) != 0) { + this->action += 1; + this->spriteSettings.b.draw = 1; + InitializeAnimation(this, 6); + } + } else { + GetNextFrame(this); + } +} diff --git a/src/npc/syrup.c b/src/npc/syrup.c index 5e71f5b4..f201422c 100644 --- a/src/npc/syrup.c +++ b/src/npc/syrup.c @@ -60,3 +60,5 @@ NONMATCH("asm/non_matching/syrup/sub_0806A26C.inc", void sub_0806A26C(Entity* th } } END_NONMATCH + +ASM_FUNC("asm/non_matching/syrup/Syrup_Head.inc", void Syrup_Head(Entity* this)) diff --git a/src/npc/tingleSiblings.c b/src/npc/tingleSiblings.c index b3d56ae8..f5bcaf5b 100644 --- a/src/npc/tingleSiblings.c +++ b/src/npc/tingleSiblings.c @@ -2,6 +2,8 @@ #include "entity.h" #include "npc.h" #include "textbox.h" +#include "script.h" +#include "functions.h" extern void sub_08064DE4(Entity*); extern void sub_08064D78(Entity*); @@ -79,3 +81,43 @@ void sub_08064DE4(Entity* this) { } } }*/ +ASM_FUNC("asm/non_matching/tingleSiblings/sub_08064DE4.inc", void sub_08064DE4(Entity* this)) + +void sub_08064EA4(Entity* this) { + this->field_0x68.HALF.LO = sub_0801E99C(this); + switch (this->type) { + case 0: + if ((CheckKinstoneFused(0x59) != 0) && (GetInventoryValue(0xc) == 0)) { + this->field_0x68.HALF.LO = 0; + } + break; + case 3: + if ((CheckKinstoneFused(0x5a) != 0) && (GetInventoryValue(0xc) == 0)) { + this->field_0x68.HALF.LO = 0; + } + break; + default: + break; + } + sub_08078784(this, this->field_0x68.HALF.LO); +} + +ASM_FUNC("asm/non_matching/tingleSiblings/sub_08064EE8.inc", void sub_08064EE8(Entity* this)) + +ASM_FUNC("asm/non_matching/tingleSiblings/sub_08064F28.inc", + void sub_08064F28(Entity* this, ScriptExecutionContext* context)) + +void TingleSiblings_Fusion(Entity* this) { + u32 tmp; + if (this->action == 0) { + this->action += 1; + this->spriteSettings.b.draw = 1; + tmp = 6; + if (this->type == 0) { + tmp = 10; + } + InitAnimationForceUpdate(this, tmp); + } else { + sub_08064EE8(this); + } +} diff --git a/src/npc/windTribespeople.c b/src/npc/windTribespeople.c index 65968f30..677ce4f3 100644 --- a/src/npc/windTribespeople.c +++ b/src/npc/windTribespeople.c @@ -18,6 +18,22 @@ extern u16 script_08014A80; extern Dialog gUnk_08113ABC[]; extern u16 gUnk_08113B0C[]; +extern Dialog gUnk_08113B28; + +extern Dialog gUnk_08113B30; + +extern u16 gUnk_08113B12[]; + +extern u16 gUnk_08113B22[]; + +extern u16 gUnk_08113B1E[]; + +extern u16 gUnk_08113B16[]; + +extern u8 gUnk_08113B38[]; + +extern SpriteLoadData gUnk_08113A1C[]; + void WindTribespeople(Entity* this) { gUnk_08113A7C[this->action](this); } @@ -126,3 +142,77 @@ void sub_0806C944(Entity* this) { } TextboxNoOverlap(gUnk_08113B0C[iVar2], this); } + +void sub_0806C978(Entity* this) { + u32 flag; + u32 flagAsBool; + flag = CheckGlobalFlag(0x58); + flagAsBool = BOOLCAST(flag); + TextboxNoOverlap(gUnk_08113B12[flagAsBool], this); +} + +void sub_0806C99C(Entity* this) { + s32 flag; + u32 flagAsBool; + + flag = CheckGlobalFlag(0x58); + flagAsBool = BOOLCAST(flag) & 2; + if (CheckLocalFlag(99) != 0) { + flagAsBool += 1; + } + TextboxNoOverlap(gUnk_08113B16[flagAsBool], this); +} + +void sub_0806C9D0(Entity* this) { + u32 tmp = 0; + if (CheckLocalFlag(100) == 0) { + tmp = 1; + } + TextboxNoOverlap(gUnk_08113B1E[tmp], this); +} + +void sub_0806C9F8(Entity* this) { + u32 flag; + u32 flagAsBool; + flag = CheckGlobalFlag(0x58); + flagAsBool = BOOLCAST(flag); + TextboxNoOverlap(gUnk_08113B22[flagAsBool], this); +} + +void sub_0806CA1C(Entity* this) { + TextboxNoOverlap(0x251b, this); +} + +void sub_0806CA2C(Entity* this) { + TextboxNoOverlap(0x2527, this); +} + +void sub_0806CA3C(Entity* this) { + ShowNPCDialogue(this, &gUnk_08113B28); +} + +void sub_0806CA4C(Entity* this) { + ShowNPCDialogue(this, &gUnk_08113B30); +} + +void sub_0806CA5C(Entity* this, ScriptExecutionContext* context) { + context->wait = gUnk_08113B38[context->unk_18++]; + if (this->type2 == 10) { + EnqueueSFX(0xe8); + } + if (context->wait != 0) { + gActiveScriptInfo.commandSize = 0; + } +} + +void WindTribespeople_Fusion(Entity* this) { + if (this->action == 0) { + if (LoadExtraSpriteData(this, &gUnk_08113A1C[this->type * 4]) != 0) { + this->action += 1; + this->spriteSettings.b.draw = 1; + InitializeAnimation(this, 6); + } + } else { + GetNextFrame(this); + } +} diff --git a/src/npc/zeldaFollower.c b/src/npc/zeldaFollower.c index 6f5866b2..649abd41 100644 --- a/src/npc/zeldaFollower.c +++ b/src/npc/zeldaFollower.c @@ -1,9 +1,13 @@ #include "global.h" #include "entity.h" #include "functions.h" +#include "script.h" +#include "utils.h" extern void sub_08068318(Entity*); -extern void sub_0806854C(Entity*, u32); +extern void sub_0806854C(Entity*, u32*); + +void sub_08068578(Entity* this); void ZeldaFollower(Entity* this) { if (this->action == 0) { @@ -14,7 +18,7 @@ void ZeldaFollower(Entity* this) { this->field_0x68.HALF.HI = 0; sub_0805E3A0(this, 2); InitAnimationForceUpdate(this, 0); - sub_0806854C(this, 0); + sub_0806854C(this, NULL); } if ((s8)this->field_0x68.HALF.LO != 0) { sub_08068318(this); @@ -22,3 +26,35 @@ void ZeldaFollower(Entity* this) { this->spriteSettings.b.draw = FALSE; } } + +ASM_FUNC("asm/non_matching/zeldaFollower/sub_08068318.inc", void sub_08068318(Entity* this)) + +void sub_0806854C(Entity* this, u32* none) { + this->myHeap = zMalloc(0xa0); + if (this->myHeap != NULL) { + this->field_0x68.HALF.LO = 1; + sub_080788E0(this); + this->hitbox = NULL; + sub_08068578(this); + } +} + +ASM_FUNC("asm/non_matching/zeldaFollower/sub_08068578.inc", void sub_08068578(Entity* this)) + +void sub_08068680(Entity* this, Entity* entity) { + entity->field_0x68.HALF.LO = 0; + entity->spriteSettings.b.draw = 0; +} + +void sub_08068694(Entity* this, Entity* entity) { + entity->field_0x68.HALF.LO = 1; + entity->spriteSettings.b.draw = 1; + entity->animationState = this->animationState; + sub_08068578(entity); + InitAnimationForceUpdate(entity, entity->animationState / 2); +} + +void sub_080686C4(Entity* this, Entity* entity) { + entity->y.HALF.HI -= 0x10; + sub_08068578(entity); +} From 1721a05ef8f5e802119161fb430749eb96e0e70e Mon Sep 17 00:00:00 2001 From: octorock <79596758+octorock@users.noreply.github.com> Date: Wed, 2 Jun 2021 13:07:37 +0200 Subject: [PATCH 10/74] Decompile some projectiles --- .../projectile13/sub_080AA320.inc | 41 + .../projectile13/sub_080AA374.inc | 54 ++ .../projectile14/sub_080AA544.inc | 134 +++ .../projectile15/sub_080AA9E0.inc | 74 ++ .../projectile18/sub_080AACE0.inc | 77 ++ .../projectile19/sub_080AB170.inc | 133 +++ .../projectile1B/sub_080AB634.inc | 49 + .../projectile1C/sub_080AB758.inc | 123 +++ .../projectile1D/sub_080AB950.inc | 70 ++ .../projectile1D/sub_080AB9FC.inc | 49 + .../projectile1E/sub_080ABA74.inc | 59 ++ .../projectile1E/sub_080ABAE0.inc} | 82 +- .../projectile1F/sub_080ABBA8.inc | 39 + .../projectile1F/sub_080ABBF4.inc | 50 ++ .../projectile1F/sub_080ABE04.inc | 63 ++ .../projectile21/sub_080ABFEC.inc | 69 ++ .../projectile21/sub_080AC168.inc | 75 ++ .../projectile21/sub_080AC200.inc | 62 ++ .../projectile22/sub_080AC388.inc | 128 +++ .../projectile22/sub_080AC5E4.inc | 134 +++ .../projectile22/sub_080AC6F0.inc | 63 ++ .../projectile22/sub_080AC760.inc | 59 ++ .../projectile22/sub_080AC7C4.inc | 95 ++ .../projectile23/sub_080AC8DC.inc | 40 + .../projectile24/sub_080ACA68.inc | 53 ++ .../projectile24/sub_080ACB40.inc | 48 + asm/non_matching/projectile3/sub_080A83B4.inc | 73 ++ asm/projectile/projectile0.s | 176 ---- asm/projectile/projectile1.s | 192 ---- asm/projectile/projectile10.s | 401 --------- asm/projectile/projectile11.s | 142 --- asm/projectile/projectile12.s | 101 --- asm/projectile/projectile13.s | 747 --------------- asm/projectile/projectile14.s | 342 ------- asm/projectile/projectile15.s | 582 ------------ asm/projectile/projectile16.s | 97 -- asm/projectile/projectile17.s | 58 -- asm/projectile/projectile18.s | 603 ------------- asm/projectile/projectile19.s | 315 ------- asm/projectile/projectile1A.s | 318 ------- asm/projectile/projectile1B.s | 214 ----- asm/projectile/projectile1C.s | 310 ------- asm/projectile/projectile1D.s | 216 ----- asm/projectile/projectile1F.s | 472 ---------- asm/projectile/projectile2.s | 196 ---- asm/projectile/projectile20.s | 76 -- asm/projectile/projectile21.s | 371 -------- asm/projectile/projectile22.s | 848 ------------------ asm/projectile/projectile23.s | 208 ----- asm/projectile/projectile24.s | 227 ----- asm/projectile/projectile3.s | 185 ---- asm/projectile/projectile4.s | 335 ------- asm/projectile/projectile5.s | 146 --- asm/projectile/projectile6.s | 368 -------- asm/projectile/projectile7.s | 165 ---- asm/projectile/projectile8.s | 151 ---- asm/projectile/projectile9.s | 151 ---- asm/projectile/projectileA.s | 459 ---------- asm/projectile/projectileB.s | 78 -- asm/projectile/projectileC.s | 150 ---- asm/projectile/projectileD.s | 278 ------ asm/projectile/projectileE.s | 124 --- asm/projectile/projectileF.s | 537 ----------- linker.ld | 74 +- src/code_080A29BC.c | 4 - src/npc/npc5.c | 60 +- src/projectile/projectile0.c | 73 ++ src/projectile/projectile1.c | 91 ++ src/projectile/projectile10.c | 188 ++++ src/projectile/projectile11.c | 66 ++ src/projectile/projectile12.c | 45 + src/projectile/projectile13.c | 338 +++++++ src/projectile/projectile14.c | 150 ++++ src/projectile/projectile15.c | 186 ++++ src/projectile/projectile16.c | 53 ++ src/projectile/projectile17.c | 29 + src/projectile/projectile18.c | 206 +++++ src/projectile/projectile19.c | 78 ++ src/projectile/projectile1A.c | 128 +++ src/projectile/projectile1B.c | 82 ++ src/projectile/projectile1C.c | 98 ++ src/projectile/projectile1D.c | 52 ++ src/projectile/projectile1E.c | 11 + src/projectile/projectile1F.c | 123 +++ src/projectile/projectile2.c | 90 ++ src/projectile/projectile20.c | 37 + src/projectile/projectile21.c | 80 ++ src/projectile/projectile22.c | 229 +++++ src/projectile/projectile23.c | 73 ++ src/projectile/projectile24.c | 66 ++ src/projectile/projectile3.c | 87 ++ src/projectile/projectile4.c | 147 +++ src/projectile/projectile5.c | 67 ++ src/projectile/projectile6.c | 168 ++++ src/projectile/projectile7.c | 82 ++ src/projectile/projectile8.c | 76 ++ src/projectile/projectile9.c | 76 ++ src/projectile/projectileA.c | 155 ++++ src/projectile/projectileB.c | 27 + src/projectile/projectileC.c | 68 ++ src/projectile/projectileD.c | 126 +++ src/projectile/projectileE.c | 46 + src/projectile/projectileF.c | 197 ++++ 103 files changed, 5847 insertions(+), 10520 deletions(-) create mode 100644 asm/non_matching/projectile13/sub_080AA320.inc create mode 100644 asm/non_matching/projectile13/sub_080AA374.inc create mode 100644 asm/non_matching/projectile14/sub_080AA544.inc create mode 100644 asm/non_matching/projectile15/sub_080AA9E0.inc create mode 100644 asm/non_matching/projectile18/sub_080AACE0.inc create mode 100644 asm/non_matching/projectile19/sub_080AB170.inc create mode 100644 asm/non_matching/projectile1B/sub_080AB634.inc create mode 100644 asm/non_matching/projectile1C/sub_080AB758.inc create mode 100644 asm/non_matching/projectile1D/sub_080AB950.inc create mode 100644 asm/non_matching/projectile1D/sub_080AB9FC.inc create mode 100644 asm/non_matching/projectile1E/sub_080ABA74.inc rename asm/{projectile/projectile1E.s => non_matching/projectile1E/sub_080ABAE0.inc} (51%) create mode 100644 asm/non_matching/projectile1F/sub_080ABBA8.inc create mode 100644 asm/non_matching/projectile1F/sub_080ABBF4.inc create mode 100644 asm/non_matching/projectile1F/sub_080ABE04.inc create mode 100644 asm/non_matching/projectile21/sub_080ABFEC.inc create mode 100644 asm/non_matching/projectile21/sub_080AC168.inc create mode 100644 asm/non_matching/projectile21/sub_080AC200.inc create mode 100644 asm/non_matching/projectile22/sub_080AC388.inc create mode 100644 asm/non_matching/projectile22/sub_080AC5E4.inc create mode 100644 asm/non_matching/projectile22/sub_080AC6F0.inc create mode 100644 asm/non_matching/projectile22/sub_080AC760.inc create mode 100644 asm/non_matching/projectile22/sub_080AC7C4.inc create mode 100644 asm/non_matching/projectile23/sub_080AC8DC.inc create mode 100644 asm/non_matching/projectile24/sub_080ACA68.inc create mode 100644 asm/non_matching/projectile24/sub_080ACB40.inc create mode 100644 asm/non_matching/projectile3/sub_080A83B4.inc delete mode 100644 asm/projectile/projectile0.s delete mode 100644 asm/projectile/projectile1.s delete mode 100644 asm/projectile/projectile10.s delete mode 100644 asm/projectile/projectile11.s delete mode 100644 asm/projectile/projectile12.s delete mode 100644 asm/projectile/projectile13.s delete mode 100644 asm/projectile/projectile14.s delete mode 100644 asm/projectile/projectile15.s delete mode 100644 asm/projectile/projectile16.s delete mode 100644 asm/projectile/projectile17.s delete mode 100644 asm/projectile/projectile18.s delete mode 100644 asm/projectile/projectile19.s delete mode 100644 asm/projectile/projectile1A.s delete mode 100644 asm/projectile/projectile1B.s delete mode 100644 asm/projectile/projectile1C.s delete mode 100644 asm/projectile/projectile1D.s delete mode 100644 asm/projectile/projectile1F.s delete mode 100644 asm/projectile/projectile2.s delete mode 100644 asm/projectile/projectile20.s delete mode 100644 asm/projectile/projectile21.s delete mode 100644 asm/projectile/projectile22.s delete mode 100644 asm/projectile/projectile23.s delete mode 100644 asm/projectile/projectile24.s delete mode 100644 asm/projectile/projectile3.s delete mode 100644 asm/projectile/projectile4.s delete mode 100644 asm/projectile/projectile5.s delete mode 100644 asm/projectile/projectile6.s delete mode 100644 asm/projectile/projectile7.s delete mode 100644 asm/projectile/projectile8.s delete mode 100644 asm/projectile/projectile9.s delete mode 100644 asm/projectile/projectileA.s delete mode 100644 asm/projectile/projectileB.s delete mode 100644 asm/projectile/projectileC.s delete mode 100644 asm/projectile/projectileD.s delete mode 100644 asm/projectile/projectileE.s delete mode 100644 asm/projectile/projectileF.s create mode 100644 src/projectile/projectile0.c create mode 100644 src/projectile/projectile1.c create mode 100644 src/projectile/projectile10.c create mode 100644 src/projectile/projectile11.c create mode 100644 src/projectile/projectile12.c create mode 100644 src/projectile/projectile13.c create mode 100644 src/projectile/projectile14.c create mode 100644 src/projectile/projectile15.c create mode 100644 src/projectile/projectile16.c create mode 100644 src/projectile/projectile17.c create mode 100644 src/projectile/projectile18.c create mode 100644 src/projectile/projectile19.c create mode 100644 src/projectile/projectile1A.c create mode 100644 src/projectile/projectile1B.c create mode 100644 src/projectile/projectile1C.c create mode 100644 src/projectile/projectile1D.c create mode 100644 src/projectile/projectile1E.c create mode 100644 src/projectile/projectile1F.c create mode 100644 src/projectile/projectile2.c create mode 100644 src/projectile/projectile20.c create mode 100644 src/projectile/projectile21.c create mode 100644 src/projectile/projectile22.c create mode 100644 src/projectile/projectile23.c create mode 100644 src/projectile/projectile24.c create mode 100644 src/projectile/projectile3.c create mode 100644 src/projectile/projectile4.c create mode 100644 src/projectile/projectile5.c create mode 100644 src/projectile/projectile6.c create mode 100644 src/projectile/projectile7.c create mode 100644 src/projectile/projectile8.c create mode 100644 src/projectile/projectile9.c create mode 100644 src/projectile/projectileA.c create mode 100644 src/projectile/projectileB.c create mode 100644 src/projectile/projectileC.c create mode 100644 src/projectile/projectileD.c create mode 100644 src/projectile/projectileE.c create mode 100644 src/projectile/projectileF.c diff --git a/asm/non_matching/projectile13/sub_080AA320.inc b/asm/non_matching/projectile13/sub_080AA320.inc new file mode 100644 index 00000000..fc966357 --- /dev/null +++ b/asm/non_matching/projectile13/sub_080AA320.inc @@ -0,0 +1,41 @@ + .syntax unified + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, [r5, #0x50] + movs r2, #0 + movs r1, #2 + strb r1, [r5, #0xc] + adds r3, r5, #0 + adds r3, #0x82 + movs r0, #1 + strb r0, [r3] + strb r2, [r5, #0xf] + strb r1, [r4, #0xc] + movs r0, #0x30 + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #0x50 + strh r0, [r1] + strh r2, [r4, #0x24] + adds r0, r4, #0 + movs r1, #0 + bl sub_08049F84 + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x1c + ands r0, r1 + lsrs r1, r0, #2 + strb r1, [r5, #0x14] + movs r1, #0x18 + ands r0, r1 + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + movs r1, #1 + bl sub_080AA3E0 + adds r0, r5, #0 + bl sub_080AA1D8 + pop {r4, r5, pc} + .syntax divided diff --git a/asm/non_matching/projectile13/sub_080AA374.inc b/asm/non_matching/projectile13/sub_080AA374.inc new file mode 100644 index 00000000..07a8161b --- /dev/null +++ b/asm/non_matching/projectile13/sub_080AA374.inc @@ -0,0 +1,54 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + movs r0, #0 + mov r8, r0 + ldr r5, [r6, #0x54] + cmp r5, #0 + beq _080AA3D8 + ldr r0, [r5, #4] + cmp r0, #0 + beq _080AA3D8 + ldrb r4, [r5, #0x14] + ldr r0, _080AA3CC @ =gUnk_08129D14 + adds r4, r4, r0 + movs r2, #0 + ldrsb r2, [r4, r2] + movs r3, #1 + ldrsb r3, [r4, r3] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_0806F824 + adds r7, r0, #0 + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0 + ldrsb r0, [r4, r0] + adds r1, r1, r0 + movs r0, #0x32 + ldrsh r2, [r5, r0] + movs r0, #1 + ldrsb r0, [r4, r0] + adds r2, r2, r0 + adds r0, r6, #0 + movs r3, #8 + bl sub_0806FCB8 + cmp r0, #0 + beq _080AA3D0 + movs r0, #1 + mov r8, r0 + b _080AA3D8 + .align 2, 0 +_080AA3CC: .4byte gUnk_08129D14 +_080AA3D0: + adds r0, r6, #0 + adds r1, r7, #0 + bl sub_08004596 +_080AA3D8: + mov r0, r8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .syntax divided diff --git a/asm/non_matching/projectile14/sub_080AA544.inc b/asm/non_matching/projectile14/sub_080AA544.inc new file mode 100644 index 00000000..22945df2 --- /dev/null +++ b/asm/non_matching/projectile14/sub_080AA544.inc @@ -0,0 +1,134 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + ldrb r0, [r6, #0xb] + cmp r0, #8 + bhi _080AA618 + ldr r0, _080AA5E8 @ =gUnk_08129FF8 + mov sb, r0 + movs r1, #0x2e + ldrsh r2, [r6, r1] + ldr r1, _080AA5EC @ =gRoomControls + ldrh r0, [r1, #6] + subs r2, r2, r0 + asrs r2, r2, #4 + movs r3, #0x3f + ands r2, r3 + movs r4, #0x32 + ldrsh r0, [r6, r4] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r2, r0 + ldrb r0, [r6, #0xb] + add r0, sb + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r7, r2, r0 + movs r4, #0 + movs r5, #0 + movs r0, #0x38 + adds r0, r0, r6 + mov r8, r0 +_080AA58E: + mov r1, sb + adds r0, r1, r4 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r7, r0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r2, r8 + ldrb r1, [r2] + bl sub_080002C8 + cmp r0, #0x3e + bne _080AA5AC + adds r5, #1 +_080AA5AC: + adds r4, #1 + cmp r4, #8 + bls _080AA58E + cmp r5, #8 + bne _080AA5F4 + movs r4, #0 + ldr r5, _080AA5F0 @ =gUnk_08129FD0 +_080AA5BA: + ldrh r0, [r5] + mov r3, sb + adds r1, r3, r4 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + subs r1, r7, r1 + mov r3, r8 + ldrb r2, [r3] + bl sub_0807B7D8 + adds r5, #2 + adds r4, #1 + cmp r4, #8 + bls _080AA5BA + adds r0, r6, #0 + adds r1, r7, #0 + bl sub_080AA654 + ldrh r0, [r6, #0x24] + bl SetFlag + b _080AA648 + .align 2, 0 +_080AA5E8: .4byte gUnk_08129FF8 +_080AA5EC: .4byte gRoomControls +_080AA5F0: .4byte gUnk_08129FD0 +_080AA5F4: + ldr r2, _080AA614 @ =gUnk_08129FE4 + ldrb r1, [r6, #0xb] + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r0, [r0] + add r1, sb + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + subs r1, r7, r1 + mov r4, r8 + ldrb r2, [r4] + bl sub_0807B7D8 + b _080AA648 + .align 2, 0 +_080AA614: .4byte gUnk_08129FE4 +_080AA618: + movs r1, #0x2e + ldrsh r0, [r6, r1] + ldr r2, _080AA650 @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r4, #0x32 + ldrsh r1, [r6, r4] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + adds r1, r6, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_0807BA8C + ldrh r0, [r6, #0x24] + bl SetFlag +_080AA648: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080AA650: .4byte gRoomControls + .syntax divided diff --git a/asm/non_matching/projectile15/sub_080AA9E0.inc b/asm/non_matching/projectile15/sub_080AA9E0.inc new file mode 100644 index 00000000..01531c51 --- /dev/null +++ b/asm/non_matching/projectile15/sub_080AA9E0.inc @@ -0,0 +1,74 @@ + .syntax unified + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0xa] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080AAA00 + ldr r0, _080AA9FC @ =gPlayerEntity + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r2, #0x2e + ldrsh r0, [r5, r2] + b _080AAA0A + .align 2, 0 +_080AA9FC: .4byte gPlayerEntity +_080AAA00: + ldr r0, _080AAA24 @ =gPlayerEntity + movs r2, #0x32 + ldrsh r1, [r0, r2] + movs r2, #0x32 + ldrsh r0, [r5, r2] +_080AAA0A: + subs r4, r1, r0 + ldrb r2, [r5, #0xa] + lsls r1, r2, #2 + ldr r0, _080AAA28 @ =gUnk_0812A074 + adds r3, r1, r0 + cmp r2, #2 + bgt _080AAA2C + cmp r2, #1 + bge _080AAA36 + cmp r2, #0 + beq _080AAA30 + b _080AAA40 + .align 2, 0 +_080AAA24: .4byte gPlayerEntity +_080AAA28: .4byte gUnk_0812A074 +_080AAA2C: + cmp r2, #3 + bne _080AAA40 +_080AAA30: + cmp r4, #4 + ble _080AAA40 + b _080AAA3E +_080AAA36: + movs r0, #4 + rsbs r0, r0, #0 + cmp r4, r0 + bge _080AAA40 +_080AAA3E: + adds r3, #2 +_080AAA40: + ldrb r0, [r3] + adds r4, r5, #0 + adds r4, #0x29 + movs r1, #7 + ands r1, r0 + ldrb r2, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4] + ldrb r0, [r3, #1] + strb r0, [r5, #0x15] + ldrb r0, [r3] + cmp r0, #5 + bne _080AAA66 + adds r0, r5, #0 + bl sub_08078930 +_080AAA66: + pop {r4, r5, pc} + .syntax divided diff --git a/asm/non_matching/projectile18/sub_080AACE0.inc b/asm/non_matching/projectile18/sub_080AACE0.inc new file mode 100644 index 00000000..c353756c --- /dev/null +++ b/asm/non_matching/projectile18/sub_080AACE0.inc @@ -0,0 +1,77 @@ + .syntax unified + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080AACF4 + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _080AACF4 + bl DeleteThisEntity +_080AACF4: + ldrb r1, [r4, #0x18] + lsls r0, r1, #0x1e + lsrs r2, r0, #0x1e + adds r5, r4, #0 + adds r5, #0x86 + cmp r2, #1 + bne _080AAD16 + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + strb r2, [r5] + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFx +_080AAD16: + ldr r2, [r4, #0x50] + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080AAD4A + adds r1, r2, #0 + adds r1, #0x74 + movs r0, #3 + strb r0, [r1] + adds r1, #0xc + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + lsrs r0, r0, #1 + ldrb r2, [r1] + adds r0, r0, r2 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #8 + bls _080AAD42 + movs r0, #8 + b _080AAD56 +_080AAD42: + cmp r0, #0 + bne _080AAD58 + movs r0, #1 + b _080AAD56 +_080AAD4A: + adds r1, r2, #0 + adds r1, #0x84 + movs r0, #0 + strb r0, [r1] + subs r1, #0x45 + movs r0, #0x2b +_080AAD56: + strb r0, [r1] +_080AAD58: + ldrb r0, [r5] + cmp r0, #0 + bne _080AAD68 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFx +_080AAD68: + bl DeleteThisEntity + pop {r4, r5, pc} + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/projectile19/sub_080AB170.inc b/asm/non_matching/projectile19/sub_080AB170.inc new file mode 100644 index 00000000..3021e507 --- /dev/null +++ b/asm/non_matching/projectile19/sub_080AB170.inc @@ -0,0 +1,133 @@ + .syntax unified + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r6, [r4, #0x50] + ldr r0, [r6, #4] + cmp r0, #0 + bne _080AB180 + bl DeleteThisEntity +_080AB180: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080AB1AA + movs r0, #1 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x3a + ands r0, r1 + strb r0, [r2] + movs r0, #5 + strb r0, [r4, #0x1e] + ldrb r1, [r2] + subs r0, #0xd + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080AB1C8 @ =gUnk_080FD460 + str r0, [r4, #0x48] +_080AB1AA: + ldr r5, [r6, #0x50] + adds r0, r4, #0 + adds r0, #0x7c + adds r2, r5, #0 + adds r2, #0x7c + ldrb r1, [r0] + adds r3, r0, #0 + ldrb r2, [r2] + cmp r1, r2 + beq _080AB1CC + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + b _080AB1D2 + .align 2, 0 +_080AB1C8: .4byte gUnk_080FD460 +_080AB1CC: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 +_080AB1D2: + strb r0, [r4, #0x10] + adds r0, r5, #0 + adds r0, #0x7c + ldrb r0, [r0] + strb r0, [r3] + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _080AB208 + movs r0, #0x1f + ands r0, r1 + ldr r1, _080AB204 @ =gUnk_0812A4A8 + adds r0, r0, r1 + movs r2, #0 + ldrsb r2, [r0, r2] + movs r3, #1 + ldrsb r3, [r0, r3] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA90 + b _080AB216 + .align 2, 0 +_080AB204: .4byte gUnk_0812A4A8 +_080AB208: + movs r3, #0xa + rsbs r3, r3, #0 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA90 +_080AB216: + movs r1, #0x2e + ldrsh r0, [r6, r1] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + ldrb r2, [r4, #0xa] + muls r0, r2, r0 + adds r3, r2, #0 + cmp r0, #0 + bge _080AB22C + adds r0, #3 +_080AB22C: + asrs r0, r0, #2 + ldrh r5, [r4, #0x2e] + adds r0, r0, r5 + strh r0, [r4, #0x2e] + movs r1, #0x32 + ldrsh r0, [r6, r1] + movs r5, #0x32 + ldrsh r1, [r4, r5] + subs r0, r0, r1 + muls r0, r3, r0 + cmp r0, #0 + bge _080AB246 + adds r0, #3 +_080AB246: + asrs r0, r0, #2 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + movs r3, #0x36 + ldrsh r0, [r6, r3] + movs r5, #0x36 + ldrsh r1, [r4, r5] + subs r0, r0, r1 + muls r0, r2, r0 + cmp r0, #0 + bge _080AB260 + adds r0, #3 +_080AB260: + asrs r0, r0, #2 + ldrh r1, [r4, #0x36] + adds r0, r0, r1 + strh r0, [r4, #0x36] + pop {r4, r5, r6, pc} + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/projectile1B/sub_080AB634.inc b/asm/non_matching/projectile1B/sub_080AB634.inc new file mode 100644 index 00000000..95c6b453 --- /dev/null +++ b/asm/non_matching/projectile1B/sub_080AB634.inc @@ -0,0 +1,49 @@ + .syntax unified + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r0, [r6, #0x50] + movs r5, #0 + adds r4, r0, #0 + adds r4, #0x20 +_080AB640: + ldr r1, [r4] + cmp r1, #0 + beq _080AB684 + adds r0, r6, #0 + bl sub_080177A0 + cmp r0, #0 + beq _080AB684 + ldr r1, [r4] + ldrb r0, [r1, #0xc] + cmp r0, #2 + bhi _080AB67A + movs r0, #3 + strb r0, [r1, #0xc] + ldr r1, [r4] + movs r0, #0x1e + strb r0, [r1, #0xe] + ldr r2, [r4] + ldrb r0, [r2, #0x18] + movs r3, #4 + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r0, r1 + strb r0, [r2, #0x18] + ldr r0, [r4] + movs r1, #0x45 + movs r2, #0 + bl CreateFx +_080AB67A: + adds r0, r6, #0 + bl DeleteEntity + movs r0, #1 + b _080AB68E +_080AB684: + adds r4, #4 + adds r5, #1 + cmp r5, #3 + bls _080AB640 + movs r0, #0 +_080AB68E: + pop {r4, r5, r6, pc} + .syntax divided diff --git a/asm/non_matching/projectile1C/sub_080AB758.inc b/asm/non_matching/projectile1C/sub_080AB758.inc new file mode 100644 index 00000000..6e3699a1 --- /dev/null +++ b/asm/non_matching/projectile1C/sub_080AB758.inc @@ -0,0 +1,123 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r5, r0, #0 + movs r6, #6 + movs r7, #0 + movs r4, #0 + movs r0, #0x32 + ldrsh r2, [r5, r0] + ldr r1, _080AB818 @ =gRoomControls + ldrh r0, [r1, #8] + adds r0, #0xd4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r1 + cmp r2, r0 + bhi _080AB7B4 + movs r3, #7 +_080AB77E: + adds r0, r4, #0 + ands r0, r3 + cmp r0, #7 + bne _080AB798 + adds r0, r5, #0 + movs r1, #4 + adds r2, r6, #0 + str r3, [sp] + bl sub_080AB844 + adds r6, #0x3e + adds r7, #0x3e + ldr r3, [sp] +_080AB798: + adds r4, #1 + ands r4, r3 + movs r1, #0x32 + ldrsh r0, [r5, r1] + adds r0, r0, r7 + lsls r1, r4, #3 + adds r2, r0, r1 + ldr r0, _080AB818 @ =gRoomControls + ldrh r0, [r0, #8] + adds r0, #0xd4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r2, r0 + bls _080AB77E +_080AB7B4: + movs r4, #0 + movs r1, #0x32 + ldrsh r0, [r5, r1] + adds r2, r0, r7 + mov r1, r8 + ldrh r0, [r1, #8] + adds r0, #0xd4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r2, r0 + bhi _080AB802 + movs r3, #3 +_080AB7CC: + adds r0, r4, #0 + ands r0, r3 + cmp r0, #3 + bne _080AB7E6 + adds r0, r5, #0 + movs r1, #3 + adds r2, r6, #0 + str r3, [sp] + bl sub_080AB844 + adds r6, #0x1e + adds r7, #0x1e + ldr r3, [sp] +_080AB7E6: + adds r4, #1 + ands r4, r3 + movs r1, #0x32 + ldrsh r0, [r5, r1] + adds r0, r0, r7 + lsls r1, r4, #3 + adds r2, r0, r1 + ldr r0, _080AB818 @ =gRoomControls + ldrh r0, [r0, #8] + adds r0, #0xd4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r2, r0 + bls _080AB7CC +_080AB802: + movs r0, #2 + ands r0, r4 + cmp r0, #0 + beq _080AB81C + adds r0, r5, #0 + movs r1, #2 + adds r2, r6, #0 + bl sub_080AB844 + adds r6, #0xe + b _080AB830 + .align 2, 0 +_080AB818: .4byte gRoomControls +_080AB81C: + movs r0, #1 + ands r4, r0 + cmp r4, #0 + beq _080AB830 + adds r0, r5, #0 + movs r1, #1 + adds r2, r6, #0 + bl sub_080AB844 + adds r6, #6 +_080AB830: + adds r0, r5, #0 + movs r1, #6 + adds r2, r6, #0 + bl sub_080AB844 + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/projectile1D/sub_080AB950.inc b/asm/non_matching/projectile1D/sub_080AB950.inc new file mode 100644 index 00000000..0712e394 --- /dev/null +++ b/asm/non_matching/projectile1D/sub_080AB950.inc @@ -0,0 +1,70 @@ + .syntax unified + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080AB99C + adds r0, r4, #0 + bl ProcessMovement + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + ldr r1, _080AB994 @ =gUnk_0812A6C4 + lsls r5, r0, #1 + adds r1, r5, r1 + ldrh r1, [r1] + ldrh r0, [r4, #0x2a] + ands r0, r1 + cmp r0, #0 + bne _080AB980 + ldrb r1, [r4, #0x15] + adds r0, r4, #0 + bl sub_080AB9FC + cmp r0, #0 + beq _080AB9D4 +_080AB980: + bl Random + ldr r2, _080AB998 @ =gUnk_0812A6BC + movs r1, #1 + ands r1, r0 + adds r1, r1, r5 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4, #0x15] + b _080AB9D4 + .align 2, 0 +_080AB994: .4byte gUnk_0812A6C4 +_080AB998: .4byte gUnk_0812A6BC +_080AB99C: + ldr r0, [r4, #0x50] + cmp r0, #0 + bne _080AB9A6 + bl DeleteThisEntity +_080AB9A6: + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080AB9B2 + bl DeleteThisEntity +_080AB9B2: + ldr r1, [r4, #0x54] + cmp r1, #0 + beq _080AB9D0 + ldr r0, [r1, #4] + cmp r0, #0 + beq _080AB9D0 + adds r0, r1, #0 + adds r0, #0x68 + ldrh r0, [r0] + strh r0, [r4, #0x2e] + adds r0, r1, #0 + adds r0, #0x6a + ldrh r0, [r0] + strh r0, [r4, #0x32] + b _080AB9D4 +_080AB9D0: + bl DeleteThisEntity +_080AB9D4: + adds r0, r4, #0 + bl GetNextFrame + pop {r4, r5, pc} + .syntax divided diff --git a/asm/non_matching/projectile1D/sub_080AB9FC.inc b/asm/non_matching/projectile1D/sub_080AB9FC.inc new file mode 100644 index 00000000..a8339867 --- /dev/null +++ b/asm/non_matching/projectile1D/sub_080AB9FC.inc @@ -0,0 +1,49 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r0, #0x38 + ldrb r0, [r0] + bl GetLayerByIndex + movs r1, #0x2e + ldrsh r3, [r5, r1] + ldr r2, _080ABA4C @ =gRoomControls + ldrh r1, [r2, #6] + subs r3, r3, r1 + asrs r3, r3, #4 + movs r6, #0x3f + ands r3, r6 + movs r7, #0x32 + ldrsh r1, [r5, r7] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + lsls r1, r1, #6 + orrs r3, r1 + ldr r1, _080ABA50 @ =gUnk_080B4488 + lsrs r4, r4, #3 + lsls r4, r4, #1 + adds r4, r4, r1 + movs r2, #0 + ldrsh r1, [r4, r2] + adds r3, r3, r1 + ldr r7, _080ABA54 @ =0x00002004 + adds r0, r0, r7 + adds r0, r0, r3 + ldrb r0, [r0] + cmp r0, #0x1f + bls _080ABA58 + cmp r0, #0x3f + bhi _080ABA58 + movs r0, #1 + b _080ABA5A + .align 2, 0 +_080ABA4C: .4byte gRoomControls +_080ABA50: .4byte gUnk_080B4488 +_080ABA54: .4byte 0x00002004 +_080ABA58: + movs r0, #0 +_080ABA5A: + pop {r4, r5, r6, r7, pc} + .syntax divided diff --git a/asm/non_matching/projectile1E/sub_080ABA74.inc b/asm/non_matching/projectile1E/sub_080ABA74.inc new file mode 100644 index 00000000..e0363105 --- /dev/null +++ b/asm/non_matching/projectile1E/sub_080ABA74.inc @@ -0,0 +1,59 @@ + .syntax unified + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + adds r0, #1 + strb r0, [r2, #0xc] + adds r0, r2, #0 + adds r0, #0x86 + ldrh r0, [r0] + strh r0, [r2, #0x24] + ldrh r1, [r2, #0x2e] + adds r0, r2, #0 + adds r0, #0x68 + strh r1, [r0] + ldrh r0, [r2, #0x32] + adds r1, r2, #0 + adds r1, #0x6a + strh r0, [r1] + adds r0, r2, #0 + adds r0, #0x84 + ldrh r1, [r0] + subs r0, #0x18 + strh r1, [r0] + ldrb r0, [r2, #0xa] + cmp r0, #6 + bhi _080ABAAA + movs r0, #0 + b _080ABAAC +_080ABAAA: + movs r0, #1 +_080ABAAC: + strb r0, [r2, #0xb] + ldr r0, _080ABAC8 @ =gUnk_0812A6D4 + ldrb r1, [r2, #0xa] + adds r0, r1, r0 + ldrb r3, [r0] + ldrb r0, [r2, #0xb] + cmp r0, #0 + bne _080ABACC + movs r0, #8 + strb r0, [r2, #0x15] + ldrh r0, [r2, #0x32] + adds r0, r0, r3 + strh r0, [r2, #0x32] + b _080ABAD6 + .align 2, 0 +_080ABAC8: .4byte gUnk_0812A6D4 +_080ABACC: + movs r0, #0x10 + strb r0, [r2, #0x15] + ldrh r0, [r2, #0x2e] + adds r0, r0, r3 + strh r0, [r2, #0x2e] +_080ABAD6: + adds r0, r2, #0 + bl InitializeAnimation + pop {pc} + .align 2, 0 + .syntax divided diff --git a/asm/projectile/projectile1E.s b/asm/non_matching/projectile1E/sub_080ABAE0.inc similarity index 51% rename from asm/projectile/projectile1E.s rename to asm/non_matching/projectile1E/sub_080ABAE0.inc index fa8e82f8..e90123ce 100644 --- a/asm/projectile/projectile1E.s +++ b/asm/non_matching/projectile1E/sub_080ABAE0.inc @@ -1,85 +1,4 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - .syntax unified - - .text - - thumb_func_start Projectile1E -Projectile1E: @ 0x080ABA5C - push {lr} - ldr r2, _080ABA70 @ =gUnk_0812A6CC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080ABA70: .4byte gUnk_0812A6CC - - thumb_func_start sub_080ABA74 -sub_080ABA74: @ 0x080ABA74 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - adds r0, #1 - strb r0, [r2, #0xc] - adds r0, r2, #0 - adds r0, #0x86 - ldrh r0, [r0] - strh r0, [r2, #0x24] - ldrh r1, [r2, #0x2e] - adds r0, r2, #0 - adds r0, #0x68 - strh r1, [r0] - ldrh r0, [r2, #0x32] - adds r1, r2, #0 - adds r1, #0x6a - strh r0, [r1] - adds r0, r2, #0 - adds r0, #0x84 - ldrh r1, [r0] - subs r0, #0x18 - strh r1, [r0] - ldrb r0, [r2, #0xa] - cmp r0, #6 - bhi _080ABAAA - movs r0, #0 - b _080ABAAC -_080ABAAA: - movs r0, #1 -_080ABAAC: - strb r0, [r2, #0xb] - ldr r0, _080ABAC8 @ =gUnk_0812A6D4 - ldrb r1, [r2, #0xa] - adds r0, r1, r0 - ldrb r3, [r0] - ldrb r0, [r2, #0xb] - cmp r0, #0 - bne _080ABACC - movs r0, #8 - strb r0, [r2, #0x15] - ldrh r0, [r2, #0x32] - adds r0, r0, r3 - strh r0, [r2, #0x32] - b _080ABAD6 - .align 2, 0 -_080ABAC8: .4byte gUnk_0812A6D4 -_080ABACC: - movs r0, #0x10 - strb r0, [r2, #0x15] - ldrh r0, [r2, #0x2e] - adds r0, r0, r3 - strh r0, [r2, #0x2e] -_080ABAD6: - adds r0, r2, #0 - bl InitializeAnimation - pop {pc} - .align 2, 0 - - thumb_func_start sub_080ABAE0 -sub_080ABAE0: @ 0x080ABAE0 push {r4, r5, r6, lr} adds r4, r0, #0 bl sub_080AF090 @@ -171,3 +90,4 @@ _080ABB84: adds r0, r4, #0 bl GetNextFrame pop {r4, r5, r6, pc} + .syntax divided diff --git a/asm/non_matching/projectile1F/sub_080ABBA8.inc b/asm/non_matching/projectile1F/sub_080ABBA8.inc new file mode 100644 index 00000000..2ed57bf3 --- /dev/null +++ b/asm/non_matching/projectile1F/sub_080ABBA8.inc @@ -0,0 +1,39 @@ + .syntax unified + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #1 + beq _080ABBC4 + cmp r0, #1 + bgt _080ABBDC + cmp r0, #0 + bne _080ABBDC + ldr r0, _080ABBC0 @ =gUnk_0812A7EC + b _080ABBC6 + .align 2, 0 +_080ABBC0: .4byte gUnk_0812A7EC +_080ABBC4: + ldr r0, _080ABBD8 @ =gUnk_0812A7F8 +_080ABBC6: + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _080ABBEC + .align 2, 0 +_080ABBD8: .4byte gUnk_0812A7F8 +_080ABBDC: + ldr r0, _080ABBF0 @ =gUnk_0812A800 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_080ABBEC: + pop {pc} + .align 2, 0 +_080ABBF0: .4byte gUnk_0812A800 + .syntax divided diff --git a/asm/non_matching/projectile1F/sub_080ABBF4.inc b/asm/non_matching/projectile1F/sub_080ABBF4.inc new file mode 100644 index 00000000..cedf0564 --- /dev/null +++ b/asm/non_matching/projectile1F/sub_080ABBF4.inc @@ -0,0 +1,50 @@ + .syntax unified + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080ABC52 + ldrb r0, [r4, #0xa] + cmp r0, #0 + blt _080ABC52 + cmp r0, #1 + ble _080ABC3E + cmp r0, #2 + bne _080ABC52 + movs r0, #0x3f + ands r0, r1 + cmp r0, #3 + beq _080ABC32 + cmp r0, #3 + bgt _080ABC24 + cmp r0, #0 + beq _080ABC2A + b _080ABC52 +_080ABC24: + cmp r0, #0x14 + beq _080ABC32 + b _080ABC52 +_080ABC2A: + movs r0, #4 + rsbs r0, r0, #0 + bl ModHealth +_080ABC32: + adds r0, r4, #0 + bl CreateDust + bl DeleteThisEntity + b _080ABC52 +_080ABC3E: + movs r0, #0x3f + ands r0, r1 + cmp r0, #0 + bne _080ABC52 + movs r0, #2 + rsbs r0, r0, #0 + bl ModHealth + bl DeleteThisEntity +_080ABC52: + pop {r4, pc} + .syntax divided diff --git a/asm/non_matching/projectile1F/sub_080ABE04.inc b/asm/non_matching/projectile1F/sub_080ABE04.inc new file mode 100644 index 00000000..825008f0 --- /dev/null +++ b/asm/non_matching/projectile1F/sub_080ABE04.inc @@ -0,0 +1,63 @@ + .syntax unified + push {r4, r5, lr} + adds r4, r0, #0 + bl Random + adds r5, r0, #0 + movs r0, #0xff + ands r5, r0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _080ABE48 @ =0xFFFF0000 + str r0, [r4, #0x20] + ldrh r0, [r4, #0x36] + subs r0, #0xa0 + strh r0, [r4, #0x36] + ldr r3, _080ABE4C @ =gRoomControls + ldrh r2, [r3, #6] + ldr r1, _080ABE50 @ =0x00007FF0 + adds r0, r1, #0 + ands r0, r2 + movs r2, #8 + orrs r0, r2 + strh r0, [r4, #0x2e] + ldrh r0, [r3, #8] + ands r1, r0 + orrs r1, r2 + strh r1, [r4, #0x32] + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r0, #0x10 + ands r0, r5 + cmp r0, #0 + beq _080ABE54 + adds r1, #0x10 + b _080ABE56 + .align 2, 0 +_080ABE48: .4byte 0xFFFF0000 +_080ABE4C: .4byte gRoomControls +_080ABE50: .4byte 0x00007FF0 +_080ABE54: + adds r1, #0xc0 +_080ABE56: + movs r0, #0xe0 + ands r0, r5 + lsrs r0, r0, #1 + adds r0, r1, r0 + strh r0, [r4, #0x2e] + movs r0, #0xf + ands r5, r0 + lsls r0, r5, #4 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_08004168 + adds r0, r4, #0 + movs r1, #0 + bl InitializeAnimation + ldr r0, _080ABE84 @ =0x0000012D + bl SoundReq + pop {r4, r5, pc} + .align 2, 0 +_080ABE84: .4byte 0x0000012D + .syntax divided diff --git a/asm/non_matching/projectile21/sub_080ABFEC.inc b/asm/non_matching/projectile21/sub_080ABFEC.inc new file mode 100644 index 00000000..cd4d966a --- /dev/null +++ b/asm/non_matching/projectile21/sub_080ABFEC.inc @@ -0,0 +1,69 @@ + .syntax unified + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + adds r1, #1 + bl InitializeAnimation + ldrb r1, [r4, #0xa] + cmp r1, #0 + beq _080AC030 + cmp r1, #1 + beq _080AC048 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + movs r0, #0xff + strb r0, [r4, #0xf] + ldr r1, _080AC028 @ =gUnk_0812A97C + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x44 + movs r0, #0x88 + strb r0, [r1] + ldr r0, _080AC02C @ =0x00000193 + b _080AC06A + .align 2, 0 +_080AC028: .4byte gUnk_0812A97C +_080AC02C: .4byte 0x00000193 +_080AC030: + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + movs r0, #7 + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x85 + movs r0, #0x18 + strb r0, [r1] + subs r1, #0x41 + movs r0, #0x88 + b _080AC058 +_080AC048: + strb r1, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x85 + movs r0, #0x18 +_080AC058: + strb r0, [r1] + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl CopyPositionAndSpriteOffset + ldrh r0, [r4, #0x36] + subs r0, #0x14 + strh r0, [r4, #0x36] + ldr r0, _080AC070 @ =0x00000149 +_080AC06A: + bl SoundReq + pop {r4, pc} + .align 2, 0 +_080AC070: .4byte 0x00000149 + .syntax divided diff --git a/asm/non_matching/projectile21/sub_080AC168.inc b/asm/non_matching/projectile21/sub_080AC168.inc new file mode 100644 index 00000000..6e5607e2 --- /dev/null +++ b/asm/non_matching/projectile21/sub_080AC168.inc @@ -0,0 +1,75 @@ + .syntax unified + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl GetNextFrame + ldr r0, [r4, #0x34] + ldr r1, _080AC1C0 @ =0xFFFF8000 + adds r0, r0, r1 + str r0, [r4, #0x34] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + bne _080AC1F8 + movs r0, #4 + strb r0, [r4, #0xc] + strb r0, [r4, #0xe] + bl Random + adds r5, r0, #0 + movs r0, #7 + ands r5, r0 + ldr r0, _080AC1C4 @ =gUnk_0812A982 + adds r0, r5, r0 + ldrb r0, [r0] + strb r0, [r4, #0xf] + ldr r1, _080AC1C8 @ =gPlayerEntity + adds r0, r4, #0 + bl GetFacingDirection + adds r1, r0, #0 + ldr r0, [r4, #0x50] + adds r0, #0x84 + ldrb r0, [r0] + cmp r0, #3 + bne _080AC1D0 + ldr r0, _080AC1CC @ =gUnk_0812A98A + adds r0, r5, r0 + ldrb r0, [r0] + subs r1, r1, r0 + strb r6, [r4, #0xb] + b _080AC1F2 + .align 2, 0 +_080AC1C0: .4byte 0xFFFF8000 +_080AC1C4: .4byte gUnk_0812A982 +_080AC1C8: .4byte gPlayerEntity +_080AC1CC: .4byte gUnk_0812A98A +_080AC1D0: + cmp r0, #2 + bne _080AC1E4 + ldr r0, _080AC1E0 @ =gUnk_0812A98A + adds r0, r5, r0 + ldrb r0, [r0] + subs r1, r1, r0 + movs r0, #1 + b _080AC1F0 + .align 2, 0 +_080AC1E0: .4byte gUnk_0812A98A +_080AC1E4: + ldr r0, _080AC1FC @ =gUnk_0812A98A + adds r0, r5, r0 + ldrb r0, [r0] + lsrs r0, r0, #1 + subs r1, r1, r0 + movs r0, #2 +_080AC1F0: + strb r0, [r4, #0xb] +_080AC1F2: + movs r0, #0x1f + ands r1, r0 + strb r1, [r4, #0x15] +_080AC1F8: + pop {r4, r5, r6, pc} + .align 2, 0 +_080AC1FC: .4byte gUnk_0812A98A + .syntax divided diff --git a/asm/non_matching/projectile21/sub_080AC200.inc b/asm/non_matching/projectile21/sub_080AC200.inc new file mode 100644 index 00000000..6c1b2b1b --- /dev/null +++ b/asm/non_matching/projectile21/sub_080AC200.inc @@ -0,0 +1,62 @@ + .syntax unified + push {r4, r5, lr} + adds r4, r0, #0 + bl GetNextFrame + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r5, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AC270 + movs r0, #0x10 + strb r0, [r4, #0xe] + movs r0, #0x21 + bl sub_080A7EE0 + adds r1, r0, #0 + cmp r1, #0 + beq _080AC23C + movs r0, #2 + strb r0, [r1, #0xa] + ldrb r0, [r4, #0xb] + strb r0, [r1, #0xb] + ldrb r0, [r4, #0x15] + strb r0, [r1, #0x15] + ldr r0, [r4, #0x50] + str r0, [r1, #0x50] + adds r0, r4, #0 + bl CopyPosition +_080AC23C: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r5 + cmp r0, #0 + bne _080AC24C + bl DeleteThisEntity +_080AC24C: + ldr r0, [r4, #0x50] + adds r0, #0x84 + ldrb r0, [r0] + cmp r0, #3 + bne _080AC25C + ldrb r0, [r4, #0x15] + adds r0, #3 + b _080AC26A +_080AC25C: + cmp r0, #2 + bne _080AC266 + ldrb r0, [r4, #0x15] + adds r0, #3 + b _080AC26A +_080AC266: + ldrb r0, [r4, #0x15] + adds r0, #2 +_080AC26A: + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] +_080AC270: + pop {r4, r5, pc} + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/projectile22/sub_080AC388.inc b/asm/non_matching/projectile22/sub_080AC388.inc new file mode 100644 index 00000000..91a15698 --- /dev/null +++ b/asm/non_matching/projectile22/sub_080AC388.inc @@ -0,0 +1,128 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r5, r0, #0 + ldr r1, _080AC3E4 @ =gUnk_0812A9B8 + ldrb r0, [r5, #0xa] + adds r0, r0, r1 + ldrb r3, [r0] + ldr r0, [r5, #0x50] + mov sl, r0 + ldrb r0, [r0, #0x14] + movs r1, #0x80 + mov sb, r1 + mov r1, sb + eors r1, r0 + adds r6, r5, #0 + adds r6, #0x7c + ldrh r4, [r6] + lsrs r0, r4, #8 + subs r1, r1, r0 + adds r2, r5, #0 + adds r2, #0x7a + ldrh r7, [r2] + mov ip, r7 + movs r7, #0 + ldrsh r0, [r2, r7] + cmp r0, #0 + bge _080AC404 + subs r0, r1, r3 + movs r7, #0xff + mov r8, r7 + ands r0, r7 + cmp r0, #0x7f + bhi _080AC3E8 + movs r1, #0 + ldrsh r0, [r2, r1] + rsbs r0, r0, #0 + strh r0, [r2] + mov r2, sl + ldrb r0, [r2, #0x14] + mov r7, sb + eors r0, r7 + subs r0, r0, r3 + b _080AC422 + .align 2, 0 +_080AC3E4: .4byte gUnk_0812A9B8 +_080AC3E8: + mov r2, ip + adds r0, r4, r2 + strh r0, [r6] + adds r0, r1, r3 + mov r7, r8 + ands r0, r7 + cmp r0, #0x80 + bls _080AC45A + mov r1, sl + ldrb r0, [r1, #0x14] + mov r2, sb + eors r0, r2 + adds r0, r0, r3 + b _080AC44E +_080AC404: + adds r0, r1, r3 + movs r7, #0xff + mov r8, r7 + ands r0, r7 + cmp r0, #0x80 + bls _080AC432 + movs r1, #0 + ldrsh r0, [r2, r1] + rsbs r0, r0, #0 + strh r0, [r2] + mov r2, sl + ldrb r0, [r2, #0x14] + mov r7, sb + eors r0, r7 + adds r0, r0, r3 +_080AC422: + movs r1, #0xff + ands r0, r1 + lsls r0, r0, #8 + strh r0, [r6] + adds r0, r5, #0 + bl sub_080AC884 + b _080AC45A +_080AC432: + mov r2, ip + adds r0, r4, r2 + strh r0, [r6] + subs r0, r1, r3 + mov r7, r8 + ands r0, r7 + subs r0, #1 + cmp r0, #0x7e + bhi _080AC45A + mov r1, sl + ldrb r0, [r1, #0x14] + mov r2, sb + eors r0, r2 + subs r0, r0, r3 +_080AC44E: + movs r1, #0xff + ands r0, r1 + lsls r0, r0, #8 + movs r1, #0x80 + orrs r0, r1 + strh r0, [r6] +_080AC45A: + adds r0, r5, #0 + adds r0, #0x7c + ldrh r0, [r0] + lsrs r0, r0, #8 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_080AC6F0 + adds r0, r5, #0 + bl sub_080AC760 + adds r0, r5, #0 + bl sub_080AC7C4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .syntax divided diff --git a/asm/non_matching/projectile22/sub_080AC5E4.inc b/asm/non_matching/projectile22/sub_080AC5E4.inc new file mode 100644 index 00000000..7189007f --- /dev/null +++ b/asm/non_matching/projectile22/sub_080AC5E4.inc @@ -0,0 +1,134 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + ldrb r4, [r5, #0xa] + cmp r4, #0 + bne _080AC668 + ldr r0, _080AC664 @ =gEntCount + ldrb r0, [r0] + cmp r0, #0x43 + bhi _080AC670 + adds r1, r5, #0 + adds r1, #0x79 + movs r0, #0x11 + strb r0, [r1] + movs r0, #0x22 + bl sub_080A7EE0 + adds r6, r0, #0 + ldrb r0, [r5, #0xa] + strb r0, [r6, #0xa] + movs r0, #1 + strb r0, [r6, #0xb] + ldr r0, [r5, #0x50] + str r0, [r6, #0x50] + adds r1, r6, #0 + adds r1, #0x79 + movs r0, #0x12 + strb r0, [r1] + str r6, [r5, #0x54] + movs r0, #0x22 + bl sub_080A7EE0 + adds r7, r0, #0 + ldrb r0, [r5, #0xa] + strb r0, [r7, #0xa] + movs r0, #2 + strb r0, [r7, #0xb] + ldr r0, [r5, #0x50] + str r0, [r7, #0x50] + adds r0, r7, #0 + adds r0, #0x79 + movs r1, #0x14 + mov r8, r1 + mov r1, r8 + strb r1, [r0] + str r7, [r6, #0x54] + movs r0, #0x22 + bl sub_080A7EE0 + ldrb r1, [r5, #0xa] + strb r1, [r0, #0xa] + movs r1, #3 + strb r1, [r0, #0xb] + ldr r1, [r5, #0x50] + str r1, [r0, #0x50] + str r4, [r0, #0x54] + adds r1, r0, #0 + adds r1, #0x79 + strb r4, [r1] + str r0, [r7, #0x54] + b _080AC6C8 + .align 2, 0 +_080AC664: .4byte gEntCount +_080AC668: + ldr r0, _080AC674 @ =gEntCount + ldrb r0, [r0] + cmp r0, #0x44 + bls _080AC678 +_080AC670: + movs r0, #0 + b _080AC6E8 + .align 2, 0 +_080AC674: .4byte gEntCount +_080AC678: + adds r1, r5, #0 + adds r1, #0x79 + movs r0, #0 + mov sb, r0 + movs r0, #0xf + strb r0, [r1] + movs r0, #0x22 + bl sub_080A7EE0 + adds r6, r0, #0 + ldrb r0, [r5, #0xa] + strb r0, [r6, #0xa] + movs r0, #1 + strb r0, [r6, #0xb] + ldr r0, [r5, #0x50] + str r0, [r6, #0x50] + adds r0, r6, #0 + adds r0, #0x79 + movs r1, #0x10 + mov r8, r1 + mov r1, r8 + strb r1, [r0] + str r6, [r5, #0x54] + movs r0, #0x22 + bl sub_080A7EE0 + adds r7, r0, #0 + ldrb r0, [r5, #0xa] + strb r0, [r7, #0xa] + movs r0, #2 + strb r0, [r7, #0xb] + ldr r0, [r5, #0x50] + str r0, [r7, #0x50] + mov r0, sb + str r0, [r7, #0x54] + adds r1, r7, #0 + adds r1, #0x79 + movs r0, #0x20 + strb r0, [r1] + str r7, [r6, #0x54] +_080AC6C8: + movs r0, #0x22 + bl sub_080A7EE0 + adds r6, r0, #0 + ldrb r0, [r5, #0xa] + strb r0, [r6, #0xa] + movs r0, #4 + strb r0, [r6, #0xb] + ldr r0, [r5, #0x50] + str r0, [r6, #0x50] + str r5, [r6, #0x54] + adds r0, r6, #0 + adds r0, #0x79 + mov r1, r8 + strb r1, [r0] + movs r0, #1 +_080AC6E8: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .syntax divided diff --git a/asm/non_matching/projectile22/sub_080AC6F0.inc b/asm/non_matching/projectile22/sub_080AC6F0.inc new file mode 100644 index 00000000..74864ad8 --- /dev/null +++ b/asm/non_matching/projectile22/sub_080AC6F0.inc @@ -0,0 +1,63 @@ + .syntax unified + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + movs r2, #0x1f + ands r2, r0 + lsrs r0, r0, #5 + lsls r1, r0, #1 + adds r3, r1, r0 + ldr r1, _080AC724 @ =gUnk_0812A9C0 + ldrb r0, [r4, #0x14] + adds r0, r0, r1 + ldrb r0, [r0] + subs r0, r0, r3 + adds r5, r1, #0 + cmp r0, #3 + bhi _080AC73A + cmp r0, #1 + beq _080AC72E + cmp r0, #1 + blo _080AC728 + cmp r0, #2 + beq _080AC732 + cmp r2, #0x19 + bhi _080AC75C + b _080AC73A + .align 2, 0 +_080AC724: .4byte gUnk_0812A9C0 +_080AC728: + cmp r2, #6 + bls _080AC75C + b _080AC73A +_080AC72E: + subs r0, r2, #5 + b _080AC736 +_080AC732: + adds r0, r2, #0 + subs r0, #0xf +_080AC736: + cmp r0, #0xc + bls _080AC75C +_080AC73A: + adds r0, r3, #3 + cmp r2, #0x1a + bhi _080AC74E + adds r0, r3, #2 + cmp r2, #0x10 + bhi _080AC74E + adds r0, r3, #0 + cmp r2, #5 + bls _080AC74E + adds r0, #1 +_080AC74E: + movs r1, #0x18 + bl __modsi3 + strb r0, [r4, #0x14] + adds r0, r0, r5 + ldrb r0, [r0] + strb r0, [r4, #0x1e] +_080AC75C: + pop {r4, r5, pc} + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/projectile22/sub_080AC760.inc b/asm/non_matching/projectile22/sub_080AC760.inc new file mode 100644 index 00000000..36c76ada --- /dev/null +++ b/asm/non_matching/projectile22/sub_080AC760.inc @@ -0,0 +1,59 @@ + .syntax unified + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r4, [r6, #0x54] + ldrb r0, [r4, #0x15] + ldrb r3, [r6, #0x15] + subs r2, r0, r3 + movs r1, #0xff + ands r2, r1 + adds r0, r2, #0 + adds r0, #8 + ands r0, r1 + cmp r0, #0x10 + ble _080AC78A + cmp r2, #0x80 + ble _080AC784 + adds r0, r3, #0 + subs r0, #8 + b _080AC788 +_080AC784: + adds r0, r3, #0 + adds r0, #8 +_080AC788: + strb r0, [r4, #0x15] +_080AC78A: + ldr r5, [r4, #0x54] + ldr r0, [r5, #0x54] + cmp r0, #0 + bne _080AC79C + ldr r0, [r6, #0x50] + ldrb r0, [r0, #0x14] + movs r1, #0x80 + eors r0, r1 + b _080AC7BE +_080AC79C: + ldrb r0, [r5, #0x15] + ldrb r3, [r4, #0x15] + subs r2, r0, r3 + movs r1, #0xff + ands r2, r1 + adds r0, r2, #0 + adds r0, #8 + ands r0, r1 + cmp r0, #0x10 + ble _080AC7C0 + cmp r2, #0x80 + ble _080AC7BA + adds r0, r3, #0 + subs r0, #8 + b _080AC7BE +_080AC7BA: + adds r0, r3, #0 + adds r0, #8 +_080AC7BE: + strb r0, [r5, #0x15] +_080AC7C0: + pop {r4, r5, r6, pc} + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/projectile22/sub_080AC7C4.inc b/asm/non_matching/projectile22/sub_080AC7C4.inc new file mode 100644 index 00000000..5ab1b5da --- /dev/null +++ b/asm/non_matching/projectile22/sub_080AC7C4.inc @@ -0,0 +1,95 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r4, r0, #0 + ldr r0, [r4, #0x54] + mov r8, r0 + ldr r7, [r0, #0x54] + ldr r5, [r7, #0x54] + cmp r5, #0 + beq _080AC7E4 + ldr r0, [r4, #0x50] + adds r1, r5, #0 + bl CopyPosition + b _080AC7E6 +_080AC7E4: + ldr r5, [r4, #0x50] +_080AC7E6: + adds r0, r7, #0 + adds r0, #0x79 + ldrb r2, [r0] + lsls r2, r2, #8 + ldr r3, _080AC880 @ =gSineTable + mov sb, r3 + ldrb r1, [r7, #0x15] + lsls r0, r1, #1 + add r0, sb + movs r3, #0 + ldrsh r0, [r0, r3] + adds r6, r0, #0 + muls r6, r2, r6 + adds r1, #0x40 + lsls r1, r1, #1 + add r1, sb + movs r3, #0 + ldrsh r0, [r1, r3] + muls r0, r2, r0 + rsbs r3, r0, #0 + adds r0, r5, #0 + adds r1, r7, #0 + adds r2, r6, #0 + bl PositionRelative + mov r0, r8 + adds r0, #0x79 + ldrb r2, [r0] + lsls r2, r2, #8 + mov r0, r8 + ldrb r1, [r0, #0x15] + lsls r0, r1, #1 + add r0, sb + movs r3, #0 + ldrsh r0, [r0, r3] + adds r6, r0, #0 + muls r6, r2, r6 + adds r1, #0x40 + lsls r1, r1, #1 + add r1, sb + movs r3, #0 + ldrsh r0, [r1, r3] + muls r0, r2, r0 + rsbs r3, r0, #0 + adds r0, r7, #0 + mov r1, r8 + adds r2, r6, #0 + bl PositionRelative + adds r0, r4, #0 + adds r0, #0x79 + ldrb r2, [r0] + lsls r2, r2, #8 + ldrb r1, [r4, #0x15] + lsls r0, r1, #1 + add r0, sb + movs r3, #0 + ldrsh r0, [r0, r3] + adds r6, r0, #0 + muls r6, r2, r6 + adds r1, #0x40 + lsls r1, r1, #1 + add r1, sb + movs r3, #0 + ldrsh r0, [r1, r3] + muls r0, r2, r0 + rsbs r3, r0, #0 + mov r0, r8 + adds r1, r4, #0 + adds r2, r6, #0 + bl PositionRelative + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080AC880: .4byte gSineTable + .syntax divided diff --git a/asm/non_matching/projectile23/sub_080AC8DC.inc b/asm/non_matching/projectile23/sub_080AC8DC.inc new file mode 100644 index 00000000..e1bc226d --- /dev/null +++ b/asm/non_matching/projectile23/sub_080AC8DC.inc @@ -0,0 +1,40 @@ + .syntax unified + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0 + blt _080AC8FE + cmp r1, #3 + ble _080AC8F8 + cmp r1, #0x1f + bgt _080AC8FE + cmp r1, #0x1e + blt _080AC8FE +_080AC8F8: + bl DeleteThisEntity + b _080AC920 +_080AC8FE: + ldrb r0, [r4, #0xc] + cmp r0, #3 + beq _080AC920 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrh r0, [r4, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #1 + bl InitializeAnimation +_080AC920: + adds r0, r4, #0 + bl sub_080AC8C4 + pop {r4, pc} + .syntax divided diff --git a/asm/non_matching/projectile24/sub_080ACA68.inc b/asm/non_matching/projectile24/sub_080ACA68.inc new file mode 100644 index 00000000..451a5e38 --- /dev/null +++ b/asm/non_matching/projectile24/sub_080ACA68.inc @@ -0,0 +1,53 @@ + .syntax unified + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0xc + bgt _080ACA82 + cmp r1, #0xa + bge _080ACA86 + cmp r1, #6 + beq _080ACA86 + b _080ACAC0 +_080ACA82: + cmp r1, #0x1a + bne _080ACAC0 +_080ACA86: + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r1, #0 + ldrh r1, [r4, #0x24] + adds r0, r0, r1 + strh r0, [r4, #0x24] + ldr r0, [r4, #0x4c] + str r0, [r4, #0x54] + adds r0, r4, #0 + bl sub_080ACB40 + cmp r0, #0 + beq _080ACAB0 + movs r0, #0 + b _080ACAB6 +_080ACAB0: + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] +_080ACAB6: + strb r0, [r4, #0x15] + movs r0, #0xd8 + bl SoundReq + b _080ACAC4 +_080ACAC0: + bl DeleteThisEntity +_080ACAC4: + pop {r4, pc} + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/projectile24/sub_080ACB40.inc b/asm/non_matching/projectile24/sub_080ACB40.inc new file mode 100644 index 00000000..fde2c262 --- /dev/null +++ b/asm/non_matching/projectile24/sub_080ACB40.inc @@ -0,0 +1,48 @@ + .syntax unified + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x50] + ldr r1, [r0, #0x50] + ldr r3, [r2, #0x54] + ldr r0, [r1, #0x64] + ldr r0, [r0, #0x1c] + ldr r0, [r0, #0x54] + cmp r0, r2 + beq _080ACB5A + ldr r0, [r0, #0x54] + cmp r3, r0 + beq _080ACB86 +_080ACB5A: + ldr r1, [r1, #0x64] + ldr r0, [r1, #0x20] + ldr r0, [r0, #0x54] + cmp r0, r2 + beq _080ACB6A + ldr r0, [r0, #0x54] + cmp r3, r0 + beq _080ACB86 +_080ACB6A: + ldr r0, [r1, #0x24] + ldr r0, [r0, #0x54] + cmp r0, r2 + beq _080ACB78 + ldr r0, [r0, #0x54] + cmp r3, r0 + beq _080ACB86 +_080ACB78: + ldr r0, [r1, #0x28] + ldr r0, [r0, #0x54] + cmp r0, r2 + beq _080ACB8A + ldr r0, [r0, #0x54] + cmp r3, r0 + bne _080ACB8A +_080ACB86: + movs r0, #0 + b _080ACB8C +_080ACB8A: + movs r0, #1 +_080ACB8C: + pop {pc} + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/projectile3/sub_080A83B4.inc b/asm/non_matching/projectile3/sub_080A83B4.inc new file mode 100644 index 00000000..e4590708 --- /dev/null +++ b/asm/non_matching/projectile3/sub_080A83B4.inc @@ -0,0 +1,73 @@ + .syntax unified + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + cmp r5, #0 + bne _080A83C2 + bl DeleteThisEntity +_080A83C2: + ldr r0, [r5, #4] + cmp r0, #0 + bne _080A83CC + bl DeleteThisEntity +_080A83CC: + adds r0, r5, #0 + adds r0, #0x5a + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x18 + ldr r1, _080A8424 @ =gUnk_0812966C + adds r2, r0, r1 + ldr r1, [r4, #0x48] + ldrb r0, [r2] + strb r0, [r1] + adds r2, #1 + adds r0, r5, #0 + adds r0, #0x5b + ldrb r0, [r0] + cmp r0, #0x40 + bne _080A83F4 + ldr r1, [r4, #0x48] + ldrb r0, [r1] + rsbs r0, r0, #0 + strb r0, [r1] +_080A83F4: + ldr r1, [r4, #0x48] + ldrb r0, [r2] + strb r0, [r1, #1] + adds r2, #1 + ldr r1, [r4, #0x48] + ldrb r0, [r2] + strb r0, [r1, #6] + ldr r1, [r4, #0x48] + ldrb r0, [r2, #1] + strb r0, [r1, #7] + adds r0, r5, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _080A8428 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A8438 + movs r0, #0x7f + ands r0, r1 + b _080A8436 + .align 2, 0 +_080A8424: .4byte gUnk_0812966C +_080A8428: + ldrb r1, [r4, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080A8438 + movs r0, #0x80 + orrs r0, r1 +_080A8436: + strb r0, [r4, #0x10] +_080A8438: + pop {r4, r5, pc} + .align 2, 0 + .syntax divided diff --git a/asm/projectile/projectile0.s b/asm/projectile/projectile0.s deleted file mode 100644 index 312f8e67..00000000 --- a/asm/projectile/projectile0.s +++ /dev/null @@ -1,176 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Projectile0 -Projectile0: @ 0x080A7F00 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080A7F26 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_080A7F80 - ldrb r0, [r4, #0xa] - cmp r0, #3 - bne _080A7F26 - ldr r0, [r4, #0x50] - ldrb r1, [r0, #0x14] - adds r1, #0x18 - adds r0, r4, #0 - bl InitAnimationForceUpdate -_080A7F26: - ldr r0, [r4, #0x50] - cmp r0, #0 - beq _080A7F34 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080A7F38 -_080A7F34: - bl DeleteThisEntity -_080A7F38: - adds r2, r4, #0 - adds r2, #0x41 - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A7F56 - ldr r1, [r4, #0x4c] - ldr r0, _080A7F7C @ =gPlayerEntity - cmp r1, r0 - bne _080A7F56 - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0xd3 - strb r0, [r1] -_080A7F56: - movs r0, #0 - strb r0, [r2] - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl CopyPositionAndSpriteOffset - adds r0, r4, #0 - bl sub_080A7F9C - ldrb r0, [r4, #0xa] - cmp r0, #3 - bne _080A7F7A - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl UpdateAnimationSingleFrame -_080A7F7A: - pop {r4, pc} - .align 2, 0 -_080A7F7C: .4byte gPlayerEntity - - thumb_func_start sub_080A7F80 -sub_080A7F80: @ 0x080A7F80 - ldr r3, _080A7F98 @ =gUnk_081293B8 - ldr r2, [r0, #0x50] - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - ldrb r2, [r2, #0xa] - adds r1, r1, r2 - adds r1, r1, r3 - ldrb r1, [r1] - adds r0, #0x3f - strb r1, [r0] - bx lr - .align 2, 0 -_080A7F98: .4byte gUnk_081293B8 - - thumb_func_start sub_080A7F9C -sub_080A7F9C: @ 0x080A7F9C - push {lr} - ldr r2, _080A7FB0 @ =gUnk_081293CC - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A7FB0: .4byte gUnk_081293CC - - thumb_func_start sub_080A7FB4 -sub_080A7FB4: @ 0x080A7FB4 - ldr r1, [r0, #0x50] - ldr r3, _080A7FD4 @ =gUnk_081293E0 - ldrb r2, [r1, #0x14] - lsls r2, r2, #2 - adds r2, r2, r3 - adds r1, #0x5a - ldrb r3, [r1] - movs r1, #0xf - ands r1, r3 - ldr r2, [r2] - lsls r1, r1, #2 - adds r1, r1, r2 - subs r1, #4 - ldr r1, [r1] - str r1, [r0, #0x48] - bx lr - .align 2, 0 -_080A7FD4: .4byte gUnk_081293E0 - - thumb_func_start sub_080A7FD8 -sub_080A7FD8: @ 0x080A7FD8 - ldr r1, [r0, #0x50] - ldr r2, _080A7FE8 @ =gUnk_081293F0 - ldrb r1, [r1, #0x14] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - str r1, [r0, #0x48] - bx lr - .align 2, 0 -_080A7FE8: .4byte gUnk_081293F0 - - thumb_func_start sub_080A7FEC -sub_080A7FEC: @ 0x080A7FEC - push {lr} - adds r3, r0, #0 - ldr r2, [r3, #0x50] - adds r0, r2, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080A8008 - ldr r0, _080A8004 @ =gUnk_08129410 - b _080A800A - .align 2, 0 -_080A8004: .4byte gUnk_08129410 -_080A8008: - ldr r0, _080A8018 @ =gUnk_08129400 -_080A800A: - ldrb r1, [r2, #0x14] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [r3, #0x48] - pop {pc} - .align 2, 0 -_080A8018: .4byte gUnk_08129400 - - thumb_func_start sub_080A801C -sub_080A801C: @ 0x080A801C - ldr r1, [r0, #0x50] - ldr r2, _080A802C @ =gUnk_08129420 - ldrb r1, [r1, #0x14] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - str r1, [r0, #0x48] - bx lr - .align 2, 0 -_080A802C: .4byte gUnk_08129420 diff --git a/asm/projectile/projectile1.s b/asm/projectile/projectile1.s deleted file mode 100644 index 0b759282..00000000 --- a/asm/projectile/projectile1.s +++ /dev/null @@ -1,192 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Projectile1 -Projectile1: @ 0x080A8030 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A8048 @ =gUnk_081295D0 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A8048: .4byte gUnk_081295D0 - - thumb_func_start sub_080A804C -sub_080A804C: @ 0x080A804C - push {lr} - ldr r2, _080A8060 @ =gUnk_081295E4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A8060: .4byte gUnk_081295E4 - - thumb_func_start sub_080A8064 -sub_080A8064: @ 0x080A8064 - push {lr} - adds r1, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x80 - bne _080A8078 - adds r0, r1, #0 - bl DeleteEntity - b _080A8086 -_080A8078: - adds r0, r1, #0 - adds r0, #0x3e - ldrb r0, [r0] - strb r0, [r1, #0x15] - adds r0, r1, #0 - bl sub_080A8178 -_080A8086: - pop {pc} - - thumb_func_start sub_080A8088 -sub_080A8088: @ 0x080A8088 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0x30 - strb r1, [r0, #0xe] - movs r1, #0xa0 - lsls r1, r1, #8 - str r1, [r0, #0x20] - movs r1, #0 - bl InitializeAnimation - pop {pc} - - thumb_func_start sub_080A80A0 -sub_080A80A0: @ 0x080A80A0 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080AF090 - cmp r0, #0 - beq _080A80DC - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080A80C4 - adds r0, r4, #0 - bl DeleteEntity - b _080A80F0 -_080A80C4: - adds r0, r4, #0 - bl sub_08016AD2 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A80F0 - movs r0, #3 - strb r0, [r4, #0xc] - b _080A80F0 -_080A80DC: - ldrh r1, [r4, #0x2a] - adds r0, r4, #0 - bl sub_0800417E - adds r0, r4, #0 - bl sub_080A8178 - adds r0, r4, #0 - bl sub_08016AD2 -_080A80F0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A80F4 -sub_080A80F4: @ 0x080A80F4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl GetNextFrame - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _080A8116 - adds r0, r4, #0 - bl DeleteEntity -_080A8116: - pop {r4, pc} - - thumb_func_start sub_080A8118 -sub_080A8118: @ 0x080A8118 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080AF090 - movs r1, #0xa0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #0 - beq _080A813A - cmp r0, #1 - beq _080A8142 - b _080A815A -_080A813A: - adds r0, r4, #0 - bl DeleteEntity - b _080A8176 -_080A8142: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #0x90 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_0800442E - cmp r0, #0 - bne _080A8176 -_080A815A: - ldrb r1, [r4, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080A8176 - ldrb r2, [r4, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - subs r0, #5 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] -_080A8176: - pop {r4, pc} - - thumb_func_start sub_080A8178 -sub_080A8178: @ 0x080A8178 - movs r1, #2 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - movs r1, #0x40 - strh r1, [r0, #0x24] - movs r1, #0xa0 - lsls r1, r1, #9 - str r1, [r0, #0x20] - bx lr diff --git a/asm/projectile/projectile10.s b/asm/projectile/projectile10.s deleted file mode 100644 index e280921b..00000000 --- a/asm/projectile/projectile10.s +++ /dev/null @@ -1,401 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Projectile10 -Projectile10: @ 0x080A9A00 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A9A18 @ =gUnk_08129AE0 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A9A18: .4byte gUnk_08129AE0 - - thumb_func_start sub_080A9A1C -sub_080A9A1C: @ 0x080A9A1C - push {lr} - ldr r2, _080A9A30 @ =gUnk_08129AF8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A9A30: .4byte gUnk_08129AF8 - - thumb_func_start sub_080A9A34 -sub_080A9A34: @ 0x080A9A34 - push {lr} - adds r2, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x9d - bne _080A9A62 - movs r0, #3 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] - movs r0, #0xa8 - lsls r0, r0, #0xa - str r0, [r2, #0x20] - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r2] -_080A9A62: - pop {pc} - - thumb_func_start sub_080A9A64 -sub_080A9A64: @ 0x080A9A64 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #2 - bhi _080A9A7E - adds r0, r4, #0 - bl sub_0806F520 - cmp r0, #0 - bne _080A9A7E - adds r0, r4, #0 - bl sub_080A9BA8 -_080A9A7E: - ldr r0, _080A9A90 @ =gUnk_08129B08 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080A9A90: .4byte gUnk_08129B08 - - thumb_func_start sub_080A9A94 -sub_080A9A94: @ 0x080A9A94 - movs r1, #2 - strb r1, [r0, #0xd] - ldr r1, _080A9AA0 @ =0x0000FFFE - strh r1, [r0, #0x36] - bx lr - .align 2, 0 -_080A9AA0: .4byte 0x0000FFFE - - thumb_func_start sub_080A9AA4 -sub_080A9AA4: @ 0x080A9AA4 - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_080A9AAC -sub_080A9AAC: @ 0x080A9AAC - push {lr} - bl sub_0806F3E4 - pop {pc} - - thumb_func_start sub_080A9AB4 -sub_080A9AB4: @ 0x080A9AB4 - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - bx lr - .align 2, 0 - - thumb_func_start nullsub_128 -nullsub_128: @ 0x080A9AC0 - bx lr - .align 2, 0 - - thumb_func_start sub_080A9AC4 -sub_080A9AC4: @ 0x080A9AC4 - push {lr} - bl sub_080A9BA8 - pop {pc} - - thumb_func_start sub_080A9ACC -sub_080A9ACC: @ 0x080A9ACC - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xb] - cmp r0, #1 - beq _080A9AE0 - cmp r0, #2 - beq _080A9AEE - movs r0, #1 - strb r0, [r2, #0xc] - b _080A9B0A -_080A9AE0: - movs r0, #2 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - b _080A9B0A -_080A9AEE: - movs r0, #3 - strb r0, [r2, #0xc] - movs r0, #0xa8 - lsls r0, r0, #0xa - str r0, [r2, #0x20] - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r3] -_080A9B0A: - movs r0, #2 - strb r0, [r2, #0x1c] - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _080A9B1E - adds r0, r2, #0 - movs r1, #5 - bl InitializeAnimation - b _080A9B22 -_080A9B1E: - movs r0, #0 - strb r0, [r2, #0x1e] -_080A9B22: - pop {pc} - - thumb_func_start sub_080A9B24 -sub_080A9B24: @ 0x080A9B24 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _080A9B36 - adds r0, r4, #0 - bl sub_080A9BA8 -_080A9B36: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #0xb - bne _080A9B46 - adds r0, r4, #0 - bl sub_080A9BD0 - b _080A9B50 -_080A9B46: - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_080A9C34 -_080A9B50: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A9B54 -sub_080A9B54: @ 0x080A9B54 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _080A9B66 - adds r0, r4, #0 - bl sub_080A9BA8 -_080A9B66: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #9 - bne _080A9B76 - adds r0, r4, #0 - bl sub_080A9C34 - b _080A9B7C -_080A9B76: - adds r0, r4, #0 - bl sub_080A9C50 -_080A9B7C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A9B80 -sub_080A9B80: @ 0x080A9B80 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x20] - cmp r0, #0 - bge _080A9B92 - ldrb r0, [r4, #0x18] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x18] -_080A9B92: - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _080A9BA6 - adds r0, r4, #0 - bl sub_080A9BA8 -_080A9BA6: - pop {r4, pc} - - thumb_func_start sub_080A9BA8 -sub_080A9BA8: @ 0x080A9BA8 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xa] - cmp r0, #0 - bne _080A9BBE - adds r0, r1, #0 - movs r1, #5 - movs r2, #0 - bl CreateFx - b _080A9BC8 -_080A9BBE: - adds r0, r1, #0 - movs r1, #0x3c - movs r2, #0 - bl CreateFx -_080A9BC8: - bl DeleteThisEntity - pop {pc} - .align 2, 0 - - thumb_func_start sub_080A9BD0 -sub_080A9BD0: @ 0x080A9BD0 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r1, [r5, #0x50] - ldrb r0, [r1, #0x14] - cmp r0, #1 - beq _080A9BF8 - cmp r0, #1 - bgt _080A9BE6 - cmp r0, #0 - beq _080A9BF0 - b _080A9C06 -_080A9BE6: - cmp r0, #2 - beq _080A9C00 - cmp r0, #3 - beq _080A9BF8 - b _080A9C06 -_080A9BF0: - ldrb r0, [r1, #0x1e] - adds r2, r0, #0 - subs r2, #0x39 - b _080A9C06 -_080A9BF8: - ldrb r0, [r1, #0x1e] - adds r2, r0, #0 - subs r2, #0x3d - b _080A9C06 -_080A9C00: - ldrb r0, [r1, #0x1e] - adds r2, r0, #0 - subs r2, #0x41 -_080A9C06: - ldrb r0, [r1, #0x14] - lsls r0, r0, #2 - adds r0, r2, r0 - lsls r4, r0, #1 - adds r4, r4, r0 - ldr r0, _080A9C30 @ =gUnk_08129B20 - adds r4, r4, r0 - movs r2, #0 - ldrsb r2, [r4, r2] - movs r3, #1 - ldrsb r3, [r4, r3] - adds r0, r1, #0 - adds r1, r5, #0 - bl sub_0806FA90 - movs r0, #2 - ldrsb r0, [r4, r0] - ldrh r1, [r5, #0x36] - adds r0, r0, r1 - strh r0, [r5, #0x36] - pop {r4, r5, pc} - .align 2, 0 -_080A9C30: .4byte gUnk_08129B20 - - thumb_func_start sub_080A9C34 -sub_080A9C34: @ 0x080A9C34 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - adds r1, r4, #0 - movs r2, #0 - movs r3, #1 - bl sub_0806FA90 - adds r4, #0x63 - ldrb r0, [r4] - subs r0, #0xe - strb r0, [r4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A9C50 -sub_080A9C50: @ 0x080A9C50 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r1, [r5, #0x50] - ldrb r0, [r1, #0x14] - cmp r0, #1 - beq _080A9C78 - cmp r0, #1 - bgt _080A9C66 - cmp r0, #0 - beq _080A9C70 - b _080A9C86 -_080A9C66: - cmp r0, #2 - beq _080A9C80 - cmp r0, #3 - beq _080A9C78 - b _080A9C86 -_080A9C70: - ldrb r0, [r1, #0x1e] - adds r4, r0, #0 - subs r4, #0x27 - b _080A9C86 -_080A9C78: - ldrb r0, [r1, #0x1e] - adds r4, r0, #0 - subs r4, #0x2d - b _080A9C86 -_080A9C80: - ldrb r0, [r1, #0x1e] - adds r4, r0, #0 - subs r4, #0x33 -_080A9C86: - adds r0, r1, #0 - adds r1, r5, #0 - movs r2, #0 - movs r3, #1 - bl sub_0806FA90 - adds r0, r5, #0 - adds r0, #0x63 - ldr r1, _080A9CA4 @ =gUnk_08129B50 - adds r1, r4, r1 - ldrb r1, [r1] - ldrb r2, [r0] - adds r1, r1, r2 - strb r1, [r0] - pop {r4, r5, pc} - .align 2, 0 -_080A9CA4: .4byte gUnk_08129B50 diff --git a/asm/projectile/projectile11.s b/asm/projectile/projectile11.s deleted file mode 100644 index ee1b382a..00000000 --- a/asm/projectile/projectile11.s +++ /dev/null @@ -1,142 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Projectile11 -Projectile11: @ 0x080A9CA8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, [r5, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _080A9CB8 - bl DeleteThisEntity -_080A9CB8: - ldr r4, _080A9CD0 @ =gUnk_08129B58 - 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 - pop {r4, r5, pc} - .align 2, 0 -_080A9CD0: .4byte gUnk_08129B58 - - thumb_func_start sub_080A9CD4 -sub_080A9CD4: @ 0x080A9CD4 - push {lr} - ldr r2, _080A9CE8 @ =gUnk_08129B70 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A9CE8: .4byte gUnk_08129B70 - - thumb_func_start nullsub_539 -nullsub_539: @ 0x080A9CEC - bx lr - .align 2, 0 - - thumb_func_start sub_080A9CF0 -sub_080A9CF0: @ 0x080A9CF0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F520 - cmp r0, #0 - bne _080A9D0A - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFx - bl DeleteThisEntity -_080A9D0A: - ldr r0, _080A9D1C @ =gUnk_08129B78 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080A9D1C: .4byte gUnk_08129B78 - - thumb_func_start sub_080A9D20 -sub_080A9D20: @ 0x080A9D20 - movs r1, #2 - strb r1, [r0, #0xd] - bx lr - .align 2, 0 - - thumb_func_start nullsub_540 -nullsub_540: @ 0x080A9D28 - bx lr - .align 2, 0 - - thumb_func_start sub_080A9D2C -sub_080A9D2C: @ 0x080A9D2C - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _080A9D64 - adds r0, r4, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #0xa6 - bne _080A9D56 - movs r0, #2 - rsbs r0, r0, #0 - bl ModHealth - ldr r0, _080A9D68 @ =gPlayerEntity - movs r1, #0x7a - bl sub_0800449C - bl sub_08079D84 -_080A9D56: - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFx - bl DeleteThisEntity -_080A9D64: - pop {r4, pc} - .align 2, 0 -_080A9D68: .4byte gPlayerEntity - - thumb_func_start sub_080A9D6C -sub_080A9D6C: @ 0x080A9D6C - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - ldr r1, [r0, #0x50] - ldrb r1, [r1, #0x14] - strb r1, [r0, #0x14] - ldrb r1, [r0, #0x14] - bl InitAnimationForceUpdate - pop {pc} - - thumb_func_start sub_080A9D80 -sub_080A9D80: @ 0x080A9D80 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r3, _080A9D9C @ =0xFFFF0000 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - ldr r0, _080A9DA0 @ =0x0000FFFE - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - pop {r4, pc} - .align 2, 0 -_080A9D9C: .4byte 0xFFFF0000 -_080A9DA0: .4byte 0x0000FFFE diff --git a/asm/projectile/projectile12.s b/asm/projectile/projectile12.s deleted file mode 100644 index 4c5a973e..00000000 --- a/asm/projectile/projectile12.s +++ /dev/null @@ -1,101 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Projectile12 -Projectile12: @ 0x080A9DA4 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A9DBC @ =gUnk_08129BEC - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A9DBC: .4byte gUnk_08129BEC - - thumb_func_start sub_080A9DC0 -sub_080A9DC0: @ 0x080A9DC0 - push {lr} - ldr r2, _080A9DD4 @ =gUnk_08129C00 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A9DD4: .4byte gUnk_08129C00 - - thumb_func_start sub_080A9DD8 -sub_080A9DD8: @ 0x080A9DD8 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _080A9DEE - adds r0, r4, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x80 - bne _080A9DF2 -_080A9DEE: - bl DeleteThisEntity -_080A9DF2: - adds r0, r4, #0 - bl sub_080A9DC0 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A9DFC -sub_080A9DFC: @ 0x080A9DFC - push {lr} - movs r2, #1 - strb r2, [r0, #0xc] - movs r1, #0xb4 - strb r1, [r0, #0xe] - adds r1, r0, #0 - adds r1, #0x45 - strb r2, [r1] - movs r1, #0 - bl InitializeAnimation - pop {pc} - - thumb_func_start sub_080A9E14 -sub_080A9E14: @ 0x080A9E14 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080AF090 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - bne _080A9E34 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A9E42 -_080A9E34: - adds r0, r4, #0 - movs r1, #0x4f - movs r2, #0 - bl CreateFx - bl DeleteThisEntity -_080A9E42: - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080A9E50 - bl DeleteThisEntity -_080A9E50: - pop {r4, pc} - .align 2, 0 diff --git a/asm/projectile/projectile13.s b/asm/projectile/projectile13.s deleted file mode 100644 index 595d6c87..00000000 --- a/asm/projectile/projectile13.s +++ /dev/null @@ -1,747 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Projectile13 -Projectile13: @ 0x080A9E54 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, [r5, #0x54] - cmp r0, #0 - bne _080A9E60 - ldr r0, [r5, #0x50] -_080A9E60: - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - bne _080A9E78 - ldrb r1, [r5, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080A9E78 - movs r0, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] -_080A9E78: - ldr r4, _080A9E90 @ =gUnk_08129C7C - 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 - pop {r4, r5, pc} - .align 2, 0 -_080A9E90: .4byte gUnk_08129C7C - - thumb_func_start sub_080A9E94 -sub_080A9E94: @ 0x080A9E94 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #2 - bhi _080A9EA4 - adds r0, r4, #0 - bl sub_080AA1D8 -_080A9EA4: - ldr r0, _080A9EB8 @ =gUnk_08129C90 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080A9EB8: .4byte gUnk_08129C90 - - thumb_func_start sub_080A9EBC -sub_080A9EBC: @ 0x080A9EBC - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A9F4E - ldrb r0, [r4, #0xc] - cmp r0, #3 - beq _080A9EF2 - cmp r0, #4 - bne _080A9F18 - movs r0, #0 - strb r0, [r4, #0xf] - subs r0, #2 - bl ModHealth - adds r0, r4, #0 - bl sub_080AF090 - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - adds r5, r4, #0 - adds r5, #0x42 - b _080A9F4A -_080A9EF2: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - adds r5, r4, #0 - adds r5, #0x42 - cmp r0, #0 - beq _080A9F4A - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #2 - strb r0, [r1] - movs r0, #0xff - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_080AA270 - movs r0, #0x20 - strb r0, [r4, #0xf] - b _080A9F4A -_080A9F18: - ldr r3, [r4, #0x50] - adds r0, r4, #0 - adds r0, #0x3d - ldrb r0, [r0] - adds r1, r3, #0 - adds r1, #0x3d - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - adds r1, #1 - strb r0, [r1] - adds r2, r4, #0 - adds r2, #0x42 - ldrb r1, [r2] - adds r0, r3, #0 - adds r0, #0x42 - strb r1, [r0] - ldrb r0, [r4, #0xc] - adds r5, r2, #0 - cmp r0, #1 - bne _080A9F4A - adds r0, r4, #0 - bl sub_080AA320 -_080A9F4A: - movs r0, #0 - strb r0, [r5] -_080A9F4E: - pop {r4, r5, pc} - - thumb_func_start sub_080A9F50 -sub_080A9F50: @ 0x080A9F50 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x80 - movs r2, #0 - strh r1, [r0] - movs r0, #0xff - strb r0, [r4, #0x14] - adds r0, r4, #0 - adds r0, #0x82 - strb r2, [r0] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r1, [r4, #0x50] - adds r0, r4, #0 - bl sub_0806FAD8 - adds r0, r4, #0 - bl sub_080AA270 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A9F90 -sub_080A9F90: @ 0x080A9F90 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x80 - ldrh r0, [r1] - cmp r0, #0 - beq _080A9FA4 - subs r0, #1 - strh r0, [r1] - b _080A9FC8 -_080A9FA4: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A9FB8 - adds r0, r4, #0 - bl sub_080AA270 - b _080A9FC8 -_080A9FB8: - adds r0, r4, #0 - bl sub_080AA2E0 - cmp r0, #0 - beq _080A9FC8 - adds r0, r4, #0 - bl sub_080AA320 -_080A9FC8: - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - pop {r4, pc} - - thumb_func_start sub_080A9FD0 -sub_080A9FD0: @ 0x080A9FD0 - push {r4, r5, lr} - adds r5, r0, #0 - bl UpdateAnimationSingleFrame - adds r2, r5, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080A9FF2 - movs r0, #0xbf - ands r0, r1 - strb r0, [r2] - ldr r0, _080AA038 @ =0x0000015D - bl EnqueueSFX -_080A9FF2: - movs r0, #0x2e - ldrsh r1, [r5, r0] - ldr r2, _080AA03C @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r4, #0x32 - ldrsh r0, [r5, r4] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r4, r5, #0 - adds r4, #0x78 - strh r1, [r4] - ldrh r0, [r4] - adds r5, #0x38 - ldrb r1, [r5] - bl GetTileType - movs r1, #0x80 - lsls r1, r1, #7 - cmp r0, r1 - bne _080AA034 - ldr r0, _080AA040 @ =0x00004005 - ldrh r1, [r4] - ldrb r2, [r5] - bl SetTile -_080AA034: - pop {r4, r5, pc} - .align 2, 0 -_080AA038: .4byte 0x0000015D -_080AA03C: .4byte gRoomControls -_080AA040: .4byte 0x00004005 - - thumb_func_start sub_080AA044 -sub_080AA044: @ 0x080AA044 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x54] - cmp r5, #0 - bne _080AA052 - bl DeleteThisEntity -_080AA052: - ldr r0, [r5, #4] - cmp r0, #0 - bne _080AA05E - bl DeleteThisEntity - b _080AA0A2 -_080AA05E: - 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 _080AA08C - 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 _080AA0A2 -_080AA08C: - 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 -_080AA0A2: - adds r0, r5, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - bne _080AA108 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _080AA0B8 - subs r0, #1 - strb r0, [r4, #0xf] - b _080AA108 -_080AA0B8: - 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 _080AA108 - movs r0, #4 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #3 - strb r0, [r1] - 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] - ldr r0, _080AA10C @ =gUnk_080FD150 - str r0, [r4, #0x48] - bl CheckIsDungeon - cmp r0, #0 - beq _080AA100 - ldrb r0, [r4, #0x1b] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x40 - orrs r1, r0 - strb r1, [r4, #0x1b] -_080AA100: - adds r0, r4, #0 - movs r1, #0 - bl sub_080AA3E0 -_080AA108: - pop {r4, r5, pc} - .align 2, 0 -_080AA10C: .4byte gUnk_080FD150 - - thumb_func_start sub_080AA110 -sub_080AA110: @ 0x080AA110 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - ldr r7, [r6, #0x54] - cmp r7, #0 - beq _080AA1B6 - ldr r0, [r7, #4] - cmp r0, #0 - bne _080AA128 - str r0, [r6, #0x54] -_080AA128: - ldrb r0, [r6, #0xf] - adds r5, r0, #0 - cmp r5, #0 - beq _080AA136 - subs r0, #1 - strb r0, [r6, #0xf] - b _080AA1C4 -_080AA136: - adds r0, r6, #0 - bl sub_080AA374 - cmp r0, #0 - beq _080AA1C4 - adds r0, r7, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080AA14E - bl DeleteThisEntity -_080AA14E: - movs r0, #0xf2 - bl EnqueueSFX - movs r4, #1 - strb r4, [r6, #0xc] - movs r0, #0xff - strb r0, [r6, #0x14] - adds r0, r6, #0 - adds r0, #0x82 - strb r5, [r0] - strb r5, [r6, #0xe] - subs r0, #2 - movs r1, #0 - mov sb, r1 - movs r1, #0x20 - mov r8, r1 - mov r1, r8 - strh r1, [r0] - ldrb r1, [r6, #0x1b] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r6, #0x1b] - ldr r0, [r6, #0x54] - str r0, [r6, #0x50] - str r5, [r6, #0x54] - adds r0, r6, #0 - bl sub_080AA270 - ldr r7, [r6, #0x50] - strb r4, [r7, #0xc] - ldrb r0, [r7, #0x14] - lsls r0, r0, #2 - strb r0, [r7, #0x15] - strh r5, [r7, #0x24] - adds r0, r7, #0 - adds r0, #0x82 - strb r4, [r0] - mov r0, sb - strb r0, [r7, #0xe] - movs r0, #0x78 - strb r0, [r7, #0xf] - adds r0, r7, #0 - adds r0, #0x80 - mov r1, r8 - strh r1, [r0] - adds r0, r7, #0 - movs r1, #1 - bl sub_080AA3E0 - b _080AA1C4 -_080AA1B6: - adds r0, r6, #0 - bl sub_080040A8 - cmp r0, #0 - bne _080AA1C4 - bl DeleteThisEntity -_080AA1C4: - adds r0, r6, #0 - bl sub_0806F69C - adds r0, r6, #0 - bl UpdateAnimationSingleFrame - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080AA1D8 -sub_080AA1D8: @ 0x080AA1D8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, [r5, #0x50] - cmp r4, #0 - beq _080AA268 - ldr r0, [r4, #4] - cmp r0, #0 - bne _080AA1EC - bl DeleteThisEntity -_080AA1EC: - ldrb r1, [r4, #0x1e] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _080AA26C - ldrh r0, [r4, #0x12] - ldrb r1, [r4, #0x1e] - bl GetSpriteSubEntryOffsetDataPointer - adds r3, r0, #0 - ldrb r1, [r4, #0x14] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080AA224 - 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, r4, #0 - adds r1, r5, #0 - bl PositionRelative - b _080AA23A -_080AA224: - 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, r4, #0 - adds r1, r5, #0 - bl PositionRelative -_080AA23A: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _080AA256 - ldrb r1, [r5, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080AA26C - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - b _080AA26C -_080AA256: - ldrb r1, [r5, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080AA26C - movs r0, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - b _080AA26C -_080AA268: - bl DeleteThisEntity -_080AA26C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080AA270 -sub_080AA270: @ 0x080AA270 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r4, [r5, #0x50] - bl Random - ldr r1, _080AA2A4 @ =gUnk_08129CA4 - movs r6, #7 - ands r0, r6 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r5, #0xf] - ldrb r4, [r4, #0x14] - ldrb r0, [r5, #0x14] - cmp r0, #0xff - bne _080AA2AC - strb r4, [r5, #0x14] - ldr r0, _080AA2A8 @ =gUnk_08129CF4 - lsls r1, r4, #2 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [r5, #0x48] - adds r0, r5, #0 - movs r1, #0 - bl sub_080AA3E0 - b _080AA2D6 - .align 2, 0 -_080AA2A4: .4byte gUnk_08129CA4 -_080AA2A8: .4byte gUnk_08129CF4 -_080AA2AC: - bl Random - ldr r1, _080AA2D8 @ =gUnk_08129CAC - ands r0, r6 - adds r0, r0, r1 - ldrb r0, [r0] - adds r4, r0, r4 - ands r4, r6 - ldrb r0, [r5, #0x14] - cmp r4, r0 - beq _080AA2D6 - strb r4, [r5, #0x14] - ldr r0, _080AA2DC @ =gUnk_08129CF4 - lsls r1, r4, #2 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [r5, #0x48] - adds r0, r5, #0 - movs r1, #0 - bl sub_080AA3E0 -_080AA2D6: - pop {r4, r5, r6, pc} - .align 2, 0 -_080AA2D8: .4byte gUnk_08129CAC -_080AA2DC: .4byte gUnk_08129CF4 - - thumb_func_start sub_080AA2E0 -sub_080AA2E0: @ 0x080AA2E0 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0 - bl sub_08049DF4 - adds r4, r0, #0 - cmp r4, #0 - beq _080AA31C - adds r0, r5, #0 - adds r1, r4, #0 - bl GetFacingDirection - ldrb r1, [r5, #0x14] - lsls r1, r1, #2 - adds r0, #4 - movs r2, #0x1c - ands r0, r2 - adds r1, #4 - ands r1, r2 - cmp r0, r1 - bne _080AA31C - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x40 - bl sub_08049F1C - cmp r0, #0 - beq _080AA31C - movs r0, #1 - b _080AA31E -_080AA31C: - movs r0, #0 -_080AA31E: - pop {r4, r5, pc} - - thumb_func_start sub_080AA320 -sub_080AA320: @ 0x080AA320 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, [r5, #0x50] - movs r2, #0 - movs r1, #2 - strb r1, [r5, #0xc] - adds r3, r5, #0 - adds r3, #0x82 - movs r0, #1 - strb r0, [r3] - strb r2, [r5, #0xf] - strb r1, [r4, #0xc] - movs r0, #0x30 - strb r0, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x80 - movs r0, #0x50 - strh r0, [r1] - strh r2, [r4, #0x24] - adds r0, r4, #0 - movs r1, #0 - bl sub_08049F84 - strb r0, [r4, #0x15] - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x1c - ands r0, r1 - lsrs r1, r0, #2 - strb r1, [r5, #0x14] - movs r1, #0x18 - ands r0, r1 - lsrs r0, r0, #2 - strb r0, [r4, #0x14] - adds r0, r4, #0 - movs r1, #1 - bl sub_080AA3E0 - adds r0, r5, #0 - bl sub_080AA1D8 - pop {r4, r5, pc} - - thumb_func_start sub_080AA374 -sub_080AA374: @ 0x080AA374 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - movs r0, #0 - mov r8, r0 - ldr r5, [r6, #0x54] - cmp r5, #0 - beq _080AA3D8 - ldr r0, [r5, #4] - cmp r0, #0 - beq _080AA3D8 - ldrb r4, [r5, #0x14] - ldr r0, _080AA3CC @ =gUnk_08129D14 - adds r4, r4, r0 - movs r2, #0 - ldrsb r2, [r4, r2] - movs r3, #1 - ldrsb r3, [r4, r3] - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_0806F824 - adds r7, r0, #0 - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r0, #0 - ldrsb r0, [r4, r0] - adds r1, r1, r0 - movs r0, #0x32 - ldrsh r2, [r5, r0] - movs r0, #1 - ldrsb r0, [r4, r0] - adds r2, r2, r0 - adds r0, r6, #0 - movs r3, #8 - bl sub_0806FCB8 - cmp r0, #0 - beq _080AA3D0 - movs r0, #1 - mov r8, r0 - b _080AA3D8 - .align 2, 0 -_080AA3CC: .4byte gUnk_08129D14 -_080AA3D0: - adds r0, r6, #0 - adds r1, r7, #0 - bl sub_08004596 -_080AA3D8: - mov r0, r8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080AA3E0 -sub_080AA3E0: @ 0x080AA3E0 - push {lr} - adds r3, r0, #0 - ldrb r2, [r3, #0x14] - adds r0, #0x82 - ldrb r0, [r0] - lsls r0, r0, #3 - orrs r2, r0 - cmp r1, #0 - beq _080AA3F4 - lsrs r2, r2, #1 -_080AA3F4: - adds r0, r3, #0 - adds r1, r2, #0 - bl InitAnimationForceUpdate - pop {pc} - .align 2, 0 diff --git a/asm/projectile/projectile14.s b/asm/projectile/projectile14.s deleted file mode 100644 index 7e184167..00000000 --- a/asm/projectile/projectile14.s +++ /dev/null @@ -1,342 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Projectile14 -Projectile14: @ 0x080AA400 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080AA418 @ =gUnk_08129FB8 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080AA418: .4byte gUnk_08129FB8 - - thumb_func_start sub_080AA41C -sub_080AA41C: @ 0x080AA41C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _080AA44C - movs r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0xa] - strb r1, [r2, #0x1e] - strb r0, [r2, #0x1c] - adds r0, r2, #0 - adds r0, #0x86 - ldrh r0, [r0] - strh r0, [r2, #0x24] - lsls r1, r1, #0x18 - cmp r1, #0 - bne _080AA446 - adds r0, r2, #0 - bl sub_080AA494 - b _080AA44C -_080AA446: - adds r0, r2, #0 - bl sub_080AA534 -_080AA44C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080AA450 -sub_080AA450: @ 0x080AA450 - push {lr} - adds r1, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x96 - bne _080AA462 - adds r0, r1, #0 - bl sub_080AA464 -_080AA462: - pop {pc} - - thumb_func_start sub_080AA464 -sub_080AA464: @ 0x080AA464 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080AA474 - adds r0, r4, #0 - bl sub_080AA544 -_080AA474: - movs r0, #0x21 - movs r1, #3 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _080AA48A - adds r0, r4, #0 - bl CopyPosition -_080AA48A: - adds r0, r4, #0 - bl DeleteEntity - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AA494 -sub_080AA494: @ 0x080AA494 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r4, #0 - bl GetTileTypeByEntity - adds r2, r0, #0 - ldr r1, _080AA4A4 @ =gUnk_08129FD0 - b _080AA4AA - .align 2, 0 -_080AA4A4: .4byte gUnk_08129FD0 -_080AA4A8: - adds r4, #1 -_080AA4AA: - ldrh r0, [r1] - cmp r0, #0 - beq _080AA4B6 - adds r1, #2 - cmp r0, r2 - bne _080AA4A8 -_080AA4B6: - ldrh r0, [r5, #0x24] - bl CheckFlags - cmp r0, #0 - beq _080AA4EE - cmp r4, #4 - bne _080AA4EA - movs r0, #0x2e - ldrsh r1, [r5, r0] - ldr r2, _080AA52C @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r6, #0x32 - ldrsh r0, [r5, r6] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r5, #0 - bl sub_080AA654 -_080AA4EA: - bl DeleteThisEntity -_080AA4EE: - strb r4, [r5, #0xb] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080AA530 @ =0x00004068 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _080AA52C @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl SetTile - pop {r4, r5, r6, pc} - .align 2, 0 -_080AA52C: .4byte gRoomControls -_080AA530: .4byte 0x00004068 - - thumb_func_start sub_080AA534 -sub_080AA534: @ 0x080AA534 - push {lr} - adds r2, r0, #0 - adds r2, #0x38 - movs r1, #3 - strb r1, [r2] - bl UpdateSpriteForCollisionLayer - pop {pc} - - thumb_func_start sub_080AA544 -sub_080AA544: @ 0x080AA544 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - ldrb r0, [r6, #0xb] - cmp r0, #8 - bhi _080AA618 - ldr r0, _080AA5E8 @ =gUnk_08129FF8 - mov sb, r0 - movs r1, #0x2e - ldrsh r2, [r6, r1] - ldr r1, _080AA5EC @ =gRoomControls - ldrh r0, [r1, #6] - subs r2, r2, r0 - asrs r2, r2, #4 - movs r3, #0x3f - ands r2, r3 - movs r4, #0x32 - ldrsh r0, [r6, r4] - ldrh r1, [r1, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r2, r0 - ldrb r0, [r6, #0xb] - add r0, sb - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r7, r2, r0 - movs r4, #0 - movs r5, #0 - movs r0, #0x38 - adds r0, r0, r6 - mov r8, r0 -_080AA58E: - mov r1, sb - adds r0, r1, r4 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - subs r0, r7, r0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r2, r8 - ldrb r1, [r2] - bl sub_080002C8 - cmp r0, #0x3e - bne _080AA5AC - adds r5, #1 -_080AA5AC: - adds r4, #1 - cmp r4, #8 - bls _080AA58E - cmp r5, #8 - bne _080AA5F4 - movs r4, #0 - ldr r5, _080AA5F0 @ =gUnk_08129FD0 -_080AA5BA: - ldrh r0, [r5] - mov r3, sb - adds r1, r3, r4 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - subs r1, r7, r1 - mov r3, r8 - ldrb r2, [r3] - bl sub_0807B7D8 - adds r5, #2 - adds r4, #1 - cmp r4, #8 - bls _080AA5BA - adds r0, r6, #0 - adds r1, r7, #0 - bl sub_080AA654 - ldrh r0, [r6, #0x24] - bl SetFlag - b _080AA648 - .align 2, 0 -_080AA5E8: .4byte gUnk_08129FF8 -_080AA5EC: .4byte gRoomControls -_080AA5F0: .4byte gUnk_08129FD0 -_080AA5F4: - ldr r2, _080AA614 @ =gUnk_08129FE4 - ldrb r1, [r6, #0xb] - lsls r0, r1, #1 - adds r0, r0, r2 - ldrh r0, [r0] - add r1, sb - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - subs r1, r7, r1 - mov r4, r8 - ldrb r2, [r4] - bl sub_0807B7D8 - b _080AA648 - .align 2, 0 -_080AA614: .4byte gUnk_08129FE4 -_080AA618: - movs r1, #0x2e - ldrsh r0, [r6, r1] - ldr r2, _080AA650 @ =gRoomControls - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r4, #0x32 - ldrsh r1, [r6, r4] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - adds r1, r6, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_0807BA8C - ldrh r0, [r6, #0x24] - bl SetFlag -_080AA648: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080AA650: .4byte gRoomControls - - thumb_func_start sub_080AA654 -sub_080AA654: @ 0x080AA654 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r4, #0x68 - ldr r0, _080AA688 @ =gUnk_0812A004 - adds r1, r4, #0 - movs r2, #0x10 - bl MemCopy - movs r1, #0x3f - adds r0, r5, #0 - ands r0, r1 - lsls r0, r0, #4 - adds r0, #8 - strh r0, [r4, #8] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r5 - lsrs r0, r0, #2 - adds r0, #8 - strh r0, [r4, #0xa] - adds r0, r4, #0 - bl LoadRoomEntity - pop {r4, r5, pc} - .align 2, 0 -_080AA688: .4byte gUnk_0812A004 diff --git a/asm/projectile/projectile15.s b/asm/projectile/projectile15.s deleted file mode 100644 index bcb4a47a..00000000 --- a/asm/projectile/projectile15.s +++ /dev/null @@ -1,582 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Projectile15 -Projectile15: @ 0x080AA68C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080AA6A4 @ =gUnk_0812A014 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080AA6A4: .4byte gUnk_0812A014 - - thumb_func_start sub_080AA6A8 -sub_080AA6A8: @ 0x080AA6A8 - push {lr} - ldr r2, _080AA6BC @ =gUnk_0812A02C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080AA6BC: .4byte gUnk_0812A02C - - thumb_func_start sub_080AA6C0 -sub_080AA6C0: @ 0x080AA6C0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x87 - bne _080AA774 - movs r6, #3 - movs r0, #3 - strb r0, [r4, #0xc] - movs r5, #0x5a - strb r5, [r4, #0xe] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r1, [r4, #0xa] - adds r1, #0x10 - adds r0, r4, #0 - bl InitAnimationForceUpdate - movs r0, #0x2a - movs r1, #3 - movs r2, #0 - bl CreateObject - adds r3, r0, #0 - cmp r3, #0 - beq _080AA72A - strb r5, [r3, #0xb] - adds r2, r3, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r6 - strb r0, [r2] - ldr r1, _080AA770 @ =gUnk_0812A03C - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0] - adds r2, #0x39 - strb r0, [r2] - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - adds r1, r3, #0 - adds r1, #0x63 - strb r0, [r1] - str r4, [r3, #0x50] -_080AA72A: - movs r0, #0x2a - movs r1, #3 - movs r2, #0 - bl CreateObject - adds r3, r0, #0 - cmp r3, #0 - beq _080AA784 - strb r5, [r3, #0xb] - adds r2, r3, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r6 - strb r0, [r2] - ldr r1, _080AA770 @ =gUnk_0812A03C - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, #2 - adds r0, r0, r1 - ldrb r0, [r0] - adds r2, #0x39 - strb r0, [r2] - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, #3 - adds r0, r0, r1 - ldrb r0, [r0] - adds r1, r3, #0 - adds r1, #0x63 - strb r0, [r1] - str r4, [r3, #0x50] - b _080AA784 - .align 2, 0 -_080AA770: .4byte gUnk_0812A03C -_080AA774: - ldrb r1, [r4, #0xa] - adds r1, #0x10 - adds r0, r4, #0 - bl InitAnimationForceUpdate - ldr r0, _080AA788 @ =0x00000101 - bl EnqueueSFX -_080AA784: - pop {r4, r5, r6, pc} - .align 2, 0 -_080AA788: .4byte 0x00000101 - - thumb_func_start sub_080AA78C -sub_080AA78C: @ 0x080AA78C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _080AA7DA - ldr r0, _080AA7C8 @ =gPlayerEntity - ldrb r0, [r0, #0x14] - lsrs r2, r0, #1 - ldrb r0, [r4, #0xa] - cmp r2, r0 - beq _080AA7CC - adds r3, r4, #0 - adds r3, #0x3a - ldrb r0, [r3] - movs r1, #0xfb - ands r1, r0 - strb r1, [r3] - movs r0, #2 - eors r2, r0 - ldrb r0, [r4, #0xa] - cmp r2, r0 - bne _080AA832 - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0xe2 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080AA6C0 - b _080AA832 - .align 2, 0 -_080AA7C8: .4byte gPlayerEntity -_080AA7CC: - movs r0, #1 - strb r0, [r4, #0xd] - adds r1, r2, #0 - adds r1, #8 - adds r0, r4, #0 - bl InitAnimationForceUpdate -_080AA7DA: - adds r0, r4, #0 - bl sub_0806F520 - cmp r0, #0 - beq _080AA812 - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - adds r5, r4, #0 - adds r5, #0x5a - ldrb r1, [r5] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080AA806 - movs r0, #0xef - ands r0, r1 - strb r0, [r5] - movs r0, #0x80 - lsls r0, r0, #1 - bl EnqueueSFX -_080AA806: - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080AA832 - b _080AA820 -_080AA812: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080AA828 -_080AA820: - adds r0, r4, #0 - bl sub_080AAAA8 - b _080AA832 -_080AA828: - ldrb r1, [r4, #0xa] - adds r1, #0x10 - adds r0, r4, #0 - bl InitAnimationForceUpdate -_080AA832: - pop {r4, r5, pc} - - thumb_func_start sub_080AA834 -sub_080AA834: @ 0x080AA834 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl CheckFlags - cmp r0, #0 - beq _080AA848 - bl DeleteThisEntity -_080AA848: - movs r2, #0 - movs r0, #1 - strb r0, [r4, #0xc] - strb r0, [r4, #0x1c] - strb r0, [r4, #0x16] - ldr r1, _080AA874 @ =gUnk_0812A04C - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r4, #0x48] - adds r0, r4, #0 - adds r0, #0x84 - strb r2, [r0] - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl InitAnimationForceUpdate - adds r0, r4, #0 - bl sub_080AAA68 - pop {r4, pc} - .align 2, 0 -_080AA874: .4byte gUnk_0812A04C - - thumb_func_start sub_080AA878 -sub_080AA878: @ 0x080AA878 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080AA88E - adds r0, r4, #0 - bl UpdateAnimationSingleFrame -_080AA88E: - adds r0, r4, #0 - bl sub_080AA9E0 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AA898 -sub_080AA898: @ 0x080AA898 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806FBB4 - ldr r1, _080AA8B4 @ =gUnk_0812A05C - ldrb r0, [r4, #0xd] - subs r0, #5 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080AA8B4: .4byte gUnk_0812A05C - - thumb_func_start sub_080AA8B8 -sub_080AA8B8: @ 0x080AA8B8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r7, _080AA99C @ =gPlayerEntity - adds r0, #0x84 - ldrb r0, [r0] - cmp r0, #0 - bne _080AA920 - ldrb r0, [r4, #0xa] - lsls r2, r0, #1 - ldrb r0, [r7, #0x14] - cmp r2, r0 - bne _080AA90A - ldr r1, _080AA9A0 @ =gUnk_0812A064 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r3, [r4, #0x2e] - adds r0, r0, r3 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r0, r2, #1 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r7, #0 - adds r0, #0x38 - ldrb r2, [r0] - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_080002D4 - cmp r0, #0 - bne _080AA90A - strh r6, [r7, #0x2e] - strh r5, [r7, #0x32] -_080AA90A: - adds r1, r4, #0 - adds r1, #0x84 - movs r0, #1 - strb r0, [r1] - movs r0, #2 - strb r0, [r4, #0xf] - ldrb r1, [r4, #0xa] - adds r1, #4 - adds r0, r4, #0 - bl InitAnimationForceUpdate -_080AA920: - ldrb r0, [r7, #0x14] - lsrs r0, r0, #1 - ldrb r2, [r4, #0xa] - cmp r0, r2 - bne _080AA99A - ldr r1, _080AA9A4 @ =gPlayerState - adds r0, r1, #0 - adds r0, #0xa8 - ldrb r0, [r0] - cmp r0, #0x1a - bne _080AA99A - ldrb r1, [r1, #5] - movs r2, #2 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _080AA99A - ldr r0, _080AA99C @ =gPlayerEntity - adds r0, #0x5a - ldrb r1, [r0] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _080AA99A - adds r5, r4, #0 - adds r5, #0x5a - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080AA99A - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - ldrb r1, [r5] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080AA99A - ldr r1, _080AA9A8 @ =gUnk_0812A06C - ldrb r0, [r7, #0x14] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r3, [r7, #0x2e] - adds r0, r0, r3 - strh r0, [r7, #0x2e] - ldrb r0, [r7, #0x14] - adds r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r7, #0x32] - adds r0, r0, r1 - strh r0, [r7, #0x32] - movs r0, #0x80 - lsls r0, r0, #1 - bl EnqueueSFX -_080AA99A: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080AA99C: .4byte gPlayerEntity -_080AA9A0: .4byte gUnk_0812A064 -_080AA9A4: .4byte gPlayerState -_080AA9A8: .4byte gUnk_0812A06C - - thumb_func_start sub_080AA9AC -sub_080AA9AC: @ 0x080AA9AC - push {lr} - movs r2, #0 - movs r1, #1 - strb r1, [r0, #0xc] - adds r1, r0, #0 - adds r1, #0x84 - strb r2, [r1] - ldrb r1, [r0, #0xa] - adds r1, #0xc - bl InitAnimationForceUpdate - pop {pc} - - thumb_func_start sub_080AA9C4 -sub_080AA9C4: @ 0x080AA9C4 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AA9DE - adds r0, r4, #0 - bl sub_080AAAA8 -_080AA9DE: - pop {r4, pc} - - thumb_func_start sub_080AA9E0 -sub_080AA9E0: @ 0x080AA9E0 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r1, [r5, #0xa] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080AAA00 - ldr r0, _080AA9FC @ =gPlayerEntity - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r2, #0x2e - ldrsh r0, [r5, r2] - b _080AAA0A - .align 2, 0 -_080AA9FC: .4byte gPlayerEntity -_080AAA00: - ldr r0, _080AAA24 @ =gPlayerEntity - movs r2, #0x32 - ldrsh r1, [r0, r2] - movs r2, #0x32 - ldrsh r0, [r5, r2] -_080AAA0A: - subs r4, r1, r0 - ldrb r2, [r5, #0xa] - lsls r1, r2, #2 - ldr r0, _080AAA28 @ =gUnk_0812A074 - adds r3, r1, r0 - cmp r2, #2 - bgt _080AAA2C - cmp r2, #1 - bge _080AAA36 - cmp r2, #0 - beq _080AAA30 - b _080AAA40 - .align 2, 0 -_080AAA24: .4byte gPlayerEntity -_080AAA28: .4byte gUnk_0812A074 -_080AAA2C: - cmp r2, #3 - bne _080AAA40 -_080AAA30: - cmp r4, #4 - ble _080AAA40 - b _080AAA3E -_080AAA36: - movs r0, #4 - rsbs r0, r0, #0 - cmp r4, r0 - bge _080AAA40 -_080AAA3E: - adds r3, #2 -_080AAA40: - ldrb r0, [r3] - adds r4, r5, #0 - adds r4, #0x29 - movs r1, #7 - ands r1, r0 - ldrb r2, [r4] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4] - ldrb r0, [r3, #1] - strb r0, [r5, #0x15] - ldrb r0, [r3] - cmp r0, #5 - bne _080AAA66 - adds r0, r5, #0 - bl sub_08078930 -_080AAA66: - pop {r4, r5, pc} - - thumb_func_start sub_080AAA68 -sub_080AAA68: @ 0x080AAA68 - push {r4, r5, r6, lr} - ldr r2, _080AAAA0 @ =gUnk_0812A084 - ldrb r1, [r0, #0xa] - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r5, [r1] - movs r2, #0x2e - ldrsh r1, [r0, r2] - ldr r3, _080AAAA4 @ =gRoomControls - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r0, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r0, #0x38 - ldrb r2, [r0] - adds r0, r5, #0 - bl SetTile - pop {r4, r5, r6, pc} - .align 2, 0 -_080AAAA0: .4byte gUnk_0812A084 -_080AAAA4: .4byte gRoomControls - - thumb_func_start sub_080AAAA8 -sub_080AAAA8: @ 0x080AAAA8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl SetFlag - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _080AAAE4 @ =gRoomControls - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r5, #0x32 - ldrsh r1, [r4, r5] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - adds r4, #0x38 - ldrb r1, [r4] - bl sub_0807BA8C - bl DeleteThisEntity - pop {r4, r5, pc} - .align 2, 0 -_080AAAE4: .4byte gRoomControls diff --git a/asm/projectile/projectile16.s b/asm/projectile/projectile16.s deleted file mode 100644 index 8db295ef..00000000 --- a/asm/projectile/projectile16.s +++ /dev/null @@ -1,97 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Projectile16 -Projectile16: @ 0x080AAAE8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080AAB00 @ =gUnk_0812A3C0 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080AAB00: .4byte gUnk_0812A3C0 - - thumb_func_start sub_080AAB04 -sub_080AAB04: @ 0x080AAB04 - push {lr} - ldr r2, _080AAB18 @ =gUnk_0812A3D4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080AAB18: .4byte gUnk_0812A3D4 - - thumb_func_start sub_080AAB1C -sub_080AAB1C: @ 0x080AAB1C - push {lr} - bl DeleteThisEntity - pop {pc} - - thumb_func_start sub_080AAB24 -sub_080AAB24: @ 0x080AAB24 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0x1e - strb r1, [r0, #0xe] - movs r1, #0 - bl InitializeAnimation - pop {pc} - .align 2, 0 - - thumb_func_start sub_080AAB38 -sub_080AAB38: @ 0x080AAB38 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080AAB4C - subs r0, #1 - strb r0, [r4, #0xe] - b _080AAB62 -_080AAB4C: - adds r0, r4, #0 - bl sub_080AF090 - cmp r0, #0 - bne _080AAB5E - adds r0, r4, #0 - bl sub_0806F69C - b _080AAB62 -_080AAB5E: - movs r0, #2 - strb r0, [r4, #0xc] -_080AAB62: - pop {r4, pc} - - thumb_func_start sub_080AAB64 -sub_080AAB64: @ 0x080AAB64 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080AF090 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _080AAB7C - bl DeleteThisEntity -_080AAB7C: - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080AAB8A - bl DeleteThisEntity -_080AAB8A: - pop {r4, pc} diff --git a/asm/projectile/projectile17.s b/asm/projectile/projectile17.s deleted file mode 100644 index 9906583f..00000000 --- a/asm/projectile/projectile17.s +++ /dev/null @@ -1,58 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Projectile17 -Projectile17: @ 0x080AAB8C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080AABA2 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0 - bl InitializeAnimation -_080AABA2: - adds r0, r4, #0 - bl sub_080AABB0 - adds r0, r4, #0 - bl GetNextFrame - pop {r4, pc} - - thumb_func_start sub_080AABB0 -sub_080AABB0: @ 0x080AABB0 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - ldrb r1, [r5, #0x14] - lsls r1, r1, #1 - ldr r0, _080AABEC @ =gSineTable - adds r1, r1, r0 - ldrb r2, [r4, #0xe] - lsls r2, r2, #8 - movs r3, #0 - ldrsh r0, [r1, r3] - adds r3, r0, #0 - muls r3, r2, r3 - ldr r0, [r4, #0x2c] - adds r0, r0, r3 - str r0, [r4, #0x2c] - adds r1, #0x80 - movs r3, #0 - ldrsh r0, [r1, r3] - adds r1, r0, #0 - muls r1, r2, r1 - ldr r0, [r4, #0x30] - subs r0, r0, r1 - str r0, [r4, #0x30] - pop {r4, r5, pc} - .align 2, 0 -_080AABEC: .4byte gSineTable diff --git a/asm/projectile/projectile18.s b/asm/projectile/projectile18.s deleted file mode 100644 index a8be53c4..00000000 --- a/asm/projectile/projectile18.s +++ /dev/null @@ -1,603 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Projectile18 -Projectile18: @ 0x080AABF0 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080AAC08 @ =gUnk_0812A418 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080AAC08: .4byte gUnk_0812A418 - - thumb_func_start sub_080AAC0C -sub_080AAC0C: @ 0x080AAC0C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080AAC40 @ =gUnk_0812A430 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _080AAC3C - adds r1, r4, #0 - adds r1, #0x84 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080AAC3C - subs r1, #0x3f - movs r0, #0 - strb r0, [r1] -_080AAC3C: - pop {r4, pc} - .align 2, 0 -_080AAC40: .4byte gUnk_0812A430 - - thumb_func_start sub_080AAC44 -sub_080AAC44: @ 0x080AAC44 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080AACCA - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _080AACBC - movs r0, #0x3f - ands r0, r1 - cmp r0, #0 - bne _080AACA0 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080AAC84 - ldr r0, _080AAC80 @ =gPlayerEntity - adds r1, r4, #0 - bl ResolveEntityOnTop - b _080AAC8C - .align 2, 0 -_080AAC80: .4byte gPlayerEntity -_080AAC84: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl ResolveEntityOnTop -_080AAC8C: - bl ResetPlayer - ldr r2, _080AACB4 @ =gPlayerState - ldrb r1, [r2, #0x1a] - movs r0, #0x80 - orrs r1, r0 - strb r1, [r2, #0x1a] - ldrb r1, [r2, #0xa] - orrs r0, r1 - strb r0, [r2, #0xa] -_080AACA0: - ldr r0, _080AACB8 @ =gPlayerEntity - adds r0, #0x45 - ldrb r1, [r0] - cmp r1, #0 - bne _080AACCA - adds r0, r4, #0 - adds r0, #0x45 - strb r1, [r0] - b _080AACCA - .align 2, 0 -_080AACB4: .4byte gPlayerState -_080AACB8: .4byte gPlayerEntity -_080AACBC: - ldr r0, _080AACDC @ =0x00000119 - bl SoundReq - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl CopyPosition -_080AACCA: - adds r1, r4, #0 - adds r1, #0x42 - ldrb r0, [r1] - cmp r0, #0 - beq _080AACD8 - movs r0, #0 - strb r0, [r1] -_080AACD8: - pop {r4, pc} - .align 2, 0 -_080AACDC: .4byte 0x00000119 - - thumb_func_start sub_080AACE0 -sub_080AACE0: @ 0x080AACE0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _080AACF4 - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _080AACF4 - bl DeleteThisEntity -_080AACF4: - ldrb r1, [r4, #0x18] - lsls r0, r1, #0x1e - lsrs r2, r0, #0x1e - adds r5, r4, #0 - adds r5, #0x86 - cmp r2, #1 - bne _080AAD16 - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - strb r2, [r5] - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFx -_080AAD16: - ldr r2, [r4, #0x50] - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _080AAD4A - adds r1, r2, #0 - adds r1, #0x74 - movs r0, #3 - strb r0, [r1] - adds r1, #0xc - adds r0, r4, #0 - adds r0, #0x81 - ldrb r0, [r0] - lsrs r0, r0, #1 - ldrb r2, [r1] - adds r0, r0, r2 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #8 - bls _080AAD42 - movs r0, #8 - b _080AAD56 -_080AAD42: - cmp r0, #0 - bne _080AAD58 - movs r0, #1 - b _080AAD56 -_080AAD4A: - adds r1, r2, #0 - adds r1, #0x84 - movs r0, #0 - strb r0, [r1] - subs r1, #0x45 - movs r0, #0x2b -_080AAD56: - strb r0, [r1] -_080AAD58: - ldrb r0, [r5] - cmp r0, #0 - bne _080AAD68 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFx -_080AAD68: - bl DeleteThisEntity - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080AAD70 -sub_080AAD70: @ 0x080AAD70 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F520 - cmp r0, #0 - bne _080AAD82 - adds r1, r4, #0 - adds r1, #0x45 - strb r0, [r1] -_080AAD82: - ldr r0, _080AAD94 @ =gUnk_0812A440 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080AAD94: .4byte gUnk_0812A440 - - thumb_func_start sub_080AAD98 -sub_080AAD98: @ 0x080AAD98 - movs r1, #2 - strb r1, [r0, #0xd] - bx lr - .align 2, 0 - - thumb_func_start nullsub_541 -nullsub_541: @ 0x080AADA0 - bx lr - .align 2, 0 - - thumb_func_start sub_080AADA4 -sub_080AADA4: @ 0x080AADA4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _080AADB8 - adds r1, r4, #0 - adds r1, #0x45 - movs r0, #0 - strb r0, [r1] -_080AADB8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AADBC -sub_080AADBC: @ 0x080AADBC - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xb] - cmp r0, #0 - bne _080AADCC - movs r0, #1 - strb r0, [r5, #0xc] - b _080AADE0 -_080AADCC: - movs r0, #3 - strb r0, [r5, #0xc] - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0x2c - strb r0, [r1] - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl ResolveEntityOnTop -_080AADE0: - ldrb r1, [r5, #0xa] - cmp r1, #0 - bne _080AAE64 - strb r1, [r5, #0xe] - movs r3, #4 - movs r0, #4 - strb r0, [r5, #0xf] - adds r0, r5, #0 - adds r0, #0x80 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - adds r1, r5, #0 - adds r1, #0x45 - movs r0, #0x10 - strb r0, [r1] - ldrh r0, [r5, #0x36] - adds r0, #4 - movs r4, #0 - strh r0, [r5, #0x36] - ldrb r2, [r5, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r5, #0x1b] - ldrb r0, [r5, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r5, #0x19] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2] - ldr r1, _080AAE60 @ =gPlayerEntity - adds r0, r5, #0 - bl GetFacingDirection - strb r0, [r5, #0x15] - adds r0, r5, #0 - adds r0, #0x86 - strb r4, [r0] - adds r1, r5, #0 - adds r1, #0x84 - movs r0, #0x96 - lsls r0, r0, #1 - strh r0, [r1] - movs r0, #0x18 - bl sub_080A7EE0 - adds r1, r0, #0 - cmp r1, #0 - beq _080AAE7C - movs r0, #1 - strb r0, [r1, #0xa] - ldrb r0, [r5, #0xb] - strb r0, [r1, #0xb] - str r5, [r1, #0x50] - b _080AAE7C - .align 2, 0 -_080AAE60: .4byte gPlayerEntity -_080AAE64: - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl ResolveEntityOnTop - ldrb r1, [r5, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl CopyPosition -_080AAE7C: - ldrb r1, [r5, #0xa] - adds r0, r5, #0 - bl InitializeAnimation - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080AAE88 -sub_080AAE88: @ 0x080AAE88 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #1 - beq _080AAED0 - cmp r0, #1 - bgt _080AAE9C - cmp r0, #0 - beq _080AAEA2 - b _080AAEF6 -_080AAE9C: - cmp r0, #2 - beq _080AAEE0 - b _080AAEF6 -_080AAEA2: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AAEC2 - movs r0, #4 - strb r0, [r4, #0xf] - ldr r1, _080AAECC @ =gPlayerEntity - adds r0, r4, #0 - bl GetFacingDirection - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 -_080AAEC2: - adds r0, r4, #0 - bl sub_0806F69C - b _080AAEF6 - .align 2, 0 -_080AAECC: .4byte gPlayerEntity -_080AAED0: - ldr r0, [r4, #0x50] - cmp r0, #0 - beq _080AAEDC - ldr r0, [r0, #4] - cmp r0, #0 - bne _080AAEE0 -_080AAEDC: - bl DeleteThisEntity -_080AAEE0: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0x18] - lsls r0, r0, #0x1e - cmp r0, #0 - bne _080AAEEE - bl DeleteThisEntity -_080AAEEE: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl CopyPosition -_080AAEF6: - adds r0, r4, #0 - bl sub_080AB034 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AAF00 -sub_080AAF00: @ 0x080AAF00 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AAF74 - adds r0, r4, #0 - bl sub_080AB034 - pop {r4, pc} - - thumb_func_start sub_080AAF10 -sub_080AAF10: @ 0x080AAF10 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl CopyPosition - adds r0, r4, #0 - bl sub_080AB034 - ldr r3, [r4, #0x50] - ldrb r1, [r3, #0x18] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1e - ldrb r2, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _080AAF48 - adds r0, r3, #0 - adds r0, #0x45 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x45 - strb r0, [r1] -_080AAF48: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #2 - bne _080AAF60 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080AAF70 - movs r0, #0x7f - ands r0, r1 - b _080AAF6E -_080AAF60: - ldrb r1, [r4, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080AAF70 - movs r0, #0x80 - orrs r0, r1 -_080AAF6E: - strb r0, [r4, #0x10] -_080AAF70: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AAF74 -sub_080AAF74: @ 0x080AAF74 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_0807953C - cmp r0, #0 - beq _080AAF94 - bl Random - adds r3, r5, #0 - adds r3, #0x80 - ldrb r1, [r3] - adds r1, #1 - movs r2, #1 - ands r0, r2 - adds r1, r1, r0 - strb r1, [r3] -_080AAF94: - ldrb r0, [r5, #0xe] - adds r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x3c - bne _080AAFCC - movs r0, #0x1e - strb r0, [r5, #0xe] - ldr r4, _080AAFFC @ =gPlayerEntity - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #8 - strb r0, [r1] - subs r0, #0xc - bl ModHealth - adds r0, r4, #0 - movs r1, #0x7a - bl sub_0800449C - adds r4, #0x45 - ldrb r1, [r4] - cmp r1, #0 - bne _080AAFCC - adds r0, r5, #0 - adds r0, #0x45 - strb r1, [r0] -_080AAFCC: - adds r1, r5, #0 - adds r1, #0x80 - ldrb r0, [r1] - cmp r0, #0x30 - bhi _080AAFE0 - adds r0, r5, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0x10 - bne _080AB004 -_080AAFE0: - movs r2, #0 - movs r0, #1 - strb r0, [r5, #0xc] - strb r2, [r1] - ldr r0, _080AAFFC @ =gPlayerEntity - adds r0, #0x3d - movs r1, #0xf0 - strb r1, [r0] - ldr r0, _080AB000 @ =gPlayerState - strb r2, [r0, #0x1a] - adds r0, r5, #0 - adds r0, #0x45 - strb r2, [r0] - b _080AB028 - .align 2, 0 -_080AAFFC: .4byte gPlayerEntity -_080AB000: .4byte gPlayerState -_080AB004: - bl ResetPlayer - ldr r2, _080AB02C @ =gPlayerState - ldrb r1, [r2, #0x1a] - movs r0, #0x80 - orrs r1, r0 - strb r1, [r2, #0x1a] - ldrb r1, [r2, #0xa] - orrs r0, r1 - strb r0, [r2, #0xa] - ldr r4, _080AB030 @ =gPlayerEntity - adds r0, r4, #0 - adds r1, r5, #0 - bl CopyPosition - ldrh r0, [r4, #0x36] - subs r0, #4 - strh r0, [r5, #0x36] -_080AB028: - pop {r4, r5, pc} - .align 2, 0 -_080AB02C: .4byte gPlayerState -_080AB030: .4byte gPlayerEntity - - thumb_func_start sub_080AB034 -sub_080AB034: @ 0x080AB034 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - adds r0, #0x5b - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - ldr r1, _080AB058 @ =0x00000139 - cmp r0, #0 - beq _080AB04E - movs r1, #0 -_080AB04E: - adds r0, r4, #0 - bl sub_0801D2B4 - pop {r4, pc} - .align 2, 0 -_080AB058: .4byte 0x00000139 diff --git a/asm/projectile/projectile19.s b/asm/projectile/projectile19.s deleted file mode 100644 index 5cef7868..00000000 --- a/asm/projectile/projectile19.s +++ /dev/null @@ -1,315 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Projectile19 -Projectile19: @ 0x080AB05C - push {lr} - ldr r2, _080AB070 @ =gUnk_0812A494 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080AB070: .4byte gUnk_0812A494 - - thumb_func_start sub_080AB074 -sub_080AB074: @ 0x080AB074 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - ldr r0, [r5, #4] - cmp r0, #0 - bne _080AB084 - bl DeleteThisEntity -_080AB084: - ldrb r6, [r4, #0xc] - cmp r6, #0 - bne _080AB0AA - adds r0, r4, #0 - bl sub_080AB12C - cmp r0, #0 - beq _080AB124 - movs r0, #1 - strb r0, [r4, #0xc] - strb r6, [r4, #0x1e] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #9 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2] -_080AB0AA: - ldr r0, [r4, #0x50] - adds r7, r5, #0 - adds r7, #0x7f - movs r3, #0 - ldrsb r3, [r7, r3] - rsbs r3, r3, #0 - subs r3, #0xa - adds r1, r4, #0 - movs r2, #0 - bl sub_0806FA90 - ldr r3, _080AB128 @ =gSineTable - adds r2, r5, #0 - adds r2, #0x7c - ldrb r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r3 - movs r6, #0 - ldrsh r1, [r0, r6] - adds r6, r5, #0 - adds r6, #0x7e - ldrb r0, [r6] - lsls r0, r0, #8 - muls r1, r0, r1 - ldr r0, [r4, #0x2c] - adds r0, r0, r1 - str r0, [r4, #0x2c] - ldrb r0, [r2] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r3 - movs r2, #0 - ldrsh r1, [r0, r2] - ldrb r0, [r6] - lsls r0, r0, #8 - muls r1, r0, r1 - ldr r0, [r4, #0x30] - subs r0, r0, r1 - str r0, [r4, #0x30] - movs r0, #0 - ldrsb r0, [r7, r0] - ldrh r6, [r4, #0x36] - adds r0, r0, r6 - strh r0, [r4, #0x36] - adds r0, r5, #0 - adds r0, #0x7b - ldrb r0, [r0] - cmp r0, #0 - beq _080AB124 - movs r0, #0x19 - bl sub_080A7EE0 - adds r5, r0, #0 - cmp r5, #0 - beq _080AB124 - movs r0, #4 - strb r0, [r5, #0xa] - adds r0, r4, #0 - adds r1, r5, #0 - bl CopyPositionAndSpriteOffset -_080AB124: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080AB128: .4byte gSineTable - - thumb_func_start sub_080AB12C -sub_080AB12C: @ 0x080AB12C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080AB168 @ =gEntCount - ldrb r0, [r0] - cmp r0, #0x44 - bhi _080AB16C - movs r0, #0x19 - bl sub_080A7EE0 - adds r1, r0, #0 - movs r0, #1 - strb r0, [r1, #0xa] - str r4, [r1, #0x50] - movs r0, #0x19 - bl sub_080A7EE0 - adds r1, r0, #0 - movs r0, #2 - strb r0, [r1, #0xa] - str r4, [r1, #0x50] - movs r0, #0x19 - bl sub_080A7EE0 - adds r1, r0, #0 - movs r0, #3 - strb r0, [r1, #0xa] - str r4, [r1, #0x50] - movs r0, #1 - b _080AB16E - .align 2, 0 -_080AB168: .4byte gEntCount -_080AB16C: - movs r0, #0 -_080AB16E: - pop {r4, pc} - - thumb_func_start sub_080AB170 -sub_080AB170: @ 0x080AB170 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r6, [r4, #0x50] - ldr r0, [r6, #4] - cmp r0, #0 - bne _080AB180 - bl DeleteThisEntity -_080AB180: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080AB1AA - movs r0, #1 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0x3a - ands r0, r1 - strb r0, [r2] - movs r0, #5 - strb r0, [r4, #0x1e] - ldrb r1, [r2] - subs r0, #0xd - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080AB1C8 @ =gUnk_080FD460 - str r0, [r4, #0x48] -_080AB1AA: - ldr r5, [r6, #0x50] - adds r0, r4, #0 - adds r0, #0x7c - adds r2, r5, #0 - adds r2, #0x7c - ldrb r1, [r0] - adds r3, r0, #0 - ldrb r2, [r2] - cmp r1, r2 - beq _080AB1CC - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - b _080AB1D2 - .align 2, 0 -_080AB1C8: .4byte gUnk_080FD460 -_080AB1CC: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 -_080AB1D2: - strb r0, [r4, #0x10] - adds r0, r5, #0 - adds r0, #0x7c - ldrb r0, [r0] - strb r0, [r3] - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _080AB208 - movs r0, #0x1f - ands r0, r1 - ldr r1, _080AB204 @ =gUnk_0812A4A8 - adds r0, r0, r1 - movs r2, #0 - ldrsb r2, [r0, r2] - movs r3, #1 - ldrsb r3, [r0, r3] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA90 - b _080AB216 - .align 2, 0 -_080AB204: .4byte gUnk_0812A4A8 -_080AB208: - movs r3, #0xa - rsbs r3, r3, #0 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - bl sub_0806FA90 -_080AB216: - movs r1, #0x2e - ldrsh r0, [r6, r1] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - ldrb r2, [r4, #0xa] - muls r0, r2, r0 - adds r3, r2, #0 - cmp r0, #0 - bge _080AB22C - adds r0, #3 -_080AB22C: - asrs r0, r0, #2 - ldrh r5, [r4, #0x2e] - adds r0, r0, r5 - strh r0, [r4, #0x2e] - movs r1, #0x32 - ldrsh r0, [r6, r1] - movs r5, #0x32 - ldrsh r1, [r4, r5] - subs r0, r0, r1 - muls r0, r3, r0 - cmp r0, #0 - bge _080AB246 - adds r0, #3 -_080AB246: - asrs r0, r0, #2 - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - movs r3, #0x36 - ldrsh r0, [r6, r3] - movs r5, #0x36 - ldrsh r1, [r4, r5] - subs r0, r0, r1 - muls r0, r2, r0 - cmp r0, #0 - bge _080AB260 - adds r0, #3 -_080AB260: - asrs r0, r0, #2 - ldrh r1, [r4, #0x36] - adds r0, r0, r1 - strh r0, [r4, #0x36] - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080AB26C -sub_080AB26C: @ 0x080AB26C - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0xc] - cmp r1, #0 - bne _080AB28C - movs r0, #1 - strb r0, [r2, #0xc] - movs r0, #5 - strb r0, [r2, #0xe] - strb r1, [r2, #0x1e] - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - subs r0, #0x3e - ands r0, r1 - strb r0, [r3] -_080AB28C: - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AB29E - bl DeleteThisEntity - b _080AB2A4 -_080AB29E: - ldrb r0, [r2, #0x1e] - adds r0, #1 - strb r0, [r2, #0x1e] -_080AB2A4: - pop {pc} - .align 2, 0 diff --git a/asm/projectile/projectile1A.s b/asm/projectile/projectile1A.s deleted file mode 100644 index b00c35a5..00000000 --- a/asm/projectile/projectile1A.s +++ /dev/null @@ -1,318 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Projectile1A -Projectile1A: @ 0x080AB2A8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080AB2C0 @ =gUnk_0812A4C8 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080AB2C0: .4byte gUnk_0812A4C8 - - thumb_func_start sub_080AB2C4 -sub_080AB2C4: @ 0x080AB2C4 - push {lr} - ldr r2, _080AB2D8 @ =gUnk_0812A4DC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080AB2D8: .4byte gUnk_0812A4DC - - thumb_func_start sub_080AB2DC -sub_080AB2DC: @ 0x080AB2DC - push {r4, r5, lr} - adds r2, r0, #0 - adds r5, r2, #0 - adds r5, #0x41 - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080AB314 - movs r0, #3 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x10] - movs r4, #0x7f - adds r0, r4, #0 - ands r0, r1 - strb r0, [r2, #0x10] - adds r0, r2, #0 - movs r1, #0x53 - bl InitializeAnimation - ldrb r0, [r5] - ands r4, r0 - cmp r4, #0 - bne _080AB314 - movs r0, #4 - rsbs r0, r0, #0 - bl ModHealth -_080AB314: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080AB318 -sub_080AB318: @ 0x080AB318 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - movs r4, #1 - movs r0, #1 - mov r8, r0 - mov r1, r8 - strb r1, [r6, #0xc] - ldr r0, _080AB3D8 @ =0xFFFF0000 - str r0, [r6, #0x20] - movs r2, #0x2e - ldrsh r1, [r6, r2] - ldr r2, _080AB3DC @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r6, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r6, #0 - adds r0, #0x76 - strh r1, [r0] - ldr r0, [r6, #0x50] - adds r1, r6, #0 - bl CopyPosition - movs r1, #0x80 - lsls r1, r1, #5 - ldrb r2, [r6, #0x15] - adds r0, r6, #0 - bl sub_0806F5BC - adds r2, r6, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r4 - strb r0, [r2] - ldr r0, [r6, #0x50] - ldr r0, [r0, #0x34] - str r0, [r6, #0x34] - adds r0, r6, #0 - movs r1, #0x51 - bl InitializeAnimation - ldr r0, _080AB3E0 @ =0x000001B5 - bl SoundReq - adds r0, r6, #0 - bl sub_080AB4F8 - movs r1, #0x2e - ldrsh r2, [r6, r1] - movs r1, #0 - ldrsb r1, [r0, r1] - adds r5, r2, r1 - movs r2, #0x32 - ldrsh r1, [r6, r2] - ldrb r0, [r0, #1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r7, r1, r0 - adds r0, r6, #0 - adds r1, r5, #0 - adds r2, r7, #0 - bl sub_080041DC - adds r4, r0, #0 - bl Random - adds r1, r0, #0 - ldr r0, _080AB3E4 @ =0x000001FF - ands r1, r0 - ldr r0, _080AB3E8 @ =gScreenTransition - ldr r0, [r0] - mov r2, r8 - ands r0, r2 - cmp r0, #0 - beq _080AB3EC - adds r4, r4, r1 - movs r0, #0x80 - lsls r0, r0, #3 - cmp r4, r0 - ble _080AB3F4 - adds r4, r0, #0 - b _080AB3F4 - .align 2, 0 -_080AB3D8: .4byte 0xFFFF0000 -_080AB3DC: .4byte gRoomControls -_080AB3E0: .4byte 0x000001B5 -_080AB3E4: .4byte 0x000001FF -_080AB3E8: .4byte gScreenTransition -_080AB3EC: - subs r4, r4, r1 - cmp r4, #0x1f - bgt _080AB3F4 - movs r4, #0x20 -_080AB3F4: - lsls r1, r4, #8 - ldr r0, [r6, #0x34] - bl __divsi3 - lsls r0, r0, #0xd - str r0, [r6, #0x20] - adds r0, r6, #0 - adds r1, r5, #0 - adds r2, r7, #0 - bl sub_080045B4 - strb r0, [r6, #0x15] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_080AB414 -sub_080AB414: @ 0x080AB414 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - movs r1, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _080AB446 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0xf - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0x54 - bl InitializeAnimation - adds r0, r4, #0 - bl sub_080AB4A4 - b _080AB458 -_080AB446: - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xe0 - bls _080AB458 - bl DeleteThisEntity -_080AB458: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AB45C -sub_080AB45C: @ 0x080AB45C - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080AB486 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #0x53 - bl InitializeAnimation -_080AB486: - pop {r4, pc} - - thumb_func_start sub_080AB488 -sub_080AB488: @ 0x080AB488 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r4, #0x5a - ldrb r1, [r4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080AB4A0 - bl DeleteThisEntity -_080AB4A0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AB4A4 -sub_080AB4A4: @ 0x080AB4A4 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r7, r6, #0 - adds r7, #0x76 - ldrh r4, [r7] - movs r1, #0x2e - ldrsh r0, [r6, r1] - ldr r3, _080AB4F4 @ =gRoomControls - ldrh r1, [r3, #6] - subs r0, r0, r1 - asrs r5, r0, #4 - movs r2, #0x3f - ands r5, r2 - movs r1, #0x32 - ldrsh r0, [r6, r1] - ldrh r1, [r3, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r5, r0 - cmp r4, r5 - beq _080AB4F2 - strh r5, [r7] - adds r0, r6, #0 - bl GetTileTypeByEntity - cmp r0, #0x13 - beq _080AB4E2 - cmp r0, #0x34 - bne _080AB4F2 -_080AB4E2: - movs r0, #0xd3 - lsls r0, r0, #2 - ldrh r1, [r7] - adds r2, r6, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0807B7D8 -_080AB4F2: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080AB4F4: .4byte gRoomControls - - thumb_func_start sub_080AB4F8 -sub_080AB4F8: @ 0x080AB4F8 - adds r1, r0, #0 - ldrb r0, [r1, #0xa] - lsls r0, r0, #5 - ldrb r1, [r1, #0xf] - lsls r1, r1, #1 - orrs r0, r1 - ldr r1, _080AB50C @ =gUnk_0812A4EC - adds r0, r0, r1 - bx lr - .align 2, 0 -_080AB50C: .4byte gUnk_0812A4EC diff --git a/asm/projectile/projectile1B.s b/asm/projectile/projectile1B.s deleted file mode 100644 index a58cae90..00000000 --- a/asm/projectile/projectile1B.s +++ /dev/null @@ -1,214 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Projectile1B -Projectile1B: @ 0x080AB510 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080AB528 @ =gUnk_0812A58C - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080AB528: .4byte gUnk_0812A58C - - thumb_func_start sub_080AB52C -sub_080AB52C: @ 0x080AB52C - push {lr} - ldr r2, _080AB540 @ =gUnk_0812A5A0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080AB540: .4byte gUnk_0812A5A0 - - thumb_func_start sub_080AB544 -sub_080AB544: @ 0x080AB544 - push {lr} - adds r2, r0, #0 - adds r0, #0x3d - movs r1, #0 - ldrsb r1, [r0, r1] - movs r0, #4 - rsbs r0, r0, #0 - cmp r1, r0 - bge _080AB57C - movs r1, #2 - movs r0, #2 - strb r0, [r2, #0xc] - adds r0, r2, #0 - adds r0, #0x3e - ldrb r0, [r0] - strb r0, [r2, #0x15] - ldrb r0, [r2, #0xa] - eors r1, r0 - lsls r1, r1, #3 - ldrb r0, [r2, #0x15] - subs r0, r0, r1 - adds r0, #1 - cmp r0, #2 - bhi _080AB576 - strb r1, [r2, #0x15] -_080AB576: - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r2, #0x24] -_080AB57C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080AB580 -sub_080AB580: @ 0x080AB580 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - ldrb r1, [r0, #0xa] - lsls r1, r1, #3 - strb r1, [r0, #0x15] - ldr r1, _080AB598 @ =0x0000FFFC - strh r1, [r0, #0x36] - ldrb r1, [r0, #0xa] - bl InitializeAnimation - pop {pc} - .align 2, 0 -_080AB598: .4byte 0x0000FFFC - - thumb_func_start sub_080AB59C -sub_080AB59C: @ 0x080AB59C - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080AF090 - cmp r0, #0 - bne _080AB5BC - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFx - bl DeleteThisEntity -_080AB5BC: - adds r0, r4, #0 - bl sub_080AB5F4 - pop {r4, pc} - - thumb_func_start sub_080AB5C4 -sub_080AB5C4: @ 0x080AB5C4 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080AF090 - adds r0, r4, #0 - bl sub_080AB634 - cmp r0, #0 - bne _080AB5F0 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _080AB5F0 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFx - bl DeleteThisEntity -_080AB5F0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AB5F4 -sub_080AB5F4: @ 0x080AB5F4 - push {r4, lr} - adds r4, r0, #0 - bl sub_080043E8 - cmp r0, #2 - beq _080AB61A - cmp r0, #2 - bhi _080AB60A - cmp r0, #1 - beq _080AB610 - b _080AB62E -_080AB60A: - cmp r0, #3 - beq _080AB624 - b _080AB62E -_080AB610: - adds r0, r4, #0 - bl CreateItemOnGround - movs r0, #1 - b _080AB630 -_080AB61A: - adds r0, r4, #0 - bl sub_080043A8 - movs r0, #1 - b _080AB630 -_080AB624: - adds r0, r4, #0 - bl CreateChestSpawner - movs r0, #1 - b _080AB630 -_080AB62E: - movs r0, #0 -_080AB630: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AB634 -sub_080AB634: @ 0x080AB634 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r0, [r6, #0x50] - movs r5, #0 - adds r4, r0, #0 - adds r4, #0x20 -_080AB640: - ldr r1, [r4] - cmp r1, #0 - beq _080AB684 - adds r0, r6, #0 - bl sub_080177A0 - cmp r0, #0 - beq _080AB684 - ldr r1, [r4] - ldrb r0, [r1, #0xc] - cmp r0, #2 - bhi _080AB67A - movs r0, #3 - strb r0, [r1, #0xc] - ldr r1, [r4] - movs r0, #0x1e - strb r0, [r1, #0xe] - ldr r2, [r4] - ldrb r0, [r2, #0x18] - movs r3, #4 - rsbs r3, r3, #0 - adds r1, r3, #0 - ands r0, r1 - strb r0, [r2, #0x18] - ldr r0, [r4] - movs r1, #0x45 - movs r2, #0 - bl CreateFx -_080AB67A: - adds r0, r6, #0 - bl DeleteEntity - movs r0, #1 - b _080AB68E -_080AB684: - adds r4, #4 - adds r5, #1 - cmp r5, #3 - bls _080AB640 - movs r0, #0 -_080AB68E: - pop {r4, r5, r6, pc} diff --git a/asm/projectile/projectile1C.s b/asm/projectile/projectile1C.s deleted file mode 100644 index fca5d110..00000000 --- a/asm/projectile/projectile1C.s +++ /dev/null @@ -1,310 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Projectile1C -Projectile1C: @ 0x080AB690 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0x18] - lsls r0, r0, #0x1e - cmp r0, #0 - bne _080AB6A2 - bl DeleteThisEntity -_080AB6A2: - ldr r0, _080AB6B4 @ =gUnk_0812A5E8 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080AB6B4: .4byte gUnk_0812A5E8 - - thumb_func_start sub_080AB6B8 -sub_080AB6B8: @ 0x080AB6B8 - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #0x50] - ldr r0, [r0, #0x2c] - str r0, [r2, #0x74] - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _080AB6E8 - movs r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] - ldr r0, _080AB6E4 @ =gUnk_0812A614 - str r0, [r2, #0x48] - adds r0, r2, #0 - movs r1, #0 - bl InitializeAnimation - b _080AB6F8 - .align 2, 0 -_080AB6E4: .4byte gUnk_0812A614 -_080AB6E8: - movs r0, #2 - strb r0, [r2, #0xc] - movs r0, #4 - strb r0, [r2, #0xf] - ldrb r1, [r2, #0xe] - adds r0, r2, #0 - bl InitializeAnimation -_080AB6F8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080AB6FC -sub_080AB6FC: @ 0x080AB6FC - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080AB724 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl InitializeAnimation - adds r0, r4, #0 - bl sub_080AB758 -_080AB724: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AB728 -sub_080AB728: @ 0x080AB728 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - ldr r2, [r4, #0x50] - ldr r1, [r2, #0x2c] - ldr r0, [r4, #0x74] - subs r1, r1, r0 - ldr r0, [r4, #0x2c] - adds r0, r0, r1 - str r0, [r4, #0x2c] - ldr r0, [r2, #0x2c] - str r0, [r4, #0x74] - adds r0, r4, #0 - bl sub_080AB888 - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - cmp r0, #0 - bne _080AB754 - bl DeleteThisEntity -_080AB754: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AB758 -sub_080AB758: @ 0x080AB758 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r5, r0, #0 - movs r6, #6 - movs r7, #0 - movs r4, #0 - movs r0, #0x32 - ldrsh r2, [r5, r0] - ldr r1, _080AB818 @ =gRoomControls - ldrh r0, [r1, #8] - adds r0, #0xd4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r1 - cmp r2, r0 - bhi _080AB7B4 - movs r3, #7 -_080AB77E: - adds r0, r4, #0 - ands r0, r3 - cmp r0, #7 - bne _080AB798 - adds r0, r5, #0 - movs r1, #4 - adds r2, r6, #0 - str r3, [sp] - bl sub_080AB844 - adds r6, #0x3e - adds r7, #0x3e - ldr r3, [sp] -_080AB798: - adds r4, #1 - ands r4, r3 - movs r1, #0x32 - ldrsh r0, [r5, r1] - adds r0, r0, r7 - lsls r1, r4, #3 - adds r2, r0, r1 - ldr r0, _080AB818 @ =gRoomControls - ldrh r0, [r0, #8] - adds r0, #0xd4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r2, r0 - bls _080AB77E -_080AB7B4: - movs r4, #0 - movs r1, #0x32 - ldrsh r0, [r5, r1] - adds r2, r0, r7 - mov r1, r8 - ldrh r0, [r1, #8] - adds r0, #0xd4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r2, r0 - bhi _080AB802 - movs r3, #3 -_080AB7CC: - adds r0, r4, #0 - ands r0, r3 - cmp r0, #3 - bne _080AB7E6 - adds r0, r5, #0 - movs r1, #3 - adds r2, r6, #0 - str r3, [sp] - bl sub_080AB844 - adds r6, #0x1e - adds r7, #0x1e - ldr r3, [sp] -_080AB7E6: - adds r4, #1 - ands r4, r3 - movs r1, #0x32 - ldrsh r0, [r5, r1] - adds r0, r0, r7 - lsls r1, r4, #3 - adds r2, r0, r1 - ldr r0, _080AB818 @ =gRoomControls - ldrh r0, [r0, #8] - adds r0, #0xd4 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r2, r0 - bls _080AB7CC -_080AB802: - movs r0, #2 - ands r0, r4 - cmp r0, #0 - beq _080AB81C - adds r0, r5, #0 - movs r1, #2 - adds r2, r6, #0 - bl sub_080AB844 - adds r6, #0xe - b _080AB830 - .align 2, 0 -_080AB818: .4byte gRoomControls -_080AB81C: - movs r0, #1 - ands r4, r0 - cmp r4, #0 - beq _080AB830 - adds r0, r5, #0 - movs r1, #1 - adds r2, r6, #0 - bl sub_080AB844 - adds r6, #6 -_080AB830: - adds r0, r5, #0 - movs r1, #6 - adds r2, r6, #0 - bl sub_080AB844 - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_080AB844 -sub_080AB844: @ 0x080AB844 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r7, r1, #0 - adds r6, r2, #0 - movs r0, #0x1c - bl sub_080A7EE0 - adds r4, r0, #0 - cmp r4, #0 - beq _080AB880 - movs r0, #1 - strb r0, [r4, #0xa] - strb r7, [r4, #0xe] - ldr r0, [r5, #0x50] - str r0, [r4, #0x50] - lsls r3, r6, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - cmp r7, #1 - beq _080AB87C - ldr r0, _080AB878 @ =gUnk_0812A61C - b _080AB87E - .align 2, 0 -_080AB878: .4byte gUnk_0812A61C -_080AB87C: - ldr r0, _080AB884 @ =gUnk_0812A614 -_080AB87E: - str r0, [r4, #0x48] -_080AB880: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080AB884: .4byte gUnk_0812A614 - - thumb_func_start sub_080AB888 -sub_080AB888: @ 0x080AB888 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xf] - subs r0, #1 - strb r0, [r2, #0xf] - movs r3, #0 - ldrb r0, [r2, #0xe] - cmp r0, #3 - beq _080AB8A4 - cmp r0, #3 - ble _080AB8B6 - cmp r0, #4 - beq _080AB8A6 - b _080AB8B6 -_080AB8A4: - movs r3, #1 -_080AB8A6: - ldr r0, _080AB8C4 @ =gUnk_0812A5F4 - ldrb r1, [r2, #0xf] - lsls r1, r1, #1 - adds r1, r1, r3 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [r2, #0x48] -_080AB8B6: - ldrb r0, [r2, #0xf] - cmp r0, #0 - bne _080AB8C0 - movs r0, #4 - strb r0, [r2, #0xf] -_080AB8C0: - pop {pc} - .align 2, 0 -_080AB8C4: .4byte gUnk_0812A5F4 diff --git a/asm/projectile/projectile1D.s b/asm/projectile/projectile1D.s deleted file mode 100644 index bece4fd6..00000000 --- a/asm/projectile/projectile1D.s +++ /dev/null @@ -1,216 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Projectile1D -Projectile1D: @ 0x080AB8C8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080AB8E4 @ =gUnk_0812A6B4 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_080AB9DC - pop {r4, pc} - .align 2, 0 -_080AB8E4: .4byte gUnk_0812A6B4 - - thumb_func_start sub_080AB8E8 -sub_080AB8E8: @ 0x080AB8E8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - movs r1, #0 - strb r0, [r4, #0xc] - movs r0, #0xa0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - str r1, [r4, #0x34] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080AB90E - bl Random - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - str r4, [r4, #0x50] -_080AB90E: - adds r0, r4, #0 - movs r1, #0 - bl InitializeAnimation - ldrb r0, [r4, #0xa] - cmp r0, #3 - bhi _080AB936 - movs r0, #0x1d - bl sub_080A7EE0 - adds r1, r0, #0 - ldrb r0, [r4, #0xa] - adds r0, #1 - strb r0, [r1, #0xa] - ldr r0, [r4, #0x50] - str r0, [r1, #0x50] - str r4, [r1, #0x54] - adds r0, r4, #0 - bl CopyPosition -_080AB936: - adds r1, r4, #0 - adds r1, #0x68 - movs r2, #7 -_080AB93C: - ldrh r0, [r4, #0x2e] - strh r0, [r1] - adds r1, #2 - ldrh r0, [r4, #0x32] - strh r0, [r1] - adds r1, #2 - subs r2, #1 - cmp r2, #0 - bge _080AB93C - pop {r4, pc} - - thumb_func_start sub_080AB950 -sub_080AB950: @ 0x080AB950 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080AB99C - adds r0, r4, #0 - bl ProcessMovement - ldrb r0, [r4, #0x15] - lsrs r0, r0, #3 - ldr r1, _080AB994 @ =gUnk_0812A6C4 - lsls r5, r0, #1 - adds r1, r5, r1 - ldrh r1, [r1] - ldrh r0, [r4, #0x2a] - ands r0, r1 - cmp r0, #0 - bne _080AB980 - ldrb r1, [r4, #0x15] - adds r0, r4, #0 - bl sub_080AB9FC - cmp r0, #0 - beq _080AB9D4 -_080AB980: - bl Random - ldr r2, _080AB998 @ =gUnk_0812A6BC - movs r1, #1 - ands r1, r0 - adds r1, r1, r5 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4, #0x15] - b _080AB9D4 - .align 2, 0 -_080AB994: .4byte gUnk_0812A6C4 -_080AB998: .4byte gUnk_0812A6BC -_080AB99C: - ldr r0, [r4, #0x50] - cmp r0, #0 - bne _080AB9A6 - bl DeleteThisEntity -_080AB9A6: - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _080AB9B2 - bl DeleteThisEntity -_080AB9B2: - ldr r1, [r4, #0x54] - cmp r1, #0 - beq _080AB9D0 - ldr r0, [r1, #4] - cmp r0, #0 - beq _080AB9D0 - adds r0, r1, #0 - adds r0, #0x68 - ldrh r0, [r0] - strh r0, [r4, #0x2e] - adds r0, r1, #0 - adds r0, #0x6a - ldrh r0, [r0] - strh r0, [r4, #0x32] - b _080AB9D4 -_080AB9D0: - bl DeleteThisEntity -_080AB9D4: - adds r0, r4, #0 - bl GetNextFrame - pop {r4, r5, pc} - - thumb_func_start sub_080AB9DC -sub_080AB9DC: @ 0x080AB9DC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x6c - adds r1, r4, #0 - adds r1, #0x68 - movs r2, #0x1c - bl MemCopy - ldrh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x84 - strh r1, [r0] - ldrh r1, [r4, #0x32] - adds r0, #2 - strh r1, [r0] - pop {r4, pc} - - thumb_func_start sub_080AB9FC -sub_080AB9FC: @ 0x080AB9FC - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r0, #0x38 - ldrb r0, [r0] - bl GetLayerByIndex - movs r1, #0x2e - ldrsh r3, [r5, r1] - ldr r2, _080ABA4C @ =gRoomControls - ldrh r1, [r2, #6] - subs r3, r3, r1 - asrs r3, r3, #4 - movs r6, #0x3f - ands r3, r6 - movs r7, #0x32 - ldrsh r1, [r5, r7] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r6 - lsls r1, r1, #6 - orrs r3, r1 - ldr r1, _080ABA50 @ =gUnk_080B4488 - lsrs r4, r4, #3 - lsls r4, r4, #1 - adds r4, r4, r1 - movs r2, #0 - ldrsh r1, [r4, r2] - adds r3, r3, r1 - ldr r7, _080ABA54 @ =0x00002004 - adds r0, r0, r7 - adds r0, r0, r3 - ldrb r0, [r0] - cmp r0, #0x1f - bls _080ABA58 - cmp r0, #0x3f - bhi _080ABA58 - movs r0, #1 - b _080ABA5A - .align 2, 0 -_080ABA4C: .4byte gRoomControls -_080ABA50: .4byte gUnk_080B4488 -_080ABA54: .4byte 0x00002004 -_080ABA58: - movs r0, #0 -_080ABA5A: - pop {r4, r5, r6, r7, pc} diff --git a/asm/projectile/projectile1F.s b/asm/projectile/projectile1F.s deleted file mode 100644 index b1087eaa..00000000 --- a/asm/projectile/projectile1F.s +++ /dev/null @@ -1,472 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Projectile1F -Projectile1F: @ 0x080ABB8C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080ABBA4 @ =gUnk_0812A7D4 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080ABBA4: .4byte gUnk_0812A7D4 - - thumb_func_start sub_080ABBA8 -sub_080ABBA8: @ 0x080ABBA8 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #1 - beq _080ABBC4 - cmp r0, #1 - bgt _080ABBDC - cmp r0, #0 - bne _080ABBDC - ldr r0, _080ABBC0 @ =gUnk_0812A7EC - b _080ABBC6 - .align 2, 0 -_080ABBC0: .4byte gUnk_0812A7EC -_080ABBC4: - ldr r0, _080ABBD8 @ =gUnk_0812A7F8 -_080ABBC6: - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _080ABBEC - .align 2, 0 -_080ABBD8: .4byte gUnk_0812A7F8 -_080ABBDC: - ldr r0, _080ABBF0 @ =gUnk_0812A800 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 -_080ABBEC: - pop {pc} - .align 2, 0 -_080ABBF0: .4byte gUnk_0812A800 - - thumb_func_start sub_080ABBF4 -sub_080ABBF4: @ 0x080ABBF4 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080ABC52 - ldrb r0, [r4, #0xa] - cmp r0, #0 - blt _080ABC52 - cmp r0, #1 - ble _080ABC3E - cmp r0, #2 - bne _080ABC52 - movs r0, #0x3f - ands r0, r1 - cmp r0, #3 - beq _080ABC32 - cmp r0, #3 - bgt _080ABC24 - cmp r0, #0 - beq _080ABC2A - b _080ABC52 -_080ABC24: - cmp r0, #0x14 - beq _080ABC32 - b _080ABC52 -_080ABC2A: - movs r0, #4 - rsbs r0, r0, #0 - bl ModHealth -_080ABC32: - adds r0, r4, #0 - bl CreateDust - bl DeleteThisEntity - b _080ABC52 -_080ABC3E: - movs r0, #0x3f - ands r0, r1 - cmp r0, #0 - bne _080ABC52 - movs r0, #2 - rsbs r0, r0, #0 - bl ModHealth - bl DeleteThisEntity -_080ABC52: - pop {r4, pc} - - thumb_func_start sub_080ABC54 -sub_080ABC54: @ 0x080ABC54 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F520 - cmp r0, #0 - bne _080ABC6E - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFx - bl DeleteThisEntity -_080ABC6E: - ldr r0, _080ABC80 @ =gUnk_0812A808 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080ABC80: .4byte gUnk_0812A808 - - thumb_func_start sub_080ABC84 -sub_080ABC84: @ 0x080ABC84 - movs r1, #2 - strb r1, [r0, #0xd] - bx lr - .align 2, 0 - - thumb_func_start nullsub_542 -nullsub_542: @ 0x080ABC8C - bx lr - .align 2, 0 - - thumb_func_start sub_080ABC90 -sub_080ABC90: @ 0x080ABC90 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _080ABCBE - movs r0, #2 - rsbs r0, r0, #0 - bl ModHealth - ldr r0, _080ABCC0 @ =gPlayerEntity - movs r1, #0x7a - bl sub_0800449C - bl sub_08079D84 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFx - bl DeleteThisEntity -_080ABCBE: - pop {r4, pc} - .align 2, 0 -_080ABCC0: .4byte gPlayerEntity - - thumb_func_start sub_080ABCC4 -sub_080ABCC4: @ 0x080ABCC4 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - movs r0, #1 - strb r0, [r5, #0xc] - bl Random - movs r1, #0x3f - ands r0, r1 - adds r0, #0x30 - strb r0, [r5, #0xe] - strb r4, [r5, #0xf] - bl Random - movs r1, #0x1f - ands r0, r1 - strb r0, [r5, #0x15] - movs r0, #0x2e - ldrsh r1, [r5, r0] - ldr r2, _080ABD3C @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r4, #0x32 - ldrsh r0, [r5, r4] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r5, #0 - adds r0, #0x74 - strh r1, [r0] - ldrh r0, [r0] - movs r1, #2 - bl GetTileType - adds r1, r5, #0 - adds r1, #0x76 - strh r0, [r1] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, #0 - movs r1, #0 - bl InitializeAnimation - ldr r0, _080ABD40 @ =0x0000014B - bl SoundReq - pop {r4, r5, pc} - .align 2, 0 -_080ABD3C: .4byte gRoomControls -_080ABD40: .4byte 0x0000014B - - thumb_func_start sub_080ABD44 -sub_080ABD44: @ 0x080ABD44 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080ABD60 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl InitializeAnimation -_080ABD60: - adds r0, r4, #0 - bl sub_080AF090 - adds r0, r4, #0 - bl GetNextFrame - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080ABD70 -sub_080ABD70: @ 0x080ABD70 - push {r4, r5, lr} - adds r5, r0, #0 - bl GetNextFrame - adds r2, r5, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080ABDEE - movs r0, #0xef - ands r0, r1 - movs r1, #0 - strb r0, [r2] - strh r1, [r5, #0x24] - movs r0, #0x2e - ldrsh r1, [r5, r0] - ldr r2, _080ABDDC @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r4, #0x32 - ldrsh r0, [r5, r4] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r4, r5, #0 - adds r4, #0x74 - strh r1, [r4] - ldrh r0, [r4] - movs r1, #2 - bl GetTileType - adds r1, r5, #0 - adds r1, #0x76 - strh r0, [r1] - ldrh r1, [r1] - cmp r1, #0x13 - beq _080ABDE4 - ldr r0, _080ABDE0 @ =0x00000315 - cmp r1, r0 - bne _080ABDEE - ldrh r1, [r4] - movs r0, #0x6e - movs r2, #2 - bl SetTileType - b _080ABDEE - .align 2, 0 -_080ABDDC: .4byte gRoomControls -_080ABDE0: .4byte 0x00000315 -_080ABDE4: - ldrh r1, [r4] - movs r0, #0x6d - movs r2, #2 - bl SetTileType -_080ABDEE: - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080ABE00 - bl DeleteThisEntity -_080ABE00: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080ABE04 -sub_080ABE04: @ 0x080ABE04 - push {r4, r5, lr} - adds r4, r0, #0 - bl Random - adds r5, r0, #0 - movs r0, #0xff - ands r5, r0 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _080ABE48 @ =0xFFFF0000 - str r0, [r4, #0x20] - ldrh r0, [r4, #0x36] - subs r0, #0xa0 - strh r0, [r4, #0x36] - ldr r3, _080ABE4C @ =gRoomControls - ldrh r2, [r3, #6] - ldr r1, _080ABE50 @ =0x00007FF0 - adds r0, r1, #0 - ands r0, r2 - movs r2, #8 - orrs r0, r2 - strh r0, [r4, #0x2e] - ldrh r0, [r3, #8] - ands r1, r0 - orrs r1, r2 - strh r1, [r4, #0x32] - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r0, #0x10 - ands r0, r5 - cmp r0, #0 - beq _080ABE54 - adds r1, #0x10 - b _080ABE56 - .align 2, 0 -_080ABE48: .4byte 0xFFFF0000 -_080ABE4C: .4byte gRoomControls -_080ABE50: .4byte 0x00007FF0 -_080ABE54: - adds r1, #0xc0 -_080ABE56: - movs r0, #0xe0 - ands r0, r5 - lsrs r0, r0, #1 - adds r0, r1, r0 - strh r0, [r4, #0x2e] - movs r0, #0xf - ands r5, r0 - lsls r0, r5, #4 - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl sub_08004168 - adds r0, r4, #0 - movs r1, #0 - bl InitializeAnimation - ldr r0, _080ABE84 @ =0x0000012D - bl SoundReq - pop {r4, r5, pc} - .align 2, 0 -_080ABE84: .4byte 0x0000012D - - thumb_func_start sub_080ABE88 -sub_080ABE88: @ 0x080ABE88 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xc0 - lsls r1, r1, #5 - bl sub_08003FC4 - cmp r0, #0 - bne _080ABEA6 - adds r0, r4, #0 - movs r1, #4 - movs r2, #0 - bl CreateFx - bl DeleteThisEntity -_080ABEA6: - pop {r4, pc} - - thumb_func_start sub_080ABEA8 -sub_080ABEA8: @ 0x080ABEA8 - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - strb r2, [r4, #0xc] - movs r0, #0x60 - strb r0, [r4, #0xe] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r1, [r3] - subs r0, #0x68 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r3] - strb r2, [r4, #0x1c] - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _080ABEDA - bl Random - movs r1, #0xf - ands r0, r1 - lsls r0, r0, #1 - strb r0, [r4, #0x15] - b _080ABEEC -_080ABEDA: - adds r0, r4, #0 - movs r1, #0 - bl sub_08049F84 - strb r0, [r4, #0x15] - ldr r1, _080ABEFC @ =0x0000013F - adds r0, r4, #0 - bl sub_0801D2B4 -_080ABEEC: - adds r0, r4, #0 - movs r1, #0 - bl InitializeAnimation - ldr r0, _080ABF00 @ =0x00000193 - bl SoundReq - pop {r4, pc} - .align 2, 0 -_080ABEFC: .4byte 0x0000013F -_080ABF00: .4byte 0x00000193 - - thumb_func_start sub_080ABF04 -sub_080ABF04: @ 0x080ABF04 - push {r4, lr} - adds r4, r0, #0 - bl sub_080040A8 - cmp r0, #0 - bne _080ABF14 - bl DeleteThisEntity -_080ABF14: - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl GetNextFrame - pop {r4, pc} - .align 2, 0 diff --git a/asm/projectile/projectile2.s b/asm/projectile/projectile2.s deleted file mode 100644 index 4ebe500a..00000000 --- a/asm/projectile/projectile2.s +++ /dev/null @@ -1,196 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Projectile2 -Projectile2: @ 0x080A8190 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A81A8 @ =gUnk_0812960C - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A81A8: .4byte gUnk_0812960C - - thumb_func_start sub_080A81AC -sub_080A81AC: @ 0x080A81AC - push {lr} - ldr r2, _080A81C0 @ =gUnk_08129620 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A81C0: .4byte gUnk_08129620 - - thumb_func_start sub_080A81C4 -sub_080A81C4: @ 0x080A81C4 - push {lr} - adds r1, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x80 - bne _080A81D8 - adds r0, r1, #0 - bl DeleteEntity - b _080A81DE -_080A81D8: - adds r0, r1, #0 - bl sub_080A82D8 -_080A81DE: - pop {pc} - - thumb_func_start sub_080A81E0 -sub_080A81E0: @ 0x080A81E0 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0x3c - strb r1, [r0, #0xe] - ldr r1, _080A81F8 @ =0x0000FFFE - strh r1, [r0, #0x36] - movs r1, #0 - bl InitializeAnimation - pop {pc} - .align 2, 0 -_080A81F8: .4byte 0x0000FFFE - - thumb_func_start sub_080A81FC -sub_080A81FC: @ 0x080A81FC - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080AF090 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - bne _080A8240 - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080A8222 - adds r0, r4, #0 - bl DeleteEntity - b _080A8246 -_080A8222: - adds r0, r4, #0 - bl sub_08016AD2 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A8246 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x90 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - b _080A8246 -_080A8240: - adds r0, r4, #0 - bl sub_080A82D8 -_080A8246: - pop {r4, pc} - - thumb_func_start sub_080A8248 -sub_080A8248: @ 0x080A8248 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080AF090 - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _080A827A - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #0xe0 - strh r0, [r4, #0x24] - movs r0, #0xe0 - lsls r0, r0, #8 - str r0, [r4, #0x20] -_080A827A: - pop {r4, pc} - - thumb_func_start sub_080A827C -sub_080A827C: @ 0x080A827C - push {r4, lr} - adds r4, r0, #0 - ldrb r2, [r4, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - subs r0, #5 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl GetNextFrame - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #0 - bne _080A82B2 - adds r0, r4, #0 - bl DeleteEntity -_080A82B2: - pop {r4, pc} - - thumb_func_start sub_080A82B4 -sub_080A82B4: @ 0x080A82B4 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_0806F69C - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _080A82D6 - adds r0, r4, #0 - bl DeleteEntity -_080A82D6: - pop {r4, pc} - - thumb_func_start sub_080A82D8 -sub_080A82D8: @ 0x080A82D8 - movs r1, #4 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - movs r1, #0x80 - lsls r1, r1, #9 - str r1, [r0, #0x20] - ldrb r1, [r0, #0x15] - movs r2, #0x10 - eors r1, r2 - strb r1, [r0, #0x15] - movs r1, #0x80 - strh r1, [r0, #0x24] - bx lr diff --git a/asm/projectile/projectile20.s b/asm/projectile/projectile20.s deleted file mode 100644 index 327322d7..00000000 --- a/asm/projectile/projectile20.s +++ /dev/null @@ -1,76 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Projectile20 -Projectile20: @ 0x080ABF24 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080ABF3C @ =gUnk_0812A84C - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080ABF3C: .4byte gUnk_0812A84C - - thumb_func_start sub_080ABF40 -sub_080ABF40: @ 0x080ABF40 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080ABF66 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r1, _080ABFA0 @ =gPlayerEntity - adds r0, r4, #0 - bl GetFacingDirection - strb r0, [r4, #0x15] - adds r0, r4, #0 - movs r1, #0 - bl InitializeAnimation - ldr r0, _080ABFA4 @ =0x00000199 - bl SoundReq -_080ABF66: - ldrh r2, [r4, #0x36] - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #6 - rsbs r0, r0, #0 - cmp r1, r0 - bge _080ABF78 - adds r0, r2, #2 - strh r0, [r4, #0x36] -_080ABF78: - adds r0, r4, #0 - bl sub_080AF090 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _080ABF88 - bl DeleteThisEntity -_080ABF88: - adds r0, r4, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080ABF9C - bl DeleteThisEntity -_080ABF9C: - pop {r4, pc} - .align 2, 0 -_080ABFA0: .4byte gPlayerEntity -_080ABFA4: .4byte 0x00000199 - - thumb_func_start sub_080ABFA8 -sub_080ABFA8: @ 0x080ABFA8 - push {lr} - bl DeleteThisEntity - pop {pc} diff --git a/asm/projectile/projectile21.s b/asm/projectile/projectile21.s deleted file mode 100644 index 01e362d8..00000000 --- a/asm/projectile/projectile21.s +++ /dev/null @@ -1,371 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Projectile21 -Projectile21: @ 0x080ABFB0 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080ABFC8 @ =gUnk_0812A954 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080ABFC8: .4byte gUnk_0812A954 - - thumb_func_start sub_080ABFCC -sub_080ABFCC: @ 0x080ABFCC - push {lr} - ldr r2, _080ABFE0 @ =gUnk_0812A968 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080ABFE0: .4byte gUnk_0812A968 - - thumb_func_start sub_080ABFE4 -sub_080ABFE4: @ 0x080ABFE4 - push {lr} - bl DeleteThisEntity - pop {pc} - - thumb_func_start sub_080ABFEC -sub_080ABFEC: @ 0x080ABFEC - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xa] - adds r1, #1 - bl InitializeAnimation - ldrb r1, [r4, #0xa] - cmp r1, #0 - beq _080AC030 - cmp r1, #1 - beq _080AC048 - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xe] - movs r0, #0xff - strb r0, [r4, #0xf] - ldr r1, _080AC028 @ =gUnk_0812A97C - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x44 - movs r0, #0x88 - strb r0, [r1] - ldr r0, _080AC02C @ =0x00000193 - b _080AC06A - .align 2, 0 -_080AC028: .4byte gUnk_0812A97C -_080AC02C: .4byte 0x00000193 -_080AC030: - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xe] - movs r0, #7 - strb r0, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x85 - movs r0, #0x18 - strb r0, [r1] - subs r1, #0x41 - movs r0, #0x88 - b _080AC058 -_080AC048: - strb r1, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x85 - movs r0, #0x18 -_080AC058: - strb r0, [r1] - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl CopyPositionAndSpriteOffset - ldrh r0, [r4, #0x36] - subs r0, #0x14 - strh r0, [r4, #0x36] - ldr r0, _080AC070 @ =0x00000149 -_080AC06A: - bl SoundReq - pop {r4, pc} - .align 2, 0 -_080AC070: .4byte 0x00000149 - - thumb_func_start sub_080AC074 -sub_080AC074: @ 0x080AC074 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _080AC084 - bl DeleteThisEntity -_080AC084: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl CopyPositionAndSpriteOffset - ldrh r0, [r4, #0x36] - subs r0, #0x14 - strh r0, [r4, #0x36] - adds r1, r4, #0 - adds r1, #0x85 - ldrb r0, [r1] - cmp r0, #0 - beq _080AC0B2 - subs r0, #1 - strb r0, [r1] - movs r1, #0xff - ands r0, r1 - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _080AC0B2 - ldr r0, _080AC0E8 @ =0x00000149 - bl SoundReq -_080AC0B2: - adds r0, r4, #0 - bl GetNextFrame - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080AC0FE - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080AC0F0 - movs r0, #2 - strb r0, [r4, #0xc] - ldr r1, _080AC0EC @ =gPlayerEntity - adds r0, r4, #0 - bl GetFacingDirection - strb r0, [r4, #0x15] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - adds r0, #0x13 - bl SoundReq - b _080AC0F8 - .align 2, 0 -_080AC0E8: .4byte 0x00000149 -_080AC0EC: .4byte gPlayerEntity -_080AC0F0: - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x10 - strb r0, [r4, #0xe] -_080AC0F8: - ldrh r0, [r4, #0x36] - subs r0, #0x28 - strh r0, [r4, #0x36] -_080AC0FE: - pop {r4, pc} - - thumb_func_start sub_080AC100 -sub_080AC100: @ 0x080AC100 - push {r4, lr} - adds r4, r0, #0 - ldrh r2, [r4, #0x36] - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #6 - rsbs r0, r0, #0 - cmp r1, r0 - bge _080AC116 - adds r0, r2, #3 - strh r0, [r4, #0x36] -_080AC116: - adds r0, r4, #0 - bl sub_080AF090 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _080AC126 - bl DeleteThisEntity -_080AC126: - adds r0, r4, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080AC13A - bl DeleteThisEntity -_080AC13A: - ldrb r0, [r4, #0xe] - cmp r0, #0x1d - bhi _080AC160 - adds r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xff - ands r0, r1 - ldrb r1, [r4, #0xf] - ands r0, r1 - cmp r0, #0 - bne _080AC160 - ldr r1, _080AC164 @ =gPlayerEntity - adds r0, r4, #0 - bl GetFacingDirection - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 -_080AC160: - pop {r4, pc} - .align 2, 0 -_080AC164: .4byte gPlayerEntity - - thumb_func_start sub_080AC168 -sub_080AC168: @ 0x080AC168 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl GetNextFrame - ldr r0, [r4, #0x34] - ldr r1, _080AC1C0 @ =0xFFFF8000 - adds r0, r0, r1 - str r0, [r4, #0x34] - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - bne _080AC1F8 - movs r0, #4 - strb r0, [r4, #0xc] - strb r0, [r4, #0xe] - bl Random - adds r5, r0, #0 - movs r0, #7 - ands r5, r0 - ldr r0, _080AC1C4 @ =gUnk_0812A982 - adds r0, r5, r0 - ldrb r0, [r0] - strb r0, [r4, #0xf] - ldr r1, _080AC1C8 @ =gPlayerEntity - adds r0, r4, #0 - bl GetFacingDirection - adds r1, r0, #0 - ldr r0, [r4, #0x50] - adds r0, #0x84 - ldrb r0, [r0] - cmp r0, #3 - bne _080AC1D0 - ldr r0, _080AC1CC @ =gUnk_0812A98A - adds r0, r5, r0 - ldrb r0, [r0] - subs r1, r1, r0 - strb r6, [r4, #0xb] - b _080AC1F2 - .align 2, 0 -_080AC1C0: .4byte 0xFFFF8000 -_080AC1C4: .4byte gUnk_0812A982 -_080AC1C8: .4byte gPlayerEntity -_080AC1CC: .4byte gUnk_0812A98A -_080AC1D0: - cmp r0, #2 - bne _080AC1E4 - ldr r0, _080AC1E0 @ =gUnk_0812A98A - adds r0, r5, r0 - ldrb r0, [r0] - subs r1, r1, r0 - movs r0, #1 - b _080AC1F0 - .align 2, 0 -_080AC1E0: .4byte gUnk_0812A98A -_080AC1E4: - ldr r0, _080AC1FC @ =gUnk_0812A98A - adds r0, r5, r0 - ldrb r0, [r0] - lsrs r0, r0, #1 - subs r1, r1, r0 - movs r0, #2 -_080AC1F0: - strb r0, [r4, #0xb] -_080AC1F2: - movs r0, #0x1f - ands r1, r0 - strb r1, [r4, #0x15] -_080AC1F8: - pop {r4, r5, r6, pc} - .align 2, 0 -_080AC1FC: .4byte gUnk_0812A98A - - thumb_func_start sub_080AC200 -sub_080AC200: @ 0x080AC200 - push {r4, r5, lr} - adds r4, r0, #0 - bl GetNextFrame - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r5, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AC270 - movs r0, #0x10 - strb r0, [r4, #0xe] - movs r0, #0x21 - bl sub_080A7EE0 - adds r1, r0, #0 - cmp r1, #0 - beq _080AC23C - movs r0, #2 - strb r0, [r1, #0xa] - ldrb r0, [r4, #0xb] - strb r0, [r1, #0xb] - ldrb r0, [r4, #0x15] - strb r0, [r1, #0x15] - ldr r0, [r4, #0x50] - str r0, [r1, #0x50] - adds r0, r4, #0 - bl CopyPosition -_080AC23C: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r5 - cmp r0, #0 - bne _080AC24C - bl DeleteThisEntity -_080AC24C: - ldr r0, [r4, #0x50] - adds r0, #0x84 - ldrb r0, [r0] - cmp r0, #3 - bne _080AC25C - ldrb r0, [r4, #0x15] - adds r0, #3 - b _080AC26A -_080AC25C: - cmp r0, #2 - bne _080AC266 - ldrb r0, [r4, #0x15] - adds r0, #3 - b _080AC26A -_080AC266: - ldrb r0, [r4, #0x15] - adds r0, #2 -_080AC26A: - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] -_080AC270: - pop {r4, r5, pc} - .align 2, 0 diff --git a/asm/projectile/projectile22.s b/asm/projectile/projectile22.s deleted file mode 100644 index e98f7eae..00000000 --- a/asm/projectile/projectile22.s +++ /dev/null @@ -1,848 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Projectile22 -Projectile22: @ 0x080AC274 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _080AC284 - bl DeleteThisEntity -_080AC284: - ldr r1, _080AC2BC @ =gUnk_0812A994 - ldrb r0, [r4, #0xb] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080AC2C0 - ldrb r0, [r4, #0x1b] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - orrs r0, r1 - strb r0, [r4, #0x19] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - b _080AC324 - .align 2, 0 -_080AC2BC: .4byte gUnk_0812A994 -_080AC2C0: - ldr r5, [r4, #0x50] - ldrb r2, [r5, #0x1b] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r3, [r4, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r4, #0x1b] - ldrb r0, [r5, #0x19] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r4, #0x19] - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #0x19] - adds r0, r5, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - subs r1, #2 - adds r3, r4, #0 - adds r3, #0x29 - movs r0, #7 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrb r0, [r5, #0x19] - lsrs r0, r0, #6 - cmp r0, #3 - bne _080AC31C - adds r0, r5, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #0 - bne _080AC31C - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - b _080AC322 -_080AC31C: - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 -_080AC322: - strb r0, [r4, #0x10] -_080AC324: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080AC328 -sub_080AC328: @ 0x080AC328 - push {lr} - ldr r2, _080AC33C @ =gUnk_0812A9A8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080AC33C: .4byte gUnk_0812A9A8 - - thumb_func_start sub_080AC340 -sub_080AC340: @ 0x080AC340 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_080AC5E4 - cmp r0, #0 - beq _080AC380 - movs r2, #1 - movs r4, #1 - strb r4, [r5, #0xc] - movs r0, #0xc - strb r0, [r5, #0x1e] - ldrb r1, [r5, #0x18] - subs r0, #0x10 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - bl Random - ldr r1, _080AC384 @ =gUnk_0812A9B4 - ands r0, r4 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - adds r1, r5, #0 - adds r1, #0x7a - strh r0, [r1] - subs r1, #0x42 - movs r0, #2 - strb r0, [r1] - adds r0, r5, #0 - bl sub_080AC388 -_080AC380: - pop {r4, r5, pc} - .align 2, 0 -_080AC384: .4byte gUnk_0812A9B4 - - thumb_func_start sub_080AC388 -sub_080AC388: @ 0x080AC388 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r5, r0, #0 - ldr r1, _080AC3E4 @ =gUnk_0812A9B8 - ldrb r0, [r5, #0xa] - adds r0, r0, r1 - ldrb r3, [r0] - ldr r0, [r5, #0x50] - mov sl, r0 - ldrb r0, [r0, #0x14] - movs r1, #0x80 - mov sb, r1 - mov r1, sb - eors r1, r0 - adds r6, r5, #0 - adds r6, #0x7c - ldrh r4, [r6] - lsrs r0, r4, #8 - subs r1, r1, r0 - adds r2, r5, #0 - adds r2, #0x7a - ldrh r7, [r2] - mov ip, r7 - movs r7, #0 - ldrsh r0, [r2, r7] - cmp r0, #0 - bge _080AC404 - subs r0, r1, r3 - movs r7, #0xff - mov r8, r7 - ands r0, r7 - cmp r0, #0x7f - bhi _080AC3E8 - movs r1, #0 - ldrsh r0, [r2, r1] - rsbs r0, r0, #0 - strh r0, [r2] - mov r2, sl - ldrb r0, [r2, #0x14] - mov r7, sb - eors r0, r7 - subs r0, r0, r3 - b _080AC422 - .align 2, 0 -_080AC3E4: .4byte gUnk_0812A9B8 -_080AC3E8: - mov r2, ip - adds r0, r4, r2 - strh r0, [r6] - adds r0, r1, r3 - mov r7, r8 - ands r0, r7 - cmp r0, #0x80 - bls _080AC45A - mov r1, sl - ldrb r0, [r1, #0x14] - mov r2, sb - eors r0, r2 - adds r0, r0, r3 - b _080AC44E -_080AC404: - adds r0, r1, r3 - movs r7, #0xff - mov r8, r7 - ands r0, r7 - cmp r0, #0x80 - bls _080AC432 - movs r1, #0 - ldrsh r0, [r2, r1] - rsbs r0, r0, #0 - strh r0, [r2] - mov r2, sl - ldrb r0, [r2, #0x14] - mov r7, sb - eors r0, r7 - adds r0, r0, r3 -_080AC422: - movs r1, #0xff - ands r0, r1 - lsls r0, r0, #8 - strh r0, [r6] - adds r0, r5, #0 - bl sub_080AC884 - b _080AC45A -_080AC432: - mov r2, ip - adds r0, r4, r2 - strh r0, [r6] - subs r0, r1, r3 - mov r7, r8 - ands r0, r7 - subs r0, #1 - cmp r0, #0x7e - bhi _080AC45A - mov r1, sl - ldrb r0, [r1, #0x14] - mov r2, sb - eors r0, r2 - subs r0, r0, r3 -_080AC44E: - movs r1, #0xff - ands r0, r1 - lsls r0, r0, #8 - movs r1, #0x80 - orrs r0, r1 - strh r0, [r6] -_080AC45A: - adds r0, r5, #0 - adds r0, #0x7c - ldrh r0, [r0] - lsrs r0, r0, #8 - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_080AC6F0 - adds r0, r5, #0 - bl sub_080AC760 - adds r0, r5, #0 - bl sub_080AC7C4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080AC480 -sub_080AC480: @ 0x080AC480 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xe] - cmp r1, #0 - beq _080AC4BE - ldr r0, [r4, #0x50] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080AC4A2 - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x1d - strb r0, [r1] - b _080AC50A -_080AC4A2: - subs r0, r1, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AC50A - adds r0, r4, #0 - adds r0, #0x3f - movs r1, #0x1c - strb r1, [r0] - movs r0, #0x8b - lsls r0, r0, #1 - bl SoundReq - b _080AC50A -_080AC4BE: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AC4D6 - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x1d - strb r0, [r1] -_080AC4D6: - adds r1, r4, #0 - adds r1, #0x7c - ldrh r2, [r1] - adds r0, r4, #0 - adds r0, #0x7a - movs r3, #0 - ldrsh r0, [r0, r3] - cmp r0, #0 - ble _080AC4EE - movs r3, #0xc0 - lsls r3, r3, #2 - b _080AC4F0 -_080AC4EE: - ldr r3, _080AC50C @ =0xFFFFFD00 -_080AC4F0: - adds r0, r2, r3 - strh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_080AC6F0 - adds r0, r4, #0 - bl sub_080AC760 - adds r0, r4, #0 - bl sub_080AC7C4 -_080AC50A: - pop {r4, pc} - .align 2, 0 -_080AC50C: .4byte 0xFFFFFD00 - - thumb_func_start sub_080AC510 -sub_080AC510: @ 0x080AC510 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080AC556 - movs r3, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r2, _080AC558 @ =gUnk_0812A9BA - ldrb r1, [r4, #0xa] - lsls r0, r1, #1 - adds r0, r0, r1 - ldrb r1, [r4, #0xb] - adds r0, r0, r1 - subs r0, #1 - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r3 - strb r0, [r4, #0x18] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - ldrh r1, [r4, #0xa] - movs r0, #0xc0 - lsls r0, r0, #2 - cmp r1, r0 - bne _080AC556 - ldr r0, _080AC55C @ =gUnk_080FD458 - str r0, [r4, #0x48] -_080AC556: - pop {r4, pc} - .align 2, 0 -_080AC558: .4byte gUnk_0812A9BA -_080AC55C: .4byte gUnk_080FD458 - - thumb_func_start sub_080AC560 -sub_080AC560: @ 0x080AC560 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x54] - ldr r0, [r5, #4] - cmp r0, #0 - bne _080AC570 - bl DeleteThisEntity -_080AC570: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080AC5A6 - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080AC590 - ldr r0, _080AC58C @ =gUnk_080FD168 - b _080AC592 - .align 2, 0 -_080AC58C: .4byte gUnk_080FD168 -_080AC590: - ldr r0, _080AC5DC @ =gUnk_080FD448 -_080AC592: - str r0, [r4, #0x48] - movs r0, #0xff - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] -_080AC5A6: - adds r0, r4, #0 - adds r0, #0x79 - ldrb r2, [r0] - lsls r2, r2, #8 - ldr r3, _080AC5E0 @ =gSineTable - ldrb r0, [r5, #0x15] - lsls r0, r0, #1 - adds r0, r0, r3 - movs r1, #0 - ldrsh r0, [r0, r1] - adds r1, r0, #0 - muls r1, r2, r1 - ldr r0, [r5, #0x2c] - adds r0, r0, r1 - str r0, [r4, #0x2c] - ldrb r0, [r5, #0x15] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r3 - movs r1, #0 - ldrsh r0, [r0, r1] - adds r1, r0, #0 - muls r1, r2, r1 - ldr r0, [r5, #0x30] - subs r0, r0, r1 - str r0, [r4, #0x30] - pop {r4, r5, pc} - .align 2, 0 -_080AC5DC: .4byte gUnk_080FD448 -_080AC5E0: .4byte gSineTable - - thumb_func_start sub_080AC5E4 -sub_080AC5E4: @ 0x080AC5E4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - ldrb r4, [r5, #0xa] - cmp r4, #0 - bne _080AC668 - ldr r0, _080AC664 @ =gEntCount - ldrb r0, [r0] - cmp r0, #0x43 - bhi _080AC670 - adds r1, r5, #0 - adds r1, #0x79 - movs r0, #0x11 - strb r0, [r1] - movs r0, #0x22 - bl sub_080A7EE0 - adds r6, r0, #0 - ldrb r0, [r5, #0xa] - strb r0, [r6, #0xa] - movs r0, #1 - strb r0, [r6, #0xb] - ldr r0, [r5, #0x50] - str r0, [r6, #0x50] - adds r1, r6, #0 - adds r1, #0x79 - movs r0, #0x12 - strb r0, [r1] - str r6, [r5, #0x54] - movs r0, #0x22 - bl sub_080A7EE0 - adds r7, r0, #0 - ldrb r0, [r5, #0xa] - strb r0, [r7, #0xa] - movs r0, #2 - strb r0, [r7, #0xb] - ldr r0, [r5, #0x50] - str r0, [r7, #0x50] - adds r0, r7, #0 - adds r0, #0x79 - movs r1, #0x14 - mov r8, r1 - mov r1, r8 - strb r1, [r0] - str r7, [r6, #0x54] - movs r0, #0x22 - bl sub_080A7EE0 - ldrb r1, [r5, #0xa] - strb r1, [r0, #0xa] - movs r1, #3 - strb r1, [r0, #0xb] - ldr r1, [r5, #0x50] - str r1, [r0, #0x50] - str r4, [r0, #0x54] - adds r1, r0, #0 - adds r1, #0x79 - strb r4, [r1] - str r0, [r7, #0x54] - b _080AC6C8 - .align 2, 0 -_080AC664: .4byte gEntCount -_080AC668: - ldr r0, _080AC674 @ =gEntCount - ldrb r0, [r0] - cmp r0, #0x44 - bls _080AC678 -_080AC670: - movs r0, #0 - b _080AC6E8 - .align 2, 0 -_080AC674: .4byte gEntCount -_080AC678: - adds r1, r5, #0 - adds r1, #0x79 - movs r0, #0 - mov sb, r0 - movs r0, #0xf - strb r0, [r1] - movs r0, #0x22 - bl sub_080A7EE0 - adds r6, r0, #0 - ldrb r0, [r5, #0xa] - strb r0, [r6, #0xa] - movs r0, #1 - strb r0, [r6, #0xb] - ldr r0, [r5, #0x50] - str r0, [r6, #0x50] - adds r0, r6, #0 - adds r0, #0x79 - movs r1, #0x10 - mov r8, r1 - mov r1, r8 - strb r1, [r0] - str r6, [r5, #0x54] - movs r0, #0x22 - bl sub_080A7EE0 - adds r7, r0, #0 - ldrb r0, [r5, #0xa] - strb r0, [r7, #0xa] - movs r0, #2 - strb r0, [r7, #0xb] - ldr r0, [r5, #0x50] - str r0, [r7, #0x50] - mov r0, sb - str r0, [r7, #0x54] - adds r1, r7, #0 - adds r1, #0x79 - movs r0, #0x20 - strb r0, [r1] - str r7, [r6, #0x54] -_080AC6C8: - movs r0, #0x22 - bl sub_080A7EE0 - adds r6, r0, #0 - ldrb r0, [r5, #0xa] - strb r0, [r6, #0xa] - movs r0, #4 - strb r0, [r6, #0xb] - ldr r0, [r5, #0x50] - str r0, [r6, #0x50] - str r5, [r6, #0x54] - adds r0, r6, #0 - adds r0, #0x79 - mov r1, r8 - strb r1, [r0] - movs r0, #1 -_080AC6E8: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080AC6F0 -sub_080AC6F0: @ 0x080AC6F0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x15] - movs r2, #0x1f - ands r2, r0 - lsrs r0, r0, #5 - lsls r1, r0, #1 - adds r3, r1, r0 - ldr r1, _080AC724 @ =gUnk_0812A9C0 - ldrb r0, [r4, #0x14] - adds r0, r0, r1 - ldrb r0, [r0] - subs r0, r0, r3 - adds r5, r1, #0 - cmp r0, #3 - bhi _080AC73A - cmp r0, #1 - beq _080AC72E - cmp r0, #1 - blo _080AC728 - cmp r0, #2 - beq _080AC732 - cmp r2, #0x19 - bhi _080AC75C - b _080AC73A - .align 2, 0 -_080AC724: .4byte gUnk_0812A9C0 -_080AC728: - cmp r2, #6 - bls _080AC75C - b _080AC73A -_080AC72E: - subs r0, r2, #5 - b _080AC736 -_080AC732: - adds r0, r2, #0 - subs r0, #0xf -_080AC736: - cmp r0, #0xc - bls _080AC75C -_080AC73A: - adds r0, r3, #3 - cmp r2, #0x1a - bhi _080AC74E - adds r0, r3, #2 - cmp r2, #0x10 - bhi _080AC74E - adds r0, r3, #0 - cmp r2, #5 - bls _080AC74E - adds r0, #1 -_080AC74E: - movs r1, #0x18 - bl __modsi3 - strb r0, [r4, #0x14] - adds r0, r0, r5 - ldrb r0, [r0] - strb r0, [r4, #0x1e] -_080AC75C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080AC760 -sub_080AC760: @ 0x080AC760 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r4, [r6, #0x54] - ldrb r0, [r4, #0x15] - ldrb r3, [r6, #0x15] - subs r2, r0, r3 - movs r1, #0xff - ands r2, r1 - adds r0, r2, #0 - adds r0, #8 - ands r0, r1 - cmp r0, #0x10 - ble _080AC78A - cmp r2, #0x80 - ble _080AC784 - adds r0, r3, #0 - subs r0, #8 - b _080AC788 -_080AC784: - adds r0, r3, #0 - adds r0, #8 -_080AC788: - strb r0, [r4, #0x15] -_080AC78A: - ldr r5, [r4, #0x54] - ldr r0, [r5, #0x54] - cmp r0, #0 - bne _080AC79C - ldr r0, [r6, #0x50] - ldrb r0, [r0, #0x14] - movs r1, #0x80 - eors r0, r1 - b _080AC7BE -_080AC79C: - ldrb r0, [r5, #0x15] - ldrb r3, [r4, #0x15] - subs r2, r0, r3 - movs r1, #0xff - ands r2, r1 - adds r0, r2, #0 - adds r0, #8 - ands r0, r1 - cmp r0, #0x10 - ble _080AC7C0 - cmp r2, #0x80 - ble _080AC7BA - adds r0, r3, #0 - subs r0, #8 - b _080AC7BE -_080AC7BA: - adds r0, r3, #0 - adds r0, #8 -_080AC7BE: - strb r0, [r5, #0x15] -_080AC7C0: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080AC7C4 -sub_080AC7C4: @ 0x080AC7C4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r4, r0, #0 - ldr r0, [r4, #0x54] - mov r8, r0 - ldr r7, [r0, #0x54] - ldr r5, [r7, #0x54] - cmp r5, #0 - beq _080AC7E4 - ldr r0, [r4, #0x50] - adds r1, r5, #0 - bl CopyPosition - b _080AC7E6 -_080AC7E4: - ldr r5, [r4, #0x50] -_080AC7E6: - adds r0, r7, #0 - adds r0, #0x79 - ldrb r2, [r0] - lsls r2, r2, #8 - ldr r3, _080AC880 @ =gSineTable - mov sb, r3 - ldrb r1, [r7, #0x15] - lsls r0, r1, #1 - add r0, sb - movs r3, #0 - ldrsh r0, [r0, r3] - adds r6, r0, #0 - muls r6, r2, r6 - adds r1, #0x40 - lsls r1, r1, #1 - add r1, sb - movs r3, #0 - ldrsh r0, [r1, r3] - muls r0, r2, r0 - rsbs r3, r0, #0 - adds r0, r5, #0 - adds r1, r7, #0 - adds r2, r6, #0 - bl PositionRelative - mov r0, r8 - adds r0, #0x79 - ldrb r2, [r0] - lsls r2, r2, #8 - mov r0, r8 - ldrb r1, [r0, #0x15] - lsls r0, r1, #1 - add r0, sb - movs r3, #0 - ldrsh r0, [r0, r3] - adds r6, r0, #0 - muls r6, r2, r6 - adds r1, #0x40 - lsls r1, r1, #1 - add r1, sb - movs r3, #0 - ldrsh r0, [r1, r3] - muls r0, r2, r0 - rsbs r3, r0, #0 - adds r0, r7, #0 - mov r1, r8 - adds r2, r6, #0 - bl PositionRelative - adds r0, r4, #0 - adds r0, #0x79 - ldrb r2, [r0] - lsls r2, r2, #8 - ldrb r1, [r4, #0x15] - lsls r0, r1, #1 - add r0, sb - movs r3, #0 - ldrsh r0, [r0, r3] - adds r6, r0, #0 - muls r6, r2, r6 - adds r1, #0x40 - lsls r1, r1, #1 - add r1, sb - movs r3, #0 - ldrsh r0, [r1, r3] - muls r0, r2, r0 - rsbs r3, r0, #0 - mov r0, r8 - adds r1, r4, #0 - adds r2, r6, #0 - bl PositionRelative - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080AC880: .4byte gSineTable - - thumb_func_start sub_080AC884 -sub_080AC884: @ 0x080AC884 - push {lr} - adds r1, r0, #0 - ldr r0, [r1, #0x50] - adds r2, r0, #0 - adds r2, #0x72 - ldrh r0, [r2] - cmp r0, #0 - beq _080AC8A4 - movs r0, #0 - strh r0, [r2] - movs r0, #2 - strb r0, [r1, #0xc] - movs r0, #0x3c - strb r0, [r1, #0xe] - movs r0, #0x56 - strb r0, [r1, #0xf] -_080AC8A4: - pop {pc} - .align 2, 0 diff --git a/asm/projectile/projectile23.s b/asm/projectile/projectile23.s deleted file mode 100644 index a85dd813..00000000 --- a/asm/projectile/projectile23.s +++ /dev/null @@ -1,208 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Projectile23 -Projectile23: @ 0x080AC8A8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080AC8C0 @ =gUnk_0812A9D8 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080AC8C0: .4byte gUnk_0812A9D8 - - thumb_func_start sub_080AC8C4 -sub_080AC8C4: @ 0x080AC8C4 - push {lr} - ldr r2, _080AC8D8 @ =gUnk_0812A9EC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080AC8D8: .4byte gUnk_0812A9EC - - thumb_func_start sub_080AC8DC -sub_080AC8DC: @ 0x080AC8DC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0 - blt _080AC8FE - cmp r1, #3 - ble _080AC8F8 - cmp r1, #0x1f - bgt _080AC8FE - cmp r1, #0x1e - blt _080AC8FE -_080AC8F8: - bl DeleteThisEntity - b _080AC920 -_080AC8FE: - ldrb r0, [r4, #0xc] - cmp r0, #3 - beq _080AC920 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrh r0, [r4, #0x24] - lsls r0, r0, #0x10 - asrs r0, r0, #0x11 - strh r0, [r4, #0x24] - adds r0, r4, #0 - movs r1, #1 - bl InitializeAnimation -_080AC920: - adds r0, r4, #0 - bl sub_080AC8C4 - pop {r4, pc} - - thumb_func_start sub_080AC928 -sub_080AC928: @ 0x080AC928 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl UpdateSpriteForCollisionLayer - adds r0, r4, #0 - movs r1, #0 - bl InitializeAnimation - adds r0, r4, #0 - bl sub_080AC954 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080AC954 -sub_080AC954: @ 0x080AC954 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, [r5, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _080AC964 - bl DeleteThisEntity -_080AC964: - ldr r0, [r5, #0x50] - ldrb r3, [r0, #0x14] - ldr r4, _080AC9C4 @ =gSineTable - lsls r1, r3, #1 - adds r1, r1, r4 - movs r2, #0 - ldrsh r1, [r1, r2] - lsls r2, r1, #2 - adds r2, r2, r1 - lsls r2, r2, #0xb - adds r3, #0x40 - lsls r3, r3, #1 - adds r3, r3, r4 - movs r4, #0 - ldrsh r1, [r3, r4] - lsls r3, r1, #2 - adds r3, r3, r1 - lsls r3, r3, #0xb - rsbs r3, r3, #0 - adds r1, r5, #0 - bl PositionRelative - adds r0, r5, #0 - bl GetNextFrame - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080AC9C0 - movs r0, #2 - strb r0, [r5, #0xc] - ldrb r0, [r5, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - ldr r1, _080AC9C8 @ =gPlayerEntity - adds r0, r5, #0 - bl GetFacingDirection - strb r0, [r5, #0x15] - movs r0, #0x97 - lsls r0, r0, #1 - bl SoundReq -_080AC9C0: - pop {r4, r5, pc} - .align 2, 0 -_080AC9C4: .4byte gSineTable -_080AC9C8: .4byte gPlayerEntity - - thumb_func_start sub_080AC9CC -sub_080AC9CC: @ 0x080AC9CC - push {r4, lr} - adds r4, r0, #0 - bl sub_080AF090 - adds r0, r4, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080AC9E8 - bl DeleteThisEntity -_080AC9E8: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080ACA10 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrh r0, [r4, #0x24] - lsls r0, r0, #0x10 - asrs r0, r0, #0x11 - strh r0, [r4, #0x24] - adds r0, r4, #0 - movs r1, #1 - bl InitializeAnimation -_080ACA10: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080ACA14 -sub_080ACA14: @ 0x080ACA14 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AF090 - adds r0, r4, #0 - bl GetNextFrame - adds r4, #0x5a - ldrb r1, [r4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080ACA32 - bl DeleteThisEntity -_080ACA32: - pop {r4, pc} diff --git a/asm/projectile/projectile24.s b/asm/projectile/projectile24.s deleted file mode 100644 index 6e88da2f..00000000 --- a/asm/projectile/projectile24.s +++ /dev/null @@ -1,227 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Projectile24 -Projectile24: @ 0x080ACA34 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080ACA4C @ =gUnk_0812AA5C - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080ACA4C: .4byte gUnk_0812AA5C - - thumb_func_start sub_080ACA50 -sub_080ACA50: @ 0x080ACA50 - push {lr} - ldr r2, _080ACA64 @ =gUnk_0812AA74 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080ACA64: .4byte gUnk_0812AA74 - - thumb_func_start sub_080ACA68 -sub_080ACA68: @ 0x080ACA68 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0xc - bgt _080ACA82 - cmp r1, #0xa - bge _080ACA86 - cmp r1, #6 - beq _080ACA86 - b _080ACAC0 -_080ACA82: - cmp r1, #0x1a - bne _080ACAC0 -_080ACA86: - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r1, #0 - ldrh r1, [r4, #0x24] - adds r0, r0, r1 - strh r0, [r4, #0x24] - ldr r0, [r4, #0x4c] - str r0, [r4, #0x54] - adds r0, r4, #0 - bl sub_080ACB40 - cmp r0, #0 - beq _080ACAB0 - movs r0, #0 - b _080ACAB6 -_080ACAB0: - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] -_080ACAB6: - strb r0, [r4, #0x15] - movs r0, #0xd8 - bl SoundReq - b _080ACAC4 -_080ACAC0: - bl DeleteThisEntity -_080ACAC4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080ACAC8 -sub_080ACAC8: @ 0x080ACAC8 - push {lr} - movs r2, #0 - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0x10 - strb r1, [r0, #0x15] - ldr r1, _080ACAE8 @ =0x0000FFFC - strh r1, [r0, #0x36] - str r2, [r0, #0x54] - movs r1, #7 - bl InitializeAnimation - ldr r0, _080ACAEC @ =0x00000199 - bl SoundReq - pop {pc} - .align 2, 0 -_080ACAE8: .4byte 0x0000FFFC -_080ACAEC: .4byte 0x00000199 - - thumb_func_start sub_080ACAF0 -sub_080ACAF0: @ 0x080ACAF0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AF090 - adds r0, r4, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080ACB0C - bl DeleteThisEntity -_080ACB0C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080ACB10 -sub_080ACB10: @ 0x080ACB10 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AF090 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _080ACB22 - bl DeleteThisEntity -_080ACB22: - adds r0, r4, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080ACB90 - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080ACB3C - bl DeleteThisEntity -_080ACB3C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080ACB40 -sub_080ACB40: @ 0x080ACB40 - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #0x50] - ldr r1, [r0, #0x50] - ldr r3, [r2, #0x54] - ldr r0, [r1, #0x64] - ldr r0, [r0, #0x1c] - ldr r0, [r0, #0x54] - cmp r0, r2 - beq _080ACB5A - ldr r0, [r0, #0x54] - cmp r3, r0 - beq _080ACB86 -_080ACB5A: - ldr r1, [r1, #0x64] - ldr r0, [r1, #0x20] - ldr r0, [r0, #0x54] - cmp r0, r2 - beq _080ACB6A - ldr r0, [r0, #0x54] - cmp r3, r0 - beq _080ACB86 -_080ACB6A: - ldr r0, [r1, #0x24] - ldr r0, [r0, #0x54] - cmp r0, r2 - beq _080ACB78 - ldr r0, [r0, #0x54] - cmp r3, r0 - beq _080ACB86 -_080ACB78: - ldr r0, [r1, #0x28] - ldr r0, [r0, #0x54] - cmp r0, r2 - beq _080ACB8A - ldr r0, [r0, #0x54] - cmp r3, r0 - bne _080ACB8A -_080ACB86: - movs r0, #0 - b _080ACB8C -_080ACB8A: - movs r0, #1 -_080ACB8C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080ACB90 -sub_080ACB90: @ 0x080ACB90 - push {r4, lr} - adds r2, r0, #0 - ldr r3, [r2, #0x50] - movs r0, #0x2e - ldrsh r1, [r2, r0] - movs r4, #0x2e - ldrsh r0, [r3, r4] - cmp r1, r0 - bne _080ACBC6 - movs r0, #0x32 - ldrsh r1, [r2, r0] - movs r4, #0x32 - ldrsh r0, [r3, r4] - cmp r1, r0 - bgt _080ACBC6 - movs r0, #1 - strb r0, [r3, #0xf] - adds r0, r2, #0 - movs r1, #0x1f - movs r2, #0x40 - bl CreateFx - ldr r0, _080ACBC8 @ =0x00000119 - bl EnqueueSFX - bl DeleteThisEntity -_080ACBC6: - pop {r4, pc} - .align 2, 0 -_080ACBC8: .4byte 0x00000119 diff --git a/asm/projectile/projectile3.s b/asm/projectile/projectile3.s deleted file mode 100644 index 89599f32..00000000 --- a/asm/projectile/projectile3.s +++ /dev/null @@ -1,185 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Projectile3 -Projectile3: @ 0x080A82F8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A8310 @ =gUnk_08129650 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A8310: .4byte gUnk_08129650 - - thumb_func_start sub_080A8314 -sub_080A8314: @ 0x080A8314 - push {lr} - ldr r2, _080A8328 @ =gUnk_08129664 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A8328: .4byte gUnk_08129664 - - thumb_func_start sub_080A832C -sub_080A832C: @ 0x080A832C - push {lr} - adds r3, r0, #0 - adds r2, r3, #0 - adds r2, #0x41 - ldrb r0, [r2] - cmp r0, #0x80 - bne _080A8358 - adds r1, r3, #0 - adds r1, #0x3d - movs r0, #0x10 - strb r0, [r1] - adds r1, #5 - movs r0, #0xc - strb r0, [r1] - adds r1, #4 - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r1] - ldr r0, [r3, #0x50] - ldrb r1, [r2] - adds r0, #0x41 - strb r1, [r0] -_080A8358: - adds r0, r3, #0 - adds r0, #0x3d - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A836A - ldr r0, [r3, #0x50] - b _080A836E -_080A836A: - ldr r0, [r3, #0x50] - rsbs r1, r1, #0 -_080A836E: - adds r0, #0x3d - strb r1, [r0] - ldr r0, [r3, #0x50] - movs r1, #0x42 - adds r1, r1, r3 - mov ip, r1 - ldrb r1, [r1] - adds r0, #0x42 - strb r1, [r0] - ldr r0, [r3, #0x50] - adds r1, r3, #0 - adds r1, #0x46 - ldrh r1, [r1] - adds r0, #0x46 - movs r2, #0 - strh r1, [r0] - ldr r0, [r3, #0x50] - adds r1, r3, #0 - adds r1, #0x3e - ldrb r1, [r1] - adds r0, #0x3e - strb r1, [r0] - mov r0, ip - strb r2, [r0] - pop {pc} - - thumb_func_start sub_080A83A0 -sub_080A83A0: @ 0x080A83A0 - push {r4, lr} - adds r4, r0, #0 - bl AllocMutableHitbox - cmp r0, #0 - beq _080A83B0 - movs r0, #1 - strb r0, [r4, #0xc] -_080A83B0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A83B4 -sub_080A83B4: @ 0x080A83B4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - cmp r5, #0 - bne _080A83C2 - bl DeleteThisEntity -_080A83C2: - ldr r0, [r5, #4] - cmp r0, #0 - bne _080A83CC - bl DeleteThisEntity -_080A83CC: - adds r0, r5, #0 - adds r0, #0x5a - ldrb r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x18 - ldr r1, _080A8424 @ =gUnk_0812966C - adds r2, r0, r1 - ldr r1, [r4, #0x48] - ldrb r0, [r2] - strb r0, [r1] - adds r2, #1 - adds r0, r5, #0 - adds r0, #0x5b - ldrb r0, [r0] - cmp r0, #0x40 - bne _080A83F4 - ldr r1, [r4, #0x48] - ldrb r0, [r1] - rsbs r0, r0, #0 - strb r0, [r1] -_080A83F4: - ldr r1, [r4, #0x48] - ldrb r0, [r2] - strb r0, [r1, #1] - adds r2, #1 - ldr r1, [r4, #0x48] - ldrb r0, [r2] - strb r0, [r1, #6] - ldr r1, [r4, #0x48] - ldrb r0, [r2, #1] - strb r0, [r1, #7] - adds r0, r5, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _080A8428 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A8438 - movs r0, #0x7f - ands r0, r1 - b _080A8436 - .align 2, 0 -_080A8424: .4byte gUnk_0812966C -_080A8428: - ldrb r1, [r4, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080A8438 - movs r0, #0x80 - orrs r0, r1 -_080A8436: - strb r0, [r4, #0x10] -_080A8438: - pop {r4, r5, pc} - .align 2, 0 diff --git a/asm/projectile/projectile4.s b/asm/projectile/projectile4.s deleted file mode 100644 index 09529b17..00000000 --- a/asm/projectile/projectile4.s +++ /dev/null @@ -1,335 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Projectile4 -Projectile4: @ 0x080A843C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A8454 @ =gUnk_081296F0 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A8454: .4byte gUnk_081296F0 - - thumb_func_start sub_080A8458 -sub_080A8458: @ 0x080A8458 - push {lr} - ldr r2, _080A846C @ =gUnk_08129704 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A846C: .4byte gUnk_08129704 - - thumb_func_start sub_080A8470 -sub_080A8470: @ 0x080A8470 - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x41 - ldrb r0, [r2] - cmp r0, #0x80 - bne _080A8496 - adds r0, r4, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #0x68 - bne _080A848E - movs r0, #0x86 - bl EnqueueSFX -_080A848E: - adds r0, r4, #0 - bl DeleteEntity - b _080A84C6 -_080A8496: - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - ldrb r0, [r2] - adds r0, #0x7e - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _080A84B8 - adds r0, r4, #0 - bl sub_080A8680 - b _080A84C6 -_080A84B8: - adds r0, r4, #0 - movs r1, #0x19 - bl InitializeAnimation - adds r0, r4, #0 - bl sub_080A86A0 -_080A84C6: - pop {r4, pc} - - thumb_func_start sub_080A84C8 -sub_080A84C8: @ 0x080A84C8 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x30 - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - ldrh r0, [r4, #0x36] - subs r0, #4 - strh r0, [r4, #0x36] - movs r0, #0x15 - bl CheckGlobalFlag - cmp r0, #0 - bne _080A84F0 - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x68 - strb r0, [r1] -_080A84F0: - ldr r0, _080A8500 @ =0x0000018D - bl EnqueueSFX - adds r0, r4, #0 - movs r1, #0x18 - bl InitializeAnimation - pop {r4, pc} - .align 2, 0 -_080A8500: .4byte 0x0000018D - - thumb_func_start sub_080A8504 -sub_080A8504: @ 0x080A8504 - push {r4, r5, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080AF090 - cmp r0, #0 - beq _080A853C - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080A8524 - bl DeleteThisEntity -_080A8524: - adds r0, r4, #0 - bl sub_08016AD2 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A8558 - movs r0, #4 - strb r0, [r4, #0xc] - b _080A8558 -_080A853C: - ldrh r1, [r4, #0x2a] - adds r0, r4, #0 - bl sub_0800417E - adds r0, r4, #0 - bl sub_08016AD2 - adds r0, r4, #0 - movs r1, #0x19 - bl InitializeAnimation - adds r0, r4, #0 - bl sub_080A86A0 -_080A8558: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _080A85B6 - ldr r5, [r4, #0x50] - ldr r0, [r5, #4] - cmp r0, #0 - beq _080A85B6 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080177A0 - cmp r0, #0 - beq _080A85B6 - adds r0, r4, #0 - adds r0, #0x3d - movs r3, #0 - movs r2, #0x10 - strb r2, [r0] - ldrb r0, [r4, #0x15] - rsbs r0, r0, #0 - adds r1, r4, #0 - adds r1, #0x3e - strb r0, [r1] - adds r1, #3 - movs r0, #0x80 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x42 - movs r1, #0xc - strb r1, [r0] - adds r0, #4 - strh r3, [r0] - adds r0, r5, #0 - adds r0, #0x3d - strb r2, [r0] - ldrb r0, [r4, #0x15] - adds r2, r5, #0 - adds r2, #0x3e - strb r0, [r2] - adds r2, #3 - movs r0, #0xc2 - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x42 - strb r1, [r0] - adds r0, #4 - strh r3, [r0] -_080A85B6: - pop {r4, r5, pc} - - thumb_func_start sub_080A85B8 -sub_080A85B8: @ 0x080A85B8 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080AF090 - cmp r0, #0 - beq _080A85F2 - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080A85D8 - bl DeleteThisEntity -_080A85D8: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A860E - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - b _080A860E -_080A85F2: - ldrh r1, [r4, #0x2a] - adds r0, r4, #0 - bl sub_0800417E - adds r0, r4, #0 - bl sub_08016AD2 - adds r0, r4, #0 - movs r1, #0x19 - bl InitializeAnimation - adds r0, r4, #0 - bl sub_080A86A0 -_080A860E: - pop {r4, pc} - - thumb_func_start sub_080A8610 -sub_080A8610: @ 0x080A8610 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r4, #0x5a - ldrb r1, [r4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A8628 - bl DeleteThisEntity -_080A8628: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A862C -sub_080A862C: @ 0x080A862C - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080AF090 - movs r1, #0xa0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #0 - beq _080A864E - cmp r0, #1 - beq _080A8654 - b _080A8662 -_080A864E: - bl DeleteThisEntity - b _080A867E -_080A8654: - ldrb r0, [r4, #0x10] - movs r1, #0x7f - ands r1, r0 - strb r1, [r4, #0x10] - movs r0, #0x90 - lsls r0, r0, #1 - strh r0, [r4, #0x24] -_080A8662: - ldrb r1, [r4, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080A867E - ldrb r2, [r4, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - subs r0, #5 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] -_080A867E: - pop {r4, pc} - - thumb_func_start sub_080A8680 -sub_080A8680: @ 0x080A8680 - push {lr} - movs r1, #2 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - movs r1, #3 - strb r1, [r0, #0xe] - movs r1, #1 - strb r1, [r0, #0xf] - movs r0, #0x8c - lsls r0, r0, #1 - bl EnqueueSFX - pop {pc} - - thumb_func_start sub_080A86A0 -sub_080A86A0: @ 0x080A86A0 - push {lr} - movs r3, #0 - movs r1, #3 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - strh r3, [r0, #0x24] - movs r0, #0xc7 - lsls r0, r0, #1 - bl EnqueueSFX - pop {pc} diff --git a/asm/projectile/projectile5.s b/asm/projectile/projectile5.s deleted file mode 100644 index 904eeddd..00000000 --- a/asm/projectile/projectile5.s +++ /dev/null @@ -1,146 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Projectile5 -Projectile5: @ 0x080A86BC - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A86D4 @ =gUnk_08129718 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A86D4: .4byte gUnk_08129718 - - thumb_func_start sub_080A86D8 -sub_080A86D8: @ 0x080A86D8 - push {lr} - ldr r2, _080A86EC @ =gUnk_0812972C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A86EC: .4byte gUnk_0812972C - - thumb_func_start sub_080A86F0 -sub_080A86F0: @ 0x080A86F0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r1, [r4, #0x50] - cmp r1, #0 - bne _080A8700 - bl DeleteThisEntity - b _080A876E -_080A8700: - adds r5, r1, #0 - adds r5, #0x83 - ldrb r1, [r5] - movs r3, #0x3f - adds r0, r3, #0 - ands r0, r1 - cmp r0, #3 - bne _080A8768 - ldr r0, _080A875C @ =gPlayerState - ldrb r0, [r0, #0xf] - cmp r0, #0 - beq _080A876E - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _080A8760 @ =gRoomControls - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r3 - movs r6, #0x32 - ldrsh r1, [r4, r6] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - ldr r1, _080A8764 @ =gPlayerEntity - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002E0 - cmp r0, #0 - bne _080A876E - adds r0, r4, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x80 - bne _080A876E - ldrb r1, [r5] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5] - bl DeleteThisEntity - b _080A876E - .align 2, 0 -_080A875C: .4byte gPlayerState -_080A8760: .4byte gRoomControls -_080A8764: .4byte gPlayerEntity -_080A8768: - adds r0, r4, #0 - bl DeleteEntity -_080A876E: - pop {r4, r5, r6, pc} - - thumb_func_start sub_080A8770 -sub_080A8770: @ 0x080A8770 - movs r1, #1 - strb r1, [r0, #0xc] - adds r3, r0, #0 - adds r3, #0x3c - ldrb r2, [r3] - movs r1, #0x10 - orrs r1, r2 - strb r1, [r3] - ldr r1, _080A8788 @ =gUnk_08129734 - str r1, [r0, #0x48] - bx lr - .align 2, 0 -_080A8788: .4byte gUnk_08129734 - - thumb_func_start sub_080A878C -sub_080A878C: @ 0x080A878C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, [r5, #0x50] - cmp r4, #0 - bne _080A879A - bl DeleteThisEntity -_080A879A: - ldr r0, [r4, #4] - cmp r0, #0 - bne _080A87A4 - bl DeleteThisEntity -_080A87A4: - adds r0, r4, #0 - adds r0, #0x83 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #3 - beq _080A87B6 - bl DeleteThisEntity -_080A87B6: - adds r0, r4, #0 - adds r1, r5, #0 - bl CopyPosition - ldrh r0, [r5, #0x36] - adds r0, #2 - strh r0, [r5, #0x36] - pop {r4, r5, pc} - .align 2, 0 diff --git a/asm/projectile/projectile6.s b/asm/projectile/projectile6.s deleted file mode 100644 index fee0d5d4..00000000 --- a/asm/projectile/projectile6.s +++ /dev/null @@ -1,368 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Projectile6 -Projectile6: @ 0x080A87C8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A87E0 @ =gUnk_08129740 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A87E0: .4byte gUnk_08129740 - - thumb_func_start sub_080A87E4 -sub_080A87E4: @ 0x080A87E4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #1 - bne _080A8804 - ldr r0, [r4, #0x54] - cmp r0, #0 - bne _080A87F8 - bl DeleteThisEntity -_080A87F8: - ldr r0, [r4, #0x54] - ldr r0, [r0, #4] - cmp r0, #0 - bne _080A8804 - bl DeleteThisEntity -_080A8804: - ldr r0, _080A8818 @ =gUnk_08129754 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080A8818: .4byte gUnk_08129754 - - thumb_func_start sub_080A881C -sub_080A881C: @ 0x080A881C - push {lr} - adds r1, r0, #0 - adds r2, r1, #0 - adds r2, #0x46 - movs r0, #0 - strh r0, [r2] - ldrb r2, [r1, #0xa] - cmp r2, #0 - bne _080A8854 - ldr r0, [r1, #0x50] - str r2, [r0, #0x54] - adds r0, r1, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x80 - bne _080A884A - ldr r0, _080A8850 @ =gPlayerState - movs r1, #0xf0 - strb r1, [r0, #0xf] - movs r0, #2 - rsbs r0, r0, #0 - bl ModHealth -_080A884A: - bl DeleteThisEntity - b _080A8866 - .align 2, 0 -_080A8850: .4byte gPlayerState -_080A8854: - ldrb r0, [r1, #0xc] - cmp r0, #1 - bhi _080A8866 - movs r0, #2 - strb r0, [r1, #0xc] - ldr r0, [r1, #0x50] - adds r0, #0x83 - movs r1, #0xc0 - strb r1, [r0] -_080A8866: - pop {pc} - - thumb_func_start sub_080A8868 -sub_080A8868: @ 0x080A8868 - push {r4, lr} - adds r3, r0, #0 - movs r4, #0 - movs r0, #1 - strb r0, [r3, #0xc] - strb r4, [r3, #0xd] - ldrb r1, [r3, #0x18] - subs r0, #0x32 - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r3, #0x18] - movs r0, #0x80 - lsls r0, r0, #8 - str r0, [r3, #0x20] - ldr r0, _080A88A4 @ =gUnk_08129764 - str r0, [r3, #0x48] - adds r2, r3, #0 - adds r2, #0x3c - ldrb r0, [r2] - orrs r1, r0 - strb r1, [r2] - ldrb r0, [r3, #0xa] - cmp r0, #1 - beq _080A88B8 - cmp r0, #1 - bgt _080A88A8 - cmp r0, #0 - beq _080A88AE - b _080A88C6 - .align 2, 0 -_080A88A4: .4byte gUnk_08129764 -_080A88A8: - cmp r0, #2 - beq _080A88BE - b _080A88C6 -_080A88AE: - adds r0, r3, #0 - movs r1, #0 - bl InitializeAnimation - b _080A88C6 -_080A88B8: - strb r4, [r3, #0xe] - strb r4, [r3, #0xf] - b _080A88C6 -_080A88BE: - adds r0, r3, #0 - movs r1, #5 - bl InitializeAnimation -_080A88C6: - pop {r4, pc} - - thumb_func_start sub_080A88C8 -sub_080A88C8: @ 0x080A88C8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r6, [r4, #0x50] - cmp r6, #0 - bne _080A88D6 - movs r0, #2 - strb r0, [r4, #0xc] -_080A88D6: - ldr r0, [r6, #4] - cmp r0, #0 - bne _080A88E0 - movs r0, #2 - strb r0, [r4, #0xc] -_080A88E0: - ldr r3, _080A88FC @ =0xFFFF0000 - adds r0, r6, #0 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - ldrb r5, [r4, #0xa] - cmp r5, #1 - beq _080A890E - cmp r5, #1 - bgt _080A8900 - cmp r5, #0 - beq _080A8906 - b _080A8982 - .align 2, 0 -_080A88FC: .4byte 0xFFFF0000 -_080A8900: - cmp r5, #2 - beq _080A8962 - b _080A8982 -_080A8906: - ldrh r0, [r4, #0x36] - adds r0, #0x10 - strh r0, [r4, #0x36] - b _080A8982 -_080A890E: - ldrh r0, [r4, #0x36] - adds r0, #0xe - strh r0, [r4, #0x36] - ldr r0, [r4, #0x54] - bl sub_08078954 - ldr r1, [r4, #0x54] - adds r0, r4, #0 - bl CopyPosition - ldrb r0, [r4, #0xe] - adds r1, r0, #1 - strb r1, [r4, #0xe] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xf - bls _080A8982 - ldr r2, [r4, #0x54] - ldrb r0, [r2, #0xe] - cmp r0, #0 - bne _080A8982 - movs r3, #2 - ands r1, r3 - cmp r1, #0 - beq _080A8946 - ldrb r0, [r2, #0xf] - adds r0, #1 - strb r0, [r2, #0xf] -_080A8946: - ldr r0, [r4, #0x54] - ldrb r1, [r0, #0xf] - cmp r1, #0x1f - bhi _080A8982 - movs r0, #3 - ands r0, r1 - cmp r0, #3 - bne _080A8982 - adds r1, r6, #0 - adds r1, #0x83 - movs r0, #0xc0 - strb r0, [r1] - strb r3, [r4, #0xc] - b _080A8982 -_080A8962: - ldrh r0, [r4, #0x36] - adds r0, #0xe - strh r0, [r4, #0x36] - ldr r1, _080A8984 @ =gPlayerEntity - adds r0, r4, #0 - movs r2, #0xe - movs r3, #0xe - bl sub_080041A0 - cmp r0, #0 - beq _080A8982 - strb r5, [r4, #0xc] - adds r1, r6, #0 - adds r1, #0x83 - movs r0, #0xc0 - strb r0, [r1] -_080A8982: - pop {r4, r5, r6, pc} - .align 2, 0 -_080A8984: .4byte gPlayerEntity - - thumb_func_start sub_080A8988 -sub_080A8988: @ 0x080A8988 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xa] - cmp r0, #1 - bne _080A89B4 - ldr r4, [r5, #0x54] - cmp r4, #0 - bne _080A899C - bl DeleteThisEntity -_080A899C: - ldr r0, [r4, #4] - cmp r0, #0 - bne _080A89A6 - bl DeleteThisEntity -_080A89A6: - adds r0, r4, #0 - bl sub_08078954 - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition -_080A89B4: - movs r1, #0xa0 - lsls r1, r1, #6 - adds r0, r5, #0 - bl sub_080044EC - cmp r0, #1 - bne _080A8A44 - adds r0, r5, #0 - bl sub_080043E8 - cmp r0, #0 - beq _080A8A00 - cmp r0, #2 - beq _080A89E0 - cmp r0, #2 - bhi _080A89DA - cmp r0, #1 - beq _080A89E6 - b _080A89FC -_080A89DA: - cmp r0, #3 - beq _080A89F2 - b _080A89FC -_080A89E0: - adds r0, r5, #0 - movs r1, #0xb - b _080A89EA -_080A89E6: - adds r0, r5, #0 - movs r1, #0 -_080A89EA: - movs r2, #0 - bl CreateFx - b _080A89FC -_080A89F2: - adds r0, r5, #0 - movs r1, #0xc - movs r2, #0 - bl CreateFx -_080A89FC: - bl DeleteThisEntity -_080A8A00: - ldrb r0, [r5, #0xa] - cmp r0, #1 - beq _080A8A3E - cmp r0, #1 - bgt _080A8A10 - cmp r0, #0 - beq _080A8A16 - b _080A8A44 -_080A8A10: - cmp r0, #2 - beq _080A8A2A - b _080A8A44 -_080A8A16: - adds r0, r5, #0 - movs r1, #1 - bl InitializeAnimation - movs r0, #0x84 - bl EnqueueSFX - movs r0, #3 - strb r0, [r5, #0xc] - b _080A8A44 -_080A8A2A: - adds r0, r5, #0 - movs r1, #5 - movs r2, #0x80 - bl CreateFx - adds r4, r0, #0 - cmp r4, #0 - beq _080A8A3E - movs r0, #0 - str r0, [r4, #0x50] -_080A8A3E: - adds r0, r5, #0 - bl DeleteEntity -_080A8A44: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080A8A48 -sub_080A8A48: @ 0x080A8A48 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A8A64 - adds r0, r4, #0 - bl DeleteEntity -_080A8A64: - pop {r4, pc} - .align 2, 0 diff --git a/asm/projectile/projectile7.s b/asm/projectile/projectile7.s deleted file mode 100644 index 1664a95e..00000000 --- a/asm/projectile/projectile7.s +++ /dev/null @@ -1,165 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Projectile7 -Projectile7: @ 0x080A8A68 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFunction - cmp r0, #0 - beq _080A8A78 - bl DeleteThisEntity -_080A8A78: - ldr r0, _080A8A8C @ =gUnk_0812979C - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080A8A8C: .4byte gUnk_0812979C - - thumb_func_start sub_080A8A90 -sub_080A8A90: @ 0x080A8A90 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _080A8AAA - movs r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x15] - lsrs r1, r1, #3 - adds r0, r2, #0 - bl InitializeAnimation - b _080A8AC2 -_080A8AAA: - movs r0, #2 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x15] - lsrs r1, r1, #3 - movs r0, #4 - orrs r1, r0 - adds r0, r2, #0 - bl InitializeAnimation - ldr r0, _080A8AC4 @ =0x0000015F - bl EnqueueSFX -_080A8AC2: - pop {pc} - .align 2, 0 -_080A8AC4: .4byte 0x0000015F - - thumb_func_start sub_080A8AC8 -sub_080A8AC8: @ 0x080A8AC8 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - cmp r5, #0 - bne _080A8AD8 - bl DeleteEntity - b _080A8B34 -_080A8AD8: - ldr r0, [r5, #4] - cmp r0, #0 - bne _080A8AE6 - adds r0, r4, #0 - bl DeleteEntity - b _080A8B34 -_080A8AE6: - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _080A8B2E - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - ldrb r0, [r5, #0x15] - adds r2, r0, #4 - movs r0, #0x18 - ands r2, r0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080A8B1A - movs r0, #0 - strb r2, [r4, #0x15] - lsrs r1, r2, #2 - strb r1, [r4, #0x14] - strb r0, [r4, #0xe] - lsrs r1, r2, #3 - adds r0, r4, #0 - bl InitializeAnimation - b _080A8B2E -_080A8B1A: - lsrs r0, r2, #2 - ldrb r1, [r4, #0x14] - cmp r0, r1 - beq _080A8B2E - strb r2, [r4, #0x15] - strb r0, [r4, #0x14] - lsrs r1, r2, #3 - adds r0, r4, #0 - bl InitializeAnimation -_080A8B2E: - adds r0, r4, #0 - bl GetNextFrame -_080A8B34: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080A8B38 -sub_080A8B38: @ 0x080A8B38 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080AF090 - adds r2, r0, #0 - cmp r2, #0 - beq _080A8B66 - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080A8B5E - adds r0, r4, #0 - bl DeleteEntity - b _080A8B74 -_080A8B5E: - adds r0, r4, #0 - bl sub_08016AD2 - b _080A8B74 -_080A8B66: - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - strh r2, [r4, #0x24] -_080A8B74: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A8B78 -sub_080A8B78: @ 0x080A8B78 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A8B94 - adds r0, r4, #0 - bl DeleteEntity -_080A8B94: - pop {r4, pc} - .align 2, 0 diff --git a/asm/projectile/projectile8.s b/asm/projectile/projectile8.s deleted file mode 100644 index 830da908..00000000 --- a/asm/projectile/projectile8.s +++ /dev/null @@ -1,151 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Projectile8 -Projectile8: @ 0x080A8B98 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFunction - cmp r0, #0 - beq _080A8BA8 - bl DeleteThisEntity -_080A8BA8: - ldr r0, _080A8BBC @ =gUnk_0812982C - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080A8BBC: .4byte gUnk_0812982C - - thumb_func_start sub_080A8BC0 -sub_080A8BC0: @ 0x080A8BC0 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _080A8BDA - movs r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x15] - lsrs r1, r1, #3 - adds r0, r2, #0 - bl InitializeAnimation - b _080A8BF4 -_080A8BDA: - movs r0, #2 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x15] - lsrs r1, r1, #3 - movs r0, #4 - orrs r1, r0 - adds r0, r2, #0 - bl InitializeAnimation - movs r0, #0xaf - lsls r0, r0, #1 - bl EnqueueSFX -_080A8BF4: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080A8BF8 -sub_080A8BF8: @ 0x080A8BF8 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - cmp r5, #0 - bne _080A8C08 - bl DeleteEntity - b _080A8C48 -_080A8C08: - ldr r0, [r5, #4] - cmp r0, #0 - bne _080A8C16 - adds r0, r4, #0 - bl DeleteEntity - b _080A8C48 -_080A8C16: - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _080A8C42 - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080A8C42 - ldrb r0, [r5, #0x15] - movs r1, #0x18 - ands r1, r0 - movs r0, #0 - strb r1, [r4, #0x15] - strb r0, [r4, #0xe] - lsrs r1, r1, #3 - adds r0, r4, #0 - bl InitializeAnimation -_080A8C42: - adds r0, r4, #0 - bl GetNextFrame -_080A8C48: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080A8C4C -sub_080A8C4C: @ 0x080A8C4C - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080AF090 - adds r2, r0, #0 - cmp r2, #0 - beq _080A8C7A - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080A8C72 - adds r0, r4, #0 - bl DeleteEntity - b _080A8C88 -_080A8C72: - adds r0, r4, #0 - bl sub_08016AD2 - b _080A8C88 -_080A8C7A: - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - strh r2, [r4, #0x24] -_080A8C88: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A8C8C -sub_080A8C8C: @ 0x080A8C8C - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A8CA8 - adds r0, r4, #0 - bl DeleteEntity -_080A8CA8: - pop {r4, pc} - .align 2, 0 diff --git a/asm/projectile/projectile9.s b/asm/projectile/projectile9.s deleted file mode 100644 index a09798e3..00000000 --- a/asm/projectile/projectile9.s +++ /dev/null @@ -1,151 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start Projectile9 -Projectile9: @ 0x080A8CAC - push {r4, lr} - adds r4, r0, #0 - bl GetNextFunction - cmp r0, #0 - beq _080A8CBC - bl DeleteThisEntity -_080A8CBC: - ldr r0, _080A8CD0 @ =gUnk_081298B8 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080A8CD0: .4byte gUnk_081298B8 - - thumb_func_start sub_080A8CD4 -sub_080A8CD4: @ 0x080A8CD4 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _080A8CEE - movs r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x15] - lsrs r1, r1, #3 - adds r0, r2, #0 - bl InitializeAnimation - b _080A8D08 -_080A8CEE: - movs r0, #2 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x15] - lsrs r1, r1, #3 - movs r0, #4 - orrs r1, r0 - adds r0, r2, #0 - bl InitializeAnimation - movs r0, #0xb0 - lsls r0, r0, #1 - bl EnqueueSFX -_080A8D08: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080A8D0C -sub_080A8D0C: @ 0x080A8D0C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - cmp r5, #0 - bne _080A8D1C - bl DeleteEntity - b _080A8D5C -_080A8D1C: - ldr r0, [r5, #4] - cmp r0, #0 - bne _080A8D2A - adds r0, r4, #0 - bl DeleteEntity - b _080A8D5C -_080A8D2A: - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _080A8D56 - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080A8D56 - ldrb r0, [r5, #0x15] - movs r1, #0x18 - ands r1, r0 - movs r0, #0 - strb r1, [r4, #0x15] - strb r0, [r4, #0xe] - lsrs r1, r1, #3 - adds r0, r4, #0 - bl InitializeAnimation -_080A8D56: - adds r0, r4, #0 - bl GetNextFrame -_080A8D5C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080A8D60 -sub_080A8D60: @ 0x080A8D60 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_080AF090 - adds r2, r0, #0 - cmp r2, #0 - beq _080A8D8E - adds r0, r4, #0 - bl sub_080A7EB0 - cmp r0, #0 - beq _080A8D86 - adds r0, r4, #0 - bl DeleteEntity - b _080A8D9C -_080A8D86: - adds r0, r4, #0 - bl sub_08016AD2 - b _080A8D9C -_080A8D8E: - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - strh r2, [r4, #0x24] -_080A8D9C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A8DA0 -sub_080A8DA0: @ 0x080A8DA0 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A8DBC - adds r0, r4, #0 - bl DeleteEntity -_080A8DBC: - pop {r4, pc} - .align 2, 0 diff --git a/asm/projectile/projectileA.s b/asm/projectile/projectileA.s deleted file mode 100644 index 54cf24d2..00000000 --- a/asm/projectile/projectileA.s +++ /dev/null @@ -1,459 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start ProjectileA -ProjectileA: @ 0x080A8DC0 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A8DD8 @ =gUnk_08129954 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A8DD8: .4byte gUnk_08129954 - - thumb_func_start sub_080A8DDC -sub_080A8DDC: @ 0x080A8DDC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #3 - beq _080A8E12 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A8E12 - movs r2, #0x7f - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0x1e - beq _080A8E12 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - adds r0, r2, #0 - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #0x53 - bl InitializeAnimation -_080A8E12: - ldr r0, _080A8E24 @ =gUnk_08129968 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080A8E24: .4byte gUnk_08129968 - - thumb_func_start sub_080A8E28 -sub_080A8E28: @ 0x080A8E28 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #1 - strb r0, [r5, #0xc] - ldr r0, _080A8E80 @ =0xFFFF0000 - str r0, [r5, #0x20] - ldrb r0, [r5, #0xa] - cmp r0, #3 - beq _080A8E6E - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl CopyPosition - movs r1, #0x80 - lsls r1, r1, #5 - ldrb r2, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F5BC - ldr r0, [r5, #0x50] - ldr r2, [r5, #0x54] - ldr r1, [r0, #0x30] - ldr r0, [r2, #0x30] - subs r1, r1, r0 - str r1, [r5, #0x34] - ldr r0, [r5, #0x30] - subs r0, r0, r1 - str r0, [r5, #0x30] - adds r0, r5, #0 - movs r1, #0x51 - bl InitializeAnimation - ldr r0, _080A8E84 @ =0x000001B5 - bl SoundReq -_080A8E6E: - ldrb r4, [r5, #0xa] - cmp r4, #2 - beq _080A8EF2 - cmp r4, #2 - ble _080A8E88 - cmp r4, #3 - beq _080A8F02 - b _080A8FAE - .align 2, 0 -_080A8E80: .4byte 0xFFFF0000 -_080A8E84: .4byte 0x000001B5 -_080A8E88: - cmp r4, #0 - bge _080A8E8E - b _080A8FAE -_080A8E8E: - ldr r0, _080A8EC0 @ =gPlayerEntity - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r3, #0x32 - ldrsh r2, [r0, r3] - adds r0, r5, #0 - bl sub_080041DC - adds r4, r0, #0 - ldrb r6, [r5, #0xa] - cmp r6, #1 - bne _080A8ECE - bl Random - adds r2, r0, #0 - ldr r0, _080A8EC4 @ =0x000001FF - ands r2, r0 - ldr r0, _080A8EC8 @ =gScreenTransition - ldr r0, [r0] - ands r0, r6 - cmp r0, #0 - bne _080A8ECC - adds r4, r4, r2 - b _080A8ECE - .align 2, 0 -_080A8EC0: .4byte gPlayerEntity -_080A8EC4: .4byte 0x000001FF -_080A8EC8: .4byte gScreenTransition -_080A8ECC: - subs r4, r4, r2 -_080A8ECE: - cmp r4, #0x1f - bgt _080A8ED6 - movs r4, #0x20 - b _080A8EE0 -_080A8ED6: - movs r0, #0x80 - lsls r0, r0, #3 - cmp r4, r0 - ble _080A8EE0 - adds r4, r0, #0 -_080A8EE0: - lsls r1, r4, #8 - ldr r0, [r5, #0x34] - bl __divsi3 - lsls r0, r0, #0xd - str r0, [r5, #0x20] - movs r0, #0x1e - strb r0, [r5, #0xf] - b _080A8FAE -_080A8EF2: - ldr r0, [r5, #0x34] - movs r1, #0xc0 - lsls r1, r1, #9 - bl __divsi3 - lsls r0, r0, #0xc - str r0, [r5, #0x20] - b _080A8FAE -_080A8F02: - ldr r0, _080A8F64 @ =0xFF600000 - str r0, [r5, #0x34] - bl Random - ands r4, r0 - lsls r2, r4, #1 - ldr r1, _080A8F68 @ =gUnk_08129978 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r3, [r5, #0x2e] - adds r0, r0, r3 - strh r0, [r5, #0x2e] - adds r0, r2, #1 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r5, #0x32] - adds r0, r0, r1 - strh r0, [r5, #0x32] - movs r0, #2 - ands r2, r0 - cmp r2, #0 - beq _080A8F74 - bl Random - ldr r2, _080A8F6C @ =gUnk_08129988 - movs r1, #0xf - ands r1, r0 - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r2, [r5, #0x2e] - adds r0, r0, r2 - strh r0, [r5, #0x2e] - bl Random - ldr r2, _080A8F70 @ =gUnk_08129980 - movs r1, #7 - ands r1, r0 - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r3, [r5, #0x32] - adds r0, r0, r3 - b _080A8F9E - .align 2, 0 -_080A8F64: .4byte 0xFF600000 -_080A8F68: .4byte gUnk_08129978 -_080A8F6C: .4byte gUnk_08129988 -_080A8F70: .4byte gUnk_08129980 -_080A8F74: - bl Random - ldr r2, _080A8FB0 @ =gUnk_08129980 - movs r1, #7 - ands r1, r0 - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r1, [r5, #0x2e] - adds r0, r0, r1 - strh r0, [r5, #0x2e] - bl Random - ldr r2, _080A8FB4 @ =gUnk_08129988 - movs r1, #0xf - ands r1, r0 - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r2, [r5, #0x32] - adds r0, r0, r2 -_080A8F9E: - strh r0, [r5, #0x32] - adds r0, r5, #0 - bl sub_08004168 - adds r0, r5, #0 - movs r1, #0 - bl InitializeAnimation -_080A8FAE: - pop {r4, r5, r6, pc} - .align 2, 0 -_080A8FB0: .4byte gUnk_08129980 -_080A8FB4: .4byte gUnk_08129988 - - thumb_func_start sub_080A8FB8 -sub_080A8FB8: @ 0x080A8FB8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #3 - bne _080A8FE8 - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _080A9054 - adds r0, r4, #0 - movs r1, #7 - bl sub_08008790 - adds r0, r4, #0 - movs r1, #4 - movs r2, #0 - bl CreateFx - bl DeleteThisEntity - b _080A9054 -_080A8FE8: - adds r0, r4, #0 - bl GetNextFrame - adds r0, r4, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xa] - cmp r0, #2 - beq _080A901C - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080A901C - movs r0, #0x1e - strb r0, [r4, #0xf] - ldr r1, _080A9048 @ =gPlayerEntity - adds r0, r4, #0 - bl GetFacingDirection - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 -_080A901C: - adds r0, r4, #0 - movs r1, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _080A9054 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_080A90D8 - ldrb r0, [r4, #0xa] - cmp r0, #2 - bne _080A904C - movs r0, #0xf - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0x54 - bl InitializeAnimation - b _080A9054 - .align 2, 0 -_080A9048: .4byte gPlayerEntity -_080A904C: - adds r0, r4, #0 - movs r1, #0x52 - bl InitializeAnimation -_080A9054: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A9058 -sub_080A9058: @ 0x080A9058 - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - ldrb r0, [r4, #0xa] - cmp r0, #2 - bne _080A9098 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080A908A - ldrb r0, [r4, #0x10] - movs r1, #0x7f - ands r1, r0 - strb r1, [r4, #0x10] - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x55 - bl InitializeAnimation - b _080A90BA -_080A908A: - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_080A90D8 - b _080A90BA -_080A9098: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A90BA - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #0x53 - bl InitializeAnimation -_080A90BA: - pop {r4, pc} - - thumb_func_start sub_080A90BC -sub_080A90BC: @ 0x080A90BC - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r4, #0x5a - ldrb r1, [r4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A90D4 - bl DeleteThisEntity -_080A90D4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A90D8 -sub_080A90D8: @ 0x080A90D8 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - movs r0, #0x74 - adds r0, r0, r5 - mov ip, r0 - ldrh r3, [r0] - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r7, _080A9154 @ =gRoomControls - ldrh r1, [r7, #6] - subs r0, r0, r1 - asrs r4, r0, #4 - movs r6, #0x3f - adds r2, r4, #0 - ands r2, r6 - movs r1, #0x32 - ldrsh r0, [r5, r1] - ldrh r1, [r7, #8] - subs r0, r0, r1 - asrs r1, r0, #4 - adds r0, r1, #0 - ands r0, r6 - lsls r0, r0, #6 - orrs r2, r0 - cmp r3, r2 - beq _080A9152 - movs r0, #0x3f - ands r4, r0 - ands r1, r0 - lsls r0, r1, #6 - orrs r4, r0 - mov r2, ip - strh r4, [r2] - adds r0, r5, #0 - bl GetTileTypeByEntity - cmp r0, #0x13 - beq _080A9128 - cmp r0, #0x34 - bne _080A9152 -_080A9128: - movs r0, #0xd3 - lsls r0, r0, #2 - movs r3, #0x2e - ldrsh r1, [r5, r3] - ldrh r2, [r7, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r6 - movs r3, #0x32 - ldrsh r2, [r5, r3] - ldrh r3, [r7, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r6 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0807B7D8 -_080A9152: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080A9154: .4byte gRoomControls diff --git a/asm/projectile/projectileB.s b/asm/projectile/projectileB.s deleted file mode 100644 index d59f65db..00000000 --- a/asm/projectile/projectileB.s +++ /dev/null @@ -1,78 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start ProjectileB -ProjectileB: @ 0x080A9158 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _080A9166 - movs r0, #1 - strb r0, [r5, #0xc] -_080A9166: - ldr r4, [r5, #0x50] - cmp r4, #0 - beq _080A917C - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _080A917C - ldr r0, [r4, #4] - cmp r0, #0 - bne _080A91A4 -_080A917C: - adds r0, r5, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A9198 - ldr r1, [r5, #0x4c] - ldr r0, _080A91A0 @ =gPlayerEntity - cmp r1, r0 - bne _080A9198 - adds r0, r5, #0 - bl sub_0803C0AC -_080A9198: - adds r0, r5, #0 - bl DeleteEntity - b _080A91D8 - .align 2, 0 -_080A91A0: .4byte gPlayerEntity -_080A91A4: - ldr r1, _080A91DC @ =gUnk_08129998 - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r5, #0x48] - adds r0, r4, #0 - adds r1, r5, #0 - bl CopyPosition - adds r0, r4, #0 - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _080A91D8 - adds r1, r5, #0 - adds r1, #0x3d - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bne _080A91D8 - movs r0, #0xff - strb r0, [r1] -_080A91D8: - pop {r4, r5, pc} - .align 2, 0 -_080A91DC: .4byte gUnk_08129998 diff --git a/asm/projectile/projectileC.s b/asm/projectile/projectileC.s deleted file mode 100644 index 2a6cbba3..00000000 --- a/asm/projectile/projectileC.s +++ /dev/null @@ -1,150 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start ProjectileC -ProjectileC: @ 0x080A91E0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080A9288 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080A9204 - movs r0, #1 - strb r0, [r4, #0xc] - bl Random - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_080A9204: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x80 - bne _080A921C - ldr r1, [r4, #0x50] - cmp r1, #0 - beq _080A9218 - movs r0, #0xff - strb r0, [r1, #0xa] -_080A9218: - bl DeleteThisEntity -_080A921C: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl CopyPosition - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _080A9230 - subs r0, #1 - strb r0, [r4, #0xf] - b _080A92F6 -_080A9230: - adds r0, r4, #0 - bl sub_080644C8 - cmp r0, #0 - beq _080A92F6 - ldrb r1, [r4, #0xe] - adds r0, r1, #1 - strb r0, [r4, #0xe] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _080A92F6 - movs r0, #0xc - bl sub_080A7EE0 - adds r5, r0, #0 - cmp r5, #0 - beq _080A92F6 - movs r0, #1 - strb r0, [r5, #0xa] - ldr r0, [r4, #0x50] - adds r0, #0x3e - ldrb r1, [r0] - ldr r3, _080A9284 @ =gUnk_081299C8 - ldrb r0, [r4, #0xe] - lsrs r0, r0, #2 - movs r2, #7 - ands r0, r2 - adds r0, r0, r3 - lsls r1, r1, #3 - ldrb r0, [r0] - adds r1, r1, r0 - movs r0, #0x1f - ands r1, r0 - strb r1, [r5, #0x15] - ldr r0, [r4, #0x50] - str r0, [r5, #0x50] - adds r0, r4, #0 - adds r1, r5, #0 - bl CopyPosition - b _080A92F6 - .align 2, 0 -_080A9284: .4byte gUnk_081299C8 -_080A9288: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080A92B0 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x12 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #0x16 - ands r0, r1 - strb r0, [r4, #0x18] - movs r0, #0x80 - lsls r0, r0, #4 - strh r0, [r4, #0x24] - ldr r0, _080A92F8 @ =gUnk_080FD1E4 - str r0, [r4, #0x48] - adds r0, r4, #0 - movs r1, #0 - bl InitializeAnimation -_080A92B0: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x80 - bne _080A92C8 - ldr r1, [r4, #0x50] - cmp r1, #0 - beq _080A92C4 - movs r0, #0xff - strb r0, [r1, #0xa] -_080A92C4: - bl DeleteThisEntity -_080A92C8: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A92D8 - bl DeleteThisEntity -_080A92D8: - adds r0, r4, #0 - bl sub_0806F69C - ldr r0, _080A92FC @ =gUnk_02027EB4 - movs r2, #0x2e - ldrsh r1, [r4, r2] - movs r3, #0x32 - ldrsh r2, [r4, r3] - movs r3, #2 - bl sub_080AE4CC - cmp r0, #0 - beq _080A92F6 - bl DeleteThisEntity -_080A92F6: - pop {r4, r5, pc} - .align 2, 0 -_080A92F8: .4byte gUnk_080FD1E4 -_080A92FC: .4byte gUnk_02027EB4 diff --git a/asm/projectile/projectileD.s b/asm/projectile/projectileD.s deleted file mode 100644 index 3ae402c5..00000000 --- a/asm/projectile/projectileD.s +++ /dev/null @@ -1,278 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start ProjectileD -ProjectileD: @ 0x080A9300 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A9318 @ =gUnk_081299D0 - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A9318: .4byte gUnk_081299D0 - - thumb_func_start sub_080A931C -sub_080A931C: @ 0x080A931C - push {lr} - ldr r2, _080A9330 @ =gUnk_081299E4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A9330: .4byte gUnk_081299E4 - - thumb_func_start sub_080A9334 -sub_080A9334: @ 0x080A9334 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A936C - movs r0, #0x3f - ands r0, r1 - cmp r0, #0 - beq _080A9368 - movs r0, #2 - rsbs r0, r0, #0 - bl ModHealth - adds r0, r4, #0 - bl sub_080A9488 - adds r0, r4, #0 - adds r0, #0x42 - movs r1, #0 - strb r1, [r0] - subs r0, #5 - strb r1, [r0] - b _080A936C -_080A9368: - bl DeleteThisEntity -_080A936C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080A9370 -sub_080A9370: @ 0x080A9370 - push {r4, lr} - movs r4, #0 - movs r3, #1 - movs r1, #1 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x18] - subs r1, #5 - ands r1, r2 - orrs r1, r3 - strb r1, [r0, #0x18] - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - movs r1, #0x6a - strb r1, [r0, #0xe] - strb r4, [r0, #0xf] - movs r1, #0xa0 - lsls r1, r1, #4 - str r1, [r0, #0x20] - ldrb r1, [r0, #0xa] - bl sub_080A94C0 - pop {r4, pc} - - thumb_func_start sub_080A93A0 -sub_080A93A0: @ 0x080A93A0 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - cmp r5, #0 - beq _080A93B0 - ldr r0, [r5, #4] - cmp r0, #0 - bne _080A93B4 -_080A93B0: - bl DeleteThisEntity -_080A93B4: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _080A93BE - bl DeleteThisEntity -_080A93BE: - ldrb r0, [r5, #0xf] - cmp r0, #0 - beq _080A93DA - movs r2, #0 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - str r2, [r5, #0x54] - movs r0, #0xfc - bl SoundReq -_080A93DA: - pop {r4, r5, pc} - - thumb_func_start sub_080A93DC -sub_080A93DC: @ 0x080A93DC - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _080A9414 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #0x20 - strb r0, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] - adds r1, #2 - adds r0, r4, #0 - bl InitializeAnimation - movs r0, #0xc5 - lsls r0, r0, #1 - bl EnqueueSFX - adds r0, r4, #0 - bl sub_0806F69C - b _080A9424 -_080A9414: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A9424 - bl DeleteThisEntity -_080A9424: - adds r0, r4, #0 - bl sub_080AF090 - pop {r4, pc} - - thumb_func_start sub_080A942C -sub_080A942C: @ 0x080A942C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A9440 - bl DeleteThisEntity -_080A9440: - adds r0, r4, #0 - bl GetNextFrame - pop {r4, pc} - - thumb_func_start sub_080A9448 -sub_080A9448: @ 0x080A9448 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xa0 - lsls r1, r1, #6 - bl sub_08003FC4 - cmp r0, #0 - bne _080A9464 - adds r0, r4, #0 - bl CreateDust - bl DeleteThisEntity - b _080A9486 -_080A9464: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A9486 - movs r0, #2 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x14] - adds r0, #1 - movs r1, #3 - ands r0, r1 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_080A94C0 -_080A9486: - pop {r4, pc} - - thumb_func_start sub_080A9488 -sub_080A9488: @ 0x080A9488 - push {r4, lr} - adds r4, r0, #0 - movs r0, #4 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #2 - strb r0, [r4, #0xe] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r4, #0x20] - adds r0, r4, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r0, #0x18 - ands r0, r1 - lsrs r0, r0, #3 - strb r0, [r4, #0x14] - movs r0, #0x74 - bl EnqueueSFX - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_080A94C0 - pop {r4, pc} - - thumb_func_start sub_080A94C0 -sub_080A94C0: @ 0x080A94C0 - push {r4, lr} - lsls r1, r1, #3 - ldr r2, _080A94FC @ =gUnk_081299F8 - adds r1, r1, r2 - ldrb r3, [r1] - movs r2, #1 - ands r3, r2 - lsls r3, r3, #6 - ldrb r4, [r0, #0x18] - movs r2, #0x41 - rsbs r2, r2, #0 - ands r2, r4 - orrs r2, r3 - strb r2, [r0, #0x18] - ldrb r3, [r1, #1] - lsls r3, r3, #7 - movs r4, #0x7f - ands r2, r4 - orrs r2, r3 - strb r2, [r0, #0x18] - ldrb r2, [r1, #2] - adds r3, r0, #0 - adds r3, #0x58 - strb r2, [r3] - ldr r1, [r1, #4] - str r1, [r0, #0x48] - ldrb r1, [r3] - bl InitializeAnimation - pop {r4, pc} - .align 2, 0 -_080A94FC: .4byte gUnk_081299F8 diff --git a/asm/projectile/projectileE.s b/asm/projectile/projectileE.s deleted file mode 100644 index 4eb51a75..00000000 --- a/asm/projectile/projectileE.s +++ /dev/null @@ -1,124 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start ProjectileE -ProjectileE: @ 0x080A9500 - push {lr} - ldr r2, _080A9514 @ =gUnk_08129A64 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A9514: .4byte gUnk_08129A64 - - thumb_func_start sub_080A9518 -sub_080A9518: @ 0x080A9518 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0xa - strb r1, [r0, #0xe] - ldrh r1, [r0, #0x36] - subs r1, #2 - strh r1, [r0, #0x36] - ldrh r1, [r0, #0x32] - adds r1, #2 - strh r1, [r0, #0x32] - movs r1, #0 - bl InitializeAnimation - ldr r0, _080A953C @ =0x00000149 - bl SoundReq - pop {pc} - .align 2, 0 -_080A953C: .4byte 0x00000149 - - thumb_func_start sub_080A9540 -sub_080A9540: @ 0x080A9540 - push {r4, lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xe] - subs r0, #1 - strb r0, [r3, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080A9578 - movs r0, #2 - strb r0, [r3, #0xc] - ldrb r1, [r3, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r3, #0x10] - adds r2, r3, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r3, #0x32] - adds r0, #6 - strh r0, [r3, #0x32] - adds r0, r3, #0 - movs r1, #1 - bl InitializeAnimation - b _080A95B6 -_080A9578: - ldrh r1, [r3, #0x36] - movs r2, #0x36 - ldrsh r0, [r3, r2] - cmp r0, #0 - beq _080A9586 - adds r0, r1, #1 - strh r0, [r3, #0x36] -_080A9586: - ldrb r1, [r3, #0x15] - lsls r1, r1, #1 - ldr r0, _080A95B8 @ =gSineTable - adds r1, r1, r0 - movs r4, #0 - ldrsh r2, [r1, r4] - movs r4, #0x24 - ldrsh r0, [r3, r4] - muls r2, r0, r2 - ldr r0, [r3, #0x2c] - adds r0, r0, r2 - str r0, [r3, #0x2c] - adds r1, #0x80 - movs r0, #0 - ldrsh r1, [r1, r0] - movs r2, #0x24 - ldrsh r0, [r3, r2] - muls r1, r0, r1 - ldr r0, [r3, #0x30] - subs r0, r0, r1 - str r0, [r3, #0x30] - adds r0, r3, #0 - bl GetNextFrame -_080A95B6: - pop {r4, pc} - .align 2, 0 -_080A95B8: .4byte gSineTable - - thumb_func_start sub_080A95BC -sub_080A95BC: @ 0x080A95BC - push {r4, lr} - adds r4, r0, #0 - bl GetNextFrame - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A95D8 - adds r0, r4, #0 - bl DeleteEntity -_080A95D8: - pop {r4, pc} - .align 2, 0 diff --git a/asm/projectile/projectileF.s b/asm/projectile/projectileF.s deleted file mode 100644 index 55ce9be0..00000000 --- a/asm/projectile/projectileF.s +++ /dev/null @@ -1,537 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start ProjectileF -ProjectileF: @ 0x080A95DC - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080A95F4 @ =gUnk_08129ABC - bl GetNextFunction - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_080A95F4: .4byte gUnk_08129ABC - - thumb_func_start sub_080A95F8 -sub_080A95F8: @ 0x080A95F8 - push {lr} - ldr r2, _080A960C @ =gUnk_08129AD0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080A960C: .4byte gUnk_08129AD0 - - thumb_func_start sub_080A9610 -sub_080A9610: @ 0x080A9610 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #1 - strb r5, [r4, #0xc] - ldrb r0, [r4, #0xa] - cmp r0, #1 - beq _080A9660 - cmp r0, #1 - bgt _080A9628 - cmp r0, #0 - beq _080A9632 - b _080A9756 -_080A9628: - cmp r0, #2 - beq _080A96D0 - cmp r0, #3 - beq _080A9718 - b _080A9756 -_080A9632: - movs r1, #0x90 - lsls r1, r1, #7 - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C - movs r1, #0 - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - strb r1, [r4, #0xe] - ldrb r0, [r4, #0x15] - strb r0, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x78 - movs r0, #0x96 - lsls r0, r0, #1 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0 - bl InitAnimationForceUpdate - b _080A9756 -_080A9660: - ldrb r0, [r4, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - bl Random - ldr r2, _080A96C8 @ =0x000001FF - adds r1, r2, #0 - ands r0, r1 - adds r2, #1 - adds r1, r2, #0 - adds r0, r0, r1 - strh r0, [r4, #0x24] - bl Random - ldr r1, _080A96CC @ =0x00001FFF - ands r1, r0 - movs r0, #0xc0 - lsls r0, r0, #9 - adds r1, r1, r0 - str r1, [r4, #0x20] - bl Random - movs r1, #7 - ands r0, r1 - subs r0, #4 - ldrb r1, [r4, #0x15] - subs r1, r1, r0 - strb r1, [r4, #0x15] - movs r0, #0x96 - lsls r0, r0, #2 - str r0, [r4, #0x78] - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C - adds r0, r4, #0 - movs r1, #4 - bl InitializeAnimation - b _080A9756 - .align 2, 0 -_080A96C8: .4byte 0x000001FF -_080A96CC: .4byte 0x00001FFF -_080A96D0: - bl Random - ands r0, r5 - cmp r0, #0 - beq _080A96EA - bl Random - movs r1, #7 - ands r0, r1 - ldrb r1, [r4, #0x15] - adds r0, r0, r1 - strb r0, [r4, #0x15] - b _080A96F8 -_080A96EA: - bl Random - movs r1, #7 - ands r0, r1 - ldrb r1, [r4, #0x15] - subs r1, r1, r0 - strb r1, [r4, #0x15] -_080A96F8: - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - movs r0, #0x30 - strb r0, [r4, #0xe] - movs r1, #0xa0 - lsls r1, r1, #7 - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C - adds r0, r4, #0 - movs r1, #5 - bl InitializeAnimation - b _080A9756 -_080A9718: - ldr r0, _080A9760 @ =gPlayerEntity - adds r1, r4, #0 - bl CopyPosition - ldr r0, _080A9764 @ =0xFF600000 - str r0, [r4, #0x34] - ldrh r0, [r4, #0x2e] - adds r0, #0x60 - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x32] - adds r0, #0x40 - strh r0, [r4, #0x32] - bl Random - movs r1, #0xc0 - bl __modsi3 - ldrh r1, [r4, #0x2e] - subs r1, r1, r0 - strh r1, [r4, #0x2e] - bl Random - movs r1, #0x7f - ands r1, r0 - ldrh r0, [r4, #0x32] - subs r0, r0, r1 - strh r0, [r4, #0x32] - adds r0, r4, #0 - movs r1, #0 - bl InitializeAnimation -_080A9756: - ldr r0, _080A9768 @ =0x000001B5 - bl SoundReq - pop {r4, r5, pc} - .align 2, 0 -_080A9760: .4byte gPlayerEntity -_080A9764: .4byte 0xFF600000 -_080A9768: .4byte 0x000001B5 - - thumb_func_start sub_080A976C -sub_080A976C: @ 0x080A976C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #1 - bne _080A9778 - b _080A9908 -_080A9778: - cmp r0, #1 - bgt _080A9782 - cmp r0, #0 - beq _080A9790 - b _080A99EE -_080A9782: - cmp r0, #2 - bne _080A9788 - b _080A99A0 -_080A9788: - cmp r0, #3 - bne _080A978E - b _080A99D2 -_080A978E: - b _080A99EE -_080A9790: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #2 - bne _080A979C - bl DeleteThisEntity -_080A979C: - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _080A97E0 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A97E0 - movs r5, #0x7f - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - bne _080A97C0 - adds r0, r4, #0 - bl sub_080A99F0 -_080A97C0: - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - lsls r0, r0, #3 - strb r0, [r4, #0x15] - movs r1, #0 - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r4, #0x24] - movs r0, #1 - strb r0, [r4, #0xb] - strb r1, [r4, #0xe] - ldrb r1, [r4, #0x10] - adds r0, r5, #0 - ands r0, r1 - strb r0, [r4, #0x10] -_080A97E0: - ldr r1, [r4, #0x50] - adds r0, r4, #0 - movs r2, #0x40 - bl sub_0806FC80 - cmp r0, #0 - beq _080A9848 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _080A9804 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - eors r0, r1 - strb r0, [r4, #0x15] - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r4, #0x24] - b _080A9848 -_080A9804: - ldr r1, [r4, #0x50] - adds r1, #0x45 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - ldr r0, [r4, #0x50] - adds r0, #0x3d - movs r1, #0x1e - strb r1, [r0] - ldr r1, [r4, #0x50] - adds r0, r1, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #0 - beq _080A983C - adds r1, #0x42 - movs r0, #0x18 - strb r0, [r1] - ldr r0, [r4, #0x50] - adds r0, #0x46 - movs r1, #0x80 - lsls r1, r1, #2 - strh r1, [r0] - ldr r1, [r4, #0x50] - ldrb r0, [r4, #0x15] - lsrs r0, r0, #3 - adds r1, #0x3e - strb r0, [r1] -_080A983C: - ldr r0, _080A98B8 @ =0x00000127 - bl SoundReq - adds r0, r4, #0 - bl sub_080A99F0 -_080A9848: - adds r0, r4, #0 - bl UpdateAnimationSingleFrame - adds r5, r4, #0 - adds r5, #0x78 - ldrh r0, [r5] - subs r0, #1 - strh r0, [r5] - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C - ldrb r1, [r4, #0x15] - lsrs r1, r1, #3 - adds r0, r4, #0 - movs r2, #0 - bl sub_080AE58C - ldrh r1, [r4, #0x2a] - movs r0, #0xee - lsls r0, r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080A9882 - ldrb r0, [r4, #0x15] - rsbs r0, r0, #0 - strb r0, [r4, #0x15] -_080A9882: - ldrh r1, [r4, #0x2a] - movs r0, #0xee - ands r0, r1 - cmp r0, #0 - beq _080A989A - ldrb r0, [r4, #0x15] - rsbs r0, r0, #0 - movs r2, #0x80 - rsbs r2, r2, #0 - adds r1, r2, #0 - eors r0, r1 - strb r0, [r4, #0x15] -_080A989A: - ldrb r0, [r4, #0x15] - ldrb r1, [r4, #0xf] - cmp r0, r1 - bne _080A98A4 - b _080A99EE -_080A98A4: - movs r0, #0xb2 - lsls r0, r0, #1 - bl SoundReq - ldrh r0, [r5] - cmp r0, #0 - bne _080A98BC - movs r0, #4 - b _080A98C0 - .align 2, 0 -_080A98B8: .4byte 0x00000127 -_080A98BC: - ldrb r0, [r4, #0xe] - adds r0, #1 -_080A98C0: - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x15] - strb r0, [r4, #0xf] - ldrb r0, [r4, #0xe] - cmp r0, #1 - bhi _080A98CE - b _080A99EE -_080A98CE: - movs r5, #0 -_080A98D0: - adds r0, r4, #0 - movs r1, #0xf - movs r2, #1 - bl sub_0804A98C - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _080A98FC - ldr r0, [r4, #0x50] - str r0, [r1, #0x50] - ldr r1, [r4, #0x54] - ldr r0, _080A9904 @ =gUnk_08129ADC - adds r0, r5, r0 - ldrb r0, [r0] - ldrb r2, [r4, #0x15] - adds r0, r0, r2 - strb r0, [r1, #0x15] - ldr r1, [r4, #0x54] - adds r0, r4, #0 - bl CopyPosition -_080A98FC: - adds r5, #1 - cmp r5, #2 - bls _080A98D0 - b _080A9998 - .align 2, 0 -_080A9904: .4byte gUnk_08129ADC -_080A9908: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #2 - bne _080A9916 - adds r0, r4, #0 - bl sub_080A99F0 -_080A9916: - adds r0, r4, #0 - bl GetNextFrame - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - beq _080A9950 - ldrb r1, [r4, #0x15] - lsrs r1, r1, #3 - adds r0, r4, #0 - movs r2, #0 - bl sub_080AE58C - ldrh r0, [r4, #0x2a] - cmp r0, #0 - bne _080A994A - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C - b _080A9950 -_080A994A: - adds r0, r4, #0 - bl sub_080A99F0 -_080A9950: - ldr r2, [r4, #0x78] - cmp r2, #0x1d - bhi _080A9978 - movs r0, #7 - ands r0, r2 - cmp r0, #0 - beq _080A996E - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r4, #0x18] - b _080A9978 -_080A996E: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_080A9978: - subs r1, r2, #1 - str r1, [r4, #0x78] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _080A998A - adds r0, r4, #0 - bl sub_080A99F0 -_080A998A: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080A99EE -_080A9998: - adds r0, r4, #0 - bl sub_080A99F0 - b _080A99EE -_080A99A0: - adds r0, r4, #0 - bl GetNextFrame - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _080A99C2 - movs r2, #0x24 - ldrsh r1, [r4, r2] - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C - b _080A99EE -_080A99C2: - ldr r1, [r4, #0x54] - cmp r1, #0 - beq _080A99CC - movs r0, #1 - strb r0, [r1, #0xe] -_080A99CC: - bl DeleteThisEntity - b _080A99EE -_080A99D2: - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _080A99EE - adds r0, r4, #0 - movs r1, #4 - movs r2, #0 - bl CreateFx - bl DeleteThisEntity -_080A99EE: - pop {r4, r5, pc} - - thumb_func_start sub_080A99F0 -sub_080A99F0: @ 0x080A99F0 - push {lr} - movs r1, #4 - movs r2, #0 - bl CreateFx - bl DeleteThisEntity - pop {pc} diff --git a/linker.ld b/linker.ld index a4280231..8838ce5d 100644 --- a/linker.ld +++ b/linker.ld @@ -905,43 +905,43 @@ SECTIONS { asm/code_080A5574.o(.text); asm/playerItem/playerItemSword.o(.text); asm/code_080A7C00.o(.text); - asm/projectile/projectile0.o(.text); - asm/projectile/projectile1.o(.text); - asm/projectile/projectile2.o(.text); - asm/projectile/projectile3.o(.text); - asm/projectile/projectile4.o(.text); - asm/projectile/projectile5.o(.text); - asm/projectile/projectile6.o(.text); - asm/projectile/projectile7.o(.text); - asm/projectile/projectile8.o(.text); - asm/projectile/projectile9.o(.text); - asm/projectile/projectileA.o(.text); - asm/projectile/projectileB.o(.text); - asm/projectile/projectileC.o(.text); - asm/projectile/projectileD.o(.text); - asm/projectile/projectileE.o(.text); - asm/projectile/projectileF.o(.text); - asm/projectile/projectile10.o(.text); - asm/projectile/projectile11.o(.text); - asm/projectile/projectile12.o(.text); - asm/projectile/projectile13.o(.text); - asm/projectile/projectile14.o(.text); - asm/projectile/projectile15.o(.text); - asm/projectile/projectile16.o(.text); - asm/projectile/projectile17.o(.text); - asm/projectile/projectile18.o(.text); - asm/projectile/projectile19.o(.text); - asm/projectile/projectile1A.o(.text); - asm/projectile/projectile1B.o(.text); - asm/projectile/projectile1C.o(.text); - asm/projectile/projectile1D.o(.text); - asm/projectile/projectile1E.o(.text); - asm/projectile/projectile1F.o(.text); - asm/projectile/projectile20.o(.text); - asm/projectile/projectile21.o(.text); - asm/projectile/projectile22.o(.text); - asm/projectile/projectile23.o(.text); - asm/projectile/projectile24.o(.text); + src/projectile/projectile0.o(.text); + src/projectile/projectile1.o(.text); + src/projectile/projectile2.o(.text); + src/projectile/projectile3.o(.text); + src/projectile/projectile4.o(.text); + src/projectile/projectile5.o(.text); + src/projectile/projectile6.o(.text); + src/projectile/projectile7.o(.text); + src/projectile/projectile8.o(.text); + src/projectile/projectile9.o(.text); + src/projectile/projectileA.o(.text); + src/projectile/projectileB.o(.text); + src/projectile/projectileC.o(.text); + src/projectile/projectileD.o(.text); + src/projectile/projectileE.o(.text); + src/projectile/projectileF.o(.text); + src/projectile/projectile10.o(.text); + src/projectile/projectile11.o(.text); + src/projectile/projectile12.o(.text); + src/projectile/projectile13.o(.text); + src/projectile/projectile14.o(.text); + src/projectile/projectile15.o(.text); + src/projectile/projectile16.o(.text); + src/projectile/projectile17.o(.text); + src/projectile/projectile18.o(.text); + src/projectile/projectile19.o(.text); + src/projectile/projectile1A.o(.text); + src/projectile/projectile1B.o(.text); + src/projectile/projectile1C.o(.text); + src/projectile/projectile1D.o(.text); + src/projectile/projectile1E.o(.text); + src/projectile/projectile1F.o(.text); + src/projectile/projectile20.o(.text); + src/projectile/projectile21.o(.text); + src/projectile/projectile22.o(.text); + src/projectile/projectile23.o(.text); + src/projectile/projectile24.o(.text); asm/playerItem/playerItem10.o(.text); asm/playerItem/playerItem13.o(.text); src/intro.o(.text); diff --git a/src/code_080A29BC.c b/src/code_080A29BC.c index a33d6124..c085a684 100644 --- a/src/code_080A29BC.c +++ b/src/code_080A29BC.c @@ -3,10 +3,6 @@ #include "room.h" #include "object.h" -void sub_080A29BC(Entity* parent) { // TODO this is CreateDust, why is it here again? Fogot to delete file? - CreateFx(parent, 2, 0); -} - void sub_080A29C8(s32 xOff, s32 yOff, u32 layer) { Entity* pEVar1; diff --git a/src/npc/npc5.c b/src/npc/npc5.c index b8e9d488..ec68f38b 100644 --- a/src/npc/npc5.c +++ b/src/npc/npc5.c @@ -343,65 +343,7 @@ u32 sub_08060F80(Entity* this) { return 0; } -NONMATCH("asm/non_matching/npc5/sub_08060FD0.inc", bool32 sub_08060FD0(Entity* this, u32 a, u32 b)) { - u32 sVar1; - u32 sVar2; - u32 uVar3; - s32 iVar4; - s32 iVar5; - s32 iVar6; - u32 r6; - u32 r7; - Entity* puVar9; - r7 = this->x.HALF.HI; - r6 = this->y.HALF.HI; - // asm("c"); - uVar3 = sub_080045DA(a - r7, b - r6); - // asm("b"); - r7 = r7 << 8; - r6 = r6 << 8; - // asm("a"); - sVar1 = gSineTable[uVar3]; - // asm("b"); - sVar2 = gSineTable[uVar3 + 0x40]; - asm("c"); - puVar9 = &gUnk_0200D654; - if (this->collisionLayer != 2) { - puVar9 = &gUnk_02027EB4; - } -code0: - // for(;;) { - asm("k"); - if (r7 < 0) { - r7 += 0xff; - } - // asm("i"); - if (r6 < 0) { - // asm("j"); - r6 += 0xff; - } - // asm("k"); - // asm("m"); - if (sub_080AE4CC(puVar9, r7 >> 8, r6 >> 8, 6) != 0) { - return FALSE; - } - if (!(((a - (r7 >> 8)) + 6 < 0xd) && ((b - (r6 >> 8)) + 6 < 0xd))) { - r7 += sVar1 * 6; - r6 -= sVar2 * -6; - // asm("q"); - // asm("r"); - } else { - return TRUE; - - // asm("p"); - } - goto code0; -// }; -code4: - // asm("l"); - return FALSE; -} -END_NONMATCH +ASM_FUNC("asm/non_matching/npc5/sub_08060FD0.inc", bool32 sub_08060FD0(Entity* this, u32 a, u32 b)) void sub_08061090(Entity* this, u32 a, u32 b) { s32 xDist; diff --git a/src/projectile/projectile0.c b/src/projectile/projectile0.c new file mode 100644 index 00000000..644d9686 --- /dev/null +++ b/src/projectile/projectile0.c @@ -0,0 +1,73 @@ +#include "entity.h" +#include "player.h" +#include "coord.h" + +void sub_080A7F80(Entity*); +void sub_080A7F9C(Entity*); + +extern u8 gUnk_081293B8[]; + +extern void (*const gUnk_081293CC[])(Entity*); + +extern Hitbox** gUnk_081293E0[]; + +extern Hitbox* gUnk_081293F0[]; + +extern Hitbox* gUnk_08129400[]; +extern Hitbox* gUnk_08129410[]; + +extern Hitbox* gUnk_08129420[]; + +void Projectile0(Entity* this) { + if (this->action == 0) { + this->action = 1; + sub_080A7F80(this); + if (this->type == 3) { + InitAnimationForceUpdate(this, this->parent->animationState + 0x18); + } + } + if ((this->parent == NULL) || (this->parent->currentHealth == 0)) { + DeleteThisEntity(); + } + if (((this->bitfield & 0x80) != 0) && (this->field_0x4c == &gPlayerEntity)) { + this->iframes = -0x2d; + } + this->bitfield = 0; + CopyPositionAndSpriteOffset(this->parent, this); + sub_080A7F9C(this); + if (this->type == 3) { + this->y.HALF.HI += 1; + UpdateAnimationSingleFrame(this); + } +} + +void sub_080A7F80(Entity* this) { + this->damageType = gUnk_081293B8[this->parent->type + this->type * 4]; +} + +void sub_080A7F9C(Entity* this) { + gUnk_081293CC[this->type](this); +} + +void sub_080A7FB4(Entity* this) { + Entity* parent = this->parent; + this->hitbox = gUnk_081293E0[parent->animationState][(parent->frames.all & 0xf) - 1]; +} + +void sub_080A7FD8(Entity* this) { + Entity* parent = this->parent; + this->hitbox = gUnk_081293F0[parent->animationState]; +} + +void sub_080A7FEC(Entity* this) { + if ((this->parent->frames.all & 0x10) != 0) { + this->hitbox = gUnk_08129410[this->parent->animationState]; + } else { + this->hitbox = gUnk_08129400[this->parent->animationState]; + } +} + +void sub_080A801C(Entity* this) { + Entity* parent = this->parent; + this->hitbox = gUnk_08129420[parent->animationState]; +} diff --git a/src/projectile/projectile1.c b/src/projectile/projectile1.c new file mode 100644 index 00000000..d300cd5f --- /dev/null +++ b/src/projectile/projectile1.c @@ -0,0 +1,91 @@ +#include "entity.h" +#include "enemy.h" +#include "functions.h" + +extern void (*const gUnk_081295D0[])(Entity*); + +extern void (*const gUnk_081295E4[])(Entity*); + +void sub_080A8178(Entity*); + +extern s32 sub_080AF090(Entity*); +extern s32 sub_080A7EB0(Entity*); +extern void sub_08016AD2(Entity*); + +void Projectile1(Entity* this) { + gUnk_081295D0[GetNextFunction(this)](this); +} + +void sub_080A804C(Entity* this) { + gUnk_081295E4[this->action](this); +} + +void sub_080A8064(Entity* this) { + if (this->bitfield == 0x80) { + DeleteEntity(this); + } else { + this->direction = this->field_0x3e; + sub_080A8178(this); + } +} + +void sub_080A8088(Entity* this) { + this->action = 1; + this->actionDelay = 0x30; + this->field_0x20 = 0xa000; + InitializeAnimation(this, 0); +} + +void sub_080A80A0(Entity* this) { + GetNextFrame(this); + if (sub_080AF090(this) != 0) { + if (sub_080A7EB0(this) != 0) { + DeleteEntity(this); + } else { + sub_08016AD2(this); + if (--this->actionDelay == 0) { + this->action = 3; + } + } + } else { + sub_0800417E(this, this->collisions); + sub_080A8178(this); + sub_08016AD2(this); + } +} + +void sub_080A80F4(Entity* this) { + sub_0806F69C(this); + GetNextFrame(this); + if (sub_08003FC4(this, 0x1800) == 0) { + DeleteEntity(this); + } +} + +void sub_080A8118(Entity* this) { + GetNextFrame(this); + sub_080AF090(this); + switch (sub_080044EC(this, 0x2800)) { + case 0: + DeleteEntity(this); + return; + case 1: + this->flags &= 0x7f; + this->speed = 0x120; + if (sub_0800442E(this) != 0) { + return; + } + + break; + } + if ((this->flags & 0x80) == 0) { + this->spriteSettings.b.draw ^= 1; + } +} + +void sub_080A8178(Entity* this) { + this->action = 2; + this->flags &= 0x7f; + this->speed = 0x40; + this->field_0x20 = 0x14000; +} diff --git a/src/projectile/projectile10.c b/src/projectile/projectile10.c new file mode 100644 index 00000000..d93f9e0c --- /dev/null +++ b/src/projectile/projectile10.c @@ -0,0 +1,188 @@ +#include "entity.h" +#include "enemy.h" +#include "functions.h" + +extern void (*const gUnk_08129AE0[])(Entity*); + +extern void (*const gUnk_08129AF8[])(Entity*); + +extern void (*const gUnk_08129B08[])(Entity*); +void sub_080A9BA8(Entity*); + +void sub_080A9BD0(Entity*); +void sub_080A9C34(Entity*); + +void sub_080A9C50(Entity*); + +typedef struct { + s8 unk_0; + s8 unk_1; + s8 unk_2; +} PACKED struct_08129B20; +extern struct_08129B20 gUnk_08129B20[]; + +extern u8 gUnk_08129B50[]; + +void Projectile10(Entity* this) { + gUnk_08129AE0[GetNextFunction(this)](this); +} + +void sub_080A9A1C(Entity* this) { + gUnk_08129AF8[this->action](this); +} + +void sub_080A9A34(Entity* this) { + if (this->bitfield == 0x9d) { + this->action = 3; + this->flags &= 0x7f; + this->field_0x20 = 0x2a000; + this->spritePriority.b1 = 1; + } +} + +void sub_080A9A64(Entity* this) { + if ((this->subAction < 3) && (sub_0806F520(this) == 0)) { + sub_080A9BA8(this); + } + gUnk_08129B08[this->subAction](this); +} + +void sub_080A9A94(Entity* this) { + this->subAction = 2; + this->height.HALF.HI = 0xfffe; +} + +void sub_080A9AA4(Entity* this) { + sub_0806F4E8(this); +} + +void sub_080A9AAC(Entity* this) { + sub_0806F3E4(this); +} + +void sub_080A9AB4(Entity* this) { + this->flags &= 0x7f; +} + +void nullsub_128(Entity* this) { +} + +void sub_080A9AC4(Entity* this) { + sub_080A9BA8(this); +} + +void sub_080A9ACC(Entity* this) { + switch (this->type2) { + case 1: + this->action = 2; + this->flags |= 0x80; + break; + case 2: + this->action = 3; + this->field_0x20 = 0x2a000; + this->spritePriority.b1 = 1; + break; + default: + this->action = 1; + break; + } + + this->field_0x1c = 2; + if (this->type == 0) { + InitializeAnimation(this, 5); + } else { + this->frameIndex = 0; + } +} + +void sub_080A9B24(Entity* this) { + if (this->parent->next == NULL) { + sub_080A9BA8(this); + } + if (this->parent->action == 0xb) { + sub_080A9BD0(this); + } else { + this->action = 2; + sub_080A9C34(this); + } +} + +void sub_080A9B54(Entity* this) { + if (this->parent->next == NULL) { + sub_080A9BA8(this); + } + if (this->parent->action == 9) { + sub_080A9C34(this); + } else { + sub_080A9C50(this); + } +} + +void sub_080A9B80(Entity* this) { + if (this->field_0x20 < 0) { + this->spriteSettings.b.flipY = 1; + } + if (sub_08003FC4(this, 0x2000) == 0) { + sub_080A9BA8(this); + } +} + +void sub_080A9BA8(Entity* this) { + if (this->type == 0) { + CreateFx(this, 5, 0); + } else { + CreateFx(this, 0x3c, 0); + } + DeleteThisEntity(); +} + +void sub_080A9BD0(Entity* this) { + Entity* parent; + s32 tmp; + u32 tmp2; + struct_08129B20* entry; + + parent = this->parent; + switch (parent->animationState) { + case 0: + tmp = parent->frameIndex - 0x39; + break; + case 1: + case 3: + tmp = parent->frameIndex - 0x3d; + break; + case 2: + tmp = parent->frameIndex - 0x41; + break; + } + entry = &gUnk_08129B20[tmp + parent->animationState * 4]; + sub_0806FA90(parent, this, entry->unk_0, entry->unk_1); + this->height.HALF.HI = entry->unk_2 + this->height.HALF.HI; +} + +void sub_080A9C34(Entity* this) { + sub_0806FA90(this->parent, this, 0, 1); + this->spriteOffsetY -= 0xe; +} + +void sub_080A9C50(Entity* this) { + Entity* parent; + u32 tmp; + + parent = this->parent; + switch (parent->animationState) { + case 0: + tmp = 0xffffffd9 + parent->frameIndex; + break; + case 1: + case 3: + tmp = parent->frameIndex - 0x2d; + break; + case 2: + tmp = parent->frameIndex - 0x33; + break; + } + + sub_0806FA90(parent, this, 0, 1); + this->spriteOffsetY += gUnk_08129B50[tmp]; +} diff --git a/src/projectile/projectile11.c b/src/projectile/projectile11.c new file mode 100644 index 00000000..a3b62c6e --- /dev/null +++ b/src/projectile/projectile11.c @@ -0,0 +1,66 @@ +#include "entity.h" +#include "enemy.h" +#include "functions.h" +#include "player.h" + +extern void (*const gUnk_08129B58[])(Entity*); + +extern void (*const gUnk_08129B70[])(Entity*); + +extern void (*const gUnk_08129B78[])(Entity*); + +extern void sub_0800449C(Entity*, u32); +extern void sub_08079D84(void); + +void Projectile11(Entity* this) { + if (this->parent->next == NULL) { + DeleteThisEntity(); + } + gUnk_08129B58[GetNextFunction(this)](this); +} + +void sub_080A9CD4(Entity* this) { + gUnk_08129B70[this->action](this); +} + +void nullsub_539(Entity* this) { +} + +void sub_080A9CF0(Entity* this) { + if (sub_0806F520() == 0) { + CreateFx(this, 2, 0); + DeleteThisEntity(); + } + gUnk_08129B78[this->subAction](this); +} + +void sub_080A9D20(Entity* this) { + this->subAction = 2; +} + +void nullsub_540(Entity* this) { +} + +void sub_080A9D2C(Entity* this) { + if (sub_0806F3E4(this) != 0) { + if (this->damageType == 0xa6) { + ModHealth(-2); + sub_0800449C(&gPlayerEntity, 0x7a); + sub_08079D84(); + } + CreateFx(this, 2, 0); + DeleteThisEntity(); + } +} + +void sub_080A9D6C(Entity* this) { + this->action = 1; + this->animationState = this->parent->animationState; + InitAnimationForceUpdate(this, this->animationState); +} + +void sub_080A9D80(Entity* this) { + PositionRelative(this->parent, this, 0, -0x10000); + this->height.HALF.HI = 0xfffe; + UpdateAnimationSingleFrame(this); +} diff --git a/src/projectile/projectile12.c b/src/projectile/projectile12.c new file mode 100644 index 00000000..98c2d546 --- /dev/null +++ b/src/projectile/projectile12.c @@ -0,0 +1,45 @@ +#include "entity.h" +#include "enemy.h" + +extern void (*const gUnk_08129BEC[])(Entity*); + +extern void (*const gUnk_08129C00[])(Entity*); + +void sub_080A9DC0(Entity*); + +extern s32 sub_080AF090(Entity*); +extern s32 sub_080A7EB0(Entity*); + +void Projectile12(Entity* this) { + gUnk_08129BEC[GetNextFunction(this)](this); +} + +void sub_080A9DC0(Entity* this) { + gUnk_08129C00[this->action](this); +} + +void sub_080A9DD8(Entity* this) { + if ((this->currentHealth == 0) || (this->bitfield == 0x80)) { + DeleteThisEntity(); + } + sub_080A9DC0(this); +} + +void sub_080A9DFC(Entity* this) { + this->action = 1; + this->actionDelay = 0xb4; + this->currentHealth = 1; + InitializeAnimation(this, 0); +} + +void sub_080A9E14(Entity* this) { + GetNextFrame(this); + sub_080AF090(this); + if ((this->collisions != 0) || (--this->actionDelay == 0)) { + CreateFx(this, 0x4f, 0); + DeleteThisEntity(); + } + if (sub_080A7EB0(this) != 0) { + DeleteThisEntity(); + } +} diff --git a/src/projectile/projectile13.c b/src/projectile/projectile13.c new file mode 100644 index 00000000..434b3902 --- /dev/null +++ b/src/projectile/projectile13.c @@ -0,0 +1,338 @@ +#include "entity.h" +#include "enemy.h" +#include "coord.h" +#include "functions.h" +#include "audio.h" +#include "random.h" +#include "game.h" + +extern void (*const gUnk_08129C7C[])(Entity*); + +extern void (*const gUnk_08129C90[])(Entity*); +void sub_080AA1D8(Entity*); + +void sub_080AA270(Entity*); + +bool32 sub_080AA2E0(Entity*); +void sub_080AA320(Entity*); + +void sub_080AA3E0(Entity*, u32); +bool32 sub_080AA374(Entity*); + +extern u8 gUnk_08129CA4[]; +extern Hitbox* gUnk_08129CF4[]; +extern u8 gUnk_08129CAC[]; + +extern Entity* sub_08049DF4(u32); +extern u32 sub_08049F1C(Entity*, Entity*, u32); + +extern s32 sub_080AF090(Entity*); + +extern Hitbox gUnk_080FD150; + +extern s8 gUnk_08129D14[]; +extern u32 sub_0806F824(Entity*, Entity*, u32, u32); + +void Projectile13(Entity* this) { + Entity* entity; + + entity = this->attachedEntity; + if (entity == NULL) { + entity = this->parent; + } + if ((entity->field_0x43 == 0) && ((this->flags & 0x80) == 0)) { + this->flags |= 0x80; + } + gUnk_08129C7C[GetNextFunction(this)](this); +} + +void sub_080A9E94(Entity* this) { + if (this->action < 3) { + sub_080AA1D8(this); + } + gUnk_08129C90[this->action](this); +} + +void sub_080A9EBC(Entity* this) { + Entity* parent; + + if ((this->bitfield & 0x80) != 0) { + switch (this->action) { + case 4: + this->field_0xf = 0; + ModHealth(-2); + sub_080AF090(this); + UpdateAnimationSingleFrame(this); + break; + case 3: + if (this->field_0x43 != 0) { + this->field_0x82.HALF.LO = 2; + this->animationState = 0xff; + sub_080AA270(this); + this->field_0xf = 0x20; + } + break; + default: + parent = this->parent; + parent->iframes = this->iframes; + parent->field_0x3e = this->field_0x3e; + parent->field_0x42 = this->field_0x42; + if (this->action == 1) { + sub_080AA320(this); + } + break; + } + this->field_0x42 = 0; + } +} + +void sub_080A9F50(Entity* this) { + this->action = 1; + this->field_0x80.HWORD = 0; + this->animationState = 0xff; + this->field_0x82.HALF.LO = 0; + this->spritePriority.b0 = 4; + sub_0806FAD8(this, this->parent); + sub_080AA270(this); +} + +void sub_080A9F90(Entity* this) { + if (this->field_0x80.HWORD != 0) { + this->field_0x80.HWORD -= 1; + } else { + if (--this->field_0xf == 0) { + sub_080AA270(this); + } else { + if (sub_080AA2E0(this) != 0) { + sub_080AA320(this); + } + } + } + UpdateAnimationSingleFrame(this); +} + +void sub_080A9FD0(Entity* this) { + UpdateAnimationSingleFrame(this); + if ((this->frames.all & 0x40) != 0) { + this->frames.all &= 0xbf; + EnqueueSFX(SFX_15D); + } + this->field_0x78.HWORD = TILE(this->x.HALF.HI, this->y.HALF.HI); + if (GetTileType(this->field_0x78.HWORD, this->collisionLayer) == 0x4000) { + SetTile(0x4005, this->field_0x78.HWORD, this->collisionLayer); + } +} + +void sub_080AA044(Entity* this) { + u32 uVar1; + s8* tmp; + Entity* entity; + + entity = this->attachedEntity; + if (entity == NULL) { + DeleteThisEntity(); + } + if (entity->next == NULL) { + DeleteThisEntity(); + } else { + tmp = GetSpriteSubEntryOffsetDataPointer((u16)entity->spriteIndex, entity->frameIndex); + if ((entity->animationState & 4) != 0) { + PositionRelative(entity, this, -tmp[0] * 0x10000, tmp[1] << 0x10); + } else { + PositionRelative(entity, this, tmp[0] << 0x10, tmp[1] << 0x10); + } + } + if (entity->field_0x43 == 0) { + if (this->field_0xf != 0) { + this->field_0xf -= 1; + } else { + UpdateAnimationSingleFrame(this); + if ((this->frames.all & 0x80) != 0) { + this->action = 4; + this->field_0x82.HALF.LO = 3; + this->field_0xf = 0x40; + uVar1 = entity->animationState; + this->direction = uVar1 << 2; + this->animationState = uVar1 << 0x1a >> 0x1a; + this->hitbox = &gUnk_080FD150; + if (CheckIsDungeon() != 0) { + this->spriteOrientation.flipY = 1; + } + sub_080AA3E0(this, 0); + } + } + } +} + +void sub_080AA110(Entity* this) { + s32 iVar1; + u32 uVar2; + Entity* entity; + + entity = this->attachedEntity; + if (entity != NULL) { + if (entity->next == NULL) { + this->attachedEntity = NULL; + } + if (this->field_0xf != 0) { + this->field_0xf -= 1; + } else { + if (sub_080AA374(this) != 0) { + if (entity->currentHealth == 0) { + DeleteThisEntity(); + } + EnqueueSFX(0xf2); + this->action = 1; + this->animationState = 0xff; + this->field_0x82.HALF.LO = 0; + this->actionDelay = 0; + this->field_0x80.HWORD = 0x20; + this->spriteOrientation.flipY = 2; + this->parent = this->attachedEntity; + this->attachedEntity = NULL; + sub_080AA270(this); + entity = this->parent; + entity->action = 1; + entity->direction = entity->animationState << 2; + entity->speed = 0; + entity->field_0x82.HALF.LO = 1; + entity->actionDelay = 0; + entity->field_0xf = 0x78; + entity->field_0x80.HWORD = 0x20; + sub_080AA3E0(entity, 1); + } + } + } else { + if (sub_080040A8(this) == 0) { + DeleteThisEntity(); + } + } + sub_0806F69C(this); + UpdateAnimationSingleFrame(this); +} + +void sub_080AA1D8(Entity* this) { + s8* tmp; + Entity* parent; + + parent = this->parent; + if (parent != NULL) { + if (parent->next == NULL) { + DeleteThisEntity(); + } + if ((parent->frameIndex & 0x20) == 0) { + tmp = GetSpriteSubEntryOffsetDataPointer((u16)parent->spriteIndex, parent->frameIndex); + if ((parent->animationState & 4) != 0) { + PositionRelative(parent, this, -tmp[0] * 0x10000, tmp[1] << 0x10); + } else { + PositionRelative(parent, this, tmp[0] << 0x10, tmp[1] << 0x10); + } + if (parent->field_0x43 != 0) { + if ((this->flags & 0x80) != 0) { + this->flags &= 0x7f; + } + } else { + if ((this->flags & 0x80) == 0) { + this->flags |= 0x80; + } + } + } + } else { + DeleteThisEntity(); + } +} + +void sub_080AA270(Entity* this) { + u32 animationState; + Entity* parent; + parent = this->parent; + this->field_0xf = gUnk_08129CA4[Random() & 7]; + animationState = parent->animationState; + if (this->animationState == 0xff) { + this->animationState = animationState; + this->hitbox = gUnk_08129CF4[animationState]; + sub_080AA3E0(this, 0); + } else { + animationState = (gUnk_08129CAC[Random() & 7] + animationState) & 7; + if (animationState != this->animationState) { + this->animationState = animationState; + this->hitbox = gUnk_08129CF4[animationState]; + sub_080AA3E0(this, 0); + } + } +} + +bool32 sub_080AA2E0(Entity* this) { + Entity* entity; + u32 a; + u32 b; + + entity = sub_08049DF4(0); + if (entity == NULL) { + return FALSE; + } + a = GetFacingDirection(this, entity); + b = this->animationState * 4; + if (Direction8Round(a + 4) != Direction8Round(b + 4)) { + return FALSE; + } + if (sub_08049F1C(this, entity, 0x40) == 0) { + return FALSE; + } + return TRUE; +} + +NONMATCH("asm/non_matching/projectile13/sub_080AA320.inc", void sub_080AA320(Entity* this)) { + u32 uVar2; + Entity* parent; + + parent = this->parent; + this->action = 2; + this->field_0x82.HALF.LO = 1; + this->field_0xf = 0; + parent->action = 2; + parent->field_0xf = 0x30; + parent->field_0x80.HWORD = 0x50; + parent->speed = 0; + parent->direction = sub_08049F84(parent, 0); + // TODO regalloc + uVar2 = parent->direction + 4; + this->animationState = Direction8Round(uVar2) >> 2; + parent->animationState = DirectionRound(uVar2) >> 2; + sub_080AA3E0(parent, 1); + sub_080AA1D8(this); +} +END_NONMATCH + +NONMATCH("asm/non_matching/projectile13/sub_080AA374.inc", bool32 sub_080AA374(Entity* this)) { + u32 uVar1; + u32 animationState; + Entity* entity; + bool32 result; + + result = FALSE; + if ((this->attachedEntity != NULL) && (this->attachedEntity->next != NULL)) { + // TODO regalloc + animationState = this->attachedEntity->animationState; + uVar1 = + sub_0806F824(this, this->attachedEntity, gUnk_08129D14[animationState], gUnk_08129D14[animationState + 1]); + if (sub_0806FCB8(this, this->attachedEntity->x.HALF.HI + gUnk_08129D14[animationState], + this->attachedEntity->y.HALF.HI + gUnk_08129D14[animationState + 1], 8) != 0) { + result = TRUE; + } else { + sub_08004596(this, uVar1); + } + } + return result; +} +END_NONMATCH + +void sub_080AA3E0(Entity* this, u32 param) { + u32 tmp; + + tmp = this->animationState | this->field_0x82.HALF.LO << 3; + if (param != 0) { + tmp >>= 1; + } + InitAnimationForceUpdate(this, tmp); +} diff --git a/src/projectile/projectile14.c b/src/projectile/projectile14.c new file mode 100644 index 00000000..0284e5d0 --- /dev/null +++ b/src/projectile/projectile14.c @@ -0,0 +1,150 @@ +#include "entity.h" +#include "enemy.h" +#include "coord.h" +#include "functions.h" +#include "flags.h" +#include "utils.h" + +extern void (*const gUnk_08129FB8[])(Entity*); + +void sub_080AA494(Entity*); +void sub_080AA534(Entity*); + +void sub_080AA464(Entity*); + +void sub_080AA544(Entity*); + +extern u16 gUnk_08129FD0[]; +void sub_080AA654(Entity*, u32); + +extern s8 gUnk_08129FF8[]; +extern u16 gUnk_08129FE4[]; +extern u32 sub_080002C8(u16, u8); + +extern u32 gUnk_0812A004; +extern Entity* LoadRoomEntity(EntityData*); + +void Projectile14(Entity* this) { + gUnk_08129FB8[GetNextFunction(this)](this); +} + +void sub_080AA41C(Entity* this) { + if (this->action == 0) { + this->action = 1; + this->frameIndex = this->type; + this->field_0x1c = 1; + this->speed = this->field_0x86.HWORD; + if (this->type == 0) { + sub_080AA494(this); + } else { + sub_080AA534(this); + } + } +} + +void sub_080AA450(Entity* this) { + if (this->bitfield == 0x96) { + sub_080AA464(this); + } +} + +void sub_080AA464(Entity* this) { + Entity* entity; + + if (this->type == 0) { + sub_080AA544(this); + } + entity = CreateObject(0x21, 3, 0); + if (entity != NULL) { + CopyPosition(this, entity); + } + DeleteEntity(this); +} + +void sub_080AA494(Entity* this) { + u32 tileType; + u16* iterator; + u32 index; + + index = 0; + tileType = GetTileTypeByEntity(this); + iterator = gUnk_08129FD0; + while (*iterator != 0) { + if (*(iterator++) == tileType) { + break; + } + index += 1; + } + if (CheckFlags((u16)this->speed) != 0) { + if (index == 4) { + sub_080AA654(this, TILE(this->x.HALF.HI, this->y.HALF.HI)); + } + DeleteThisEntity(); + } + this->type2 = index; + this->spritePriority.b0 = 7; + SetTile(0x4068, TILE(this->x.HALF.HI, this->y.HALF.HI), this->collisionLayer); +} + +void sub_080AA534(Entity* this) { + this->collisionLayer = 3; + UpdateSpriteForCollisionLayer(this); +} + +NONMATCH("asm/non_matching/projectile14/sub_080AA544.inc", void sub_080AA544(Entity* this)) { + u8* pbVar1; + s32 iVar2; + u32 uVar3; + s32 iVar4; + u16* puVar5; + u32 param; + s8* tmp; + + if (this->type2 < 9) { + tmp = gUnk_08129FF8; + param = TILE(this->x.HALF.HI, this->y.HALF.HI) + tmp[this->type2]; + uVar3 = 0; + iVar4 = 0; + do { + iVar2 = sub_080002C8((param - tmp[uVar3]) & 0xffff, this->collisionLayer); + if (iVar2 == 0x3e) { + iVar4 += 1; + } + uVar3 += 1; + } while (uVar3 < 9); + + if (iVar4 == 8) { + uVar3 = 0; + puVar5 = gUnk_08129FD0; + do { + sub_0807B7D8((u32)*puVar5, param - tmp[uVar3], this->collisionLayer); + puVar5 += 1; + uVar3 += 1; + } while (uVar3 < 9); + sub_080AA654(this, param); + SetFlag((u16)this->speed); + } else { + sub_0807B7D8(gUnk_08129FE4[this->type2], + param - + // TODO this array access is wrong + *((s8*)gUnk_08129FE4 + this->type2), + this->collisionLayer); + } + } else { + sub_0807BA8C(TILE(this->x.HALF.HI, this->y.HALF.HI), this->collisionLayer); + SetFlag((u16)this->speed); + } +} +END_NONMATCH + +void sub_080AA654(Entity* this, u32 param) { + EntityData* entityData; + entityData = (EntityData*)&this->field_0x68; + + MemCopy(&gUnk_0812A004, entityData, 0x10); + + entityData->xPos = ((u16)param & 0x3f) * 0x10 + 8; + entityData->yPos = ((param & 0xfc0) >> 2) + 8; + + LoadRoomEntity(entityData); +} diff --git a/src/projectile/projectile15.c b/src/projectile/projectile15.c new file mode 100644 index 00000000..0130e3a7 --- /dev/null +++ b/src/projectile/projectile15.c @@ -0,0 +1,186 @@ +#include "entity.h" +#include "enemy.h" +#include "audio.h" +#include "functions.h" +#include "object.h" +#include "flags.h" + +extern void (*const gUnk_0812A014[])(Entity*); + +extern void (*const gUnk_0812A02C[])(Entity*); + +extern u8 gUnk_0812A03C[]; + +void sub_080AA6C0(Entity*); +void sub_080AAAA8(Entity*); + +extern Hitbox* gUnk_0812A04C[]; +void sub_080AAA68(Entity*); + +void sub_080AA9E0(Entity*); + +extern void (*const gUnk_0812A05C[])(Entity*); +extern void sub_0806FBB4(Entity*); + +extern u16 gUnk_0812A084[]; + +extern u32 sub_080002D4(s32, s32, u32); +extern s8 gUnk_0812A064[]; +extern s8 gUnk_0812A06C[]; + +void Projectile15(Entity* this) { + gUnk_0812A014[GetNextFunction(this)](this); +} + +void sub_080AA6A8(Entity* this) { + gUnk_0812A02C[this->action](this); +} + +void sub_080AA6C0(Entity* this) { + Entity* object; + + if (this->bitfield == 0x87) { + this->action = 3; + this->actionDelay = 0x5a; + this->flags &= 0x7f; + InitAnimationForceUpdate(this, this->type + 0x10); + object = CreateObject(OBJECT_2A, 3, 0); + if (object != NULL) { + object->type2 = 0x5a; + object->spritePriority.b0 = 3; + object->spriteOffsetX = gUnk_0812A03C[this->type * 4]; + object->spriteOffsetY = gUnk_0812A03C[this->type * 4 + 1]; + object->parent = this; + } + object = CreateObject(OBJECT_2A, 3, 0); + if (object != NULL) { + object->type2 = 0x5a; + object->spritePriority.b0 = 3; + object->spriteOffsetX = gUnk_0812A03C[this->type * 4 + 2]; + object->spriteOffsetY = gUnk_0812A03C[this->type * 4 + 3]; + object->parent = this; + } + } else { + InitAnimationForceUpdate(this, this->type + 0x10); + EnqueueSFX(SFX_101); + } +} + +void sub_080AA78C(Entity* this) { + u32 animationState; + + if (this->subAction == 0) { + animationState = (gPlayerEntity.animationState >> 1); + if (animationState != this->type) { + this->field_0x3a &= 0xfb; + if ((animationState ^ 2) != this->type) { + return; + } + this->iframes = 0xe2; + sub_080AA6C0(this); + return; + } + this->subAction = 1; + InitAnimationForceUpdate(this, animationState + 8); + } + if (sub_0806F520(this) != 0) { + UpdateAnimationSingleFrame(this); + if ((this->frames.all & 0x10) != 0) { + this->frames.all &= 0xef; + EnqueueSFX(SFX_100); + } + if ((this->frames.all & 0x80) != 0) { + sub_080AAAA8(this); + } + } else { + if ((this->frames.all & 1) != 0) { + sub_080AAAA8(this); + } else { + InitAnimationForceUpdate(this, this->type + 0x10); + } + } +} + +void sub_080AA834(Entity* this) { + if (CheckFlags(this->field_0x86.HWORD) != 0) { + DeleteThisEntity(); + } + this->action = 1; + this->field_0x1c = 1; + this->field_0x16 = 1; + this->hitbox = gUnk_0812A04C[this->type]; + this->cutsceneBeh.HALF.LO = 0; + InitAnimationForceUpdate(this, this->type); + sub_080AAA68(this); +} + +void sub_080AA878(Entity* this) { + if ((this->frames.all & 0x80) == 0) { + UpdateAnimationSingleFrame(this); + } + sub_080AA9E0(this); +} + +void sub_080AA898(Entity* this) { + sub_0806FBB4(this); + gUnk_0812A05C[this->subAction - 5](this); +} + +void sub_080AA8B8(Entity* this) { + u32 tmp; + u16 x; + u16 y; + Entity* entity; + + entity = &gPlayerEntity; + + if (this->cutsceneBeh.HALF.LO == 0) { + tmp = this->type; + if (tmp * 2 - entity->animationState == 0) { + x = gUnk_0812A064[tmp * 2] + this->x.HALF.HI; + y = gUnk_0812A064[tmp * 2 + 1] + this->y.HALF.HI; + if (sub_080002D4(x, y, entity->collisionLayer) == 0) { + entity->x.HALF.HI = x; + entity->y.HALF.HI = y; + } + } + this->cutsceneBeh.HALF.LO = 1; + this->field_0xf = 2; + InitAnimationForceUpdate(this, this->type + 4); + } + if ((entity->animationState >> 1 == this->type) && (gPlayerState.field_0xa8 == 0x1a) && + ((gPlayerState.heldObject & 2) != 0) && ((gPlayerEntity.frames.all & 2) != 0) && + ((this->frames.all & 0x80) == 0)) { + UpdateAnimationSingleFrame(this); + if ((this->frames.all & 1) != 0) { + entity->x.HALF.HI = gUnk_0812A06C[entity->animationState] + entity->x.HALF.HI; + entity->y.HALF.HI = gUnk_0812A06C[entity->animationState + 1] + entity->y.HALF.HI; + EnqueueSFX(0x100); + } + } +} + +void sub_080AA9AC(Entity* this) { + this->action = 1; + this->cutsceneBeh.HALF.LO = 0; + InitAnimationForceUpdate(this, this->type + 0xc); +} + +void sub_080AA9C4(Entity* this) { + GetNextFrame(this); + if (--this->actionDelay == 0) { + sub_080AAAA8(this); + } +} + +ASM_FUNC("asm/non_matching/projectile15/sub_080AA9E0.inc", void sub_080AA9E0(Entity* this)) + +void sub_080AAA68(Entity* this) { + SetTile(gUnk_0812A084[this->type], TILE(this->x.HALF.HI, this->y.HALF.HI), this->collisionLayer); +} + +void sub_080AAAA8(Entity* this) { + SetFlag(this->field_0x86.HWORD); + sub_0807BA8C(TILE(this->x.HALF.HI, this->y.HALF.HI), this->collisionLayer); + DeleteThisEntity(); +} diff --git a/src/projectile/projectile16.c b/src/projectile/projectile16.c new file mode 100644 index 00000000..93208ac9 --- /dev/null +++ b/src/projectile/projectile16.c @@ -0,0 +1,53 @@ +#include "entity.h" +#include "enemy.h" +#include "functions.h" + +extern void (*const gUnk_0812A3C0[])(Entity*); + +extern void (*const gUnk_0812A3D4[])(Entity*); + +extern s32 sub_080AF090(Entity*); + +extern s32 sub_080A7EB0(Entity*); + +void Projectile16(Entity* this) { + gUnk_0812A3C0[GetNextFunction(this)](this); +} + +void sub_080AAB04(Entity* this) { + gUnk_0812A3D4[this->action](this); +} + +void sub_080AAB1C(Entity* this) { + DeleteThisEntity(); +} + +void sub_080AAB24(Entity* this) { + this->action = 1; + this->actionDelay = 0x1e; + InitializeAnimation(this, 0); +} + +void sub_080AAB38(Entity* this) { + GetNextFrame(this); + if (this->actionDelay != 0) { + this->actionDelay -= 1; + } else { + if (sub_080AF090(this) == 0) { + sub_0806F69C(this); + } else { + this->action = 2; + } + } +} + +void sub_080AAB64(Entity* this) { + GetNextFrame(this); + sub_080AF090(this); + if (this->collisions != 0) { + DeleteThisEntity(); + } + if (sub_080A7EB0(this) != 0) { + DeleteThisEntity(); + } +} diff --git a/src/projectile/projectile17.c b/src/projectile/projectile17.c new file mode 100644 index 00000000..47a0cb1b --- /dev/null +++ b/src/projectile/projectile17.c @@ -0,0 +1,29 @@ + +#include "entity.h" +#include "enemy.h" +#include "coord.h" + +void sub_080AABB0(Entity*); + +void Projectile17(Entity* this) { + if (this->action == 0) { + this->action = 1; + InitializeAnimation(this, 0); + } + sub_080AABB0(this); + GetNextFrame(this); +} + +void sub_080AABB0(Entity* this) { + u32 factor; + const s16* tmp; + Entity* parent; + + parent = this->parent; + CopyPosition(parent, this); + + tmp = &gSineTable[parent->animationState]; + factor = this->actionDelay << 8; + this->x.WORD += tmp[0] * factor; + this->y.WORD -= tmp[0x40] * factor; +} diff --git a/src/projectile/projectile18.c b/src/projectile/projectile18.c new file mode 100644 index 00000000..373126a8 --- /dev/null +++ b/src/projectile/projectile18.c @@ -0,0 +1,206 @@ +#include "entity.h" +#include "enemy.h" +#include "coord.h" +#include "player.h" +#include "audio.h" +#include "functions.h" +#include "random.h" + +extern void (*const gUnk_0812A418[])(Entity*); + +extern void (*const gUnk_0812A430[])(Entity*); + +extern void (*const gUnk_0812A440[])(Entity*); + +void sub_080AAF74(Entity*); +void sub_080AB034(Entity*); + +extern void sub_0800449C(Entity*, u32); + +void Projectile18(Entity* this) { + gUnk_0812A418[GetNextFunction(this)](this); +} + +void sub_080AAC0C(Entity* this) { + gUnk_0812A430[this->action](this); + if ((this->type2 == 0) && (--this->cutsceneBeh.HWORD == 0)) { + this->currentHealth = 0; + } +} + +void sub_080AAC44(Entity* this) { + if ((this->bitfield & 0x80) != 0) { + if (this->type2 == 0) { + if ((this->bitfield & 0x3f) == 0) { + this->action = 2; + this->flags &= 0x7f; + if (this->type == 0) { + ResolveEntityOnTop(&gPlayerEntity, this); + } else { + ResolveEntityOnTop(this->parent, this); + } + ResetPlayer(); + gPlayerState.field_0x1a[0] |= 0x80; + gPlayerState.field_0xa |= 0x80; + } + if (gPlayerEntity.currentHealth == 0) { + this->currentHealth = 0; + } + } else { + SoundReq(SFX_ITEM_GLOVES_KNOCKBACK); + CopyPosition(this->parent, this); + } + } + if (this->field_0x42 != 0) { + this->field_0x42 = 0; + } +} + +ASM_FUNC("asm/non_matching/projectile18/sub_080AACE0.inc", void sub_080AACE0(Entity* this)) + +void sub_080AAD70(Entity* this) { + if (sub_0806F520() == 0) { + this->currentHealth = 0; + } + gUnk_0812A440[this->subAction](this); +} + +void sub_080AAD98(Entity* this) { + this->subAction = 2; +} + +void nullsub_541(Entity* this) { +} + +void sub_080AADA4(Entity* this) { + if (sub_0806F3E4(this) != 0) { + this->currentHealth = 0; + } +} + +void sub_080AADBC(Entity* this) { + Entity* entity; + + if (this->type2 == 0) { + this->action = 1; + } else { + this->action = 3; + this->damageType = 0x2c; + ResolveEntityOnTop(this->parent, this); + } + if (this->type == 0) { + this->actionDelay = 0; + this->field_0xf = 4; + this->field_0x80.HALF.LO = 0; + this->field_0x80.HALF.HI = 0; + this->currentHealth = 0x10; + this->height.HALF.HI += 4; + this->spriteOrientation.flipY = 1; + this->spriteRendering.b3 = 1; + this->spritePriority.b0 = 4; + this->direction = GetFacingDirection(this, &gPlayerEntity); + this->field_0x86.HALF.LO = 0; + this->cutsceneBeh.HWORD = 300; + entity = sub_080A7EE0(0x18); + if (entity != NULL) { + entity->type = 1; + entity->type2 = this->type2; + entity->parent = this; + } + } else { + ResolveEntityOnTop(this->parent, this); + this->flags &= 0x7f; + CopyPosition(this->parent, this); + } + InitializeAnimation(this, this->type); +} + +void sub_080AAE88(Entity* this) { + u8 bVar1; + u32 uVar2; + + switch (this->type) { + case 0: + if (--this->field_0xf == 0) { + this->field_0xf = 4; + uVar2 = GetFacingDirection(this, &gPlayerEntity); + sub_08004596(this, uVar2); + } + sub_0806F69C(this); + break; + case 1: + if ((this->parent == NULL) || (this->parent->next == NULL)) { + DeleteThisEntity(); + } + case 2: + if (this->parent->spriteSettings.b.draw == 0) { + DeleteThisEntity(); + } + CopyPosition(this->parent, this); + break; + } + sub_080AB034(this); +} + +void sub_080AAF00(Entity* this) { + sub_080AAF74(this); + sub_080AB034(this); +} + +void sub_080AAF10(Entity* this) { + CopyPosition(this->parent, this); + sub_080AB034(this); + this->spriteSettings.b.draw = this->parent->spriteSettings.b.draw; + if (this->type != 0) { + this->currentHealth = this->parent->currentHealth; + } + if (this->parent->action == 2) { + if ((this->flags & 0x80) != 0) { + this->flags &= 0x7f; + } + } else { + if ((this->flags & 0x80) == 0) { + this->flags |= 0x80; + } + } +} + +void sub_080AAF74(Entity* this) { + if (sub_0807953C() != 0) { + this->field_0x80.HALF.LO += (Random() & 1) + 1; + } + if (++this->actionDelay == 0x3c) { + this->actionDelay = 0x1e; + gPlayerEntity.iframes = 8; + ModHealth(-4); + sub_0800449C(&gPlayerEntity, 0x7a); + if (gPlayerEntity.currentHealth == 0) { + this->currentHealth = 0; + } + } + if (!((this->field_0x80.HALF.LO < 0x31) && (this->field_0x80.HALF.HI != 0x10))) { + this->action = 1; + this->field_0x80.HALF.LO = 0; + gPlayerEntity.iframes = 0xf0; + gPlayerState.field_0x1a[0] = 0; + this->currentHealth = 0; + } else { + ResetPlayer(); + gPlayerState.field_0x1a[0] |= 0x80; + gPlayerState.field_0xa |= 0x80; + CopyPosition(&gPlayerEntity, this); + this->height.HALF.HI = gPlayerEntity.height.HALF.HI - 4; + } +} + +void sub_080AB034(Entity* this) { + u32 tmp; + + GetNextFrame(this); + if ((this->frameSpriteSettings & 1) != 0) { + tmp = 0; + } else { + tmp = 0x139; + } + sub_0801D2B4(this, tmp); +} diff --git a/src/projectile/projectile19.c b/src/projectile/projectile19.c new file mode 100644 index 00000000..6106a5d8 --- /dev/null +++ b/src/projectile/projectile19.c @@ -0,0 +1,78 @@ +#include "entity.h" +#include "functions.h" + +extern void (*const gUnk_0812A494[])(Entity*); + +extern u8 gEntCount; + +bool32 sub_080AB12C(Entity* this); + +void Projectile19(Entity* this) { + gUnk_0812A494[this->type](this); +} + +void sub_080AB074(Entity* this) { + Entity* parent; + const s16* tmp; + u32 factor; + + parent = this->parent; + if (parent->next == NULL) { + DeleteThisEntity(); + } + if (this->action == 0) { + if (sub_080AB12C(this) == FALSE) { + return; + } + this->action = 1; + this->frameIndex = 0; + this->spritePriority.b0 = 3; + } + sub_0806FA90(this->parent, this, 0, 0xfffffff6 + -(s8)parent->field_0x7c.BYTES.byte3); + + this->x.WORD += gSineTable[parent->field_0x7c.BYTES.byte0] * (parent->field_0x7c.BYTES.byte2 << 8); + this->y.WORD -= gSineTable[parent->field_0x7c.BYTES.byte0 + 0x40] * (parent->field_0x7c.BYTES.byte2 << 8); + + this->height.HALF.HI += (s8)parent->field_0x7c.BYTES.byte3; + if (parent->field_0x7a.HALF.HI != 0) { + parent = sub_080A7EE0(0x19); + if (parent != NULL) { + parent->type = 4; + CopyPositionAndSpriteOffset(this, parent); + } + } +} + +bool32 sub_080AB12C(Entity* this) { + Entity* entity; + + if (gEntCount > 0x44) { + return FALSE; + } + entity = sub_080A7EE0(0x19); + entity->type = 1; + entity->parent = this; + entity = sub_080A7EE0(0x19); + entity->type = 2; + entity->parent = this; + entity = sub_080A7EE0(0x19); + entity->type = 3; + entity->parent = this; + return TRUE; +} + +ASM_FUNC("asm/non_matching/projectile19/sub_080AB170.inc", void sub_080AB170(Entity* this)) + +void sub_080AB26C(Entity* this) { + if (this->action == 0) { + this->action = 1; + this->actionDelay = 5; + this->frameIndex = 0; + this->spritePriority.b1 = 0; + } + if (--this->actionDelay == 0) { + DeleteThisEntity(); + } else { + this->frameIndex += 1; + } +} diff --git a/src/projectile/projectile1A.c b/src/projectile/projectile1A.c new file mode 100644 index 00000000..de519353 --- /dev/null +++ b/src/projectile/projectile1A.c @@ -0,0 +1,128 @@ +#include "entity.h" +#include "enemy.h" +#include "player.h" +#include "functions.h" +#include "audio.h" +#include "random.h" + +extern void (*const gUnk_0812A4C8[])(Entity*); + +extern void (*const gUnk_0812A4DC[])(Entity*); + +void sub_080AB4A4(Entity*); + +extern void sub_0806F5BC(Entity*, u32, u32); +extern u32 sub_080041DC(Entity*, u32, u32); +s8* sub_080AB4F8(Entity*); + +extern s8 gUnk_0812A4EC[]; + +void Projectile1A(Entity* this) { + gUnk_0812A4C8[GetNextFunction(this)](this); +} + +void sub_080AB2C4(Entity* this) { + gUnk_0812A4DC[this->action](this); +} + +void sub_080AB2DC(Entity* this) { + if ((this->bitfield & 0x80) != 0) { + this->action = 3; + this->flags &= 0x7f; + InitializeAnimation(this, 0x53); + if ((this->bitfield & 0x7f) == 0) { + ModHealth(-4); + } + } +} + +void sub_080AB318(Entity* this) { + s32 iVar2; + u32 rnd; + u32 x; + u32 y; + s8* data; + + this->action = 1; + this->field_0x20 = -0x10000; + this->field_0x76.HWORD = TILE(this->x.HALF.HI, this->y.HALF.HI); + CopyPosition(this->parent, this); + sub_0806F5BC(this, 0x1000, this->direction); + this->spritePriority.b0 = 1; + this->height = this->parent->height; + InitializeAnimation(this, 0x51); + SoundReq(SFX_1B5); + data = sub_080AB4F8(this); + x = this->x.HALF.HI + data[0]; + y = this->y.HALF.HI + data[1]; + iVar2 = sub_080041DC(this, x, y); + rnd = Random() & 0x1ff; + if ((gScreenTransition.frameCount & 1U) != 0) { + + iVar2 += rnd; + if (0x400 < iVar2) { + iVar2 = 0x400; + } + + } else { + iVar2 -= rnd; + if (iVar2 < 0x20) { + iVar2 = 0x20; + } + } + this->field_0x20 = (this->height.WORD / (iVar2 << 8)) << 0xd; + + this->direction = sub_080045B4(this, x, y); +} + +void sub_080AB414(Entity* this) { + GetNextFrame(this); + sub_0806F69C(this); + if (sub_08003FC4(this, 0) == 0) { + this->action = 2; + this->actionDelay = 0xf; + InitializeAnimation(this, 0x54); + sub_080AB4A4(this); + } else { + if (++this->actionDelay > 0xe0) { + DeleteThisEntity(); + } + } +} + +void sub_080AB45C(Entity* this) { + GetNextFrame(this); + if ((this->frames.all & 0x80) != 0) { + this->action = 3; + this->flags &= 0x7f; + InitializeAnimation(this, 0x53); + } +} + +void sub_080AB488(Entity* this) { + GetNextFrame(this); + if ((this->frames.all & 0x80) != 0) { + DeleteThisEntity(); + } +} + +void sub_080AB4A4(Entity* this) { + u32 tmp; + u16 tile; + + tmp = this->field_0x76.HWORD; + tile = TILE(this->x.HALF.HI, this->y.HALF.HI); + if (tmp != tile) { + this->field_0x76.HWORD = tile; + switch (GetTileTypeByEntity(this)) { + case 0x13: + case 0x34: + sub_0807B7D8(0x34c, this->field_0x76.HWORD, this->collisionLayer); + break; + } + } +} + +s8* sub_080AB4F8(Entity* this) { + return &gUnk_0812A4EC[this->type << 5 | this->field_0xf << 1]; +} diff --git a/src/projectile/projectile1B.c b/src/projectile/projectile1B.c new file mode 100644 index 00000000..01284bc3 --- /dev/null +++ b/src/projectile/projectile1B.c @@ -0,0 +1,82 @@ +#include "entity.h" +#include "enemy.h" +#include "functions.h" + +extern void (*const gUnk_0812A58C[])(Entity*); + +extern void (*const gUnk_0812A5A0[])(Entity*); + +extern s32 sub_080AF090(Entity*); +bool32 sub_080AB5F4(Entity*); + +bool32 sub_080AB634(Entity*); + +extern void sub_080043A8(Entity*); +extern void CreateItemOnGround(Entity*); +extern void CreateChestSpawner(Entity*); + +void Projectile1B(Entity* this) { + gUnk_0812A58C[GetNextFunction(this)](this); +} + +void sub_080AB52C(Entity* this) { + gUnk_0812A5A0[this->action](this); +} + +void sub_080AB544(Entity* this) { + u32 tmp; + + if (this->iframes < -4) { + this->action = 2; + this->direction = this->field_0x3e; + tmp = (this->type ^ 2) << 3; + if (this->direction - tmp + 1 < 3) { + this->direction = tmp; + } + this->speed = 0x280; + } +} + +void sub_080AB580(Entity* this) { + this->action = 1; + this->direction = this->type << 3; + this->height.HALF.HI = 0xfffc; + InitializeAnimation(this, this->type); +} + +void sub_080AB59C(Entity* this) { + GetNextFrame(this); + if (sub_080AF090(this) == 0) { + CreateFx(this, 2, 0); + DeleteThisEntity(); + } + sub_080AB5F4(this); +} + +void sub_080AB5C4(Entity* this) { + GetNextFrame(this); + sub_080AF090(this); + if ((sub_080AB634(this) == 0) && (this->collisions != 0)) { + CreateFx(this, 2, 0); + DeleteThisEntity(); + } +} + +bool32 sub_080AB5F4(Entity* this) { + u32 uVar1; + + switch (sub_080043E8(this)) { + case 1: + CreateItemOnGround(this); + return TRUE; + case 2: + sub_080043A8(this); + return TRUE; + case 3: + CreateChestSpawner(this); + return TRUE; + } + return FALSE; +} + +ASM_FUNC("asm/non_matching/projectile1B/sub_080AB634.inc", bool32 sub_080AB634(Entity* this)) diff --git a/src/projectile/projectile1C.c b/src/projectile/projectile1C.c new file mode 100644 index 00000000..5b5f1938 --- /dev/null +++ b/src/projectile/projectile1C.c @@ -0,0 +1,98 @@ +#include "entity.h" +#include "functions.h" + +extern void (*const gUnk_0812A5E8[])(Entity*); + +extern Hitbox gUnk_0812A614; + +void sub_080AB758(Entity*); + +void sub_080AB888(Entity*); + +extern Hitbox gUnk_0812A614; +extern Hitbox gUnk_0812A61C; + +extern Hitbox* gUnk_0812A5F4[]; + +void Projectile1C(Entity* this) { + if (this->parent->spriteSettings.b.draw == 0) { + DeleteThisEntity(); + } + gUnk_0812A5E8[this->action](this); +} + +void sub_080AB6B8(Entity* this) { + *(u32*)&this->field_0x74 = this->parent->x.WORD; + if (this->type == 0) { + this->action = 1; + this->flags &= 0x7f; + this->hitbox = &gUnk_0812A614; + InitializeAnimation(this, 0); + } else { + this->action = 2; + this->field_0xf = 4; + InitializeAnimation(this, this->actionDelay); + } +} + +void sub_080AB6FC(Entity* this) { + GetNextFrame(this); + if ((this->frames.all & 0x80) != 0) { + this->action = 2; + InitializeAnimation(this, 1); + sub_080AB758(this); + } +} + +void sub_080AB728(Entity* this) { + GetNextFrame(this); + this->x.WORD += (this->parent->x.WORD - *(u32*)&this->field_0x74); + *(u32*)&this->field_0x74 = this->parent->x.WORD; + sub_080AB888(this); + if (this->parent->field_0xf == 0) { + DeleteThisEntity(); + } +} + +ASM_FUNC("asm/non_matching/projectile1C/sub_080AB758.inc", void sub_080AB758(Entity* this)) + +void sub_080AB844(Entity* this, s32 param_1, s32 param_2) { + Entity* entity; + + entity = sub_080A7EE0(0x1c); + if (entity != NULL) { + entity->type = 1; + entity->actionDelay = param_1; + entity->parent = this->parent; + PositionRelative(this, entity, 0, param_2 << 0x10); + if (param_1 != 1) { + entity->hitbox = &gUnk_0812A61C; + } else { + entity->hitbox = &gUnk_0812A614; + } + } +} + +void sub_080AB888(Entity* this) { + s32 index; + + this->field_0xf -= 1; + index = 0; + + switch (this->actionDelay) { + case 3: + index = 1; + case 4: + this->hitbox = gUnk_0812A5F4[this->field_0xf * 2 + index]; + break; + case 0: + case 1: + case 2: + default: + break; + } + + if (this->field_0xf == 0) { + this->field_0xf = 4; + } +} diff --git a/src/projectile/projectile1D.c b/src/projectile/projectile1D.c new file mode 100644 index 00000000..c6dfe87f --- /dev/null +++ b/src/projectile/projectile1D.c @@ -0,0 +1,52 @@ +#include "entity.h" +#include "random.h" +#include "functions.h" +#include "utils.h" + +extern void (*const gUnk_0812A6B4[])(Entity*); +void sub_080AB9DC(Entity*); + +void Projectile1D(Entity* this) { + gUnk_0812A6B4[this->action](this); + sub_080AB9DC(this); +} + +void sub_080AB8E8(Entity* this) { + Entity* entity; + u16* puVar3; + s32 index; + + this->action += 1; + this->speed = 0x140; + this->height.WORD = 0; + if (this->type == 0) { + this->direction = Random() & 0x18; + this->parent = this; + } + InitializeAnimation(this, 0); + if (this->type < 4) { + entity = sub_080A7EE0(0x1d); + entity->type = this->type + 1; + entity->parent = this->parent; + entity->attachedEntity = this; + CopyPosition(this, entity); + } + + puVar3 = &this->field_0x68.HWORD; + for (index = 7; index >= 0; --index) { + *puVar3 = this->x.HALF.HI; + puVar3 += 1; + *puVar3 = this->y.HALF.HI; + puVar3 += 1; + } +} + +ASM_FUNC("asm/non_matching/projectile1D/sub_080AB950.inc", void sub_080AB950(Entity* this)) + +void sub_080AB9DC(Entity* this) { + MemCopy(&this->field_0x6c, &this->field_0x68, 0x1c); + this->cutsceneBeh.HWORD = this->x.HALF.HI; + this->field_0x86.HWORD = this->y.HALF.HI; +} + +ASM_FUNC("asm/non_matching/projectile1D/sub_080AB9FC.inc", void sub_080AB9FC(Entity* this)) diff --git a/src/projectile/projectile1E.c b/src/projectile/projectile1E.c new file mode 100644 index 00000000..9b160f9d --- /dev/null +++ b/src/projectile/projectile1E.c @@ -0,0 +1,11 @@ +#include "entity.h" + +extern void (*const gUnk_0812A6CC[])(Entity*); + +void Projectile1E(Entity* this) { + gUnk_0812A6CC[this->action](this); +} + +ASM_FUNC("asm/non_matching/projectile1E/sub_080ABA74.inc", void sub_080ABA74(Entity* this)) + +ASM_FUNC("asm/non_matching/projectile1E/sub_080ABAE0.inc", void sub_080ABAE0(Entity* this)) diff --git a/src/projectile/projectile1F.c b/src/projectile/projectile1F.c new file mode 100644 index 00000000..93941e4c --- /dev/null +++ b/src/projectile/projectile1F.c @@ -0,0 +1,123 @@ + +#include "entity.h" +#include "enemy.h" +#include "functions.h" +#include "random.h" +#include "audio.h" + +extern void (*const gUnk_0812A7D4[])(Entity*); + +extern void (*const gUnk_0812A808[])(Entity*); + +extern void sub_0800449C(Entity*, u32); +extern void sub_08079D84(void); + +extern s32 sub_080AF090(Entity*); + +void Projectile1F(Entity* this) { + gUnk_0812A7D4[GetNextFunction(this)](this); +} + +ASM_FUNC("asm/non_matching/projectile1F/sub_080ABBA8.inc", void sub_080ABBA8(Entity* this)) + +ASM_FUNC("asm/non_matching/projectile1F/sub_080ABBF4.inc", void sub_080ABBF4(Entity* this)) + +void sub_080ABC54(Entity* this) { + if (sub_0806F520() == 0) { + CreateFx(this, 2, 0); + DeleteThisEntity(); + } + gUnk_0812A808[this->subAction](this); +} + +void sub_080ABC84(Entity* this) { + this->subAction = 2; +} + +void nullsub_542(Entity* this) { +} + +void sub_080ABC90(Entity* this) { + if (sub_0806F3E4(this) != 0) { + ModHealth(-2); + sub_0800449C(&gPlayerEntity, 0x7a); + sub_08079D84(); + CreateFx(this, 2, 0); + DeleteThisEntity(); + } +} + +void sub_080ABCC4(Entity* this) { + this->action = 1; + this->actionDelay = (Random() & 0x3f) + 0x30; + this->field_0xf = 0; + this->direction = Random() & 0x1f; + this->field_0x74.HWORD = TILE(this->x.HALF.HI, this->y.HALF.HI); + this->field_0x76.HWORD = GetTileType(this->field_0x74.HWORD, 2); + this->spritePriority.b0 = 2; + InitializeAnimation(this, 0); + SoundReq(SFX_14B); +} + +void sub_080ABD44(Entity* this) { + if (--this->actionDelay == 0) { + this->action = 2; + InitializeAnimation(this, 1); + } + sub_080AF090(this); + GetNextFrame(this); +} + +void sub_080ABD70(Entity* this) { + u32 tmp; + GetNextFrame(this); + if ((this->frames.all & 0x10) != 0) { + this->frames.all &= 0xef; + this->speed = 0; + this->field_0x74.HWORD = TILE(this->x.HALF.HI, this->y.HALF.HI); + this->field_0x76.HWORD = GetTileType(this->field_0x74.HWORD, 2); + tmp = this->field_0x76.HWORD; + if (tmp != 0x13) { + if (tmp == 0x315) { + SetTileType(0x6e, this->field_0x74.HWORD, 2); + } + } else { + SetTileType(0x6d, this->field_0x74.HWORD, 2); + } + } + if ((this->frames.all & 0x80) != 0) { + DeleteThisEntity(); + } +} + +ASM_FUNC("asm/non_matching/projectile1F/sub_080ABE04.inc", void sub_080ABE04(Entity* this)) + +void sub_080ABE88(Entity* this) { + if (sub_08003FC4(this, 0x1800) == 0) { + CreateFx(this, 4, 0); + DeleteThisEntity(); + } +} + +void sub_080ABEA8(Entity* this) { + this->action = 1; + this->actionDelay = 0x60; + this->spritePriority.b0 = 2; + this->field_0x1c = 1; + if (this->type2 == 0) { + this->direction = (Random() & 0xf) << 1; + } else { + this->direction = sub_08049F84(this, 0); + sub_0801D2B4(this, 0x13f); + } + InitializeAnimation(this, 0); + SoundReq(SFX_193); +} + +void sub_080ABF04(Entity* this) { + if (sub_080040A8(this) == 0) { + DeleteThisEntity(); + } + sub_0806F69C(this); + GetNextFrame(this); +} diff --git a/src/projectile/projectile2.c b/src/projectile/projectile2.c new file mode 100644 index 00000000..fa163358 --- /dev/null +++ b/src/projectile/projectile2.c @@ -0,0 +1,90 @@ +#include "entity.h" +#include "enemy.h" +#include "functions.h" + +extern void (*const gUnk_0812960C[])(Entity*); + +extern void (*const gUnk_08129620[])(Entity*); + +void sub_080A82D8(Entity*); + +extern s32 sub_080AF090(Entity*); +extern s32 sub_080A7EB0(Entity*); +extern void sub_08016AD2(Entity*); + +void Projectile2(Entity* this) { + gUnk_0812960C[GetNextFunction(this)](this); +} + +void sub_080A81AC(Entity* this) { + gUnk_08129620[this->action](this); +} + +void sub_080A81C4(Entity* this) { + if (this->bitfield == 0x80) { + DeleteEntity(this); + } else { + sub_080A82D8(this); + } +} + +void sub_080A81E0(Entity* this) { + this->action = 1; + this->actionDelay = 0x3c; + this->height.HALF.HI = 0xfffe; + InitializeAnimation(this, 0); +} + +void sub_080A81FC(Entity* this) { + GetNextFrame(this); + sub_080AF090(this); + if (this->collisions == 0) { + if (sub_080A7EB0(this) != 0) { + DeleteEntity(this); + } else { + sub_08016AD2(this); + if (--this->actionDelay == 0) { + this->action = 2; + this->speed = 0x120; + } + } + } else { + sub_080A82D8(this); + } +} + +void sub_080A8248(Entity* this) { + GetNextFrame(this); + sub_080AF090(this); + if (sub_08003FC4(this, 0x1800) == 0) { + this->action = 3; + this->flags = this->flags & 0x7f; + this->speed = 0xe0; + this->field_0x20 = 0xe000; + } +} + +void sub_080A827C(Entity* this) { + this->spriteSettings.b.draw ^= 1; + sub_0806F69C(this); + GetNextFrame(this); + if (sub_080044EC(this, 0x1800) == 0) { + DeleteEntity(this); + } +} + +void sub_080A82B4(Entity* this) { + GetNextFrame(this); + sub_0806F69C(this); + if (sub_08003FC4(this, 0x1800) == 0) { + DeleteEntity(this); + } +} + +void sub_080A82D8(Entity* this) { + this->action = 4; + this->flags &= 0x7f; + this->field_0x20 = 0x10000; + this->direction ^= 0x10; + this->speed = 0x80; +} diff --git a/src/projectile/projectile20.c b/src/projectile/projectile20.c new file mode 100644 index 00000000..4c97790d --- /dev/null +++ b/src/projectile/projectile20.c @@ -0,0 +1,37 @@ +#include "entity.h" +#include "enemy.h" +#include "player.h" +#include "audio.h" + +extern void (*const gUnk_0812A84C[])(Entity*); + +extern s32 sub_080AF090(Entity*); +extern s32 sub_080A7EB0(Entity*); + +void Projectile20(Entity* this) { + gUnk_0812A84C[GetNextFunction(this)](this); +} + +void sub_080ABF40(Entity* this) { + if (this->action == 0) { + this->action = 1; + this->direction = GetFacingDirection(this, &gPlayerEntity); + InitializeAnimation(this, 0); + SoundReq(SFX_199); + } + if (this->height.HALF.HI < -6) { + this->height.HALF.HI += 2; + } + sub_080AF090(this); + if (this->collisions != 0) { + DeleteThisEntity(); + } + GetNextFrame(this); + if (sub_080A7EB0(this) != 0) { + DeleteThisEntity(); + } +} + +void sub_080ABFA8(Entity* this) { + DeleteThisEntity(); +} diff --git a/src/projectile/projectile21.c b/src/projectile/projectile21.c new file mode 100644 index 00000000..d8ac77fc --- /dev/null +++ b/src/projectile/projectile21.c @@ -0,0 +1,80 @@ +#include "entity.h" +#include "enemy.h" +#include "audio.h" +#include "player.h" +#include "coord.h" +#include "functions.h" + +extern void (*const gUnk_0812A954[])(Entity*); + +extern void (*const gUnk_0812A968[])(Entity*); + +extern s32 sub_080AF090(Entity*); +extern s32 sub_080A7EB0(Entity*); + +void Projectile21(Entity* this) { + gUnk_0812A954[GetNextFunction(this)](this); +} + +void sub_080ABFCC(Entity* this) { + gUnk_0812A968[this->action](this); +} + +void sub_080ABFE4(Entity* this) { + DeleteThisEntity(); +} + +ASM_FUNC("asm/non_matching/projectile21/sub_080ABFEC.inc", void sub_080ABFEC(Entity* this)) + +void sub_080AC074(Entity* this) { + if (this->parent->next == NULL) { + DeleteThisEntity(); + } + CopyPositionAndSpriteOffset(this->parent, this); + this->height.HALF.HI -= 0x14; + if (this->cutsceneBeh.HALF.HI != 0) { + if (((--this->cutsceneBeh.HALF.HI) & 7) == 0) { + SoundReq(SFX_149); + } + } + GetNextFrame(this); + if ((this->frames.all & 1) != 0) { + if (this->type == 0) { + this->action = 2; + this->direction = GetFacingDirection(this, &gPlayerEntity); + this->speed = 0x180; + SoundReq(SFX_193); + } else { + this->action = 3; + this->actionDelay = 0x10; + } + this->height.HALF.HI -= 0x28; + } +} + +void sub_080AC100(Entity* this) { + u8 bVar1; + s32 iVar2; + u32 uVar3; + + if (this->height.HALF.HI < -6) { + this->height.HALF.HI += 3; + } + sub_080AF090(this); + if (this->collisions != 0) { + DeleteThisEntity(); + } + GetNextFrame(this); + if (sub_080A7EB0(this) != 0) { + DeleteThisEntity(); + } + if (this->actionDelay < 0x1e) { + if (((++this->actionDelay) & this->field_0xf) == 0) { + sub_08004596(this, GetFacingDirection(this, &gPlayerEntity)); + } + } +} + +ASM_FUNC("asm/non_matching/projectile21/sub_080AC168.inc", void sub_080AC168(Entity* this)) + +ASM_FUNC("asm/non_matching/projectile21/sub_080AC200.inc", void sub_080AC200(Entity* this)) diff --git a/src/projectile/projectile22.c b/src/projectile/projectile22.c new file mode 100644 index 00000000..bbc4fc58 --- /dev/null +++ b/src/projectile/projectile22.c @@ -0,0 +1,229 @@ +#include "entity.h" +#include "random.h" +#include "coord.h" +#include "audio.h" +#include "functions.h" + +extern void (*const gUnk_0812A9A8[])(Entity*); + +extern u16 gUnk_0812A9B4[]; +bool32 sub_080AC5E4(Entity*); +void sub_080AC388(Entity*); + +extern u8 gUnk_0812A9BA[]; +extern Hitbox gUnk_080FD458; + +extern Hitbox gUnk_080FD168; +extern Hitbox gUnk_080FD448; + +extern void (*const gUnk_0812A994[])(Entity*); + +void sub_080AC6F0(Entity*); +void sub_080AC760(Entity*); +void sub_080AC7C4(Entity*); + +extern u8 gEntCount; + +void Projectile22(Entity* this) { + Entity* parent; + + if (this->parent->next == NULL) { + DeleteThisEntity(); + } + gUnk_0812A994[this->type2](this); + if (this->type == 0) { + this->spriteOrientation.flipY = 3; + this->spriteRendering.b3 = 3; + this->spritePriority.b0 = 1; + } else { + parent = this->parent; + this->spriteOrientation.flipY = parent->spriteOrientation.flipY; + this->spriteRendering.b3 = parent->spriteRendering.b3; + this->spritePriority.b0 = parent->spritePriority.b0 - 2; + + if ((parent->spriteRendering.b3 == 3) && (parent->field_0x7c.BYTES.byte0 == 0)) { + this->flags &= 0x7f; + } else { + this->flags |= 0x80; + } + } +} + +void sub_080AC328(Entity* this) { + gUnk_0812A9A8[this->action](this); +} + +void sub_080AC340(Entity* this) { + if (sub_080AC5E4(this) != 0) { + this->action = 1; + this->frameIndex = 0xc; + this->spriteSettings.b.draw = 1; + this->field_0x7a.HWORD = gUnk_0812A9B4[Random() & 1]; + this->collisionLayer = 2; + sub_080AC388(this); + } +} + +ASM_FUNC("asm/non_matching/projectile22/sub_080AC388.inc", void sub_080AC388(Entity* this)) + +void sub_080AC480(Entity* this) { + if (this->actionDelay != 0) { + if (this->parent->currentHealth == 0) { + this->action = 1; + this->damageType = 0x1d; + } else { + if (--this->actionDelay == 0) { + this->damageType = 0x1c; + SoundReq(SFX_116); + } + } + } else { + if (--this->field_0xf == 0) { + this->action = 1; + this->damageType = 0x1d; + } + this->field_0x7c.HALF_U.LO += ((s16)this->field_0x7a.HWORD >= 1) ? 0x300 : -0x300; + this->direction = this->field_0x7c.HALF.LO >> 8; + sub_080AC6F0(this); + sub_080AC760(this); + sub_080AC7C4(this); + } +} + +void sub_080AC510(Entity* this) { + if (this->action == 0) { + this->action = 1; + this->frameIndex = gUnk_0812A9BA[this->type * 3 + this->type2 - 1]; + this->spriteSettings.b.draw = 1; + this->collisionLayer = 2; + if (*(u16*)&this->type == 0x300) { + this->hitbox = &gUnk_080FD458; + } + } +} + +void sub_080AC560(Entity* this) { + s32 factor; + Entity* entity; + + entity = this->attachedEntity; + if (entity->next == NULL) { + DeleteThisEntity(); + } + if (this->action == 0) { + this->action = 1; + this->collisionLayer = 2; + if (this->type == 0) { + this->hitbox = &gUnk_080FD168; + } else { + this->hitbox = &gUnk_080FD448; + } + this->frameIndex = 0xff; + this->spriteSettings.b.draw = 1; + } + factor = this->field_0x78.HALF.HI << 8; + this->x.WORD = entity->x.WORD + gSineTable[entity->direction] * factor; + this->y.WORD = entity->y.WORD - gSineTable[entity->direction + 0x40] * factor; +} + +NONMATCH("asm/non_matching/projectile22/sub_080AC5E4.inc", bool32 sub_080AC5E4(Entity* this)) { + // TODO regalloc + Entity* entity; + Entity* entity2; + Entity* entity3; + Entity* entity4; + u8 uVar3; + + if (this->type == 0) { + if (0x43 < gEntCount) { + return 0; + } + this->field_0x78.HALF.HI = 0x11; + entity = sub_080A7EE0(0x22); + entity->type = this->type; + entity->type2 = 1; + entity->parent = this->parent; + entity->field_0x78.HALF.HI = 0x12; + this->attachedEntity = entity; + entity2 = sub_080A7EE0(0x22); + entity2->type = this->type; + entity2->type2 = 2; + entity2->parent = this->parent; + entity2->field_0x78.HALF.HI = 0x14; + uVar3 = entity2->field_0x78.HALF.HI; + entity->attachedEntity = entity2; + entity3 = sub_080A7EE0(0x22); + entity3->type = this->type; + entity3->type2 = 3; + entity3->parent = this->parent; + entity3->attachedEntity = NULL; + entity3->field_0x78.HALF.HI = 0; + entity2->attachedEntity = entity3; + } else { + if (0x44 < gEntCount) { + return 0; + } + this->field_0x78.HALF.HI = 0xf; + entity = sub_080A7EE0(0x22); + entity->type = this->type; + entity->type2 = 1; + entity->parent = this->parent; + entity->field_0x78.HALF.HI = 0x10; + uVar3 = entity->field_0x78.HALF.HI; + this->attachedEntity = entity; + entity2 = sub_080A7EE0(0x22); + entity2->type = this->type; + entity2->type2 = 2; + entity2->parent = this->parent; + entity2->attachedEntity = NULL; + entity2->field_0x78.HALF.HI = 0x20; + entity->attachedEntity = entity2; + } + entity4 = sub_080A7EE0(0x22); + entity4->type = this->type; + entity4->type2 = 4; + entity4->parent = this->parent; + entity4->attachedEntity = this; + entity4->field_0x78.HALF.HI = uVar3; + return 1; +} +END_NONMATCH + +ASM_FUNC("asm/non_matching/projectile22/sub_080AC6F0.inc", void sub_080AC6F0(Entity* this)) + +ASM_FUNC("asm/non_matching/projectile22/sub_080AC760.inc", void sub_080AC760(Entity* this)) + +NONMATCH("asm/non_matching/projectile22/sub_080AC7C4.inc", void sub_080AC7C4(Entity* this)) { + // TODO regalloc + Entity* entity1; + Entity* entity2; + Entity* entity3; + s32 iVar1; + s32 iVar2; + s32 iVar3; + + entity1 = this->attachedEntity; + entity2 = entity1->attachedEntity; + entity3 = entity2->attachedEntity; + if (entity3 != NULL) { + CopyPosition(this->parent, entity3); + } else { + entity3 = this->parent; + } + PositionRelative(entity3, entity2, (entity2->field_0x78.HALF.HI << 8) * gSineTable[entity2->direction], + -((entity2->field_0x78.HALF.HI << 8) * gSineTable[entity2->direction + 0x40])); + PositionRelative(entity2, entity1, (entity1->field_0x78.HALF.HI << 8) * gSineTable[entity1->direction], + -((entity1->field_0x78.HALF.HI << 8) * gSineTable[entity1->direction + 0x40])); + PositionRelative(entity1, this, (this->field_0x78.HALF.HI << 8) * gSineTable[this->direction], + -((this->field_0x78.HALF.HI << 8) * gSineTable[this->direction + 0x40])); +} +END_NONMATCH + +void sub_080AC884(Entity* this) { + if (this->parent->field_0x70.HALF_U.HI != 0) { + this->parent->field_0x70.HALF_U.HI = 0; + this->action = 2; + this->actionDelay = 0x3c; + this->field_0xf = 0x56; + } +} diff --git a/src/projectile/projectile23.c b/src/projectile/projectile23.c new file mode 100644 index 00000000..ae9edb41 --- /dev/null +++ b/src/projectile/projectile23.c @@ -0,0 +1,73 @@ +#include "entity.h" +#include "enemy.h" +#include "coord.h" +#include "player.h" +#include "audio.h" + +extern void (*const gUnk_0812A9D8[])(Entity*); + +extern void (*const gUnk_0812A9EC[])(Entity*); + +void sub_080AC954(Entity*); + +extern s32 sub_080AF090(Entity*); +extern s32 sub_080A7EB0(Entity*); + +void Projectile23(Entity* this) { + gUnk_0812A9D8[GetNextFunction(this)](this); +} + +void sub_080AC8C4(Entity* this) { + gUnk_0812A9EC[this->action](this); +} + +ASM_FUNC("asm/non_matching/projectile23/sub_080AC8DC.inc", void sub_080AC8DC(Entity* this)) + +void sub_080AC928(Entity* this) { + this->action = 1; + this->actionDelay = 0x3c; + this->collisionLayer = 2; + UpdateSpriteForCollisionLayer(this); + InitializeAnimation(this, 0); + sub_080AC954(this); +} + +void sub_080AC954(Entity* this) { + u32 animationState; + + if (this->parent->next == NULL) { + DeleteThisEntity(); + } + animationState = this->parent->animationState; + PositionRelative(this->parent, this, gSineTable[animationState] * 0x2800, + gSineTable[animationState + 0x40] * -0x2800); + GetNextFrame(this); + if (--this->actionDelay == 0) { + this->action = 2; + this->flags |= 0x80; + this->direction = GetFacingDirection(this, &gPlayerEntity); + SoundReq(SFX_12E); + } +} + +void sub_080AC9CC(Entity* this) { + sub_080AF090(this); + GetNextFrame(this); + if (sub_080A7EB0(this) != 0) { + DeleteThisEntity(); + } + if (--this->actionDelay == 0) { + this->action = 3; + this->flags &= 0x7f; + this->speed = this->speed >> 1; + InitializeAnimation(this, 1); + } +} + +void sub_080ACA14(Entity* this) { + sub_080AF090(this); + GetNextFrame(this); + if ((this->frames.all & 0x80) != 0) { + DeleteThisEntity(); + } +} diff --git a/src/projectile/projectile24.c b/src/projectile/projectile24.c new file mode 100644 index 00000000..d60bf32b --- /dev/null +++ b/src/projectile/projectile24.c @@ -0,0 +1,66 @@ +#include "entity.h" +#include "enemy.h" +#include "audio.h" +#include "functions.h" + +extern void (*const gUnk_0812AA5C[])(Entity*); + +extern void (*const gUnk_0812AA74[])(Entity*); + +extern s32 sub_080AF090(Entity*); +extern s32 sub_080A7EB0(Entity*); + +void sub_080ACB90(Entity*); + +void Projectile24(Entity* this) { + gUnk_0812AA5C[GetNextFunction(this)](this); +} + +void sub_080ACA50(Entity* this) { + gUnk_0812AA74[this->action](this); +} + +ASM_FUNC("asm/non_matching/projectile24/sub_080ACA68.inc", void sub_080ACA68(Entity* this)) + +void sub_080ACAC8(Entity* this) { + this->action = 1; + this->direction = 0x10; + this->height.HALF.HI = 0xfffc; + this->attachedEntity = NULL; + InitializeAnimation(this, 7); + SoundReq(SFX_199); +} + +void sub_080ACAF0(Entity* this) { + sub_080AF090(this); + GetNextFrame(this); + if (sub_080A7EB0(this) != 0) { + DeleteThisEntity(); + } +} + +void sub_080ACB10(Entity* this) { + sub_080AF090(this); + if (this->collisions != 0) { + DeleteThisEntity(); + } + GetNextFrame(this); + sub_080ACB90(this); + if (sub_080A7EB0(this) != 0) { + DeleteThisEntity(); + } +} + +ASM_FUNC("asm/non_matching/projectile24/sub_080ACB40.inc", void sub_080ACB40(Entity* this)) + +void sub_080ACB90(Entity* this) { + Entity* parent; + + parent = this->parent; + if ((this->x.HALF.HI == parent->x.HALF.HI) && (this->y.HALF.HI <= parent->y.HALF.HI)) { + parent->field_0xf = 1; + CreateFx(this, 0x1f, 0x40); + EnqueueSFX(SFX_ITEM_GLOVES_KNOCKBACK); + DeleteThisEntity(); + } +} diff --git a/src/projectile/projectile3.c b/src/projectile/projectile3.c new file mode 100644 index 00000000..b1f86734 --- /dev/null +++ b/src/projectile/projectile3.c @@ -0,0 +1,87 @@ +#include "entity.h" +#include "enemy.h" + +extern void (*const gUnk_08129650[])(Entity*); + +extern void (*const gUnk_08129664[])(Entity*); + +extern bool32 AllocMutableHitbox(Entity*); + +typedef struct { + u8 offsetX; + u8 offsetY; + u8 width; + u8 height; +} Test; + +extern Test gUnk_0812966C[]; + +void Projectile3(Entity* this) { + gUnk_08129650[GetNextFunction(this)](this); +} + +void sub_080A8314(Entity* this) { + gUnk_08129664[this->action](this); +} + +void sub_080A832C(Entity* this) { + u8 tmp; + + if (this->bitfield == 0x80) { + this->iframes = 0x10; + this->field_0x42 = 0xc; + this->field_0x46 = 0x180; + this->parent->bitfield = this->bitfield; + } + tmp = this->iframes; + if ((tmp & 0x80) != 0) { + this->parent->iframes = tmp; + } else { + this->parent->iframes = -tmp; + } + this->parent->field_0x42 = this->field_0x42; + this->parent->field_0x46 = this->field_0x46; + this->parent->field_0x3e = this->field_0x3e; + this->field_0x42 = 0; +} + +void sub_080A83A0(Entity* this) { + if (AllocMutableHitbox(this) != 0) { + this->action = 1; + } +} + +NONMATCH("asm/non_matching/projectile3/sub_080A83B4.inc", void sub_080A83B4(Entity* this)) { + u8 frames; + Entity* parent; + u32 tmp; + Test* a; + + parent = this->parent; + if (parent == NULL) { + DeleteThisEntity(); + } + if (parent->next == NULL) { + DeleteThisEntity(); + } + frames = parent->frames.all * 4; + a = &gUnk_0812966C[frames / 4]; + this->hitbox->offset_x = a->offsetX; + // TODO offset used to increate a pointer is already increated here? + if (parent->frameSpriteSettings == 0x40) { + this->hitbox->offset_x = -this->hitbox->offset_x; + } + this->hitbox->offset_y = a->offsetY; + this->hitbox->width = a->width; + this->hitbox->height = a->height; + if (parent->field_0x43 != 0) { + if ((this->flags & 0x80) != 0) { + this->flags &= 0x7f; + } + } else { + if ((this->flags & 0x80) == 0) { + this->flags |= 0x80; + } + } +} +END_NONMATCH diff --git a/src/projectile/projectile4.c b/src/projectile/projectile4.c new file mode 100644 index 00000000..7d58f00a --- /dev/null +++ b/src/projectile/projectile4.c @@ -0,0 +1,147 @@ +#include "entity.h" +#include "enemy.h" +#include "functions.h" +#include "audio.h" +#include "flags.h" + +extern void (*const gUnk_081296F0[])(Entity*); + +extern void (*const gUnk_08129704[])(Entity*); + +void sub_080A8680(Entity*); +void sub_080A86A0(Entity*); + +extern s32 sub_080AF090(Entity*); +extern s32 sub_080A7EB0(Entity*); +extern void sub_08016AD2(Entity*); +extern u32 sub_080177A0(Entity*, Entity*); + +void Projectile4(Entity* this) { + gUnk_081296F0[GetNextFunction(this)](this); +} + +void sub_080A8458(Entity* this) { + gUnk_08129704[this->action](this); +} + +void sub_080A8470(Entity* this) { + if (this->bitfield == 0x80) { + if (this->damageType == 0x68) { + EnqueueSFX(SFX_86); + } + DeleteEntity(this); + } else { + this->direction = (this->field_0x3e + 4) & 0x18; + if ((u8)(this->bitfield + 0x7e) < 2) { + sub_080A8680(this); + } else { + InitializeAnimation(this, 0x19); + sub_080A86A0(this); + } + } +} + +void sub_080A84C8(Entity* this) { + this->action = 1; + this->actionDelay = 0x30; + this->field_0xf = 0; + this->height.HALF.HI -= 4; + if (CheckGlobalFlag(TABIDACHI) == 0) { + this->damageType = 0x68; + } + EnqueueSFX(SFX_18D); + InitializeAnimation(this, 0x18); +} + +void sub_080A8504(Entity* this) { + Entity* parent; + + GetNextFrame(this); + if (sub_080AF090(this) != 0) { + if (sub_080A7EB0(this) != 0) { + DeleteThisEntity(); + } + sub_08016AD2(this); + if (--this->actionDelay == 0) { + this->action = 4; + } + } else { + sub_0800417E(this, this->collisions); + sub_08016AD2(this); + InitializeAnimation(this, 0x19); + sub_080A86A0(this); + } + if (this->field_0xf != 0) { + parent = this->parent; + if ((parent->next != NULL) && (sub_080177A0(this, parent) != 0)) { + this->iframes = 0x10; + this->field_0x3e = -this->direction; + this->bitfield = -0x80; + this->field_0x42 = 0xc; + this->field_0x46 = 0; + parent->iframes = 0x10; + parent->field_0x3e = this->direction; + parent->bitfield = -0x3e; + parent->field_0x42 = 0xc; + parent->field_0x46 = 0; + } + } +} + +void sub_080A85B8(Entity* this) { + GetNextFrame(this); + if (sub_080AF090(this) != 0) { + if (sub_080A7EB0(this) != 0) { + DeleteThisEntity(); + } + if (--this->actionDelay == 0) { + this->action = 1; + this->flags |= 0x80; + } + } else { + sub_0800417E(this, (u32)this->collisions); + sub_08016AD2(this); + InitializeAnimation(this, 0x19); + sub_080A86A0(this); + } +} + +void sub_080A8610(Entity* this) { + GetNextFrame(this); + if ((this->frames.all & 0x80) != 0) { + DeleteThisEntity(); + } +} + +void sub_080A862C(Entity* this) { + GetNextFrame(this); + sub_080AF090(this); + switch (sub_080044EC(this, 0x2800)) { + case 0: + DeleteThisEntity(); + return; + case 1: + this->flags &= 0x7f; + this->speed = 0x120; + + break; + } + if ((this->flags & 0x80) == 0) { + this->spriteSettings.b.draw ^= 1; + } +} + +void sub_080A8680(Entity* this) { + this->action = 2; + this->flags &= 0x7f; + this->actionDelay = 3; + this->field_0xf = 1; + EnqueueSFX(SFX_ITEM_SHIELD_BOUNCE); +} + +void sub_080A86A0(Entity* this) { + this->action = 3; + this->flags &= 0x7f; + this->speed = 0; + EnqueueSFX(SFX_18E); +} diff --git a/src/projectile/projectile5.c b/src/projectile/projectile5.c new file mode 100644 index 00000000..1d0d6c5a --- /dev/null +++ b/src/projectile/projectile5.c @@ -0,0 +1,67 @@ + +#include "entity.h" +#include "enemy.h" +#include "player.h" +#include "room.h" +#include "coord.h" + +extern void (*const gUnk_08129718[])(Entity*); + +extern void (*const gUnk_0812972C[])(Entity*); + +extern u32 sub_080002E0(u32, u32); + +extern Hitbox gUnk_08129734; + +void Projectile5(Entity* this) { + gUnk_08129718[GetNextFunction(this)](this); +} + +void sub_080A86D8(Entity* this) { + gUnk_0812972C[this->action](this); +} + +void sub_080A86F0(Entity* this) { + u8* pbVar2; + + if (this->parent == NULL) { + DeleteThisEntity(); + } else { + pbVar2 = &this->parent->field_0x82.HALF.HI; + if ((this->parent->field_0x82.HALF.HI & 0x3f) == 3) { + if (gPlayerState.hurtBlinkSpeed != 0) { + if (sub_080002E0(TILE(this->x.HALF.HI, this->y.HALF.HI), gPlayerEntity.collisionLayer) == 0) { + if (this->bitfield == 0x80) { + *pbVar2 = *pbVar2 & 0x7f; + DeleteThisEntity(); + } + } + } + } else { + DeleteEntity(this); + } + } +} + +void sub_080A8770(Entity* this) { + this->action = 1; + this->field_0x3c |= 0x10; + this->hitbox = &gUnk_08129734; +} + +void sub_080A878C(Entity* this) { + Entity* parent; + + parent = this->parent; + if (parent == NULL) { + DeleteThisEntity(); + } + if (parent->next == NULL) { + DeleteThisEntity(); + } + if ((parent->field_0x82.HALF.HI & 0x7f) != 3) { + DeleteThisEntity(); + } + CopyPosition(parent, this); + this->height.HALF.HI += 2; +} diff --git a/src/projectile/projectile6.c b/src/projectile/projectile6.c new file mode 100644 index 00000000..92c0b83e --- /dev/null +++ b/src/projectile/projectile6.c @@ -0,0 +1,168 @@ +#include "entity.h" +#include "enemy.h" +#include "player.h" +#include "coord.h" +#include "functions.h" + +extern void (*const gUnk_08129740[])(Entity*); + +extern void (*const gUnk_08129754[])(Entity*); + +extern Hitbox gUnk_08129764; + +extern void sub_08078954(Entity*); + +void Projectile6(Entity* this) { + gUnk_08129740[GetNextFunction(this)](this); +} + +void sub_080A87E4(Entity* this) { + if (this->type == 1) { + if (this->attachedEntity == NULL) { + DeleteThisEntity(); + } + if (this->attachedEntity->next == NULL) { + DeleteThisEntity(); + } + } + gUnk_08129754[this->action](this); +} + +void sub_080A881C(Entity* this) { + this->field_0x46 = 0; + if (this->type == 0) { + this->parent->attachedEntity = NULL; + if (this->bitfield == 0x80) { + gPlayerState.hurtBlinkSpeed = 0xf0; + ModHealth(-2); + } + DeleteThisEntity(); + } else { + if (this->action < 2) { + this->action = 2; + this->parent->field_0x82.HALF.HI = 0xc0; + } + } +} + +void sub_080A8868(Entity* this) { + this->action = 1; + this->subAction = 0; + this->spriteSettings.b.shadow = 1; + this->field_0x20 = 0x8000; + this->hitbox = &gUnk_08129764; + this->field_0x3c |= 0x10; + switch (this->type) { + case 0: + InitializeAnimation(this, 0); + break; + case 1: + this->actionDelay = 0; + this->field_0xf = 0; + break; + case 2: + InitializeAnimation(this, 5); + break; + } +} + +void sub_080A88C8(Entity* this) { + Entity* entity; + Entity* parent; + + parent = this->parent; + if (parent == NULL) { + this->action = 2; + } + if (parent->next == NULL) { + this->action = 2; + } + PositionRelative(parent, this, 0, -0x10000); + switch (this->type) { + case 0: + this->height.HALF.HI += 0x10; + break; + case 1: + this->height.HALF.HI += 0xe; + sub_08078954(this->attachedEntity); + CopyPosition(this, this->attachedEntity); + if ((0xf < (u8)(this->actionDelay++ + 1)) && (entity = this->attachedEntity, entity->actionDelay == 0)) { + if ((this->actionDelay & 2) != 0) { + entity->field_0xf += 1; + } + if ((this->attachedEntity->field_0xf < 0x20) && ((this->attachedEntity->field_0xf & 3) == 3)) { + parent->field_0x82.HALF.HI = 0xc0; + this->action = 2; + } + } + break; + case 2: + this->height.HALF.HI += 0xe; + if (sub_080041A0(this, &gPlayerEntity, 0xe, 0xe) != 0) { + this->action = 2; + parent->field_0x82.HALF.HI = 0xc0; + } + break; + } +} + +void sub_080A8988(Entity* this) { + u8 bVar1; + u32 uVar2; + u32 tmp; + Entity* entity; + + if (this->type == 1) { + entity = this->attachedEntity; + if (entity == NULL) { + DeleteThisEntity(); + } + if (entity->next == NULL) { + DeleteThisEntity(); + } + sub_08078954(entity); + CopyPosition(this, entity); + } + if (sub_080044EC(this, 0x2800) != 1) { + return; + } + + tmp = sub_080043E8(this); + if (tmp != 0) { + switch (tmp) { + case 2: + CreateFx(this, 0xb, 0); + break; + case 1: + CreateFx(this, 0, 0); + break; + case 3: + CreateFx(this, 0xc, 0); + break; + } + DeleteThisEntity(); + } + + switch (this->type) { + case 0: + InitializeAnimation(this, 1); + EnqueueSFX(0x84); + this->action = 3; + return; + case 2: + entity = CreateFx(this, 5, 0x80); + if (entity != NULL) { + entity->parent = NULL; + } + case 1: + DeleteEntity(this); + break; + } +} + +void sub_080A8A48(Entity* this) { + GetNextFrame(this); + if ((this->frames.all & 0x80) != 0) { + DeleteEntity(this); + } +} diff --git a/src/projectile/projectile7.c b/src/projectile/projectile7.c new file mode 100644 index 00000000..9d59e7eb --- /dev/null +++ b/src/projectile/projectile7.c @@ -0,0 +1,82 @@ +#include "entity.h" +#include "enemy.h" +#include "functions.h" +#include "audio.h" + +extern void (*const gUnk_0812979C[])(Entity*); + +extern s32 sub_080AF090(Entity*); +extern s32 sub_080A7EB0(Entity*); +extern void sub_08016AD2(Entity*); + +void Projectile7(Entity* this) { + if (GetNextFunction(this) != 0) { + DeleteThisEntity(); + } + gUnk_0812979C[this->action](this); +} + +void sub_080A8A90(Entity* this) { + if (this->type == 0) { + this->action = 1; + InitializeAnimation(this, this->direction >> 3); + } else { + this->action = 2; + InitializeAnimation(this, this->direction >> 3 | 4); + EnqueueSFX(SFX_15F); + } +} + +void sub_080A8AC8(Entity* this) { + u32 direction; + Entity* parent; + + parent = this->parent; + if (parent == NULL) { + DeleteEntity(this); + } else { + if (parent->next == NULL) { + DeleteEntity(this); + } else { + if (this->spriteSettings.b.draw == 1) { + CopyPosition(parent, this); + direction = (parent->direction + 4) & 0x18; + if (this->actionDelay != 0) { + this->direction = direction; + this->animationState = direction >> 2; + this->actionDelay = 0; + InitializeAnimation(this, direction >> 3); + } else { + if (direction >> 2 != this->animationState) { + this->direction = direction; + this->animationState = direction >> 2; + InitializeAnimation(this, direction >> 3); + } + } + } + GetNextFrame(this); + } + } +} + +void sub_080A8B38(Entity* this) { + GetNextFrame(this); + if (sub_080AF090(this) != 0) { + if (sub_080A7EB0(this) != 0) { + DeleteEntity(this); + } else { + sub_08016AD2(this); + } + } else { + this->action = 3; + this->flags &= 0x7f; + this->speed = 0; + } +} + +void sub_080A8B78(Entity* this) { + GetNextFrame(this); + if ((this->frames.all & 0x80) != 0) { + DeleteEntity(this); + } +} diff --git a/src/projectile/projectile8.c b/src/projectile/projectile8.c new file mode 100644 index 00000000..08a5a555 --- /dev/null +++ b/src/projectile/projectile8.c @@ -0,0 +1,76 @@ + +#include "entity.h" +#include "enemy.h" +#include "functions.h" +#include "audio.h" + +extern void (*const gUnk_0812982C[])(Entity*); + +extern s32 sub_080AF090(Entity*); +extern s32 sub_080A7EB0(Entity*); +extern void sub_08016AD2(Entity*); + +void Projectile8(Entity* this) { + if (GetNextFunction(this) != 0) { + DeleteThisEntity(); + } + gUnk_0812982C[this->action](this); +} + +void sub_080A8BC0(Entity* this) { + if (this->type == 0) { + this->action = 1; + InitializeAnimation(this, this->direction >> 3); + } else { + this->action = 2; + InitializeAnimation(this, this->direction >> 3 | 4); + EnqueueSFX(SFX_15E); + } +} + +void sub_080A8BF8(Entity* this) { + u32 direction; + Entity* parent; + + parent = this->parent; + if (parent == NULL) { + DeleteEntity(this); + } else { + if (parent->next == NULL) { + DeleteEntity(this); + } else { + if (this->spriteSettings.b.draw == 1) { + CopyPosition(parent, this); + if (this->actionDelay != 0) { + direction = parent->direction & 0x18; + this->direction = direction; + this->actionDelay = 0; + InitializeAnimation(this, direction >> 3); + } + } + GetNextFrame(this); + } + } +} + +void sub_080A8C4C(Entity* this) { + GetNextFrame(this); + if (sub_080AF090(this) != 0) { + if (sub_080A7EB0(this) != 0) { + DeleteEntity(this); + } else { + sub_08016AD2(this); + } + } else { + this->action = 3; + this->flags &= 0x7f; + this->speed = 0; + } +} + +void sub_080A8C8C(Entity* this) { + GetNextFrame(this); + if ((this->frames.all & 0x80) != 0) { + DeleteEntity(this); + } +} diff --git a/src/projectile/projectile9.c b/src/projectile/projectile9.c new file mode 100644 index 00000000..dfb8e213 --- /dev/null +++ b/src/projectile/projectile9.c @@ -0,0 +1,76 @@ + +#include "entity.h" +#include "enemy.h" +#include "functions.h" +#include "audio.h" + +extern void (*const gUnk_081298B8[])(Entity*); + +extern s32 sub_080AF090(Entity*); +extern s32 sub_080A7EB0(Entity*); +extern void sub_08016AD2(Entity*); + +void Projectile9(Entity* this) { + if (GetNextFunction(this) != 0) { + DeleteThisEntity(); + } + gUnk_081298B8[this->action](this); +} + +void sub_080A8CD4(Entity* this) { + if (this->type == 0) { + this->action = 1; + InitializeAnimation(this, this->direction >> 3); + } else { + this->action = 2; + InitializeAnimation(this, this->direction >> 3 | 4); + EnqueueSFX(SFX_160); + } +} + +void sub_080A8D0C(Entity* this) { + u32 direction; + Entity* parent; + + parent = this->parent; + if (parent == NULL) { + DeleteEntity(this); + } else { + if (parent->next == NULL) { + DeleteEntity(this); + } else { + if (this->spriteSettings.b.draw == 1) { + CopyPosition(parent, this); + if (this->actionDelay != 0) { + direction = parent->direction & 0x18; + this->direction = direction; + this->actionDelay = 0; + InitializeAnimation(this, direction >> 3); + } + } + GetNextFrame(this); + } + } +} + +void sub_080A8D60(Entity* this) { + GetNextFrame(this); + if (sub_080AF090(this) != 0) { + if (sub_080A7EB0(this) != 0) { + DeleteEntity(this); + } else { + sub_08016AD2(this); + } + } else { + this->action = 3; + this->flags &= 0x7f; + this->speed = 0; + } +} + +void sub_080A8DA0(Entity* this) { + GetNextFrame(this); + if ((this->frames.all & 0x80) != 0) { + DeleteEntity(this); + } +} diff --git a/src/projectile/projectileA.c b/src/projectile/projectileA.c new file mode 100644 index 00000000..1699a1a5 --- /dev/null +++ b/src/projectile/projectileA.c @@ -0,0 +1,155 @@ + +#include "entity.h" +#include "enemy.h" +#include "player.h" +#include "functions.h" +#include "random.h" +#include "audio.h" + +extern void (*const gUnk_08129954[])(Entity*); + +extern void (*const gUnk_08129968[])(Entity*); + +void sub_080A90D8(Entity*); + +extern void sub_0806F5BC(Entity*, u32, u32); +extern u32 sub_080041DC(Entity*, u32, u32); + +extern s8 gUnk_08129978[]; +extern s8 gUnk_08129980[]; +extern s8 gUnk_08129988[]; + +void ProjectileA(Entity* this) { + gUnk_08129954[GetNextFunction(this)](this); +} + +void sub_080A8DDC(Entity* this) { + if (((this->type != 3) && ((this->bitfield & 0x80) != 0)) && ((this->bitfield & 0x7f) != 0x1e)) { + this->action = 3; + this->flags &= 0x7f; + InitializeAnimation(this, 0x53); + } + gUnk_08129968[this->action](this); +} + +void sub_080A8E28(Entity* this) { + u32 uVar1; + s32 iVar2; + + this->action = 1; + this->field_0x20 = -0x10000; + if (this->type != 3) { + CopyPosition(this->parent, this); + sub_0806F5BC(this, 0x1000, this->direction); + this->height.WORD = this->parent->y.WORD - this->attachedEntity->y.WORD; + this->y.WORD -= this->height.WORD; + InitializeAnimation(this, 0x51); + SoundReq(SFX_1B5); + } + + switch (this->type) { + case 0: + case 1: + iVar2 = sub_080041DC(this, gPlayerEntity.x.HALF.HI, gPlayerEntity.y.HALF.HI); + if (this->type == 1) { + uVar1 = Random() & 0x1ff; + if ((gScreenTransition.frameCount & 1U) == 0) { + iVar2 += uVar1; + } else { + iVar2 -= uVar1; + } + } + if (iVar2 < 0x20) { + iVar2 = 0x20; + } else if (0x400 < iVar2) { + iVar2 = 0x400; + } + this->field_0x20 = this->height.WORD / (iVar2 << 8) << 0xd; + this->field_0xf = 0x1e; + break; + case 2: + this->field_0x20 = (this->height.WORD / 0x18000) << 0xc; + break; + case 3: + this->height.WORD = 0xff600000; + uVar1 = (Random() & 3) * 2; + this->x.HALF.HI = gUnk_08129978[uVar1] + this->x.HALF.HI; + this->y.HALF.HI = gUnk_08129978[uVar1 + 1] + this->y.HALF.HI; + if ((uVar1 & 2) != 0) { + this->x.HALF.HI += gUnk_08129988[Random() & 0xf]; + this->y.HALF.HI += gUnk_08129980[Random() & 7]; + } else { + this->x.HALF.HI += gUnk_08129980[Random() & 7]; + this->y.HALF.HI += gUnk_08129988[Random() & 0xf]; + } + sub_08004168(this); + InitializeAnimation(this, 0); + break; + } +} + +void sub_080A8FB8(Entity* this) { + if (this->type == 3) { + if (sub_08003FC4(this, 0x1800) == 0) { + sub_08008790(this, 7); + CreateFx(this, 4, 0); + DeleteThisEntity(); + } + } else { + GetNextFrame(this); + sub_0806F69C(this); + if ((this->type != 2) && (--this->field_0xf == 0xff)) { + this->field_0xf = 0x1e; + sub_08004596(this, GetFacingDirection(this, &gPlayerEntity)); + } + if (sub_08003FC4(this, 0) == 0) { + this->action = 2; + sub_080A90D8(this); + if (this->type == 2) { + this->actionDelay = 0xf; + InitializeAnimation(this, 0x54); + } else { + InitializeAnimation(this, 0x52); + } + } + } +} + +void sub_080A9058(Entity* this) { + GetNextFrame(this); + if (this->type == 2) { + if (--this->actionDelay == 0xff) { + this->flags &= 0x7f; + this->action = 3; + InitializeAnimation(this, 0x55); + } else { + sub_0806F69C(this); + sub_080A90D8(this); + } + } else { + if ((this->frames.all & 0x80) != 0) { + this->action = 3; + this->flags &= 0x7f; + InitializeAnimation(this, 0x53); + } + } +} + +void sub_080A90BC(Entity* this) { + GetNextFrame(this); + if ((this->frames.all & 0x80) != 0) { + DeleteThisEntity(); + } +} + +void sub_080A90D8(Entity* this) { + u32 tmp; + + if (this->field_0x74.HWORD != TILE(this->x.HALF.HI, this->y.HALF.HI)) { + this->field_0x74.HWORD = TILE(this->x.HALF.HI, this->y.HALF.HI); + tmp = GetTileTypeByEntity(this); + if ((tmp == 0x13) || (tmp == 0x34)) { + sub_0807B7D8(0x34c, TILE(this->x.HALF.HI, this->y.HALF.HI), this->collisionLayer); + } + } +} diff --git a/src/projectile/projectileB.c b/src/projectile/projectileB.c new file mode 100644 index 00000000..0a4c6898 --- /dev/null +++ b/src/projectile/projectileB.c @@ -0,0 +1,27 @@ +#include "entity.h" +#include "player.h" +#include "coord.h" + +extern Hitbox* gUnk_08129998[]; +extern void sub_0803C0AC(Entity*); + +void ProjectileB(Entity* this) { + Entity* parent; + + if (this->action == 0) { + this->action = 1; + } + parent = this->parent; + if (((parent == NULL) || (parent->currentHealth == 0)) || (parent->next == NULL)) { + if (((this->bitfield & 0x80) != 0) && (this->field_0x4c == &gPlayerEntity)) { + sub_0803C0AC(this); + } + DeleteEntity(this); + } else { + this->hitbox = gUnk_08129998[parent->animationState]; + CopyPosition(parent, this); + if ((parent->iframes != 0) && (this->iframes == 0)) { + this->iframes = 0xff; + } + } +} diff --git a/src/projectile/projectileC.c b/src/projectile/projectileC.c new file mode 100644 index 00000000..8af3163a --- /dev/null +++ b/src/projectile/projectileC.c @@ -0,0 +1,68 @@ +#include "entity.h" +#include "random.h" +#include "coord.h" +#include "functions.h" + +extern Hitbox gUnk_080FD1E4; +extern u32 sub_080644C8(Entity*); +extern u8 gUnk_081299C8[]; +extern bool32 sub_080AE4CC(Entity*, u32, u32, u32); +extern Entity gUnk_02027EB4; + +void ProjectileC(Entity* this) { + Entity* entity; + u8 tmp; + + if (this->type == 0) { + if (this->action == 0) { + this->action = 1; + this->actionDelay = Random(); + this->spriteSettings.b.draw = 0; + } + if (this->bitfield == 0x80) { + if (this->parent != NULL) { + this->parent->type = 0xff; + } + DeleteThisEntity(); + } + CopyPosition(this->parent, this); + if (this->field_0xf != 0) { + this->field_0xf -= 1; + } else { + if (sub_080644C8(this) != 0) { + if (((this->actionDelay++) & 3) == 0) { + entity = sub_080A7EE0(0xc); + if (entity != NULL) { + entity->type = 1; + tmp = this->parent->field_0x3e; + entity->direction = (gUnk_081299C8[(this->actionDelay >> 2 & 7)] + (tmp << 3)) & 0x1f; + entity->parent = this->parent; + CopyPosition(this, entity); + } + } + } + } + } else { + if (this->action == 0) { + this->action = 1; + this->actionDelay = 0x12; + this->spriteSettings.b.draw = 0; + this->speed = 0x800; + this->hitbox = &gUnk_080FD1E4; + InitializeAnimation(this, 0); + } + if (this->bitfield == 0x80) { + if (this->parent != NULL) { + this->parent->type = 0xff; + } + DeleteThisEntity(); + } + if (--this->actionDelay == 0) { + DeleteThisEntity(); + } + sub_0806F69C(this); + if (sub_080AE4CC(&gUnk_02027EB4, this->x.HALF.HI, this->y.HALF.HI, 2) != 0) { + DeleteThisEntity(); + } + } +} diff --git a/src/projectile/projectileD.c b/src/projectile/projectileD.c new file mode 100644 index 00000000..931728dd --- /dev/null +++ b/src/projectile/projectileD.c @@ -0,0 +1,126 @@ +#include "entity.h" +#include "enemy.h" +#include "functions.h" +#include "audio.h" +#include "createObject.h" + +extern void (*const gUnk_081299D0[])(Entity*); + +extern void (*const gUnk_081299E4[])(Entity*); + +void sub_080A9488(Entity*); + +void sub_080A94C0(Entity*, u32); + +extern s32 sub_080AF090(Entity*); + +typedef struct { + u8 flipX; + u8 flipY; + u8 animIndex; + u8 unk; + Hitbox* hitbox; +} struct_081299F8; +extern struct_081299F8 gUnk_081299F8[]; + +void ProjectileD(Entity* this) { + gUnk_081299D0[GetNextFunction(this)](this); +} + +void sub_080A931C(Entity* this) { + gUnk_081299E4[this->action](this); +} + +void sub_080A9334(Entity* this) { + if ((this->bitfield & 0x80) != 0) { + if ((this->bitfield & 0x3f) != 0) { + ModHealth(-2); + sub_080A9488(this); + this->field_0x42 = 0; + this->iframes = 0; + } else { + DeleteThisEntity(); + } + } +} + +void sub_080A9370(Entity* this) { + this->action = 1; + this->spriteSettings.b.draw = 1; + this->flags &= 0x7f; + this->actionDelay = 0x6a; + this->field_0xf = 0; + this->field_0x20 = 0xa00; + sub_080A94C0(this, this->type); +} + +void sub_080A93A0(Entity* this) { + Entity* parent; + + parent = this->parent; + if ((parent == NULL) || (parent->next == NULL)) { + DeleteThisEntity(); + } + if (this->field_0xf != 0) { + DeleteThisEntity(); + } + if (parent->field_0xf != 0) { + this->action = 2; + this->flags = this->flags | 0x80; + parent->attachedEntity = NULL; + SoundReq(SFX_FC); + } +} + +void sub_080A93DC(Entity* this) { + if (this->collisions != 0) { + this->action = 3; + this->flags &= 0x7f; + this->actionDelay = 0x20; + InitializeAnimation(this, this->animIndex + 2); + EnqueueSFX(0x18a); + sub_0806F69C(this); + } else if (--this->actionDelay == 0) { + DeleteThisEntity(); + } + sub_080AF090(this); +} + +void sub_080A942C(Entity* this) { + if (--this->actionDelay == 0) { + DeleteThisEntity(); + } + GetNextFrame(this); +} + +void sub_080A9448(Entity* this) { + if (sub_08003FC4(this, 0x2800) == 0) { + CreateDust(this); + DeleteThisEntity(); + } else { + if (--this->actionDelay == 0) { + this->actionDelay = 2; + this->animationState = (this->animationState + 1) & 3; + sub_080A94C0(this, this->animationState); + } + } +} + +void sub_080A9488(Entity* this) { + this->action = 4; + this->flags &= 0x7f; + this->actionDelay = 2; + this->field_0x20 = 0x18000; + this->animationState = (this->field_0x3e & 0x18) >> 3; + EnqueueSFX(SFX_METAL_CLINK); + sub_080A94C0(this, this->animationState); +} + +void sub_080A94C0(Entity* this, u32 param) { + struct_081299F8* entry = &gUnk_081299F8[param]; + this->spriteSettings.b.flipX = entry->flipX; + this->spriteSettings.b.flipY = entry->flipY; + this->animIndex = entry->animIndex; + this->hitbox = entry->hitbox; + InitializeAnimation(this, this->animIndex); +} diff --git a/src/projectile/projectileE.c b/src/projectile/projectileE.c new file mode 100644 index 00000000..cc5745e5 --- /dev/null +++ b/src/projectile/projectileE.c @@ -0,0 +1,46 @@ +#include "entity.h" +#include "audio.h" +#include "coord.h" + +extern void (*const gUnk_08129A64[])(Entity*); + +void ProjectileE(Entity* this) { + gUnk_08129A64[this->action](this); +} + +void sub_080A9518(Entity* this) { + this->action = 1; + this->actionDelay = 10; + this->height.HALF.HI -= 2; + this->y.HALF.HI += 2; + InitializeAnimation(this, 0); + SoundReq(SFX_149); +} + +void sub_080A9540(Entity* this) { + const s16* tmp; + + if (--this->actionDelay == 0) { + this->action = 2; + this->flags &= 0x7f; + this->spritePriority.b0 = 7; + this->y.HALF.HI += 6; + InitializeAnimation(this, 1); + } else { + if (this->height.HALF.HI != 0) { + this->height.HALF.HI += 1; + } + + tmp = &gSineTable[this->direction]; + this->x.WORD += tmp[0] * this->speed; + this->y.WORD -= tmp[0x40] * this->speed; + GetNextFrame(this); + } +} + +void sub_080A95BC(Entity* this) { + GetNextFrame(this); + if ((this->frames.all & 0x80) != 0) { + DeleteEntity(this); + } +} diff --git a/src/projectile/projectileF.c b/src/projectile/projectileF.c new file mode 100644 index 00000000..5f9ce5a4 --- /dev/null +++ b/src/projectile/projectileF.c @@ -0,0 +1,197 @@ +#include "entity.h" +#include "enemy.h" +#include "random.h" +#include "functions.h" +#include "audio.h" + +extern void (*const gUnk_08129ABC[])(Entity*); + +extern void (*const gUnk_08129AD0[])(Entity*); + +void sub_080A99F0(Entity*); +extern void sub_080AE58C(Entity*, u32, u32); +extern u32 sub_0806FC80(Entity*, Entity*, s32); + +extern u8 gUnk_08129ADC[]; + +void ProjectileF(Entity* this) { + gUnk_08129ABC[GetNextFunction(this)](this); +} + +void sub_080A95F8(Entity* this) { + gUnk_08129AD0[this->action](this); +} + +void sub_080A9610(Entity* this) { + u32 uVar1; + u32 uVar2; + + this->action = 1; + + switch (this->type) { + case 0: + sub_0806F62C(this, 0x4800, this->direction); + this->speed = 0x200; + this->actionDelay = 0; + this->field_0xf = this->direction; + this->field_0x78.HWORD = 300; + InitAnimationForceUpdate(this, 0); + break; + case 1: + this->spriteRendering.b3 = 3; + this->spritePriority.b0 = 6; + this->speed = (Random() & 0x1ff) + 0x200; + this->field_0x20 = (Random() & 0x1fff) + 0x18000; + uVar1 = (((u8)Random() & 7) - 4); + this->direction -= uVar1; + *(u32*)&this->field_0x78 = 600; + sub_0806F62C(this, this->speed, this->direction); + InitializeAnimation(this, 4); + break; + case 2: + if ((Random() & 1) != 0) { + this->direction = (Random() & 7) + this->direction; + } else { + this->direction = this->direction - (Random() & 7); + } + this->speed = 0x200; + this->actionDelay = 0x30; + sub_0806F62C(this, 0x5000, this->direction); + InitializeAnimation(this, 5); + break; + case 3: + CopyPosition(&gPlayerEntity, this); + this->height.WORD = 0xff600000; + this->x.HALF.HI += 0x60; + this->y.HALF.HI += 0x40; + this->x.HALF.HI -= (s32)Random() % 0xc0; + uVar2 = Random() & 0x7f; + this->y.HALF.HI -= uVar2; + InitializeAnimation(this, 0); + break; + } + + SoundReq(SFX_1B5); +} + +void sub_080A976C(Entity* this) { + u32 index; + + switch (this->type) { + case 0: + if (this->parent->action == 2) { + DeleteThisEntity(); + } + if ((this->type2 == 0) && ((this->bitfield & 0x80) != 0)) { + if ((this->bitfield & 0x7f) == 0) { + sub_080A99F0(this); + } + this->direction = this->field_0x3e << 3; + this->speed = 0x400; + this->type2 = 1; + this->actionDelay = 0; + this->flags &= 0x7f; + } + if (sub_0806FC80(this, this->parent, 0x40) != 0) { + if (this->type2 == 0) { + this->direction ^= 0x80; + this->speed = 0x400; + } else { + this->parent->currentHealth -= 1; + this->parent->iframes = 0x1e; + if (this->parent->field_0x7c.BYTES.byte0 != 0) { + this->parent->field_0x42 = 0x18; + this->parent->field_0x46 = 0x200; + this->parent->field_0x3e = this->direction >> 3; + } + SoundReq(SFX_BOSS_HIT); + sub_080A99F0(this); + } + } + UpdateAnimationSingleFrame(this); + this->field_0x78.HWORD--; + sub_0806F62C(this, this->speed, this->direction); + sub_080AE58C(this, this->direction >> 3, 0); + if ((this->collisions & 0xee00) != 0) { + this->direction = -this->direction; + } + if ((this->collisions & 0xee) != 0) { + this->direction = -this->direction ^ 0x80; + } + if (this->direction == this->field_0xf) { + return; + } + SoundReq(SFX_164); + if (this->field_0x78.HWORD == 0) { + this->actionDelay = 4; + } else { + this->actionDelay++; + } + + this->field_0xf = this->direction; + if (this->actionDelay < 2) { + return; + } + for (index = 0; index < 3; ++index) { + this->attachedEntity = sub_0804A98C(this, 0xf, 1); + if (this->attachedEntity != NULL) { + this->attachedEntity->parent = this->parent; + this->attachedEntity->direction = this->direction + gUnk_08129ADC[index]; + CopyPosition(this, this->attachedEntity); + } + } + sub_080A99F0(this); + break; + case 1: + if (this->parent->action == 2) { + sub_080A99F0(this); + } + GetNextFrame(this); + if (sub_08003FC4(this, 0x1800) != 0) { + sub_080AE58C(this, this->direction >> 3, 0); + if (this->collisions == 0) { + sub_0806F62C(this, (s32)this->speed, (u32)this->direction); + } else { + sub_080A99F0(this); + } + } + if (*(u32*)&this->field_0x78 < 0x1e) { + if ((*(u32*)&this->field_0x78 & 7) != 0) { + this->spriteSettings.b.draw = 1; + } else { + this->spriteSettings.b.draw = 0; + } + } + if (--*(u32*)&this->field_0x78 == -1) { + sub_080A99F0(this); + } + if ((this->bitfield & 0x80) == 0) { + return; + } + sub_080A99F0(this); + break; + case 2: + GetNextFrame(this); + if (--this->actionDelay != 0xff) { + sub_0806F62C(this, this->speed, this->direction); + return; + } + if (this->attachedEntity != NULL) { + this->attachedEntity->actionDelay = 1; + } + DeleteThisEntity(); + break; + case 3: + if (sub_08003FC4(this, 0x1800) != 0) { + return; + } + CreateFx(this, 4, 0); + DeleteThisEntity(); + break; + } +} + +void sub_080A99F0(Entity* this) { + CreateFx(this, 4, 0); + DeleteThisEntity(); +} From d96cef7227e4c65442f94aafc49138b467fdf06f Mon Sep 17 00:00:00 2001 From: Henny022p Date: Sat, 19 Jun 2021 20:50:14 +0200 Subject: [PATCH 11/74] decomp manager11 --- asm/manager11.s | 33 --------------------------------- include/manager.h | 9 ++++++++- linker.ld | 2 +- src/manager/manager11.c | 17 +++++++++++++++++ 4 files changed, 26 insertions(+), 35 deletions(-) delete mode 100644 asm/manager11.s create mode 100644 src/manager/manager11.c diff --git a/asm/manager11.s b/asm/manager11.s deleted file mode 100644 index e0d1626d..00000000 --- a/asm/manager11.s +++ /dev/null @@ -1,33 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_080599B8 -sub_080599B8: @ 0x080599B8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080599D6 - movs r0, #1 - strb r0, [r4, #0xc] - ldrh r0, [r4, #0x3c] - bl CheckFlags - cmp r0, #0 - beq _080599EA - bl DeleteThisEntity - b _080599EA -_080599D6: - ldrh r0, [r4, #0x3e] - bl CheckFlags - cmp r0, #0 - beq _080599EA - ldrh r0, [r4, #0x3c] - bl SetFlag - bl DeleteThisEntity -_080599EA: - pop {r4, pc} diff --git a/include/manager.h b/include/manager.h index 18c6d370..a455052d 100644 --- a/include/manager.h +++ b/include/manager.h @@ -103,6 +103,13 @@ typedef struct { u16 unk_3e; } ManagerE; +typedef struct Manager11 { + Manager manager; + u8 unk_20[0x1C]; + u16 unk_3c; + u16 unk_3e; +} Manager11; + typedef struct { u16 unk_00; u8 source_roomID; @@ -149,7 +156,7 @@ extern void sub_08058DD0(Entity*); extern void sub_08058E60(); extern void sub_08058ECC(Entity*); extern void sub_08059570(Entity*); -extern void sub_080599B8(Entity*); +extern void sub_080599B8(Manager11*); extern void sub_080599EC(Entity*); extern void sub_08059DAC(Entity*); extern void sub_08059E58(Entity*); diff --git a/linker.ld b/linker.ld index 8838ce5d..3ecd5a65 100644 --- a/linker.ld +++ b/linker.ld @@ -495,7 +495,7 @@ SECTIONS { src/manager/managerE.o(.text); asm/managerF.o(.text); asm/manager10.o(.text); - asm/manager11.o(.text); + src/manager/manager11.o(.text); asm/manager12.o(.text); asm/manager13.o(.text); asm/manager14.o(.text); diff --git a/src/manager/manager11.c b/src/manager/manager11.c new file mode 100644 index 00000000..841407fc --- /dev/null +++ b/src/manager/manager11.c @@ -0,0 +1,17 @@ +#include "global.h" +#include "manager.h" +#include "flags.h" + +void sub_080599B8(Manager11* this) { + if (!this->manager.action) { + this->manager.action = 1; + if (CheckFlags(this->unk_3c)) { + DeleteThisEntity(); + } + } else { + if (CheckFlags(this->unk_3e)) { + SetFlag(this->unk_3c); + DeleteThisEntity(); + } + } +} From 59ca3b7be50dfd2c44b8dcc95fef583788fcc3ce Mon Sep 17 00:00:00 2001 From: LeonarthCG Date: Mon, 21 Jun 2021 11:01:34 +0200 Subject: [PATCH 12/74] decompile object31 (frozenFlower) --- asm/object31.s | 43 --------------------------------------- include/object.h | 4 ++-- linker.ld | 2 +- src/object.c | 2 +- src/object/frozenFlower.c | 21 +++++++++++++++++++ 5 files changed, 25 insertions(+), 47 deletions(-) delete mode 100644 asm/object31.s create mode 100644 src/object/frozenFlower.c diff --git a/asm/object31.s b/asm/object31.s deleted file mode 100644 index 0ad6fc74..00000000 --- a/asm/object31.s +++ /dev/null @@ -1,43 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Object31 -Object31: @ 0x0808A9C4 - push {lr} - ldr r2, _0808A9D8 @ =gUnk_0812119C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0808A9D8: .4byte gUnk_0812119C - - thumb_func_start sub_0808A9DC -sub_0808A9DC: @ 0x0808A9DC - movs r1, #1 - strb r1, [r0, #0xc] - ldrb r1, [r0, #0xa] - strb r1, [r0, #0x1e] - ldrb r1, [r0, #0x19] - movs r2, #0xc0 - orrs r1, r2 - strb r1, [r0, #0x19] - adds r0, #0x29 - ldrb r1, [r0] - movs r2, #7 - orrs r1, r2 - strb r1, [r0] - bx lr - - thumb_func_start nullsub_519 -nullsub_519: @ 0x0808A9F8 - bx lr - .align 2, 0 diff --git a/include/object.h b/include/object.h index 145ae462..dc2b6b43 100644 --- a/include/object.h +++ b/include/object.h @@ -54,7 +54,7 @@ typedef enum { PUSHABLE_ROCK, HITTABLE_LEVER, OBJECT_30, - OBJECT_31, + FROZEN_FLOWER, PULLABLE_MUSHROOM, BOLLARD, WARP_POINT, @@ -250,7 +250,7 @@ extern void Smoke(Entity*); extern void PushableRock(Entity*); extern void HittableLever(Entity*); extern void Object30(Entity*); -extern void Object31(Entity*); +extern void FrozenFlower(Entity*); extern void PullableMushroom(Entity*); extern void Bollard(Entity*); extern void WarpPoint(Entity*); diff --git a/linker.ld b/linker.ld index 3ecd5a65..f093f9f7 100644 --- a/linker.ld +++ b/linker.ld @@ -738,7 +738,7 @@ SECTIONS { asm/pushableRock.o(.text); asm/hittableLever.o(.text); asm/object30.o(.text); - asm/object31.o(.text); + src/object/frozenFlower.o(.text); asm/pullableMushroom.o(.text); asm/bollard.o(.text); asm/warpPoint.o(.text); diff --git a/src/object.c b/src/object.c index b5eff460..768c8d12 100644 --- a/src/object.c +++ b/src/object.c @@ -52,7 +52,7 @@ void (*const gObjectFunctions[])(Entity*) = { [PUSHABLE_ROCK] = PushableRock, [HITTABLE_LEVER] = HittableLever, [OBJECT_30] = Object30, - [OBJECT_31] = Object31, + [FROZEN_FLOWER] = FrozenFlower, [PULLABLE_MUSHROOM] = PullableMushroom, [BOLLARD] = Bollard, [WARP_POINT] = WarpPoint, diff --git a/src/object/frozenFlower.c b/src/object/frozenFlower.c new file mode 100644 index 00000000..a668506b --- /dev/null +++ b/src/object/frozenFlower.c @@ -0,0 +1,21 @@ +#include "global.h" +#include "entity.h" + +extern void (*const gUnk_0812119C[])(Entity*); + +void FrozenFlower(Entity* this) +{ + gUnk_0812119C[this->action](this); +} + +void sub_0808A9DC(Entity* this) +{ + this->action = 1; + this->frameIndex = this->type; + this->spriteRendering.b3 = 3; + this->spritePriority.b0 = 7; +} + +void nullsub_519(Entity* this) +{ +} From ca7478dbbc82b5136eb6efac07b36911e514cbfe Mon Sep 17 00:00:00 2001 From: LeonarthCG Date: Mon, 21 Jun 2021 14:18:22 +0200 Subject: [PATCH 13/74] frozenFlower.c formatting --- src/object/frozenFlower.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/object/frozenFlower.c b/src/object/frozenFlower.c index a668506b..92118c4e 100644 --- a/src/object/frozenFlower.c +++ b/src/object/frozenFlower.c @@ -3,19 +3,16 @@ extern void (*const gUnk_0812119C[])(Entity*); -void FrozenFlower(Entity* this) -{ +void FrozenFlower(Entity* this) { gUnk_0812119C[this->action](this); } -void sub_0808A9DC(Entity* this) -{ +void sub_0808A9DC(Entity* this) { this->action = 1; this->frameIndex = this->type; this->spriteRendering.b3 = 3; this->spritePriority.b0 = 7; } -void nullsub_519(Entity* this) -{ +void nullsub_519(Entity* this) { } From b0510402aba80e534c85ba29aa8ffa6d7c5a2c17 Mon Sep 17 00:00:00 2001 From: octorock <79596758+octorock@users.noreply.github.com> Date: Wed, 16 Jun 2021 21:11:01 +0200 Subject: [PATCH 14/74] Add DEMO variant --- Makefile | 32 ++++++-- asm/bossDoor.s | 16 ++++ asm/code_080043E8.s | 5 ++ asm/code_080A3BD0.s | 11 +++ asm/code_080A5574.s | 29 +++++++ asm/fileScreen.s | 45 +++++++++++ asm/object3A.s | 4 + asm/playerItem/playerItem15.s | 24 ++++++ asm/sub_0807CA18.s | 113 ++++++++++++++++++++++++++- data/const/playerItem/playerItem15.s | 15 +++- data/data_08132B30.s | 2 + data/sprite_table.s | 5 ++ include/structures.h | 2 + linker.ld | 7 +- src/audio.c | 42 ++++++++++ src/code_0805436C.c | 2 + src/code_0805F9A0.c | 32 +++++++- src/eeprom.c | 9 +++ src/game.c | 13 +++ src/intro.c | 18 +++++ src/main.c | 17 +++- src/room.c | 24 ++++++ src/save.c | 51 +++++++++++- src/sub_080A3B84.c | 2 + tmc_demo.sha1 | 1 + tmc_eu.sha1 | 1 + tmc_jp.sha1 | 1 + 27 files changed, 511 insertions(+), 12 deletions(-) create mode 100644 tmc_demo.sha1 create mode 100644 tmc_eu.sha1 create mode 100644 tmc_jp.sha1 diff --git a/Makefile b/Makefile index 7d2aedb6..f18c9cb9 100644 --- a/Makefile +++ b/Makefile @@ -5,17 +5,34 @@ 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 +else +ifeq ($(GAME_VERSION), JP) +GAME_CODE := BZMJ +BUILD_NAME := tmc +else +$(error unknown version $(GAME_VERSION)) +endif +endif +endif + + SHELL := /bin/bash -o pipefail -BUILD_NAME := tmc + ROM := $(BUILD_NAME).gba OBJ_DIR := build/$(BUILD_NAME) @@ -120,11 +137,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) @@ -205,3 +222,8 @@ $(ELF): $(OBJS) linker.ld $(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 \ No newline at end of file diff --git a/asm/bossDoor.s b/asm/bossDoor.s index 408d22b4..9e68f193 100644 --- a/asm/bossDoor.s +++ b/asm/bossDoor.s @@ -591,7 +591,11 @@ sub_0808C650: @ 0x0808C650 movs r0, #0 b _0808C674 .align 2, 0 +.ifdef DEMO +_0808C66C: .4byte gUnk_02036BB0 +.else _0808C66C: .4byte gUnk_02036BB8 +.endif _0808C670: ldr r1, _0808C678 @ =gUnk_02036BB8 movs r0, #1 @@ -599,7 +603,11 @@ _0808C674: str r0, [r1] pop {r4, pc} .align 2, 0 +.ifdef DEMO +_0808C678: .4byte gUnk_02036BB0 +.else _0808C678: .4byte gUnk_02036BB8 +.endif thumb_func_start sub_0808C67C sub_0808C67C: @ 0x0808C67C @@ -607,7 +615,11 @@ sub_0808C67C: @ 0x0808C67C ldr r0, [r0] bx lr .align 2, 0 +.ifdef DEMO +_0808C684: .4byte gUnk_02036BB0 +.else _0808C684: .4byte gUnk_02036BB8 +.endif thumb_func_start sub_0808C688 sub_0808C688: @ 0x0808C688 @@ -618,4 +630,8 @@ sub_0808C688: @ 0x0808C688 str r0, [r1] pop {pc} .align 2, 0 +.ifdef DEMO +_0808C698: .4byte gUnk_02036BB0 +.else _0808C698: .4byte gUnk_02036BB8 +.endif diff --git a/asm/code_080043E8.s b/asm/code_080043E8.s index 349924f6..dc71580b 100644 --- a/asm/code_080043E8.s +++ b/asm/code_080043E8.s @@ -2254,7 +2254,12 @@ 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 .incbin "baserom.gba", 0x007D07, 0x00000CF +.endif non_word_aligned_thumb_func_start sub_08007DD6 sub_08007DD6: @ 0x08007DD6 diff --git a/asm/code_080A3BD0.s b/asm/code_080A3BD0.s index 328566f3..b3807006 100644 --- a/asm/code_080A3BD0.s +++ b/asm/code_080A3BD0.s @@ -1206,6 +1206,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 +1248,7 @@ _080A45E0: .align 2, 0 _080A4600: .4byte gUnk_0812814C _080A4604: .4byte gMenu +.endif thumb_func_start sub_080A4608 sub_080A4608: @ 0x080A4608 @@ -2890,9 +2895,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 diff --git a/asm/code_080A5574.s b/asm/code_080A5574.s index d8bfcee6..51824e3f 100644 --- a/asm/code_080A5574.s +++ b/asm/code_080A5574.s @@ -202,7 +202,11 @@ _080A570C: cmp r0, #1 bne _080A575E ldrb r3, [r2, #3] + .ifdef DEMO + movs r4, #0 + .else movs r1, #0 + .endif cmp r3, #2 beq _080A572E cmp r3, #2 @@ -223,23 +227,48 @@ _080A572E: ldrb r0, [r0] cmp r0, #0 beq _080A574E + .ifdef DEMO + movs r4, #8 + .else movs r1, #8 + .endif cmp r3, #0 bne _080A574E + .ifdef DEMO + movs r4, #7 + .else movs r1, #7 + .endif b _080A5752 .align 2, 0 _080A5744: .4byte gMenu _080A5748: +.ifdef DEMO + movs r0, #0x6d + bl SoundReq + b _080A574E +_080A574C: + movs r0, #0x6d + bl SoundReq +.else movs r1, #9 b _080A5752 _080A574C: movs r1, #0xa +.endif _080A574E: + .ifdef DEMO + cmp r4, #0 + .else cmp r1, #0 + .endif beq _080A575E _080A5752: + .ifdef DEMO + adds r0, r4, #0 + .else adds r0, r1, #0 + .endif bl sub_080A4E84 movs r0, #0x6a bl SoundReq diff --git a/asm/fileScreen.s b/asm/fileScreen.s index d743ac41..eee2baba 100755 --- a/asm/fileScreen.s +++ b/asm/fileScreen.s @@ -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 0x030010A0 @TODO ptr +_08051A6C: .4byte 0x080FC55C @TODO ptr +_08051A70x: .4byte 0x03001000 @TODO ptr +_08051A74x: .4byte 0x02002A40 @TODO ptr +.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 @@ -382,6 +423,9 @@ _08051D28: .4byte gScreenTransition thumb_func_start sub_08051D2C sub_08051D2C: @ 0x08051D2C +.ifdef DEMO + .incbin "baserom_demo.gba", 0x051df4, 0x14 @nocheckin +.else push {lr} movs r0, #7 movs r1, #8 @@ -390,6 +434,7 @@ sub_08051D2C: @ 0x08051D2C bl InitScreen pop {pc} .align 2, 0 +.endif thumb_func_start InitializeEntities InitializeEntities: @ 0x08051D40 diff --git a/asm/object3A.s b/asm/object3A.s index a884af27..859edc8b 100644 --- a/asm/object3A.s +++ b/asm/object3A.s @@ -223,7 +223,11 @@ _0808C828: bl sub_0801E49C pop {r4, r5, r6, pc} .align 2, 0 +.ifdef DEMO +_0808C83C: .4byte gUnk_02036BB0 +.else _0808C83C: .4byte gUnk_02036BB8 +.endif thumb_func_start sub_0808C840 sub_0808C840: @ 0x0808C840 diff --git a/asm/playerItem/playerItem15.s b/asm/playerItem/playerItem15.s index 90211b70..d8aeb205 100644 --- a/asm/playerItem/playerItem15.s +++ b/asm/playerItem/playerItem15.s @@ -199,3 +199,27 @@ _080A31FC: _080A3200: pop {r4, r5, pc} .align 2, 0 + + + + +// DEMO only functions + +.ifdef DEMO +// @nocheckin +thumb_func_start HandleChooseDemoScreen +HandleChooseDemoScreen: @ 0x080A2E18 +.incbin "baserom_demo.gba", 0x0a2e18, 0x28 + +thumb_func_start sub_080A2E40 +sub_080A2E40: @ 0x080A2E40 +.incbin "baserom_demo.gba", 0x0a2e40, 0x14c + +thumb_func_start sub_080A2F8C +sub_080A2F8C: @ 0x080A2F8C +.incbin "baserom_demo.gba", 0x0A2F8C, 0x44 + +thumb_func_start sub_080A2FD0 +sub_080A2FD0: @ 0x080A2FD0 +.incbin "baserom_demo.gba", 0x0A2FD0, 0x210 +.endif diff --git a/asm/sub_0807CA18.s b/asm/sub_0807CA18.s index a4a4631a..34669d14 100644 --- a/asm/sub_0807CA18.s +++ b/asm/sub_0807CA18.s @@ -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 0x02002A40 @TODO ptr +_0807CA3C: .4byte 0x0811DFF4 @TODO ptr +_0807CA40: .4byte 0x0811EF10 @TODO ptr +_0807CA44: .4byte 0x000004B4 +_0807CA48: .4byte 0xFFFFD8F1 +_0807CA4C: .4byte 0x02000010 @TODO ptr +_0807CA50: .4byte 0x0811DFF9 @TODO ptr +.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 diff --git a/data/const/playerItem/playerItem15.s b/data/const/playerItem/playerItem15.s index 4e7e02f0..b97be21a 100644 --- a/data/const/playerItem/playerItem15.s +++ b/data/const/playerItem/playerItem15.s @@ -7,6 +7,19 @@ gUnk_08127270:: @ 08127270 .4byte sub_080A3084 .4byte sub_080A310C - + gUnk_08127278:: @ 08127278 .incbin "baserom.gba", 0x127278, 0x0000008 + +.ifdef DEMO +@ TODO choose demo screen +something: + .4byte sub_080A2E40 + .4byte sub_080A2FD0 + .4byte sub_080A2F8C + +something2:: +.incbin "baserom_demo.gba", 0x127c98, 0x38 @nocheckin +.endif + + diff --git a/data/data_08132B30.s b/data/data_08132B30.s index 43525397..4536feb3 100644 --- a/data/data_08132B30.s +++ b/data/data_08132B30.s @@ -2477,6 +2477,7 @@ gUnk_0813A7F0:: @ 0813A7F0 .4byte gUnk_08133FDC .4byte gUnk_08133FDC .4byte gUnk_08133FDC + .ifndef DEMO .4byte gUnk_08139108 .4byte gUnk_081391D0 .4byte gUnk_081391FC @@ -2485,6 +2486,7 @@ gUnk_0813A7F0:: @ 0813A7F0 .4byte gUnk_08133FDC .4byte gUnk_08133FDC .4byte gUnk_08133FDC + .endif .4byte gUnk_081395D8 .4byte gUnk_08139714 .4byte gUnk_08138848 diff --git a/data/sprite_table.s b/data/sprite_table.s index 0d54adbb..eee54c38 100644 --- a/data/sprite_table.s +++ b/data/sprite_table.s @@ -9,3 +9,8 @@ gUnk_089FB770:: @ 089FB770 gUnk_089FB780:: @ 089FB780 .incbin "baserom.gba", 0x9FB780, 0x0000F44 + +@ More sprites in demo +.ifdef DEMO + .incbin "baserom_demo.gba", 0x9FD0F4, 0x984c +.endif diff --git a/include/structures.h b/include/structures.h index 4b5d3e17..a94d66ce 100644 --- a/include/structures.h +++ b/include/structures.h @@ -30,6 +30,8 @@ typedef struct { s32 signature; u8 field_0x4; u8 listenForKeyPresses; + u8 field_0x6; + u8 field_0x7; } struct_02000010; extern struct_02000010 gUnk_02000010; diff --git a/linker.ld b/linker.ld index f093f9f7..bdb25db7 100644 --- a/linker.ld +++ b/linker.ld @@ -152,10 +152,15 @@ SECTIONS { . = 0x00036A38; gCurrentWindow = .; . = 0x00036A40; gNewWindow = .; . = 0x00036A50; gEEPROMConfig = .; + . = 0x00036A50; gUnk_02036A50 = .; /* DEMO is 8 bytes earlier due to missing eeprom*/ . = 0x00036A58; gUnk_02036A58 = .; - . = 0x00036AD8; gUnk_02036AD8 = .; + . = 0x00036AD0; gUnk_02036AD0 = .; /* DEMO is 8 bytes earlier due to missing eeprom*/ + . = 0x00036AD8; gUnk_02036AD8 = .; + . = 0x00036BB0; gUnk_02036BB0 = .; /* DEMO is 8 bytes earlier due to missing eeprom*/ . = 0x00036BB8; gUnk_02036BB8 = .; + . = 0x00036BB8; gMPlayTracksDEMO = .; /* DEMO is 8 bytes earlier due to missing eeprom*/ . = 0x00036BC0; gMPlayTracks = .; + . = 0x00038558; gUnk_02038558 = .; /* DEMO is 8 bytes earlier due to missing eeprom*/ . = 0x00038560; gUnk_02038560 = .; . = 0x00040000; } >ewram diff --git a/src/audio.c b/src/audio.c index 580a940e..39e1cfdd 100644 --- a/src/audio.c +++ b/src/audio.c @@ -742,7 +742,11 @@ extern const SongHeader sfx21F; extern const SongHeader sfx220; extern const SongHeader sfx221; +#ifdef DEMO +extern MusicPlayerTrack gMPlayTracksDEMO[]; +#else extern MusicPlayerTrack gMPlayTracks[]; +#endif extern MusicPlayerInfo gMPlayInfos[0x1C]; extern u8 gMPlayMemAccArea[0x10]; @@ -783,6 +787,43 @@ typedef enum { MUSIC_PLAYER_BGM, } MusicPlayerE; + +#ifdef DEMO +const MusicPlayer gMusicPlayers[] = { + [MUSIC_PLAYER_00] = { &gMPlayInfos[0x08], &gMPlayTracksDEMO[0x00], 2, 1 }, + [MUSIC_PLAYER_PLY_VO] = { &gMPlayInfos[0x12], &gMPlayTracksDEMO[0x02], 1, 1 }, + [MUSIC_PLAYER_02] = { &gMPlayInfos[0x13], &gMPlayTracksDEMO[0x03], 1, 1 }, + [MUSIC_PLAYER_03] = { &gMPlayInfos2[0x2], &gMPlayTracksDEMO[0x04], 2, 1 }, + [MUSIC_PLAYER_04] = { &gMPlayInfos[0x1B], &gMPlayTracksDEMO[0x06], 2, 1 }, + [MUSIC_PLAYER_05] = { &gMPlayInfos[0x03], &gMPlayTracksDEMO[0x08], 2, 1 }, + [MUSIC_PLAYER_06] = { &gMPlayInfos[0x07], &gMPlayTracksDEMO[0x0A], 2, 1 }, + [MUSIC_PLAYER_07] = { &gMPlayInfos[0x11], &gMPlayTracksDEMO[0x0C], 2, 1 }, + [MUSIC_PLAYER_08] = { &gMPlayInfos2[0x1], &gMPlayTracksDEMO[0x0E], 2, 1 }, + [MUSIC_PLAYER_09] = { &gMPlayInfos[0x06], &gMPlayTracksDEMO[0x10], 2, 1 }, + [MUSIC_PLAYER_0A] = { &gMPlayInfos[0x14], &gMPlayTracksDEMO[0x12], 2, 1 }, + [MUSIC_PLAYER_0B] = { &gMPlayInfos2[0x3], &gMPlayTracksDEMO[0x14], 2, 1 }, + [MUSIC_PLAYER_0C] = { &gMPlayInfos[0x19], &gMPlayTracksDEMO[0x16], 2, 1 }, + [MUSIC_PLAYER_0D] = { &gMPlayInfos[0x02], &gMPlayTracksDEMO[0x18], 2, 1 }, + [MUSIC_PLAYER_0E] = { &gMPlayInfos[0x0E], &gMPlayTracksDEMO[0x1A], 2, 1 }, + [MUSIC_PLAYER_0F] = { &gMPlayInfos[0x18], &gMPlayTracksDEMO[0x1C], 2, 1 }, + [MUSIC_PLAYER_10] = { &gMPlayInfos[0x05], &gMPlayTracksDEMO[0x1E], 2, 1 }, + [MUSIC_PLAYER_11] = { &gMPlayInfos[0x1A], &gMPlayTracksDEMO[0x20], 2, 1 }, + [MUSIC_PLAYER_12] = { &gMPlayInfos[0x0D], &gMPlayTracksDEMO[0x22], 2, 1 }, + [MUSIC_PLAYER_13] = { &gMPlayInfos[0x00], &gMPlayTracksDEMO[0x24], 2, 1 }, + [MUSIC_PLAYER_14] = { &gMPlayInfos[0x0A], &gMPlayTracksDEMO[0x26], 2, 1 }, + [MUSIC_PLAYER_15] = { &gMPlayInfos[0x0C], &gMPlayTracksDEMO[0x28], 2, 1 }, + [MUSIC_PLAYER_16] = { &gMPlayInfos[0x17], &gMPlayTracksDEMO[0x2A], 2, 1 }, + [MUSIC_PLAYER_17] = { &gMPlayInfos[0x01], &gMPlayTracksDEMO[0x2C], 2, 1 }, + [MUSIC_PLAYER_18] = { &gMPlayInfos[0x0B], &gMPlayTracksDEMO[0x2E], 2, 1 }, + [MUSIC_PLAYER_19] = { &gMPlayInfos[0x15], &gMPlayTracksDEMO[0x30], 2, 1 }, + [MUSIC_PLAYER_1A] = { &gMPlayInfos[0x09], &gMPlayTracksDEMO[0x32], 2, 1 }, + [MUSIC_PLAYER_1B] = { &gMPlayInfos2[0x0], &gMPlayTracksDEMO[0x34], 2, 1 }, + [MUSIC_PLAYER_1C] = { &gMPlayInfos[0x0F], &gMPlayTracksDEMO[0x36], 2, 1 }, + [MUSIC_PLAYER_1D] = { &gMPlayInfos[0x16], &gMPlayTracksDEMO[0x38], 2, 1 }, + [MUSIC_PLAYER_1E] = { &gMPlayInfos[0x04], &gMPlayTracksDEMO[0x3A], 0xc, 0 }, + [MUSIC_PLAYER_BGM] = { &gMPlayInfos[0x10], &gMPlayTracksDEMO[0x46], 0xc, 0 }, +}; +#else const MusicPlayer gMusicPlayers[] = { [MUSIC_PLAYER_00] = { &gMPlayInfos[0x08], &gMPlayTracks[0x00], 2, 1 }, [MUSIC_PLAYER_PLY_VO] = { &gMPlayInfos[0x12], &gMPlayTracks[0x02], 1, 1 }, @@ -817,6 +858,7 @@ const MusicPlayer gMusicPlayers[] = { [MUSIC_PLAYER_1E] = { &gMPlayInfos[0x04], &gMPlayTracks[0x3A], 0xc, 0 }, [MUSIC_PLAYER_BGM] = { &gMPlayInfos[0x10], &gMPlayTracks[0x46], 0xc, 0 }, }; +#endif const Song gSongTable[] = { [SFX_NONE] = { &sfxNone, MUSIC_PLAYER_BGM, MUSIC_PLAYER_BGM }, diff --git a/src/code_0805436C.c b/src/code_0805436C.c index 61dfa3e0..21934343 100644 --- a/src/code_0805436C.c +++ b/src/code_0805436C.c @@ -265,5 +265,7 @@ u32 CreateItemDrop(Entity* arg0, u32 itemID, u32 itemParameter) { */ void sub_08054870(void) { + #ifndef DEMO gUnk_080FE2A0[gMenu.menuType](); + #endif } diff --git a/src/code_0805F9A0.c b/src/code_0805F9A0.c index 856357d5..612c4371 100644 --- a/src/code_0805F9A0.c +++ b/src/code_0805F9A0.c @@ -4,9 +4,14 @@ #include "functions.h" extern u16 gUnk_081092D4; -extern u8 gUnk_02036AD8; extern u8 gUnk_081094CE; +#ifdef DEMO +extern u8 gUnk_02036AD0; +extern u8 gUnk_02036A50; +#else +extern u8 gUnk_02036AD8; extern u8 gUnk_02036A58; +#endif extern void* gUnk_081092AC[]; typedef struct { @@ -59,7 +64,11 @@ void sub_0805F820(WStruct* r0, u32* r1) { VStruct* temp3; if (r0->unk4 - r0->unk6 > 0) { + #ifdef DEMO + sub_08002724(r1, &gUnk_02036A50); + #else sub_08002724(r1, &gUnk_02036A58); + #endif if (r0->unk1 == 0) { u32 tmp = sub_0805F7A0(*r1); uVar6 = tmp & 0xf; @@ -77,7 +86,11 @@ void sub_0805F820(WStruct* r0, u32* r1) { uVar3 = uVar4; } + #ifdef DEMO + puVar8 = &gUnk_02036A50 + uVar6; + #else puVar8 = &gUnk_02036A58 + uVar6; + #endif temp2 = r0->unk8; temp = gUnk_0810942E[r0->unk3].filler0[r0->unk2 * 2]; uVar7 = r0->unk6; @@ -120,23 +133,40 @@ void sub_0805F918(u32 idx, u32 idx2, void* dest) { u8* temp; u8* temp2; + #ifdef DEMO + MemFill32(sub_0805F8F8(idx2), &gUnk_02036AD0, 0xe0); + #else MemFill32(sub_0805F8F8(idx2), &gUnk_02036AD8, 0xe0); + #endif puVar1 = gUnk_081092AC[idx]; temp = &gUnk_081094CE + idx2 * 0xc0; idx3 = 0; for (i = 0; i < 3; i++) { + #ifdef DEMO + puVar2 = &gUnk_02036A50; + sub_08002724(puVar1, &gUnk_02036A50); + #else puVar2 = &gUnk_02036A58; sub_08002724(puVar1, &gUnk_02036A58); + #endif puVar1 += 0x40; for (j = 0; j < 8; j++) { + #ifdef DEMO + sub_080026C4(puVar2, &gUnk_02036AD0, temp, idx3); + #else sub_080026C4(puVar2, &gUnk_02036AD8, temp, idx3); + #endif puVar2++; idx3++; } } + #ifdef DEMO + LoadResourceAsync((const void*)&gUnk_02036AD0, (u32)dest, 0xe0); + #else LoadResourceAsync((const void*)&gUnk_02036AD8, (u32)dest, 0xe0); + #endif } u32 sub_0805F9A0(u32 r0) { diff --git a/src/eeprom.c b/src/eeprom.c index 4ea218b3..945c788f 100644 --- a/src/eeprom.c +++ b/src/eeprom.c @@ -1,6 +1,10 @@ #include "global.h" #include "gba/eeprom.h" +#ifdef DEMO +const u8 unk[] = {0xff, 0xff, 0xff, 0xff}; +const u8 padding[0x18] = {}; +#else typedef struct EEPROMConfig { u32 unk_00; u16 size; @@ -9,6 +13,7 @@ typedef struct EEPROMConfig { // u8 filler[3]; } EEPROMConfig; + const char EEPROM_V124[] = "EEPROM_V124"; extern const EEPROMConfig* gEEPROMConfig; const EEPROMConfig gEEPROMConfig512 = { 0x200, 0x40, 0x300, 0x6 }; @@ -16,6 +21,8 @@ const EEPROMConfig gEEPROMConfig8k = { 0x2000, 0x400, 0x300, 0xe }; u16 EEPROMWrite(u16, const u16*, u8); + + u16 EEPROMConfigure(u16 unk_1) { u16 ret; @@ -248,3 +255,5 @@ u16 EEPROMWrite0_8k_Check(u16 address, const u16* data) { } const char thing[0x1c] = "\xff\xff\xff\xff"; + +#endif \ No newline at end of file diff --git a/src/game.c b/src/game.c index 49fe233f..4117416d 100644 --- a/src/game.c +++ b/src/game.c @@ -61,10 +61,15 @@ void sub_0805212C(void) { gMenu.transitionTimer--; if (gMenu.transitionTimer == 0) { sub_080520C4(2); + #ifdef DEMO + SoundReq(0x80080000); + DoFade(7,4); + #else sub_08052418(0, 0); gScreen.lcd.displayControl |= 0x600; gFadeControl.field_0x4 = 0xffff; DoFade(4, 0x10); + #endif } } } else { @@ -72,6 +77,13 @@ void sub_0805212C(void) { } } +#ifdef DEMO +void sub_080521A0(void) { + if (gFadeControl.active == 0) { + DoSoftReset(); + } +} +#else void sub_080521A0(void) { s32 temp3; u32 temp2; @@ -147,6 +159,7 @@ void sub_080521A0(void) { break; } } +#endif void sub_080522F4(void) { switch (gMenu.menuType) { diff --git a/src/intro.c b/src/intro.c index 8eca40dc..33e87e6c 100644 --- a/src/intro.c +++ b/src/intro.c @@ -104,6 +104,24 @@ static void HandleNintendoCapcomLogos(void) { gScreen.bg.bg1Updated = 1; DoFade(6, 8); advance = ADVANCE_NONE; + #ifdef DEMO + if (gUnk_02000010.listenForKeyPresses == 0) { + if ((gInput.heldKeys & 0x204) == 0x204) { // TODO + gUnk_02000010.field_0x7 = 1; + SoundReq(0x73); + } + else { + if ((gInput.heldKeys & 0x104) == 0x104) { // TODO + gUnk_02000010.field_0x7 = 2; + SoundReq(0xcd); + } + else { + gUnk_02000010.field_0x7 = 0; + } + } + } + #endif + } else { if (advance == ADVANCE_TIMER_EXPIRED) { advance = ADVANCE_KEY_PRESSED; diff --git a/src/main.c b/src/main.c index 78e9fdd0..3fa19e65 100644 --- a/src/main.c +++ b/src/main.c @@ -12,13 +12,20 @@ extern void HandleIntroScreen(void); extern void HandleChooseFileScreen(void); +extern void HandleChooseDemoScreen(void); extern void HandleGameplayScreen(void); extern void HandleGameOverScreen(void); extern void HandleCreditsScreen(void); extern void HandleDebugTextScreen(void); static void (*const sScreenHandlers[])(void) = { - [SCREEN_INTRO] = HandleIntroScreen, [SCREEN_CHOOSE_FILE] = HandleChooseFileScreen, + [SCREEN_INTRO] = HandleIntroScreen, + #ifdef DEMO + [SCREEN_CHOOSE_FILE] = HandleChooseDemoScreen, + #else + [SCREEN_CHOOSE_FILE] = HandleChooseFileScreen, + #endif + [SCREEN_GAMEPLAY] = HandleGameplayScreen, [SCREEN_GAME_OVER] = HandleGameOverScreen, [SCREEN_CREDITS] = HandleCreditsScreen, [SCREEN_DEBUG_TEXT] = HandleDebugTextScreen, }; @@ -83,7 +90,11 @@ void AgbMain(void) { // Interrupt handlers that are loaded into RAM. extern u8 sub_080B197C[]; extern u8 gUnk_030056F0[]; +#ifdef DEMO +extern u8 gUnk_02038558[]; +#else extern u8 gUnk_02038560[]; +#endif extern u8 gUnk_080B2CD8[]; extern u8 gUnk_080B2CD8_2[]; extern u8 gUnk_080B2CD8_3[]; @@ -105,7 +116,11 @@ static void sub_08055F70(void) { size = (u32)gUnk_080B2CD8_2 - (u32)gUnk_080B2CD8_3; if (size != 0) { + #ifdef DEMO + MemCopy(gUnk_080B2CD8_3, gUnk_02038558, size); + #else MemCopy(gUnk_080B2CD8_3, gUnk_02038560, size); + #endif } DispReset(0); diff --git a/src/room.c b/src/room.c index c2b1f07b..5e9deac0 100644 --- a/src/room.c +++ b/src/room.c @@ -2161,8 +2161,18 @@ u32 sub_0804CD0C() { return 1; } +#ifdef DEMO +void nullsub_251() { + if (gUnk_02000000->saveFileId != 0 && GetInventoryValue(0x40) == 0) { + SetTileType(0x365,0x349,1); + SetTileType(0x365,0x34a,1); + SetTileType(0x365,0x34b,1); + } +} +#else void nullsub_251() { } +#endif u32 sub_0804CD14() { return 1; @@ -2288,8 +2298,18 @@ u32 sub_0804CE38() { return 1; } +#ifdef DEMO +void nullsub_262() { + if (GetInventoryValue(0x41) == 0) { + SetTileType(0x365,0x287,2); + SetTileType(0x365,0x288,2); + SetTileType(0x365,0x289,2); + } +} +#else void nullsub_262() { } +#endif u32 sub_0804CE40() { return 1; @@ -5049,6 +5069,10 @@ void sub_0804EC00(void) { if ((s32)gSave.windcrests > -1) { LoadRoomEntityList(&gUnk_080F4E10); } + #ifdef DEMO + SetTileType(0x177,0x5b4,1); + SetTileType(0x177,0x5f4,1); + #endif } void sub_0804EC98(void) { diff --git a/src/save.c b/src/save.c index 749b6730..8b751914 100644 --- a/src/save.c +++ b/src/save.c @@ -41,10 +41,20 @@ u32 DataCompare(u32 address, const void* data, u32 size); const u16 gUnk_0811E454[] = { 0x0, 0x0, 0x100, 0x200, 0x300, 0x400, 0x500, 0x5C0, 0x680, 0x740, 0x800, 0x8C0, 0x9C0, 0xA80 }; -const char gUnk_0811E470[6] = "LINK"; +const char gUnk_0811E470[4] = "LINK"; + +#ifdef DEMO +const u8 unknown[] = { 0x0, 0x0f, 0x0a, 0x0a, 0x0f, 0x0f, 0x0f, 0x08, 0x05, 0x05, 0x00, 0x00 }; +#else +const u8 padding[2] = {0,0}; +#endif static SaveResult (*const sSaveHandlers[])(u32) = { HandleSaveInit, HandleSaveInProgress, HandleSaveDone }; + +#ifdef DEMO +asm(".incbin \"baserom_demo.gba\", 0x11e010, 0xf0c"); // @nocheckin +#else static const char sSignatureLong[32] = "AGBZELDA:THE MINISH CAP:ZELDA 5"; // Save file is untouched @@ -60,7 +70,7 @@ const SaveFileEEPROMAddresses gSaveFileEEPROMAddresses[] = { { 0x500, 0x30, 0x10 { 0x20, 0, 0, 0, 0x1000 }, { 0x20, 0x60, 0x1060, 0xf80, 0x1f80 }, { 0x8, 0xfa0, 0x1fa0, 0xfa0, 0x1fa0 } }; - +#endif void sub_0807CD9C() { sub_080530C8(); } @@ -122,7 +132,12 @@ SaveResult HandleSaveDone(u32 arg0) { return result; } + u32 InitSaveData(void) { +#ifdef DEMO + CpuSet(NULL,&gSave,0x4b4); + return 1; +#else const SaveFileEEPROMAddresses* eepromAddresses; u32 error; @@ -147,40 +162,71 @@ u32 InitSaveData(void) { DataWrite(eepromAddresses->address1, sSignatureLong, eepromAddresses->size); } return 1; +#endif } u32 WriteSaveFile(u32 index, SaveFile* saveFile) { + #ifdef DEMO + return 1; + #else return DataDoubleWriteWithStatus(index, saveFile); + #endif } u32 Write_02000000(struct_02000000* arg0) { + #ifdef DEMO + return 1; + #else return DataDoubleWriteWithStatus(3, arg0); + #endif } u32 sub_0807CF1C(u8* arg0) { + #ifdef DEMO + return 1; + #else return DataDoubleWriteWithStatus(5, arg0); + #endif } s32 ReadSaveFile(u32 index, SaveFile* saveFile) { + #ifdef DEMO + return 1; + #else return DataDoubleReadWithStatus(index, saveFile); + #endif } u32 Read_02000000(struct_02000000* arg0) { + #ifdef DEMO + return 0; + #else return DataDoubleReadWithStatus(3, arg0); + #endif } u32 sub_0807CF3C(u8* arg0) { + #ifdef DEMO + return 0; + #else return DataDoubleReadWithStatus(5, arg0); + #endif } + + void SetFileStatusDeleted(u32 index) { + #ifndef DEMO const SaveFileEEPROMAddresses* eepromAddresses; eepromAddresses = GetSaveFileEEPROMAddresses(index); WriteSaveFileStatus(eepromAddresses->checksum2, &sSaveDescDeleted); WriteSaveFileStatus(eepromAddresses->checksum1, &sSaveDescDeleted); + #endif } + +#ifndef DEMO void SetFileStatusInit(u32 index) { const SaveFileEEPROMAddresses* eepromAddresses; const SaveFileStatus* fileStatus; @@ -406,3 +452,4 @@ bool32 DataCompare(u32 address, const void* data, u32 size) { } return TRUE; } +#endif \ No newline at end of file diff --git a/src/sub_080A3B84.c b/src/sub_080A3B84.c index b4df18d0..af806c36 100644 --- a/src/sub_080A3B84.c +++ b/src/sub_080A3B84.c @@ -7,6 +7,7 @@ extern void (*const gUnk_081280C4[])(); void DrawKinstoneMenu(void) { + #ifndef DEMO gScreenTransition.field_0x24[8] = 2; FlushSprites(); gUnk_081280C4[gMenu.menuType](); @@ -18,6 +19,7 @@ void DrawKinstoneMenu(void) { sub_080AD9B0(); sub_080AD918(); gScreenTransition.field_0x24[8] = 0; + #endif } extern void gUnk_081280DC; diff --git a/tmc_demo.sha1 b/tmc_demo.sha1 new file mode 100644 index 00000000..c96b5d47 --- /dev/null +++ b/tmc_demo.sha1 @@ -0,0 +1 @@ +63fcad218f9047b6a9edbb68c98bd0dec322d7a1 tmc_demo.gba diff --git a/tmc_eu.sha1 b/tmc_eu.sha1 new file mode 100644 index 00000000..878d050b --- /dev/null +++ b/tmc_eu.sha1 @@ -0,0 +1 @@ +cff199b36ff173fb6faf152653d1bccf87c26fb7 tmc_eu.gba diff --git a/tmc_jp.sha1 b/tmc_jp.sha1 new file mode 100644 index 00000000..6ffa3cda --- /dev/null +++ b/tmc_jp.sha1 @@ -0,0 +1 @@ +6c5404a1effb17f481f352181d0f1c61a2765c5d tmc_jp.gba From 57ab4df1a088c64e29644f6a26b13e76843ec7c0 Mon Sep 17 00:00:00 2001 From: octorock <79596758+octorock@users.noreply.github.com> Date: Thu, 17 Jun 2021 20:35:06 +0200 Subject: [PATCH 15/74] Add JP variant --- Makefile | 5 +- asm/code_080043E8.s | 5 + asm/code_08018500.s | 8 + asm/code_0801967C.s | 2 + asm/code_0801D79C.s | 4 + asm/code_080526F8.s | 10 + asm/code_08054C04.s | 4 + asm/code_08078778.s | 4 + asm/code_0807F0D8.s | 2 + asm/figurineDevice.s | 29 + asm/fileScreen.s | 7 +- asm/manager37.s | 4 + asm/managerF.s | 3 + .../sittingPerson/sub_0806387C.inc | 16 + .../sittingPerson/sub_0806390C.inc | 8 + asm/non_matching/sub_0804C128.inc | 4 + asm/non_matching/sub_0804DE00.inc | 4 + asm/non_matching/sub_0804E150.inc | 4 + asm/octorokBoss.s | 4 + asm/playerItem/playerItem15.s | 9 +- asm/playerItem/playerItemSwordSpin.s | 4 + asm/vaatiArm.s | 8 + asm/vaatiWrath.s | 6 + asm/windTribeTeleporter.s | 4 + data/animations/npc/guard.s | 10 + data/const/enemy/gyorgFemale.s | 21 + data/const/manager/managerF.s | 2 + data/const/npc/forestMinish.s | 11 + data/const/npc/kid.s | 5 + data/const/npc/townsperson.s | 20 + data/const/npc/windTribespeople.s | 10 + data/const/object/object96.s | 4 + data/const/object/pinwheel.s | 4 + data/const/playerItem/playerItem15.s | 2 +- data/data_080B3740.s | 5 + data/data_080B4410.s | 5 + data/data_080B7B74.s | 5 + data/data_080C93E0.s | 45 + data/data_080D5360.s | 354 +++++++- data/data_080FC8A4.s | 30 + data/data_080FEEB8.s | 113 ++- data/data_0812AA88.s | 795 ++++++++++++++++- data/data_081320FC.s | 4 + data/data_08132B30.s | 13 + data/map_headers.s | 804 ++++++++++++++++++ data/metatile_headers.s | 70 ++ data/scripts/script_0800939A.inc | 13 + data/scripts/script_08009464.inc | 4 + data/scripts/script_080098D4.inc | 10 +- data/scripts/script_08009E88.inc | 4 + data/scripts/script_0800B200.inc | 8 + data/scripts/script_0800B308.inc | 8 + data/scripts/script_0800D6D0.inc | 8 + data/scripts/script_0800D6F0.inc | 8 + data/scripts/script_0800E0BC.inc | 12 +- data/scripts/script_0800F554.inc | 10 + data/scripts/script_0800F724.inc | 14 + data/scripts/script_0800FD0C.inc | 8 + data/scripts/script_0800FF74.inc | 24 + data/scripts/script_08010264.inc | 2 + data/scripts/script_08010964.inc | 6 + data/scripts/script_08011128.inc | 7 + data/scripts/script_0801194C.inc | 5 + data/scripts/script_08011C7C.inc | 20 +- data/scripts/script_08012430.inc | 2 + data/scripts/script_08012C68.inc | 5 + data/scripts/script_08012CD8.inc | 4 + data/scripts/script_08012D70.inc | 4 + data/scripts/script_08014450.inc | 7 + data/scripts/script_080145E8.inc | 7 + data/scripts/script_08014CDC.inc | 4 + data/scripts/script_08014E14.inc | 4 + data/scripts/script_080157AC.inc | 4 + data/scripts/script_08015B34.inc | 4 + data/scripts/script_08015BA8.inc | 4 + data/scripts/script_08015BE8.inc | 4 + data/scripts/script_08016384.inc | 4 + data/strings.s | 4 + data/tileset_headers.s | 61 ++ src/enemy/businessScrub.c | 2 + src/fileScreen.c | 2 +- src/intro.c | 33 + src/manager/manager7.c | 2 + src/npc/castleMaid.c | 8 + src/npc/castorWildsStatue.c | 4 + src/npc/dog.c | 28 + src/npc/gina.c | 2 + src/npc/npc4E.c | 26 + src/room.c | 127 ++- src/save.c | 7 +- 90 files changed, 3002 insertions(+), 22 deletions(-) diff --git a/Makefile b/Makefile index f18c9cb9..a28bdc1f 100644 --- a/Makefile +++ b/Makefile @@ -18,11 +18,12 @@ BUILD_NAME := tmc else ifeq ($(GAME_VERSION), DEMO) GAME_CODE := BZHE -BUILD_NAME := tmc +BUILD_NAME := tmc_demo else ifeq ($(GAME_VERSION), JP) GAME_CODE := BZMJ -BUILD_NAME := tmc +BUILD_NAME := tmc_jp +GAME_LANGUAGE := JAPANESE else $(error unknown version $(GAME_VERSION)) endif diff --git a/asm/code_080043E8.s b/asm/code_080043E8.s index dc71580b..590a4825 100644 --- a/asm/code_080043E8.s +++ b/asm/code_080043E8.s @@ -2257,8 +2257,13 @@ 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 .incbin "baserom.gba", 0x007D07, 0x00000CF +.endif .endif non_word_aligned_thumb_func_start sub_08007DD6 diff --git a/asm/code_08018500.s b/asm/code_08018500.s index bec8ac59..adb6ee66 100644 --- a/asm/code_08018500.s +++ b/asm/code_08018500.s @@ -169,7 +169,11 @@ sub_0801862C: @ 0x0801862C strb r0, [r1, #0xc] ldr r5, _08018650 @ =gScreenTransition adds r0, r5, #0 +.ifdef JP + adds r0, #0x34 +.else adds r0, #0x35 +.endif strb r2, [r0] ldr r4, _08018654 @ =gUnk_02033AB8 ldrb r0, [r4] @@ -627,7 +631,11 @@ _080189D0: beq _080189E4 movs r0, #0x80 lsls r0, r0, #1 +.ifdef JP + movs r1, #0x77 +.else movs r1, #0x79 +.endif bl SetLocalFlagByOffset ldr r0, _080189E8 @ =gUnk_080FEE38 bl LoadRoomEntityList diff --git a/asm/code_0801967C.s b/asm/code_0801967C.s index 347a7ffd..3c978fd9 100644 --- a/asm/code_0801967C.s +++ b/asm/code_0801967C.s @@ -985,10 +985,12 @@ _08019DE4: bne _08019DEE b _0801A2A4 _08019DEE: +.ifndef JP ldrb r0, [r4, #0xa] cmp r0, #0 beq _08019DF6 b _0801A2A4 +.endif _08019DF6: ldr r2, _08019E40 @ =gPlayerEntity ldrb r0, [r2, #0x14] diff --git a/asm/code_0801D79C.s b/asm/code_0801D79C.s index 4cbc3a6f..656da67f 100644 --- a/asm/code_0801D79C.s +++ b/asm/code_0801D79C.s @@ -2190,6 +2190,9 @@ _0801E8D2: thumb_func_start sub_0801E8D4 sub_0801E8D4: @ 0x0801E8D4 +.ifdef JP + .incbin "baserom_jp.gba", 0x01E8B8, 0x90 @nocheckin +.else push {r4, r5, lr} movs r5, #0xa _0801E8D8: @@ -2289,6 +2292,7 @@ _0801E990: pop {r4, r5, pc} .align 2, 0 _0801E998: .4byte gUnk_02002C8E +.endif thumb_func_start sub_0801E99C sub_0801E99C: @ 0x0801E99C diff --git a/asm/code_080526F8.s b/asm/code_080526F8.s index ff09831e..a75e9e39 100644 --- a/asm/code_080526F8.s +++ b/asm/code_080526F8.s @@ -620,7 +620,11 @@ sub_08052BB8: @ 0x08052BB8 push {lr} ldr r0, _08052BE0 @ =gScreenTransition adds r2, r0, #0 +.ifdef JP + adds r2, #0x34 +.else adds r2, #0x35 +.endif ldrb r1, [r2] adds r3, r0, #0 cmp r1, #0 @@ -649,6 +653,7 @@ _08052BEE: bl TextBoxAtYPosition pop {pc} +.ifndef JP thumb_func_start sub_08052BF8 sub_08052BF8: @ 0x08052BF8 push {lr} @@ -682,6 +687,7 @@ _08052C30: .align 2, 0 _08052C34: .4byte gScreenTransition _08052C38: .4byte gArea +.endif thumb_func_start sub_08052C3C sub_08052C3C: @ 0x08052C3C @@ -1309,7 +1315,11 @@ _0805310C: _0805311A: movs r0, #0x80 lsls r0, r0, #1 +.ifdef JP + movs r1, #0x9b +.else movs r1, #0x9c +.endif bl CheckLocalFlagByOffset cmp r0, #0 beq _0805312C diff --git a/asm/code_08054C04.s b/asm/code_08054C04.s index 83cc8d19..f5aee129 100644 --- a/asm/code_08054C04.s +++ b/asm/code_08054C04.s @@ -383,7 +383,11 @@ sub_08054EB8: @ 0x08054EB8 adds r1, #0x35 movs r0, #1 strb r0, [r1] +.ifdef JP + movs r0, #0x77 +.else movs r0, #0x79 +.endif strh r0, [r3, #0x3e] adds r0, r3, #0 movs r1, #6 diff --git a/asm/code_08078778.s b/asm/code_08078778.s index 323f2c4f..8f01dad2 100644 --- a/asm/code_08078778.s +++ b/asm/code_08078778.s @@ -312,7 +312,11 @@ sub_08078AA8: @ 0x08078AA8 strb r2, [r3, #0xc] ldr r2, _08078ABC @ =gScreenTransition strh r0, [r2, #0x36] +.ifdef JP + adds r2, #0x34 +.else adds r2, #0x35 +.endif strb r1, [r2] bx lr .align 2, 0 diff --git a/asm/code_0807F0D8.s b/asm/code_0807F0D8.s index 5e4b35af..8dc21086 100644 --- a/asm/code_0807F0D8.s +++ b/asm/code_0807F0D8.s @@ -1582,6 +1582,7 @@ sub_0807FBFC: @ 0x0807FBFC .align 2, 0 _0807FC20: .4byte gSave +.ifndef JP thumb_func_start sub_0807FC24 sub_0807FC24: @ 0x0807FC24 push {lr} @@ -1597,6 +1598,7 @@ _0807FC32: pop {pc} .align 2, 0 _0807FC3C: .4byte gRoomControls +.endif thumb_func_start UpdateScroll UpdateScroll: @ 0xUpdateScroll diff --git a/asm/figurineDevice.s b/asm/figurineDevice.s index 9d02534e..2d3400de 100644 --- a/asm/figurineDevice.s +++ b/asm/figurineDevice.s @@ -428,6 +428,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 +445,7 @@ _08087EF0: b _08087F16 .align 2, 0 _08087F00: .4byte 0xFFFFFEFF +.endif _08087F04: adds r0, r4, #0 adds r1, r3, #0 @@ -512,6 +521,9 @@ _08087F90: .4byte 0x00004022 thumb_func_start sub_08087F94 sub_08087F94: @ 0x08087F94 +.ifdef JP + .incbin "baserom_jp.gba", 0x087dac, 0xb0 @TODO disassemble +.else push {r4, r5, r6, r7, lr} adds r5, r0, #0 adds r4, r1, #0 @@ -596,6 +608,7 @@ _08088028: bl SoundReq _08088032: pop {r4, r5, r6, r7, pc} +.endif thumb_func_start sub_08088034 sub_08088034: @ 0x08088034 @@ -667,7 +680,11 @@ _080880A4: _080880B2: movs r0, #0x80 lsls r0, r0, #1 +.ifdef JP + movs r1, #0x9b +.else movs r1, #0x9c +.endif bl CheckLocalFlagByOffset cmp r0, #0 beq _080880C4 @@ -759,6 +776,9 @@ _0808815C: .4byte gSave thumb_func_start sub_08088160 sub_08088160: @ 0x08088160 +.ifdef JP + .incbin "baserom_jp.gba", 0x087f88, 0xe8 +.else push {r4, lr} adds r2, r0, #0 lsls r1, r1, #3 @@ -793,7 +813,9 @@ _08088194: b _08088262 _0808819E: ldrh r0, [r1, #4] +.ifndef JP bl CheckKinstoneFused +.endif b _08088262 _080881A6: ldrh r0, [r1, #4] @@ -886,6 +908,7 @@ _08088266: _08088268: adds r0, r4, #0 pop {r4, pc} +.endif thumb_func_start sub_0808826C sub_0808826C: @ 0x0808826C @@ -1366,6 +1389,9 @@ _08088618: .4byte gSave thumb_func_start sub_0808861C sub_0808861C: @ 0x0808861C +.ifdef JP + .incbin "baserom_jp.gba", 0x088420, 0x34 @TODO disassemble +.else push {r4, lr} adds r4, r1, #0 movs r0, #0xa8 @@ -1395,7 +1421,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 +1451,4 @@ _08088678: .align 2, 0 _08088684: .4byte gPlayerEntity _08088688: .4byte gActiveScriptInfo +.endif diff --git a/asm/fileScreen.s b/asm/fileScreen.s index eee2baba..6d31d88d 100755 --- a/asm/fileScreen.s +++ b/asm/fileScreen.s @@ -255,6 +255,9 @@ _08051B5A: bl sub_08078A90 ldr r0, _08051BC8 @ =gUnk_02034490 strb r4, [r0] +.ifdef JP + bl sub_08053178 +.endif adds r0, r5, #0 adds r0, #0x28 ldrb r0, [r0] @@ -262,8 +265,10 @@ _08051B5A: beq _08051B96 bl sub_0801855C _08051B96: +.ifndef JP bl sub_08052BF8 bl sub_08053178 +.endif ldr r0, _08051BCC @ =gRoomVars ldrb r0, [r0] cmp r0, #0 @@ -424,7 +429,7 @@ _08051D28: .4byte gScreenTransition thumb_func_start sub_08051D2C sub_08051D2C: @ 0x08051D2C .ifdef DEMO - .incbin "baserom_demo.gba", 0x051df4, 0x14 @nocheckin + .incbin "baserom_demo.gba", 0x051df4, 0x14 @TODO disassemble .else push {lr} movs r0, #7 diff --git a/asm/manager37.s b/asm/manager37.s index 1068f88c..3d1d80e4 100644 --- a/asm/manager37.s +++ b/asm/manager37.s @@ -34,6 +34,9 @@ _0805DE64: .4byte gUnk_08108DC4 thumb_func_start sub_0805DE68 sub_0805DE68: @ 0x0805DE68 +.ifdef JP + .incbin "baserom_jp.gba", 0x05dcbc, 0x3c @TODO disassemble +.else push {r4, lr} adds r4, r0, #0 movs r0, #0x7b @@ -70,6 +73,7 @@ _0805DE7A: _0805DEAC: .4byte gScreenTransition _0805DEB0: .4byte gSave _0805DEB4: .4byte 0x00001194 +.endif thumb_func_start sub_0805DEB8 sub_0805DEB8: @ 0x0805DEB8 diff --git a/asm/managerF.s b/asm/managerF.s index cded2d58..191c3554 100644 --- a/asm/managerF.s +++ b/asm/managerF.s @@ -851,8 +851,10 @@ _08059540: .align 2, 0 _08059544: .4byte gArea + thumb_func_start sub_08059548 sub_08059548: @ 0x08059548 +.ifndef JP push {lr} movs r1, #6 bl sub_0805E3A0 @@ -871,3 +873,4 @@ _0805955C: .align 2, 0 _08059568: .4byte gPlayerEntity _0805956C: .4byte gInput +.endif diff --git a/asm/non_matching/sittingPerson/sub_0806387C.inc b/asm/non_matching/sittingPerson/sub_0806387C.inc index 1ebc3a3c..7ff53936 100644 --- a/asm/non_matching/sittingPerson/sub_0806387C.inc +++ b/asm/non_matching/sittingPerson/sub_0806387C.inc @@ -2,16 +2,28 @@ push {r4, r5, r6, lr} adds r6, r0, #0 movs r4, #3 +.ifdef JP + movs r0, #0xd7 +.else movs r0, #0xda +.endif bl CheckLocalFlag cmp r0, #0 bne _08063896 movs r4, #0 +.ifdef JP + movs r0, #0xd7 +.else movs r0, #0xda +.endif bl SetLocalFlag b _080638D6 _08063896: +.ifdef JP + movs r0, #0xce +.else movs r0, #0xd1 +.endif bl CheckLocalFlag cmp r0, #0 bne _080638D6 @@ -32,7 +44,11 @@ _080638B2: cmp r5, #0x81 ble _080638D6 movs r4, #2 +.ifdef JP + movs r0, #0xce +.else movs r0, #0xd1 +.endif bl SetLocalFlag ldr r0, _080638FC @ =0x00000A17 movs r1, #1 diff --git a/asm/non_matching/sittingPerson/sub_0806390C.inc b/asm/non_matching/sittingPerson/sub_0806390C.inc index acde9c97..5de14422 100644 --- a/asm/non_matching/sittingPerson/sub_0806390C.inc +++ b/asm/non_matching/sittingPerson/sub_0806390C.inc @@ -2,12 +2,20 @@ push {r4, r5, lr} adds r4, r0, #0 movs r5, #1 +.ifdef JP + movs r0, #0xd6 +.else movs r0, #0xd9 +.endif bl CheckLocalFlag cmp r0, #0 bne _0806392E movs r5, #0 +.ifdef JP + movs r0, #0xd6 +.else movs r0, #0xd9 +.endif bl SetLocalFlag adds r0, r4, #0 adds r0, #0x84 diff --git a/asm/non_matching/sub_0804C128.inc b/asm/non_matching/sub_0804C128.inc index a2f04934..ca770dbf 100644 --- a/asm/non_matching/sub_0804C128.inc +++ b/asm/non_matching/sub_0804C128.inc @@ -116,7 +116,11 @@ _0804C206: bne _0804C250 movs r0, #1 bl sub_080AF250 +.ifdef JP + movs r0, #0x5a +.else movs r0, #0x5c +.endif bl CheckLocalFlag cmp r0, #0 bne _0804C228 diff --git a/asm/non_matching/sub_0804DE00.inc b/asm/non_matching/sub_0804DE00.inc index bbaabc05..c1326428 100644 --- a/asm/non_matching/sub_0804DE00.inc +++ b/asm/non_matching/sub_0804DE00.inc @@ -67,7 +67,11 @@ _0804DE5C: strh r0, [r1, #0x10] bl sub_08052EA0 bl sub_0804AF90 +.ifdef JP + movs r0, #0xca +.else movs r0, #0xcd +.endif bl CheckLocalFlag cmp r0, #0 bne _0804DEC4 diff --git a/asm/non_matching/sub_0804E150.inc b/asm/non_matching/sub_0804E150.inc index b8e67282..c4fcb207 100644 --- a/asm/non_matching/sub_0804E150.inc +++ b/asm/non_matching/sub_0804E150.inc @@ -24,7 +24,11 @@ _0804E17C: ldrh r0, [r4, #2] cmp r0, #0 bne _0804E168 +.ifdef JP + movs r0, #0xce +.else movs r0, #0xd1 +.endif bl CheckLocalFlag cmp r0, #0 bne _0804E1BA diff --git a/asm/octorokBoss.s b/asm/octorokBoss.s index e9a21351..9b5142e6 100644 --- a/asm/octorokBoss.s +++ b/asm/octorokBoss.s @@ -176,6 +176,9 @@ _080352FA: thumb_func_start sub_080352FC sub_080352FC: @ 0x080352FC +.ifdef JP + .incbin "baserom_jp.gba", 0x0352a0, 0x1fc @TODO disassemble +.else push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb @@ -421,6 +424,7 @@ _080354E8: pop {r4, r5, r6, r7, pc} .align 2, 0 _080354F4: .4byte 0x00000109 +.endif thumb_func_start sub_080354F8 sub_080354F8: @ 0x080354F8 diff --git a/asm/playerItem/playerItem15.s b/asm/playerItem/playerItem15.s index d8aeb205..b2d26ba1 100644 --- a/asm/playerItem/playerItem15.s +++ b/asm/playerItem/playerItem15.s @@ -206,20 +206,19 @@ _080A3200: // DEMO only functions .ifdef DEMO -// @nocheckin thumb_func_start HandleChooseDemoScreen HandleChooseDemoScreen: @ 0x080A2E18 -.incbin "baserom_demo.gba", 0x0a2e18, 0x28 +.incbin "baserom_demo.gba", 0x0a2e18, 0x28 @TODO disassemble thumb_func_start sub_080A2E40 sub_080A2E40: @ 0x080A2E40 -.incbin "baserom_demo.gba", 0x0a2e40, 0x14c +.incbin "baserom_demo.gba", 0x0a2e40, 0x14c @TODO disassemble thumb_func_start sub_080A2F8C sub_080A2F8C: @ 0x080A2F8C -.incbin "baserom_demo.gba", 0x0A2F8C, 0x44 +.incbin "baserom_demo.gba", 0x0A2F8C, 0x44 @TODO disassemble thumb_func_start sub_080A2FD0 sub_080A2FD0: @ 0x080A2FD0 -.incbin "baserom_demo.gba", 0x0A2FD0, 0x210 +.incbin "baserom_demo.gba", 0x0A2FD0, 0x210 @TODO disassemble .endif diff --git a/asm/playerItem/playerItemSwordSpin.s b/asm/playerItem/playerItemSwordSpin.s index a9e178dd..f91f2956 100644 --- a/asm/playerItem/playerItemSwordSpin.s +++ b/asm/playerItem/playerItemSwordSpin.s @@ -166,7 +166,11 @@ sub_0801BB2C: @ 0x0801BB2C ldrb r0, [r5, #0xb] adds r1, r4, #0 movs r2, #5 +.ifdef JP + bl CreateItemEntity +.else bl sub_080A7C18 +.endif ldr r0, _0801BB8C @ =0x00000109 bl SoundReq _0801BB64: diff --git a/asm/vaatiArm.s b/asm/vaatiArm.s index b8d9e69f..46cc2189 100644 --- a/asm/vaatiArm.s +++ b/asm/vaatiArm.s @@ -1004,7 +1004,11 @@ _08042C92: _08042C9E: ldrh r0, [r3, #0x20] adds r0, r1, r0 +.ifdef JP + subs r0, #0x20 +.else subs r0, #0x40 +.endif cmp r0, r5 bge _08042CAA adds r5, r0, #0 @@ -3156,6 +3160,9 @@ _08043C8C: thumb_func_start sub_08043C98 sub_08043C98: @ 0x08043C98 +.ifdef JP + .incbin "baserom_jp.gba", 0x043BB0, 0x20 @TODO disassemble +.else push {lr} adds r3, r0, #0 ldr r0, [r3, #0x64] @@ -3187,6 +3194,7 @@ _08043CD0: movs r0, #0 _08043CD2: pop {pc} +.endif thumb_func_start sub_08043CD4 sub_08043CD4: @ 0x08043CD4 diff --git a/asm/vaatiWrath.s b/asm/vaatiWrath.s index cb1c8367..cf180e03 100644 --- a/asm/vaatiWrath.s +++ b/asm/vaatiWrath.s @@ -64,6 +64,9 @@ _0804139C: .4byte gUnk_080D0E1C thumb_func_start sub_080413A0 sub_080413A0: @ 0x080413A0 +.ifdef JP + .incbin "baserom_jp.gba", 0x041344, 0x18 @TODO disassemble +.else push {r4, lr} adds r4, r0, #0 bl sub_080423A4 @@ -77,6 +80,7 @@ sub_080413A0: @ 0x080413A0 pop {r4, pc} .align 2, 0 _080413BC: .4byte gUnk_080D0E2C +.endif thumb_func_start sub_080413C0 sub_080413C0: @ 0x080413C0 @@ -2130,6 +2134,7 @@ sub_0804235C: @ 0x0804235C bl InitializeAnimation pop {r4, r5, pc} +.ifndef JP thumb_func_start sub_080423A4 sub_080423A4: @ 0x080423A4 push {r4, lr} @@ -2196,6 +2201,7 @@ _0804241C: .align 2, 0 _08042420: .4byte gPlayerState _08042424: .4byte gPlayerEntity +.endif thumb_func_start sub_08042428 sub_08042428: @ 0x08042428 diff --git a/asm/windTribeTeleporter.s b/asm/windTribeTeleporter.s index 7476e405..d9b16c88 100644 --- a/asm/windTribeTeleporter.s +++ b/asm/windTribeTeleporter.s @@ -115,6 +115,9 @@ _080A0FFE: thumb_func_start sub_080A1000 sub_080A1000: @ 0x080A1000 +.ifdef JP + .incbin "baserom_jp.gba", 0x0a0dc8, 0xd0 +.else push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0xd] @@ -232,6 +235,7 @@ _080A10D4: .align 2, 0 _080A10D8: .4byte gScreenTransition _080A10DC: .4byte gPlayerEntity +.endif thumb_func_start sub_080A10E0 sub_080A10E0: @ 0x080A10E0 diff --git a/data/animations/npc/guard.s b/data/animations/npc/guard.s index 004385ba..761eb951 100644 --- a/data/animations/npc/guard.s +++ b/data/animations/npc/guard.s @@ -23,10 +23,20 @@ gUnk_0810F60E:: @ 0810F60E .incbin "baserom.gba", 0x10F60E, 0x0000005 gUnk_0810F613:: @ 0810F613 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x10F2D7, 0x0000007 +.else .incbin "baserom.gba", 0x10F613, 0x0000007 +.endif gUnk_0810F61A:: @ 0810F61A +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x10F2DE, 0x000002E +.else .incbin "baserom.gba", 0x10F61A, 0x000002E +.endif gUnk_0810F648:: @ 0810F648 .incbin "baserom.gba", 0x10F648, 0x000003A diff --git a/data/const/enemy/gyorgFemale.s b/data/const/enemy/gyorgFemale.s index 60a78671..f0c0b262 100644 --- a/data/const/enemy/gyorgFemale.s +++ b/data/const/enemy/gyorgFemale.s @@ -20,16 +20,37 @@ gUnk_080D1A84:: @ 080D1A84 .incbin "baserom.gba", 0x0D1A84, 0x0000010 gUnk_080D1A94:: @ 080D1A94 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0D1834, 0x0000018 +.else .incbin "baserom.gba", 0x0D1A94, 0x0000018 +.endif + gUnk_080D1AAC:: @ 080D1AAC +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0D184C, 0x0000018 +.else .incbin "baserom.gba", 0x0D1AAC, 0x0000018 +.endif gUnk_080D1AC4:: @ 080D1AC4 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0D1864, 0x0000018 +.else .incbin "baserom.gba", 0x0D1AC4, 0x0000018 +.endif gUnk_080D1ADC:: @ 080D1ADC +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0D187C, 0x0000018 +.else .incbin "baserom.gba", 0x0D1ADC, 0x0000018 +.endif gUnk_080D1AF4:: @ 080D1AF4 .incbin "baserom.gba", 0x0D1AF4, 0x0000004 diff --git a/data/const/manager/managerF.s b/data/const/manager/managerF.s index e7bc3e0a..4ecc53df 100644 --- a/data/const/manager/managerF.s +++ b/data/const/manager/managerF.s @@ -20,7 +20,9 @@ gUnk_08108314:: @ 08108314 .4byte sub_08059424 .4byte sub_0805947C .4byte sub_080594DC +.ifndef JP .4byte sub_08059548 +.endif gUnk_08108354:: @ 08108354 .incbin "baserom.gba", 0x108354, 0x000002C diff --git a/data/const/npc/forestMinish.s b/data/const/npc/forestMinish.s index c3ddcdf0..2a6d36a7 100644 --- a/data/const/npc/forestMinish.s +++ b/data/const/npc/forestMinish.s @@ -66,10 +66,21 @@ gUnk_08109F67:: @ 08109F67 .incbin "baserom.gba", 0x109F67, 0x0000005 gUnk_08109F6C:: @ 08109F6C +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x109C30, 0x000002B +.else .incbin "baserom.gba", 0x109F6C, 0x000002B +.endif + gUnk_08109F97:: @ 08109F97 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x109C5B, 0x00000B1 +.else .incbin "baserom.gba", 0x109F97, 0x00000B1 +.endif gUnk_0810A048:: @ 0810A048 .incbin "baserom.gba", 0x10A048, 0x0000024 diff --git a/data/const/npc/kid.s b/data/const/npc/kid.s index 2664711c..c85f402f 100644 --- a/data/const/npc/kid.s +++ b/data/const/npc/kid.s @@ -51,7 +51,12 @@ gUnk_0810C007:: @ 0810C007 .incbin "baserom.gba", 0x10C007, 0x0000008 gUnk_0810C00F:: @ 0810C00F +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x10BCD3, 0x0000091 +.else .incbin "baserom.gba", 0x10C00F, 0x0000091 +.endif gUnk_0810C0A0:: @ 0810C0A0 .incbin "baserom.gba", 0x10C0A0, 0x0000024 diff --git a/data/const/npc/townsperson.s b/data/const/npc/townsperson.s index cb65d071..498f4461 100644 --- a/data/const/npc/townsperson.s +++ b/data/const/npc/townsperson.s @@ -83,16 +83,31 @@ gUnk_0810B8EB:: @ 0810B8EB .incbin "baserom.gba", 0x10B8EB, 0x0000037 gUnk_0810B922:: @ 0810B922 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x10B5E6, 0x0000049 +.else .incbin "baserom.gba", 0x10B922, 0x0000049 +.endif gUnk_0810B96B:: @ 0810B96B +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x10B62F, 0x0000065 +.else .incbin "baserom.gba", 0x10B96B, 0x0000065 +.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 .incbin "baserom.gba", 0x10BA01, 0x0000117 +.endif gUnk_0810BB18:: @ 0810BB18 .incbin "baserom.gba", 0x10BB18, 0x0000044 @@ -103,7 +118,12 @@ gUnk_0810BB71:: @ 0810BB71 .incbin "baserom.gba", 0x10BB71, 0x000005B gUnk_0810BBCC:: @ 0810BBCC +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x10B890, 0x000009C +.else .incbin "baserom.gba", 0x10BBCC, 0x000009C +.endif gUnk_0810BC68:: @ 0810BC68 .incbin "baserom.gba", 0x10BC68, 0x0000098 diff --git a/data/const/npc/windTribespeople.s b/data/const/npc/windTribespeople.s index a6775c7b..0ec5129e 100644 --- a/data/const/npc/windTribespeople.s +++ b/data/const/npc/windTribespeople.s @@ -46,10 +46,20 @@ gUnk_08113B22:: @ 08113B22 .incbin "baserom.gba", 0x113B22, 0x0000006 gUnk_08113B28:: @ 08113B28 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x1137EC, 0x0000008 +.else .incbin "baserom.gba", 0x113B28, 0x0000008 +.endif gUnk_08113B30:: @ 08113B30 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x1137F4, 0x0000008 +.else .incbin "baserom.gba", 0x113B30, 0x0000008 +.endif gUnk_08113B38:: @ 08113B38 .incbin "baserom.gba", 0x113B38, 0x0000007 diff --git a/data/const/object/object96.s b/data/const/object/object96.s index 728a2e19..bfc43378 100644 --- a/data/const/object/object96.s +++ b/data/const/object/object96.s @@ -20,7 +20,11 @@ gUnk_08123FB0:: @ 08123FB0 .4byte 00000000 .4byte 0x00001800 .4byte 0x00180000 +.ifdef JP + .4byte 0x000000CD +.else .4byte 0x000000d0 +.endif .4byte sub_0809D91C .4byte 00000000 .4byte 00000000 diff --git a/data/const/object/pinwheel.s b/data/const/object/pinwheel.s index 89049ebc..e9db3be1 100644 --- a/data/const/object/pinwheel.s +++ b/data/const/object/pinwheel.s @@ -5,7 +5,11 @@ .align 2 gUnk_08125050:: @ 08125050 +.ifdef JP + .incbin "baserom_jp.gba", 0x124D14, 0x000000C +.else .incbin "baserom.gba", 0x125050, 0x000000C +.endif gUnk_0812505C:: @ 0812505C .4byte sub_080A23DC diff --git a/data/const/playerItem/playerItem15.s b/data/const/playerItem/playerItem15.s index b97be21a..c962fa97 100644 --- a/data/const/playerItem/playerItem15.s +++ b/data/const/playerItem/playerItem15.s @@ -19,7 +19,7 @@ something: .4byte sub_080A2F8C something2:: -.incbin "baserom_demo.gba", 0x127c98, 0x38 @nocheckin +.incbin "baserom_demo.gba", 0x127c98, 0x38 .endif diff --git a/data/data_080B3740.s b/data/data_080B3740.s index d3fcf25e..2313efa0 100644 --- a/data/data_080B3740.s +++ b/data/data_080B3740.s @@ -42,4 +42,9 @@ gUnk_080B3D14:: @ 080B3D14 .incbin "baserom.gba", 0x0B3D14, 0x000000C gUnk_080B3D20:: @ 080B3D20 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0B3AC0, 0x00000B0 +.else .incbin "baserom.gba", 0x0B3D20, 0x00000B0 +.endif diff --git a/data/data_080B4410.s b/data/data_080B4410.s index 14bbfc78..74f3323f 100644 --- a/data/data_080B4410.s +++ b/data/data_080B4410.s @@ -5,7 +5,12 @@ .align 2 gUnk_080B4410:: @ 080B4410 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0B41B0, 0x0000048 +.else .incbin "baserom.gba", 0x0B4410, 0x0000048 +.endif gUnk_080B4458:: @ 080B4458 .4byte sub_08019698 diff --git a/data/data_080B7B74.s b/data/data_080B7B74.s index d24988ce..e6b2417d 100644 --- a/data/data_080B7B74.s +++ b/data/data_080B7B74.s @@ -593,7 +593,12 @@ gUnk_080C2F35:: @ 080C2F35 .incbin "baserom.gba", 0x0C2F35, 0x000010A gUnk_080C303F:: @ 080C303F +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0C2DDF, 0x00032A4 +.else .incbin "baserom.gba", 0x0C303F, 0x00032A4 +.endif gUnk_080C62E3:: @ 080C62E3 .incbin "baserom.gba", 0x0C62E3, 0x000207D diff --git a/data/data_080C93E0.s b/data/data_080C93E0.s index d139a224..c52d6a80 100644 --- a/data/data_080C93E0.s +++ b/data/data_080C93E0.s @@ -77,19 +77,39 @@ gUnk_080C9864:: @ 080C9864 .4byte gUnk_080C9854 gUnk_080C9870:: @ 080C9870 +.ifdef JP + .incbin "baserom_jp.gba", 0x0C9610, 0x0000078 +.else .incbin "baserom.gba", 0x0C9870, 0x0000078 +.endif gUnk_080C98E8:: @ 080C98E8 +.ifdef JP + .incbin "baserom_jp.gba", 0x0C9688, 0x0000040 +.else .incbin "baserom.gba", 0x0C98E8, 0x0000040 +.endif gUnk_080C9928:: @ 080C9928 +.ifdef JP + .incbin "baserom_jp.gba", 0x0C96C8, 0x0000060 +.else .incbin "baserom.gba", 0x0C9928, 0x0000060 +.endif gUnk_080C9988:: @ 080C9988 +.ifdef JP + .incbin "baserom_jp.gba", 0x0C9728, 0x0000060 +.else .incbin "baserom.gba", 0x0C9988, 0x0000060 +.endif gUnk_080C99E8:: @ 080C99E8 +.ifdef JP + .incbin "baserom_jp.gba", 0x0C9788, 0x0000048 +.else .incbin "baserom.gba", 0x0C99E8, 0x0000048 +.endif gUnk_080C9A30:: @ 080C9A30 .4byte gUnk_080C9870 @@ -99,19 +119,39 @@ gUnk_080C9A30:: @ 080C9A30 .4byte gUnk_080C99E8 gUnk_080C9A44:: @ 080C9A44 +.ifdef JP + .incbin "baserom_jp.gba", 0x0C97E4, 0x0000038 +.else .incbin "baserom.gba", 0x0C9A44, 0x0000038 +.endif gUnk_080C9A7C:: @ 080C9A7C +.ifdef JP + .incbin "baserom_jp.gba", 0x0C981C, 0x00000B0 +.else .incbin "baserom.gba", 0x0C9A7C, 0x00000B0 +.endif gUnk_080C9B2C:: @ 080C9B2C +.ifdef JP + .incbin "baserom_jp.gba", 0x0C98CC, 0x0000088 +.else .incbin "baserom.gba", 0x0C9B2C, 0x0000088 +.endif gUnk_080C9BB4:: @ 080C9BB4 +.ifdef JP + .incbin "baserom_jp.gba", 0x0C9954, 0x0000068 +.else .incbin "baserom.gba", 0x0C9BB4, 0x0000068 +.endif gUnk_080C9C1C:: @ 080C9C1C +.ifdef JP + .incbin "baserom_jp.gba", 0x0C99BC, 0x0000020 +.else .incbin "baserom.gba", 0x0C9C1C, 0x0000020 +.endif gUnk_080C9C3C:: @ 080C9C3C .4byte gUnk_080C9A44 @@ -139,7 +179,12 @@ gUnk_080C9CAC:: @ 080C9CAC .4byte sub_0801E0A0 gUnk_080C9CBC:: @ 080C9CBC +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0C9A5C, 0x00003B0 +.else .incbin "baserom.gba", 0x0C9CBC, 0x00003B0 +.endif gUnk_080CA06C:: @ 080CA06C .incbin "baserom.gba", 0x0CA06C, 0x00000B0 diff --git a/data/data_080D5360.s b/data/data_080D5360.s index 4833c66b..40cc38c1 100644 --- a/data/data_080D5360.s +++ b/data/data_080D5360.s @@ -1888,11 +1888,21 @@ Area_EzloCutscene_Main:: @ 080D8F98 .4byte nullsub_195 gUnk_080D8FB8:: @ 080D8FB8 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0D8D58, 0x000005C +.else .incbin "baserom.gba", 0x0D8FB8, 0x000005C +.endif .4byte script_08009698 .incbin "baserom.gba", 0x0D9018, 0x000000C .4byte script_08009740 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0D8DC8, 0x0000020 +.else .incbin "baserom.gba", 0x0D9028, 0x0000020 +.endif gUnk_080D9048:: @ 080D9048 .incbin "baserom.gba", 0x0D9048, 0x0000050 @@ -1917,13 +1927,23 @@ gUnk_080D9108:: @ 080D9108 .incbin "baserom.gba", 0x0D9108, 0x0000020 gUnk_080D9128:: @ 080D9128 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0D8EC8, 0x00000C0 +.else .incbin "baserom.gba", 0x0D9128, 0x00000C0 +.endif gUnk_080D91E8:: @ 080D91E8 .incbin "baserom.gba", 0x0D91E8, 0x0000090 gUnk_080D9278:: @ 080D9278 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0D9018, 0x0000018 +.else .incbin "baserom.gba", 0x0D9278, 0x0000018 +.endif Room_RoyalValley_Main:: @ 080D9290 .4byte gUnk_080D8FB8 @@ -1945,7 +1965,12 @@ gUnk_080D92E0:: @ 080D92E0 .incbin "baserom.gba", 0x0D92E0, 0x0000048 gUnk_080D9328:: @ 080D9328 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0D90C8, 0x0000010 +.else .incbin "baserom.gba", 0x0D9328, 0x0000010 +.endif gUnk_080D9338:: @ 080D9338 .incbin "baserom.gba", 0x0D9338, 0x0000008 @@ -2118,7 +2143,12 @@ Room_MinishRafters_Bakery:: @ 080D9AB8 .4byte sub_0804C324 gUnk_080D9AD8:: @ 080D9AD8 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0D9878, 0x000004C +.else .incbin "baserom.gba", 0x0D9AD8, 0x000004C +.endif .4byte script_0800B200 .incbin "baserom.gba", 0x0D9B28, 0x000000C .4byte script_0800B308 @@ -2128,13 +2158,22 @@ gUnk_080D9AD8:: @ 080D9AD8 .4byte script_0800B284 .incbin "baserom.gba", 0x0D9B58, 0x000000C .4byte script_0800B2B4 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0D9908, 0x00000D0 +.else .incbin "baserom.gba", 0x0D9B68, 0x00000D0 - +.endif gUnk_080D9C38:: @ 080D9C38 .incbin "baserom.gba", 0x0D9C38, 0x0000070 gUnk_080D9CA8:: @ 080D9CA8 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0D9A48, 0x0000020 +.else .incbin "baserom.gba", 0x0D9CA8, 0x0000020 +.endif gUnk_080D9CC8:: @ 080D9CC8 .incbin "baserom.gba", 0x0D9CC8, 0x0000020 @@ -2154,7 +2193,12 @@ gUnk_080D9E28:: @ 080D9E28 .incbin "baserom.gba", 0x0D9E28, 0x0000030 gUnk_080D9E58:: @ 080D9E58 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0D9BF8, 0x0000010 +.else .incbin "baserom.gba", 0x0D9E58, 0x0000010 +.endif gUnk_080D9E68:: @ 080D9E68 .incbin "baserom.gba", 0x0D9E68, 0x0000040 @@ -2454,7 +2498,11 @@ Room_GardenFountains_East:: @ 080DA514 .4byte nullsub_208 gUnk_080DA534:: @ 080DA534 +.ifdef JP + .incbin "baserom_jp.gba", 0x0DA2D4, 0x40 +.else .incbin "baserom.gba", 0x0DA534, 0x0000050 +.endif gUnk_080DA584:: @ 080DA584 .incbin "baserom.gba", 0x0DA584, 0x0000010 @@ -4077,7 +4125,12 @@ Room_MelarisMine_Main:: @ 080DD31C .4byte gUnk_080DD274 gUnk_080DD344:: @ 080DD344 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0DD0D4, 0x0000020 +.else .incbin "baserom.gba", 0x0DD344, 0x0000020 +.endif gUnk_080DD364:: @ 080DD364 .incbin "baserom.gba", 0x0DD364, 0x000000C @@ -4104,7 +4157,12 @@ Room_CloudTops_House:: @ 080DD3EC .4byte sub_0804CA54 gUnk_080DD40C:: @ 080DD40C +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0DD19C, 0x0000090 +.else .incbin "baserom.gba", 0x0DD40C, 0x0000090 +.endif gUnk_080DD49C:: @ 080DD49C .incbin "baserom.gba", 0x0DD49C, 0x0000130 @@ -4116,7 +4174,12 @@ gUnk_080DD6BC:: @ 080DD6BC .incbin "baserom.gba", 0x0DD6BC, 0x0000010 gUnk_080DD6CC:: @ 080DD6CC +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0DD45C, 0x0000040 +.else .incbin "baserom.gba", 0x0DD6CC, 0x0000040 +.endif Room_CloudTops_Middle:: @ 080DD70C .4byte gUnk_080DD40C @@ -4142,16 +4205,31 @@ gUnk_080DD750:: @ 080DD750 .incbin "baserom.gba", 0x0DD780, 0x0000010 gUnk_080DD790:: @ 080DD790 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0DD520, 0x0000050 +.else .incbin "baserom.gba", 0x0DD790, 0x0000050 +.endif gUnk_080DD7E0:: @ 080DD7E0 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0DD570, 0x0000040 +.else .incbin "baserom.gba", 0x0DD7E0, 0x0000040 +.endif gUnk_080DD820:: @ 080DD820 .incbin "baserom.gba", 0x0DD820, 0x0000020 gUnk_080DD840:: @ 080DD840 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0DD5D0, 0x0000040 +.else .incbin "baserom.gba", 0x0DD840, 0x0000040 +.endif gUnk_080DD880:: @ 080DD880 .incbin "baserom.gba", 0x0DD880, 0x0000020 @@ -4230,7 +4308,12 @@ Room_CloudTops_Bottom:: @ 080DDBC8 .4byte gUnk_080DD880 gUnk_080DDC00:: @ 080DDC00 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0DD990, 0x0000020 +.else .incbin "baserom.gba", 0x0DDC00, 0x0000020 +.endif gUnk_080DDC20:: @ 080DDC20 .incbin "baserom.gba", 0x0DDC20, 0x0000030 @@ -4239,7 +4322,12 @@ gUnk_080DDC50:: @ 080DDC50 .incbin "baserom.gba", 0x0DDC50, 0x0000080 gUnk_080DDCD0:: @ 080DDCD0 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0DDA60, 0x0000010 +.else .incbin "baserom.gba", 0x0DDCD0, 0x0000010 +.endif gUnk_080DDCE0:: @ 080DDCE0 .incbin "baserom.gba", 0x0DDCE0, 0x0000010 @@ -4275,7 +4363,12 @@ gUnk_080DDD74:: @ 080DDD74 .incbin "baserom.gba", 0x0DDD74, 0x0000010 gUnk_080DDD84:: @ 080DDD84 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0DDB14, 0x0000030 +.else .incbin "baserom.gba", 0x0DDD84, 0x0000030 +.endif gUnk_080DDDB4:: @ 080DDDB4 .incbin "baserom.gba", 0x0DDDB4, 0x0000040 @@ -4302,7 +4395,12 @@ Room_Ruins_Beanstalk:: @ 080DDE20 .4byte gUnk_080DDE0C gUnk_080DDE48:: @ 080DDE48 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0DDBD8, 0x0000040 +.else .incbin "baserom.gba", 0x0DDE48, 0x0000040 +.endif gUnk_080DDE88:: @ 080DDE88 .incbin "baserom.gba", 0x0DDE88, 0x0000020 @@ -4361,7 +4459,12 @@ Room_Ruins_LadderToTektites:: @ 080DDFC8 .4byte nullsub_38 gUnk_080DDFE8:: @ 080DDFE8 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0DDD78, 0x0000018 +.else .incbin "baserom.gba", 0x0DDFE8, 0x0000018 +.endif gUnk_080DE000:: @ 080DE000 .incbin "baserom.gba", 0x0DE000, 0x0000008 @@ -4378,7 +4481,12 @@ gUnk_080DE048:: @ 080DE048 .incbin "baserom.gba", 0x0DE048, 0x00000A0 gUnk_080DE0E8:: @ 080DE0E8 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0DDE78, 0x0000030 +.else .incbin "baserom.gba", 0x0DE0E8, 0x0000030 +.endif gUnk_080DE118:: @ 080DE118 .incbin "baserom.gba", 0x0DE118, 0x0000014 @@ -4395,7 +4503,12 @@ Room_Ruins_FortressEntrance:: @ 080DE12C .4byte gUnk_080DE118 gUnk_080DE150:: @ 080DE150 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0DDEE0, 0x0000090 +.else .incbin "baserom.gba", 0x0DE150, 0x0000090 +.endif gUnk_080DE1E0:: @ 080DE1E0 .incbin "baserom.gba", 0x0DE1E0, 0x0000020 @@ -4416,7 +4529,12 @@ gUnk_080DE2B0:: @ 080DE2B0 .incbin "baserom.gba", 0x0DE2B0, 0x0000070 gUnk_080DE320:: @ 080DE320 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0DE0B0, 0x0000018 +.else .incbin "baserom.gba", 0x0DE320, 0x0000018 +.endif gUnk_080DE338:: @ 080DE338 .incbin "baserom.gba", 0x0DE338, 0x0000014 @@ -4771,7 +4889,11 @@ Room_DeepwoodShrine_BossKey:: @ 080DF46C .4byte nullsub_253 gUnk_080DF48C:: @ 080DF48C +.ifdef JP + .incbin "baserom_jp.gba", 0x0DF21C, 0x00000E0 +.else .incbin "baserom.gba", 0x0DF48C, 0x00000F0 +.endif gUnk_080DF57C:: @ 080DF57C .incbin "baserom.gba", 0x0DF57C, 0x0000020 @@ -4834,7 +4956,11 @@ gUnk_080DF72C:: @ 080DF72C .incbin "baserom.gba", 0x0DF72C, 0x00000D2 gUnk_080DF7FE:: @ 080DF7FE +.ifdef JP + .incbin "baserom_jp.gba", 0x0DF57E, 0x000002E +.else .incbin "baserom.gba", 0x0DF7FE, 0x000003E +.endif gUnk_080DF83C:: @ 080DF83C .incbin "baserom.gba", 0x0DF83C, 0x0000020 @@ -6271,7 +6397,11 @@ Room_FortressOfWinds_Stalfos:: @ 080E2D60 .4byte gUnk_080E2D00 gUnk_080E2D84:: @ 080E2D84 +.ifdef JP + .incbin "baserom_jp.gba", 0x0E2AF4, 0x0000090 +.else .incbin "baserom.gba", 0x0E2D84, 0x00000B0 +.endif gUnk_080E2E34:: @ 080E2E34 .incbin "baserom.gba", 0x0E2E34, 0x0000010 @@ -8905,7 +9035,11 @@ Room_DarkHyruleCastleBridge_Main:: @ 080EAC40 .4byte sub_0804D758 gUnk_080EAC60:: @ 080EAC60 +.ifdef JP + .incbin "baserom_jp.gba", 0x0EA9B0, 0x0000020 +.else .incbin "baserom.gba", 0x0EAC60, 0x0000030 +.endif gUnk_080EAC90:: @ 080EAC90 .incbin "baserom.gba", 0x0EAC90, 0x0000010 @@ -8924,7 +9058,11 @@ Room_VaatisArms_First:: @ 080EACA8 .4byte nullsub_74 gUnk_080EACC8:: @ 080EACC8 +.ifdef JP + .incbin "baserom_jp.gba", 0x0EAA08, 0x0000020 +.else .incbin "baserom.gba", 0x0EACC8, 0x0000030 +.endif gUnk_080EACF8:: @ 080EACF8 .incbin "baserom.gba", 0x0EACF8, 0x0000010 @@ -10483,7 +10621,12 @@ gUnk_080EE7EC:: @ 080EE7EC .4byte nullsub_374 gUnk_080EE80C:: @ 080EE80C +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0EE53C, 0x000006C +.else .incbin "baserom.gba", 0x0EE80C, 0x000006C +.endif .4byte script_08010AE4 .incbin "baserom.gba", 0x0EE87C, 0x0000010 @@ -10563,7 +10706,12 @@ gUnk_080EEABC:: @ 080EEABC .incbin "baserom.gba", 0x0EEABC, 0x0000020 gUnk_080EEADC:: @ 080EEADC +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0EE80C, 0x0000090 +.else .incbin "baserom.gba", 0x0EEADC, 0x0000090 +.endif gUnk_080EEB6C:: @ 080EEB6C .incbin "baserom.gba", 0x0EEB6C, 0x0000020 @@ -10588,13 +10736,22 @@ gUnk_080EEBCC:: @ 080EEBCC .incbin "baserom.gba", 0x0EEC3C, 0x0000010 gUnk_080EEC4C:: @ 080EEC4C +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0EE97C, 0x0000070 +.else .incbin "baserom.gba", 0x0EEC4C, 0x0000070 +.endif gUnk_080EECBC:: @ 080EECBC .incbin "baserom.gba", 0x0EECBC, 0x0000020 gUnk_080EECDC:: @ 080EECDC +.ifdef JP + .incbin "baserom_jp.gba", 0x0EEA0C, 0x0000048 +.else .incbin "baserom.gba", 0x0EECDC, 0x0000050 +.endif gUnk_080EED2C:: @ 080EED2C .incbin "baserom.gba", 0x0EED2C, 0x000004E @@ -11502,7 +11659,12 @@ Room_HyruleTownUnderground_Well:: @ 080F0610 .4byte nullsub_088 gUnk_080F0630:: @ 080F0630 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0F0358, 0x0000020 +.else .incbin "baserom.gba", 0x0F0630, 0x0000020 +.endif gUnk_080F0650:: @ 080F0650 .incbin "baserom.gba", 0x0F0650, 0x000000C @@ -11610,10 +11772,20 @@ gUnk_080F0920:: @ 080F0920 .incbin "baserom.gba", 0x0F0930, 0x0000010 gUnk_080F0940:: @ 080F0940 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0F0668, 0x0000060 +.else .incbin "baserom.gba", 0x0F0940, 0x0000060 +.endif gUnk_080F09A0:: @ 080F09A0 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0F06C8, 0x0000060 +.else .incbin "baserom.gba", 0x0F09A0, 0x0000060 +.endif gUnk_080F0A00:: @ 080F0A00 .incbin "baserom.gba", 0x0F0A00, 0x0000002 @@ -11628,7 +11800,12 @@ gUnk_080F0A10:: @ 080F0A10 .incbin "baserom.gba", 0x0F0A10, 0x0000001 gUnk_080F0A11:: @ 080F0A11 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0F0739, 0x000001F +.else .incbin "baserom.gba", 0x0F0A11, 0x000001F +.endif gUnk_080F0A30:: @ 080F0A30 .incbin "baserom.gba", 0x0F0A30, 0x0000020 @@ -12621,7 +12798,11 @@ Room_HouseInteriors2_B:: @ 080F2B78 .4byte gUnk_080F2B58 gUnk_080F2B9C:: @ 080F2B9C +.ifdef JP + .incbin "baserom_jp.gba", 0x0F28C4, 0x00000BC +.else .incbin "baserom.gba", 0x0F2B9C, 0x00000CC +.endif .4byte script_08010120 .incbin "baserom.gba", 0x0F2C6C, 0x0000010 @@ -13096,7 +13277,12 @@ gUnk_080F40AC:: @ 080F40AC .incbin "baserom.gba", 0x0F40AC, 0x0000010 gUnk_080F40BC:: @ 080F40BC +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0F3DD4, 0x0000030 +.else .incbin "baserom.gba", 0x0F40BC, 0x0000030 +.endif gUnk_080F40EC:: @ 080F40EC .incbin "baserom.gba", 0x0F40EC, 0x00000A0 @@ -13408,8 +13594,13 @@ Room_OuterFortressOfWinds_SmallKey:: @ 080F4CDC gEntities_MinishWoods_0:: @ 080F4D00 object_minish_lilypad x=0x1F8, y=0x3D8, room_property=0x12 object_minish_lilypad x=0x1A8, y=0x3B8, room_property=0x13 +.ifdef JP + object_item x=0xC8, y=0x134, item=0x63, flag=0x3B, collision=1 + object_item x=0x198, y=0x2B4, item=0x63, flag=0x3C, collision=1 +.else object_item x=0xC8, y=0x134, item=0x63, flag=0x3C, collision=1 object_item x=0x198, y=0x2B4, item=0x63, flag=0x3D, collision=1 +.endif entity_list_end gUnk_080F4D50:: @ 080F4D50 @@ -13535,13 +13726,25 @@ gUnk_080F51F0:: @ 080F51F0 .incbin "baserom.gba", 0x0F51F0, 0x0000030 gRoomTiles_MinishWoods_0:: @ 080F5220 +.ifdef JP + .byte 0x0A, 0x01, 0x35, 0x00, 0x0A, 0x08, 0x1D, 0x00 + .byte 0x0A, 0x01, 0x36, 0x00, 0x0B, 0x08, 0x1D, 0x00 + .byte 0x0A, 0x01, 0x37, 0x00, 0x83, 0x0D, 0x1D, 0x00 + .byte 0x0A, 0x01, 0x38, 0x00, 0x84, 0x0D, 0x1D, 0x00 + .byte 0x0A, 0x01, 0x39, 0x00, 0x85, 0x0D, 0x1D, 0x00 +.else .byte 0x0A, 0x01, 0x36, 0x00, 0x0A, 0x08, 0x1D, 0x00 .byte 0x0A, 0x01, 0x37, 0x00, 0x0B, 0x08, 0x1D, 0x00 .byte 0x0A, 0x01, 0x38, 0x00, 0x83, 0x0D, 0x1D, 0x00 .byte 0x0A, 0x01, 0x39, 0x00, 0x84, 0x0D, 0x1D, 0x00 .byte 0x0A, 0x01, 0x3A, 0x00, 0x85, 0x0D, 0x1D, 0x00 +.endif .byte 0x05, 0x00, 0x00, 0x05, 0x6A, 0x01, 0x05, 0x06 +.ifdef JP + .byte 0x05, 0x00, 0x00, 0x17, 0xDB, 0x03, 0x17, 0x06 +.else .byte 0x05, 0x00, 0x00, 0x1F, 0xDB, 0x03, 0x1F, 0x06 +.endif .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 Room_MinishWoods_Main:: @ 080F5260 @@ -14451,7 +14654,12 @@ gUnk_080F6F1C:: @ 080F6F1C .incbin "baserom.gba", 0x0F6F1C, 0x0000010 gUnk_080F6F2C:: @ 080F6F2C +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0F6C44, 0x0000050 +.else .incbin "baserom.gba", 0x0F6F2C, 0x0000050 +.endif gUnk_080F6F7C:: @ 080F6F7C .incbin "baserom.gba", 0x0F6F7C, 0x0000040 @@ -14498,13 +14706,23 @@ gUnk_080F70D8:: @ 080F70D8 .incbin "baserom.gba", 0x0F70E8, 0x0000010 gUnk_080F70F8:: @ 080F70F8 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0F6E10, 0x0000060 +.else .incbin "baserom.gba", 0x0F70F8, 0x0000060 +.endif gUnk_080F7158:: @ 080F7158 .incbin "baserom.gba", 0x0F7158, 0x00000C0 gUnk_080F7218:: @ 080F7218 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0F6F30, 0x0000088 +.else .incbin "baserom.gba", 0x0F7218, 0x0000088 +.endif gUnk_080F72A0:: @ 080F72A0 .incbin "baserom.gba", 0x0F72A0, 0x0000010 @@ -14534,7 +14752,12 @@ gUnk_080F734C:: @ 080F734C .incbin "baserom.gba", 0x0F734C, 0x0000040 gUnk_080F738C:: @ 080F738C +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0F70A4, 0x0000020 +.else .incbin "baserom.gba", 0x0F738C, 0x0000020 +.endif Room_HyruleField_FromMinishWoods:: @ 080F73AC .4byte gUnk_080F72EC @@ -14550,13 +14773,23 @@ gUnk_080F73CC:: @ 080F73CC .incbin "baserom.gba", 0x0F73CC, 0x0000010 gUnk_080F73DC:: @ 080F73DC +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0F70F4, 0x0000040 +.else .incbin "baserom.gba", 0x0F73DC, 0x0000040 +.endif gUnk_080F741C:: @ 080F741C .incbin "baserom.gba", 0x0F741C, 0x0000070 gUnk_080F748C:: @ 080F748C +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0F71A4, 0x0000018 +.else .incbin "baserom.gba", 0x0F748C, 0x0000018 +.endif gUnk_080F74A4:: @ 080F74A4 .incbin "baserom.gba", 0x0F74A4, 0x0000010 @@ -14615,7 +14848,12 @@ gUnk_080F7680:: @ 080F7680 .incbin "baserom.gba", 0x0F7680, 0x0000040 gUnk_080F76C0:: @ 080F76C0 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0F73D8, 0x0000038 +.else .incbin "baserom.gba", 0x0F76C0, 0x0000038 +.endif Room_HyruleField_Farmers:: @ 080F76F8 .4byte gUnk_080F74F0 @@ -14630,7 +14868,12 @@ Room_HyruleField_Farmers:: @ 080F76F8 .4byte gUnk_080F7570 gUnk_080F7720:: @ 080F7720 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0F7438, 0x0000050 +.else .incbin "baserom.gba", 0x0F7720, 0x0000050 +.endif gUnk_080F7770:: @ 080F7770 .incbin "baserom.gba", 0x0F7770, 0x0000050 @@ -14674,7 +14917,12 @@ gUnk_080F78C0:: @ 080F78C0 .incbin "baserom.gba", 0x0F78CC, 0x0000014 gUnk_080F78E0:: @ 080F78E0 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0F75F8, 0x00000F0 +.else .incbin "baserom.gba", 0x0F78E0, 0x00000F0 +.endif gUnk_080F79D0:: @ 080F79D0 .incbin "baserom.gba", 0x0F79D0, 0x0000050 @@ -14688,7 +14936,12 @@ gUnk_080F7A44:: @ 080F7A44 .incbin "baserom.gba", 0x0F7A44, 0x00000B0 gUnk_080F7AF4:: @ 080F7AF4 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0F780C, 0x0000048 +.else .incbin "baserom.gba", 0x0F7AF4, 0x0000048 +.endif gUnk_080F7B3C:: @ 080F7B3C .incbin "baserom.gba", 0x0F7B3C, 0x0000018 @@ -14730,7 +14983,12 @@ EntityData_HyruleField_OutsideCastle:: @ 080F7BF0 .incbin "baserom.gba", 0x0F7BF0, 0x0000010 ManagerData_HyruleField_OutsideCastle:: @ 080F7C00 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0F7918, 0x0000080 +.else .incbin "baserom.gba", 0x0F7C00, 0x0000080 +.endif gUnk_080F7C80:: @ 080F7C80 .incbin "baserom.gba", 0x0F7C80, 0x000000C @@ -14785,7 +15043,12 @@ EnemyData_HyruleField_OutsideCastle:: @ 080F7E20 .incbin "baserom.gba", 0x0F7E20, 0x00000F0 TileData_HyruleField_OutsideCastle:: @ 080F7F10 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0F7C28, 0x0000070 +.else .incbin "baserom.gba", 0x0F7F10, 0x0000070 +.endif gUnk_080F7F80:: @ 080F7F80 .incbin "baserom.gba", 0x0F7F80, 0x0000018 @@ -14828,13 +15091,23 @@ gUnk_080F806C:: @ 080F806C .incbin "baserom.gba", 0x0F807C, 0x0000010 ManagerData_HyruleField_OutsideCastleWest:: @ 080F808C +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0F7DA4, 0x0000060 +.else .incbin "baserom.gba", 0x0F808C, 0x0000060 +.endif EnemyData_HyruleField_OutsideCastleWest:: @ 080F80EC .incbin "baserom.gba", 0x0F80EC, 0x00000B0 TileData_HyruleField_OutsideCastleWest:: @ 080F819C +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0F7EB4, 0x0000028 +.else .incbin "baserom.gba", 0x0F819C, 0x0000028 +.endif gUnk_080F81C4:: @ 080F81C4 .incbin "baserom.gba", 0x0F81C4, 0x0000010 @@ -14855,7 +15128,11 @@ Room_HyruleField_OutsideCastleWest:: @ 080F81E8 .4byte gUnk_080F81D4 EntityData_HyruleField_TrilbyHighlands:: @ 080F8210 +.ifdef JP + .incbin "baserom_jp.gba", 0x0F7F28, 0x00000B0 +.else .incbin "baserom.gba", 0x0F8210, 0x00000D0 +.endif gUnk_080F82E0:: @ 080F82E0 .incbin "baserom.gba", 0x0F82E0, 0x000000C @@ -14869,7 +15146,12 @@ EnemyData_HyruleField_TrilbyHighlands:: @ 080F8320 .incbin "baserom.gba", 0x0F8320, 0x00000C0 TileData_HyruleField_TrilbyHighlands:: @ 080F83E0 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0F80D8, 0x0000020 +.else .incbin "baserom.gba", 0x0F83E0, 0x0000020 +.endif Room_HyruleField_TrilbyHighlands:: @ 080F8400 .4byte EntityData_HyruleField_TrilbyHighlands @@ -15223,7 +15505,11 @@ Room_Caves_LonLonRanchWallet:: @ 080F8CD4 .4byte nullsub_90 gUnk_080F8CF4:: @ 080F8CF4 +.ifdef JP + .incbin "baserom_jp.gba", 0x0F89EC, 0x0000100 +.else .incbin "baserom.gba", 0x0F8CF4, 0x0000110 +.endif gUnk_080F8E04:: @ 080F8E04 .incbin "baserom.gba", 0x0F8E04, 0x0000010 @@ -15242,7 +15528,11 @@ Room_Caves_RupeeLinksHouse:: @ 080F8E1C .4byte nullsub_91 gUnk_080F8E3C:: @ 080F8E3C +.ifdef JP + .incbin "baserom_jp.gba", 0x0F8B24, 0x0000100 +.else .incbin "baserom.gba", 0x0F8E3C, 0x0000110 +.endif gUnk_080F8F4C:: @ 080F8F4C .incbin "baserom.gba", 0x0F8F4C, 0x0000010 @@ -15261,7 +15551,11 @@ Room_Caves_RupeeTrilbyHighlands:: @ 080F8F64 .4byte nullsub_92 gUnk_080F8F84:: @ 080F8F84 +.ifdef JP + .incbin "baserom_jp.gba", 0x0F8C5C, 0x0000050 +.else .incbin "baserom.gba", 0x0F8F84, 0x0000060 +.endif gUnk_080F8FE4:: @ 080F8FE4 .incbin "baserom.gba", 0x0F8FE4, 0x0000010 @@ -15337,7 +15631,11 @@ Room_Caves_HeartPieceHallway:: @ 080F9154 .4byte nullsub_96 gUnk_080F9174:: @ 080F9174 +.ifdef JP + .incbin "baserom_jp.gba", 0x0F8E3C, 0x0000040 +.else .incbin "baserom.gba", 0x0F9174, 0x0000050 +.endif gUnk_080F91C4:: @ 080F91C4 .incbin "baserom.gba", 0x0F91C4, 0x0000010 @@ -15375,7 +15673,12 @@ Room_Caves_KinstoneBusinessScrub:: @ 080F9244 .4byte nullsub_98 gUnk_080F9264:: @ 080F9264 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0F8F1C, 0x00000A0 +.else .incbin "baserom.gba", 0x0F9264, 0x00000A0 +.endif gUnk_080F9304:: @ 080F9304 .incbin "baserom.gba", 0x0F9304, 0x000000C @@ -15400,7 +15703,12 @@ gUnk_080F9354:: @ 080F9354 .incbin "baserom.gba", 0x0F9354, 0x0000120 gUnk_080F9474:: @ 080F9474 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0F912C, 0x0000010 +.else .incbin "baserom.gba", 0x0F9474, 0x0000010 +.endif gUnk_080F9484:: @ 080F9484 .incbin "baserom.gba", 0x0F9484, 0x0000010 @@ -15622,7 +15930,12 @@ gUnk_080F9B78:: @ 080F9B78 .incbin "baserom.gba", 0x0F9BC8, 0x0000030 gUnk_080F9BF8:: @ 080F9BF8 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0F98B0, 0x000002C +.else .incbin "baserom.gba", 0x0F9BF8, 0x000002C +.endif .4byte script_08009320 .incbin "baserom.gba", 0x0F9C28, 0x0000010 @@ -16385,10 +16698,20 @@ Room_TreeInteriors_1F:: @ 080FAC08 .4byte nullsub_463 gUnk_080FAC28:: @ 080FAC28 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0FA8E0, 0x0000060 +.else .incbin "baserom.gba", 0x0FAC28, 0x0000060 +.endif gUnk_080FAC88:: @ 080FAC88 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0FA940, 0x0000030 +.else .incbin "baserom.gba", 0x0FAC88, 0x0000030 +.endif gUnk_080FACB8:: @ 080FACB8 .incbin "baserom.gba", 0x0FACB8, 0x0000090 @@ -16445,7 +16768,12 @@ gUnk_080FAEBC:: @ 080FAEBC .incbin "baserom.gba", 0x0FAEBC, 0x00000E0 gUnk_080FAF9C:: @ 080FAF9C +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0FAC54, 0x0000018 +.else .incbin "baserom.gba", 0x0FAF9C, 0x0000018 +.endif Room_MtCrenel_WallClimb:: @ 080FAFB4 .4byte gUnk_080FAE9C @@ -16477,7 +16805,12 @@ gUnk_080FB104:: @ 080FB104 .incbin "baserom.gba", 0x0FB104, 0x00000F0 gUnk_080FB1F4:: @ 080FB1F4 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0FAEAC, 0x0000020 +.else .incbin "baserom.gba", 0x0FB1F4, 0x0000020 +.endif gUnk_080FB214:: @ 080FB214 .incbin "baserom.gba", 0x0FB214, 0x0000020 @@ -16512,7 +16845,12 @@ gUnk_080FB2E0:: @ 080FB2E0 .incbin "baserom.gba", 0x0FB2E0, 0x0000130 gUnk_080FB410:: @ 080FB410 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0FB0C8, 0x0000050 +.else .incbin "baserom.gba", 0x0FB410, 0x0000050 +.endif Room_MtCrenel_GustJarShortcut:: @ 080FB460 .4byte gUnk_080FB2A0 @@ -16525,7 +16863,12 @@ Room_MtCrenel_GustJarShortcut:: @ 080FB460 .4byte nullsub_464 gUnk_080FB480:: @ 080FB480 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0FB138, 0x0000150 +.else .incbin "baserom.gba", 0x0FB480, 0x0000150 +.endif gUnk_080FB5D0:: @ 080FB5D0 .incbin "baserom.gba", 0x0FB5D0, 0x0000030 @@ -16534,7 +16877,11 @@ gUnk_080FB600:: @ 080FB600 .incbin "baserom.gba", 0x0FB600, 0x0000100 gUnk_080FB700:: @ 080FB700 +.ifdef JP + .incbin "baserom_jp.gba", 0x0FB3B8, 0x0000040 +.else .incbin "baserom.gba", 0x0FB700, 0x0000048 +.endif gUnk_080FB748:: @ 080FB748 .incbin "baserom.gba", 0x0FB748, 0x0000020 @@ -16942,7 +17289,12 @@ gUnk_080FC3C4:: @ 080FC3C4 .incbin "baserom.gba", 0x0FC3C4, 0x0000020 gUnk_080FC3E4:: @ 080FC3E4 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0FC094, 0x0000460 +.else .incbin "baserom.gba", 0x0FC3E4, 0x0000460 +.endif gUnk_080FC844:: @ 080FC844 .incbin "baserom.gba", 0x0FC844, 0x0000018 diff --git a/data/data_080FC8A4.s b/data/data_080FC8A4.s index 4ae5d7cd..0d065fc0 100644 --- a/data/data_080FC8A4.s +++ b/data/data_080FC8A4.s @@ -126,7 +126,12 @@ gUnk_080FCB38:: @ 080FCB38 .incbin "baserom.gba", 0x0FCB38, 0x000002A gUnk_080FCB62:: @ 080FCB62 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0FC812, 0x0000032 +.else .incbin "baserom.gba", 0x0FCB62, 0x0000032 +.endif gUnk_080FCB94:: @ 080FCB94 .incbin "baserom.gba", 0x0FCB94, 0x0000020 @@ -1210,10 +1215,20 @@ gUnk_080FE2AC:: @ 080FE2AC .4byte sub_08055D80 gUnk_080FE320:: @ 080FE320 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0FDFD0, 0x00002F0 +.else .incbin "baserom.gba", 0x0FE320, 0x00002F0 +.endif gUnk_080FE610:: @ 080FE610 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0FE2C0, 0x00004B8 +.else .incbin "baserom.gba", 0x0FE610, 0x00004B8 +.endif gUnk_080FEAC8:: @ 080FEAC8 .incbin "baserom.gba", 0x0FEAC8, 0x0000003 @@ -1222,10 +1237,20 @@ gUnk_080FEACB:: @ 080FEACB .incbin "baserom.gba", 0x0FEACB, 0x0000023 gUnk_080FEAEE:: @ 080FEAEE +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0FE79E, 0x000002C +.else .incbin "baserom.gba", 0x0FEAEE, 0x000002C +.endif gUnk_080FEB1A:: @ 080FEB1A +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0FE7CA, 0x00000C2 +.else .incbin "baserom.gba", 0x0FEB1A, 0x00000C2 +.endif gUnk_080FEBDC:: @ 080FEBDC .incbin "baserom.gba", 0x0FEBDC, 0x000000C @@ -1275,7 +1300,12 @@ gUnk_080FEE48:: @ 080FEE48 .incbin "baserom.gba", 0x0FEE48, 0x0000010 gUnk_080FEE58:: @ 080FEE58 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0FEB08, 0x0000020 +.else .incbin "baserom.gba", 0x0FEE58, 0x0000020 +.endif gUnk_080FEE78:: @ 080FEE78 .incbin "baserom.gba", 0x0FEE78, 0x0000030 diff --git a/data/data_080FEEB8.s b/data/data_080FEEB8.s index 1efc0e47..7b5b2f24 100644 --- a/data/data_080FEEB8.s +++ b/data/data_080FEEB8.s @@ -36,7 +36,11 @@ gUnk_080FEF3C:: @ 080FEF3C gUnk_080FEF48:: @ 080FEF48 .incbin "baserom.gba", 0x0FEF48, 0x000000C .4byte script_0800BC50 +.ifdef JP + .incbin "baserom_jp.gba", 0x0FEC08, 0x0000020 +.else .incbin "baserom.gba", 0x0FEF58, 0x0000020 +.endif gUnk_080FEF78:: @ 080FEF78 .incbin "baserom.gba", 0x0FEF78, 0x000000C @@ -1106,13 +1110,26 @@ gUnk_080FFB90:: @ 080FFB90 .incbin "baserom.gba", 0x0FFB90, 0x0000018 gUnk_080FFBA8:: @ 080FFBA8 +.ifdef JP + .incbin "baserom_jp.gba", 0x0FF858, 0x0000035 +.else .incbin "baserom.gba", 0x0FFBA8, 0x0000035 +.endif gUnk_080FFBDD:: @ 080FFBDD +.ifdef JP + .incbin "baserom_jp.gba", 0x0FF88D, 0x000001f +.else .incbin "baserom.gba", 0x0FFBDD, 0x0000013 +.endif gUnk_080FFBF0:: @ 080FFBF0 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0FF8AC, 0x0000024 +.else .incbin "baserom.gba", 0x0FFBF0, 0x0000024 +.endif gUnk_080FFC14:: @ 080FFC14 .incbin "baserom.gba", 0x0FFC14, 0x0000024 @@ -1121,7 +1138,12 @@ gUnk_080FFC38:: @ 080FFC38 .incbin "baserom.gba", 0x0FFC38, 0x0000030 gUnk_080FFC68:: @ 080FFC68 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0FF924, 0x0000018 +.else .incbin "baserom.gba", 0x0FFC68, 0x0000018 +.endif gUnk_080FFC80:: @ 080FFC80 .incbin "baserom.gba", 0x0FFC80, 0x000000C @@ -1139,16 +1161,36 @@ gUnk_080FFCC8:: @ 080FFCC8 .incbin "baserom.gba", 0x0FFCC8, 0x000000C gUnk_080FFCD4:: @ 080FFCD4 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0FF990, 0x0000018 +.else .incbin "baserom.gba", 0x0FFCD4, 0x0000018 +.endif gUnk_080FFCEC:: @ 080FFCEC .incbin "baserom.gba", 0x0FFCEC, 0x0000001 gUnk_080FFCED:: @ 080FFCED +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0FF9A9, 0x0000017 +.else .incbin "baserom.gba", 0x0FFCED, 0x0000017 +.endif gUnk_080FFD04:: @ 080FFD04 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x0FF9C0, 0x0000018 +.else .incbin "baserom.gba", 0x0FFD04, 0x0000018 +.endif + +.ifdef JP +gUnk_080FF9D8:: @ 080FF9D8 + .incbin "baserom_jp.gba", 0x0FF9D8, 0x000000C +.endif gUnk_080FFD1C:: @ 080FFD1C .incbin "baserom.gba", 0x0FFD1C, 0x000000C @@ -1433,7 +1475,12 @@ gUnk_08100358:: @ 08100358 .incbin "baserom.gba", 0x100358, 0x0000030 gUnk_08100388:: @ 08100388 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x100050, 0x0000054 +.else .incbin "baserom.gba", 0x100388, 0x0000054 +.endif gUnk_081003DC:: @ 081003DC .incbin "baserom.gba", 0x1003DC, 0x0000024 @@ -1442,34 +1489,79 @@ gUnk_08100400:: @ 08100400 .incbin "baserom.gba", 0x100400, 0x0000001 gUnk_08100401:: @ 08100401 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x1000C9, 0x0000006 +.else .incbin "baserom.gba", 0x100401, 0x0000006 +.endif gUnk_08100407:: @ 08100407 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x1000CF, 0x000001D +.else .incbin "baserom.gba", 0x100407, 0x000001D +.endif gUnk_08100424:: @ 08100424 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x1000EC, 0x0000048 +.else .incbin "baserom.gba", 0x100424, 0x0000048 +.endif gUnk_0810046C:: @ 0810046C +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x100134, 0x0000048 +.else .incbin "baserom.gba", 0x10046C, 0x0000048 +.endif gUnk_081004B4:: @ 081004B4 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x10017C, 0x0000018 +.else .incbin "baserom.gba", 0x1004B4, 0x0000018 +.endif gUnk_081004CC:: @ 081004CC +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x100194, 0x0000024 +.else .incbin "baserom.gba", 0x1004CC, 0x0000024 +.endif gUnk_081004F0:: @ 081004F0 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x1001B8, 0x0000008 +.else .incbin "baserom.gba", 0x1004F0, 0x0000008 +.endif gUnk_081004F8:: @ 081004F8 .incbin "baserom.gba", 0x1004F8, 0x0000002 gUnk_081004FA:: @ 081004FA +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x1001C2, 0x0000004 +.else .incbin "baserom.gba", 0x1004FA, 0x0000004 +.endif gUnk_081004FE:: @ 081004FE +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x1001C6, 0x0000012 +.else .incbin "baserom.gba", 0x1004FE, 0x0000012 +.endif gUnk_08100510:: @ 08100510 .incbin "baserom.gba", 0x100510, 0x0000001 @@ -1628,7 +1720,12 @@ gUnk_08100940:: @ 08100940 .incbin "baserom.gba", 0x100940, 0x0000030 gUnk_08100970:: @ 08100970 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x100638, 0x000003C +.else .incbin "baserom.gba", 0x100970, 0x000003C +.endif gUnk_081009AC:: @ 081009AC .incbin "baserom.gba", 0x1009AC, 0x000000C @@ -1670,10 +1767,20 @@ gUnk_08100A0C:: @ 08100A0C .incbin "baserom.gba", 0x100A0C, 0x0000005 gUnk_08100A11:: @ 08100A11 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x1006D9, 0x000001F +.else .incbin "baserom.gba", 0x100A11, 0x000001F +.endif gUnk_08100A30:: @ 08100A30 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x1006F8, 0x0000054 +.else .incbin "baserom.gba", 0x100A30, 0x0000054 +.endif gUnk_08100A84:: @ 08100A84 .incbin "baserom.gba", 0x100A84, 0x000000C @@ -1696,7 +1803,11 @@ gUnk_08100AA8:: @ 08100AA8 .4byte gUnk_080FFC8C .4byte gUnk_080FFCEC .4byte gUnk_080FFD04 - .4byte gUnk_080FFD1C +.ifdef JP + .4byte gUnk_080FF9D8 +.else + .4byte gUnk_080FFD1C +.endif .4byte gUnk_080FFC98 .4byte gUnk_080FFCB0 .4byte gUnk_080FFCC8 diff --git a/data/data_0812AA88.s b/data/data_0812AA88.s index 4e250809..5c94a158 100644 --- a/data/data_0812AA88.s +++ b/data/data_0812AA88.s @@ -451,6 +451,768 @@ gUnk_0812B1F8:: @ 0812B1F8 gUnk_0812B204:: @ 0812B204 .incbin "baserom.gba", 0x12B204, 0x0000008 +.ifdef JP +ENUM_12AED0: + .4byte gUnk_0812B204 + .4byte ENUM_12AED0_LV1_CLEAR_MES + .4byte ENUM_12AED0_LV2_CLEAR_MES + .4byte ENUM_12AED0_LV3_CLEAR_MES + .4byte ENUM_12AED0_LV4_CLEAR_MES + .4byte ENUM_12AED0_LV5_CLEAR_MES + .4byte ENUM_12AED0_MIZUUMI_00_BENT + .4byte ENUM_12AED0_MIZUUMI_00_00 + .4byte ENUM_12AED0_MIZUUMI_00_H00 + .4byte ENUM_12AED0_MIZUUMI_00_H01 + .4byte ENUM_12AED0_MIZUUMI_00_H02 + .4byte ENUM_12AED0_HIKYOU_00_T0 + .4byte ENUM_12AED0_HIKYOU_00_T1 + .4byte ENUM_12AED0_MAENIWA_00_00 + .4byte ENUM_12AED0_MAENIWA_00_01 + .4byte ENUM_12AED0_MAENIWA_00_02 + .4byte ENUM_12AED0_MAENIWA_00_BENT + .4byte ENUM_12AED0_MAENIWA_00_WARP + .4byte ENUM_12AED0_MAENIWA_00_T0 + .4byte ENUM_12AED0_MAENIWA_00_T1 + .4byte ENUM_12AED0_MAENIWA_00_CAP_0 + .4byte ENUM_12AED0_NAKANIWA_00_EZERO + .4byte ENUM_12AED0_HIKYOU_00_00 + .4byte ENUM_12AED0_HIKYOU_00_01 + .4byte ENUM_12AED0_HIKYOU_00_02 + .4byte ENUM_12AED0_HIKYOU_00_03 + .4byte ENUM_12AED0_HIKYOU_00_04 + .4byte ENUM_12AED0_HIKYOU_00_CAP_0 + .4byte ENUM_12AED0_HIKYOU_00_CAP_1 + .4byte ENUM_12AED0_HIKYOU_00_CAP_2 + .4byte ENUM_12AED0_HIKYOU_00_SEKIZOU + .4byte ENUM_12AED0_HIKYOU_00_14 + .4byte ENUM_12AED0_HIKYOU_00_BOSEKI + .4byte ENUM_12AED0_HIKYOU_00_H00 + .4byte ENUM_12AED0_HIKYOU_00_M0 + .4byte ENUM_12AED0_HIKYOU_00_M1 + .4byte ENUM_12AED0_HIKYOU_00_M2 + .4byte ENUM_12AED0_LOST_00_ENTER + .4byte ENUM_12AED0_LOST_00_00 + .4byte ENUM_12AED0_LOST_00_01 + .4byte ENUM_12AED0_LOST_02_00 + .4byte ENUM_12AED0_LOST_03_00 + .4byte ENUM_12AED0_LOST_03_T0 + .4byte ENUM_12AED0_LOST_04_00 + .4byte ENUM_12AED0_LOST_04_SIBA0 + .4byte ENUM_12AED0_LOST_04_SIBA1 + .4byte ENUM_12AED0_LOST_04_SIBA2 + .4byte ENUM_12AED0_LOST_04_SIBA3 + .4byte ENUM_12AED0_LOST_04_SIBA4 + .4byte ENUM_12AED0_LOST_05_00 + .4byte ENUM_12AED0_LOST_05_01 + .4byte ENUM_12AED0_LOST_05_T0 + .4byte ENUM_12AED0_LOST_05_T1 + .4byte ENUM_12AED0_MORI_00_HIBI_0 + .4byte ENUM_12AED0_MORI_00_HIBI_1 + .4byte ENUM_12AED0_MORI_00_HIBI_2 + .4byte ENUM_12AED0_MORI_00_HIBI_3 + .4byte ENUM_12AED0_MORI_00_HIBI_4 + .4byte ENUM_12AED0_MORI_00_KOBITO + .4byte ENUM_12AED0_MORI_00_H0 + .4byte ENUM_12AED0_MORI_00_H1 + .4byte ENUM_12AED0_MORI_ENTRANCE_1ST + .4byte ENUM_12AED0_YAMA_00_00 + .4byte ENUM_12AED0_YAMA_00_01 + .4byte ENUM_12AED0_YAMA_01_BW00 + .4byte ENUM_12AED0_YAMA_02_00 + .4byte ENUM_12AED0_YAMA_03_00 + .4byte ENUM_12AED0_YAMA_03_01 + .4byte ENUM_12AED0_YAMA_03_02 + .4byte ENUM_12AED0_YAMA_03_DOKU_0 + .4byte ENUM_12AED0_YAMA_03_DOKU_1 + .4byte ENUM_12AED0_YAMA_03_DOKU_2 + .4byte ENUM_12AED0_YAMA_04_CAP_0 + .4byte ENUM_12AED0_YAMA_04_R00 + .4byte ENUM_12AED0_YAMA_04_HIBI_0 + .4byte ENUM_12AED0_YAMA_04_HIBI_1 + .4byte ENUM_12AED0_YAMA_04_00 + .4byte ENUM_12AED0_YAMA_04_01 + .4byte ENUM_12AED0_YAMA_04_04 + .4byte ENUM_12AED0_YAMA_04_05 + .4byte ENUM_12AED0_YAMA_04_06 + .4byte ENUM_12AED0_YAMA_04_ENTHOUSHI + .4byte ENUM_12AED0_YAMA_04_ANAHOUSHI + .4byte ENUM_12AED0_YAMA_04_BOMBWALL0 + .4byte ENUM_12AED0_HAKA_BUNSHIN_00 + .4byte ENUM_12AED0_HAKA_BOSEKI_00 + .4byte ENUM_12AED0_HAKA_BOSEKI_01 + .4byte ENUM_12AED0_HAKA_BOSEKI_02 + .4byte ENUM_12AED0_HAKA_00_CAP_0 + .4byte ENUM_12AED0_HAKA_00_BW00 + .4byte ENUM_12AED0_HAKA_01_T0 + .4byte ENUM_12AED0_HAKA_KEY_GET + .4byte ENUM_12AED0_SOUGEN_01_WAKAGI_0 + .4byte ENUM_12AED0_SOUGEN_01_WAKAGI_1 + .4byte ENUM_12AED0_SOUGEN_01_WAKAGI_2 + .4byte ENUM_12AED0_SOUGEN_01_WAKAGI_3 + .4byte ENUM_12AED0_SOUGEN_01_WAKAGI_4 + .4byte ENUM_12AED0_SOUGEN_01_WAKAGI_5 + .4byte ENUM_12AED0_SOUGEN_01_WAKAGI_6 + .4byte ENUM_12AED0_SOUGEN_01_WAKAGI_7 + .4byte ENUM_12AED0_SOUGEN_01_WAKAGI_8 + .4byte ENUM_12AED0_SOUGEN_01_WAKAGI_9 + .4byte ENUM_12AED0_SOUGEN_01_WAKAGI_10 + .4byte ENUM_12AED0_SOUGEN_01_WAKAGI_11 + .4byte ENUM_12AED0_SOUGEN_01_WAKAGI_12 + .4byte ENUM_12AED0_SOUGEN_01_00 + .4byte ENUM_12AED0_SOUGEN_01_BENT + .4byte ENUM_12AED0_SOUGEN_01_ZELDA + .4byte ENUM_12AED0_SOUGEN_02_HIBI_0 + .4byte ENUM_12AED0_SOUGEN_02_HIBI_1 + .4byte ENUM_12AED0_SOUGEN_03_BOMBWALL + .4byte ENUM_12AED0_SOUGEN_04_HIBI_0 + .4byte ENUM_12AED0_SOUGEN_04_HIBI_1 + .4byte ENUM_12AED0_SOUGEN_04_HIBI_2 + .4byte ENUM_12AED0_SOUGEN_04_HIBI_3 + .4byte ENUM_12AED0_SOUGEN_05_HIBI_0 + .4byte ENUM_12AED0_SOUGEN_05_HIBI_1 + .4byte ENUM_12AED0_SOUGEN_05_HIBI_2 + .4byte ENUM_12AED0_SOUGEN_05_HIBI_3 + .4byte ENUM_12AED0_SOUGEN_05_BOMB_00 + .4byte ENUM_12AED0_SOUGEN_05_00 + .4byte ENUM_12AED0_SOUGEN_05_01 + .4byte ENUM_12AED0_SOUGEN_05_IWA02 + .4byte ENUM_12AED0_SOUGEN_05_BENT + .4byte ENUM_12AED0_SOUGEN_05_H00 + .4byte ENUM_12AED0_SOUGEN_05_R0 + .4byte ENUM_12AED0_SOUGEN_05_CAP_0 + .4byte ENUM_12AED0_SOUGEN_06_WAKAGI_0 + .4byte ENUM_12AED0_SOUGEN_06_WAKAGI_1 + .4byte ENUM_12AED0_SOUGEN_06_WAKAGI_2 + .4byte ENUM_12AED0_SOUGEN_06_WAKAGI_3 + .4byte ENUM_12AED0_SOUGEN_06_HIBI_0 + .4byte ENUM_12AED0_SOUGEN_06_HIBI_1 + .4byte ENUM_12AED0_SOUGEN_06_HIBI_2 + .4byte ENUM_12AED0_SOUGEN_06_HIBI_3 + .4byte ENUM_12AED0_SOUGEN_06_HIBI_4 + .4byte ENUM_12AED0_SOUGEN_06_IWA_0 + .4byte ENUM_12AED0_SOUGEN_06_AKINDO + .4byte ENUM_12AED0_SOUGEN_06_SAIKAI + .4byte ENUM_12AED0_SOUGEN_06_BENT + .4byte ENUM_12AED0_SOUGEN_06_SLIDE + .4byte ENUM_12AED0_SOUGEN_06_R1 + .4byte ENUM_12AED0_SOUGEN_07_00 + .4byte ENUM_12AED0_SOUGEN_07_01 + .4byte ENUM_12AED0_SOUGEN_07_02 + .4byte ENUM_12AED0_SOUGEN_07_H00 + .4byte ENUM_12AED0_SOUGEN_08_00 + .4byte ENUM_12AED0_SOUGEN_08_01 + .4byte ENUM_12AED0_SOUGEN_08_02 + .4byte ENUM_12AED0_SOUGEN_08_03 + .4byte ENUM_12AED0_SOUGEN_08_04 + .4byte ENUM_12AED0_SOUGEN_08_05 + .4byte ENUM_12AED0_SOUGEN_08_06 + .4byte ENUM_12AED0_SOUGEN_08_07 + .4byte ENUM_12AED0_SOUGEN_08_08 + .4byte ENUM_12AED0_SOUGEN_08_TORITSUKI + .4byte ENUM_12AED0_SOUGEN_08_T00 + .4byte ENUM_12AED0_CASTLE_00_00 + .4byte ENUM_12AED0_CASTLE_04_MEZAME + .4byte ENUM_12AED0_CASTLE_04_MAID_TALK + .4byte ENUM_12AED0_SUIGEN_00_h0 + .4byte ENUM_12AED0_SUIGEN_00_T0 + .4byte ENUM_12AED0_SUIGEN_00_r0 + .4byte ENUM_12AED0_SUIGEN_00_r1 + .4byte ENUM_12AED0_SUIGEN_00_r2 + .4byte ENUM_12AED0_SUIGEN_00_CAP_0 + .4byte ENUM_12AED0_SUIGEN_00_CAP_1 + .4byte ENUM_12AED0_SUIGEN_00_R0 + .4byte ENUM_12AED0_SUIGEN_00_R1 + .4byte ENUM_12AED0_SUIGEN_00_h1 + .4byte ENUM_12AED0_SUIGENGORON_00_CAP_0 + .4byte ENUM_12AED0_DAIGORON_SHIELD + .4byte ENUM_12AED0_DAIGORON_EXCHG + .4byte ENUM_12AED0_BEANDEMO_00 + .4byte ENUM_12AED0_BEANDEMO_01 + .4byte ENUM_12AED0_BEANDEMO_02 + .4byte ENUM_12AED0_BEANDEMO_03 + .4byte ENUM_12AED0_BEANDEMO_04 + .4byte ENUM_12AED0_KAKERA_TAKARA_A + .4byte ENUM_12AED0_KAKERA_TAKARA_E + .4byte ENUM_12AED0_KAKERA_TAKARA_K + .4byte ENUM_12AED0_KAKERA_TAKARA_L + .4byte ENUM_12AED0_KAKERA_TAKARA_M + .4byte ENUM_12AED0_KAKERA_TAKARA_N + .4byte ENUM_12AED0_KAKERA_TAKARA_O + .4byte ENUM_12AED0_KAKERA_TAKARA_P + .4byte ENUM_12AED0_KAKERA_TAKARA_Q + .4byte ENUM_12AED0_KAKERA_TAKARA_R + .4byte ENUM_12AED0_KAKERA_TAKARA_S + .4byte ENUM_12AED0_KAKERA_TAKARA_T + .4byte ENUM_12AED0_KAKERA_TAKARA_U + .4byte ENUM_12AED0_KAKERA_TAKARA_V + .4byte ENUM_12AED0_KAKERA_TAKARA_W + .4byte ENUM_12AED0_KAKERA_TAKARA_X + .4byte ENUM_12AED0_KAKERA_TAKARA_Y + .4byte ENUM_12AED0_KAKERA_TAKARA_Z + .4byte ENUM_12AED0_MACHI_02_HEISHI_TALK + .4byte ENUM_12AED0_MACHI00_00 + .4byte ENUM_12AED0_MACHI00_02 + .4byte ENUM_12AED0_MACHI00_03 + .4byte ENUM_12AED0_MACHI_00_T00 + .4byte ENUM_12AED0_MACHI_00_T01 + .4byte ENUM_12AED0_MACHI_01_DEMO + .4byte ENUM_12AED0_MACHI_02_HEISHI + .4byte ENUM_12AED0_MACHI_02_DOG + .4byte ENUM_12AED0_MACHI_07_BELL + .4byte ENUM_12AED0_SHOP05_OPEN + .4byte ENUM_12AED0_MACHI_MES_20 + .4byte ENUM_12AED0_MACHI_MES_21 + .4byte ENUM_12AED0_MACHI_MES_22 + .4byte ENUM_12AED0_MACHI_MES_23 + .4byte ENUM_12AED0_MACHI_MES_24 + .4byte ENUM_12AED0_MACHI_MES_30 + .4byte ENUM_12AED0_MACHI_MES_40 + .4byte ENUM_12AED0_MACHI_MES_60 + .4byte ENUM_12AED0_MACHI_MES_50 + .4byte ENUM_12AED0_MACHI_DOG_C + .4byte ENUM_12AED0_KUMOUE_00_CAP_0 + .4byte ENUM_12AED0_KUMOUE_01_CAP_0 + .4byte ENUM_12AED0_KUMOUE_01_T0 + .4byte ENUM_12AED0_KUMOUE_01_T1 + .4byte ENUM_12AED0_KUMOUE_01_T2 + .4byte ENUM_12AED0_KUMOUE_01_T3 + .4byte ENUM_12AED0_KUMOUE_01_T4 + .4byte ENUM_12AED0_KUMOUE_01_T5 + .4byte ENUM_12AED0_KUMOUE_01_T6 + .4byte ENUM_12AED0_KUMOUR_01_K0 + .4byte ENUM_12AED0_KUMOUR_01_K1 + .4byte ENUM_12AED0_KUMOUR_01_K2 + .4byte ENUM_12AED0_KUMOUR_01_K3 + .4byte ENUM_12AED0_KUMOUR_01_K4 + .4byte ENUM_12AED0_KUMOUR_01_K5 + .4byte ENUM_12AED0_KUMOUR_01_K6 + .4byte ENUM_12AED0_KUMONOUE_01_KAKERA + .4byte ENUM_12AED0_KUMOUE_02_CAP_0 + .4byte ENUM_12AED0_KUMOUE_02_AWASE_01 + .4byte ENUM_12AED0_KUMOUE_02_AWASE_02 + .4byte ENUM_12AED0_KUMOUE_02_AWASE_03 + .4byte ENUM_12AED0_KUMOUE_02_AWASE_04 + .4byte ENUM_12AED0_KUMOUE_02_AWASE_05 + .4byte ENUM_12AED0_KUMOUE_02_00 + .4byte ENUM_12AED0_KUMOUE_02_01 + .4byte ENUM_12AED0_KUMOUE_02_02 + .4byte ENUM_12AED0_KUMOUE_02_03 + .4byte ENUM_12AED0_KUMOUE_UNCLE_TALK + .4byte ENUM_12AED0_KUMOUE_GIRL_TALK + .4byte ENUM_12AED0_MIZUUMI_00_CAP_0 + .4byte ENUM_12AED0_SUIGEN_00_R2 + .4byte ENUM_12AED0_YAMA_04_CAP_1 + .4byte ENUM_12AED0_LOST_05_02 + .4byte ENUM_12AED0_LOST_05_03 + .4byte ENUM_12AED0_KAKERA_TAKARA_J + .4byte gUnk_0812AC84 +ENUM_12AED0_KAKERA_TAKARA_J: + .ascii "KAKERA_TAKARA_J\0" +ENUM_12AED0_LOST_05_03: + .ascii "LOST_05_03\0\0" +ENUM_12AED0_LOST_05_02: + .ascii "LOST_05_02\0\0" +ENUM_12AED0_YAMA_04_CAP_1: + .ascii "YAMA_04_CAP_1\0\0\0" +ENUM_12AED0_SUIGEN_00_R2: + .ascii "SUIGEN_00_R2\0\0\0\0" +ENUM_12AED0_MIZUUMI_00_CAP_0: + .ascii "MIZUUMI_00_CAP_0\0\0\0\0" +ENUM_12AED0_KUMOUE_GIRL_TALK: + .ascii "KUMOUE_GIRL_TALK\0\0\0\0" +ENUM_12AED0_KUMOUE_UNCLE_TALK: + .ascii "KUMOUE_UNCLE_TALK\0\0\0" +ENUM_12AED0_KUMOUE_02_03: + .ascii "KUMOUE_02_03\0\0\0\0" +ENUM_12AED0_KUMOUE_02_02: + .ascii "KUMOUE_02_02\0\0\0\0" +ENUM_12AED0_KUMOUE_02_01: + .ascii "KUMOUE_02_01\0\0\0\0" +ENUM_12AED0_KUMOUE_02_00: + .ascii "KUMOUE_02_00\0\0\0\0" +ENUM_12AED0_KUMOUE_02_AWASE_05: + .ascii "KUMOUE_02_AWASE_05\0\0" +ENUM_12AED0_KUMOUE_02_AWASE_04: + .ascii "KUMOUE_02_AWASE_04\0\0" +ENUM_12AED0_KUMOUE_02_AWASE_03: + .ascii "KUMOUE_02_AWASE_03\0\0" +ENUM_12AED0_KUMOUE_02_AWASE_02: + .ascii "KUMOUE_02_AWASE_02\0\0" +ENUM_12AED0_KUMOUE_02_AWASE_01: + .ascii "KUMOUE_02_AWASE_01\0\0" +ENUM_12AED0_KUMOUE_02_CAP_0: + .ascii "KUMOUE_02_CAP_0\0" +ENUM_12AED0_KUMONOUE_01_KAKERA: + .ascii "KUMONOUE_01_KAKERA\0\0" +ENUM_12AED0_KUMOUR_01_K6: + .ascii "KUMOUR_01_K6\0\0\0\0" +ENUM_12AED0_KUMOUR_01_K5: + .ascii "KUMOUR_01_K5\0\0\0\0" +ENUM_12AED0_KUMOUR_01_K4: + .ascii "KUMOUR_01_K4\0\0\0\0" +ENUM_12AED0_KUMOUR_01_K3: + .ascii "KUMOUR_01_K3\0\0\0\0" +ENUM_12AED0_KUMOUR_01_K2: + .ascii "KUMOUR_01_K2\0\0\0\0" +ENUM_12AED0_KUMOUR_01_K1: + .ascii "KUMOUR_01_K1\0\0\0\0" +ENUM_12AED0_KUMOUR_01_K0: + .ascii "KUMOUR_01_K0\0\0\0\0" +ENUM_12AED0_KUMOUE_01_T6: + .ascii "KUMOUE_01_T6\0\0\0\0" +ENUM_12AED0_KUMOUE_01_T5: + .ascii "KUMOUE_01_T5\0\0\0\0" +ENUM_12AED0_KUMOUE_01_T4: + .ascii "KUMOUE_01_T4\0\0\0\0" +ENUM_12AED0_KUMOUE_01_T3: + .ascii "KUMOUE_01_T3\0\0\0\0" +ENUM_12AED0_KUMOUE_01_T2: + .ascii "KUMOUE_01_T2\0\0\0\0" +ENUM_12AED0_KUMOUE_01_T1: + .ascii "KUMOUE_01_T1\0\0\0\0" +ENUM_12AED0_KUMOUE_01_T0: + .ascii "KUMOUE_01_T0\0\0\0\0" +ENUM_12AED0_KUMOUE_01_CAP_0: + .ascii "KUMOUE_01_CAP_0\0" +ENUM_12AED0_KUMOUE_00_CAP_0: + .ascii "KUMOUE_00_CAP_0\0" +ENUM_12AED0_MACHI_DOG_C: + .ascii "MACHI_DOG_C\0" +ENUM_12AED0_MACHI_MES_50: + .ascii "MACHI_MES_50\0\0\0\0" +ENUM_12AED0_MACHI_MES_60: + .ascii "MACHI_MES_60\0\0\0\0" +ENUM_12AED0_MACHI_MES_40: + .ascii "MACHI_MES_40\0\0\0\0" +ENUM_12AED0_MACHI_MES_30: + .ascii "MACHI_MES_30\0\0\0\0" +ENUM_12AED0_MACHI_MES_24: + .ascii "MACHI_MES_24\0\0\0\0" +ENUM_12AED0_MACHI_MES_23: + .ascii "MACHI_MES_23\0\0\0\0" +ENUM_12AED0_MACHI_MES_22: + .ascii "MACHI_MES_22\0\0\0\0" +ENUM_12AED0_MACHI_MES_21: + .ascii "MACHI_MES_21\0\0\0\0" +ENUM_12AED0_MACHI_MES_20: + .ascii "MACHI_MES_20\0\0\0\0" +ENUM_12AED0_SHOP05_OPEN: + .ascii "SHOP05_OPEN\0" +ENUM_12AED0_MACHI_07_BELL: + .ascii "MACHI_07_BELL\0\0\0" +ENUM_12AED0_MACHI_02_DOG: + .ascii "MACHI_02_DOG\0\0\0\0" +ENUM_12AED0_MACHI_02_HEISHI: + .ascii "MACHI_02_HEISHI\0" +ENUM_12AED0_MACHI_01_DEMO: + .ascii "MACHI_01_DEMO\0\0\0" +ENUM_12AED0_MACHI_00_T01: + .ascii "MACHI_00_T01\0\0\0\0" +ENUM_12AED0_MACHI_00_T00: + .ascii "MACHI_00_T00\0\0\0\0" +ENUM_12AED0_MACHI00_03: + .ascii "MACHI00_03\0\0" +ENUM_12AED0_MACHI00_02: + .ascii "MACHI00_02\0\0" +ENUM_12AED0_MACHI00_00: + .ascii "MACHI00_00\0\0" +ENUM_12AED0_MACHI_02_HEISHI_TALK: + .ascii "MACHI_02_HEISHI_TALK\0\0\0\0" +ENUM_12AED0_KAKERA_TAKARA_Z: + .ascii "KAKERA_TAKARA_Z\0" +ENUM_12AED0_KAKERA_TAKARA_Y: + .ascii "KAKERA_TAKARA_Y\0" +ENUM_12AED0_KAKERA_TAKARA_X: + .ascii "KAKERA_TAKARA_X\0" +ENUM_12AED0_KAKERA_TAKARA_W: + .ascii "KAKERA_TAKARA_W\0" +ENUM_12AED0_KAKERA_TAKARA_V: + .ascii "KAKERA_TAKARA_V\0" +ENUM_12AED0_KAKERA_TAKARA_U: + .ascii "KAKERA_TAKARA_U\0" +ENUM_12AED0_KAKERA_TAKARA_T: + .ascii "KAKERA_TAKARA_T\0" +ENUM_12AED0_KAKERA_TAKARA_S: + .ascii "KAKERA_TAKARA_S\0" +ENUM_12AED0_KAKERA_TAKARA_R: + .ascii "KAKERA_TAKARA_R\0" +ENUM_12AED0_KAKERA_TAKARA_Q: + .ascii "KAKERA_TAKARA_Q\0" +ENUM_12AED0_KAKERA_TAKARA_P: + .ascii "KAKERA_TAKARA_P\0" +ENUM_12AED0_KAKERA_TAKARA_O: + .ascii "KAKERA_TAKARA_O\0" +ENUM_12AED0_KAKERA_TAKARA_N: + .ascii "KAKERA_TAKARA_N\0" +ENUM_12AED0_KAKERA_TAKARA_M: + .ascii "KAKERA_TAKARA_M\0" +ENUM_12AED0_KAKERA_TAKARA_L: + .ascii "KAKERA_TAKARA_L\0" +ENUM_12AED0_KAKERA_TAKARA_K: + .ascii "KAKERA_TAKARA_K\0" +ENUM_12AED0_KAKERA_TAKARA_E: + .ascii "KAKERA_TAKARA_E\0" +ENUM_12AED0_KAKERA_TAKARA_A: + .ascii "KAKERA_TAKARA_A\0" +ENUM_12AED0_BEANDEMO_04: + .ascii "BEANDEMO_04\0" +ENUM_12AED0_BEANDEMO_03: + .ascii "BEANDEMO_03\0" +ENUM_12AED0_BEANDEMO_02: + .ascii "BEANDEMO_02\0" +ENUM_12AED0_BEANDEMO_01: + .ascii "BEANDEMO_01\0" +ENUM_12AED0_BEANDEMO_00: + .ascii "BEANDEMO_00\0" +ENUM_12AED0_DAIGORON_EXCHG: + .ascii "DAIGORON_EXCHG\0\0" +ENUM_12AED0_DAIGORON_SHIELD: + .ascii "DAIGORON_SHIELD\0" +ENUM_12AED0_SUIGENGORON_00_CAP_0: + .ascii "SUIGENGORON_00_CAP_0\0\0\0\0" +ENUM_12AED0_SUIGEN_00_h1: + .ascii "SUIGEN_00_h1\0\0\0\0" +ENUM_12AED0_SUIGEN_00_R1: + .ascii "SUIGEN_00_R1\0\0\0\0" +ENUM_12AED0_SUIGEN_00_R0: + .ascii "SUIGEN_00_R0\0\0\0\0" +ENUM_12AED0_SUIGEN_00_CAP_1: + .ascii "SUIGEN_00_CAP_1\0" +ENUM_12AED0_SUIGEN_00_CAP_0: + .ascii "SUIGEN_00_CAP_0\0" +ENUM_12AED0_SUIGEN_00_r2: + .ascii "SUIGEN_00_r2\0\0\0\0" +ENUM_12AED0_SUIGEN_00_r1: + .ascii "SUIGEN_00_r1\0\0\0\0" +ENUM_12AED0_SUIGEN_00_r0: + .ascii "SUIGEN_00_r0\0\0\0\0" +ENUM_12AED0_SUIGEN_00_T0: + .ascii "SUIGEN_00_T0\0\0\0\0" +ENUM_12AED0_SUIGEN_00_h0: + .ascii "SUIGEN_00_h0\0\0\0\0" +ENUM_12AED0_CASTLE_04_MAID_TALK: + .ascii "CASTLE_04_MAID_TALK\0" +ENUM_12AED0_CASTLE_04_MEZAME: + .ascii "CASTLE_04_MEZAME\0\0\0\0" +ENUM_12AED0_CASTLE_00_00: + .ascii "CASTLE_00_00\0\0\0\0" +ENUM_12AED0_SOUGEN_08_T00: + .ascii "SOUGEN_08_T00\0\0\0" +ENUM_12AED0_SOUGEN_08_TORITSUKI: + .ascii "SOUGEN_08_TORITSUKI\0" +ENUM_12AED0_SOUGEN_08_08: + .ascii "SOUGEN_08_08\0\0\0\0" +ENUM_12AED0_SOUGEN_08_07: + .ascii "SOUGEN_08_07\0\0\0\0" +ENUM_12AED0_SOUGEN_08_06: + .ascii "SOUGEN_08_06\0\0\0\0" +ENUM_12AED0_SOUGEN_08_05: + .ascii "SOUGEN_08_05\0\0\0\0" +ENUM_12AED0_SOUGEN_08_04: + .ascii "SOUGEN_08_04\0\0\0\0" +ENUM_12AED0_SOUGEN_08_03: + .ascii "SOUGEN_08_03\0\0\0\0" +ENUM_12AED0_SOUGEN_08_02: + .ascii "SOUGEN_08_02\0\0\0\0" +ENUM_12AED0_SOUGEN_08_01: + .ascii "SOUGEN_08_01\0\0\0\0" +ENUM_12AED0_SOUGEN_08_00: + .ascii "SOUGEN_08_00\0\0\0\0" +ENUM_12AED0_SOUGEN_07_H00: + .ascii "SOUGEN_07_H00\0\0\0" +ENUM_12AED0_SOUGEN_07_02: + .ascii "SOUGEN_07_02\0\0\0\0" +ENUM_12AED0_SOUGEN_07_01: + .ascii "SOUGEN_07_01\0\0\0\0" +ENUM_12AED0_SOUGEN_07_00: + .ascii "SOUGEN_07_00\0\0\0\0" +ENUM_12AED0_SOUGEN_06_R1: + .ascii "SOUGEN_06_R1\0\0\0\0" +ENUM_12AED0_SOUGEN_06_SLIDE: + .ascii "SOUGEN_06_SLIDE\0" +ENUM_12AED0_SOUGEN_06_BENT: + .ascii "SOUGEN_06_BENT\0\0" +ENUM_12AED0_SOUGEN_06_SAIKAI: + .ascii "SOUGEN_06_SAIKAI\0\0\0\0" +ENUM_12AED0_SOUGEN_06_AKINDO: + .ascii "SOUGEN_06_AKINDO\0\0\0\0" +ENUM_12AED0_SOUGEN_06_IWA_0: + .ascii "SOUGEN_06_IWA_0\0" +ENUM_12AED0_SOUGEN_06_HIBI_4: + .ascii "SOUGEN_06_HIBI_4\0\0\0\0" +ENUM_12AED0_SOUGEN_06_HIBI_3: + .ascii "SOUGEN_06_HIBI_3\0\0\0\0" +ENUM_12AED0_SOUGEN_06_HIBI_2: + .ascii "SOUGEN_06_HIBI_2\0\0\0\0" +ENUM_12AED0_SOUGEN_06_HIBI_1: + .ascii "SOUGEN_06_HIBI_1\0\0\0\0" +ENUM_12AED0_SOUGEN_06_HIBI_0: + .ascii "SOUGEN_06_HIBI_0\0\0\0\0" +ENUM_12AED0_SOUGEN_06_WAKAGI_3: + .ascii "SOUGEN_06_WAKAGI_3\0\0" +ENUM_12AED0_SOUGEN_06_WAKAGI_2: + .ascii "SOUGEN_06_WAKAGI_2\0\0" +ENUM_12AED0_SOUGEN_06_WAKAGI_1: + .ascii "SOUGEN_06_WAKAGI_1\0\0" +ENUM_12AED0_SOUGEN_06_WAKAGI_0: + .ascii "SOUGEN_06_WAKAGI_0\0\0" +ENUM_12AED0_SOUGEN_05_CAP_0: + .ascii "SOUGEN_05_CAP_0\0" +ENUM_12AED0_SOUGEN_05_R0: + .ascii "SOUGEN_05_R0\0\0\0\0" +ENUM_12AED0_SOUGEN_05_H00: + .ascii "SOUGEN_05_H00\0\0\0" +ENUM_12AED0_SOUGEN_05_BENT: + .ascii "SOUGEN_05_BENT\0\0" +ENUM_12AED0_SOUGEN_05_IWA02: + .ascii "SOUGEN_05_IWA02\0" +ENUM_12AED0_SOUGEN_05_01: + .ascii "SOUGEN_05_01\0\0\0\0" +ENUM_12AED0_SOUGEN_05_00: + .ascii "SOUGEN_05_00\0\0\0\0" +ENUM_12AED0_SOUGEN_05_BOMB_00: + .ascii "SOUGEN_05_BOMB_00\0\0\0" +ENUM_12AED0_SOUGEN_05_HIBI_3: + .ascii "SOUGEN_05_HIBI_3\0\0\0\0" +ENUM_12AED0_SOUGEN_05_HIBI_2: + .ascii "SOUGEN_05_HIBI_2\0\0\0\0" +ENUM_12AED0_SOUGEN_05_HIBI_1: + .ascii "SOUGEN_05_HIBI_1\0\0\0\0" +ENUM_12AED0_SOUGEN_05_HIBI_0: + .ascii "SOUGEN_05_HIBI_0\0\0\0\0" +ENUM_12AED0_SOUGEN_04_HIBI_3: + .ascii "SOUGEN_04_HIBI_3\0\0\0\0" +ENUM_12AED0_SOUGEN_04_HIBI_2: + .ascii "SOUGEN_04_HIBI_2\0\0\0\0" +ENUM_12AED0_SOUGEN_04_HIBI_1: + .ascii "SOUGEN_04_HIBI_1\0\0\0\0" +ENUM_12AED0_SOUGEN_04_HIBI_0: + .ascii "SOUGEN_04_HIBI_0\0\0\0\0" +ENUM_12AED0_SOUGEN_03_BOMBWALL: + .ascii "SOUGEN_03_BOMBWALL\0\0" +ENUM_12AED0_SOUGEN_02_HIBI_1: + .ascii "SOUGEN_02_HIBI_1\0\0\0\0" +ENUM_12AED0_SOUGEN_02_HIBI_0: + .ascii "SOUGEN_02_HIBI_0\0\0\0\0" +ENUM_12AED0_SOUGEN_01_ZELDA: + .ascii "SOUGEN_01_ZELDA\0" +ENUM_12AED0_SOUGEN_01_BENT: + .ascii "SOUGEN_01_BENT\0\0" +ENUM_12AED0_SOUGEN_01_00: + .ascii "SOUGEN_01_00\0\0\0\0" +ENUM_12AED0_SOUGEN_01_WAKAGI_12: + .ascii "SOUGEN_01_WAKAGI_12\0" +ENUM_12AED0_SOUGEN_01_WAKAGI_11: + .ascii "SOUGEN_01_WAKAGI_11\0" +ENUM_12AED0_SOUGEN_01_WAKAGI_10: + .ascii "SOUGEN_01_WAKAGI_10\0" +ENUM_12AED0_SOUGEN_01_WAKAGI_9: + .ascii "SOUGEN_01_WAKAGI_9\0\0" +ENUM_12AED0_SOUGEN_01_WAKAGI_8: + .ascii "SOUGEN_01_WAKAGI_8\0\0" +ENUM_12AED0_SOUGEN_01_WAKAGI_7: + .ascii "SOUGEN_01_WAKAGI_7\0\0" +ENUM_12AED0_SOUGEN_01_WAKAGI_6: + .ascii "SOUGEN_01_WAKAGI_6\0\0" +ENUM_12AED0_SOUGEN_01_WAKAGI_5: + .ascii "SOUGEN_01_WAKAGI_5\0\0" +ENUM_12AED0_SOUGEN_01_WAKAGI_4: + .ascii "SOUGEN_01_WAKAGI_4\0\0" +ENUM_12AED0_SOUGEN_01_WAKAGI_3: + .ascii "SOUGEN_01_WAKAGI_3\0\0" +ENUM_12AED0_SOUGEN_01_WAKAGI_2: + .ascii "SOUGEN_01_WAKAGI_2\0\0" +ENUM_12AED0_SOUGEN_01_WAKAGI_1: + .ascii "SOUGEN_01_WAKAGI_1\0\0" +ENUM_12AED0_SOUGEN_01_WAKAGI_0: + .ascii "SOUGEN_01_WAKAGI_0\0\0" +ENUM_12AED0_HAKA_KEY_GET: + .ascii "HAKA_KEY_GET\0\0\0\0" +ENUM_12AED0_HAKA_01_T0: + .ascii "HAKA_01_T0\0\0" +ENUM_12AED0_HAKA_00_BW00: + .ascii "HAKA_00_BW00\0\0\0\0" +ENUM_12AED0_HAKA_00_CAP_0: + .ascii "HAKA_00_CAP_0\0\0\0" +ENUM_12AED0_HAKA_BOSEKI_02: + .ascii "HAKA_BOSEKI_02\0\0" +ENUM_12AED0_HAKA_BOSEKI_01: + .ascii "HAKA_BOSEKI_01\0\0" +ENUM_12AED0_HAKA_BOSEKI_00: + .ascii "HAKA_BOSEKI_00\0\0" +ENUM_12AED0_HAKA_BUNSHIN_00: + .ascii "HAKA_BUNSHIN_00\0" +ENUM_12AED0_YAMA_04_BOMBWALL0: + .ascii "YAMA_04_BOMBWALL0\0\0\0" +ENUM_12AED0_YAMA_04_ANAHOUSHI: + .ascii "YAMA_04_ANAHOUSHI\0\0\0" +ENUM_12AED0_YAMA_04_ENTHOUSHI: + .ascii "YAMA_04_ENTHOUSHI\0\0\0" +ENUM_12AED0_YAMA_04_06: + .ascii "YAMA_04_06\0\0" +ENUM_12AED0_YAMA_04_05: + .ascii "YAMA_04_05\0\0" +ENUM_12AED0_YAMA_04_04: + .ascii "YAMA_04_04\0\0" +ENUM_12AED0_YAMA_04_01: + .ascii "YAMA_04_01\0\0" +ENUM_12AED0_YAMA_04_00: + .ascii "YAMA_04_00\0\0" +ENUM_12AED0_YAMA_04_HIBI_1: + .ascii "YAMA_04_HIBI_1\0\0" +ENUM_12AED0_YAMA_04_HIBI_0: + .ascii "YAMA_04_HIBI_0\0\0" +ENUM_12AED0_YAMA_04_R00: + .ascii "YAMA_04_R00\0" +ENUM_12AED0_YAMA_04_CAP_0: + .ascii "YAMA_04_CAP_0\0\0\0" +ENUM_12AED0_YAMA_03_DOKU_2: + .ascii "YAMA_03_DOKU_2\0\0" +ENUM_12AED0_YAMA_03_DOKU_1: + .ascii "YAMA_03_DOKU_1\0\0" +ENUM_12AED0_YAMA_03_DOKU_0: + .ascii "YAMA_03_DOKU_0\0\0" +ENUM_12AED0_YAMA_03_02: + .ascii "YAMA_03_02\0\0" +ENUM_12AED0_YAMA_03_01: + .ascii "YAMA_03_01\0\0" +ENUM_12AED0_YAMA_03_00: + .ascii "YAMA_03_00\0\0" +ENUM_12AED0_YAMA_02_00: + .ascii "YAMA_02_00\0\0" +ENUM_12AED0_YAMA_01_BW00: + .ascii "YAMA_01_BW00\0\0\0\0" +ENUM_12AED0_YAMA_00_01: + .ascii "YAMA_00_01\0\0" +ENUM_12AED0_YAMA_00_00: + .ascii "YAMA_00_00\0\0" +ENUM_12AED0_MORI_ENTRANCE_1ST: + .ascii "MORI_ENTRANCE_1ST\0\0\0" +ENUM_12AED0_MORI_00_H1: + .ascii "MORI_00_H1\0\0" +ENUM_12AED0_MORI_00_H0: + .ascii "MORI_00_H0\0\0" +ENUM_12AED0_MORI_00_KOBITO: + .ascii "MORI_00_KOBITO\0\0" +ENUM_12AED0_MORI_00_HIBI_4: + .ascii "MORI_00_HIBI_4\0\0" +ENUM_12AED0_MORI_00_HIBI_3: + .ascii "MORI_00_HIBI_3\0\0" +ENUM_12AED0_MORI_00_HIBI_2: + .ascii "MORI_00_HIBI_2\0\0" +ENUM_12AED0_MORI_00_HIBI_1: + .ascii "MORI_00_HIBI_1\0\0" +ENUM_12AED0_MORI_00_HIBI_0: + .ascii "MORI_00_HIBI_0\0\0" +ENUM_12AED0_LOST_05_T1: + .ascii "LOST_05_T1\0\0" +ENUM_12AED0_LOST_05_T0: + .ascii "LOST_05_T0\0\0" +ENUM_12AED0_LOST_05_01: + .ascii "LOST_05_01\0\0" +ENUM_12AED0_LOST_05_00: + .ascii "LOST_05_00\0\0" +ENUM_12AED0_LOST_04_SIBA4: + .ascii "LOST_04_SIBA4\0\0\0" +ENUM_12AED0_LOST_04_SIBA3: + .ascii "LOST_04_SIBA3\0\0\0" +ENUM_12AED0_LOST_04_SIBA2: + .ascii "LOST_04_SIBA2\0\0\0" +ENUM_12AED0_LOST_04_SIBA1: + .ascii "LOST_04_SIBA1\0\0\0" +ENUM_12AED0_LOST_04_SIBA0: + .ascii "LOST_04_SIBA0\0\0\0" +ENUM_12AED0_LOST_04_00: + .ascii "LOST_04_00\0\0" +ENUM_12AED0_LOST_03_T0: + .ascii "LOST_03_T0\0\0" +ENUM_12AED0_LOST_03_00: + .ascii "LOST_03_00\0\0" +ENUM_12AED0_LOST_02_00: + .ascii "LOST_02_00\0\0" +ENUM_12AED0_LOST_00_01: + .ascii "LOST_00_01\0\0" +ENUM_12AED0_LOST_00_00: + .ascii "LOST_00_00\0\0" +ENUM_12AED0_LOST_00_ENTER: + .ascii "LOST_00_ENTER\0\0\0" +ENUM_12AED0_HIKYOU_00_M2: + .ascii "HIKYOU_00_M2\0\0\0\0" +ENUM_12AED0_HIKYOU_00_M1: + .ascii "HIKYOU_00_M1\0\0\0\0" +ENUM_12AED0_HIKYOU_00_M0: + .ascii "HIKYOU_00_M0\0\0\0\0" +ENUM_12AED0_HIKYOU_00_H00: + .ascii "HIKYOU_00_H00\0\0\0" +ENUM_12AED0_HIKYOU_00_BOSEKI: + .ascii "HIKYOU_00_BOSEKI\0\0\0\0" +ENUM_12AED0_HIKYOU_00_14: + .ascii "HIKYOU_00_14\0\0\0\0" +ENUM_12AED0_HIKYOU_00_SEKIZOU: + .ascii "HIKYOU_00_SEKIZOU\0\0\0" +ENUM_12AED0_HIKYOU_00_CAP_2: + .ascii "HIKYOU_00_CAP_2\0" +ENUM_12AED0_HIKYOU_00_CAP_1: + .ascii "HIKYOU_00_CAP_1\0" +ENUM_12AED0_HIKYOU_00_CAP_0: + .ascii "HIKYOU_00_CAP_0\0" +ENUM_12AED0_HIKYOU_00_04: + .ascii "HIKYOU_00_04\0\0\0\0" +ENUM_12AED0_HIKYOU_00_03: + .ascii "HIKYOU_00_03\0\0\0\0" +ENUM_12AED0_HIKYOU_00_02: + .ascii "HIKYOU_00_02\0\0\0\0" +ENUM_12AED0_HIKYOU_00_01: + .ascii "HIKYOU_00_01\0\0\0\0" +ENUM_12AED0_HIKYOU_00_00: + .ascii "HIKYOU_00_00\0\0\0\0" +ENUM_12AED0_NAKANIWA_00_EZERO: + .ascii "NAKANIWA_00_EZERO\0\0\0" +ENUM_12AED0_MAENIWA_00_CAP_0: + .ascii "MAENIWA_00_CAP_0\0\0\0\0" +ENUM_12AED0_MAENIWA_00_T1: + .ascii "MAENIWA_00_T1\0\0\0" +ENUM_12AED0_MAENIWA_00_T0: + .ascii "MAENIWA_00_T0\0\0\0" +ENUM_12AED0_MAENIWA_00_WARP: + .ascii "MAENIWA_00_WARP\0" +ENUM_12AED0_MAENIWA_00_BENT: + .ascii "MAENIWA_00_BENT\0" +ENUM_12AED0_MAENIWA_00_02: + .ascii "MAENIWA_00_02\0\0\0" +ENUM_12AED0_MAENIWA_00_01: + .ascii "MAENIWA_00_01\0\0\0" +ENUM_12AED0_MAENIWA_00_00: + .ascii "MAENIWA_00_00\0\0\0" +ENUM_12AED0_HIKYOU_00_T1: + .ascii "HIKYOU_00_T1\0\0\0\0" +ENUM_12AED0_HIKYOU_00_T0: + .ascii "HIKYOU_00_T0\0\0\0\0" +ENUM_12AED0_MIZUUMI_00_H02: + .ascii "MIZUUMI_00_H02\0\0" +ENUM_12AED0_MIZUUMI_00_H01: + .ascii "MIZUUMI_00_H01\0\0" +ENUM_12AED0_MIZUUMI_00_H00: + .ascii "MIZUUMI_00_H00\0\0" +ENUM_12AED0_MIZUUMI_00_00: + .ascii "MIZUUMI_00_00\0\0\0" +ENUM_12AED0_MIZUUMI_00_BENT: + .ascii "MIZUUMI_00_BENT\0" +ENUM_12AED0_LV5_CLEAR_MES: + .ascii "LV5_CLEAR_MES\0\0\0" +ENUM_12AED0_LV4_CLEAR_MES: + .ascii "LV4_CLEAR_MES\0\0\0" +ENUM_12AED0_LV3_CLEAR_MES: + .ascii "LV3_CLEAR_MES\0\0\0" +ENUM_12AED0_LV2_CLEAR_MES: + .ascii "LV2_CLEAR_MES\0\0\0" +ENUM_12AED0_LV1_CLEAR_MES: + .ascii "LV1_CLEAR_MES\0\0\0" + +.else + + + .4byte gUnk_0812B204 .4byte gUnk_0812C5F0 .4byte gUnk_0812C5E0 @@ -462,6 +1224,7 @@ gUnk_0812B204:: @ 0812B204 .4byte gUnk_0812C580 .4byte gUnk_0812C570 .4byte gUnk_0812C560 + @.4byte 0000 .4byte gUnk_0812C54C .4byte gUnk_0812C53C .4byte gUnk_0812C52C @@ -701,11 +1464,14 @@ gUnk_0812B204:: @ 0812B204 .4byte gUnk_0812B638 .4byte gUnk_0812B624 .4byte gUnk_0812B61C +.ifndef JP .4byte gUnk_0812B614 .4byte gUnk_0812B60C .4byte gUnk_0812B604 .4byte gUnk_0812AC84 +.endif +.ifndef JP gUnk_0812B604:: @ 0812B604 .incbin "baserom.gba", 0x12B604, 0x0000008 @@ -717,6 +1483,13 @@ gUnk_0812B614:: @ 0812B614 gUnk_0812B61C:: @ 0812B61C .incbin "baserom.gba", 0x12B61C, 0x0000008 +.else +gUnk_0812B61C:: +.space 0x3c +.endif + + + gUnk_0812B624:: @ 0812B624 .incbin "baserom.gba", 0x12B624, 0x0000014 @@ -1470,6 +2243,7 @@ gUnk_0812C5E0:: @ 0812C5E0 gUnk_0812C5F0:: @ 0812C5F0 .incbin "baserom.gba", 0x12C5F0, 0x0000010 +.endif .4byte gUnk_0812B204 .4byte gUnk_0812D688 @@ -1678,13 +2452,16 @@ gUnk_0812C5F0:: @ 0812C5F0 .4byte gUnk_0812C99C .4byte gUnk_0812C98C .4byte gUnk_0812C97C +.ifndef JP .4byte gUnk_0812C974 .4byte gUnk_0812C96C .4byte gUnk_0812C964 .4byte gUnk_0812C95C .4byte gUnk_0812C954 +.endif .4byte gUnk_0812AC84 +.ifndef JP gUnk_0812C954:: @ 0812C954 .incbin "baserom.gba", 0x12C954, 0x0000008 @@ -1699,6 +2476,7 @@ gUnk_0812C96C:: @ 0812C96C gUnk_0812C974:: @ 0812C974 .incbin "baserom.gba", 0x12C974, 0x0000008 +.endif gUnk_0812C97C:: @ 0812C97C .incbin "baserom.gba", 0x12C97C, 0x0000010 @@ -2516,12 +3294,19 @@ gUnk_0812D688:: @ 0812D688 .4byte gUnk_0812DA04 .4byte gUnk_0812D9F4 .4byte gUnk_0812D9E8 +.ifdef JP + .4byte gUnk_0812D9D0 +.else .4byte gUnk_0812D9D0 .4byte gUnk_0812D9C8 +.endif .4byte gUnk_0812AC84 +.ifndef JP gUnk_0812D9C8:: @ 0812D9C8 .incbin "baserom.gba", 0x12D9C8, 0x0000008 +.endif + gUnk_0812D9D0:: @ 0812D9D0 .incbin "baserom.gba", 0x12D9D0, 0x0000018 @@ -3258,14 +4043,17 @@ gUnk_0812E5FC:: @ 0812E5FC .4byte gUnk_0812E8A4 .4byte gUnk_0812E88C .4byte gUnk_0812E874 +.ifndef JP .4byte gUnk_0812E86C .4byte gUnk_0812E864 .4byte gUnk_0812E85C .4byte gUnk_0812E854 .4byte gUnk_0812E84C .4byte gUnk_0812E844 +.endif .4byte gUnk_0812AC84 +.ifndef JP gUnk_0812E844:: @ 0812E844 .incbin "baserom.gba", 0x12E844, 0x0000008 @@ -3280,13 +4068,14 @@ gUnk_0812E85C:: @ 0812E85C gUnk_0812E864:: @ 0812E864 .incbin "baserom.gba", 0x12E864, 0x0000008 - gUnk_0812E86C:: @ 0812E86C .incbin "baserom.gba", 0x12E86C, 0x0000008 +.endif gUnk_0812E874:: @ 0812E874 .incbin "baserom.gba", 0x12E874, 0x0000018 + gUnk_0812E88C:: @ 0812E88C .incbin "baserom.gba", 0x12E88C, 0x0000018 @@ -3781,11 +4570,15 @@ gUnk_0812F494:: @ 0812F494 .4byte gUnk_0812F630 .4byte gUnk_0812F624 .4byte gUnk_0812F614 +.ifndef JP .4byte gUnk_0812F604 +.endif .4byte gUnk_0812AC84 +.ifndef JP gUnk_0812F604:: @ 0812F604 .incbin "baserom.gba", 0x12F604, 0x0000010 +.endif gUnk_0812F614:: @ 0812F614 .incbin "baserom.gba", 0x12F614, 0x0000010 diff --git a/data/data_081320FC.s b/data/data_081320FC.s index 08f472ac..9b794118 100755 --- a/data/data_081320FC.s +++ b/data/data_081320FC.s @@ -30,7 +30,11 @@ gUnk_0813210C:: @ 0813210C .incbin "baserom.gba", 0x1321B4, 0x000000C .4byte gUnk_080FD150 .incbin "baserom.gba", 0x1321C4, 0x000000C +.ifdef JP + .4byte gUnk_080FD150 +.else .4byte gUnk_080FD180 +.endif .incbin "baserom.gba", 0x1321D4, 0x000000C .4byte gUnk_080FD150 .incbin "baserom.gba", 0x1321E4, 0x000000C diff --git a/data/data_08132B30.s b/data/data_08132B30.s index 4536feb3..6a8a5b15 100644 --- a/data/data_08132B30.s +++ b/data/data_08132B30.s @@ -2617,7 +2617,12 @@ gUnk_0813ABE4:: @ 0813ABE4 .incbin "baserom.gba", 0x13ABE4, 0x0000014 gUnk_0813ABF8:: @ 0813ABF8 +.ifdef JP + @ TODO only small differences + .incbin "baserom_jp.gba", 0x13A824, 0x0000014 +.else .incbin "baserom.gba", 0x13ABF8, 0x0000014 +.endif gUnk_0813AC0C:: @ 0813AC0C .incbin "baserom.gba", 0x13AC0C, 0x0000014 @@ -10874,6 +10879,11 @@ gUnk_08544301:: @ 08544301 gUnk_08545666:: @ 08545666 .incbin "baserom.gba", 0x545666, 0x0000F00 +@ TODO JP differs from here +.ifdef JP + .incbin "baserom_jp.gba", 0x546192, 0x5C98E +.else + gUnk_08546566:: @ 08546566 .incbin "baserom.gba", 0x546566, 0x00019E4 @@ -11174,6 +11184,9 @@ gUnk_085A0464:: @ 085A0464 gUnk_085A0806:: @ 085A0806 .incbin "baserom.gba", 0x5A0806, 0x000267A +.endif + +@ TODO JP differs to here gGlobalGfxAndPalettes:: @ 085A2E80 .incbin "baserom.gba", 0x5A2E80, 0x0001382 diff --git a/data/map_headers.s b/data/map_headers.s index 5063f67c..e9ad9eb4 100755 --- a/data/map_headers.s +++ b/data/map_headers.s @@ -2363,208 +2363,463 @@ gAreaRoomMaps_RoyalCrypt:: @ 081062CC .4byte 0x0 gAreaRoomMap_PalaceOfWinds_0:: @ 0810630C +.ifdef JP + map_bottom 0x2246C0+0x74, 0xA8C, 1 + map_top 0x224A00+0x74, 0xA8C, 1, 1 +.else map_bottom 0x2246C0, 0xA8C, 1 map_top 0x224A00, 0xA8C, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_1:: @ 08106324 +.ifdef JP + map_bottom 0x224D14+0x74, 0x12C, 1 + map_top 0x224E04+0x74, 0x12C, 1, 1 +.else map_bottom 0x224D14, 0x12C, 1 map_top 0x224E04, 0x12C, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_2:: @ 0810633C +.ifdef JP + map_bottom 0x224E64+0x74, 0x1A4, 1 + map_top 0x224FBC+0x74, 0x1A4, 1, 1 +.else map_bottom 0x224E64, 0x1A4, 1 map_top 0x224FBC, 0x1A4, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_3:: @ 08106354 +.ifdef JP + map_bottom 0x22505C+0x74, 0x384, 1 + map_top 0x2252A4+0x74, 0x384, 1, 1 +.else map_bottom 0x22505C, 0x384, 1 map_top 0x2252A4, 0x384, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_4:: @ 0810636C +.ifdef JP + map_bottom 0x2253FC+0x74, 0x12C, 1 + map_top 0x2254C8+0x74, 0x12C, 1, 1 +.else map_bottom 0x2253FC, 0x12C, 1 map_top 0x2254C8, 0x12C, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_5:: @ 08106384 +.ifdef JP + map_bottom 0x225524+0x74, 0x384, 1 + map_top 0x22572C+0x74, 0x384, 1, 1 +.else map_bottom 0x225524, 0x384, 1 map_top 0x22572C, 0x384, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_6:: @ 0810639C +.ifdef JP + map_bottom 0x225850+0x74, 0x384, 1 + map_top 0x225A40+0x74, 0x384, 1, 1 +.else map_bottom 0x225850, 0x384, 1 map_top 0x225A40, 0x384, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_7:: @ 081063B4 +.ifdef JP + map_bottom 0x225B60+0x74, 0x384, 1 + map_top 0x225D68+0x74, 0x384, 1, 1 +.else map_bottom 0x225B60, 0x384, 1 map_top 0x225D68, 0x384, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_8:: @ 081063CC +.ifdef JP + map_bottom 0x225E98+0x74, 0x258, 1 + map_top 0x22601C+0x74, 0x258, 1, 1 +.else map_bottom 0x225E98, 0x258, 1 map_top 0x22601C, 0x258, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_9:: @ 081063E4 +.ifdef JP + map_bottom 0x226128+0x74, 0x12C, 1 + map_top 0x226200+0x74, 0x12C, 1, 1 +.else map_bottom 0x226128, 0x12C, 1 map_top 0x226200, 0x12C, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_10:: @ 081063FC +.ifdef JP + map_bottom 0x226264+0x74, 0x186, 1 + map_top 0x226364+0x74, 0x186, 1, 1 +.else map_bottom 0x226264, 0x186, 1 map_top 0x226364, 0x186, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_11:: @ 08106414 +.ifdef JP + map_bottom 0x226418+0x74, 0x12C, 1 + map_top 0x2264FC+0x74, 0x12C, 1, 1 +.else map_bottom 0x226418, 0x12C, 1 map_top 0x2264FC, 0x12C, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_12:: @ 0810642C +.ifdef JP + map_bottom 0x226578+0x74, 0x1E0, 1 + map_top 0x22663C+0x74, 0x1E0, 1, 1 +.else map_bottom 0x226578, 0x1E0, 1 map_top 0x22663C, 0x1E0, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_13:: @ 08106444 +.ifdef JP + map_bottom 0x2266BC+0x74, 0x12C, 1 + map_top 0x22679C+0x74, 0x12C, 1, 1 +.else map_bottom 0x2266BC, 0x12C, 1 map_top 0x22679C, 0x12C, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_14:: @ 0810645C +.ifdef JP + map_bottom 0x226818+0x74, 0x258, 1 + map_top 0x226948+0x74, 0x258, 1, 1 +.else map_bottom 0x226818, 0x258, 1 map_top 0x226948, 0x258, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_15:: @ 08106474 +.ifdef JP + map_bottom 0x2269F4+0x74, 0x708, 1 + map_top 0x226C3C+0x74, 0x708, 1, 1 +.else map_bottom 0x2269F4, 0x708, 1 map_top 0x226C3C, 0x708, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_16:: @ 0810648C +.ifdef JP + map_bottom 0x226E70+0x74, 0xA8C, 1 + map_top 0x2271A4+0x74, 0xA8C, 1, 1 +.else map_bottom 0x226E70, 0xA8C, 1 map_top 0x2271A4, 0xA8C, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_17:: @ 081064A4 +.ifdef JP + map_bottom 0x22745C+0x74, 0x384, 1 + map_top 0x227668+0x74, 0x384, 1, 1 +.else map_bottom 0x22745C, 0x384, 1 map_top 0x227668, 0x384, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_18:: @ 081064BC +.ifdef JP + map_bottom 0x227774+0x74, 0x258, 1 + map_top 0x227860+0x74, 0x258, 1, 1 +.else map_bottom 0x227774, 0x258, 1 map_top 0x227860, 0x258, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_19:: @ 081064D4 +.ifdef JP + map_bottom 0x227924+0x74, 0x4B0, 1 + map_top 0x227B6C+0x74, 0x4B0, 1, 1 +.else map_bottom 0x227924, 0x4B0, 1 map_top 0x227B6C, 0x4B0, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_20:: @ 081064EC +.ifdef JP + map_bottom 0x227D34+0x74, 0x258, 1 + map_top 0x227EA8+0x74, 0x258, 1, 1 +.else map_bottom 0x227D34, 0x258, 1 map_top 0x227EA8, 0x258, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_21:: @ 08106504 +.ifdef JP + map_bottom 0x227F48+0x74, 0x708, 1 + map_top 0x228330+0x74, 0x708, 1, 1 +.else map_bottom 0x227F48, 0x708, 1 map_top 0x228330, 0x708, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_22:: @ 0810651C +.ifdef JP + map_bottom 0x22856C+0x74, 0x4B0, 1 + map_top 0x2287B8+0x74, 0x4B0, 1, 1 +.else map_bottom 0x22856C, 0x4B0, 1 map_top 0x2287B8, 0x4B0, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_23:: @ 08106534 +.ifdef JP + map_bottom 0x228988+0x74, 0x258, 1 + map_top 0x228A58+0x74, 0x258, 1, 1 +.else map_bottom 0x228988, 0x258, 1 map_top 0x228A58, 0x258, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_24:: @ 0810654C +.ifdef JP + map_bottom 0x228AFC+0x74, 0x4B0, 1 + map_top 0x228C7C+0x74, 0x4B0, 1, 1 +.else map_bottom 0x228AFC, 0x4B0, 1 map_top 0x228C7C, 0x4B0, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_25:: @ 08106564 +.ifdef JP + map_bottom 0x228DE4+0x74, 0x4B0, 1 + map_top 0x228F90+0x74, 0x4B0, 1, 1 +.else map_bottom 0x228DE4, 0x4B0, 1 map_top 0x228F90, 0x4B0, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_26:: @ 0810657C +.ifdef JP + map_bottom 0x229138+0x74, 0x4B0, 1 + map_top 0x2293A4+0x74, 0x4B0, 1, 1 +.else map_bottom 0x229138, 0x4B0, 1 map_top 0x2293A4, 0x4B0, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_27:: @ 08106594 +.ifdef JP + map_bottom 0x229574+0x74, 0x12C, 1 + map_top 0x22964C+0x74, 0x12C, 1, 1 +.else map_bottom 0x229574, 0x12C, 1 map_top 0x22964C, 0x12C, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_28:: @ 081065AC +.ifdef JP + map_bottom 0x2296D8+0x74, 0x12C, 1 + map_top 0x2297C0+0x74, 0x12C, 1, 1 +.else map_bottom 0x2296D8, 0x12C, 1 map_top 0x2297C0, 0x12C, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_29:: @ 081065C4 +.ifdef JP + map_bottom 0x229820+0x74, 0x12C, 1 + map_top 0x2298F8+0x74, 0x12C, 1, 1 +.else map_bottom 0x229820, 0x12C, 1 map_top 0x2298F8, 0x12C, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_30:: @ 081065DC +.ifdef JP + map_bottom 0x229978+0x74, 0x12C, 1 + map_top 0x229A58+0x74, 0x12C, 1, 1 +.else map_bottom 0x229978, 0x12C, 1 map_top 0x229A58, 0x12C, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_31:: @ 081065F4 +.ifdef JP + map_bottom 0x229AD4+0x74, 0x12C, 1 + map_top 0x229BA4+0x74, 0x12C, 1, 1 +.else map_bottom 0x229AD4, 0x12C, 1 map_top 0x229BA4, 0x12C, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_32:: @ 0810660C +.ifdef JP + map_bottom 0x229C14+0x74, 0x12C, 1 + map_top 0x229CE8+0x74, 0x12C, 1, 1 +.else map_bottom 0x229C14, 0x12C, 1 map_top 0x229CE8, 0x12C, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_33:: @ 08106624 +.ifdef JP + map_bottom 0x229D5C+0x74, 0xA8C, 1 + map_top 0x22A0F0+0x74, 0xA8C, 1, 1 +.else map_bottom 0x229D5C, 0xA8C, 1 map_top 0x22A0F0, 0xA8C, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_34:: @ 0810663C +.ifdef JP + map_bottom 0x22A454+0x74, 0x708, 1 + map_top 0x22A760+0x74, 0x708, 1, 1 +.else map_bottom 0x22A454, 0x708, 1 map_top 0x22A760, 0x708, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_35:: @ 08106654 +.ifdef JP + map_bottom 0x22A99C+0x74, 0x258, 1 + map_top 0x22AB10+0x74, 0x258, 1, 1 +.else map_bottom 0x22A99C, 0x258, 1 map_top 0x22AB10, 0x258, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_36:: @ 0810666C +.ifdef JP + map_bottom 0x22ABF0+0x74, 0x4B0, 1 + map_top 0x22AD78+0x74, 0x4B0, 1, 1 +.else map_bottom 0x22ABF0, 0x4B0, 1 map_top 0x22AD78, 0x4B0, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_37:: @ 08106684 +.ifdef JP + map_bottom 0x22AEC4+0x74, 0x12C, 1 + map_top 0x22AFC4+0x74, 0x12C, 1, 1 +.else map_bottom 0x22AEC4, 0x12C, 1 map_top 0x22AFC4, 0x12C, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_38:: @ 0810669C +.ifdef JP + map_bottom 0x22B03C+0x74, 0x12C, 1 + map_top 0x22B150+0x74, 0x12C, 1, 1 +.else map_bottom 0x22B03C, 0x12C, 1 map_top 0x22B150, 0x12C, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_39:: @ 081066B4 +.ifdef JP + map_bottom 0x22B1B0+0x74, 0x12C, 1 + map_top 0x22B2A8+0x74, 0x12C, 1, 1 +.else map_bottom 0x22B1B0, 0x12C, 1 map_top 0x22B2A8, 0x12C, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_40:: @ 081066CC +.ifdef JP + map_bottom 0x22B324+0x74, 0x12C, 1 + map_top 0x22B414+0x74, 0x12C, 1, 1 +.else map_bottom 0x22B324, 0x12C, 1 map_top 0x22B414, 0x12C, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_41:: @ 081066E4 +.ifdef JP + map_bottom 0x22B498+0x74, 0x12C, 1 + map_top 0x22B56C+0x74, 0x12C, 1, 1 +.else map_bottom 0x22B498, 0x12C, 1 map_top 0x22B56C, 0x12C, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_42:: @ 081066FC +.ifdef JP + map_bottom 0x22B5EC+0x74, 0x12C, 1 + map_top 0x22B6D8+0x74, 0x12C, 1, 1 +.else map_bottom 0x22B5EC, 0x12C, 1 map_top 0x22B6D8, 0x12C, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_43:: @ 08106714 +.ifdef JP + map_bottom 0x22B758+0x74, 0x258, 1 + map_top 0x22B8B4+0x74, 0x258, 1, 1 +.else map_bottom 0x22B758, 0x258, 1 map_top 0x22B8B4, 0x258, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_44:: @ 0810672C +.ifdef JP + map_bottom 0x22B994+0x74, 0x708, 1 + map_top 0x22BC78+0x74, 0x708, 1, 1 +.else map_bottom 0x22B994, 0x708, 1 map_top 0x22BC78, 0x708, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_45:: @ 08106744 +.ifdef JP + map_bottom 0x22BE68+0x74, 0x708, 1 + map_top 0x22C07C+0x74, 0x708, 1, 1 +.else map_bottom 0x22BE68, 0x708, 1 map_top 0x22C07C, 0x708, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_46:: @ 0810675C +.ifdef JP + map_bottom 0x22C304+0x74, 0x550, 1 + map_top 0x22C4B0+0x74, 0x550, 1, 1 +.else map_bottom 0x22C304, 0x550, 1 map_top 0x22C4B0, 0x550, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_47:: @ 08106774 +.ifdef JP + map_bottom 0x22C648+0x74, 0x12C, 1 + map_top 0x22C6C8+0x74, 0x12C, 1, 1 +.else map_bottom 0x22C648, 0x12C, 1 map_top 0x22C6C8, 0x12C, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_48:: @ 0810678C +.ifdef JP + map_bottom 0x22C71C+0x74, 0x500, 1 + map_top 0x22C9C0+0x74, 0x500, 1, 1 +.else map_bottom 0x22C71C, 0x500, 1 map_top 0x22C9C0, 0x500, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_49:: @ 081067A4 +.ifdef JP + map_bottom 0x22CB00+0x74, 0x3DE, 1 + map_top 0x22CC68+0x74, 0x3DE, 1, 1 +.else map_bottom 0x22CB00, 0x3DE, 1 map_top 0x22CC68, 0x3DE, 1, 1 +.endif gAreaRoomMap_PalaceOfWinds_50:: @ 081067BC +.ifdef JP + map_bottom 0x22CD70+0x74, 0x708, 1 + map_top 0x22D070+0x74, 0x708, 1, 1 +.else map_bottom 0x22CD70, 0x708, 1 map_top 0x22D070, 0x708, 1, 1 +.endif gAreaRoomMaps_PalaceOfWinds:: @ 081067D4 .4byte gAreaRoomMap_PalaceOfWinds_0 @@ -2620,22 +2875,41 @@ gAreaRoomMaps_PalaceOfWinds:: @ 081067D4 .4byte gAreaRoomMap_PalaceOfWinds_50 gAreaRoomMap_PalaceOfWindsBoss_0:: @ 081068A0 +.ifdef JP + map_top 0x22D2B8+0x74, 0x1F80, 1, 1 +.else map_top 0x22D2B8, 0x1F80, 1, 1 +.endif gAreaRoomMaps_PalaceOfWindsBoss:: @ 081068AC .4byte gAreaRoomMap_PalaceOfWindsBoss_0 gAreaRoomMap_Sanctuary_0:: @ 081068B0 +.ifdef JP + map_bottom 0x236A08+0x74, 0x6D6, 1 + map_top 0x236D1C+0x74, 0x6D6, 1, 1 +.else map_bottom 0x236A08, 0x6D6, 1 map_top 0x236D1C, 0x6D6, 1, 1 +.endif gAreaRoomMap_Sanctuary_1:: @ 081068C8 +.ifdef JP + map_bottom 0x236E14+0x74, 0x910, 1 + map_top 0x237320+0x74, 0x910, 1, 1 +.else map_bottom 0x236E14, 0x910, 1 map_top 0x237320, 0x910, 1, 1 +.endif gAreaRoomMap_Sanctuary_2:: @ 081068E0 +.ifdef JP + map_bottom 0x2375D8+0x74, 0x344, 1 + map_top 0x23788C+0x74, 0x344, 1, 1 +.else map_bottom 0x2375D8, 0x344, 1 map_top 0x23788C, 0x344, 1, 1 +.endif gAreaRoomMaps_Sanctuary:: @ 081068F8 .4byte gAreaRoomMap_Sanctuary_0 @@ -2648,32 +2922,67 @@ gAreaRoomMaps_Sanctuary:: @ 081068F8 .4byte 0x0 gAreaRoomMap_HyruleCastle_0:: @ 08106918 +.ifdef JP + map_bottom 0x240B44+0x74, 0x7CE, 1 + map_top 0x240F30+0x74, 0x7CE, 1, 1 +.else map_bottom 0x240B44, 0x7CE, 1 map_top 0x240F30, 0x7CE, 1, 1 +.endif gAreaRoomMap_HyruleCastle_1:: @ 08106930 +.ifdef JP + map_bottom 0x241118+0x74, 0x7FE, 1 + map_top 0x241424+0x74, 0x7FE, 1, 1 +.else map_bottom 0x241118, 0x7FE, 1 map_top 0x241424, 0x7FE, 1, 1 +.endif gAreaRoomMap_HyruleCastle_2:: @ 08106948 +.ifdef JP + map_bottom 0x2415B0+0x74, 0x2EC, 1 + map_top 0x2417B8+0x74, 0x2EC, 1, 1 +.else map_bottom 0x2415B0, 0x2EC, 1 map_top 0x2417B8, 0x2EC, 1, 1 +.endif gAreaRoomMap_HyruleCastle_3:: @ 08106960 +.ifdef JP + map_bottom 0x24186C+0x74, 0xC94, 1 + map_top 0x241D18+0x74, 0xC94, 1, 1 +.else map_bottom 0x24186C, 0xC94, 1 map_top 0x241D18, 0xC94, 1, 1 +.endif gAreaRoomMap_HyruleCastle_4:: @ 08106978 +.ifdef JP + map_bottom 0x241EF0+0x74, 0x1FE, 1 + map_top 0x242044+0x74, 0x1FE, 1, 1 +.else map_bottom 0x241EF0, 0x1FE, 1 map_top 0x242044, 0x1FE, 1, 1 +.endif gAreaRoomMap_HyruleCastle_5:: @ 08106990 +.ifdef JP + map_bottom 0x2420A4+0x74, 0x12C, 1 + map_top 0x24217C+0x74, 0x12C, 1, 1 +.else map_bottom 0x2420A4, 0x12C, 1 map_top 0x24217C, 0x12C, 1, 1 +.endif gAreaRoomMap_HyruleCastle_6:: @ 081069A8 +.ifdef JP + map_bottom 0x2421A8+0x74, 0x12C, 1 + map_top 0x242274+0x74, 0x12C, 1, 1 +.else map_bottom 0x2421A8, 0x12C, 1 map_top 0x242274, 0x12C, 1, 1 +.endif gAreaRoomMaps_HyruleCastle:: @ 081069C0 .4byte gAreaRoomMap_HyruleCastle_0 @@ -2694,251 +3003,556 @@ gAreaRoomMaps_HyruleCastle:: @ 081069C0 .4byte 0x0 gAreaRoomMap_SanctuaryEntrance_0:: @ 08106A00 +.ifdef JP + map_bottom 0x247218+0x74, 0x396, 1 + map_top 0x24745C+0x74, 0x396, 1, 1 +.else map_bottom 0x247218, 0x396, 1 map_top 0x24745C, 0x396, 1, 1 +.endif gAreaRoomMaps_SanctuaryEntrance:: @ 08106A18 .4byte gAreaRoomMap_SanctuaryEntrance_0 gAreaRoomMap_DarkHyruleCastle_0:: @ 08106A1C +.ifdef JP + map_bottom 0x264EF4+0x74, 0xE58, 1 + map_top 0x265378+0x74, 0xE58, 1, 1 +.else map_bottom 0x264EF4, 0xE58, 1 map_top 0x265378, 0xE58, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_1:: @ 08106A34 +.ifdef JP + map_bottom 0x2657C8+0x74, 0x1BA, 1 + map_top 0x2658A4+0x74, 0x1BA, 1, 1 +.else map_bottom 0x2657C8, 0x1BA, 1 map_top 0x2658A4, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_2:: @ 08106A4C +.ifdef JP + map_bottom 0x265964+0x74, 0x1BA, 1 + map_top 0x265A44+0x74, 0x1BA, 1, 1 +.else map_bottom 0x265964, 0x1BA, 1 map_top 0x265A44, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_3:: @ 08106A64 +.ifdef JP + map_bottom 0x265B18+0x74, 0x1BA, 1 + map_top 0x265C08+0x74, 0x1BA, 1, 1 +.else map_bottom 0x265B18, 0x1BA, 1 map_top 0x265C08, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_4:: @ 08106A7C +.ifdef JP + map_bottom 0x265CD4+0x74, 0x1BA, 1 + map_top 0x265DC8+0x74, 0x1BA, 1, 1 +.else map_bottom 0x265CD4, 0x1BA, 1 map_top 0x265DC8, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_5:: @ 08106A94 +.ifdef JP + map_bottom 0x265E98+0x74, 0x444, 1 + map_top 0x2660BC+0x74, 0x444, 1, 1 +.else map_bottom 0x265E98, 0x444, 1 map_top 0x2660BC, 0x444, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_6:: @ 08106AAC +.ifdef JP + map_bottom 0x26620C+0x74, 0x2A0, 1 + map_top 0x2663A0+0x74, 0x2A0, 1, 1 +.else map_bottom 0x26620C, 0x2A0, 1 map_top 0x2663A0, 0x2A0, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_7:: @ 08106AC4 +.ifdef JP + map_bottom 0x2664A0+0x74, 0x374, 1 + map_top 0x2665EC+0x74, 0x374, 1, 1 +.else map_bottom 0x2664A0, 0x374, 1 map_top 0x2665EC, 0x374, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_8:: @ 08106ADC +.ifdef JP + map_bottom 0x266730+0x74, 0x374, 1 + map_top 0x266910+0x74, 0x374, 1, 1 +.else map_bottom 0x266730, 0x374, 1 map_top 0x266910, 0x374, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_9:: @ 08106AF4 +.ifdef JP + map_bottom 0x266A44+0x74, 0x1FE, 1 + map_top 0x266B98+0x74, 0x1FE, 1, 1 +.else map_bottom 0x266A44, 0x1FE, 1 map_top 0x266B98, 0x1FE, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_10:: @ 08106B0C +.ifdef JP + map_bottom 0x266C78+0x74, 0x1BA, 1 + map_top 0x266DA4+0x74, 0x1BA, 1, 1 +.else map_bottom 0x266C78, 0x1BA, 1 map_top 0x266DA4, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_11:: @ 08106B24 +.ifdef JP + map_bottom 0x266E70+0x74, 0x1BA, 1 + map_top 0x266F7C+0x74, 0x1BA, 1, 1 +.else map_bottom 0x266E70, 0x1BA, 1 map_top 0x266F7C, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_12:: @ 08106B3C +.ifdef JP + map_bottom 0x26701C+0x74, 0x1BA, 1 + map_top 0x26712C+0x74, 0x1BA, 1, 1 +.else map_bottom 0x26701C, 0x1BA, 1 map_top 0x26712C, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_13:: @ 08106B54 +.ifdef JP + map_bottom 0x2671DC+0x74, 0x1BA, 1 + map_top 0x2672E8+0x74, 0x1BA, 1, 1 +.else map_bottom 0x2671DC, 0x1BA, 1 map_top 0x2672E8, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_14:: @ 08106B6C +.ifdef JP + map_bottom 0x2673B4+0x74, 0x1BA, 1 + map_top 0x2674F0+0x74, 0x1BA, 1, 1 +.else map_bottom 0x2673B4, 0x1BA, 1 map_top 0x2674F0, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_15:: @ 08106B84 +.ifdef JP + map_bottom 0x2675D4+0x74, 0x1BA, 1 + map_top 0x2676F8+0x74, 0x1BA, 1, 1 +.else map_bottom 0x2675D4, 0x1BA, 1 map_top 0x2676F8, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_16:: @ 08106B9C +.ifdef JP + map_bottom 0x2677BC+0x74, 0x1BA, 1 + map_top 0x2678F0+0x74, 0x1BA, 1, 1 +.else map_bottom 0x2677BC, 0x1BA, 1 map_top 0x2678F0, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_17:: @ 08106BB4 +.ifdef JP + map_bottom 0x2679D0+0x74, 0x2A8, 1 + map_top 0x267B70+0x74, 0x2A8, 1, 1 +.else map_bottom 0x2679D0, 0x2A8, 1 map_top 0x267B70, 0x2A8, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_18:: @ 08106BCC +.ifdef JP + map_bottom 0x267C98+0x74, 0x2A8, 1 + map_top 0x267E00+0x74, 0x2A8, 1, 1 +.else map_bottom 0x267C98, 0x2A8, 1 map_top 0x267E00, 0x2A8, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_19:: @ 08106BE4 +.ifdef JP + map_bottom 0x267F48+0x74, 0x1BA, 1 + map_top 0x268080+0x74, 0x1BA, 1, 1 +.else map_bottom 0x267F48, 0x1BA, 1 map_top 0x268080, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_20:: @ 08106BFC +.ifdef JP + map_bottom 0x268168+0x74, 0x1BA, 1 + map_top 0x2682C8+0x74, 0x1BA, 1, 1 +.else map_bottom 0x268168, 0x1BA, 1 map_top 0x2682C8, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_21:: @ 08106C14 +.ifdef JP + map_bottom 0x2683A4+0x74, 0x1BA, 1 + map_top 0x2684CC+0x74, 0x1BA, 1, 1 +.else map_bottom 0x2683A4, 0x1BA, 1 map_top 0x2684CC, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_22:: @ 08106C2C +.ifdef JP + map_bottom 0x2685A8+0x74, 0x1BA, 1 + map_top 0x2686B0+0x74, 0x1BA, 1, 1 +.else map_bottom 0x2685A8, 0x1BA, 1 map_top 0x2686B0, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_23:: @ 08106C44 +.ifdef JP + map_bottom 0x26876C+0x74, 0x374, 1 + map_top 0x268930+0x74, 0x374, 1, 1 +.else map_bottom 0x26876C, 0x374, 1 map_top 0x268930, 0x374, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_24:: @ 08106C5C +.ifdef JP + map_bottom 0x268A98+0x74, 0x374, 1 + map_top 0x268C2C+0x74, 0x374, 1, 1 +.else map_bottom 0x268A98, 0x374, 1 map_top 0x268C2C, 0x374, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_25:: @ 08106C74 +.ifdef JP + map_bottom 0x268D54+0x74, 0x1BA, 1 + map_top 0x268E3C+0x74, 0x1BA, 1, 1 +.else map_bottom 0x268D54, 0x1BA, 1 map_top 0x268E3C, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_26:: @ 08106C8C +.ifdef JP + map_bottom 0x268F0C+0x74, 0x1BA, 1 + map_top 0x269010+0x74, 0x1BA, 1, 1 +.else map_bottom 0x268F0C, 0x1BA, 1 map_top 0x269010, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_27:: @ 08106CA4 +.ifdef JP + map_bottom 0x2690AC+0x74, 0x1BA, 1 + map_top 0x2690E8+0x74, 0x1BA, 1, 1 +.else map_bottom 0x2690AC, 0x1BA, 1 map_top 0x2690E8, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_28:: @ 08106CBC +.ifdef JP + map_bottom 0x269168+0x74, 0x1BA, 1 + map_top 0x269290+0x74, 0x1BA, 1, 1 +.else map_bottom 0x269168, 0x1BA, 1 map_top 0x269290, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_29:: @ 08106CD4 +.ifdef JP + map_bottom 0x26936C+0x74, 0x374, 1 + map_top 0x2694B0+0x74, 0x374, 1, 1 +.else map_bottom 0x26936C, 0x374, 1 map_top 0x2694B0, 0x374, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_30:: @ 08106CEC +.ifdef JP + map_bottom 0x2695F0+0x74, 0x1BA, 1 + map_top 0x2696D4+0x74, 0x1BA, 1, 1 +.else map_bottom 0x2695F0, 0x1BA, 1 map_top 0x2696D4, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_31:: @ 08106D04 +.ifdef JP + map_bottom 0x269794+0x74, 0x1BA, 1 + map_top 0x2698E4+0x74, 0x1BA, 1, 1 +.else map_bottom 0x269794, 0x1BA, 1 map_top 0x2698E4, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_32:: @ 08106D1C +.ifdef JP + map_bottom 0x2699BC+0x74, 0x1BA, 1 + map_top 0x269AF0+0x74, 0x1BA, 1, 1 +.else map_bottom 0x2699BC, 0x1BA, 1 map_top 0x269AF0, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_33:: @ 08106D34 +.ifdef JP + map_bottom 0x269BD8+0x74, 0x1BA, 1 + map_top 0x269CE0+0x74, 0x1BA, 1, 1 +.else map_bottom 0x269BD8, 0x1BA, 1 map_top 0x269CE0, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_34:: @ 08106D4C +.ifdef JP + map_bottom 0x269DB4+0x74, 0x1BA, 1 + map_top 0x269ED0+0x74, 0x1BA, 1, 1 +.else map_bottom 0x269DB4, 0x1BA, 1 map_top 0x269ED0, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_35:: @ 08106D64 +.ifdef JP + map_bottom 0x269FAC+0x74, 0x1BA, 1 + map_top 0x269FE8+0x74, 0x1BA, 1, 1 +.else map_bottom 0x269FAC, 0x1BA, 1 map_top 0x269FE8, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_36:: @ 08106D7C +.ifdef JP + map_bottom 0x26A168+0x74, 0x1BA, 1 + map_top 0x26A1A4+0x74, 0x1BA, 1, 1 +.else map_bottom 0x26A168, 0x1BA, 1 map_top 0x26A1A4, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_37:: @ 08106D94 +.ifdef JP + map_bottom 0x26A2F8+0x74, 0x1BA, 1 + map_top 0x26A334+0x74, 0x1BA, 1, 1 +.else map_bottom 0x26A2F8, 0x1BA, 1 map_top 0x26A334, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_38:: @ 08106DAC +.ifdef JP + map_bottom 0x26A4A0+0x74, 0x2A8, 1 + map_top 0x26A5CC+0x74, 0x2A8, 1, 1 +.else map_bottom 0x26A4A0, 0x2A8, 1 map_top 0x26A5CC, 0x2A8, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_39:: @ 08106DC4 +.ifdef JP + map_bottom 0x26A70C+0x74, 0x2A8, 1 + map_top 0x26A7BC+0x74, 0x2A8, 1, 1 +.else map_bottom 0x26A70C, 0x2A8, 1 map_top 0x26A7BC, 0x2A8, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_40:: @ 08106DDC +.ifdef JP + map_bottom 0x26A940+0x74, 0x1BA, 1 + map_top 0x26AA24+0x74, 0x1BA, 1, 1 +.else map_bottom 0x26A940, 0x1BA, 1 map_top 0x26AA24, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_41:: @ 08106DF4 +.ifdef JP + map_bottom 0x26AAF8+0x74, 0x1BA, 1 + map_top 0x26ABB4+0x74, 0x1BA, 1, 1 +.else map_bottom 0x26AAF8, 0x1BA, 1 map_top 0x26ABB4, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_42:: @ 08106E0C +.ifdef JP + map_bottom 0x26AC78+0x74, 0x1BA, 1 + map_top 0x26AD44+0x74, 0x1BA, 1, 1 +.else map_bottom 0x26AC78, 0x1BA, 1 map_top 0x26AD44, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_43:: @ 08106E24 +.ifdef JP + map_bottom 0x26AE18+0x74, 0x1BA, 1 + map_top 0x26AEF8+0x74, 0x1BA, 1, 1 +.else map_bottom 0x26AE18, 0x1BA, 1 map_top 0x26AEF8, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_44:: @ 08106E3C +.ifdef JP + map_bottom 0x26AFBC+0x74, 0x1BA, 1 + map_top 0x26B094+0x74, 0x1BA, 1, 1 +.else map_bottom 0x26AFBC, 0x1BA, 1 map_top 0x26B094, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_45:: @ 08106E54 +.ifdef JP + map_bottom 0x26B15C+0x74, 0x1BA, 1 + map_top 0x26B250+0x74, 0x1BA, 1, 1 +.else map_bottom 0x26B15C, 0x1BA, 1 map_top 0x26B250, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_46:: @ 08106E6C +.ifdef JP + map_bottom 0x26B2F4+0x74, 0x1BA, 1 + map_top 0x26B408+0x74, 0x1BA, 1, 1 +.else map_bottom 0x26B2F4, 0x1BA, 1 map_top 0x26B408, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_47:: @ 08106E84 +.ifdef JP + map_bottom 0x26B4BC+0x74, 0x1BA, 1 + map_top 0x26B4F8+0x74, 0x1BA, 1, 1 +.else map_bottom 0x26B4BC, 0x1BA, 1 map_top 0x26B4F8, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_48:: @ 08106E9C +.ifdef JP + map_bottom 0x26B658+0x74, 0x1BA, 1 + map_top 0x26B694+0x74, 0x1BA, 1, 1 +.else map_bottom 0x26B658, 0x1BA, 1 map_top 0x26B694, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_49:: @ 08106EB4 +.ifdef JP + map_bottom 0x26B7EC+0x74, 0x1BA, 1 + map_top 0x26B828+0x74, 0x1BA, 1, 1 +.else map_bottom 0x26B7EC, 0x1BA, 1 map_top 0x26B828, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_50:: @ 08106ECC +.ifdef JP + map_bottom 0x26B984+0x74, 0x1BA, 1 + map_top 0x26B9C0+0x74, 0x1BA, 1, 1 +.else map_bottom 0x26B984, 0x1BA, 1 map_top 0x26B9C0, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_51:: @ 08106EE4 +.ifdef JP + map_bottom 0x26BB34+0x74, 0x2A8, 1 + map_top 0x26BB8C+0x74, 0x2A8, 1, 1 +.else map_bottom 0x26BB34, 0x2A8, 1 map_top 0x26BB8C, 0x2A8, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_52:: @ 08106EFC +.ifdef JP + map_bottom 0x26BD88+0x74, 0x2A8, 1 + map_top 0x26BDE0+0x74, 0x2A8, 1, 1 +.else map_bottom 0x26BD88, 0x2A8, 1 map_top 0x26BDE0, 0x2A8, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_53:: @ 08106F14 +.ifdef JP + map_bottom 0x26BFB4+0x74, 0x1BA, 1 + map_top 0x26C060+0x74, 0x1BA, 1, 1 +.else map_bottom 0x26BFB4, 0x1BA, 1 map_top 0x26C060, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_54:: @ 08106F2C +.ifdef JP + map_bottom 0x26C190+0x74, 0x1BA, 1 + map_top 0x26C23C+0x74, 0x1BA, 1, 1 +.else map_bottom 0x26C190, 0x1BA, 1 map_top 0x26C23C, 0x1BA, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_55:: @ 08106F44 +.ifdef JP + map_bottom 0x26C36C+0x74, 0xA5C, 1 + map_top 0x26C578+0x74, 0xA5C, 1, 1 +.else map_bottom 0x26C36C, 0xA5C, 1 map_top 0x26C578, 0xA5C, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_56:: @ 08106F5C +.ifdef JP + map_bottom 0x26CB1C+0x74, 0x1FE, 1 + map_top 0x26CC54+0x74, 0x1FE, 1, 1 +.else map_bottom 0x26CB1C, 0x1FE, 1 map_top 0x26CC54, 0x1FE, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_57:: @ 08106F74 +.ifdef JP + map_bottom 0x26CD14+0x74, 0x3FC, 1 + map_top 0x26CE94+0x74, 0x3FC, 1, 1 +.else map_bottom 0x26CD14, 0x3FC, 1 map_top 0x26CE94, 0x3FC, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_58:: @ 08106F8C +.ifdef JP + map_bottom 0x26CFD0+0x74, 0x264, 1 + map_top 0x26D0C4+0x74, 0x264, 1, 1 +.else map_bottom 0x26CFD0, 0x264, 1 map_top 0x26D0C4, 0x264, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastle_59:: @ 08106FA4 +.ifdef JP + map_bottom 0x26D194+0x74, 0x1BA, 1 + map_top 0x26D1D0+0x74, 0x1BA, 1, 1 +.else map_bottom 0x26D194, 0x1BA, 1 map_top 0x26D1D0, 0x1BA, 1, 1 +.endif gAreaRoomMaps_DarkHyruleCastle:: @ 08106FBC .4byte gAreaRoomMap_DarkHyruleCastle_0 @@ -3003,40 +3617,85 @@ gAreaRoomMaps_DarkHyruleCastle:: @ 08106FBC .4byte gAreaRoomMap_DarkHyruleCastle_59 gAreaRoomMap_DarkHyruleCastleOutside_0:: @ 081070AC +.ifdef JP + map_bottom 0x27647C+0x74, 0x2EE, 1 + map_top 0x276694+0x74, 0x2EE, 1, 1 +.else map_bottom 0x27647C, 0x2EE, 1 map_top 0x276694, 0x2EE, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastleOutside_1:: @ 081070C4 +.ifdef JP + map_bottom 0x276704+0x74, 0x396, 1 + map_top 0x276924+0x74, 0x396, 1, 1 +.else map_bottom 0x276704, 0x396, 1 map_top 0x276924, 0x396, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastleOutside_2:: @ 081070DC +.ifdef JP + map_bottom 0x2769A0+0x74, 0x374, 1 + map_top 0x276A8C+0x74, 0x374, 1, 1 +.else map_bottom 0x2769A0, 0x374, 1 map_top 0x276A8C, 0x374, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastleOutside_3:: @ 081070F4 +.ifdef JP + map_bottom 0x276BE8+0x74, 0x52E, 1 + map_top 0x276D2C+0x74, 0x52E, 1, 1 +.else map_bottom 0x276BE8, 0x52E, 1 map_top 0x276D2C, 0x52E, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastleOutside_4:: @ 0810710C +.ifdef JP + map_bottom 0x276EEC+0x74, 0x2A8, 1 + map_top 0x276F78+0x74, 0x2A8, 1, 1 +.else map_bottom 0x276EEC, 0x2A8, 1 map_top 0x276F78, 0x2A8, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastleOutside_5:: @ 08107124 +.ifdef JP + map_bottom 0x27705C+0x74, 0x374, 1 + map_top 0x277164+0x74, 0x374, 1, 1 +.else map_bottom 0x27705C, 0x374, 1 map_top 0x277164, 0x374, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastleOutside_6:: @ 0810713C +.ifdef JP + map_bottom 0x2772D0+0x74, 0xA5C, 1 + map_top 0x277480+0x74, 0xA5C, 1, 1 +.else map_bottom 0x2772D0, 0xA5C, 1 map_top 0x277480, 0xA5C, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastleOutside_7:: @ 08107154 +.ifdef JP + map_bottom 0x2776C8+0x74, 0x6E8, 1 + map_top 0x277848+0x74, 0x6E8, 1, 1 +.else map_bottom 0x2776C8, 0x6E8, 1 map_top 0x277848, 0x6E8, 1, 1 +.endif gAreaRoomMap_DarkHyruleCastleOutside_8:: @ 0810716C +.ifdef JP + map_bottom 0x277A28+0x74, 0x630, 1 + map_top 0x277AEC+0x74, 0x630, 1, 1 +.else map_bottom 0x277A28, 0x630, 1 map_top 0x277AEC, 0x630, 1, 1 +.endif gAreaRoomMaps_DarkHyruleCastleOutside:: @ 08107184 .4byte gAreaRoomMap_DarkHyruleCastleOutside_0 @@ -3050,23 +3709,43 @@ gAreaRoomMaps_DarkHyruleCastleOutside:: @ 08107184 .4byte gAreaRoomMap_DarkHyruleCastleOutside_8 gAreaRoomMap_DarkHyruleCastleBridge_0:: @ 081071A8 +.ifdef JP + map_bottom 0x26D27C+0x74, 0x2A8, 1 + map_top 0x26D470+0x74, 0x2A8, 1, 1 +.else map_bottom 0x26D27C, 0x2A8, 1 map_top 0x26D470, 0x2A8, 1, 1 +.endif gAreaRoomMaps_DarkHyruleCastleBridge:: @ 081071C0 .4byte gAreaRoomMap_DarkHyruleCastleBridge_0 gAreaRoomMap_VaatisArms_0:: @ 081071C4 +.ifdef JP + map_bottom 0x26DA80+0x74, 0x214, 1 + map_top 0x26DC40+0x74, 0x214, 1, 1 +.else map_bottom 0x26DA80, 0x214, 1 map_top 0x26DC40, 0x214, 1, 1 +.endif gAreaRoomMap_VaatisArms_1:: @ 081071DC +.ifdef JP + map_bottom 0x26DC98+0x74, 0x214, 1 + map_top 0x26DE58+0x74, 0x214, 1, 1 +.else map_bottom 0x26DC98, 0x214, 1 map_top 0x26DE58, 0x214, 1, 1 +.endif gAreaRoomMap_VaatisArms_2:: @ 081071F4 +.ifdef JP + map_bottom 0x26DEB0+0x74, 0x214, 1 + map_top 0x26E070+0x74, 0x214, 1, 1 +.else map_bottom 0x26DEB0, 0x214, 1 map_top 0x26E070, 0x214, 1, 1 +.endif gAreaRoomMaps_VaatisArms:: @ 0810720C .4byte gAreaRoomMap_VaatisArms_0 @@ -3074,35 +3753,65 @@ gAreaRoomMaps_VaatisArms:: @ 0810720C .4byte gAreaRoomMap_VaatisArms_2 gAreaRoomMap_Vaati3_0:: @ 08107218 +.ifdef JP + map_bottom 0x26D564+0x74, 0x294, 1 + map_top 0x26D704+0x74, 0x294, 1, 1 +.else map_bottom 0x26D564, 0x294, 1 map_top 0x26D704, 0x294, 1, 1 +.endif gAreaRoomMap_Vaati3_1:: @ 08107230 +.ifdef JP + map_bottom 0x26D75C+0x74, 0x210, 1 + map_top 0x26D89C+0x74, 0x210, 1, 1 +.else map_bottom 0x26D75C, 0x210, 1 map_top 0x26D89C, 0x210, 1, 1 +.endif gAreaRoomMaps_Vaati3:: @ 08107248 .4byte gAreaRoomMap_Vaati3_0 .4byte gAreaRoomMap_Vaati3_1 gAreaRoomMap_Vaati2_0:: @ 08107250 +.ifdef JP + map_bottom 0x26D8E4+0x74, 0x294, 1 + map_top 0x26DA24+0x74, 0x294, 1, 1 +.else map_bottom 0x26D8E4, 0x294, 1 map_top 0x26DA24, 0x294, 1, 1 +.endif gAreaRoomMaps_Vaati2:: @ 08107268 .4byte gAreaRoomMap_Vaati2_0 gAreaRoomMap_47_0:: @ 0810726C +.ifdef JP + map_bottom 0x277BB0+0x74, 0x256, 1 + map_top 0x277CD8+0x74, 0x256, 1, 1 +.else map_bottom 0x277BB0, 0x256, 1 map_top 0x277CD8, 0x256, 1, 1 +.endif gAreaRoomMap_47_1:: @ 08107284 +.ifdef JP + map_bottom 0x277D38+0x74, 0x2B2, 1 + map_top 0x277E5C+0x74, 0x2B2, 1, 1 +.else map_bottom 0x277D38, 0x2B2, 1 map_top 0x277E5C, 0x2B2, 1, 1 +.endif gAreaRoomMap_47_2:: @ 0810729C +.ifdef JP + map_bottom 0x277ECC+0x74, 0x47E, 1 + map_top 0x2780BC+0x74, 0x47E, 1, 1 +.else map_bottom 0x277ECC, 0x47E, 1 map_top 0x2780BC, 0x47E, 1, 1 +.endif gAreaRoomMaps_47:: @ 081072B4 .4byte gAreaRoomMap_47_0 @@ -3335,43 +4044,88 @@ gAreaRoomMaps_RoyalValleyGraves:: @ 0810776C .4byte gAreaRoomMap_RoyalValleyGraves_1 gAreaRoomMap_45_0:: @ 08107774 +.ifdef JP + map_bottom 0x278158+0x74, 0x1FE, 1 + map_top 0x27828C+0x74, 0x1FE, 1, 1 +.else map_bottom 0x278158, 0x1FE, 1 map_top 0x27828C, 0x1FE, 1, 1 +.endif gAreaRoomMaps_45:: @ 0810778C .4byte gAreaRoomMap_45_0 gAreaRoomMap_46_0:: @ 08107790 +.ifdef JP + map_bottom 0x2782D0+0x74, 0x286, 1 + map_top 0x278454+0x74, 0x286, 1, 1 +.else map_bottom 0x2782D0, 0x286, 1 map_top 0x278454, 0x286, 1, 1 +.endif gAreaRoomMap_46_1:: @ 081077A8 +.ifdef JP + map_bottom 0x2784C4+0x74, 0x30E, 1 + map_top 0x2786E0+0x74, 0x30E, 1, 1 +.else map_bottom 0x2784C4, 0x30E, 1 map_top 0x2786E0, 0x30E, 1, 1 +.endif gAreaRoomMap_46_2:: @ 081077C0 +.ifdef JP + map_bottom 0x278790+0x74, 0x286, 1 + map_top 0x278908+0x74, 0x286, 1, 1 +.else map_bottom 0x278790, 0x286, 1 map_top 0x278908, 0x286, 1, 1 +.endif gAreaRoomMap_46_3:: @ 081077D8 +.ifdef JP + map_bottom 0x2789A0+0x74, 0x286, 1 + map_top 0x278AEC+0x74, 0x286, 1, 1 +.else map_bottom 0x2789A0, 0x286, 1 map_top 0x278AEC, 0x286, 1, 1 +.endif gAreaRoomMap_46_4:: @ 081077F0 +.ifdef JP + map_bottom 0x278B88+0x74, 0x30E, 1 + map_top 0x278D38+0x74, 0x30E, 1, 1 +.else map_bottom 0x278B88, 0x30E, 1 map_top 0x278D38, 0x30E, 1, 1 +.endif gAreaRoomMap_46_5:: @ 08107808 +.ifdef JP + map_bottom 0x278DDC+0x74, 0x286, 1 + map_top 0x278F2C+0x74, 0x286, 1, 1 +.else map_bottom 0x278DDC, 0x286, 1 map_top 0x278F2C, 0x286, 1, 1 +.endif gAreaRoomMap_46_6:: @ 08107820 +.ifdef JP + map_bottom 0x278FA8+0x74, 0x720, 1 + map_top 0x27921C+0x74, 0x720, 1, 1 +.else map_bottom 0x278FA8, 0x720, 1 map_top 0x27921C, 0x720, 1, 1 +.endif gAreaRoomMap_46_7:: @ 08107838 +.ifdef JP + map_bottom 0x27932C+0x74, 0x2F2, 1 + map_top 0x2794A4+0x74, 0x2F2, 1, 1 +.else map_bottom 0x27932C, 0x2F2, 1 map_top 0x2794A4, 0x2F2, 1, 1 +.endif gAreaRoomMaps_46:: @ 08107850 .4byte gAreaRoomMap_46_0 @@ -3384,72 +4138,122 @@ gAreaRoomMaps_46:: @ 08107850 .4byte gAreaRoomMap_46_7 gAreaRoomMap_08107870:: @ 08107870 +.ifdef JP + map_bottom 0x279520+0x74, 0xC80, 1 + map_top 0x2799B0+0x74, 0xC80, 1, 1 +.else map_bottom 0x279520, 0xC80, 1 map_top 0x2799B0, 0xC80, 1, 1 +.endif @ Unused gAreaRoomMaps_08107888:: @ 08107888 .4byte gAreaRoomMap_08107870 gAreaRoomMap_4D_0:: @ 0810788C +.ifdef JP + map_bottom 0x279D28+0x74, 0xCD0, 1 + map_top 0x27A2F4+0x74, 0xCD0, 1, 1 +.else map_bottom 0x279D28, 0xCD0, 1 map_top 0x27A2F4, 0xCD0, 1, 1 +.endif gAreaRoomMaps_4D:: @ 081078A4 .4byte gAreaRoomMap_4D_0 gAreaRoomMap_57_0:: @ 081078A8 +.ifdef JP + map_bottom 0x27A574+0x74, 0xC80, 1 + map_top 0x27AAE4+0x74, 0xC80, 1, 1 +.else map_bottom 0x27A574, 0xC80, 1 map_top 0x27AAE4, 0xC80, 1, 1 +.endif gAreaRoomMaps_57:: @ 081078C0 .4byte gAreaRoomMap_57_0 gAreaRoomMap_5F_0:: @ 081078C4 +.ifdef JP + map_bottom 0x27AD50+0x74, 0xC80, 1 + map_top 0x27B118+0x74, 0xC80, 1, 1 +.else map_bottom 0x27AD50, 0xC80, 1 map_top 0x27B118, 0xC80, 1, 1 +.endif gAreaRoomMaps_5F:: @ 081078DC .4byte gAreaRoomMap_5F_0 gAreaRoomMap_67_0:: @ 081078E0 +.ifdef JP + map_bottom 0x27B3A0+0x74, 0x12C, 1 + map_top 0x27B470+0x74, 0x12C, 1, 1 +.else map_bottom 0x27B3A0, 0x12C, 1 map_top 0x27B470, 0x12C, 1, 1 +.endif gAreaRoomMaps_67:: @ 081078F8 .4byte gAreaRoomMap_67_0 gAreaRoomMap_6F_0:: @ 081078FC +.ifdef JP + map_bottom 0x27B4AC+0x74, 0xC80, 1 + map_top 0x27B974+0x74, 0xC80, 1, 1 +.else map_bottom 0x27B4AC, 0xC80, 1 map_top 0x27B974, 0xC80, 1, 1 +.endif gAreaRoomMaps_6F:: @ 08107914 .4byte gAreaRoomMap_6F_0 gAreaRoomMap_77_0:: @ 08107918 +.ifdef JP + map_bottom 0x27BCCC+0x74, 0x1040, 1 + map_top 0x27C2C8+0x74, 0x1040, 1, 1 +.else map_bottom 0x27BCCC, 0x1040, 1 map_top 0x27C2C8, 0x1040, 1, 1 +.endif gAreaRoomMaps_77:: @ 08107930 .4byte gAreaRoomMap_77_0 gAreaRoomMap_7F_0:: @ 08107934 +.ifdef JP + map_bottom 0x27C720+0x74, 0xC80, 1 + map_top 0x27CC28+0x74, 0xC80, 1, 1 +.else map_bottom 0x27C720, 0xC80, 1 map_top 0x27CC28, 0xC80, 1, 1 +.endif gAreaRoomMaps_7F:: @ 0810794C .4byte gAreaRoomMap_7F_0 gAreaRoomMap_87_0:: @ 08107950 +.ifdef JP + map_bottom 0x27CF58+0x74, 0xF3C, 1 + map_top 0x27D71C+0x74, 0xF3C, 1, 1 +.else map_bottom 0x27CF58, 0xF3C, 1 map_top 0x27D71C, 0xF3C, 1, 1 +.endif gAreaRoomMaps_87:: @ 08107968 .4byte gAreaRoomMap_87_0 gAreaRoomMap_8F_0:: @ 0810796C +.ifdef JP + map_bottom 0x27DA00+0x74, 0xFA0, 1 + map_top 0x27DFF4+0x74, 0xFA0, 1, 1 +.else map_bottom 0x27DA00, 0xFA0, 1 map_top 0x27DFF4, 0xFA0, 1, 1 +.endif gAreaRoomMaps_8F:: @ 08107984 .4byte gAreaRoomMap_8F_0 diff --git a/data/metatile_headers.s b/data/metatile_headers.s index eb154c7e..21c03b72 100755 --- a/data/metatile_headers.s +++ b/data/metatile_headers.s @@ -269,62 +269,132 @@ gAreaMetatiles_PalaceOfWinds:: @ 08102EA4 metatile_types_top 0x220C54, 0xD88, 1, 1 gAreaMetatiles_PalaceOfWindsBoss:: @ 08102ED4 +.ifdef JP + metatiles_top 0x223680, 0x108, 1 + metatile_types_top 0x2236C8, 0x42, 1, 1 +.else metatiles_top 0x22360C, 0x108, 1 metatile_types_top 0x223654, 0x42, 1, 1 +.endif gAreaMetatiles_Sanctuary:: @ 08102EEC +.ifdef JP + metatiles_bottom 0x233418, 0x3620, 1 + metatiles_top 0x235320, 0x3620, 1 + metatile_types_bottom 0x236424, 0xD88, 1 + metatile_types_top 0x236788, 0xD88, 1, 1 +.else metatiles_bottom 0x2333A4, 0x3620, 1 metatiles_top 0x2352AC, 0x3620, 1 metatile_types_bottom 0x2363B0, 0xD88, 1 metatile_types_top 0x236714, 0xD88, 1, 1 +.endif + gAreaMetatiles_HyruleCastle:: @ 08102F1C +.ifdef JP + metatiles_bottom 0x23D224, 0x37C0, 1 + metatiles_top 0x23EF98, 0x3610, 1 + metatile_types_bottom 0x240440, 0xDF0, 1 + metatile_types_top 0x24086C, 0xD84, 1, 1 +.else metatiles_bottom 0x23D1B0, 0x37C0, 1 metatiles_top 0x23EF24, 0x3610, 1 metatile_types_bottom 0x2403CC, 0xDF0, 1 metatile_types_top 0x2407F8, 0xD84, 1, 1 +.endif gAreaMetatiles_SanctuaryEntrance:: @ 08102F4C +.ifdef JP + metatiles_bottom 0x246158, 0x1478, 1 + metatiles_top 0x246CAC, 0xFF0, 1 + metatile_types_bottom 0x24702C, 0x51E, 1 + metatile_types_top 0x24719C, 0x3FC, 1, 1 +.else metatiles_bottom 0x2460E4, 0x1478, 1 metatiles_top 0x246C38, 0xFF0, 1 metatile_types_bottom 0x246FB8, 0x51E, 1 metatile_types_top 0x247128, 0x3FC, 1, 1 +.endif gAreaMetatiles_DarkHyruleCastle:: @ 08102F7C +.ifdef JP + metatiles_bottom 0x24D940, 0x3FD8, 1 + metatiles_top 0x250680, 0x37C0, 1 + metatile_types_bottom 0x2524F4, 0xFF6, 1 + metatile_types_top 0x252A7C, 0xDF0, 1, 1 +.else metatiles_bottom 0x24D8CC, 0x3FD8, 1 metatiles_top 0x25060C, 0x37C0, 1 metatile_types_bottom 0x252480, 0xFF6, 1 metatile_types_top 0x252A08, 0xDF0, 1, 1 +.endif gAreaMetatiles_DarkHyruleCastleOutside:: @ 08102FAC +.ifdef JP + metatiles_bottom 0x273EE8, 0x3340, 1 + metatiles_top 0x27540C, 0x1EF0, 1 + metatile_types_bottom 0x276048, 0xCD0, 1 + metatile_types_top 0x276324, 0x7BC, 1, 1 +.else metatiles_bottom 0x273E74, 0x3340, 1 metatiles_top 0x275398, 0x1EF0, 1 metatile_types_bottom 0x275FD4, 0xCD0, 1 metatile_types_top 0x2762B0, 0x7BC, 1, 1 +.endif gAreaMetatiles_DarkHyruleCastleBridge:: @ 08102FDC +.ifdef JP + metatiles_bottom 0x256688, 0x3610, 1 + metatiles_top 0x257468, 0x3610, 1 + metatile_types_bottom 0x257D78, 0xD84, 1 + metatile_types_top 0x257FEC, 0xD84, 1, 1 +.else metatiles_bottom 0x256614, 0x3610, 1 metatiles_top 0x2573F4, 0x3610, 1 metatile_types_bottom 0x257D04, 0xD84, 1 metatile_types_top 0x257F78, 0xD84, 1, 1 +.endif gAreaMetatiles_VaatisArms:: @ 0810300C +.ifdef JP + metatiles_bottom 0x263D70, 0x17C8, 1 + metatiles_top 0x264A38, 0xBC0, 1 + metatile_types_bottom 0x264DBC, 0x5F2, 1 + metatile_types_top 0x264EC0, 0x2F0, 1, 1 +.else metatiles_bottom 0x263CFC, 0x17C8, 1 metatiles_top 0x2649C4, 0xBC0, 1 metatile_types_bottom 0x264D48, 0x5F2, 1 metatile_types_top 0x264E4C, 0x2F0, 1, 1 +.endif gAreaMetatiles_Vaati3:: @ 0810303C +.ifdef JP + metatiles_bottom 0x25C730, 0xE80, 1 + metatiles_top 0x25CDE8, 0x9B8, 1 + metatile_types_bottom 0x25CFC4, 0x3A0, 1 + metatile_types_top 0x25D098, 0x26E, 1, 1 +.else metatiles_bottom 0x25C6BC, 0xE80, 1 metatiles_top 0x25CD74, 0x9B8, 1 metatile_types_bottom 0x25CF50, 0x3A0, 1 metatile_types_top 0x25D024, 0x26E, 1, 1 +.endif gAreaMetatiles_Vaati2:: @ 0810306C +.ifdef JP + metatiles_bottom 0x260864, 0x850, 1 + metatiles_top 0x260C90, 0x298, 1 + metatile_types_bottom 0x260D30, 0x214, 1 + metatile_types_top 0x260DAC, 0xA6, 1, 1 +.else metatiles_bottom 0x2607F0, 0x850, 1 metatiles_top 0x260C1C, 0x298, 1 metatile_types_bottom 0x260CBC, 0x214, 1 metatile_types_top 0x260D38, 0xA6, 1, 1 +.endif + gAreaMetatiles:: @ 0810309C .4byte gAreaMetatiles_MinishWoods @ 0x0 diff --git a/data/scripts/script_0800939A.inc b/data/scripts/script_0800939A.inc index 060c412b..2efdd91d 100644 --- a/data/scripts/script_0800939A.inc +++ b/data/scripts/script_0800939A.inc @@ -1,5 +1,9 @@ SCRIPT_START script_0800939A +.ifdef JP + CheckLocalFlag 0x00ac +.else CheckLocalFlag 0x00ae +.endif JumpIf script_0800943E CheckInventory1 0x000d JumpIf script_080093BC @@ -18,7 +22,11 @@ script_080093BC: Jump script_08009376 script_080093DA: SetIntVariable 0x00001d05 +.ifdef JP + CheckLocalFlag 0x00ab +.else CheckLocalFlag 0x00ad +.endif JumpIf script_080093EE SetIntVariable 0x00001d04 script_080093EE: @@ -35,8 +43,13 @@ script_080093EE: Wait 0x00b4 Call sub_0806D70C Wait 0x0078 +.ifdef JP + SetLocalFlag 0x00ac + SetLocalFlag 0x00ab +.else SetLocalFlag 0x00ae SetLocalFlag 0x00ad +.endif Call sub_0806D5D4 _0807EB8C TextboxNoOverlap 0x1d09 diff --git a/data/scripts/script_08009464.inc b/data/scripts/script_08009464.inc index 49342031..bca65bbe 100644 --- a/data/scripts/script_08009464.inc +++ b/data/scripts/script_08009464.inc @@ -5,7 +5,11 @@ SCRIPT_START script_08009464 Wait 0x003c Call sub_0806D70C Wait 0x003c +.ifdef JP + ClearLocalFlag 0x00ac +.else ClearLocalFlag 0x00ae +.endif Call sub_0806D620 Wait 0x003c WaitPlayerAction8 diff --git a/data/scripts/script_080098D4.inc b/data/scripts/script_080098D4.inc index d87a79bd..ea0a2350 100644 --- a/data/scripts/script_080098D4.inc +++ b/data/scripts/script_080098D4.inc @@ -7,9 +7,17 @@ script_080098D8: script_080098E0: CheckInventory1 0x003c JumpIfNot script_080098E0 - CheckLocalFlag 0x005d +.ifdef JP + CheckLocalFlag 0x5b +.else + CheckLocalFlag 0x5d +.endif JumpIf script_08009910 +.ifdef JP + SetLocalFlag 0x005b +.else SetLocalFlag 0x005d +.endif _0807E864 Call sub_0807F9A4 Call sub_0807DF28 diff --git a/data/scripts/script_08009E88.inc b/data/scripts/script_08009E88.inc index d21a9d8e..75074f51 100644 --- a/data/scripts/script_08009E88.inc +++ b/data/scripts/script_08009E88.inc @@ -2,7 +2,11 @@ SCRIPT_START script_08009E88 BeginBlock Call sub_0807DF28 _0807E864 +.ifdef JP + SetLocalFlag 0x009e +.else SetLocalFlag 0x009f +.endif EndBlock Wait 0x003c _0807E778 0x0004 diff --git a/data/scripts/script_0800B200.inc b/data/scripts/script_0800B200.inc index 3dfffa93..909699d5 100644 --- a/data/scripts/script_0800B200.inc +++ b/data/scripts/script_0800B200.inc @@ -1,7 +1,11 @@ SCRIPT_START script_0800B200 BeginBlock _0807E5F8 0x00000000 +.ifdef JP + CheckLocalFlag 0x001e +.else CheckLocalFlag 0x001d +.endif JumpIf script_0800B252 SetEntitySpeed 0x00c0 EndBlock @@ -18,7 +22,11 @@ script_0800B216: CameraTargetPlayer Wait 0x0008 _0807E878 +.ifdef JP + CheckLocalFlag 0x001e +.else CheckLocalFlag 0x001d +.endif JumpIfNot script_0800B216 script_0800B252: SCRIPT_END diff --git a/data/scripts/script_0800B308.inc b/data/scripts/script_0800B308.inc index 12365628..8ec57e2e 100644 --- a/data/scripts/script_0800B308.inc +++ b/data/scripts/script_0800B308.inc @@ -1,6 +1,10 @@ SCRIPT_START script_0800B308 BeginBlock +.ifdef JP + CheckLocalFlag 0x001e +.else CheckLocalFlag 0x001d +.endif JumpIf script_0800B39C DoPostScriptAction 0x0001 SetEntitySpeed 0x0040 @@ -36,7 +40,11 @@ script_0800B350: CheckKinstoneFused 0x0008 JumpIfNot script_0800B350 EndBlock +.ifdef JP + SetLocalFlag 0x001e +.else SetLocalFlag 0x001d +.endif PlaySound SFX_SECRET script_0800B39C: DoPostScriptAction 0x0006 diff --git a/data/scripts/script_0800D6D0.inc b/data/scripts/script_0800D6D0.inc index 40d9c3a4..d69cc2e6 100644 --- a/data/scripts/script_0800D6D0.inc +++ b/data/scripts/script_0800D6D0.inc @@ -1,11 +1,19 @@ SCRIPT_START script_0800D6D0 BeginBlock +.ifdef JP + CheckLocalFlag 0x00f0 +.else CheckLocalFlag 0x00f3 +.endif JumpIf script_0800D6E8 DoPostScriptAction 0x0008 EndBlock script_0800D6E0: +.ifdef JP + CheckLocalFlag 0x00f0 +.else CheckLocalFlag 0x00f3 +.endif JumpIfNot script_0800D6E0 script_0800D6E8: DoPostScriptAction 0x0007 diff --git a/data/scripts/script_0800D6F0.inc b/data/scripts/script_0800D6F0.inc index fb84a2c7..5a402b35 100644 --- a/data/scripts/script_0800D6F0.inc +++ b/data/scripts/script_0800D6F0.inc @@ -1,11 +1,19 @@ SCRIPT_START script_0800D6F0 BeginBlock +.ifdef JP + CheckLocalFlag 0x00f2 +.else CheckLocalFlag 0x00f5 +.endif JumpIf script_0800D6E8 DoPostScriptAction 0x0008 EndBlock script_0800D700: +.ifdef JP + CheckLocalFlag 0x00f2 +.else CheckLocalFlag 0x00f5 +.endif JumpIfNot script_0800D700 DoPostScriptAction 0x0007 SCRIPT_END diff --git a/data/scripts/script_0800E0BC.inc b/data/scripts/script_0800E0BC.inc index abd2f9e7..abb3f935 100644 --- a/data/scripts/script_0800E0BC.inc +++ b/data/scripts/script_0800E0BC.inc @@ -301,10 +301,17 @@ SCRIPT_START script_0800E4A4 CheckLocalFlag 0x007c JumpIf script_0800E4FA script_0800E4B6: +.ifdef JP + CheckPlayerInRegion 0x0088, 0x0100, 0x0820 +.else CheckPlayerInRegion 0x0088, 0x00f8, 0x0820 +.endif JumpIfNot script_0800E4B6 BeginBlock - _0807E864 + _0807E864 +.ifdef JP + Call sub_0805E544 +.endif EndBlock Call sub_0807F3F8 Wait 0x003c @@ -320,6 +327,9 @@ script_0800E4B6: BeginBlock PlayBgm BGM_FIGHT_THEME2 SetLocalFlag 0x007c +.ifdef JP + Call UnfreezeTime +.endif script_0800E4FA: _0807E878 DoPostScriptAction 0x0006 diff --git a/data/scripts/script_0800F554.inc b/data/scripts/script_0800F554.inc index 8668612d..747ea06b 100644 --- a/data/scripts/script_0800F554.inc +++ b/data/scripts/script_0800F554.inc @@ -105,6 +105,8 @@ script_0800F662: DoPostScriptAction 0x0000 Jump script_0800F662 .2byte 0x0000 + + SCRIPT_START script_0800F688 BeginBlock _0807EB44 0x0004 @@ -119,7 +121,11 @@ script_0800F6A0: _0807E864 _0807EB74 CallWithArg sub_0807F3D8, 0x00000004 +.ifdef JP + CheckLocalFlag 0x00ca +.else CheckLocalFlag 0x00cd +.endif JumpIf script_0800F6C4 TextboxNoOverlap 0x2512 Jump script_0800F6C8 @@ -140,7 +146,11 @@ SCRIPT_START script_0800F6E0 Call sub_08062788 EndBlock script_0800F6F4: +.ifdef JP + CheckLocalFlag 0x00ca +.else CheckLocalFlag 0x00cd +.endif JumpIf script_0800F718 CheckEntityInteractType JumpIfNot script_0800F6F4 diff --git a/data/scripts/script_0800F724.inc b/data/scripts/script_0800F724.inc index 2d686bbc..102bb549 100644 --- a/data/scripts/script_0800F724.inc +++ b/data/scripts/script_0800F724.inc @@ -3,12 +3,22 @@ SCRIPT_START script_0800F724 DoPostScriptAction 0x0008 EndBlock script_0800F72C: +.ifdef JP + CheckLocalFlag 0x00ca +.else CheckLocalFlag 0x00cd +.endif JumpIfNot script_0800F72C DoPostScriptAction 0x0007 Jump script_0800F584 + + SCRIPT_START script_0800F73C +.ifdef JP + CheckLocalFlag 0x00ca +.else CheckLocalFlag 0x00cd +.endif JumpIf script_0800FA4C _0807E864 Call sub_0807DF28 @@ -168,7 +178,11 @@ SCRIPT_START script_0800F73C Wait 0x000a _0807E5F8 0x00000002 Call sub_08063C44 +.ifdef JP + SetLocalFlag 0x00ca +.else SetLocalFlag 0x00cd +.endif Call sub_0807DF50 _0807E878 script_0800FA4C: diff --git a/data/scripts/script_0800FD0C.inc b/data/scripts/script_0800FD0C.inc index 0720943c..563a019a 100644 --- a/data/scripts/script_0800FD0C.inc +++ b/data/scripts/script_0800FD0C.inc @@ -1,11 +1,19 @@ SCRIPT_START script_0800FD0C +.ifdef JP + CheckLocalFlag 0x00ca +.else CheckLocalFlag 0x00cd +.endif JumpIf script_0800FD50 WaitForSomething2 0x00000010 script_0800FD1A: CheckPlayerInRegion 0x00c8, 0x03c0, 0x1040 JumpIfNot script_0800FD1A +.ifdef JP + CheckLocalFlag 0x00ca +.else CheckLocalFlag 0x00cd +.endif JumpIf script_0800FD5C _0807E864 Call sub_0807F9A4 diff --git a/data/scripts/script_0800FF74.inc b/data/scripts/script_0800FF74.inc index 2d79be0d..f105ab7b 100644 --- a/data/scripts/script_0800FF74.inc +++ b/data/scripts/script_0800FF74.inc @@ -4,17 +4,29 @@ SCRIPT_START script_0800FF74 _0807E9D4 CallWithArg sub_0807F3D8, 0x00000008 Call sub_080644A4 +.ifdef JP + ClearLocalFlag 0x00c4 +.else ClearLocalFlag 0x00c7 +.endif EndBlock script_0800FF92: EndBlock BeginBlock DoPostScriptAction 0x000a +.ifdef JP + CheckLocalFlag 0x00cb +.else CheckLocalFlag 0x00ce +.endif JumpIf script_0800FFCC DoPostScriptAction 0x000b Call sub_08064198 +.ifdef JP + CheckLocalFlag 0x00c4 +.else CheckLocalFlag 0x00c7 +.endif JumpIfNot script_0800FFCC Call sub_08064488 CheckPlayerInRegion2 0x4040 @@ -25,7 +37,11 @@ script_0800FFCC: CheckEntityInteractType JumpIfNot script_0800FF92 EndBlock +.ifdef JP + SetLocalFlag 0x00c4 +.else SetLocalFlag 0x00c7 +.endif _0807E864 _0807EB74 CallWithArg sub_0807F3D8, 0x00000008 @@ -35,7 +51,11 @@ script_0800FFCC: _0807EA94 Jump script_08010060 script_0800FFF8: +.ifdef JP + CheckLocalFlag 0x00cb +.else CheckLocalFlag 0x00ce +.endif JumpIfNot script_0801000A TextboxNoOverlap 0x340b _0807EA94 @@ -60,7 +80,11 @@ script_08010014: _0807EDD4 0x0018, 0x0108 _0807EB44 0x0002 CallWithArg sub_0807F3D8, 0x00000008 +.ifdef JP + SetLocalFlag 0x00cb +.else SetLocalFlag 0x00ce +.endif script_08010060: Call sub_080644A4 CallWithArg sub_0807F5B0, 0x0000000a diff --git a/data/scripts/script_08010264.inc b/data/scripts/script_08010264.inc index 7e020262..a633beba 100644 --- a/data/scripts/script_08010264.inc +++ b/data/scripts/script_08010264.inc @@ -501,7 +501,9 @@ script_08010860: TextboxNoOverlap 0x2c21 Jump script_080108B2 script_080108AA: +.ifndef JP SetLocalFlag 0x00fa +.endif TextboxNoOverlap 0x2c20 script_080108B2: _0807EA94 diff --git a/data/scripts/script_08010964.inc b/data/scripts/script_08010964.inc index 72d28a10..7b408aaf 100644 --- a/data/scripts/script_08010964.inc +++ b/data/scripts/script_08010964.inc @@ -14,10 +14,16 @@ script_08010994: Call sub_0807DF50 _0807E878 Jump script_08010964 + + SCRIPT_START script_080109A0 BeginBlock EndBlock +.ifdef JP + CheckLocalFlag 0x00ce +.else CheckLocalFlag 0x00d1 +.endif JumpIf script_080109EA CheckPlayerInRegion2 0x0808 JumpIfNot script_080109A0 diff --git a/data/scripts/script_08011128.inc b/data/scripts/script_08011128.inc index c8e34389..d54a4e51 100644 --- a/data/scripts/script_08011128.inc +++ b/data/scripts/script_08011128.inc @@ -2,6 +2,10 @@ SCRIPT_START script_08011128 BeginBlock _0807EB44 0x0004 DoPostScriptAction 0x0000 +.ifdef JP + _0807E9D4 + DoPostScriptAction 0x000a +.endif EndBlock script_08011134: CheckPlayerInRegion 0x01f8, 0x0048, 0x1040 @@ -35,3 +39,6 @@ script_08011134: _0807E5F8 0x00000008 DoPostScriptAction 0x0006 SCRIPT_END +.ifdef JP + .2byte 0x0000 +.endif diff --git a/data/scripts/script_0801194C.inc b/data/scripts/script_0801194C.inc index 3f7fee61..dc3594b3 100644 --- a/data/scripts/script_0801194C.inc +++ b/data/scripts/script_0801194C.inc @@ -127,6 +127,7 @@ script_08011AC4: _0807EA94 _0807E878 Jump script_08011AC4 + SCRIPT_START script_08011AE4 CheckRoomFlag 0x000f JumpIfNot script_08011AE4 @@ -136,7 +137,11 @@ SCRIPT_START script_08011AE4 script_08011AFA: TextboxNoOverlapFollowPos 0x1321, 0x0007 _0807EA94 +.ifdef JP + SetLocalFlag 0x0011 +.else SetLocalFlag 0x0010 +.endif CallWithArg sub_0806DA1C, 0x00000003 _0807E878 Call sub_0807DF50 diff --git a/data/scripts/script_08011C7C.inc b/data/scripts/script_08011C7C.inc index 93e409c8..fe9af336 100644 --- a/data/scripts/script_08011C7C.inc +++ b/data/scripts/script_08011C7C.inc @@ -360,8 +360,10 @@ script_08012070: TextboxNoOverlap 0x3125 _0807EA94 _0807F034 0x0031 - WaitPlayerAction8 + WaitPlayerAction8 +.ifndef JP Call sub_0807FC24 +.endif Jump script_0801209E script_0801209A: TextboxNoOverlap 0x3127 @@ -371,7 +373,11 @@ script_0801209E: _0807EB44 0x0004 DoPostScriptAction 0x0001 Jump script_0801203A +.ifndef JP .2byte 0x0000 +.endif + + SCRIPT_START script_080120B0 BeginBlock Call sub_08064928 @@ -407,8 +413,10 @@ script_080120FC: TextboxNoOverlap 0x3119 _0807EA94 _0807F034 0x002f - WaitPlayerAction8 + WaitPlayerAction8 +.ifndef JP Call sub_0807FC24 +.endif Jump script_0801212A script_08012126: TextboxNoOverlap 0x311b @@ -418,7 +426,10 @@ script_0801212A: _0807EB44 0x0004 DoPostScriptAction 0x0001 Jump script_080120C6 +.ifndef JP .2byte 0x0000 +.endif + SCRIPT_START script_0801213C BeginBlock Call sub_08064A28 @@ -455,7 +466,9 @@ script_08012188: _0807EA94 _0807F034 0x0030 WaitPlayerAction8 +.ifndef JP Call sub_0807FC24 +.endif Jump script_080121B6 script_080121B2: TextboxNoOverlap 0x3121 @@ -465,7 +478,10 @@ script_080121B6: _0807EB44 0x0004 DoPostScriptAction 0x0001 Jump script_08012152 +.ifndef JP .2byte 0x0000 +.endif + SCRIPT_START script_080121C8 BeginBlock Call sub_08064828 diff --git a/data/scripts/script_08012430.inc b/data/scripts/script_08012430.inc index 28277936..a6c730c1 100644 --- a/data/scripts/script_08012430.inc +++ b/data/scripts/script_08012430.inc @@ -18,7 +18,9 @@ script_08012440: SetLocalFlag 0x00b3 _0807F034 0x0062 WaitPlayerAction8 +.ifndef JP SetLocalFlag 0x00d0 +.endif script_08012474: _0807E878 _0807E930 0x0000 diff --git a/data/scripts/script_08012C68.inc b/data/scripts/script_08012C68.inc index 033fc43f..bcbb12f3 100644 --- a/data/scripts/script_08012C68.inc +++ b/data/scripts/script_08012C68.inc @@ -15,6 +15,7 @@ script_08012C7E: SetGlobalFlag 0x0022 _0807E878 Jump script_08012C7E + SCRIPT_START script_08012C98 CheckGlobalFlag 0x0014 JumpIfNot script_08012C98 @@ -30,7 +31,11 @@ script_08012CA0: Call sub_0807DF28 _0807EB28 0x2202 _0807EA94 +.ifdef JP + SetLocalFlag 0x003a +.else SetLocalFlag 0x003b +.endif Call sub_0807DF50 _0807E878 script_08012CD2: diff --git a/data/scripts/script_08012CD8.inc b/data/scripts/script_08012CD8.inc index 59f22008..5e0ade09 100644 --- a/data/scripts/script_08012CD8.inc +++ b/data/scripts/script_08012CD8.inc @@ -12,7 +12,11 @@ SCRIPT_START script_08012CD8 EndBlock _0807EB28 0x2203 _0807EA94 +.ifdef JP + SetLocalFlag 0x003d +.else SetLocalFlag 0x003e +.endif Call sub_0807DF50 _0807E878 DoPostScriptAction 0x0006 diff --git a/data/scripts/script_08012D70.inc b/data/scripts/script_08012D70.inc index 1f0dfcfe..700f949f 100644 --- a/data/scripts/script_08012D70.inc +++ b/data/scripts/script_08012D70.inc @@ -8,7 +8,11 @@ SCRIPT_START script_08012D70 WaitForSomething2 0x00000001 _0807EB28 0x132d _0807EA94 +.ifdef JP + SetLocalFlag 0x0015 +.else SetLocalFlag 0x0014 +.endif Call sub_0807DF50 _0807E878 DoPostScriptAction 0x0006 diff --git a/data/scripts/script_08014450.inc b/data/scripts/script_08014450.inc index ce1cc804..2bce9f6a 100644 --- a/data/scripts/script_08014450.inc +++ b/data/scripts/script_08014450.inc @@ -35,7 +35,9 @@ script_080144B8: Jump script_080144C8 script_080144C0: SetLocalFlag 0x0093 +.ifndef JP SetLocalFlag 0x00d3 +.endif script_080144C8: ModRupees 0xfff6 TextboxNoOverlapFollow 0x420c @@ -54,6 +56,11 @@ script_080144FC: _0807E878 CheckRoomFlag 0x0000 JumpIfNot script_08014462 +.ifndef JP _0807E9DC +.endif SCRIPT_END +.ifndef JP .2byte 0x0000 +.endif + diff --git a/data/scripts/script_080145E8.inc b/data/scripts/script_080145E8.inc index 0e32d77a..88c520e0 100644 --- a/data/scripts/script_080145E8.inc +++ b/data/scripts/script_080145E8.inc @@ -17,6 +17,7 @@ script_08014608: Call sub_0807DF50 _0807E878 Jump script_080145F8 + SCRIPT_START script_08014628 BeginBlock _0807E9D4 @@ -40,7 +41,11 @@ script_0801463A: TextboxNoOverlapFollowPos 0x432b, 0x000c Jump script_080147CE script_08014672: +.ifdef JP + CheckPlayerInRegion 0x0078, 0x0078, 0x0810 +.else Call sub_08088658 +.endif JumpIfNot script_0801463A _0807E864 _0807EB28 0x431f @@ -144,4 +149,6 @@ script_080147CE: Wait 0x0004 _0807E878 Jump script_0801463A +.ifndef JP .2byte 0x0000 +.endif diff --git a/data/scripts/script_08014CDC.inc b/data/scripts/script_08014CDC.inc index 4cb6b657..4a9f1dc2 100644 --- a/data/scripts/script_08014CDC.inc +++ b/data/scripts/script_08014CDC.inc @@ -53,7 +53,11 @@ script_08014D96: TextboxNoOverlap 0x1014 _0807EA94 _0807EC64 0x0018 +.ifdef JP + SetLocalFlag 0x006b +.else SetLocalFlag 0x006d +.endif Call sub_0807DF50 _0807E878 DoPostScriptAction 0x0006 diff --git a/data/scripts/script_08014E14.inc b/data/scripts/script_08014E14.inc index 1acf6e0c..01df4073 100644 --- a/data/scripts/script_08014E14.inc +++ b/data/scripts/script_08014E14.inc @@ -239,7 +239,11 @@ script_08015104: PlaySound SFX_SECRET _0807F0B4 0x0004 CameraTargetPlayer +.ifdef JP + SetLocalFlag 0x008a +.else SetLocalFlag 0x008c +.endif _0807EB28 0x130c _0807EA94 CameraTargetPlayer diff --git a/data/scripts/script_080157AC.inc b/data/scripts/script_080157AC.inc index b4482406..a88d0a4e 100644 --- a/data/scripts/script_080157AC.inc +++ b/data/scripts/script_080157AC.inc @@ -63,7 +63,11 @@ script_08015888: _0807EA94 _0807E5F8 0x00000001 WaitForSomething2 0x00000002 +.ifdef JP + SetLocalFlag 0x0089 +.else SetLocalFlag 0x008b +.endif Call sub_08066FB8 Call sub_0807DF50 _0807E878 diff --git a/data/scripts/script_08015B34.inc b/data/scripts/script_08015B34.inc index 3b383a11..256600f4 100644 --- a/data/scripts/script_08015B34.inc +++ b/data/scripts/script_08015B34.inc @@ -1,7 +1,11 @@ SCRIPT_START script_08015B34 EndBlock BeginBlock +.ifdef JP + CheckLocalFlag 0x0089 +.else CheckLocalFlag 0x008b +.endif JumpIf script_08015B7E CallWithArg sub_0807F6B4, 0x00000318 JumpIfNot script_08015B34 diff --git a/data/scripts/script_08015BA8.inc b/data/scripts/script_08015BA8.inc index 0798902d..46f4d3f6 100644 --- a/data/scripts/script_08015BA8.inc +++ b/data/scripts/script_08015BA8.inc @@ -1,6 +1,10 @@ SCRIPT_START script_08015BA8 BeginBlock +.ifdef JP + SetLocalFlag 0x008c +.else SetLocalFlag 0x008e +.endif _0807E864 MoveEntityToPlayer CameraTargetEntity diff --git a/data/scripts/script_08015BE8.inc b/data/scripts/script_08015BE8.inc index 091c95fc..65c65409 100644 --- a/data/scripts/script_08015BE8.inc +++ b/data/scripts/script_08015BE8.inc @@ -31,7 +31,11 @@ script_08015BF0: PlayBGM _0807EB28 0x131f _0807EA94 +.ifdef JP + SetLocalFlag 0x009b +.else SetLocalFlag 0x009c +.endif Call sub_0807FBCC Call sub_0807DF50 _0807E878 diff --git a/data/scripts/script_08016384.inc b/data/scripts/script_08016384.inc index f1d84660..b0f66de0 100644 --- a/data/scripts/script_08016384.inc +++ b/data/scripts/script_08016384.inc @@ -17,7 +17,11 @@ SCRIPT_START script_08016384 CheckInventory2 0x0001 HasRoomItemForSale CheckLocalFlag 0x0067 +.ifdef JP + CheckLocalFlagByOffset 0x0100, 0x0069 +.else CheckLocalFlagByOffset 0x0100, 0x006b +.endif CheckGlobalFlag 0x0013 CheckRoomFlag 0x0000 CheckPlayerInRegion 0x0000, 0x0000, 0x0000 diff --git a/data/strings.s b/data/strings.s index 20ab7e49..2bc41268 100644 --- a/data/strings.s +++ b/data/strings.s @@ -5,4 +5,8 @@ .align 2 gUnk_089B1D90:: @ 089B1D90 +.ifdef JP + .incbin "baserom_jp.gba", 0x9B1A30, 0x2BCC0 +.else .incbin "translations/USA.bin" +.endif diff --git a/data/tileset_headers.s b/data/tileset_headers.s index 664c1916..abcfff54 100755 --- a/data/tileset_headers.s +++ b/data/tileset_headers.s @@ -868,89 +868,150 @@ gAreaTilesets_PalaceOfWinds:: @ 08102150 gAreaTileset_PalaceOfWindsBoss_0:: @ 08102154 tileset_tiles 0x22131C, 0x6000000, 0x4000, 1 tileset_tiles 0x222634, 0x6004000, 0x4000, 1 +.ifdef JP + tileset_tiles 0x224510, 0x600F000, 0x800, 1 +.else tileset_tiles 0x22449C, 0x600F000, 0x800, 1 +.endif tileset_palette_set 162, 1 gAreaTilesets_PalaceOfWindsBoss:: @ 08102184 .4byte gAreaTileset_PalaceOfWindsBoss_0 gAreaTileset_Sanctuary_0:: @ 08102188 +.ifdef JP + tileset_tiles 0x22E250, 0x6000000, 0x4000, 1 + tileset_tiles 0x22FFA4, 0x6004000, 0x4000, 1 + tileset_tiles 0x232028, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x22E1DC, 0x6000000, 0x4000, 1 tileset_tiles 0x22FF30, 0x6004000, 0x4000, 1 tileset_tiles 0x231FB4, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 57, 1 gAreaTilesets_Sanctuary:: @ 081021B8 .4byte gAreaTileset_Sanctuary_0 gAreaTileset_HyruleCastle_0:: @ 081021BC +.ifdef JP + tileset_tiles 0x2379C0, 0x6000000, 0x4000, 1 + tileset_tiles 0x239B50, 0x6004000, 0x4000, 1 + tileset_tiles 0x23B8C8, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x23794C, 0x6000000, 0x4000, 1 tileset_tiles 0x239ADC, 0x6004000, 0x4000, 1 tileset_tiles 0x23B854, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 58, 1 gAreaTilesets_HyruleCastle:: @ 081021EC .4byte gAreaTileset_HyruleCastle_0 gAreaTileset_SanctuaryEntrance_0:: @ 081021F0 +.ifdef JP + tileset_tiles 0x242430, 0x6000000, 0x4000, 1 + tileset_tiles 0x243F6C, 0x6004000, 0x4000, 1 + tileset_tiles 0x245558, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x2423BC, 0x6000000, 0x4000, 1 tileset_tiles 0x243EF8, 0x6004000, 0x4000, 1 tileset_tiles 0x2454E4, 0x6008000, 0x4000, 1 +.endif + tileset_palette_set 145, 1 gAreaTilesets_SanctuaryEntrance:: @ 08102220 .4byte gAreaTileset_SanctuaryEntrance_0 gAreaTileset_DarkHyruleCastle_0:: @ 08102224 +.ifdef JP + tileset_tiles 0x247560, 0x6000000, 0x4000, 1 + tileset_tiles 0x249734, 0x6004000, 0x4000, 1 + tileset_tiles 0x24B99C, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x2474EC, 0x6000000, 0x4000, 1 tileset_tiles 0x2496C0, 0x6004000, 0x4000, 1 tileset_tiles 0x24B928, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 59, 1 gAreaTilesets_DarkHyruleCastle:: @ 08102254 .4byte gAreaTileset_DarkHyruleCastle_0 gAreaTileset_DarkHyruleCastleOutside_0:: @ 08102258 +.ifdef JP + tileset_tiles 0x26E430, 0x6000000, 0x4000, 1 + tileset_tiles 0x270420, 0x6004000, 0x4000, 1 + tileset_tiles 0x2720A4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x26E3BC, 0x6000000, 0x4000, 1 tileset_tiles 0x2703AC, 0x6004000, 0x4000, 1 tileset_tiles 0x272030, 0x6008000, 0x4000, 1 +.endif + tileset_palette_set 144, 1 gAreaTilesets_DarkHyruleCastleOutside:: @ 08102288 .4byte gAreaTileset_DarkHyruleCastleOutside_0 gAreaTileset_DarkHyruleCastleBridge_0:: @ 0810228C +.ifdef JP + tileset_tiles 0x252F6C, 0x6000000, 0x4000, 1 + tileset_tiles 0x254090, 0x6004000, 0x4000, 1 + tileset_tiles 0x2557CC, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x252EF8, 0x6000000, 0x4000, 1 tileset_tiles 0x25401C, 0x6004000, 0x4000, 1 tileset_tiles 0x255758, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 180, 1 gAreaTilesets_DarkHyruleCastleBridge:: @ 081022BC .4byte gAreaTileset_DarkHyruleCastleBridge_0 gAreaTileset_VaatisArms_0:: @ 081022C0 +.ifdef JP + tileset_tiles 0x260DFC, 0x6000000, 0x4000, 1 + tileset_tiles 0x2625A4, 0x6004000, 0x4000, 1 + tileset_tiles 0x262F78, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x260D88, 0x6000000, 0x4000, 1 tileset_tiles 0x262530, 0x6004000, 0x4000, 1 tileset_tiles 0x262F04, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 155, 1 gAreaTilesets_VaatisArms:: @ 081022F0 .4byte gAreaTileset_VaatisArms_0 gAreaTileset_Vaati3_0:: @ 081022F4 +.ifdef JP + tileset_tiles 0x258204, 0x6000000, 0x4000, 1 + tileset_tiles 0x259310, 0x6004000, 0x4000, 1 + tileset_tiles 0x25A52C, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x258190, 0x6000000, 0x4000, 1 tileset_tiles 0x25929C, 0x6004000, 0x4000, 1 tileset_tiles 0x25A4B8, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 156, 1 gAreaTilesets_Vaati3:: @ 08102324 .4byte gAreaTileset_Vaati3_0 gAreaTileset_Vaati2_0:: @ 08102328 +.ifdef JP + tileset_tiles 0x25D128, 0x6000000, 0x4000, 1 + tileset_tiles 0x25DC08, 0x6004000, 0x4000, 1 + tileset_tiles 0x25EE50, 0x6008000, 0x4000, 1 + tileset_tiles 0x26E13C, 0x600F000, 0x800, 1 +.else tileset_tiles 0x25D0B4, 0x6000000, 0x4000, 1 tileset_tiles 0x25DB94, 0x6004000, 0x4000, 1 tileset_tiles 0x25EDDC, 0x6008000, 0x4000, 1 tileset_tiles 0x26E0C8, 0x600F000, 0x800, 1 +.endif tileset_palette_set 169, 1 gAreaTilesets_Vaati2:: @ 08102364 diff --git a/src/enemy/businessScrub.c b/src/enemy/businessScrub.c index 359c8861..d1ed2872 100644 --- a/src/enemy/businessScrub.c +++ b/src/enemy/businessScrub.c @@ -266,7 +266,9 @@ void sub_08028CE8(Entity* this) { this->actionDelay = 4; this->field_0x80.HALF.HI = 0; sub_080290E0(this, 3); + #ifndef JP SetLocalFlag(0x87); + #endif return; case 1: CreateItemEntity(offer->field_0x8, offer->field_0x9, 0); diff --git a/src/fileScreen.c b/src/fileScreen.c index 925e1f54..6e18b5dd 100644 --- a/src/fileScreen.c +++ b/src/fileScreen.c @@ -413,7 +413,7 @@ void sub_08050940(void) { keys &= ~(DPAD_UP | DPAD_DOWN); } - num_rows = gUnk_02000000->gameLanguage > GAME_LANGUAGE ? NUM_SAVE_SLOTS + 1 : NUM_SAVE_SLOTS; + num_rows = gUnk_02000000->gameLanguage > 1 ? NUM_SAVE_SLOTS + 1 : NUM_SAVE_SLOTS; mode = gUnk_02032EC0.lastState; switch (keys) { case DPAD_UP: diff --git a/src/intro.c b/src/intro.c index 33e87e6c..414165e1 100644 --- a/src/intro.c +++ b/src/intro.c @@ -192,11 +192,17 @@ static void HandleTitlescreen(void) { } break; case 2: + #ifdef JP + if (GetAdvanceState()) { + #else if (--gIntroState.timer == 0) { + #endif gIntroState.timer = 3600; gIntroState.state++; } + #ifndef JP UpdatePressStartIcon(); + #endif break; default: advance = GetAdvanceState(); @@ -209,7 +215,16 @@ static void HandleTitlescreen(void) { AdvanceIntroSequence(advance); SoundReq(SONG_VOL_FADE_OUT); } + #ifdef JP + gOamCmd._4 = 0; + gOamCmd._6 = 0; + gOamCmd._8 = 0xE020; + gOamCmd.x = 120; + gOamCmd.y = 152; + sub_080ADA14(511, 1); + #else UpdatePressStartIcon(); + #endif if ((gIntroState.timer & 0x20) == 0) { gOamCmd._8 = 0xe000; gOamCmd.y = 0x84; @@ -225,6 +240,7 @@ static void HandleTitlescreen(void) { sub_080AD9B0(); } +#ifndef JP static void UpdatePressStartIcon(void) { gOamCmd._4 = 0; gOamCmd._6 = 0; @@ -233,6 +249,7 @@ static void UpdatePressStartIcon(void) { gOamCmd.y = 152; sub_080ADA14(511, 1); } +#endif static void UpdateSwordBgAffineData(void) { struct BgAffineSrcData aff; @@ -269,7 +286,11 @@ static void HandleJapaneseTitlescreenAnimationIntro(void) { if (!gFadeControl.active) { gFadeControl.field_0x4 = -1; gIntroState.subState++; +#ifdef JP + gIntroState.timer = 120; +#else gIntroState.timer = 90; +#endif pEVar2 = CreateObject(OBJECT_B4, 0, 0); if (pEVar2 != NULL) { pEVar2->x.HALF.HI = 0; @@ -280,7 +301,11 @@ static void HandleJapaneseTitlescreenAnimationIntro(void) { case 2: if (GetAdvanceState() != ADVANCE_NONE) { gIntroState.state++; +#ifdef JP + gIntroState.timer = 30; +#else gIntroState.timer = 60; +#endif } } } @@ -306,7 +331,11 @@ static void HandleTitlescreenAnimationIntro(void) { break; case 2: if (--gIntroState.timer == 0) { +#ifdef JP + gIntroState.timer = 360; +#else gIntroState.timer = 300; +#endif gIntroState.subState++; CreateObject(OBJECT_BD, 0, 0); DoFade(6, 16); @@ -316,7 +345,11 @@ static void HandleTitlescreenAnimationIntro(void) { default: if (!gFadeControl.active && GetAdvanceState() != ADVANCE_NONE) { gIntroState.state++; +#ifdef JP + gIntroState.timer = 30; +#else gIntroState.timer = 60; +#endif } break; } diff --git a/src/manager/manager7.c b/src/manager/manager7.c index 089dab1b..0b0431df 100644 --- a/src/manager/manager7.c +++ b/src/manager/manager7.c @@ -56,7 +56,9 @@ void Manager7_Main(Manager7* this) { } if (gRoomControls.unk2) return; + #ifndef JP tmp = this->unk_20; + #endif tmp2 = &gUnk_081080A4[tmp << 4]; switch (this->manager.unk_0e) { case 0: diff --git a/src/npc/castleMaid.c b/src/npc/castleMaid.c index 606c1974..eceef3d3 100644 --- a/src/npc/castleMaid.c +++ b/src/npc/castleMaid.c @@ -97,9 +97,17 @@ void sub_0806464C(Entity* this) { s32 tmp; if (CheckGlobalFlag(0x15) != 0) { tmp = 2; +#ifdef JP + } else if (CheckLocalFlag(0x9f) == 0) { +#else } else if (CheckLocalFlag(0xa0) == 0) { +#endif tmp = 0; +#ifdef JP + SetLocalFlag(0x9f); +#else SetLocalFlag(0xa0); +#endif } else { tmp = 1; } diff --git a/src/npc/castorWildsStatue.c b/src/npc/castorWildsStatue.c index 4ce8bb80..874ba09a 100644 --- a/src/npc/castorWildsStatue.c +++ b/src/npc/castorWildsStatue.c @@ -58,7 +58,11 @@ void sub_08067418(Entity* this) { this->spriteOrientation.flipY = 1; this->spriteRendering.b3 = 1; this->spritePriority.b0 = 2; +#ifdef JP + if (CheckLocalFlag(0x1e) == 0) { +#else if (CheckLocalFlag(0x1d) == 0) { +#endif SetTile(0x4022, 0xe81, 1); SetTile(0x4022, 0xe82, 1); SetTile(0x4022, 0xe83, 1); diff --git a/src/npc/dog.c b/src/npc/dog.c index 378117ce..851cdbf4 100644 --- a/src/npc/dog.c +++ b/src/npc/dog.c @@ -74,7 +74,11 @@ void sub_08069B44(Entity* this) { if (((this->type == 0) && ((gPlayerState.flags.all & 0x80) == 0)) && (GetInventoryValue(0x36) != 2)) { this->action = 4; } +#ifdef JP + if ((this->type == 2) && (CheckLocalFlag(0xcc) == 0)) { +#else if ((this->type == 2) && (CheckLocalFlag(0xcf) == 0)) { +#endif SetTile(0x4072, TILE(this->x.HALF.HI, this->y.HALF.HI - 8), this->collisionLayer); } } @@ -258,7 +262,11 @@ void sub_08069F6C(Entity* this) { } u32 sub_08069F90(Entity* this) { +#ifdef JP + if ((this->type == 2) && (CheckLocalFlag(0xcc) == 0)) { +#else if ((this->type == 2) && (CheckLocalFlag(0xcf) == 0)) { +#endif return 1; } else { return sub_080041A0(this, &gPlayerEntity, 0x14, 0x14); @@ -312,19 +320,39 @@ void sub_0806A0A4(Entity* this) { if ((gPlayerState.flags.all & 0x80) != 0) { dialog = 4; +#ifdef JP + if (CheckLocalFlag(0xcc) == 0) { +#else if (CheckLocalFlag(0xcf) == 0) { +#endif dialog = 3; +#ifdef JP + SetLocalFlag(0xcc); +#else SetLocalFlag(0xcf); +#endif sub_0807BA8C(TILE(this->x.HALF.HI, this->y.HALF.HI - 8), (u32)this->collisionLayer); } } else { dialog = 2; +#ifdef JP + if (CheckLocalFlag(0xcc) == 0) { +#else if (CheckLocalFlag(0xcf) == 0) { +#endif dialog = 1; +#ifdef JP + if (CheckLocalFlag(0xd8) == 0) { +#else if (CheckLocalFlag(0xdb) == 0) { +#endif dialog = 0; +#ifdef JP + SetLocalFlag(0xd8); +#else SetLocalFlag(0xdb); +#endif } } } diff --git a/src/npc/gina.c b/src/npc/gina.c index 5d0dea86..b9b2e255 100644 --- a/src/npc/gina.c +++ b/src/npc/gina.c @@ -29,7 +29,9 @@ void Gina(Entity* this) { case 2: if (UpdateFuseInteraction(this) != 0) { this->action = 1; + #ifndef JP SetLocalFlag(0x88); + #endif } break; } diff --git a/src/npc/npc4E.c b/src/npc/npc4E.c index 0adc5744..b62fb5fc 100644 --- a/src/npc/npc4E.c +++ b/src/npc/npc4E.c @@ -105,19 +105,39 @@ void sub_0806DAD0(Entity* this) { void sub_0806DAE8(Entity* this) { switch (this->type - 1) { case 0: +#ifdef JP + SetLocalFlag(0xeb); +#else SetLocalFlag(0xee); +#endif break; case 1: +#ifdef JP + SetLocalFlag(0xec); +#else SetLocalFlag(0xef); +#endif break; case 2: +#ifdef JP + SetLocalFlag(0xed); +#else SetLocalFlag(0xf0); +#endif break; case 3: +#ifdef JP + SetLocalFlag(0xee); +#else SetLocalFlag(0xf1); +#endif break; case 4: +#ifdef JP + SetLocalFlag(0xef); +#else SetLocalFlag(0xf2); +#endif break; } @@ -127,8 +147,14 @@ void sub_0806DAE8(Entity* this) { void sub_0806DB44(Entity* this, ScriptExecutionContext* context) { context->condition = 0; +#ifdef JP + if (CheckLocalFlag(0xeb) != 0 && CheckLocalFlag(0xec) != 0 && CheckLocalFlag(0xed) != 0 && + CheckLocalFlag(0xee) != 0 && CheckLocalFlag(0xef) != 0) { +#else if (CheckLocalFlag(0xee) != 0 && CheckLocalFlag(0xef) != 0 && CheckLocalFlag(0xf0) != 0 && CheckLocalFlag(0xf1) != 0 && CheckLocalFlag(0xf2) != 0) { +#endif + context->condition = 1; } } diff --git a/src/room.c b/src/room.c index 5e9deac0..da1bc36d 100644 --- a/src/room.c +++ b/src/room.c @@ -566,9 +566,14 @@ void sub_0804BAC0(void) { if (!CheckGlobalFlag(LV2_CLEAR)) { LoadRoomEntityList(&gUnk_080D7328); } + #ifdef JP + if (CheckGlobalFlag(CASTLE_BGM) || CheckGlobalFlag(ENDING)) { + #else if (CheckGlobalFlag(CASTLE_BGM)) { + gArea.pMusicIndex = 0x1b; } else if (CheckGlobalFlag(ENDING)) { + #endif gArea.pMusicIndex = gArea.musicIndex; } } @@ -636,13 +641,21 @@ u32 sub_0804BC34() { extern EntityData gUnk_080D7690; void sub_0804bc38(void) { + #ifdef JP + if (CheckLocalFlag(0x9b)) { + #else if (CheckLocalFlag(0x9c)) { + #endif LoadRoomEntityList(&gUnk_080D7690); } } u32 sub_0804BC50(void) { + #ifdef JP + if (!CheckLocalFlag(0x9e)) { + #else if (!CheckLocalFlag(0x9f)) { + #endif gScreenTransition.field_0xf = 5; ClearGlobalFlag(ZELDA_CHASE); } @@ -652,7 +665,11 @@ u32 sub_0804BC50(void) { extern u32 script_08009E88; void sub_0804BC70(void) { + #ifdef JP + if (!CheckLocalFlag(0x9e)) { + #else if (!CheckLocalFlag(0x9f)) { + #endif DoFade(5, 0x100); gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0xb0; gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x40; @@ -660,11 +677,21 @@ void sub_0804BC70(void) { } if (!CheckGlobalFlag(TABIDACHI)) { sub_08052878(); +#ifndef JP } else { - if (CheckGlobalFlag(CASTLE_BGM)) { - gArea.pMusicIndex = 0x1b; - } +#else } +#endif + if (CheckGlobalFlag(CASTLE_BGM)) { + #ifdef JP + gArea.pMusicIndex = gArea.musicIndex; + #else + gArea.pMusicIndex = 0x1b; + #endif + } +#ifndef JP + } +#endif } extern ScreenTransitionData gUnk_0813AB80; @@ -1952,12 +1979,20 @@ void sub_0804CAA0(void) { if (CheckGlobalFlag(KUMOTATSUMAKI)) { sub_0809F814(0x6de); } +#ifdef JP + if (CheckLocalFlag(0xf0)) { +#else if (CheckLocalFlag(0xf3)) { +#endif sub_0809F814(0xe0); } else { LoadRoomEntityList(&gUnk_080DD7E0); } +#ifdef JP + if (CheckLocalFlag(0xf2)) { +#else if (CheckLocalFlag(0xf5)) { +#endif sub_0809F814(0xba3); } else { LoadRoomEntityList(&gUnk_080DD840); @@ -1970,7 +2005,11 @@ u32 sub_0804CAF4() { void sub_0804CAF8() { sub_080300E8(); +#ifdef JP + SetLocalFlag(0x25); +#else SetLocalFlag(0x24); +#endif } u32 sub_0804CB08() { @@ -1994,8 +2033,11 @@ void sub_0804CB14(void) { } void sub_0804CB2C(void) { - +#ifdef JP + if (CheckLocalFlagByOffset(0x100, 0x28)) { +#else if (CheckLocalFlagByOffset(0x100, 0x27)) { +#endif SetDirtTile(0x85); } } @@ -2031,10 +2073,18 @@ extern EntityData gUnk_080DE200; void sub_0804CB7C(void) { sub_080300E8(); +#ifdef JP + if (!CheckLocalFlag(0x31)) { +#else if (!CheckLocalFlag(0x30)) { +#endif LoadRoomEntityList(&gUnk_080DE1E0); } +#ifdef JP + if (!CheckLocalFlag(0x32)) { +#else if (!CheckLocalFlag(0x31)) { +#endif LoadRoomEntityList(&gUnk_080DE200); } } @@ -4238,7 +4288,9 @@ void LoadHyruleTown(void) { sub_08054570(); TryLoadPrologueHyruleTown(); + #ifndef JP SetTileType(0x176, 0x66b, 1); + #endif if (gSave.unk8 == 1) { sub_0801D000(0); } else { @@ -4296,7 +4348,11 @@ void LoadHyruleTown(void) { LoadRoomEntityList(&gUnk_080EEA5C); } // rocs cape +#ifdef JP + if (!CheckLocalFlag(0xcd) && GetInventoryValue(0x14)) { +#else if (!CheckLocalFlag(0xd0) && GetInventoryValue(0x14)) { +#endif LoadRoomEntityList(&gUnk_080EEABC); } if ((gSave.unk8 > 3) && CheckGlobalFlag(INLOCK)) { @@ -4438,10 +4494,18 @@ void sub_0804E27C(void) { SetGlobalFlag(CASTLE_BGM); } else { if (CheckGlobalFlag(CASTLE_BGM)) { + #ifdef JP + gArea.pMusicIndex = gArea.musicIndex; + #else gArea.pMusicIndex = 0x1b; + #endif } } +#ifdef JP + if (!CheckLocalFlag(0x9b)) { +#else if (!CheckLocalFlag(0x9c)) { +#endif LoadRoomEntityList(&gUnk_080F0800); SetTileType(0x4072, 600, 1); SetTileType(0x4072, 0x298, 1); @@ -4464,9 +4528,17 @@ void sub_0804E27C(void) { } SetTileType(0x4072, 600, 1); SetTileType(0x4072, 0x298, 1); +#ifdef JP + if (CheckLocalFlag(0x11)) { +#else if (CheckLocalFlag(0x10)) { +#endif LoadRoomEntityList(&gUnk_080F0920); +#ifdef JP + ClearLocalFlag(0x11); +#else ClearLocalFlag(0x10); +#endif } } sub_080AF284(); @@ -5055,8 +5127,13 @@ void sub_0804EC00(void) { if (!CheckGlobalFlag(EZERO_1ST)) { LoadRoomEntityList(&gUnk_080F4D50); } +#ifdef JP + if (!CheckLocalFlag(0x3d)) { + if (!CheckLocalFlag(0x3a)) { +#else if (!CheckLocalFlag(0x3e)) { if (!CheckLocalFlag(0x3b)) { +#endif LoadRoomEntityList(&gUnk_080F4DB0); } else { LoadRoomEntityList(&gUnk_080F4DD0); @@ -5106,7 +5183,11 @@ void sub_0804ECEC(void) { // white sword if (GetInventoryValue(0x2)) { LoadRoomEntityList(&gUnk_080F5328); +#ifdef JP + if (!CheckLocalFlag(0x15)) { +#else if (!CheckLocalFlag(0x14)) { +#endif LoadRoomEntityList(&gUnk_080F5308); } } @@ -5291,7 +5372,11 @@ u32 sub_0804F02C() { extern EntityData gUnk_080F5E68; void sub_0804F030(void) { +#ifdef JP + if (!CheckLocalFlagByOffset(0x100, 0xce)) { +#else if (!CheckLocalFlagByOffset(0x100, 0xd1)) { +#endif LoadRoomEntityList(&gUnk_080F5E68); } } @@ -5331,7 +5416,11 @@ void nullsub_400() { } u32 sub_0804F09C(void) { +#ifdef JP + if (CheckGlobalFlag(KUMOTATSUMAKI) && CheckLocalFlagByOffset(0x100, 0xd9)) { +#else if (CheckGlobalFlag(KUMOTATSUMAKI) && CheckLocalFlagByOffset(0x100, 0xdc)) { +#endif SetGlobalFlag(WARP_EVENT_END); } return 1; @@ -5340,7 +5429,11 @@ u32 sub_0804F09C(void) { extern EntityData gUnk_080F61BC; void sub_0804F0C0(void) { +#ifdef JP + if (CheckLocalFlagByOffset(0x100, 0xd9)) { +#else if (CheckLocalFlagByOffset(0x100, 0xdc)) { +#endif SetLocalFlag(0x90); } if (CheckKinstoneFused(0xf)) { @@ -5487,7 +5580,11 @@ void sub_0804F230() { } u32 sub_0804F23C(void) { +#ifdef JP + if (!CheckLocalFlag(0x6b)) { +#else if (!CheckLocalFlag(0x6d)) { +#endif DoFade(7, 0x100); } SetGlobalFlag(OUTDOOR); @@ -5500,7 +5597,11 @@ extern EntityData gUnk_080F7088; void sub_0804F25C(void) { sub_0805ADD8(0); +#ifdef JP + if (!CheckLocalFlag(0x6b)) { +#else if (!CheckLocalFlag(0x6d)) { +#endif LoadRoomEntityList(&gUnk_080F70A8); ClearGlobalFlag(ZELDA_CHASE); } @@ -5606,7 +5707,11 @@ u32 Vars_HyruleField_OutsideCastle(void) { gRoomVars.field_0x6c = &gUnk_080F7CD0; gRoomVars.field_0x88 = sub_0804F5E8; } +#ifdef JP + if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(0x3) && !CheckLocalFlag(0x8a)) { +#else if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(0x3) && !CheckLocalFlag(0x8c)) { +#endif gRoomVars.field_0x6c = &gUnk_080F7C80; gRoomVars.field_0x88 = sub_0804F4E4; gRoomVars.field_0x74 = NULL; @@ -5626,7 +5731,11 @@ extern EntityData gUnk_080F7D70; void Load_HyruleField_OutsideCastle(void) { sub_0804F4E4(); +#ifdef JP + if (!CheckLocalFlag(0x89)) { +#else if (!CheckLocalFlag(0x8b)) { +#endif LoadRoomEntityList(&gUnk_080F7D70); SetTileType(0x174, 0x7a2, 1); SetTileType(0x174, 0x7a3, 1); @@ -5642,7 +5751,11 @@ void Load_HyruleField_OutsideCastle(void) { extern EntityData gUnk_080F7DC0; void sub_0804F578(void) { +#ifdef JP + if (!CheckLocalFlag(0x8c)) { +#else if (!CheckLocalFlag(0x8e)) { +#endif LoadRoomEntityList(&gUnk_080F7DC0); } else { SetTileType(0x37, 0x94a, 1); @@ -5810,7 +5923,11 @@ extern EntityData gUnk_080F82E0; void Load_HyruleField_TrilbyHighlands(void) { sub_0805ADD8(0); +#ifdef JP + if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(0x3) && !CheckLocalFlag(0x9b)) { +#else if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(0x3) && !CheckLocalFlag(0x9c)) { +#endif LoadRoomEntityList(&gUnk_080F82E0); } } @@ -6462,7 +6579,9 @@ u32 sub_0804FED4() { } void sub_0804FED8(void) { + #ifndef JP SetTileType(0x176, 0x66f, 1); + #endif } u32 sub_0804FEEC() { diff --git a/src/save.c b/src/save.c index 8b751914..0d20e003 100644 --- a/src/save.c +++ b/src/save.c @@ -53,9 +53,14 @@ static SaveResult (*const sSaveHandlers[])(u32) = { HandleSaveInit, HandleSaveIn #ifdef DEMO -asm(".incbin \"baserom_demo.gba\", 0x11e010, 0xf0c"); // @nocheckin +asm(".incbin \"baserom_demo.gba\", 0x11e010, 0xf0c"); // TODO +#else + +#ifdef JP +static const char sSignatureLong[32] = "AGBZELDA:THE MINISH CAP:ZELDA 3"; #else static const char sSignatureLong[32] = "AGBZELDA:THE MINISH CAP:ZELDA 5"; +#endif // Save file is untouched static const SaveFileStatus sSaveDescInit = { 0xffff, 0xffff, 'TINI' }; From 833d48b73520f70682a6196905a5139033e8d081 Mon Sep 17 00:00:00 2001 From: octorock <79596758+octorock@users.noreply.github.com> Date: Mon, 21 Jun 2021 23:27:11 +0200 Subject: [PATCH 16/74] Add EU variant --- CONTRIBUTING.md | 2 +- Makefile | 12 +- asm/beanstalk.s | 4 + asm/bird.s | 4 + asm/chuchuBoss.s | 9 +- asm/cloudPiranha.s | 8 + asm/code_08000108.s | 4 + asm/code_080011C4.s | 14 + asm/code_080043E8.s | 5 + asm/code_08016DF8.s | 10 + asm/code_08018500.s | 8 + asm/code_0801967C.s | 9 +- asm/code_0801D79C.s | 6 +- asm/code_080526F8.s | 50 +- asm/code_08054C04.s | 6 + asm/code_08078778.s | 6 + asm/code_0807F0D8.s | 22 +- asm/code_080A3BD0.s | 19 + asm/code_080A5574.s | 64 + asm/code_080AD90C.s | 4 + asm/code_080ADD30.s | 18 + asm/crt0.s | 8 + asm/dust.s | 7 + asm/enemy50.s | 6 + asm/figurineDevice.s | 86 +- asm/fileScreen.s | 19 + asm/gleerok.s | 11 + asm/gyorgFemale.s | 47 + asm/gyorgFemaleEye.s | 4 + asm/intr.s | 24 + asm/item/itemLantern.s | 4 + asm/item/itemSword.s | 4 + asm/itemForSale.s | 5 + asm/ladderUp.s | 4 + asm/manager37.s | 4 + asm/managerF.s | 32 +- asm/non_matching/phonograph/sub_0806E964.inc | 5 + asm/non_matching/ropeGolden/sub_08038304.inc | 4 + .../sittingPerson/sub_0806387C.inc | 16 + .../sittingPerson/sub_0806390C.inc | 8 + asm/non_matching/stockwell/sub_08065370.inc | 5 + asm/non_matching/sub_0804C128.inc | 4 + asm/non_matching/sub_0804DE00.inc | 4 + asm/non_matching/sub_0804E150.inc | 4 + asm/non_matching/textbox/sub_08056750.inc | 2 + asm/object1E.s | 8 + asm/object29.s | 4 + asm/object6A.s | 4 + asm/object9.s | 4 + asm/objectB5.s | 4 + asm/objectBA.s | 4 + asm/octorokBoss.s | 4 + asm/playerItem/playerItem3.s | 4 + asm/playerItem/playerItemSwordSpin.s | 4 + asm/vaatiArm.s | 8 + asm/vaatiProjectile.s | 8 + asm/vaatiRebornEnemy.s | 2 + asm/vaatiTransfigured.s | 2 + asm/vaatiWrath.s | 80 +- asm/waterfallOpening.s | 4 + asm/windTribeTeleporter.s | 6 +- data/animations/enemy/waterDrop.s | 5 + data/animations/npc/guard.s | 8 + data/animations/object/objectB4.s | 5 + data/const/code_08049D30.s | 152 + data/const/enemy/gyorgFemale.s | 16 + data/const/enemy/vaatiRebornEnemy.s | 4 + data/const/enemy/vaatiTransfigured.s | 4 + data/const/manager/manager12.s | 20 + data/const/manager/manager1A.s | 50 + data/const/manager/managerF.s | 2 + data/const/npc/dog.s | 5 + data/const/npc/forestMinish.s | 8 + data/const/npc/kid.s | 4 + data/const/npc/pita.s | 5 + data/const/npc/stockwell.s | 2 + data/const/npc/townsperson.s | 16 + data/const/npc/windTribespeople.s | 8 + data/const/object/figurineDevice.s | 10 + data/const/object/object3D.s | 5 + data/const/object/object9.s | 5 + data/const/object/object96.s | 4 + data/const/object/pinwheel.s | 4 + data/const/object/specialFx.s | 5 + data/data_080029B4.s | 3 + data/data_080B2A70.s | 9 + data/data_080B3740.s | 14 + data/data_080B4410.s | 2585 ++++++++++++++ data/data_080B7B74.s | 69 + data/data_080C93E0.s | 123 + data/data_080D5360.s | 394 +++ data/data_080FC8A4.s | 29 + data/data_080FEEB8.s | 810 +++++ data/data_08108E6C.s | 167 + data/data_081146D0.s | 25 + data/data_0811BE38.s | 5 + data/data_08125104.s | 373 +- data/data_08127280.s | 10 + data/data_0812AA88.s | 787 ++++- data/data_081320FC.s | 144 + data/data_08132B30.s | 181 +- data/data_089FC6C4.s | 39 + data/map_headers.s | 2990 +++++++++++++++++ data/metatile_headers.s | 356 ++ data/scripts/script_08008B5C.inc | 5 + data/scripts/script_0800939A.inc | 13 + data/scripts/script_08009464.inc | 4 + data/scripts/script_080098D4.inc | 8 + data/scripts/script_08009E88.inc | 4 + data/scripts/script_0800A0FC.inc | 4 + data/scripts/script_0800B0D0.inc | 2 + data/scripts/script_0800B200.inc | 8 + data/scripts/script_0800B308.inc | 8 + data/scripts/script_0800D6D0.inc | 8 + data/scripts/script_0800D6F0.inc | 8 + data/scripts/script_0800E0BC.inc | 14 + data/scripts/script_0800F554.inc | 8 + data/scripts/script_0800F724.inc | 12 + data/scripts/script_0800FD0C.inc | 8 + data/scripts/script_0800FF74.inc | 22 + data/scripts/script_08010264.inc | 6 +- data/scripts/script_08010964.inc | 4 + data/scripts/script_08011128.inc | 9 + data/scripts/script_0801194C.inc | 4 + data/scripts/script_08011C7C.inc | 35 +- data/scripts/script_08012430.inc | 10 +- data/scripts/script_08012C68.inc | 4 + data/scripts/script_08012CD8.inc | 4 + data/scripts/script_08012D70.inc | 4 + data/scripts/script_080138B4.inc | 4 + data/scripts/script_08013AA6.inc | 6 + data/scripts/script_08013BE8.inc | 4 +- data/scripts/script_08014248.inc | 5 +- data/scripts/script_080143C0.inc | 2 + data/scripts/script_08014450.inc | 16 +- data/scripts/script_080145B0.inc | 9 + data/scripts/script_080145E8.inc | 113 +- data/scripts/script_08014CDC.inc | 4 + data/scripts/script_08014E14.inc | 4 + data/scripts/script_080157AC.inc | 4 + data/scripts/script_08015B34.inc | 4 + data/scripts/script_08015BA8.inc | 4 + data/scripts/script_08015BE8.inc | 4 + data/scripts/script_080160A8.inc | 14 + data/scripts/script_08016384.inc | 4 + data/sounds.s | 73 + data/sprite_table.s | 5 +- data/strings.s | 19 + data/tileset_headers.s | 676 ++++ linker_EU.ld | 1731 ++++++++++ src/arm_proxy.c | 6 + src/audio.c | 11 +- src/code_0805436C.c | 10 +- src/code_0805F9A0.c | 36 +- src/eeprom.c | 7 +- src/enemy/bombPeahat.c | 59 + src/enemy/businessScrub.c | 8 +- src/enemy/chuchu.c | 6 + src/enemy/gyorgMale.c | 14 + src/enemy/likeLike.c | 4 + src/enemy/rockChuchu.c | 4 + src/enemy/ropeGolden.c | 4 +- src/enemy/rupeeLike.c | 4 + src/enemy/vaatiBall.c | 4 + src/fileScreen.c | 23 + src/game.c | 28 +- src/intro.c | 65 +- src/main.c | 33 +- src/manager/manager4.c | 6 + src/manager/manager7.c | 43 +- src/npc/castleMaid.c | 4 +- src/npc/castorWildsStatue.c | 2 +- src/npc/dog.c | 22 +- src/npc/gina.c | 4 +- src/npc/goronMerchant.c | 22 + src/npc/npc4E.c | 34 +- src/npc/phonograph.c | 6 + src/npc/stockwell.c | 2 + src/object/fileScreenObjects.c | 4 + src/object/itemOnGround.c | 4 + src/object/objectA2.c | 4 + src/player.c | 2 + src/projectile/projectile13.c | 6 + src/projectile/projectile18.c | 2 + src/projectile/projectile19.c | 2 + src/room.c | 158 +- src/save.c | 57 +- src/sub_080A3B84.c | 4 +- src/textbox.c | 9 + 189 files changed, 13608 insertions(+), 247 deletions(-) create mode 100644 linker_EU.ld diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8b9e3fe5..630676b4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -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); diff --git a/Makefile b/Makefile index a28bdc1f..5ead5eee 100644 --- a/Makefile +++ b/Makefile @@ -12,6 +12,8 @@ GAME_LANGUAGE := ENGLISH TITLE := GBAZELDA MC MAKER_CODE := 01 +LINKER_FILE = linker.ld + ifeq ($(GAME_VERSION), USA) GAME_CODE := BZME BUILD_NAME := tmc @@ -25,10 +27,16 @@ GAME_CODE := BZMJ BUILD_NAME := tmc_jp GAME_LANGUAGE := JAPANESE else +ifeq ($(GAME_VERSION), EU) +GAME_CODE := BZMP +BUILD_NAME := tmc_eu +LINKER_FILE := linker_EU.ld +else $(error unknown version $(GAME_VERSION)) endif endif endif +endif SHELL := /bin/bash -o pipefail @@ -217,8 +225,8 @@ $(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) +$(ELF): $(OBJS) $(LINKER_FILE) + cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -n -T ../../$(LINKER_FILE) -o ../../$@ $(LIB) $(FIX) $@ -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) --silent $(ROM): $(ELF) diff --git a/asm/beanstalk.s b/asm/beanstalk.s index 4406c78d..91857daf 100644 --- a/asm/beanstalk.s +++ b/asm/beanstalk.s @@ -22,6 +22,9 @@ _08089D18: .4byte gUnk_08120DF4 thumb_func_start sub_08089D1C sub_08089D1C: @ 0x08089D1C +.ifdef EU + .incbin "baserom_eu.gba", 0x089620, 0x00001E0 @TODO disassemble +.else push {r4, r5, r6, lr} adds r5, r0, #0 ldrb r1, [r5, #0x19] @@ -276,6 +279,7 @@ _08089F00: bl sub_08089F08 _08089F06: pop {r4, r5, r6, pc} +.endif thumb_func_start sub_08089F08 sub_08089F08: @ 0x08089F08 diff --git a/asm/bird.s b/asm/bird.s index a6c53b75..2934667f 100644 --- a/asm/bird.s +++ b/asm/bird.s @@ -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 diff --git a/asm/chuchuBoss.s b/asm/chuchuBoss.s index faec7634..bbbc3632 100644 --- a/asm/chuchuBoss.s +++ b/asm/chuchuBoss.s @@ -1727,6 +1727,9 @@ _080269C8: .4byte 0xFFFFFF00 thumb_func_start sub_080269CC sub_080269CC: @ 0x080269CC +.ifdef EU + .incbin "baserom_eu.gba", 0x0269B0, 0x218 @ TODO disassemble +.else push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb @@ -1999,7 +2002,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 +4288,9 @@ _08027D1E: thumb_func_start sub_08027D20 sub_08027D20: @ 0x08027D20 +.ifdef EU + .incbin "baserom_eu.gba", 0x027D00, 0x48 @TODO disassemble +.else push {r4, r5, lr} adds r5, r0, #0 movs r1, #0x15 @@ -4321,3 +4327,4 @@ _08027D66: adds r0, r4, #0 pop {r4, r5, pc} .align 2, 0 +.endif diff --git a/asm/cloudPiranha.s b/asm/cloudPiranha.s index bda5efbc..9dd83b3c 100644 --- a/asm/cloudPiranha.s +++ b/asm/cloudPiranha.s @@ -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 diff --git a/asm/code_08000108.s b/asm/code_08000108.s index b54a3d0a..12ce1f80 100644 --- a/asm/code_08000108.s +++ b/asm/code_08000108.s @@ -5,6 +5,10 @@ .text +.ifdef EU + .incbin "baserom_eu.gba", 0x000118, 0x38 @TODO disassemble +.endif + thumb_func_start sub_08000108 sub_08000108: @ 0x08000108 push {r4, lr} diff --git a/asm/code_080011C4.s b/asm/code_080011C4.s index 41c256b3..dece593a 100644 --- a/asm/code_080011C4.s +++ b/asm/code_080011C4.s @@ -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 diff --git a/asm/code_080043E8.s b/asm/code_080043E8.s index 590a4825..70bf95de 100644 --- a/asm/code_080043E8.s +++ b/asm/code_080043E8.s @@ -2261,9 +2261,14 @@ gUnk_08007D07:: @ 08007D07 .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 diff --git a/asm/code_08016DF8.s b/asm/code_08016DF8.s index 8654c9fd..b1bbea94 100644 --- a/asm/code_08016DF8.s +++ b/asm/code_08016DF8.s @@ -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 diff --git a/asm/code_08018500.s b/asm/code_08018500.s index adb6ee66..262f4700 100644 --- a/asm/code_08018500.s +++ b/asm/code_08018500.s @@ -171,8 +171,12 @@ sub_0801862C: @ 0x0801862C 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 @@ -633,8 +637,12 @@ _080189D0: 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 diff --git a/asm/code_0801967C.s b/asm/code_0801967C.s index 3c978fd9..a43b54fa 100644 --- a/asm/code_0801967C.s +++ b/asm/code_0801967C.s @@ -985,11 +985,18 @@ _08019DE4: bne _08019DEE b _0801A2A4 _08019DEE: -.ifndef JP +.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 diff --git a/asm/code_0801D79C.s b/asm/code_0801D79C.s index 656da67f..b135154c 100644 --- a/asm/code_0801D79C.s +++ b/asm/code_0801D79C.s @@ -2191,7 +2191,10 @@ _0801E8D2: thumb_func_start sub_0801E8D4 sub_0801E8D4: @ 0x0801E8D4 .ifdef JP - .incbin "baserom_jp.gba", 0x01E8B8, 0x90 @nocheckin + .incbin "baserom_jp.gba", 0x01E8B8, 0x90 @TODO disassemble +.else +.ifdef EU + .incbin "baserom_eu.gba", 0x01E90C, 0x90 @TODO probably the same as JP? .else push {r4, r5, lr} movs r5, #0xa @@ -2292,6 +2295,7 @@ _0801E990: pop {r4, r5, pc} .align 2, 0 _0801E998: .4byte gUnk_02002C8E +.endif .endif thumb_func_start sub_0801E99C diff --git a/asm/code_080526F8.s b/asm/code_080526F8.s index a75e9e39..52e84d20 100644 --- a/asm/code_080526F8.s +++ b/asm/code_080526F8.s @@ -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 @@ -622,8 +626,12 @@ sub_08052BB8: @ 0x08052BB8 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 @@ -653,7 +661,7 @@ _08052BEE: bl TextBoxAtYPosition pop {pc} -.ifndef JP +.ifdef USA thumb_func_start sub_08052BF8 sub_08052BF8: @ 0x08052BF8 push {lr} @@ -687,6 +695,42 @@ _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 @@ -1317,8 +1361,12 @@ _0805311A: 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 diff --git a/asm/code_08054C04.s b/asm/code_08054C04.s index f5aee129..e18c98ee 100644 --- a/asm/code_08054C04.s +++ b/asm/code_08054C04.s @@ -385,8 +385,12 @@ sub_08054EB8: @ 0x08054EB8 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 @@ -888,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 diff --git a/asm/code_08078778.s b/asm/code_08078778.s index 8f01dad2..0905212a 100644 --- a/asm/code_08078778.s +++ b/asm/code_08078778.s @@ -314,8 +314,12 @@ sub_08078AA8: @ 0x08078AA8 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 @@ -5640,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 diff --git a/asm/code_0807F0D8.s b/asm/code_0807F0D8.s index 8dc21086..74d902aa 100644 --- a/asm/code_0807F0D8.s +++ b/asm/code_0807F0D8.s @@ -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,8 +1582,9 @@ sub_0807FBFC: @ 0x0807FBFC bx lr .align 2, 0 _0807FC20: .4byte gSave +.endif -.ifndef JP +.ifdef USA thumb_func_start sub_0807FC24 sub_0807FC24: @ 0x0807FC24 push {lr} @@ -1598,6 +1600,24 @@ _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 diff --git a/asm/code_080A3BD0.s b/asm/code_080A3BD0.s index b3807006..041f3bc9 100644 --- a/asm/code_080A3BD0.s +++ b/asm/code_080A3BD0.s @@ -544,6 +544,9 @@ _080A407C: .4byte gUnk_02019EE0 thumb_func_start sub_080A4080 sub_080A4080: @ 0x080A4080 +.ifdef EU + .incbin "baserom_eu.gba", 0x0A3898, 0x00000CC @TODO disassemble +.else push {r4, r5, r6, r7, lr} ldr r4, _080A4134 @ =gOamCmd movs r0, #0 @@ -637,6 +640,7 @@ _080A413C: .4byte 0x000001FB _080A4140: .4byte gMain _080A4144: .4byte gUnk_08128110 _080A4148: .4byte 0x0000FFFF +.endif thumb_func_start sub_080A414C sub_080A414C: @ 0x080A414C @@ -1707,6 +1711,9 @@ _080A4974: .4byte gSave thumb_func_start sub_080A4978 sub_080A4978: @ 0x080A4978 +.ifdef EU + .incbin "baserom_eu.gba", 0x0A4190, 0x00001CC @TODO disassemble +.else push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} @@ -1927,6 +1934,7 @@ _080A4B3A: pop {r4, r5, r6, r7, pc} .align 2, 0 _080A4B40: .4byte 0x06014000 +.endif thumb_func_start sub_080A4B44 sub_080A4B44: @ 0x080A4B44 @@ -2731,7 +2739,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 @@ -2754,7 +2767,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 @@ -2991,6 +3006,9 @@ _080A5380: thumb_func_start sub_080A5384 sub_080A5384: @ 0x080A5384 +.ifdef EU + .incbin "baserom_eu.gba", 0x0A4B98, 0x00001C8 @TODO disassemble +.else push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb @@ -3212,3 +3230,4 @@ _080A553C: .4byte gUnk_08128B64 _080A5540: .4byte gMain _080A5544: .4byte 0x000001FB _080A5548: .4byte gSave +.endif diff --git a/asm/code_080A5574.s b/asm/code_080A5574.s index 51824e3f..8951bdc2 100644 --- a/asm/code_080A5574.s +++ b/asm/code_080A5574.s @@ -350,6 +350,9 @@ _080A57F0: thumb_func_start sub_080A57F4 sub_080A57F4: @ 0x080A57F4 +.ifdef EU + .incbin "baserom_eu.gba", 0x0A5008, 0x000019C @TODO disassemble +.else push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 @@ -553,6 +556,7 @@ _080A5980: .4byte gUnk_080FDFD8 _080A5984: .4byte gMenu _080A5988: .4byte gOamCmd _080A598C: .4byte gSave +.endif thumb_func_start sub_080A5990 sub_080A5990: @ 0x080A5990 @@ -748,13 +752,21 @@ _080A5AF0: .4byte gMenu thumb_func_start sub_080A5AF4 sub_080A5AF4: @ 0x080A5AF4 +.ifdef EU + push {lr} + ldr r1, _080A5B18 @ =gMenu + movs r0, #0 + strb r0, [r1, #3] +.else push {r4, lr} ldr r0, _080A5B18 @ =gMenu movs r4, #0 strb r4, [r0, #3] +.endif movs r0, #2 movs r1, #0 bl sub_08052418 +.ifndef EU movs r0, #0x80 lsls r0, r0, #0x12 ldrb r0, [r0, #7] @@ -771,12 +783,21 @@ _080A5B20: .4byte 0x0000FFFC _080A5B24: ldr r0, _080A5B30 @ =gScreen strh r4, [r0, #0x18] +.endif _080A5B28: movs r0, #1 bl sub_080A7114 +.ifdef EU + pop {pc} +.else pop {r4, pc} +.endif .align 2, 0 +.ifdef EU +_080A5B18: .4byte gMenu +.else _080A5B30: .4byte gScreen +.endif thumb_func_start sub_080A5B34 sub_080A5B34: @ 0x080A5B34 @@ -1017,6 +1038,9 @@ _080A5D18: .4byte gUnk_02019EE0 thumb_func_start sub_080A5D1C sub_080A5D1C: @ 0x080A5D1C +.ifdef EU + .incbin "baserom_eu.gba", 0x0A550C, 0x000020C @TODO disassemble +.else push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb @@ -1270,6 +1294,7 @@ _080A5F14: pop {r4, r5, r6, r7, pc} .align 2, 0 _080A5F20: .4byte 0x000001FB +.endif thumb_func_start sub_080A5F24 sub_080A5F24: @ 0x080A5F24 @@ -1571,6 +1596,9 @@ _080A6178: thumb_func_start sub_080A617C sub_080A617C: @ 0x080A617C +.ifdef EU + .incbin "baserom_eu.gba", 0x0A5970, 0x00000F4 @TODO disassemble +.else push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} @@ -1686,6 +1714,7 @@ _080A6260: .4byte gOamCmd _080A6264: .4byte gMenu _080A6268: .4byte gMain _080A626C: .4byte gUnk_08128D70 +.endif thumb_func_start sub_080A6270 sub_080A6270: @ 0x080A6270 @@ -1820,6 +1849,9 @@ _080A6374: .4byte gMenu thumb_func_start sub_080A6378 sub_080A6378: @ 0x080A6378 +.ifdef EU + .incbin "baserom_eu.gba", 0x0A5B6C, 0x00000C0 @TODO disassemble +.else push {r4, r5, r6, lr} ldr r0, _080A6420 @ =gMenu adds r4, r0, #0 @@ -1907,9 +1939,13 @@ _080A6428: .4byte gScreenTransition _080A642C: .4byte gPlayerState _080A6430: .4byte 0x000001FB _080A6434: .4byte gUnk_08128DE8 +.endif thumb_func_start sub_080A6438 sub_080A6438: @ 0x080A6438 +.ifdef EU + .incbin "baserom_eu.gba", 0x0A5C2C, 0x0000060 @TODO disassemble +.else push {r4, r5, r6, r7, lr} ldr r2, _080A6484 @ =gOamCmd movs r1, #0 @@ -1956,9 +1992,13 @@ _080A6488: .4byte gSave _080A648C: .4byte gMenu _080A6490: .4byte gUnk_08128F58 _080A6494: .4byte 0x000001FB +.endif thumb_func_start sub_080A6498 sub_080A6498: @ 0x080A6498 +.ifdef EU + .incbin "baserom_eu.gba", 0x0A5C8C, 0x0000064 @TODO disassemble +.else push {r4, r5, r6, r7, lr} ldr r0, _080A64E4 @ =gOamCmd movs r2, #0 @@ -2005,6 +2045,7 @@ _080A64EC: .4byte gUnk_08128DE8 _080A64F0: .4byte 0x000001FB _080A64F4: .4byte gScreen _080A64F8: .4byte 0x00003D3F +.endif thumb_func_start sub_080A64FC sub_080A64FC: @ 0x080A64FC @@ -2230,6 +2271,9 @@ _080A66C2: thumb_func_start sub_080A66D0 sub_080A66D0: @ 0x080A66D0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0A5EC4, 0x00000F4 @TODO disassemble +.else push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb @@ -2351,6 +2395,7 @@ _080A67BA: mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} +.endif thumb_func_start sub_080A67C4 sub_080A67C4: @ 0x080A67C4 @@ -2487,6 +2532,9 @@ _080A68D0: .4byte gUnk_02019EE0 thumb_func_start sub_080A68D4 sub_080A68D4: @ 0x080A68D4 +.ifdef EU + .incbin "baserom_eu.gba", 0x0A60C8, 0x00000B4 @TODO disassemble +.else push {r4, r5, r6, lr} ldr r0, _080A690C @ =gPlayerState ldr r0, [r0, #0x30] @@ -2571,6 +2619,7 @@ _080A6976: _080A6980: .4byte 0x000001FB _080A6984: .4byte gUnk_080C9CBC _080A6988: .4byte gUnk_080FE320 +.endif thumb_func_start sub_080A698C sub_080A698C: @ 0x080A698C @@ -2832,7 +2881,12 @@ _080A6B84: ldr r1, _080A6C10 @ =gScreenTransition ldrh r0, [r1, #0x20] ldrh r1, [r1, #0x22] +.ifdef EU + movs r4, #0xfd + lsls r4, r4, #0x1 +.else ldr r4, _080A6C14 @ =0x000001FB +.endif movs r3, #0x80 lsls r3, r3, #1 adds r3, r2, r3 @@ -2889,7 +2943,9 @@ _080A6C04: .4byte 0x00005001 _080A6C08: .4byte gBG3Buffer _080A6C0C: .4byte gPlayerState _080A6C10: .4byte gScreenTransition +.ifndef EU _080A6C14: .4byte 0x000001FB +.endif _080A6C18: .4byte gUnk_08128E94 thumb_func_start sub_080A6C1C @@ -3118,6 +3174,9 @@ _080A6DC6: thumb_func_start sub_080A6DD0 sub_080A6DD0: @ 0x080A6DD0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0A65BC, 0x0000034 @TODO disassemble +.else push {lr} bl sub_08056338 cmp r0, #0 @@ -3139,6 +3198,7 @@ _080A6DF2: bl sub_080A7114 _080A6DF6: pop {pc} +.endif thumb_func_start sub_080A6DF8 sub_080A6DF8: @ 0x080A6DF8 @@ -3199,6 +3259,9 @@ _080A6E6C: .4byte gUnk_08128024 thumb_func_start sub_080A6E70 sub_080A6E70: @ 0x080A6E70 +.ifdef EU + .incbin "baserom_eu.gba", 0x0A6668, 0x0000070 @TODO disassemble +.else push {r4, r5, lr} ldr r1, _080A6ED0 @ =gOamCmd movs r0, #0 @@ -3251,6 +3314,7 @@ _080A6ED0: .4byte gOamCmd _080A6ED4: .4byte gMenu _080A6ED8: .4byte 0x000001FB _080A6EDC: .4byte gSave +.endif thumb_func_start sub_080A6EE0 sub_080A6EE0: @ 0x080A6EE0 diff --git a/asm/code_080AD90C.s b/asm/code_080AD90C.s index 2a3a1036..cca9bf3e 100644 --- a/asm/code_080AD90C.s +++ b/asm/code_080AD90C.s @@ -140,7 +140,11 @@ sub_080ADA04: @ 0x080ADA04 bl _call_via_r2 pop {pc} .align 2, 0 +.ifdef EU +_080ADA10: .4byte gUnk_030065C8 +.else _080ADA10: .4byte gUnk_0300659C +.endif thumb_func_start sub_080ADA14 sub_080ADA14: @ 0x080ADA14 diff --git a/asm/code_080ADD30.s b/asm/code_080ADD30.s index 4007d63d..3bf23ff7 100644 --- a/asm/code_080ADD30.s +++ b/asm/code_080ADD30.s @@ -43,6 +43,9 @@ _080ADD6C: .4byte gUnk_02024490 thumb_func_start sub_080ADD70 sub_080ADD70: @ 0x080ADD70 +.ifdef EU + .incbin "baserom_eu.gba", 0x0AD514, 0x0000058 @TODO disassemble +.else push {r4, r5, lr} ldr r1, _080ADD88 @ =gUnk_02024490 ldrb r0, [r1] @@ -96,6 +99,7 @@ _080ADDCE: bls _080ADD90 _080ADDD6: pop {r4, r5, pc} +.endif thumb_func_start sub_080ADDD8 sub_080ADDD8: @ 0x080ADDD8 @@ -317,6 +321,9 @@ _080ADF7C: thumb_func_start LoadFixedGFX LoadFixedGFX: @ 0x080ADF80 +.ifdef EU + .incbin "baserom_eu.gba", 0x0AD714, 0x0000070 @TODO disassemble +.else push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} @@ -382,9 +389,13 @@ _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 + .incbin "baserom_eu.gba", 0x0AD784, 0x0000050 @TODO disassemble +.else push {r4, r5, r6, lr} adds r6, r0, #0 adds r5, r1, #0 @@ -431,6 +442,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 +629,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 +655,7 @@ _080AE1D4: pop {r4, pc} .align 2, 0 +.ifndef EU thumb_func_start sub_080AE1D8 sub_080AE1D8: @ 0x080AE1D8 push {r4, r5, lr} @@ -923,6 +940,7 @@ _080AE3D8: movs r0, #0 _080AE3E2: pop {pc} +.endif thumb_func_start sub_080AE3E4 sub_080AE3E4: @ 0x080AE3E4 diff --git a/asm/crt0.s b/asm/crt0.s index 73578ef5..a0daf080 100644 --- a/asm/crt0.s +++ b/asm/crt0.s @@ -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 0x08000119 @ TODO ptr +.endif diff --git a/asm/dust.s b/asm/dust.s index f010f3dc..5d384b5f 100644 --- a/asm/dust.s +++ b/asm/dust.s @@ -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 diff --git a/asm/enemy50.s b/asm/enemy50.s index 436b55ec..02c6683e 100644 --- a/asm/enemy50.s +++ b/asm/enemy50.s @@ -9,6 +9,9 @@ thumb_func_start Enemy50 Enemy50: @ 0x08040B2C +.ifdef EU + .incbin "baserom_eu.gba", 0x040a2c, 0x5c @TODO disassemble +.else push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xa] @@ -48,6 +51,7 @@ _08040B5C: pop {r4, r5, pc} .align 2, 0 _08040B80: .4byte gUnk_080D0DC4 +.endif thumb_func_start sub_08040B84 sub_08040B84: @ 0x08040B84 @@ -1042,6 +1046,7 @@ _080412C8: .align 2, 0 _080412FC: .4byte gRoomControls +.ifndef EU thumb_func_start sub_08041300 sub_08041300: @ 0x08041300 push {lr} @@ -1071,3 +1076,4 @@ _0804132A: _0804132C: pop {pc} .align 2, 0 +.endif diff --git a/asm/figurineDevice.s b/asm/figurineDevice.s index 2d3400de..c7767f27 100644 --- a/asm/figurineDevice.s +++ b/asm/figurineDevice.s @@ -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,9 @@ _08087E5A: thumb_func_start sub_08087E5C sub_08087E5C: @ 0x08087E5C +.ifdef EU + .incbin "baserom_eu.gba", 0x087838, 0x00000E0 @TODO disassemble +.else push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r5, r4, #0 @@ -488,6 +503,7 @@ _08087F4E: .align 2, 0 _08087F50: .4byte 0x0000431A _08087F54: .4byte gTextBox +.endif thumb_func_start sub_08087F58 sub_08087F58: @ 0x08087F58 @@ -523,6 +539,9 @@ _08087F90: .4byte 0x00004022 sub_08087F94: @ 0x08087F94 .ifdef JP .incbin "baserom_jp.gba", 0x087dac, 0xb0 @TODO disassemble +.else +.ifdef EU + .incbin "baserom_eu.gba", 0x087954, 0x000009C @TODO disassemble .else push {r4, r5, r6, r7, lr} adds r5, r0, #0 @@ -608,6 +627,7 @@ _08088028: bl SoundReq _08088032: pop {r4, r5, r6, r7, pc} +.endif .endif thumb_func_start sub_08088034 @@ -682,8 +702,12 @@ _080880B2: 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 @@ -698,7 +722,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} @@ -715,7 +743,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 @@ -742,7 +774,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] @@ -777,7 +813,10 @@ _0808815C: .4byte gSave thumb_func_start sub_08088160 sub_08088160: @ 0x08088160 .ifdef JP - .incbin "baserom_jp.gba", 0x087f88, 0xe8 + .incbin "baserom_jp.gba", 0x087f88, 0xe8 @TODO disassemble +.else +.ifdef EU + .incbin "baserom_eu.gba", 0x087B1C, 0x00000E8 @ TODO same as JP .else push {r4, lr} adds r2, r0, #0 @@ -908,6 +947,7 @@ _08088266: _08088268: adds r0, r4, #0 pop {r4, pc} +.endif .endif thumb_func_start sub_0808826C @@ -915,7 +955,11 @@ 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 @@ -958,8 +1002,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 @@ -1002,6 +1048,9 @@ _08088324: .4byte gScreen thumb_func_start sub_08088328 sub_08088328: @ 0x08088328 +.ifdef EU + .incbin "baserom_eu.gba", 0x087CBC, 0x00000F8 @TODO disassemble +.else push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} @@ -1129,6 +1178,7 @@ _08088414: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} +.endif thumb_func_start sub_08088424 sub_08088424: @ 0x08088424 @@ -1140,10 +1190,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 @@ -1152,28 +1208,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] @@ -1239,15 +1313,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 @@ -1310,7 +1388,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 @@ -1387,6 +1469,7 @@ _0808860A: .align 2, 0 _08088618: .4byte gSave +.ifndef EU thumb_func_start sub_0808861C sub_0808861C: @ 0x0808861C .ifdef JP @@ -1452,3 +1535,4 @@ _08088678: _08088684: .4byte gPlayerEntity _08088688: .4byte gActiveScriptInfo .endif +.endif diff --git a/asm/fileScreen.s b/asm/fileScreen.s index 6d31d88d..a289b6f3 100755 --- a/asm/fileScreen.s +++ b/asm/fileScreen.s @@ -189,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 @@ -198,6 +200,9 @@ _08051AEC: .4byte gScreenTransition thumb_func_start sub_08051AF0 sub_08051AF0: @ 0x08051AF0 +.ifdef EU + .incbin "baserom_eu.gba", 0x05172C, 0x00000D0 @TODO disassemble +.else push {r4, r5, lr} bl sub_0805E5C0 bl sub_0805BBBC @@ -227,7 +232,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] @@ -258,16 +267,23 @@ _08051B5A: .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] @@ -282,11 +298,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 diff --git a/asm/gleerok.s b/asm/gleerok.s index d8709272..5367db12 100644 --- a/asm/gleerok.s +++ b/asm/gleerok.s @@ -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,9 @@ _0802D7B0: .4byte gScreenTransition thumb_func_start sub_0802D7B4 sub_0802D7B4: @ 0x0802D7B4 +.ifdef EU + .incbin "baserom_eu.gba", 0x02d73c, 0xb0 @TODO disassemble +.else push {r4, r5, lr} adds r5, r0, #0 ldrb r0, [r5, #0xe] @@ -1073,6 +1083,7 @@ _0802D85C: _0802D868: pop {r4, r5, pc} .align 2, 0 +.endif thumb_func_start sub_0802D86C sub_0802D86C: @ 0x0802D86C diff --git a/asm/gyorgFemale.s b/asm/gyorgFemale.s index daba4aa9..acb064ee 100644 --- a/asm/gyorgFemale.s +++ b/asm/gyorgFemale.s @@ -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 @@ -437,8 +472,10 @@ _08046494: pop {r4, r5, r6, pc} .align 2, 0 +@ TODO move inside, if EU no longer references this function 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 +492,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 +707,9 @@ _0804665A: thumb_func_start sub_08046668 sub_08046668: @ 0x08046668 +.ifdef EU + .incbin "baserom_eu.gba", 0x046438, 0x38 @TODO disassemble +.else push {r4, r5, lr} adds r4, r0, #0 adds r0, #0x45 @@ -699,9 +740,13 @@ _080466A0: pop {r4, r5, pc} .align 2, 0 _080466A4: .4byte gUnk_080D1AF8 +.endif thumb_func_start sub_080466A8 sub_080466A8: @ 0x080466A8 +.ifdef EU + .incbin "baserom_eu.gba", 0x046470, 0x12c @TODO disassemble +.else push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r0, #0x7c @@ -855,6 +900,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 +915,4 @@ _080467E6: cmp r1, #7 bls _080467E6 pop {pc} + diff --git a/asm/gyorgFemaleEye.s b/asm/gyorgFemaleEye.s index 2a8c346b..6e26f54c 100644 --- a/asm/gyorgFemaleEye.s +++ b/asm/gyorgFemaleEye.s @@ -44,6 +44,9 @@ _080489C8: .4byte gUnk_080D1F7C thumb_func_start sub_080489CC sub_080489CC: @ 0x080489CC +.ifdef EU + .incbin "baserom_eu.gba", 0x048788, 0x84 @TODO disassemble +.else push {r4, r5, r6, lr} mov ip, r0 adds r0, #0x45 @@ -168,6 +171,7 @@ _08048AD8: pop {r4, r5, r6, pc} .align 2, 0 _08048AEC: .4byte gUnk_080D1F64 +.endif thumb_func_start sub_08048AF0 sub_08048AF0: @ 0x08048AF0 diff --git a/asm/intr.s b/asm/intr.s index c8e377bf..3723ee2e 100644 --- a/asm/intr.s +++ b/asm/intr.s @@ -590,7 +590,11 @@ _080B20E0: b _080B20E0 .align 2, 0 _080B20E4: .4byte 0x0000208C +.ifdef EU +_080B20E8: .4byte gUnk_030069AC +.else _080B20E8: .4byte gUnk_030067E4 +.endif arm_func_start sub_080B20EC sub_080B20EC: @ 0x080B20EC @@ -814,6 +818,9 @@ _080B23EC: .4byte gUnk_0800464E arm_func_start sub_080B23F0 sub_080B23F0: @ 0x080B23F0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B1950, 0x00000A8 @TODO disassemble +.else push {r4, r5, r6, r7, r8, sb, sl, fp, lr} ldr fp, _080B2A30 @ =gUnk_03000000 ldrb r2, [fp, #3] @@ -852,6 +859,7 @@ sub_080B2448: @ 0x080B2448 bl sub_080B2534 ldm sp!, {lr} b _080B26B4 +.endif arm_func_start sub_080B2478 sub_080B2478: @ 0x080B2478 @@ -927,6 +935,9 @@ _080B2540: arm_func_start sub_080B255C sub_080B255C: @ 0x080B255C +.ifdef EU + .incbin "baserom_eu.gba", 0x0B1ADC, 0x00001C8 @TODO disassemble +.else stmdb sp!, {lr} mov r4, r0 bl sub_080B299C @@ -1048,6 +1059,8 @@ _080B26D0: bgt _080B26D0 ldm sp!, {lr} bx lr + +.endif _080B2718: ldrsb r0, [r4, #0x28] cmp r0, #0 @@ -1271,7 +1284,15 @@ _080B2A0C: orr r8, r8, r5, lsl #22 bx lr .align 2, 0 + +.ifdef EU + .incbin "baserom_eu.gba", 0x0B1FBC, 0x0000194 @TODO disassemble +.endif + _080B2A30: .4byte gUnk_03000000 +.ifdef EU + .4byte 0x03006958 @TODO make pointer? +.endif _080B2A34: .4byte gUnk_081326EC _080B2A38: .4byte gUnk_081326EC _080B2A3C: .4byte gUnk_081326EC @@ -1287,3 +1308,6 @@ _080B2A60: .4byte gUnk_082F3D74 _080B2A64: .4byte gUnk_03000000 _080B2A68: .4byte gUnk_0300695C _080B2A6C: .4byte 0x3E003F00 +.ifdef EU + .4byte 0x03003DF8 @TODO pointer? +.endif diff --git a/asm/item/itemLantern.s b/asm/item/itemLantern.s index 574bafb9..0c26709a 100644 --- a/asm/item/itemLantern.s +++ b/asm/item/itemLantern.s @@ -118,6 +118,9 @@ _08075AD8: .4byte gUnk_08126EEC thumb_func_start sub_08075ADC sub_08075ADC: @ 0x08075ADC +.ifdef EU + .incbin "baserom_eu.gba", 0x07550C, 0x0000074 @TODO disassemble +.else push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 @@ -177,6 +180,7 @@ _08075B4C: bl UpdateItemAnim _08075B52: pop {r4, r5, pc} +.endif thumb_func_start sub_08075B54 sub_08075B54: @ 0x08075B54 diff --git a/asm/item/itemSword.s b/asm/item/itemSword.s index 5401f336..d14add13 100644 --- a/asm/item/itemSword.s +++ b/asm/item/itemSword.s @@ -26,6 +26,9 @@ _08075334: .4byte gUnk_0811BD44 thumb_func_start sub_08075338 sub_08075338: @ 0x08075338 +.ifdef EU + .incbin "baserom_eu.gba", 0x074D74, 0x0000174 @TODO disassemble +.else push {r4, r5, r6, r7, lr} adds r5, r0, #0 adds r7, r1, #0 @@ -210,6 +213,7 @@ _080754A6: _080754B4: pop {r4, r5, r6, r7, pc} .align 2, 0 +.endif thumb_func_start sub_080754B8 sub_080754B8: @ 0x080754B8 diff --git a/asm/itemForSale.s b/asm/itemForSale.s index 8b447c9c..af98dc19 100644 --- a/asm/itemForSale.s +++ b/asm/itemForSale.s @@ -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 diff --git a/asm/ladderUp.s b/asm/ladderUp.s index 1344665a..6137f152 100644 --- a/asm/ladderUp.s +++ b/asm/ladderUp.s @@ -9,6 +9,9 @@ thumb_func_start LadderUp LadderUp: @ 0x0808DB54 +.ifdef EU + .incbin "baserom_eu.gba", 0x08D44C, 0x0000200 @TODO disassemble +.else push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} @@ -279,3 +282,4 @@ _0808DD72: pop {r4, r5, r6, r7, pc} .align 2, 0 _0808DD78: .4byte 0x00004014 +.endif diff --git a/asm/manager37.s b/asm/manager37.s index 3d1d80e4..43657704 100644 --- a/asm/manager37.s +++ b/asm/manager37.s @@ -36,6 +36,9 @@ _0805DE64: .4byte gUnk_08108DC4 sub_0805DE68: @ 0x0805DE68 .ifdef JP .incbin "baserom_jp.gba", 0x05dcbc, 0x3c @TODO disassemble +.else +.ifdef EU + .incbin "baserom_eu.gba", 0x05D904, 0x3c @TODO same as JP .else push {r4, lr} adds r4, r0, #0 @@ -73,6 +76,7 @@ _0805DE7A: _0805DEAC: .4byte gScreenTransition _0805DEB0: .4byte gSave _0805DEB4: .4byte 0x00001194 +.endif .endif thumb_func_start sub_0805DEB8 diff --git a/asm/managerF.s b/asm/managerF.s index 191c3554..73263595 100644 --- a/asm/managerF.s +++ b/asm/managerF.s @@ -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,8 +805,10 @@ _080594D2: _080594D4: .4byte gUnk_08108380 _080594D8: .4byte gPlayerEntity +@TODO move down once EU pointers are fixed thumb_func_start sub_080594DC sub_080594DC: @ 0x080594DC +.ifndef EU push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] @@ -850,11 +858,32 @@ _08059540: pop {r4, pc} .align 2, 0 _08059544: .4byte gArea +.endif thumb_func_start sub_08059548 sub_08059548: @ 0x08059548 -.ifndef JP +.ifdef USA + 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 +.else +.ifdef DEMO @ TODO deduplicate push {lr} movs r1, #6 bl sub_0805E3A0 @@ -874,3 +903,4 @@ _0805955C: _08059568: .4byte gPlayerEntity _0805956C: .4byte gInput .endif +.endif diff --git a/asm/non_matching/phonograph/sub_0806E964.inc b/asm/non_matching/phonograph/sub_0806E964.inc index 0f7e9760..63091404 100644 --- a/asm/non_matching/phonograph/sub_0806E964.inc +++ b/asm/non_matching/phonograph/sub_0806E964.inc @@ -1,4 +1,8 @@ .syntax unified + +.ifdef EU + .incbin "baserom_eu.gba", 0x06E3DC, 0x000011C @TODO disassemble +.else push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 @@ -179,4 +183,5 @@ _0806EAAA: .align 2, 0 _0806EAB4: .4byte 0x80010000 _0806EAB8: .4byte gActiveScriptInfo +.endif .syntax divided diff --git a/asm/non_matching/ropeGolden/sub_08038304.inc b/asm/non_matching/ropeGolden/sub_08038304.inc index 82668a58..46f0703e 100644 --- a/asm/non_matching/ropeGolden/sub_08038304.inc +++ b/asm/non_matching/ropeGolden/sub_08038304.inc @@ -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 diff --git a/asm/non_matching/sittingPerson/sub_0806387C.inc b/asm/non_matching/sittingPerson/sub_0806387C.inc index 7ff53936..063e6ae0 100644 --- a/asm/non_matching/sittingPerson/sub_0806387C.inc +++ b/asm/non_matching/sittingPerson/sub_0806387C.inc @@ -4,8 +4,12 @@ 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 @@ -13,16 +17,24 @@ 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 @@ -46,8 +58,12 @@ _080638B2: 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 diff --git a/asm/non_matching/sittingPerson/sub_0806390C.inc b/asm/non_matching/sittingPerson/sub_0806390C.inc index 5de14422..1576a801 100644 --- a/asm/non_matching/sittingPerson/sub_0806390C.inc +++ b/asm/non_matching/sittingPerson/sub_0806390C.inc @@ -4,8 +4,12 @@ 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 @@ -13,8 +17,12 @@ 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 diff --git a/asm/non_matching/stockwell/sub_08065370.inc b/asm/non_matching/stockwell/sub_08065370.inc index e8beb8c8..0c4e91c1 100644 --- a/asm/non_matching/stockwell/sub_08065370.inc +++ b/asm/non_matching/stockwell/sub_08065370.inc @@ -1,4 +1,8 @@ .syntax unified + +.ifdef EU + .incbin "baserom_eu.gba", 0x064DE8, 0x0000164 @TODO disassemble +.else push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 @@ -183,4 +187,5 @@ _080654CE: pop {r4, r5, r6, r7, pc} .align 2, 0 _080654D8: .4byte 0x00002C0D +.endif .syntax divided diff --git a/asm/non_matching/sub_0804C128.inc b/asm/non_matching/sub_0804C128.inc index ca770dbf..9a853e42 100644 --- a/asm/non_matching/sub_0804C128.inc +++ b/asm/non_matching/sub_0804C128.inc @@ -118,8 +118,12 @@ _0804C206: 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 diff --git a/asm/non_matching/sub_0804DE00.inc b/asm/non_matching/sub_0804DE00.inc index c1326428..4ec67d83 100644 --- a/asm/non_matching/sub_0804DE00.inc +++ b/asm/non_matching/sub_0804DE00.inc @@ -69,8 +69,12 @@ _0804DE5C: 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 diff --git a/asm/non_matching/sub_0804E150.inc b/asm/non_matching/sub_0804E150.inc index c4fcb207..b782f7f8 100644 --- a/asm/non_matching/sub_0804E150.inc +++ b/asm/non_matching/sub_0804E150.inc @@ -26,8 +26,12 @@ _0804E17C: bne _0804E168 .ifdef JP movs r0, #0xce +.else +.ifdef EU + movs r0, #0xce .else movs r0, #0xd1 +.endif .endif bl CheckLocalFlag cmp r0, #0 diff --git a/asm/non_matching/textbox/sub_08056750.inc b/asm/non_matching/textbox/sub_08056750.inc index fafe63d6..c6f8b6c0 100644 --- a/asm/non_matching/textbox/sub_08056750.inc +++ b/asm/non_matching/textbox/sub_08056750.inc @@ -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 diff --git a/asm/object1E.s b/asm/object1E.s index 8bfbd69b..e3168e6a 100644 --- a/asm/object1E.s +++ b/asm/object1E.s @@ -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 diff --git a/asm/object29.s b/asm/object29.s index 43e3180d..e973f20e 100644 --- a/asm/object29.s +++ b/asm/object29.s @@ -30,6 +30,9 @@ _08089870: .4byte gUnk_08120D90 thumb_func_start sub_08089874 sub_08089874: @ 0x08089874 +.ifdef EU + .incbin "baserom_eu.gba", 0x089184, 0x00000C4 @TODO disassemble +.else push {r4, r5, lr} adds r4, r0, #0 ldrb r1, [r4, #0x10] @@ -135,6 +138,7 @@ _08089934: _08089940: pop {r4, r5, pc} .align 2, 0 +.endif thumb_func_start sub_08089944 sub_08089944: @ 0x08089944 diff --git a/asm/object6A.s b/asm/object6A.s index fb464dcb..54e443d7 100644 --- a/asm/object6A.s +++ b/asm/object6A.s @@ -728,6 +728,9 @@ sub_08094F98: @ 0x08094F98 thumb_func_start sub_08094FA8 sub_08094FA8: @ 0x08094FA8 +.ifdef EU + .incbin "baserom_eu.gba", 0x09487C, 0x000009C @TODO disassemble +.else push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] @@ -833,6 +836,7 @@ _08095070: bl sub_08078A90 _08095086: pop {r4, pc} +.endif thumb_func_start sub_08095088 sub_08095088: @ 0x08095088 diff --git a/asm/object9.s b/asm/object9.s index 210c0dea..3e195043 100644 --- a/asm/object9.s +++ b/asm/object9.s @@ -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 diff --git a/asm/objectB5.s b/asm/objectB5.s index 89ef3f00..7b7556e3 100644 --- a/asm/objectB5.s +++ b/asm/objectB5.s @@ -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 diff --git a/asm/objectBA.s b/asm/objectBA.s index 7dcc5217..65210428 100644 --- a/asm/objectBA.s +++ b/asm/objectBA.s @@ -28,6 +28,9 @@ _080A1700: .4byte gUnk_08124ED0 thumb_func_start sub_080A1704 sub_080A1704: @ 0x080A1704 +.ifdef EU + .incbin "baserom_eu.gba", 0x0A0F40, 0x0000128 @TODO disassemble +.else push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb @@ -178,6 +181,7 @@ _080A183C: .4byte gPlayerState _080A1840: .4byte 0x80100000 _080A1844: .4byte gArea _080A1848: .4byte 0x00000864 +.endif thumb_func_start sub_080A184C sub_080A184C: @ 0x080A184C diff --git a/asm/octorokBoss.s b/asm/octorokBoss.s index 9b5142e6..5b9f204d 100644 --- a/asm/octorokBoss.s +++ b/asm/octorokBoss.s @@ -178,6 +178,9 @@ _080352FA: sub_080352FC: @ 0x080352FC .ifdef JP .incbin "baserom_jp.gba", 0x0352a0, 0x1fc @TODO disassemble +.else +.ifdef EU + .incbin "baserom_eu.gba", 0x03527C, 0x1fc @TODO disassemble same as JP .else push {r4, r5, r6, r7, lr} mov r7, sl @@ -424,6 +427,7 @@ _080354E8: pop {r4, r5, r6, r7, pc} .align 2, 0 _080354F4: .4byte 0x00000109 +.endif .endif thumb_func_start sub_080354F8 diff --git a/asm/playerItem/playerItem3.s b/asm/playerItem/playerItem3.s index 3d8bf469..09952ea8 100644 --- a/asm/playerItem/playerItem3.s +++ b/asm/playerItem/playerItem3.s @@ -66,6 +66,9 @@ _0801B4C4: .4byte 0xFFFFE000 thumb_func_start sub_0801B4C8 sub_0801B4C8: @ 0x0801B4C8 +.ifdef EU + .incbin "baserom_eu.gba", 0x01B4F4, 0xc8 @ TODO disassemble +.else push {r4, r5, lr} adds r4, r0, #0 ldr r3, _0801B52C @ =gPlayerState @@ -161,6 +164,7 @@ _0801B56C: adds r0, r4, #0 bl sub_0801B584 pop {r4, r5, pc} +.endif thumb_func_start sub_0801B584 sub_0801B584: @ 0x0801B584 diff --git a/asm/playerItem/playerItemSwordSpin.s b/asm/playerItem/playerItemSwordSpin.s index f91f2956..d0accd5b 100644 --- a/asm/playerItem/playerItemSwordSpin.s +++ b/asm/playerItem/playerItemSwordSpin.s @@ -168,8 +168,12 @@ sub_0801BB2C: @ 0x0801BB2C movs r2, #5 .ifdef JP bl CreateItemEntity +.else +.ifdef EU + bl CreateItemEntity .else bl sub_080A7C18 +.endif .endif ldr r0, _0801BB8C @ =0x00000109 bl SoundReq diff --git a/asm/vaatiArm.s b/asm/vaatiArm.s index 46cc2189..39a63f98 100644 --- a/asm/vaatiArm.s +++ b/asm/vaatiArm.s @@ -1006,8 +1006,12 @@ _08042C9E: 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 @@ -3162,6 +3166,9 @@ _08043C8C: sub_08043C98: @ 0x08043C98 .ifdef JP .incbin "baserom_jp.gba", 0x043BB0, 0x20 @TODO disassemble +.else +.ifdef EU + .incbin "baserom_eu.gba", 0x043AC4, 0x20 @TODO same as JP .else push {lr} adds r3, r0, #0 @@ -3194,6 +3201,7 @@ _08043CD0: movs r0, #0 _08043CD2: pop {pc} +.endif .endif thumb_func_start sub_08043CD4 diff --git a/asm/vaatiProjectile.s b/asm/vaatiProjectile.s index 1be37b71..119c72e3 100644 --- a/asm/vaatiProjectile.s +++ b/asm/vaatiProjectile.s @@ -51,6 +51,9 @@ _0803E0D8: .4byte gUnk_080D0660 thumb_func_start sub_0803E0DC sub_0803E0DC: @ 0x0803E0DC +.ifdef EU + .incbin "baserom_eu.gba", 0x03E038, 0x68 @TODO disassemble +.else push {r4, r5, r6, lr} adds r5, r0, #0 adds r0, #0x41 @@ -132,6 +135,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 +559,9 @@ _0803E49E: thumb_func_start sub_0803E4A0 sub_0803E4A0: @ 0x0803E4A0 +.ifdef EU + .incbin "baserom_eu.gba", 0x03e3b8, 0x30 @TODO disassemble +.else push {lr} adds r1, r0, #0 ldr r0, _0803E4B8 @ =gScreenTransition @@ -588,6 +595,7 @@ _0803E4D4: adds r0, r2, #0 _0803E4D6: pop {pc} +.endif thumb_func_start sub_0803E4D8 sub_0803E4D8: @ 0x0803E4D8 diff --git a/asm/vaatiRebornEnemy.s b/asm/vaatiRebornEnemy.s index 51485753..1a1a6103 100644 --- a/asm/vaatiRebornEnemy.s +++ b/asm/vaatiRebornEnemy.s @@ -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 diff --git a/asm/vaatiTransfigured.s b/asm/vaatiTransfigured.s index 246058b5..f3aac9f0 100644 --- a/asm/vaatiTransfigured.s +++ b/asm/vaatiTransfigured.s @@ -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 diff --git a/asm/vaatiWrath.s b/asm/vaatiWrath.s index cf180e03..e31fe4b3 100644 --- a/asm/vaatiWrath.s +++ b/asm/vaatiWrath.s @@ -66,6 +66,9 @@ _0804139C: .4byte gUnk_080D0E1C sub_080413A0: @ 0x080413A0 .ifdef JP .incbin "baserom_jp.gba", 0x041344, 0x18 @TODO disassemble +.else +.ifdef EU + .incbin "baserom_eu.gba", 0x041274, 0x18 @TODO same as JP .else push {r4, lr} adds r4, r0, #0 @@ -80,6 +83,7 @@ sub_080413A0: @ 0x080413A0 pop {r4, pc} .align 2, 0 _080413BC: .4byte gUnk_080D0E2C +.endif .endif thumb_func_start sub_080413C0 @@ -1121,6 +1125,9 @@ _08041BE4: .4byte gUnk_080D0E68 thumb_func_start sub_08041BE8 sub_08041BE8: @ 0x08041BE8 +.ifdef EU + .incbin "baserom_eu.gba", 0x041AB4, 0xCA @TODO disassemble +.else push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} @@ -1221,6 +1228,7 @@ _08041CC0: .4byte 0x000001F5 _08041CC4: .4byte 0x0000016B _08041CC8: .4byte gRoomControls _08041CCC: .4byte gPlayerEntity +.endif thumb_func_start sub_08041CD0 sub_08041CD0: @ 0x08041CD0 @@ -2134,7 +2142,7 @@ sub_0804235C: @ 0x0804235C bl InitializeAnimation pop {r4, r5, pc} -.ifndef JP +.ifdef USA thumb_func_start sub_080423A4 sub_080423A4: @ 0x080423A4 push {r4, lr} @@ -2201,6 +2209,76 @@ _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 diff --git a/asm/waterfallOpening.s b/asm/waterfallOpening.s index 79dcbc42..b2e767f9 100644 --- a/asm/waterfallOpening.s +++ b/asm/waterfallOpening.s @@ -9,6 +9,9 @@ thumb_func_start WaterfallOpening WaterfallOpening: @ 0x0809FF68 +.ifdef EU + .incbin "baserom_eu.gba", 0x09F7C8, 0x000013C @TODO disassemble +.else push {r4, r5, lr} adds r4, r0, #0 ldrb r1, [r4, #0xc] @@ -169,6 +172,7 @@ _080A00AA: pop {r4, r5, pc} .align 2, 0 _080A00AC: .4byte gRoomControls +.endif thumb_func_start sub_080A00B0 sub_080A00B0: @ 0x080A00B0 diff --git a/asm/windTribeTeleporter.s b/asm/windTribeTeleporter.s index d9b16c88..9349cf93 100644 --- a/asm/windTribeTeleporter.s +++ b/asm/windTribeTeleporter.s @@ -116,7 +116,10 @@ _080A0FFE: thumb_func_start sub_080A1000 sub_080A1000: @ 0x080A1000 .ifdef JP - .incbin "baserom_jp.gba", 0x0a0dc8, 0xd0 + .incbin "baserom_jp.gba", 0x0a0dc8, 0xd0 @TODO disassemble +.else +.ifdef EU + .incbin "baserom_eu.gba", 0x0A084C, 0xd0 @TODO same as JP .else push {r4, lr} adds r4, r0, #0 @@ -235,6 +238,7 @@ _080A10D4: .align 2, 0 _080A10D8: .4byte gScreenTransition _080A10DC: .4byte gPlayerEntity +.endif .endif thumb_func_start sub_080A10E0 diff --git a/data/animations/enemy/waterDrop.s b/data/animations/enemy/waterDrop.s index 1ae0704d..f0267b36 100644 --- a/data/animations/enemy/waterDrop.s +++ b/data/animations/enemy/waterDrop.s @@ -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 diff --git a/data/animations/npc/guard.s b/data/animations/npc/guard.s index 761eb951..ae7d7805 100644 --- a/data/animations/npc/guard.s +++ b/data/animations/npc/guard.s @@ -26,17 +26,25 @@ 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 diff --git a/data/animations/object/objectB4.s b/data/animations/object/objectB4.s index 2faef082..9f995c2e 100644 --- a/data/animations/object/objectB4.s +++ b/data/animations/object/objectB4.s @@ -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 diff --git a/data/const/code_08049D30.s b/data/const/code_08049D30.s index 27249f58..8f739504 100644 --- a/data/const/code_08049D30.s +++ b/data/const/code_08049D30.s @@ -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 diff --git a/data/const/enemy/gyorgFemale.s b/data/const/enemy/gyorgFemale.s index f0c0b262..f77ba4cb 100644 --- a/data/const/enemy/gyorgFemale.s +++ b/data/const/enemy/gyorgFemale.s @@ -23,34 +23,50 @@ 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 diff --git a/data/const/enemy/vaatiRebornEnemy.s b/data/const/enemy/vaatiRebornEnemy.s index 6192e31f..5398d7ab 100644 --- a/data/const/enemy/vaatiRebornEnemy.s +++ b/data/const/enemy/vaatiRebornEnemy.s @@ -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 diff --git a/data/const/enemy/vaatiTransfigured.s b/data/const/enemy/vaatiTransfigured.s index a5163c24..57f0135d 100644 --- a/data/const/enemy/vaatiTransfigured.s +++ b/data/const/enemy/vaatiTransfigured.s @@ -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 diff --git a/data/const/manager/manager12.s b/data/const/manager/manager12.s index 69287c9f..c44bb7b7 100644 --- a/data/const/manager/manager12.s +++ b/data/const/manager/manager12.s @@ -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 diff --git a/data/const/manager/manager1A.s b/data/const/manager/manager1A.s index 08855570..99351064 100644 --- a/data/const/manager/manager1A.s +++ b/data/const/manager/manager1A.s @@ -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 diff --git a/data/const/manager/managerF.s b/data/const/manager/managerF.s index 4ecc53df..9bd68705 100644 --- a/data/const/manager/managerF.s +++ b/data/const/manager/managerF.s @@ -19,10 +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 diff --git a/data/const/npc/dog.s b/data/const/npc/dog.s index 2409e3fb..976c8da7 100644 --- a/data/const/npc/dog.s +++ b/data/const/npc/dog.s @@ -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 diff --git a/data/const/npc/forestMinish.s b/data/const/npc/forestMinish.s index 2a6d36a7..f5b18042 100644 --- a/data/const/npc/forestMinish.s +++ b/data/const/npc/forestMinish.s @@ -69,18 +69,26 @@ 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 diff --git a/data/const/npc/kid.s b/data/const/npc/kid.s index c85f402f..c7d074a3 100644 --- a/data/const/npc/kid.s +++ b/data/const/npc/kid.s @@ -54,9 +54,13 @@ 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 diff --git a/data/const/npc/pita.s b/data/const/npc/pita.s index 138277fa..2c5b5c3a 100644 --- a/data/const/npc/pita.s +++ b/data/const/npc/pita.s @@ -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 diff --git a/data/const/npc/stockwell.s b/data/const/npc/stockwell.s index 734e7c07..6a0066d0 100644 --- a/data/const/npc/stockwell.s +++ b/data/const/npc/stockwell.s @@ -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 diff --git a/data/const/npc/townsperson.s b/data/const/npc/townsperson.s index 498f4461..0e9ecd25 100644 --- a/data/const/npc/townsperson.s +++ b/data/const/npc/townsperson.s @@ -86,17 +86,25 @@ 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 @@ -105,9 +113,13 @@ 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 @@ -121,9 +133,13 @@ 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 diff --git a/data/const/npc/windTribespeople.s b/data/const/npc/windTribespeople.s index 0ec5129e..97202d52 100644 --- a/data/const/npc/windTribespeople.s +++ b/data/const/npc/windTribespeople.s @@ -49,17 +49,25 @@ 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 diff --git a/data/const/object/figurineDevice.s b/data/const/object/figurineDevice.s index 12e4f22a..f02bc42d 100644 --- a/data/const/object/figurineDevice.s +++ b/data/const/object/figurineDevice.s @@ -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 diff --git a/data/const/object/object3D.s b/data/const/object/object3D.s index 62cabd68..cdbdb782 100644 --- a/data/const/object/object3D.s +++ b/data/const/object/object3D.s @@ -10,4 +10,9 @@ gUnk_081216BC:: @ 081216BC .4byte sub_0808D064 gUnk_081216C8:: @ 081216C8 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x120E10, 0x0000014 +.else .incbin "baserom.gba", 0x1216C8, 0x0000014 +.endif diff --git a/data/const/object/object9.s b/data/const/object/object9.s index fed6cf18..0c93d24b 100644 --- a/data/const/object/object9.s +++ b/data/const/object/object9.s @@ -5,7 +5,12 @@ .align 2 gUnk_0811F744:: @ 0811F744 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x11EE8C, 0x0000010 +.else .incbin "baserom.gba", 0x11F744, 0x0000010 +.endif gUnk_0811F754:: @ 0811F754 .4byte sub_08083914 diff --git a/data/const/object/object96.s b/data/const/object/object96.s index bfc43378..a510537d 100644 --- a/data/const/object/object96.s +++ b/data/const/object/object96.s @@ -22,8 +22,12 @@ gUnk_08123FB0:: @ 08123FB0 .4byte 0x00180000 .ifdef JP .4byte 0x000000CD +.else +.ifdef EU + .4byte 0x000000CD .else .4byte 0x000000d0 +.endif .endif .4byte sub_0809D91C .4byte 00000000 diff --git a/data/const/object/pinwheel.s b/data/const/object/pinwheel.s index e9db3be1..a142cf19 100644 --- a/data/const/object/pinwheel.s +++ b/data/const/object/pinwheel.s @@ -7,9 +7,13 @@ gUnk_08125050:: @ 08125050 .ifdef JP .incbin "baserom_jp.gba", 0x124D14, 0x000000C +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x124D14, 0x000000C .else .incbin "baserom.gba", 0x125050, 0x000000C .endif +.endif gUnk_0812505C:: @ 0812505C .4byte sub_080A23DC diff --git a/data/const/object/specialFx.s b/data/const/object/specialFx.s index 60155c44..3315d8af 100644 --- a/data/const/object/specialFx.s +++ b/data/const/object/specialFx.s @@ -8,7 +8,12 @@ gUnk_0811F960:: @ 0811F960 .incbin "baserom.gba", 0x11F960, 0x000009B gUnk_0811F9FB:: @ 0811F9FB +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x11F143, 0x00000C5 +.else .incbin "baserom.gba", 0x11F9FB, 0x00000C5 +.endif gUnk_0811FAC0:: @ 0811FAC0 .4byte sub_080844E0 diff --git a/data/data_080029B4.s b/data/data_080029B4.s index b5287f63..4e1e59ae 100644 --- a/data/data_080029B4.s +++ b/data/data_080029B4.s @@ -1226,10 +1226,12 @@ gSpritePtrs:: @ 080029B4 .4byte 00000000 .4byte 00000000 .4byte gUnk_08124BFC +.ifndef EU .4byte 00000000 .4byte 00000000 .4byte 00000000 .4byte gUnk_08124BFC +.endif .4byte 00000000 .4byte 00000000 .4byte 00000000 @@ -1365,6 +1367,7 @@ gSpritePtrs:: @ 080029B4 .4byte 00000000 .4byte 00000000 .4byte 00000000 + gUnk_08003DD4:: @ 08003DD4 .4byte gUnk_080FDFD8 .4byte gUnk_0811B578 diff --git a/data/data_080B2A70.s b/data/data_080B2A70.s index c9d0f236..70618027 100644 --- a/data/data_080B2A70.s +++ b/data/data_080B2A70.s @@ -19,7 +19,16 @@ gUnk_080B2A70:: @ 080B2A70 .4byte sub_08016B30 .4byte sub_08016B30 .4byte sub_08016B30 + + +@ TODO contains some pointers to iwram +.ifdef EU + .incbin "baserom_eu.gba", 0x0B21D0, 0x0000230 +.else .incbin "baserom.gba", 0x0B2AA8, 0x0000230 +.endif + + gUnk_080B2CD8:: @ 080B2CD8 gUnk_080B2CD8_2:: @ 080B2CD8 diff --git a/data/data_080B3740.s b/data/data_080B3740.s index 2313efa0..14dca41f 100644 --- a/data/data_080B3740.s +++ b/data/data_080B3740.s @@ -33,10 +33,20 @@ gUnk_080B3744:: @ 080B3744 .4byte sub_08017E88 gUnk_080B37A0:: @ 080B37A0 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0B2EC8, 0x0000192 +.else .incbin "baserom.gba", 0x0B37A0, 0x0000192 +.endif gUnk_080B3932:: @ 080B3932 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0B305A, 0x00003E2 +.else .incbin "baserom.gba", 0x0B3932, 0x00003E2 +.endif gUnk_080B3D14:: @ 080B3D14 .incbin "baserom.gba", 0x0B3D14, 0x000000C @@ -45,6 +55,10 @@ gUnk_080B3D20:: @ 080B3D20 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0B3AC0, 0x00000B0 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0B3AC0, 0x00000B0 .else .incbin "baserom.gba", 0x0B3D20, 0x00000B0 .endif +.endif diff --git a/data/data_080B4410.s b/data/data_080B4410.s index 74f3323f..724ca6e2 100644 --- a/data/data_080B4410.s +++ b/data/data_080B4410.s @@ -8,9 +8,13 @@ gUnk_080B4410:: @ 080B4410 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0B41B0, 0x0000048 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0B41B0, 0x0000048 .else .incbin "baserom.gba", 0x0B4410, 0x0000048 .endif +.endif gUnk_080B4458:: @ 080B4458 .4byte sub_08019698 @@ -76,16 +80,33 @@ gUnk_080B4550:: @ 080B4550 .4byte gUnk_080B4540 gUnk_080B4568:: @ 080B4568 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3C90, 0x0000008 +.else .incbin "baserom.gba", 0x0B4568, 0x0000008 +.endif gUnk_080B4570:: @ 080B4570 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3C98, 0x0000008 +.else .incbin "baserom.gba", 0x0B4570, 0x0000008 +.endif gUnk_080B4578:: @ 080B4578 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3CA0, 0x0000008 +.else .incbin "baserom.gba", 0x0B4578, 0x0000008 +.endif + gUnk_080B4580:: @ 080B4580 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3CA8, 0x0000008 +.else .incbin "baserom.gba", 0x0B4580, 0x0000008 +.endif gUnk_080B4588:: @ 080B4588 .4byte gUnk_080B4568 @@ -98,16 +119,32 @@ gUnk_080B4588:: @ 080B4588 .incbin "baserom.gba", 0x0B45A4, 0x000000C gUnk_080B45B0:: @ 080B45B0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3CD8, 0x0000008 +.else .incbin "baserom.gba", 0x0B45B0, 0x0000008 +.endif gUnk_080B45B8:: @ 080B45B8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3CE0, 0x0000008 +.else .incbin "baserom.gba", 0x0B45B8, 0x0000008 +.endif gUnk_080B45C0:: @ 080B45C0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3CE8, 0x0000008 +.else .incbin "baserom.gba", 0x0B45C0, 0x0000008 +.endif gUnk_080B45C8:: @ 080B45C8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3CF0, 0x0000008 +.else .incbin "baserom.gba", 0x0B45C8, 0x0000008 +.endif gUnk_080B45D0:: @ 080B45D0 .4byte gUnk_080B45B0 @@ -120,16 +157,32 @@ gUnk_080B45D0:: @ 080B45D0 .incbin "baserom.gba", 0x0B45EC, 0x000000C gUnk_080B45F8:: @ 080B45F8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3D20, 0x0000008 +.else .incbin "baserom.gba", 0x0B45F8, 0x0000008 +.endif gUnk_080B4600:: @ 080B4600 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3D28, 0x0000008 +.else .incbin "baserom.gba", 0x0B4600, 0x0000008 +.endif gUnk_080B4608:: @ 080B4608 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3D30, 0x0000008 +.else .incbin "baserom.gba", 0x0B4608, 0x0000008 +.endif gUnk_080B4610:: @ 080B4610 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3D38, 0x0000008 +.else .incbin "baserom.gba", 0x0B4610, 0x0000008 +.endif gUnk_080B4618:: @ 080B4618 .4byte gUnk_080B45F8 @@ -142,16 +195,32 @@ gUnk_080B4618:: @ 080B4618 .incbin "baserom.gba", 0x0B4634, 0x000000C gUnk_080B4640:: @ 080B4640 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3D68, 0x0000008 +.else .incbin "baserom.gba", 0x0B4640, 0x0000008 +.endif gUnk_080B4648:: @ 080B4648 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3D70, 0x0000008 +.else .incbin "baserom.gba", 0x0B4648, 0x0000008 +.endif gUnk_080B4650:: @ 080B4650 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3D78, 0x0000008 +.else .incbin "baserom.gba", 0x0B4650, 0x0000008 +.endif gUnk_080B4658:: @ 080B4658 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3D80, 0x0000008 +.else .incbin "baserom.gba", 0x0B4658, 0x0000008 +.endif gUnk_080B4660:: @ 080B4660 .4byte gUnk_080B4640 @@ -164,16 +233,32 @@ gUnk_080B4660:: @ 080B4660 .incbin "baserom.gba", 0x0B467C, 0x000000C gUnk_080B4688:: @ 080B4688 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3DB0, 0x0000008 +.else .incbin "baserom.gba", 0x0B4688, 0x0000008 +.endif gUnk_080B4690:: @ 080B4690 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3DB8, 0x0000008 +.else .incbin "baserom.gba", 0x0B4690, 0x0000008 +.endif gUnk_080B4698:: @ 080B4698 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3DC0, 0x0000008 +.else .incbin "baserom.gba", 0x0B4698, 0x0000008 +.endif gUnk_080B46A0:: @ 080B46A0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3DC8, 0x0000008 +.else .incbin "baserom.gba", 0x0B46A0, 0x0000008 +.endif gUnk_080B46A8:: @ 080B46A8 .4byte gUnk_080B4688 @@ -186,16 +271,32 @@ gUnk_080B46A8:: @ 080B46A8 .incbin "baserom.gba", 0x0B46C4, 0x000000C gUnk_080B46D0:: @ 080B46D0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3DF8, 0x0000008 +.else .incbin "baserom.gba", 0x0B46D0, 0x0000008 +.endif gUnk_080B46D8:: @ 080B46D8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3E00, 0x0000008 +.else .incbin "baserom.gba", 0x0B46D8, 0x0000008 +.endif gUnk_080B46E0:: @ 080B46E0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3E08, 0x0000008 +.else .incbin "baserom.gba", 0x0B46E0, 0x0000008 +.endif gUnk_080B46E8:: @ 080B46E8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3E10, 0x0000008 +.else .incbin "baserom.gba", 0x0B46E8, 0x0000008 +.endif gUnk_080B46F0:: @ 080B46F0 .4byte gUnk_080B46D0 @@ -208,16 +309,32 @@ gUnk_080B46F0:: @ 080B46F0 .incbin "baserom.gba", 0x0B470C, 0x000000C gUnk_080B4718:: @ 080B4718 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3E40, 0x0000008 +.else .incbin "baserom.gba", 0x0B4718, 0x0000008 +.endif gUnk_080B4720:: @ 080B4720 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3E48, 0x0000008 +.else .incbin "baserom.gba", 0x0B4720, 0x0000008 +.endif gUnk_080B4728:: @ 080B4728 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3E50, 0x0000008 +.else .incbin "baserom.gba", 0x0B4728, 0x0000008 +.endif gUnk_080B4730:: @ 080B4730 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3E58, 0x0000008 +.else .incbin "baserom.gba", 0x0B4730, 0x0000008 +.endif gUnk_080B4738:: @ 080B4738 .4byte gUnk_080B4718 @@ -230,16 +347,32 @@ gUnk_080B4738:: @ 080B4738 .incbin "baserom.gba", 0x0B4754, 0x000000C gUnk_080B4760:: @ 080B4760 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3E88, 0x0000008 +.else .incbin "baserom.gba", 0x0B4760, 0x0000008 +.endif gUnk_080B4768:: @ 080B4768 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3E90, 0x0000008 +.else .incbin "baserom.gba", 0x0B4768, 0x0000008 +.endif gUnk_080B4770:: @ 080B4770 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3E98, 0x0000008 +.else .incbin "baserom.gba", 0x0B4770, 0x0000008 +.endif gUnk_080B4778:: @ 080B4778 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3EA0, 0x0000008 +.else .incbin "baserom.gba", 0x0B4778, 0x0000008 +.endif gUnk_080B4780:: @ 080B4780 .4byte gUnk_080B4760 @@ -252,16 +385,32 @@ gUnk_080B4780:: @ 080B4780 .incbin "baserom.gba", 0x0B479C, 0x000000C gUnk_080B47A8:: @ 080B47A8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3ED0, 0x0000008 +.else .incbin "baserom.gba", 0x0B47A8, 0x0000008 +.endif gUnk_080B47B0:: @ 080B47B0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3ED8, 0x0000008 +.else .incbin "baserom.gba", 0x0B47B0, 0x0000008 +.endif gUnk_080B47B8:: @ 080B47B8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3EE0, 0x0000008 +.else .incbin "baserom.gba", 0x0B47B8, 0x0000008 +.endif gUnk_080B47C0:: @ 080B47C0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3EE8, 0x0000008 +.else .incbin "baserom.gba", 0x0B47C0, 0x0000008 +.endif gUnk_080B47C8:: @ 080B47C8 .4byte gUnk_080B47A8 @@ -274,16 +423,32 @@ gUnk_080B47C8:: @ 080B47C8 .incbin "baserom.gba", 0x0B47E4, 0x000000C gUnk_080B47F0:: @ 080B47F0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3F18, 0x0000008 +.else .incbin "baserom.gba", 0x0B47F0, 0x0000008 +.endif gUnk_080B47F8:: @ 080B47F8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3F20, 0x0000008 +.else .incbin "baserom.gba", 0x0B47F8, 0x0000008 +.endif gUnk_080B4800:: @ 080B4800 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3F28, 0x0000008 +.else .incbin "baserom.gba", 0x0B4800, 0x0000008 +.endif gUnk_080B4808:: @ 080B4808 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3F30, 0x0000008 +.else .incbin "baserom.gba", 0x0B4808, 0x0000008 +.endif gUnk_080B4810:: @ 080B4810 .4byte gUnk_080B47F0 @@ -296,16 +461,32 @@ gUnk_080B4810:: @ 080B4810 .incbin "baserom.gba", 0x0B482C, 0x000000C gUnk_080B4838:: @ 080B4838 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3F60, 0x0000010 +.else .incbin "baserom.gba", 0x0B4838, 0x0000010 +.endif gUnk_080B4848:: @ 080B4848 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3F70, 0x0000010 +.else .incbin "baserom.gba", 0x0B4848, 0x0000010 +.endif gUnk_080B4858:: @ 080B4858 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3F80, 0x0000010 +.else .incbin "baserom.gba", 0x0B4858, 0x0000010 +.endif gUnk_080B4868:: @ 080B4868 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3F90, 0x0000010 +.else .incbin "baserom.gba", 0x0B4868, 0x0000010 +.endif gUnk_080B4878:: @ 080B4878 .4byte gUnk_080B4838 @@ -318,22 +499,46 @@ gUnk_080B4878:: @ 080B4878 .incbin "baserom.gba", 0x0B4894, 0x000000C gUnk_080B48A0:: @ 080B48A0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3FC8, 0x0000008 +.else .incbin "baserom.gba", 0x0B48A0, 0x0000008 +.endif gUnk_080B48A8:: @ 080B48A8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3FD0, 0x0000008 +.else .incbin "baserom.gba", 0x0B48A8, 0x0000008 +.endif gUnk_080B48B0:: @ 080B48B0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3FD8, 0x0000008 +.else .incbin "baserom.gba", 0x0B48B0, 0x0000008 +.endif gUnk_080B48B8:: @ 080B48B8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3FE0, 0x0000008 +.else .incbin "baserom.gba", 0x0B48B8, 0x0000008 +.endif gUnk_080B48C0:: @ 080B48C0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3FE8, 0x0000008 +.else .incbin "baserom.gba", 0x0B48C0, 0x0000008 +.endif gUnk_080B48C8:: @ 080B48C8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B3FF0, 0x0000008 +.else .incbin "baserom.gba", 0x0B48C8, 0x0000008 +.endif gUnk_080B48D0:: @ 080B48D0 .4byte gUnk_080B48A0 @@ -350,22 +555,46 @@ gUnk_080B48D0:: @ 080B48D0 .incbin "baserom.gba", 0x0B48FC, 0x000000C gUnk_080B4908:: @ 080B4908 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4030, 0x0000008 +.else .incbin "baserom.gba", 0x0B4908, 0x0000008 +.endif gUnk_080B4910:: @ 080B4910 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4038, 0x0000008 +.else .incbin "baserom.gba", 0x0B4910, 0x0000008 +.endif gUnk_080B4918:: @ 080B4918 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4040, 0x0000008 +.else .incbin "baserom.gba", 0x0B4918, 0x0000008 +.endif gUnk_080B4920:: @ 080B4920 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4048, 0x0000008 +.else .incbin "baserom.gba", 0x0B4920, 0x0000008 +.endif gUnk_080B4928:: @ 080B4928 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4050, 0x0000008 +.else .incbin "baserom.gba", 0x0B4928, 0x0000008 +.endif gUnk_080B4930:: @ 080B4930 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4058, 0x0000008 +.else .incbin "baserom.gba", 0x0B4930, 0x0000008 +.endif gUnk_080B4938:: @ 080B4938 .4byte gUnk_080B4908 @@ -382,22 +611,46 @@ gUnk_080B4938:: @ 080B4938 .incbin "baserom.gba", 0x0B4964, 0x000000C gUnk_080B4970:: @ 080B4970 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4098, 0x0000008 +.else .incbin "baserom.gba", 0x0B4970, 0x0000008 +.endif gUnk_080B4978:: @ 080B4978 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B40A0, 0x0000008 +.else .incbin "baserom.gba", 0x0B4978, 0x0000008 +.endif gUnk_080B4980:: @ 080B4980 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B40A8, 0x0000008 +.else .incbin "baserom.gba", 0x0B4980, 0x0000008 +.endif gUnk_080B4988:: @ 080B4988 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B40B0, 0x0000008 +.else .incbin "baserom.gba", 0x0B4988, 0x0000008 +.endif gUnk_080B4990:: @ 080B4990 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B40B8, 0x0000008 +.else .incbin "baserom.gba", 0x0B4990, 0x0000008 +.endif gUnk_080B4998:: @ 080B4998 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B40C0, 0x0000008 +.else .incbin "baserom.gba", 0x0B4998, 0x0000008 +.endif gUnk_080B49A0:: @ 080B49A0 .4byte gUnk_080B4970 @@ -414,16 +667,32 @@ gUnk_080B49A0:: @ 080B49A0 .incbin "baserom.gba", 0x0B49CC, 0x000000C gUnk_080B49D8:: @ 080B49D8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4100, 0x0000008 +.else .incbin "baserom.gba", 0x0B49D8, 0x0000008 +.endif gUnk_080B49E0:: @ 080B49E0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4108, 0x0000008 +.else .incbin "baserom.gba", 0x0B49E0, 0x0000008 +.endif gUnk_080B49E8:: @ 080B49E8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4110, 0x0000008 +.else .incbin "baserom.gba", 0x0B49E8, 0x0000008 +.endif gUnk_080B49F0:: @ 080B49F0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4118, 0x0000008 +.else .incbin "baserom.gba", 0x0B49F0, 0x0000008 +.endif gUnk_080B49F8:: @ 080B49F8 .4byte gUnk_080B49D8 @@ -436,16 +705,32 @@ gUnk_080B49F8:: @ 080B49F8 .incbin "baserom.gba", 0x0B4A14, 0x000000C gUnk_080B4A20:: @ 080B4A20 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4148, 0x0000008 +.else .incbin "baserom.gba", 0x0B4A20, 0x0000008 +.endif gUnk_080B4A28:: @ 080B4A28 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4150, 0x0000008 +.else .incbin "baserom.gba", 0x0B4A28, 0x0000008 +.endif gUnk_080B4A30:: @ 080B4A30 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4158, 0x0000008 +.else .incbin "baserom.gba", 0x0B4A30, 0x0000008 +.endif gUnk_080B4A38:: @ 080B4A38 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4160, 0x0000008 +.else .incbin "baserom.gba", 0x0B4A38, 0x0000008 +.endif gUnk_080B4A40:: @ 080B4A40 .4byte gUnk_080B4A20 @@ -458,16 +743,32 @@ gUnk_080B4A40:: @ 080B4A40 .incbin "baserom.gba", 0x0B4A5C, 0x000000C gUnk_080B4A68:: @ 080B4A68 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4190, 0x0000008 +.else .incbin "baserom.gba", 0x0B4A68, 0x0000008 +.endif gUnk_080B4A70:: @ 080B4A70 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4198, 0x0000008 +.else .incbin "baserom.gba", 0x0B4A70, 0x0000008 +.endif gUnk_080B4A78:: @ 080B4A78 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B41A0, 0x0000008 +.else .incbin "baserom.gba", 0x0B4A78, 0x0000008 +.endif gUnk_080B4A80:: @ 080B4A80 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B41A8, 0x0000008 +.else .incbin "baserom.gba", 0x0B4A80, 0x0000008 +.endif gUnk_080B4A88:: @ 080B4A88 .4byte gUnk_080B4A68 @@ -480,16 +781,32 @@ gUnk_080B4A88:: @ 080B4A88 .incbin "baserom.gba", 0x0B4AA4, 0x000000C gUnk_080B4AB0:: @ 080B4AB0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B41D8, 0x0000008 +.else .incbin "baserom.gba", 0x0B4AB0, 0x0000008 +.endif gUnk_080B4AB8:: @ 080B4AB8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B41E0, 0x0000008 +.else .incbin "baserom.gba", 0x0B4AB8, 0x0000008 +.endif gUnk_080B4AC0:: @ 080B4AC0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B41E8, 0x0000008 +.else .incbin "baserom.gba", 0x0B4AC0, 0x0000008 +.endif gUnk_080B4AC8:: @ 080B4AC8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B41F0, 0x0000008 +.else .incbin "baserom.gba", 0x0B4AC8, 0x0000008 +.endif gUnk_080B4AD0:: @ 080B4AD0 .4byte gUnk_080B4AB0 @@ -502,16 +819,32 @@ gUnk_080B4AD0:: @ 080B4AD0 .incbin "baserom.gba", 0x0B4AEC, 0x000000C gUnk_080B4AF8:: @ 080B4AF8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4220, 0x0000008 +.else .incbin "baserom.gba", 0x0B4AF8, 0x0000008 +.endif gUnk_080B4B00:: @ 080B4B00 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4228, 0x0000008 +.else .incbin "baserom.gba", 0x0B4B00, 0x0000008 +.endif gUnk_080B4B08:: @ 080B4B08 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4230, 0x0000008 +.else .incbin "baserom.gba", 0x0B4B08, 0x0000008 +.endif gUnk_080B4B10:: @ 080B4B10 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4238, 0x0000008 +.else .incbin "baserom.gba", 0x0B4B10, 0x0000008 +.endif gUnk_080B4B18:: @ 080B4B18 .4byte gUnk_080B4AF8 @@ -524,16 +857,32 @@ gUnk_080B4B18:: @ 080B4B18 .incbin "baserom.gba", 0x0B4B34, 0x000000C gUnk_080B4B40:: @ 080B4B40 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4268, 0x0000008 +.else .incbin "baserom.gba", 0x0B4B40, 0x0000008 +.endif gUnk_080B4B48:: @ 080B4B48 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4270, 0x0000008 +.else .incbin "baserom.gba", 0x0B4B48, 0x0000008 +.endif gUnk_080B4B50:: @ 080B4B50 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4278, 0x0000008 +.else .incbin "baserom.gba", 0x0B4B50, 0x0000008 +.endif gUnk_080B4B58:: @ 080B4B58 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4280, 0x0000008 +.else .incbin "baserom.gba", 0x0B4B58, 0x0000008 +.endif gUnk_080B4B60:: @ 080B4B60 .4byte gUnk_080B4B40 @@ -546,16 +895,32 @@ gUnk_080B4B60:: @ 080B4B60 .incbin "baserom.gba", 0x0B4B7C, 0x000000C gUnk_080B4B88:: @ 080B4B88 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B42B0, 0x0000008 +.else .incbin "baserom.gba", 0x0B4B88, 0x0000008 +.endif gUnk_080B4B90:: @ 080B4B90 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B42B8, 0x0000008 +.else .incbin "baserom.gba", 0x0B4B90, 0x0000008 +.endif gUnk_080B4B98:: @ 080B4B98 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B42C0, 0x0000008 +.else .incbin "baserom.gba", 0x0B4B98, 0x0000008 +.endif gUnk_080B4BA0:: @ 080B4BA0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B42C8, 0x0000008 +.else .incbin "baserom.gba", 0x0B4BA0, 0x0000008 +.endif gUnk_080B4BA8:: @ 080B4BA8 .4byte gUnk_080B4B88 @@ -568,16 +933,32 @@ gUnk_080B4BA8:: @ 080B4BA8 .incbin "baserom.gba", 0x0B4BC4, 0x000000C gUnk_080B4BD0:: @ 080B4BD0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B42F8, 0x0000008 +.else .incbin "baserom.gba", 0x0B4BD0, 0x0000008 +.endif gUnk_080B4BD8:: @ 080B4BD8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4300, 0x0000008 +.else .incbin "baserom.gba", 0x0B4BD8, 0x0000008 +.endif gUnk_080B4BE0:: @ 080B4BE0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4308, 0x0000008 +.else .incbin "baserom.gba", 0x0B4BE0, 0x0000008 +.endif gUnk_080B4BE8:: @ 080B4BE8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4310, 0x0000008 +.else .incbin "baserom.gba", 0x0B4BE8, 0x0000008 +.endif gUnk_080B4BF0:: @ 080B4BF0 .4byte gUnk_080B4BD0 @@ -590,16 +971,32 @@ gUnk_080B4BF0:: @ 080B4BF0 .incbin "baserom.gba", 0x0B4C0C, 0x000000C gUnk_080B4C18:: @ 080B4C18 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4340, 0x0000008 +.else .incbin "baserom.gba", 0x0B4C18, 0x0000008 +.endif gUnk_080B4C20:: @ 080B4C20 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4348, 0x0000008 +.else .incbin "baserom.gba", 0x0B4C20, 0x0000008 +.endif gUnk_080B4C28:: @ 080B4C28 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4350, 0x0000008 +.else .incbin "baserom.gba", 0x0B4C28, 0x0000008 +.endif gUnk_080B4C30:: @ 080B4C30 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4358, 0x0000008 +.else .incbin "baserom.gba", 0x0B4C30, 0x0000008 +.endif gUnk_080B4C38:: @ 080B4C38 .4byte gUnk_080B4C18 @@ -612,16 +1009,32 @@ gUnk_080B4C38:: @ 080B4C38 .incbin "baserom.gba", 0x0B4C54, 0x000000C gUnk_080B4C60:: @ 080B4C60 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4388, 0x0000008 +.else .incbin "baserom.gba", 0x0B4C60, 0x0000008 +.endif gUnk_080B4C68:: @ 080B4C68 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4390, 0x0000008 +.else .incbin "baserom.gba", 0x0B4C68, 0x0000008 +.endif gUnk_080B4C70:: @ 080B4C70 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4398, 0x0000008 +.else .incbin "baserom.gba", 0x0B4C70, 0x0000008 +.endif gUnk_080B4C78:: @ 080B4C78 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B43A0, 0x0000008 +.else .incbin "baserom.gba", 0x0B4C78, 0x0000008 +.endif gUnk_080B4C80:: @ 080B4C80 .4byte gUnk_080B4C60 @@ -634,16 +1047,32 @@ gUnk_080B4C80:: @ 080B4C80 .incbin "baserom.gba", 0x0B4C9C, 0x000000C gUnk_080B4CA8:: @ 080B4CA8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B43D0, 0x0000008 +.else .incbin "baserom.gba", 0x0B4CA8, 0x0000008 +.endif gUnk_080B4CB0:: @ 080B4CB0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B43D8, 0x0000008 +.else .incbin "baserom.gba", 0x0B4CB0, 0x0000008 +.endif gUnk_080B4CB8:: @ 080B4CB8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B43E0, 0x0000008 +.else .incbin "baserom.gba", 0x0B4CB8, 0x0000008 +.endif gUnk_080B4CC0:: @ 080B4CC0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B43E8, 0x0000008 +.else .incbin "baserom.gba", 0x0B4CC0, 0x0000008 +.endif gUnk_080B4CC8:: @ 080B4CC8 .4byte gUnk_080B4CA8 @@ -668,52 +1097,116 @@ gUnk_080B4D10:: @ 080B4D10 .incbin "baserom.gba", 0x0B4D1C, 0x000000C gUnk_080B4D28:: @ 080B4D28 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4450, 0x0000008 +.else .incbin "baserom.gba", 0x0B4D28, 0x0000008 +.endif gUnk_080B4D30:: @ 080B4D30 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4458, 0x0000008 +.else .incbin "baserom.gba", 0x0B4D30, 0x0000008 +.endif gUnk_080B4D38:: @ 080B4D38 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4460, 0x0000008 +.else .incbin "baserom.gba", 0x0B4D38, 0x0000008 +.endif gUnk_080B4D40:: @ 080B4D40 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4468, 0x0000008 +.else .incbin "baserom.gba", 0x0B4D40, 0x0000008 +.endif gUnk_080B4D48:: @ 080B4D48 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4470, 0x0000008 +.else .incbin "baserom.gba", 0x0B4D48, 0x0000008 +.endif gUnk_080B4D50:: @ 080B4D50 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4478, 0x0000008 +.else .incbin "baserom.gba", 0x0B4D50, 0x0000008 +.endif gUnk_080B4D58:: @ 080B4D58 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4480, 0x0000008 +.else .incbin "baserom.gba", 0x0B4D58, 0x0000008 +.endif gUnk_080B4D60:: @ 080B4D60 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4488, 0x0000008 +.else .incbin "baserom.gba", 0x0B4D60, 0x0000008 +.endif gUnk_080B4D68:: @ 080B4D68 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4490, 0x0000008 +.else .incbin "baserom.gba", 0x0B4D68, 0x0000008 +.endif gUnk_080B4D70:: @ 080B4D70 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4498, 0x0000008 +.else .incbin "baserom.gba", 0x0B4D70, 0x0000008 +.endif gUnk_080B4D78:: @ 080B4D78 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B44A0, 0x0000008 +.else .incbin "baserom.gba", 0x0B4D78, 0x0000008 +.endif gUnk_080B4D80:: @ 080B4D80 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B44A8, 0x0000008 +.else .incbin "baserom.gba", 0x0B4D80, 0x0000008 +.endif gUnk_080B4D88:: @ 080B4D88 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B44B0, 0x0000008 +.else .incbin "baserom.gba", 0x0B4D88, 0x0000008 +.endif gUnk_080B4D90:: @ 080B4D90 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B44B8, 0x0000008 +.else .incbin "baserom.gba", 0x0B4D90, 0x0000008 +.endif gUnk_080B4D98:: @ 080B4D98 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B44C0, 0x0000008 +.else .incbin "baserom.gba", 0x0B4D98, 0x0000008 +.endif gUnk_080B4DA0:: @ 080B4DA0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B44C8, 0x0000008 +.else .incbin "baserom.gba", 0x0B4DA0, 0x0000008 +.endif gUnk_080B4DA8:: @ 080B4DA8 .4byte gUnk_080B4D28 @@ -750,16 +1243,32 @@ gUnk_080B4DA8:: @ 080B4DA8 .incbin "baserom.gba", 0x0B4E24, 0x000000C gUnk_080B4E30:: @ 080B4E30 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4558, 0x0000008 +.else .incbin "baserom.gba", 0x0B4E30, 0x0000008 +.endif gUnk_080B4E38:: @ 080B4E38 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4560, 0x0000008 +.else .incbin "baserom.gba", 0x0B4E38, 0x0000008 +.endif gUnk_080B4E40:: @ 080B4E40 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4568, 0x0000008 +.else .incbin "baserom.gba", 0x0B4E40, 0x0000008 +.endif gUnk_080B4E48:: @ 080B4E48 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4570, 0x0000008 +.else .incbin "baserom.gba", 0x0B4E48, 0x0000008 +.endif gUnk_080B4E50:: @ 080B4E50 .4byte gUnk_080B4E30 @@ -772,16 +1281,32 @@ gUnk_080B4E50:: @ 080B4E50 .incbin "baserom.gba", 0x0B4E6C, 0x000000C gUnk_080B4E78:: @ 080B4E78 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B45A0, 0x0000008 +.else .incbin "baserom.gba", 0x0B4E78, 0x0000008 +.endif gUnk_080B4E80:: @ 080B4E80 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B45A8, 0x0000008 +.else .incbin "baserom.gba", 0x0B4E80, 0x0000008 +.endif gUnk_080B4E88:: @ 080B4E88 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B45B0, 0x0000008 +.else .incbin "baserom.gba", 0x0B4E88, 0x0000008 +.endif gUnk_080B4E90:: @ 080B4E90 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B45B8, 0x0000008 +.else .incbin "baserom.gba", 0x0B4E90, 0x0000008 +.endif gUnk_080B4E98:: @ 080B4E98 .4byte gUnk_080B4E78 @@ -794,16 +1319,32 @@ gUnk_080B4E98:: @ 080B4E98 .incbin "baserom.gba", 0x0B4EB4, 0x000000C gUnk_080B4EC0:: @ 080B4EC0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B45E8, 0x0000008 +.else .incbin "baserom.gba", 0x0B4EC0, 0x0000008 +.endif gUnk_080B4EC8:: @ 080B4EC8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B45F0, 0x0000008 +.else .incbin "baserom.gba", 0x0B4EC8, 0x0000008 +.endif gUnk_080B4ED0:: @ 080B4ED0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B45F8, 0x0000008 +.else .incbin "baserom.gba", 0x0B4ED0, 0x0000008 +.endif gUnk_080B4ED8:: @ 080B4ED8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4600, 0x0000008 +.else .incbin "baserom.gba", 0x0B4ED8, 0x0000008 +.endif gUnk_080B4EE0:: @ 080B4EE0 .4byte gUnk_080B4EC0 @@ -816,16 +1357,32 @@ gUnk_080B4EE0:: @ 080B4EE0 .incbin "baserom.gba", 0x0B4EFC, 0x000000C gUnk_080B4F08:: @ 080B4F08 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4630, 0x0000008 +.else .incbin "baserom.gba", 0x0B4F08, 0x0000008 +.endif gUnk_080B4F10:: @ 080B4F10 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4638, 0x0000008 +.else .incbin "baserom.gba", 0x0B4F10, 0x0000008 +.endif gUnk_080B4F18:: @ 080B4F18 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4640, 0x0000008 +.else .incbin "baserom.gba", 0x0B4F18, 0x0000008 +.endif gUnk_080B4F20:: @ 080B4F20 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4648, 0x0000008 +.else .incbin "baserom.gba", 0x0B4F20, 0x0000008 +.endif gUnk_080B4F28:: @ 080B4F28 .4byte gUnk_080B4F08 @@ -838,16 +1395,32 @@ gUnk_080B4F28:: @ 080B4F28 .incbin "baserom.gba", 0x0B4F44, 0x000000C gUnk_080B4F50:: @ 080B4F50 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4678, 0x0000008 +.else .incbin "baserom.gba", 0x0B4F50, 0x0000008 +.endif gUnk_080B4F58:: @ 080B4F58 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4680, 0x0000008 +.else .incbin "baserom.gba", 0x0B4F58, 0x0000008 +.endif gUnk_080B4F60:: @ 080B4F60 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4688, 0x0000008 +.else .incbin "baserom.gba", 0x0B4F60, 0x0000008 +.endif gUnk_080B4F68:: @ 080B4F68 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4690, 0x0000008 +.else .incbin "baserom.gba", 0x0B4F68, 0x0000008 +.endif gUnk_080B4F70:: @ 080B4F70 .4byte gUnk_080B4F50 @@ -860,16 +1433,32 @@ gUnk_080B4F70:: @ 080B4F70 .incbin "baserom.gba", 0x0B4F8C, 0x000000C gUnk_080B4F98:: @ 080B4F98 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B46C0, 0x0000010 +.else .incbin "baserom.gba", 0x0B4F98, 0x0000010 +.endif gUnk_080B4FA8:: @ 080B4FA8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B46D0, 0x0000010 +.else .incbin "baserom.gba", 0x0B4FA8, 0x0000010 +.endif gUnk_080B4FB8:: @ 080B4FB8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B46E0, 0x0000010 +.else .incbin "baserom.gba", 0x0B4FB8, 0x0000010 +.endif gUnk_080B4FC8:: @ 080B4FC8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B46F0, 0x0000010 +.else .incbin "baserom.gba", 0x0B4FC8, 0x0000010 +.endif gUnk_080B4FD8:: @ 080B4FD8 .4byte gUnk_080B4F98 @@ -882,16 +1471,32 @@ gUnk_080B4FD8:: @ 080B4FD8 .incbin "baserom.gba", 0x0B4FF4, 0x000000C gUnk_080B5000:: @ 080B5000 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4728, 0x0000008 +.else .incbin "baserom.gba", 0x0B5000, 0x0000008 +.endif gUnk_080B5008:: @ 080B5008 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4730, 0x0000008 +.else .incbin "baserom.gba", 0x0B5008, 0x0000008 +.endif gUnk_080B5010:: @ 080B5010 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4738, 0x0000008 +.else .incbin "baserom.gba", 0x0B5010, 0x0000008 +.endif gUnk_080B5018:: @ 080B5018 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4740, 0x0000008 +.else .incbin "baserom.gba", 0x0B5018, 0x0000008 +.endif gUnk_080B5020:: @ 080B5020 .4byte gUnk_080B5000 @@ -904,52 +1509,116 @@ gUnk_080B5020:: @ 080B5020 .incbin "baserom.gba", 0x0B503C, 0x000000C gUnk_080B5048:: @ 080B5048 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4770, 0x0000008 +.else .incbin "baserom.gba", 0x0B5048, 0x0000008 +.endif gUnk_080B5050:: @ 080B5050 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4778, 0x0000008 +.else .incbin "baserom.gba", 0x0B5050, 0x0000008 +.endif gUnk_080B5058:: @ 080B5058 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4780, 0x0000008 +.else .incbin "baserom.gba", 0x0B5058, 0x0000008 +.endif gUnk_080B5060:: @ 080B5060 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4788, 0x0000008 +.else .incbin "baserom.gba", 0x0B5060, 0x0000008 +.endif gUnk_080B5068:: @ 080B5068 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4790, 0x0000008 +.else .incbin "baserom.gba", 0x0B5068, 0x0000008 +.endif gUnk_080B5070:: @ 080B5070 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4798, 0x0000008 +.else .incbin "baserom.gba", 0x0B5070, 0x0000008 +.endif gUnk_080B5078:: @ 080B5078 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B47A0, 0x0000008 +.else .incbin "baserom.gba", 0x0B5078, 0x0000008 +.endif gUnk_080B5080:: @ 080B5080 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B47A8, 0x0000008 +.else .incbin "baserom.gba", 0x0B5080, 0x0000008 +.endif gUnk_080B5088:: @ 080B5088 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B47B0, 0x0000008 +.else .incbin "baserom.gba", 0x0B5088, 0x0000008 +.endif gUnk_080B5090:: @ 080B5090 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B47B8, 0x0000008 +.else .incbin "baserom.gba", 0x0B5090, 0x0000008 +.endif gUnk_080B5098:: @ 080B5098 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B47C0, 0x0000008 +.else .incbin "baserom.gba", 0x0B5098, 0x0000008 +.endif gUnk_080B50A0:: @ 080B50A0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B47C8, 0x0000008 +.else .incbin "baserom.gba", 0x0B50A0, 0x0000008 +.endif gUnk_080B50A8:: @ 080B50A8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B47D0, 0x0000008 +.else .incbin "baserom.gba", 0x0B50A8, 0x0000008 +.endif gUnk_080B50B0:: @ 080B50B0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B47D8, 0x0000008 +.else .incbin "baserom.gba", 0x0B50B0, 0x0000008 +.endif gUnk_080B50B8:: @ 080B50B8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B47E0, 0x0000008 +.else .incbin "baserom.gba", 0x0B50B8, 0x0000008 +.endif gUnk_080B50C0:: @ 080B50C0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B47E8, 0x0000008 +.else .incbin "baserom.gba", 0x0B50C0, 0x0000008 +.endif gUnk_080B50C8:: @ 080B50C8 .4byte gUnk_080B5048 @@ -986,16 +1655,32 @@ gUnk_080B50C8:: @ 080B50C8 .incbin "baserom.gba", 0x0B5144, 0x000000C gUnk_080B5150:: @ 080B5150 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4878, 0x0000008 +.else .incbin "baserom.gba", 0x0B5150, 0x0000008 +.endif gUnk_080B5158:: @ 080B5158 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4880, 0x0000008 +.else .incbin "baserom.gba", 0x0B5158, 0x0000008 +.endif gUnk_080B5160:: @ 080B5160 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4888, 0x0000008 +.else .incbin "baserom.gba", 0x0B5160, 0x0000008 +.endif gUnk_080B5168:: @ 080B5168 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4890, 0x0000008 +.else .incbin "baserom.gba", 0x0B5168, 0x0000008 +.endif gUnk_080B5170:: @ 080B5170 .4byte gUnk_080B5150 @@ -1008,16 +1693,32 @@ gUnk_080B5170:: @ 080B5170 .incbin "baserom.gba", 0x0B518C, 0x000000C gUnk_080B5198:: @ 080B5198 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B48C0, 0x0000008 +.else .incbin "baserom.gba", 0x0B5198, 0x0000008 +.endif gUnk_080B51A0:: @ 080B51A0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B48C8, 0x0000008 +.else .incbin "baserom.gba", 0x0B51A0, 0x0000008 +.endif gUnk_080B51A8:: @ 080B51A8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B48D0, 0x0000008 +.else .incbin "baserom.gba", 0x0B51A8, 0x0000008 +.endif gUnk_080B51B0:: @ 080B51B0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B48D8, 0x0000008 +.else .incbin "baserom.gba", 0x0B51B0, 0x0000008 +.endif gUnk_080B51B8:: @ 080B51B8 .4byte gUnk_080B5198 @@ -1030,52 +1731,116 @@ gUnk_080B51B8:: @ 080B51B8 .incbin "baserom.gba", 0x0B51D4, 0x000000C gUnk_080B51E0:: @ 080B51E0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4908, 0x0000008 +.else .incbin "baserom.gba", 0x0B51E0, 0x0000008 +.endif gUnk_080B51E8:: @ 080B51E8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4910, 0x0000008 +.else .incbin "baserom.gba", 0x0B51E8, 0x0000008 +.endif gUnk_080B51F0:: @ 080B51F0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4918, 0x0000008 +.else .incbin "baserom.gba", 0x0B51F0, 0x0000008 +.endif gUnk_080B51F8:: @ 080B51F8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4920, 0x0000008 +.else .incbin "baserom.gba", 0x0B51F8, 0x0000008 +.endif gUnk_080B5200:: @ 080B5200 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4928, 0x0000008 +.else .incbin "baserom.gba", 0x0B5200, 0x0000008 +.endif gUnk_080B5208:: @ 080B5208 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4930, 0x0000008 +.else .incbin "baserom.gba", 0x0B5208, 0x0000008 +.endif gUnk_080B5210:: @ 080B5210 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4938, 0x0000008 +.else .incbin "baserom.gba", 0x0B5210, 0x0000008 +.endif gUnk_080B5218:: @ 080B5218 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4940, 0x0000008 +.else .incbin "baserom.gba", 0x0B5218, 0x0000008 +.endif gUnk_080B5220:: @ 080B5220 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4948, 0x0000008 +.else .incbin "baserom.gba", 0x0B5220, 0x0000008 +.endif gUnk_080B5228:: @ 080B5228 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4950, 0x0000008 +.else .incbin "baserom.gba", 0x0B5228, 0x0000008 +.endif gUnk_080B5230:: @ 080B5230 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4958, 0x0000008 +.else .incbin "baserom.gba", 0x0B5230, 0x0000008 +.endif gUnk_080B5238:: @ 080B5238 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4960, 0x0000008 +.else .incbin "baserom.gba", 0x0B5238, 0x0000008 +.endif gUnk_080B5240:: @ 080B5240 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4968, 0x0000008 +.else .incbin "baserom.gba", 0x0B5240, 0x0000008 +.endif gUnk_080B5248:: @ 080B5248 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4970, 0x0000008 +.else .incbin "baserom.gba", 0x0B5248, 0x0000008 +.endif gUnk_080B5250:: @ 080B5250 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4978, 0x0000008 +.else .incbin "baserom.gba", 0x0B5250, 0x0000008 +.endif gUnk_080B5258:: @ 080B5258 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4980, 0x0000008 +.else .incbin "baserom.gba", 0x0B5258, 0x0000008 +.endif gUnk_080B5260:: @ 080B5260 .4byte gUnk_080B51E0 @@ -1112,16 +1877,32 @@ gUnk_080B5260:: @ 080B5260 .incbin "baserom.gba", 0x0B52DC, 0x000000C gUnk_080B52E8:: @ 080B52E8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4A10, 0x0000008 +.else .incbin "baserom.gba", 0x0B52E8, 0x0000008 +.endif gUnk_080B52F0:: @ 080B52F0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4A18, 0x0000008 +.else .incbin "baserom.gba", 0x0B52F0, 0x0000008 +.endif gUnk_080B52F8:: @ 080B52F8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4A20, 0x0000008 +.else .incbin "baserom.gba", 0x0B52F8, 0x0000008 +.endif gUnk_080B5300:: @ 080B5300 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4A28, 0x0000008 +.else .incbin "baserom.gba", 0x0B5300, 0x0000008 +.endif gUnk_080B5308:: @ 080B5308 .4byte gUnk_080B52E8 @@ -1134,16 +1915,32 @@ gUnk_080B5308:: @ 080B5308 .incbin "baserom.gba", 0x0B5324, 0x000000C gUnk_080B5330:: @ 080B5330 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4A58, 0x0000008 +.else .incbin "baserom.gba", 0x0B5330, 0x0000008 +.endif gUnk_080B5338:: @ 080B5338 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4A60, 0x0000008 +.else .incbin "baserom.gba", 0x0B5338, 0x0000008 +.endif gUnk_080B5340:: @ 080B5340 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4A68, 0x0000008 +.else .incbin "baserom.gba", 0x0B5340, 0x0000008 +.endif gUnk_080B5348:: @ 080B5348 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4A70, 0x0000008 +.else .incbin "baserom.gba", 0x0B5348, 0x0000008 +.endif gUnk_080B5350:: @ 080B5350 .4byte gUnk_080B5330 @@ -1156,16 +1953,32 @@ gUnk_080B5350:: @ 080B5350 .incbin "baserom.gba", 0x0B536C, 0x000000C gUnk_080B5378:: @ 080B5378 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4AA0, 0x0000008 +.else .incbin "baserom.gba", 0x0B5378, 0x0000008 +.endif gUnk_080B5380:: @ 080B5380 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4AA8, 0x0000008 +.else .incbin "baserom.gba", 0x0B5380, 0x0000008 +.endif gUnk_080B5388:: @ 080B5388 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4AB0, 0x0000008 +.else .incbin "baserom.gba", 0x0B5388, 0x0000008 +.endif gUnk_080B5390:: @ 080B5390 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4AB8, 0x0000008 +.else .incbin "baserom.gba", 0x0B5390, 0x0000008 +.endif gUnk_080B5398:: @ 080B5398 .4byte gUnk_080B5378 @@ -1178,16 +1991,32 @@ gUnk_080B5398:: @ 080B5398 .incbin "baserom.gba", 0x0B53B4, 0x000000C gUnk_080B53C0:: @ 080B53C0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4AE8, 0x0000008 +.else .incbin "baserom.gba", 0x0B53C0, 0x0000008 +.endif gUnk_080B53C8:: @ 080B53C8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4AF0, 0x0000008 +.else .incbin "baserom.gba", 0x0B53C8, 0x0000008 +.endif gUnk_080B53D0:: @ 080B53D0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4AF8, 0x0000008 +.else .incbin "baserom.gba", 0x0B53D0, 0x0000008 +.endif gUnk_080B53D8:: @ 080B53D8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4B00, 0x0000008 +.else .incbin "baserom.gba", 0x0B53D8, 0x0000008 +.endif gUnk_080B53E0:: @ 080B53E0 .4byte gUnk_080B53C0 @@ -1200,16 +2029,32 @@ gUnk_080B53E0:: @ 080B53E0 .incbin "baserom.gba", 0x0B53FC, 0x000000C gUnk_080B5408:: @ 080B5408 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4B30, 0x0000008 +.else .incbin "baserom.gba", 0x0B5408, 0x0000008 +.endif gUnk_080B5410:: @ 080B5410 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4B38, 0x0000008 +.else .incbin "baserom.gba", 0x0B5410, 0x0000008 +.endif gUnk_080B5418:: @ 080B5418 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4B40, 0x0000008 +.else .incbin "baserom.gba", 0x0B5418, 0x0000008 +.endif gUnk_080B5420:: @ 080B5420 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4B48, 0x0000008 +.else .incbin "baserom.gba", 0x0B5420, 0x0000008 +.endif gUnk_080B5428:: @ 080B5428 .4byte gUnk_080B5408 @@ -1222,52 +2067,116 @@ gUnk_080B5428:: @ 080B5428 .incbin "baserom.gba", 0x0B5444, 0x000000C gUnk_080B5450:: @ 080B5450 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4B78, 0x0000008 +.else .incbin "baserom.gba", 0x0B5450, 0x0000008 +.endif gUnk_080B5458:: @ 080B5458 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4B80, 0x0000008 +.else .incbin "baserom.gba", 0x0B5458, 0x0000008 +.endif gUnk_080B5460:: @ 080B5460 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4B88, 0x0000008 +.else .incbin "baserom.gba", 0x0B5460, 0x0000008 +.endif gUnk_080B5468:: @ 080B5468 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4B90, 0x0000008 +.else .incbin "baserom.gba", 0x0B5468, 0x0000008 +.endif gUnk_080B5470:: @ 080B5470 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4B98, 0x0000008 +.else .incbin "baserom.gba", 0x0B5470, 0x0000008 +.endif gUnk_080B5478:: @ 080B5478 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4BA0, 0x0000008 +.else .incbin "baserom.gba", 0x0B5478, 0x0000008 +.endif gUnk_080B5480:: @ 080B5480 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4BA8, 0x0000008 +.else .incbin "baserom.gba", 0x0B5480, 0x0000008 +.endif gUnk_080B5488:: @ 080B5488 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4BB0, 0x0000008 +.else .incbin "baserom.gba", 0x0B5488, 0x0000008 +.endif gUnk_080B5490:: @ 080B5490 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4BB8, 0x0000008 +.else .incbin "baserom.gba", 0x0B5490, 0x0000008 +.endif gUnk_080B5498:: @ 080B5498 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4BC0, 0x0000008 +.else .incbin "baserom.gba", 0x0B5498, 0x0000008 +.endif gUnk_080B54A0:: @ 080B54A0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4BC8, 0x0000008 +.else .incbin "baserom.gba", 0x0B54A0, 0x0000008 +.endif gUnk_080B54A8:: @ 080B54A8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4BD0, 0x0000008 +.else .incbin "baserom.gba", 0x0B54A8, 0x0000008 +.endif gUnk_080B54B0:: @ 080B54B0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4BD8, 0x0000008 +.else .incbin "baserom.gba", 0x0B54B0, 0x0000008 +.endif gUnk_080B54B8:: @ 080B54B8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4BE0, 0x0000008 +.else .incbin "baserom.gba", 0x0B54B8, 0x0000008 +.endif gUnk_080B54C0:: @ 080B54C0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4BE8, 0x0000008 +.else .incbin "baserom.gba", 0x0B54C0, 0x0000008 +.endif gUnk_080B54C8:: @ 080B54C8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4BF0, 0x0000008 +.else .incbin "baserom.gba", 0x0B54C8, 0x0000008 +.endif gUnk_080B54D0:: @ 080B54D0 .4byte gUnk_080B5450 @@ -1305,52 +2214,116 @@ gUnk_080B54D0:: @ 080B54D0 .incbin "baserom.gba", 0x0B554C, 0x000000C gUnk_080B5558:: @ 080B5558 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4C80, 0x0000008 +.else .incbin "baserom.gba", 0x0B5558, 0x0000008 +.endif gUnk_080B5560:: @ 080B5560 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4C88, 0x0000008 +.else .incbin "baserom.gba", 0x0B5560, 0x0000008 +.endif gUnk_080B5568:: @ 080B5568 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4C90, 0x0000008 +.else .incbin "baserom.gba", 0x0B5568, 0x0000008 +.endif gUnk_080B5570:: @ 080B5570 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4C98, 0x0000008 +.else .incbin "baserom.gba", 0x0B5570, 0x0000008 +.endif gUnk_080B5578:: @ 080B5578 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4CA0, 0x0000008 +.else .incbin "baserom.gba", 0x0B5578, 0x0000008 +.endif gUnk_080B5580:: @ 080B5580 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4CA8, 0x0000008 +.else .incbin "baserom.gba", 0x0B5580, 0x0000008 +.endif gUnk_080B5588:: @ 080B5588 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4CB0, 0x0000008 +.else .incbin "baserom.gba", 0x0B5588, 0x0000008 +.endif gUnk_080B5590:: @ 080B5590 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4CB8, 0x0000008 +.else .incbin "baserom.gba", 0x0B5590, 0x0000008 +.endif gUnk_080B5598:: @ 080B5598 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4CC0, 0x0000008 +.else .incbin "baserom.gba", 0x0B5598, 0x0000008 +.endif gUnk_080B55A0:: @ 080B55A0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4CC8, 0x0000008 +.else .incbin "baserom.gba", 0x0B55A0, 0x0000008 +.endif gUnk_080B55A8:: @ 080B55A8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4CD0, 0x0000008 +.else .incbin "baserom.gba", 0x0B55A8, 0x0000008 +.endif gUnk_080B55B0:: @ 080B55B0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4CD8, 0x0000008 +.else .incbin "baserom.gba", 0x0B55B0, 0x0000008 +.endif gUnk_080B55B8:: @ 080B55B8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4CE0, 0x0000008 +.else .incbin "baserom.gba", 0x0B55B8, 0x0000008 +.endif gUnk_080B55C0:: @ 080B55C0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4CE8, 0x0000008 +.else .incbin "baserom.gba", 0x0B55C0, 0x0000008 +.endif gUnk_080B55C8:: @ 080B55C8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4CF0, 0x0000008 +.else .incbin "baserom.gba", 0x0B55C8, 0x0000008 +.endif gUnk_080B55D0:: @ 080B55D0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4CF8, 0x0000008 +.else .incbin "baserom.gba", 0x0B55D0, 0x0000008 +.endif gUnk_080B55D8:: @ 080B55D8 .4byte gUnk_080B5558 @@ -1387,52 +2360,116 @@ gUnk_080B55D8:: @ 080B55D8 .incbin "baserom.gba", 0x0B5654, 0x000000C gUnk_080B5660:: @ 080B5660 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4D88, 0x0000008 +.else .incbin "baserom.gba", 0x0B5660, 0x0000008 +.endif gUnk_080B5668:: @ 080B5668 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4D90, 0x0000008 +.else .incbin "baserom.gba", 0x0B5668, 0x0000008 +.endif gUnk_080B5670:: @ 080B5670 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4D98, 0x0000008 +.else .incbin "baserom.gba", 0x0B5670, 0x0000008 +.endif gUnk_080B5678:: @ 080B5678 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4DA0, 0x0000008 +.else .incbin "baserom.gba", 0x0B5678, 0x0000008 +.endif gUnk_080B5680:: @ 080B5680 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4DA8, 0x0000008 +.else .incbin "baserom.gba", 0x0B5680, 0x0000008 +.endif gUnk_080B5688:: @ 080B5688 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4DB0, 0x0000008 +.else .incbin "baserom.gba", 0x0B5688, 0x0000008 +.endif gUnk_080B5690:: @ 080B5690 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4DB8, 0x0000008 +.else .incbin "baserom.gba", 0x0B5690, 0x0000008 +.endif gUnk_080B5698:: @ 080B5698 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4DC0, 0x0000008 +.else .incbin "baserom.gba", 0x0B5698, 0x0000008 +.endif gUnk_080B56A0:: @ 080B56A0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4DC8, 0x0000008 +.else .incbin "baserom.gba", 0x0B56A0, 0x0000008 +.endif gUnk_080B56A8:: @ 080B56A8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4DD0, 0x0000008 +.else .incbin "baserom.gba", 0x0B56A8, 0x0000008 +.endif gUnk_080B56B0:: @ 080B56B0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4DD8, 0x0000008 +.else .incbin "baserom.gba", 0x0B56B0, 0x0000008 +.endif gUnk_080B56B8:: @ 080B56B8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4DE0, 0x0000008 +.else .incbin "baserom.gba", 0x0B56B8, 0x0000008 +.endif gUnk_080B56C0:: @ 080B56C0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4DE8, 0x0000008 +.else .incbin "baserom.gba", 0x0B56C0, 0x0000008 +.endif gUnk_080B56C8:: @ 080B56C8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4DF0, 0x0000008 +.else .incbin "baserom.gba", 0x0B56C8, 0x0000008 +.endif gUnk_080B56D0:: @ 080B56D0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4DF8, 0x0000008 +.else .incbin "baserom.gba", 0x0B56D0, 0x0000008 +.endif gUnk_080B56D8:: @ 080B56D8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4E00, 0x0000008 +.else .incbin "baserom.gba", 0x0B56D8, 0x0000008 +.endif gUnk_080B56E0:: @ 080B56E0 .4byte gUnk_080B5660 @@ -1469,52 +2506,116 @@ gUnk_080B56E0:: @ 080B56E0 .incbin "baserom.gba", 0x0B575C, 0x000000C gUnk_080B5768:: @ 080B5768 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4E90, 0x0000008 +.else .incbin "baserom.gba", 0x0B5768, 0x0000008 +.endif gUnk_080B5770:: @ 080B5770 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4E98, 0x0000008 +.else .incbin "baserom.gba", 0x0B5770, 0x0000008 +.endif gUnk_080B5778:: @ 080B5778 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4EA0, 0x0000008 +.else .incbin "baserom.gba", 0x0B5778, 0x0000008 +.endif gUnk_080B5780:: @ 080B5780 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4EA8, 0x0000008 +.else .incbin "baserom.gba", 0x0B5780, 0x0000008 +.endif gUnk_080B5788:: @ 080B5788 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4EB0, 0x0000008 +.else .incbin "baserom.gba", 0x0B5788, 0x0000008 +.endif gUnk_080B5790:: @ 080B5790 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4EB8, 0x0000008 +.else .incbin "baserom.gba", 0x0B5790, 0x0000008 +.endif gUnk_080B5798:: @ 080B5798 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4EC0, 0x0000008 +.else .incbin "baserom.gba", 0x0B5798, 0x0000008 +.endif gUnk_080B57A0:: @ 080B57A0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4EC8, 0x0000008 +.else .incbin "baserom.gba", 0x0B57A0, 0x0000008 +.endif gUnk_080B57A8:: @ 080B57A8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4ED0, 0x0000008 +.else .incbin "baserom.gba", 0x0B57A8, 0x0000008 +.endif gUnk_080B57B0:: @ 080B57B0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4ED8, 0x0000008 +.else .incbin "baserom.gba", 0x0B57B0, 0x0000008 +.endif gUnk_080B57B8:: @ 080B57B8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4EE0, 0x0000008 +.else .incbin "baserom.gba", 0x0B57B8, 0x0000008 +.endif gUnk_080B57C0:: @ 080B57C0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4EE8, 0x0000008 +.else .incbin "baserom.gba", 0x0B57C0, 0x0000008 +.endif gUnk_080B57C8:: @ 080B57C8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4EF0, 0x0000008 +.else .incbin "baserom.gba", 0x0B57C8, 0x0000008 +.endif gUnk_080B57D0:: @ 080B57D0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4EF8, 0x0000008 +.else .incbin "baserom.gba", 0x0B57D0, 0x0000008 +.endif gUnk_080B57D8:: @ 080B57D8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4F00, 0x0000008 +.else .incbin "baserom.gba", 0x0B57D8, 0x0000008 +.endif gUnk_080B57E0:: @ 080B57E0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4F08, 0x0000008 +.else .incbin "baserom.gba", 0x0B57E0, 0x0000008 +.endif gUnk_080B57E8:: @ 080B57E8 .4byte gUnk_080B5768 @@ -1551,52 +2652,116 @@ gUnk_080B57E8:: @ 080B57E8 .incbin "baserom.gba", 0x0B5864, 0x000000C gUnk_080B5870:: @ 080B5870 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4F98, 0x0000008 +.else .incbin "baserom.gba", 0x0B5870, 0x0000008 +.endif gUnk_080B5878:: @ 080B5878 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4FA0, 0x0000008 +.else .incbin "baserom.gba", 0x0B5878, 0x0000008 +.endif gUnk_080B5880:: @ 080B5880 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4FA8, 0x0000008 +.else .incbin "baserom.gba", 0x0B5880, 0x0000008 +.endif gUnk_080B5888:: @ 080B5888 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4FB0, 0x0000008 +.else .incbin "baserom.gba", 0x0B5888, 0x0000008 +.endif gUnk_080B5890:: @ 080B5890 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4FB8, 0x0000008 +.else .incbin "baserom.gba", 0x0B5890, 0x0000008 +.endif gUnk_080B5898:: @ 080B5898 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4FC0, 0x0000008 +.else .incbin "baserom.gba", 0x0B5898, 0x0000008 +.endif gUnk_080B58A0:: @ 080B58A0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4FC8, 0x0000008 +.else .incbin "baserom.gba", 0x0B58A0, 0x0000008 +.endif gUnk_080B58A8:: @ 080B58A8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4FD0, 0x0000008 +.else .incbin "baserom.gba", 0x0B58A8, 0x0000008 +.endif gUnk_080B58B0:: @ 080B58B0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4FD8, 0x0000008 +.else .incbin "baserom.gba", 0x0B58B0, 0x0000008 +.endif gUnk_080B58B8:: @ 080B58B8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4FE0, 0x0000008 +.else .incbin "baserom.gba", 0x0B58B8, 0x0000008 +.endif gUnk_080B58C0:: @ 080B58C0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4FE8, 0x0000008 +.else .incbin "baserom.gba", 0x0B58C0, 0x0000008 +.endif gUnk_080B58C8:: @ 080B58C8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4FF0, 0x0000008 +.else .incbin "baserom.gba", 0x0B58C8, 0x0000008 +.endif gUnk_080B58D0:: @ 080B58D0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B4FF8, 0x0000008 +.else .incbin "baserom.gba", 0x0B58D0, 0x0000008 +.endif gUnk_080B58D8:: @ 080B58D8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5000, 0x0000008 +.else .incbin "baserom.gba", 0x0B58D8, 0x0000008 +.endif gUnk_080B58E0:: @ 080B58E0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5008, 0x0000008 +.else .incbin "baserom.gba", 0x0B58E0, 0x0000008 +.endif gUnk_080B58E8:: @ 080B58E8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5010, 0x0000008 +.else .incbin "baserom.gba", 0x0B58E8, 0x0000008 +.endif gUnk_080B58F0:: @ 080B58F0 .4byte gUnk_080B5870 @@ -1633,16 +2798,32 @@ gUnk_080B58F0:: @ 080B58F0 .incbin "baserom.gba", 0x0B596C, 0x000000C gUnk_080B5978:: @ 080B5978 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B50A0, 0x0000008 +.else .incbin "baserom.gba", 0x0B5978, 0x0000008 +.endif gUnk_080B5980:: @ 080B5980 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B50A8, 0x0000008 +.else .incbin "baserom.gba", 0x0B5980, 0x0000008 +.endif gUnk_080B5988:: @ 080B5988 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B50B0, 0x0000008 +.else .incbin "baserom.gba", 0x0B5988, 0x0000008 +.endif gUnk_080B5990:: @ 080B5990 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B50B8, 0x0000008 +.else .incbin "baserom.gba", 0x0B5990, 0x0000008 +.endif gUnk_080B5998:: @ 080B5998 .4byte gUnk_080B5978 @@ -1655,16 +2836,32 @@ gUnk_080B5998:: @ 080B5998 .incbin "baserom.gba", 0x0B59B4, 0x000000C gUnk_080B59C0:: @ 080B59C0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B50E8, 0x0000008 +.else .incbin "baserom.gba", 0x0B59C0, 0x0000008 +.endif gUnk_080B59C8:: @ 080B59C8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B50F0, 0x0000008 +.else .incbin "baserom.gba", 0x0B59C8, 0x0000008 +.endif gUnk_080B59D0:: @ 080B59D0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B50F8, 0x0000008 +.else .incbin "baserom.gba", 0x0B59D0, 0x0000008 +.endif gUnk_080B59D8:: @ 080B59D8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5100, 0x0000008 +.else .incbin "baserom.gba", 0x0B59D8, 0x0000008 +.endif gUnk_080B59E0:: @ 080B59E0 .4byte gUnk_080B59C0 @@ -1677,16 +2874,32 @@ gUnk_080B59E0:: @ 080B59E0 .incbin "baserom.gba", 0x0B59FC, 0x000000C gUnk_080B5A08:: @ 080B5A08 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5130, 0x0000008 +.else .incbin "baserom.gba", 0x0B5A08, 0x0000008 +.endif gUnk_080B5A10:: @ 080B5A10 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5138, 0x0000008 +.else .incbin "baserom.gba", 0x0B5A10, 0x0000008 +.endif gUnk_080B5A18:: @ 080B5A18 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5140, 0x0000008 +.else .incbin "baserom.gba", 0x0B5A18, 0x0000008 +.endif gUnk_080B5A20:: @ 080B5A20 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5148, 0x0000008 +.else .incbin "baserom.gba", 0x0B5A20, 0x0000008 +.endif gUnk_080B5A28:: @ 080B5A28 .4byte gUnk_080B5A08 @@ -1699,16 +2912,32 @@ gUnk_080B5A28:: @ 080B5A28 .incbin "baserom.gba", 0x0B5A44, 0x000000C gUnk_080B5A50:: @ 080B5A50 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5178, 0x0000008 +.else .incbin "baserom.gba", 0x0B5A50, 0x0000008 +.endif gUnk_080B5A58:: @ 080B5A58 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5180, 0x0000008 +.else .incbin "baserom.gba", 0x0B5A58, 0x0000008 +.endif gUnk_080B5A60:: @ 080B5A60 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5188, 0x0000008 +.else .incbin "baserom.gba", 0x0B5A60, 0x0000008 +.endif gUnk_080B5A68:: @ 080B5A68 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5190, 0x0000008 +.else .incbin "baserom.gba", 0x0B5A68, 0x0000008 +.endif gUnk_080B5A70:: @ 080B5A70 .4byte gUnk_080B5A50 @@ -1721,16 +2950,32 @@ gUnk_080B5A70:: @ 080B5A70 .incbin "baserom.gba", 0x0B5A8C, 0x000000C gUnk_080B5A98:: @ 080B5A98 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B51C0, 0x0000008 +.else .incbin "baserom.gba", 0x0B5A98, 0x0000008 +.endif gUnk_080B5AA0:: @ 080B5AA0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B51C8, 0x0000008 +.else .incbin "baserom.gba", 0x0B5AA0, 0x0000008 +.endif gUnk_080B5AA8:: @ 080B5AA8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B51D0, 0x0000008 +.else .incbin "baserom.gba", 0x0B5AA8, 0x0000008 +.endif gUnk_080B5AB0:: @ 080B5AB0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B51D8, 0x0000008 +.else .incbin "baserom.gba", 0x0B5AB0, 0x0000008 +.endif gUnk_080B5AB8:: @ 080B5AB8 .4byte gUnk_080B5A98 @@ -1743,16 +2988,32 @@ gUnk_080B5AB8:: @ 080B5AB8 .incbin "baserom.gba", 0x0B5AD4, 0x000000C gUnk_080B5AE0:: @ 080B5AE0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5208, 0x0000010 +.else .incbin "baserom.gba", 0x0B5AE0, 0x0000010 +.endif gUnk_080B5AF0:: @ 080B5AF0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5218, 0x0000010 +.else .incbin "baserom.gba", 0x0B5AF0, 0x0000010 +.endif gUnk_080B5B00:: @ 080B5B00 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5228, 0x0000010 +.else .incbin "baserom.gba", 0x0B5B00, 0x0000010 +.endif gUnk_080B5B10:: @ 080B5B10 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5238, 0x0000010 +.else .incbin "baserom.gba", 0x0B5B10, 0x0000010 +.endif gUnk_080B5B20:: @ 080B5B20 .4byte gUnk_080B5AE0 @@ -1765,16 +3026,32 @@ gUnk_080B5B20:: @ 080B5B20 .incbin "baserom.gba", 0x0B5B3C, 0x000000C gUnk_080B5B48:: @ 080B5B48 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5270, 0x0000008 +.else .incbin "baserom.gba", 0x0B5B48, 0x0000008 +.endif gUnk_080B5B50:: @ 080B5B50 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5278, 0x0000008 +.else .incbin "baserom.gba", 0x0B5B50, 0x0000008 +.endif gUnk_080B5B58:: @ 080B5B58 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5280, 0x0000008 +.else .incbin "baserom.gba", 0x0B5B58, 0x0000008 +.endif gUnk_080B5B60:: @ 080B5B60 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5288, 0x0000008 +.else .incbin "baserom.gba", 0x0B5B60, 0x0000008 +.endif gUnk_080B5B68:: @ 080B5B68 .4byte gUnk_080B5B48 @@ -1787,16 +3064,32 @@ gUnk_080B5B68:: @ 080B5B68 .incbin "baserom.gba", 0x0B5B84, 0x000000C gUnk_080B5B90:: @ 080B5B90 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B52B8, 0x0000008 +.else .incbin "baserom.gba", 0x0B5B90, 0x0000008 +.endif gUnk_080B5B98:: @ 080B5B98 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B52C0, 0x0000008 +.else .incbin "baserom.gba", 0x0B5B98, 0x0000008 +.endif gUnk_080B5BA0:: @ 080B5BA0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B52C8, 0x0000008 +.else .incbin "baserom.gba", 0x0B5BA0, 0x0000008 +.endif gUnk_080B5BA8:: @ 080B5BA8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B52D0, 0x0000008 +.else .incbin "baserom.gba", 0x0B5BA8, 0x0000008 +.endif gUnk_080B5BB0:: @ 080B5BB0 .4byte gUnk_080B5B90 @@ -1809,52 +3102,116 @@ gUnk_080B5BB0:: @ 080B5BB0 .incbin "baserom.gba", 0x0B5BCC, 0x000000C gUnk_080B5BD8:: @ 080B5BD8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5300, 0x0000008 +.else .incbin "baserom.gba", 0x0B5BD8, 0x0000008 +.endif gUnk_080B5BE0:: @ 080B5BE0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5308, 0x0000008 +.else .incbin "baserom.gba", 0x0B5BE0, 0x0000008 +.endif gUnk_080B5BE8:: @ 080B5BE8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5310, 0x0000008 +.else .incbin "baserom.gba", 0x0B5BE8, 0x0000008 +.endif gUnk_080B5BF0:: @ 080B5BF0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5318, 0x0000008 +.else .incbin "baserom.gba", 0x0B5BF0, 0x0000008 +.endif gUnk_080B5BF8:: @ 080B5BF8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5320, 0x0000008 +.else .incbin "baserom.gba", 0x0B5BF8, 0x0000008 +.endif gUnk_080B5C00:: @ 080B5C00 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5328, 0x0000008 +.else .incbin "baserom.gba", 0x0B5C00, 0x0000008 +.endif gUnk_080B5C08:: @ 080B5C08 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5330, 0x0000008 +.else .incbin "baserom.gba", 0x0B5C08, 0x0000008 +.endif gUnk_080B5C10:: @ 080B5C10 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5338, 0x0000008 +.else .incbin "baserom.gba", 0x0B5C10, 0x0000008 +.endif gUnk_080B5C18:: @ 080B5C18 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5340, 0x0000008 +.else .incbin "baserom.gba", 0x0B5C18, 0x0000008 +.endif gUnk_080B5C20:: @ 080B5C20 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5348, 0x0000008 +.else .incbin "baserom.gba", 0x0B5C20, 0x0000008 +.endif gUnk_080B5C28:: @ 080B5C28 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5350, 0x0000008 +.else .incbin "baserom.gba", 0x0B5C28, 0x0000008 +.endif gUnk_080B5C30:: @ 080B5C30 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5358, 0x0000008 +.else .incbin "baserom.gba", 0x0B5C30, 0x0000008 +.endif gUnk_080B5C38:: @ 080B5C38 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5360, 0x0000008 +.else .incbin "baserom.gba", 0x0B5C38, 0x0000008 +.endif gUnk_080B5C40:: @ 080B5C40 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5368, 0x0000008 +.else .incbin "baserom.gba", 0x0B5C40, 0x0000008 +.endif gUnk_080B5C48:: @ 080B5C48 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5370, 0x0000008 +.else .incbin "baserom.gba", 0x0B5C48, 0x0000008 +.endif gUnk_080B5C50:: @ 080B5C50 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5378, 0x0000008 +.else .incbin "baserom.gba", 0x0B5C50, 0x0000008 +.endif gUnk_080B5C58:: @ 080B5C58 .4byte gUnk_080B5BD8 @@ -1891,16 +3248,32 @@ gUnk_080B5C58:: @ 080B5C58 .incbin "baserom.gba", 0x0B5CD4, 0x000000C gUnk_080B5CE0:: @ 080B5CE0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5408, 0x0000018 +.else .incbin "baserom.gba", 0x0B5CE0, 0x0000018 +.endif gUnk_080B5CF8:: @ 080B5CF8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5420, 0x0000018 +.else .incbin "baserom.gba", 0x0B5CF8, 0x0000018 +.endif gUnk_080B5D10:: @ 080B5D10 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5438, 0x0000018 +.else .incbin "baserom.gba", 0x0B5D10, 0x0000018 +.endif gUnk_080B5D28:: @ 080B5D28 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5450, 0x0000018 +.else .incbin "baserom.gba", 0x0B5D28, 0x0000018 +.endif gUnk_080B5D40:: @ 080B5D40 .4byte gUnk_080B5CE0 @@ -1913,16 +3286,32 @@ gUnk_080B5D40:: @ 080B5D40 .incbin "baserom.gba", 0x0B5D5C, 0x000000C gUnk_080B5D68:: @ 080B5D68 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5490, 0x0000010 +.else .incbin "baserom.gba", 0x0B5D68, 0x0000010 +.endif gUnk_080B5D78:: @ 080B5D78 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B54A0, 0x0000010 +.else .incbin "baserom.gba", 0x0B5D78, 0x0000010 +.endif gUnk_080B5D88:: @ 080B5D88 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B54B0, 0x0000010 +.else .incbin "baserom.gba", 0x0B5D88, 0x0000010 +.endif gUnk_080B5D98:: @ 080B5D98 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B54C0, 0x0000010 +.else .incbin "baserom.gba", 0x0B5D98, 0x0000010 +.endif gUnk_080B5DA8:: @ 080B5DA8 .4byte gUnk_080B5D68 @@ -1935,16 +3324,32 @@ gUnk_080B5DA8:: @ 080B5DA8 .incbin "baserom.gba", 0x0B5DC4, 0x000000C gUnk_080B5DD0:: @ 080B5DD0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B54F8, 0x0000008 +.else .incbin "baserom.gba", 0x0B5DD0, 0x0000008 +.endif gUnk_080B5DD8:: @ 080B5DD8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5500, 0x0000008 +.else .incbin "baserom.gba", 0x0B5DD8, 0x0000008 +.endif gUnk_080B5DE0:: @ 080B5DE0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5508, 0x0000008 +.else .incbin "baserom.gba", 0x0B5DE0, 0x0000008 +.endif gUnk_080B5DE8:: @ 080B5DE8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5510, 0x0000008 +.else .incbin "baserom.gba", 0x0B5DE8, 0x0000008 +.endif gUnk_080B5DF0:: @ 080B5DF0 .4byte gUnk_080B5DD0 @@ -1957,16 +3362,32 @@ gUnk_080B5DF0:: @ 080B5DF0 .incbin "baserom.gba", 0x0B5E0C, 0x000000C gUnk_080B5E18:: @ 080B5E18 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5540, 0x0000008 +.else .incbin "baserom.gba", 0x0B5E18, 0x0000008 +.endif gUnk_080B5E20:: @ 080B5E20 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5548, 0x0000008 +.else .incbin "baserom.gba", 0x0B5E20, 0x0000008 +.endif gUnk_080B5E28:: @ 080B5E28 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5550, 0x0000008 +.else .incbin "baserom.gba", 0x0B5E28, 0x0000008 +.endif gUnk_080B5E30:: @ 080B5E30 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5558, 0x0000008 +.else .incbin "baserom.gba", 0x0B5E30, 0x0000008 +.endif gUnk_080B5E38:: @ 080B5E38 .4byte gUnk_080B5E18 @@ -1979,19 +3400,39 @@ gUnk_080B5E38:: @ 080B5E38 .incbin "baserom.gba", 0x0B5E54, 0x000000C gUnk_080B5E60:: @ 080B5E60 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5588, 0x0000008 +.else .incbin "baserom.gba", 0x0B5E60, 0x0000008 +.endif gUnk_080B5E68:: @ 080B5E68 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5590, 0x0000008 +.else .incbin "baserom.gba", 0x0B5E68, 0x0000008 +.endif gUnk_080B5E70:: @ 080B5E70 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5598, 0x0000008 +.else .incbin "baserom.gba", 0x0B5E70, 0x0000008 +.endif gUnk_080B5E78:: @ 080B5E78 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B55A0, 0x0000008 +.else .incbin "baserom.gba", 0x0B5E78, 0x0000008 +.endif gUnk_080B5E80:: @ 080B5E80 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B55A8, 0x0000008 +.else .incbin "baserom.gba", 0x0B5E80, 0x0000008 +.endif gUnk_080B5E88:: @ 080B5E88 .4byte gUnk_080B5E60 @@ -2006,16 +3447,32 @@ gUnk_080B5E88:: @ 080B5E88 .incbin "baserom.gba", 0x0B5EAC, 0x000000C gUnk_080B5EB8:: @ 080B5EB8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B55E0, 0x0000008 +.else .incbin "baserom.gba", 0x0B5EB8, 0x0000008 +.endif gUnk_080B5EC0:: @ 080B5EC0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B55E8, 0x0000008 +.else .incbin "baserom.gba", 0x0B5EC0, 0x0000008 +.endif gUnk_080B5EC8:: @ 080B5EC8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B55F0, 0x0000008 +.else .incbin "baserom.gba", 0x0B5EC8, 0x0000008 +.endif gUnk_080B5ED0:: @ 080B5ED0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B55F8, 0x0000008 +.else .incbin "baserom.gba", 0x0B5ED0, 0x0000008 +.endif gUnk_080B5ED8:: @ 080B5ED8 .4byte gUnk_080B5EB8 @@ -2028,19 +3485,39 @@ gUnk_080B5ED8:: @ 080B5ED8 .incbin "baserom.gba", 0x0B5EF4, 0x000000C gUnk_080B5F00:: @ 080B5F00 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5628, 0x0000008 +.else .incbin "baserom.gba", 0x0B5F00, 0x0000008 +.endif gUnk_080B5F08:: @ 080B5F08 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5630, 0x0000008 +.else .incbin "baserom.gba", 0x0B5F08, 0x0000008 +.endif gUnk_080B5F10:: @ 080B5F10 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5638, 0x0000008 +.else .incbin "baserom.gba", 0x0B5F10, 0x0000008 +.endif gUnk_080B5F18:: @ 080B5F18 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5640, 0x0000008 +.else .incbin "baserom.gba", 0x0B5F18, 0x0000008 +.endif gUnk_080B5F20:: @ 080B5F20 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5648, 0x0000008 +.else .incbin "baserom.gba", 0x0B5F20, 0x0000008 +.endif gUnk_080B5F28:: @ 080B5F28 .4byte gUnk_080B5F00 @@ -2055,19 +3532,39 @@ gUnk_080B5F28:: @ 080B5F28 .incbin "baserom.gba", 0x0B5F4C, 0x000000C gUnk_080B5F58:: @ 080B5F58 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5680, 0x0000008 +.else .incbin "baserom.gba", 0x0B5F58, 0x0000008 +.endif gUnk_080B5F60:: @ 080B5F60 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5688, 0x0000008 +.else .incbin "baserom.gba", 0x0B5F60, 0x0000008 +.endif gUnk_080B5F68:: @ 080B5F68 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5690, 0x0000008 +.else .incbin "baserom.gba", 0x0B5F68, 0x0000008 +.endif gUnk_080B5F70:: @ 080B5F70 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5698, 0x0000008 +.else .incbin "baserom.gba", 0x0B5F70, 0x0000008 +.endif gUnk_080B5F78:: @ 080B5F78 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B56A0, 0x0000008 +.else .incbin "baserom.gba", 0x0B5F78, 0x0000008 +.endif gUnk_080B5F80:: @ 080B5F80 .4byte gUnk_080B5F58 @@ -2082,16 +3579,32 @@ gUnk_080B5F80:: @ 080B5F80 .incbin "baserom.gba", 0x0B5FA4, 0x000000C gUnk_080B5FB0:: @ 080B5FB0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B56D8, 0x0000008 +.else .incbin "baserom.gba", 0x0B5FB0, 0x0000008 +.endif gUnk_080B5FB8:: @ 080B5FB8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B56E0, 0x0000008 +.else .incbin "baserom.gba", 0x0B5FB8, 0x0000008 +.endif gUnk_080B5FC0:: @ 080B5FC0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B56E8, 0x0000008 +.else .incbin "baserom.gba", 0x0B5FC0, 0x0000008 +.endif gUnk_080B5FC8:: @ 080B5FC8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B56F0, 0x0000008 +.else .incbin "baserom.gba", 0x0B5FC8, 0x0000008 +.endif gUnk_080B5FD0:: @ 080B5FD0 .4byte gUnk_080B5FB0 @@ -2104,52 +3617,116 @@ gUnk_080B5FD0:: @ 080B5FD0 .incbin "baserom.gba", 0x0B5FEC, 0x000000C gUnk_080B5FF8:: @ 080B5FF8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5720, 0x0000008 +.else .incbin "baserom.gba", 0x0B5FF8, 0x0000008 +.endif gUnk_080B6000:: @ 080B6000 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5728, 0x0000008 +.else .incbin "baserom.gba", 0x0B6000, 0x0000008 +.endif gUnk_080B6008:: @ 080B6008 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5730, 0x0000008 +.else .incbin "baserom.gba", 0x0B6008, 0x0000008 +.endif gUnk_080B6010:: @ 080B6010 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5738, 0x0000008 +.else .incbin "baserom.gba", 0x0B6010, 0x0000008 +.endif gUnk_080B6018:: @ 080B6018 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5740, 0x0000008 +.else .incbin "baserom.gba", 0x0B6018, 0x0000008 +.endif gUnk_080B6020:: @ 080B6020 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5748, 0x0000008 +.else .incbin "baserom.gba", 0x0B6020, 0x0000008 +.endif gUnk_080B6028:: @ 080B6028 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5750, 0x0000008 +.else .incbin "baserom.gba", 0x0B6028, 0x0000008 +.endif gUnk_080B6030:: @ 080B6030 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5758, 0x0000008 +.else .incbin "baserom.gba", 0x0B6030, 0x0000008 +.endif gUnk_080B6038:: @ 080B6038 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5760, 0x0000008 +.else .incbin "baserom.gba", 0x0B6038, 0x0000008 +.endif gUnk_080B6040:: @ 080B6040 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5768, 0x0000008 +.else .incbin "baserom.gba", 0x0B6040, 0x0000008 +.endif gUnk_080B6048:: @ 080B6048 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5770, 0x0000008 +.else .incbin "baserom.gba", 0x0B6048, 0x0000008 +.endif gUnk_080B6050:: @ 080B6050 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5778, 0x0000008 +.else .incbin "baserom.gba", 0x0B6050, 0x0000008 +.endif gUnk_080B6058:: @ 080B6058 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5780, 0x0000008 +.else .incbin "baserom.gba", 0x0B6058, 0x0000008 +.endif gUnk_080B6060:: @ 080B6060 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5788, 0x0000008 +.else .incbin "baserom.gba", 0x0B6060, 0x0000008 +.endif gUnk_080B6068:: @ 080B6068 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5790, 0x0000008 +.else .incbin "baserom.gba", 0x0B6068, 0x0000008 +.endif gUnk_080B6070:: @ 080B6070 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5798, 0x0000008 +.else .incbin "baserom.gba", 0x0B6070, 0x0000008 +.endif gUnk_080B6078:: @ 080B6078 .4byte gUnk_080B5FF8 @@ -2186,16 +3763,32 @@ gUnk_080B6078:: @ 080B6078 .incbin "baserom.gba", 0x0B60F4, 0x000000C gUnk_080B6100:: @ 080B6100 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5828, 0x0000008 +.else .incbin "baserom.gba", 0x0B6100, 0x0000008 +.endif gUnk_080B6108:: @ 080B6108 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5830, 0x0000008 +.else .incbin "baserom.gba", 0x0B6108, 0x0000008 +.endif gUnk_080B6110:: @ 080B6110 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5838, 0x0000008 +.else .incbin "baserom.gba", 0x0B6110, 0x0000008 +.endif gUnk_080B6118:: @ 080B6118 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5840, 0x0000008 +.else .incbin "baserom.gba", 0x0B6118, 0x0000008 +.endif gUnk_080B6120:: @ 080B6120 .4byte gUnk_080B6100 @@ -2208,16 +3801,32 @@ gUnk_080B6120:: @ 080B6120 .incbin "baserom.gba", 0x0B613C, 0x000000C gUnk_080B6148:: @ 080B6148 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5870, 0x0000008 +.else .incbin "baserom.gba", 0x0B6148, 0x0000008 +.endif gUnk_080B6150:: @ 080B6150 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5878, 0x0000008 +.else .incbin "baserom.gba", 0x0B6150, 0x0000008 +.endif gUnk_080B6158:: @ 080B6158 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5880, 0x0000008 +.else .incbin "baserom.gba", 0x0B6158, 0x0000008 +.endif gUnk_080B6160:: @ 080B6160 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5888, 0x0000008 +.else .incbin "baserom.gba", 0x0B6160, 0x0000008 +.endif gUnk_080B6168:: @ 080B6168 .4byte gUnk_080B6148 @@ -2230,16 +3839,32 @@ gUnk_080B6168:: @ 080B6168 .incbin "baserom.gba", 0x0B6184, 0x000000C gUnk_080B6190:: @ 080B6190 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B58B8, 0x0000008 +.else .incbin "baserom.gba", 0x0B6190, 0x0000008 +.endif gUnk_080B6198:: @ 080B6198 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B58C0, 0x0000008 +.else .incbin "baserom.gba", 0x0B6198, 0x0000008 +.endif gUnk_080B61A0:: @ 080B61A0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B58C8, 0x0000008 +.else .incbin "baserom.gba", 0x0B61A0, 0x0000008 +.endif gUnk_080B61A8:: @ 080B61A8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B58D0, 0x0000008 +.else .incbin "baserom.gba", 0x0B61A8, 0x0000008 +.endif gUnk_080B61B0:: @ 080B61B0 .4byte gUnk_080B6190 @@ -2252,16 +3877,32 @@ gUnk_080B61B0:: @ 080B61B0 .incbin "baserom.gba", 0x0B61CC, 0x000000C gUnk_080B61D8:: @ 080B61D8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5900, 0x0000008 +.else .incbin "baserom.gba", 0x0B61D8, 0x0000008 +.endif gUnk_080B61E0:: @ 080B61E0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5908, 0x0000008 +.else .incbin "baserom.gba", 0x0B61E0, 0x0000008 +.endif gUnk_080B61E8:: @ 080B61E8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5910, 0x0000008 +.else .incbin "baserom.gba", 0x0B61E8, 0x0000008 +.endif gUnk_080B61F0:: @ 080B61F0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5918, 0x0000008 +.else .incbin "baserom.gba", 0x0B61F0, 0x0000008 +.endif gUnk_080B61F8:: @ 080B61F8 .4byte gUnk_080B61D8 @@ -2274,52 +3915,116 @@ gUnk_080B61F8:: @ 080B61F8 .incbin "baserom.gba", 0x0B6214, 0x000000C gUnk_080B6220:: @ 080B6220 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5948, 0x0000008 +.else .incbin "baserom.gba", 0x0B6220, 0x0000008 +.endif gUnk_080B6228:: @ 080B6228 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5950, 0x0000008 +.else .incbin "baserom.gba", 0x0B6228, 0x0000008 +.endif gUnk_080B6230:: @ 080B6230 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5958, 0x0000008 +.else .incbin "baserom.gba", 0x0B6230, 0x0000008 +.endif gUnk_080B6238:: @ 080B6238 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5960, 0x0000008 +.else .incbin "baserom.gba", 0x0B6238, 0x0000008 +.endif gUnk_080B6240:: @ 080B6240 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5968, 0x0000008 +.else .incbin "baserom.gba", 0x0B6240, 0x0000008 +.endif gUnk_080B6248:: @ 080B6248 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5970, 0x0000008 +.else .incbin "baserom.gba", 0x0B6248, 0x0000008 +.endif gUnk_080B6250:: @ 080B6250 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5978, 0x0000008 +.else .incbin "baserom.gba", 0x0B6250, 0x0000008 +.endif gUnk_080B6258:: @ 080B6258 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5980, 0x0000008 +.else .incbin "baserom.gba", 0x0B6258, 0x0000008 +.endif gUnk_080B6260:: @ 080B6260 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5988, 0x0000008 +.else .incbin "baserom.gba", 0x0B6260, 0x0000008 +.endif gUnk_080B6268:: @ 080B6268 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5990, 0x0000008 +.else .incbin "baserom.gba", 0x0B6268, 0x0000008 +.endif gUnk_080B6270:: @ 080B6270 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5998, 0x0000008 +.else .incbin "baserom.gba", 0x0B6270, 0x0000008 +.endif gUnk_080B6278:: @ 080B6278 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B59A0, 0x0000008 +.else .incbin "baserom.gba", 0x0B6278, 0x0000008 +.endif gUnk_080B6280:: @ 080B6280 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B59A8, 0x0000008 +.else .incbin "baserom.gba", 0x0B6280, 0x0000008 +.endif gUnk_080B6288:: @ 080B6288 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B59B0, 0x0000008 +.else .incbin "baserom.gba", 0x0B6288, 0x0000008 +.endif gUnk_080B6290:: @ 080B6290 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B59B8, 0x0000008 +.else .incbin "baserom.gba", 0x0B6290, 0x0000008 +.endif gUnk_080B6298:: @ 080B6298 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B59C0, 0x0000008 +.else .incbin "baserom.gba", 0x0B6298, 0x0000008 +.endif gUnk_080B62A0:: @ 080B62A0 .4byte gUnk_080B6220 @@ -2356,52 +4061,116 @@ gUnk_080B62A0:: @ 080B62A0 .incbin "baserom.gba", 0x0B631C, 0x000000C gUnk_080B6328:: @ 080B6328 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5A50, 0x0000008 +.else .incbin "baserom.gba", 0x0B6328, 0x0000008 +.endif gUnk_080B6330:: @ 080B6330 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5A58, 0x0000008 +.else .incbin "baserom.gba", 0x0B6330, 0x0000008 +.endif gUnk_080B6338:: @ 080B6338 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5A60, 0x0000008 +.else .incbin "baserom.gba", 0x0B6338, 0x0000008 +.endif gUnk_080B6340:: @ 080B6340 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5A68, 0x0000008 +.else .incbin "baserom.gba", 0x0B6340, 0x0000008 +.endif gUnk_080B6348:: @ 080B6348 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5A70, 0x0000008 +.else .incbin "baserom.gba", 0x0B6348, 0x0000008 +.endif gUnk_080B6350:: @ 080B6350 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5A78, 0x0000008 +.else .incbin "baserom.gba", 0x0B6350, 0x0000008 +.endif gUnk_080B6358:: @ 080B6358 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5A80, 0x0000008 +.else .incbin "baserom.gba", 0x0B6358, 0x0000008 +.endif gUnk_080B6360:: @ 080B6360 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5A88, 0x0000008 +.else .incbin "baserom.gba", 0x0B6360, 0x0000008 +.endif gUnk_080B6368:: @ 080B6368 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5A90, 0x0000008 +.else .incbin "baserom.gba", 0x0B6368, 0x0000008 +.endif gUnk_080B6370:: @ 080B6370 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5A98, 0x0000008 +.else .incbin "baserom.gba", 0x0B6370, 0x0000008 +.endif gUnk_080B6378:: @ 080B6378 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5AA0, 0x0000008 +.else .incbin "baserom.gba", 0x0B6378, 0x0000008 +.endif gUnk_080B6380:: @ 080B6380 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5AA8, 0x0000008 +.else .incbin "baserom.gba", 0x0B6380, 0x0000008 +.endif gUnk_080B6388:: @ 080B6388 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5AB0, 0x0000008 +.else .incbin "baserom.gba", 0x0B6388, 0x0000008 +.endif gUnk_080B6390:: @ 080B6390 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5AB8, 0x0000008 +.else .incbin "baserom.gba", 0x0B6390, 0x0000008 +.endif gUnk_080B6398:: @ 080B6398 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5AC0, 0x0000008 +.else .incbin "baserom.gba", 0x0B6398, 0x0000008 +.endif gUnk_080B63A0:: @ 080B63A0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5AC8, 0x0000008 +.else .incbin "baserom.gba", 0x0B63A0, 0x0000008 +.endif gUnk_080B63A8:: @ 080B63A8 .4byte gUnk_080B6328 @@ -2438,16 +4207,32 @@ gUnk_080B63A8:: @ 080B63A8 .incbin "baserom.gba", 0x0B6424, 0x000000C gUnk_080B6430:: @ 080B6430 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5B58, 0x0000008 +.else .incbin "baserom.gba", 0x0B6430, 0x0000008 +.endif gUnk_080B6438:: @ 080B6438 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5B60, 0x0000008 +.else .incbin "baserom.gba", 0x0B6438, 0x0000008 +.endif gUnk_080B6440:: @ 080B6440 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5B68, 0x0000008 +.else .incbin "baserom.gba", 0x0B6440, 0x0000008 +.endif gUnk_080B6448:: @ 080B6448 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5B70, 0x0000008 +.else .incbin "baserom.gba", 0x0B6448, 0x0000008 +.endif gUnk_080B6450:: @ 080B6450 .4byte gUnk_080B6430 @@ -2460,16 +4245,32 @@ gUnk_080B6450:: @ 080B6450 .incbin "baserom.gba", 0x0B646C, 0x000000C gUnk_080B6478:: @ 080B6478 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5BA0, 0x0000008 +.else .incbin "baserom.gba", 0x0B6478, 0x0000008 +.endif gUnk_080B6480:: @ 080B6480 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5BA8, 0x0000008 +.else .incbin "baserom.gba", 0x0B6480, 0x0000008 +.endif gUnk_080B6488:: @ 080B6488 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5BB0, 0x0000008 +.else .incbin "baserom.gba", 0x0B6488, 0x0000008 +.endif gUnk_080B6490:: @ 080B6490 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5BB8, 0x0000008 +.else .incbin "baserom.gba", 0x0B6490, 0x0000008 +.endif gUnk_080B6498:: @ 080B6498 .4byte gUnk_080B6478 @@ -2482,16 +4283,32 @@ gUnk_080B6498:: @ 080B6498 .incbin "baserom.gba", 0x0B64B4, 0x000000C gUnk_080B64C0:: @ 080B64C0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5BE8, 0x0000008 +.else .incbin "baserom.gba", 0x0B64C0, 0x0000008 +.endif gUnk_080B64C8:: @ 080B64C8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5BF0, 0x0000008 +.else .incbin "baserom.gba", 0x0B64C8, 0x0000008 +.endif gUnk_080B64D0:: @ 080B64D0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5BF8, 0x0000008 +.else .incbin "baserom.gba", 0x0B64D0, 0x0000008 +.endif gUnk_080B64D8:: @ 080B64D8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5C00, 0x0000008 +.else .incbin "baserom.gba", 0x0B64D8, 0x0000008 +.endif gUnk_080B64E0:: @ 080B64E0 .4byte gUnk_080B64C0 @@ -2504,16 +4321,32 @@ gUnk_080B64E0:: @ 080B64E0 .incbin "baserom.gba", 0x0B64FC, 0x000000C gUnk_080B6508:: @ 080B6508 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5C30, 0x0000008 +.else .incbin "baserom.gba", 0x0B6508, 0x0000008 +.endif gUnk_080B6510:: @ 080B6510 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5C38, 0x0000008 +.else .incbin "baserom.gba", 0x0B6510, 0x0000008 +.endif gUnk_080B6518:: @ 080B6518 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5C40, 0x0000008 +.else .incbin "baserom.gba", 0x0B6518, 0x0000008 +.endif gUnk_080B6520:: @ 080B6520 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5C48, 0x0000008 +.else .incbin "baserom.gba", 0x0B6520, 0x0000008 +.endif gUnk_080B6528:: @ 080B6528 .4byte gUnk_080B6508 @@ -2526,16 +4359,32 @@ gUnk_080B6528:: @ 080B6528 .incbin "baserom.gba", 0x0B6544, 0x000000C gUnk_080B6550:: @ 080B6550 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5C78, 0x0000008 +.else .incbin "baserom.gba", 0x0B6550, 0x0000008 +.endif gUnk_080B6558:: @ 080B6558 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5C80, 0x0000008 +.else .incbin "baserom.gba", 0x0B6558, 0x0000008 +.endif gUnk_080B6560:: @ 080B6560 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5C88, 0x0000008 +.else .incbin "baserom.gba", 0x0B6560, 0x0000008 +.endif gUnk_080B6568:: @ 080B6568 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5C90, 0x0000008 +.else .incbin "baserom.gba", 0x0B6568, 0x0000008 +.endif gUnk_080B6570:: @ 080B6570 .4byte gUnk_080B6550 @@ -2548,52 +4397,116 @@ gUnk_080B6570:: @ 080B6570 .incbin "baserom.gba", 0x0B658C, 0x000000C gUnk_080B6598:: @ 080B6598 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5CC0, 0x0000008 +.else .incbin "baserom.gba", 0x0B6598, 0x0000008 +.endif gUnk_080B65A0:: @ 080B65A0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5CC8, 0x0000008 +.else .incbin "baserom.gba", 0x0B65A0, 0x0000008 +.endif gUnk_080B65A8:: @ 080B65A8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5CD0, 0x0000008 +.else .incbin "baserom.gba", 0x0B65A8, 0x0000008 +.endif gUnk_080B65B0:: @ 080B65B0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5CD8, 0x0000008 +.else .incbin "baserom.gba", 0x0B65B0, 0x0000008 +.endif gUnk_080B65B8:: @ 080B65B8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5CE0, 0x0000008 +.else .incbin "baserom.gba", 0x0B65B8, 0x0000008 +.endif gUnk_080B65C0:: @ 080B65C0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5CE8, 0x0000008 +.else .incbin "baserom.gba", 0x0B65C0, 0x0000008 +.endif gUnk_080B65C8:: @ 080B65C8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5CF0, 0x0000008 +.else .incbin "baserom.gba", 0x0B65C8, 0x0000008 +.endif gUnk_080B65D0:: @ 080B65D0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5CF8, 0x0000008 +.else .incbin "baserom.gba", 0x0B65D0, 0x0000008 +.endif gUnk_080B65D8:: @ 080B65D8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5D00, 0x0000008 +.else .incbin "baserom.gba", 0x0B65D8, 0x0000008 +.endif gUnk_080B65E0:: @ 080B65E0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5D08, 0x0000008 +.else .incbin "baserom.gba", 0x0B65E0, 0x0000008 +.endif gUnk_080B65E8:: @ 080B65E8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5D10, 0x0000008 +.else .incbin "baserom.gba", 0x0B65E8, 0x0000008 +.endif gUnk_080B65F0:: @ 080B65F0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5D18, 0x0000008 +.else .incbin "baserom.gba", 0x0B65F0, 0x0000008 +.endif gUnk_080B65F8:: @ 080B65F8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5D20, 0x0000008 +.else .incbin "baserom.gba", 0x0B65F8, 0x0000008 +.endif gUnk_080B6600:: @ 080B6600 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5D28, 0x0000008 +.else .incbin "baserom.gba", 0x0B6600, 0x0000008 +.endif gUnk_080B6608:: @ 080B6608 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5D30, 0x0000008 +.else .incbin "baserom.gba", 0x0B6608, 0x0000008 +.endif gUnk_080B6610:: @ 080B6610 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5D38, 0x0000008 +.else .incbin "baserom.gba", 0x0B6610, 0x0000008 +.endif gUnk_080B6618:: @ 080B6618 .4byte gUnk_080B6598 @@ -2630,52 +4543,116 @@ gUnk_080B6618:: @ 080B6618 .incbin "baserom.gba", 0x0B6694, 0x000000C gUnk_080B66A0:: @ 080B66A0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5DC8, 0x0000008 +.else .incbin "baserom.gba", 0x0B66A0, 0x0000008 +.endif gUnk_080B66A8:: @ 080B66A8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5DD0, 0x0000008 +.else .incbin "baserom.gba", 0x0B66A8, 0x0000008 +.endif gUnk_080B66B0:: @ 080B66B0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5DD8, 0x0000008 +.else .incbin "baserom.gba", 0x0B66B0, 0x0000008 +.endif gUnk_080B66B8:: @ 080B66B8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5DE0, 0x0000008 +.else .incbin "baserom.gba", 0x0B66B8, 0x0000008 +.endif gUnk_080B66C0:: @ 080B66C0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5DE8, 0x0000008 +.else .incbin "baserom.gba", 0x0B66C0, 0x0000008 +.endif gUnk_080B66C8:: @ 080B66C8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5DF0, 0x0000008 +.else .incbin "baserom.gba", 0x0B66C8, 0x0000008 +.endif gUnk_080B66D0:: @ 080B66D0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5DF8, 0x0000008 +.else .incbin "baserom.gba", 0x0B66D0, 0x0000008 +.endif gUnk_080B66D8:: @ 080B66D8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5E00, 0x0000008 +.else .incbin "baserom.gba", 0x0B66D8, 0x0000008 +.endif gUnk_080B66E0:: @ 080B66E0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5E08, 0x0000008 +.else .incbin "baserom.gba", 0x0B66E0, 0x0000008 +.endif gUnk_080B66E8:: @ 080B66E8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5E10, 0x0000008 +.else .incbin "baserom.gba", 0x0B66E8, 0x0000008 +.endif gUnk_080B66F0:: @ 080B66F0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5E18, 0x0000008 +.else .incbin "baserom.gba", 0x0B66F0, 0x0000008 +.endif gUnk_080B66F8:: @ 080B66F8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5E20, 0x0000008 +.else .incbin "baserom.gba", 0x0B66F8, 0x0000008 +.endif gUnk_080B6700:: @ 080B6700 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5E28, 0x0000008 +.else .incbin "baserom.gba", 0x0B6700, 0x0000008 +.endif gUnk_080B6708:: @ 080B6708 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5E30, 0x0000008 +.else .incbin "baserom.gba", 0x0B6708, 0x0000008 +.endif gUnk_080B6710:: @ 080B6710 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5E38, 0x0000008 +.else .incbin "baserom.gba", 0x0B6710, 0x0000008 +.endif gUnk_080B6718:: @ 080B6718 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5E40, 0x0000008 +.else .incbin "baserom.gba", 0x0B6718, 0x0000008 +.endif gUnk_080B6720:: @ 080B6720 .4byte gUnk_080B66A0 @@ -2712,16 +4689,32 @@ gUnk_080B6720:: @ 080B6720 .incbin "baserom.gba", 0x0B679C, 0x000000C gUnk_080B67A8:: @ 080B67A8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5ED0, 0x0000008 +.else .incbin "baserom.gba", 0x0B67A8, 0x0000008 +.endif gUnk_080B67B0:: @ 080B67B0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5ED8, 0x0000008 +.else .incbin "baserom.gba", 0x0B67B0, 0x0000008 +.endif gUnk_080B67B8:: @ 080B67B8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5EE0, 0x0000008 +.else .incbin "baserom.gba", 0x0B67B8, 0x0000008 +.endif gUnk_080B67C0:: @ 080B67C0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5EE8, 0x0000008 +.else .incbin "baserom.gba", 0x0B67C0, 0x0000008 +.endif gUnk_080B67C8:: @ 080B67C8 .4byte gUnk_080B67A8 @@ -2734,16 +4727,32 @@ gUnk_080B67C8:: @ 080B67C8 .incbin "baserom.gba", 0x0B67E4, 0x000000C gUnk_080B67F0:: @ 080B67F0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5F18, 0x0000008 +.else .incbin "baserom.gba", 0x0B67F0, 0x0000008 +.endif gUnk_080B67F8:: @ 080B67F8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5F20, 0x0000008 +.else .incbin "baserom.gba", 0x0B67F8, 0x0000008 +.endif gUnk_080B6800:: @ 080B6800 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5F28, 0x0000008 +.else .incbin "baserom.gba", 0x0B6800, 0x0000008 +.endif gUnk_080B6808:: @ 080B6808 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5F30, 0x0000008 +.else .incbin "baserom.gba", 0x0B6808, 0x0000008 +.endif gUnk_080B6810:: @ 080B6810 .4byte gUnk_080B67F0 @@ -2756,16 +4765,32 @@ gUnk_080B6810:: @ 080B6810 .incbin "baserom.gba", 0x0B682C, 0x000000C gUnk_080B6838:: @ 080B6838 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5F60, 0x0000008 +.else .incbin "baserom.gba", 0x0B6838, 0x0000008 +.endif gUnk_080B6840:: @ 080B6840 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5F68, 0x0000008 +.else .incbin "baserom.gba", 0x0B6840, 0x0000008 +.endif gUnk_080B6848:: @ 080B6848 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5F70, 0x0000008 +.else .incbin "baserom.gba", 0x0B6848, 0x0000008 +.endif gUnk_080B6850:: @ 080B6850 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5F78, 0x0000008 +.else .incbin "baserom.gba", 0x0B6850, 0x0000008 +.endif gUnk_080B6858:: @ 080B6858 .4byte gUnk_080B6838 @@ -2778,16 +4803,32 @@ gUnk_080B6858:: @ 080B6858 .incbin "baserom.gba", 0x0B6874, 0x000000C gUnk_080B6880:: @ 080B6880 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5FA8, 0x0000008 +.else .incbin "baserom.gba", 0x0B6880, 0x0000008 +.endif gUnk_080B6888:: @ 080B6888 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5FB0, 0x0000008 +.else .incbin "baserom.gba", 0x0B6888, 0x0000008 +.endif gUnk_080B6890:: @ 080B6890 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5FB8, 0x0000008 +.else .incbin "baserom.gba", 0x0B6890, 0x0000008 +.endif gUnk_080B6898:: @ 080B6898 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5FC0, 0x0000008 +.else .incbin "baserom.gba", 0x0B6898, 0x0000008 +.endif gUnk_080B68A0:: @ 080B68A0 .4byte gUnk_080B6880 @@ -2800,16 +4841,32 @@ gUnk_080B68A0:: @ 080B68A0 .incbin "baserom.gba", 0x0B68BC, 0x000000C gUnk_080B68C8:: @ 080B68C8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5FF0, 0x0000008 +.else .incbin "baserom.gba", 0x0B68C8, 0x0000008 +.endif gUnk_080B68D0:: @ 080B68D0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B5FF8, 0x0000008 +.else .incbin "baserom.gba", 0x0B68D0, 0x0000008 +.endif gUnk_080B68D8:: @ 080B68D8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6000, 0x0000008 +.else .incbin "baserom.gba", 0x0B68D8, 0x0000008 +.endif gUnk_080B68E0:: @ 080B68E0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6008, 0x0000008 +.else .incbin "baserom.gba", 0x0B68E0, 0x0000008 +.endif gUnk_080B68E8:: @ 080B68E8 .4byte gUnk_080B68C8 @@ -2822,19 +4879,39 @@ gUnk_080B68E8:: @ 080B68E8 .incbin "baserom.gba", 0x0B6904, 0x000000C gUnk_080B6910:: @ 080B6910 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6038, 0x0000008 +.else .incbin "baserom.gba", 0x0B6910, 0x0000008 +.endif gUnk_080B6918:: @ 080B6918 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6040, 0x0000008 +.else .incbin "baserom.gba", 0x0B6918, 0x0000008 +.endif gUnk_080B6920:: @ 080B6920 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6048, 0x0000008 +.else .incbin "baserom.gba", 0x0B6920, 0x0000008 +.endif gUnk_080B6928:: @ 080B6928 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6050, 0x0000008 +.else .incbin "baserom.gba", 0x0B6928, 0x0000008 +.endif gUnk_080B6930:: @ 080B6930 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6058, 0x0000008 +.else .incbin "baserom.gba", 0x0B6930, 0x0000008 +.endif gUnk_080B6938:: @ 080B6938 .4byte gUnk_080B6910 @@ -2855,52 +4932,116 @@ gUnk_080B6938:: @ 080B6938 .incbin "baserom.gba", 0x0B6974, 0x000000C gUnk_080B6980:: @ 080B6980 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B60A8, 0x0000008 +.else .incbin "baserom.gba", 0x0B6980, 0x0000008 +.endif gUnk_080B6988:: @ 080B6988 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B60B0, 0x0000008 +.else .incbin "baserom.gba", 0x0B6988, 0x0000008 +.endif gUnk_080B6990:: @ 080B6990 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B60B8, 0x0000008 +.else .incbin "baserom.gba", 0x0B6990, 0x0000008 +.endif gUnk_080B6998:: @ 080B6998 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B60C0, 0x0000008 +.else .incbin "baserom.gba", 0x0B6998, 0x0000008 +.endif gUnk_080B69A0:: @ 080B69A0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B60C8, 0x0000008 +.else .incbin "baserom.gba", 0x0B69A0, 0x0000008 +.endif gUnk_080B69A8:: @ 080B69A8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B60D0, 0x0000008 +.else .incbin "baserom.gba", 0x0B69A8, 0x0000008 +.endif gUnk_080B69B0:: @ 080B69B0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B60D8, 0x0000008 +.else .incbin "baserom.gba", 0x0B69B0, 0x0000008 +.endif gUnk_080B69B8:: @ 080B69B8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B60E0, 0x0000008 +.else .incbin "baserom.gba", 0x0B69B8, 0x0000008 +.endif gUnk_080B69C0:: @ 080B69C0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B60E8, 0x0000008 +.else .incbin "baserom.gba", 0x0B69C0, 0x0000008 +.endif gUnk_080B69C8:: @ 080B69C8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B60F0, 0x0000008 +.else .incbin "baserom.gba", 0x0B69C8, 0x0000008 +.endif gUnk_080B69D0:: @ 080B69D0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B60F8, 0x0000008 +.else .incbin "baserom.gba", 0x0B69D0, 0x0000008 +.endif gUnk_080B69D8:: @ 080B69D8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6100, 0x0000008 +.else .incbin "baserom.gba", 0x0B69D8, 0x0000008 +.endif gUnk_080B69E0:: @ 080B69E0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6108, 0x0000008 +.else .incbin "baserom.gba", 0x0B69E0, 0x0000008 +.endif gUnk_080B69E8:: @ 080B69E8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6110, 0x0000008 +.else .incbin "baserom.gba", 0x0B69E8, 0x0000008 +.endif gUnk_080B69F0:: @ 080B69F0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6118, 0x0000008 +.else .incbin "baserom.gba", 0x0B69F0, 0x0000008 +.endif gUnk_080B69F8:: @ 080B69F8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6120, 0x0000008 +.else .incbin "baserom.gba", 0x0B69F8, 0x0000008 +.endif gUnk_080B6A00:: @ 080B6A00 .4byte gUnk_080B6980 @@ -2937,52 +5078,116 @@ gUnk_080B6A00:: @ 080B6A00 .incbin "baserom.gba", 0x0B6A7C, 0x000000C gUnk_080B6A88:: @ 080B6A88 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B61B0, 0x0000008 +.else .incbin "baserom.gba", 0x0B6A88, 0x0000008 +.endif gUnk_080B6A90:: @ 080B6A90 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B61B8, 0x0000008 +.else .incbin "baserom.gba", 0x0B6A90, 0x0000008 +.endif gUnk_080B6A98:: @ 080B6A98 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B61C0, 0x0000008 +.else .incbin "baserom.gba", 0x0B6A98, 0x0000008 +.endif gUnk_080B6AA0:: @ 080B6AA0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B61C8, 0x0000008 +.else .incbin "baserom.gba", 0x0B6AA0, 0x0000008 +.endif gUnk_080B6AA8:: @ 080B6AA8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B61D0, 0x0000008 +.else .incbin "baserom.gba", 0x0B6AA8, 0x0000008 +.endif gUnk_080B6AB0:: @ 080B6AB0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B61D8, 0x0000008 +.else .incbin "baserom.gba", 0x0B6AB0, 0x0000008 +.endif gUnk_080B6AB8:: @ 080B6AB8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B61E0, 0x0000008 +.else .incbin "baserom.gba", 0x0B6AB8, 0x0000008 +.endif gUnk_080B6AC0:: @ 080B6AC0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B61E8, 0x0000008 +.else .incbin "baserom.gba", 0x0B6AC0, 0x0000008 +.endif gUnk_080B6AC8:: @ 080B6AC8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B61F0, 0x0000008 +.else .incbin "baserom.gba", 0x0B6AC8, 0x0000008 +.endif gUnk_080B6AD0:: @ 080B6AD0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B61F8, 0x0000008 +.else .incbin "baserom.gba", 0x0B6AD0, 0x0000008 +.endif gUnk_080B6AD8:: @ 080B6AD8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6200, 0x0000008 +.else .incbin "baserom.gba", 0x0B6AD8, 0x0000008 +.endif gUnk_080B6AE0:: @ 080B6AE0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6208, 0x0000008 +.else .incbin "baserom.gba", 0x0B6AE0, 0x0000008 +.endif gUnk_080B6AE8:: @ 080B6AE8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6210, 0x0000008 +.else .incbin "baserom.gba", 0x0B6AE8, 0x0000008 +.endif gUnk_080B6AF0:: @ 080B6AF0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6218, 0x0000008 +.else .incbin "baserom.gba", 0x0B6AF0, 0x0000008 +.endif gUnk_080B6AF8:: @ 080B6AF8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6220, 0x0000008 +.else .incbin "baserom.gba", 0x0B6AF8, 0x0000008 +.endif gUnk_080B6B00:: @ 080B6B00 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6228, 0x0000008 +.else .incbin "baserom.gba", 0x0B6B00, 0x0000008 +.endif gUnk_080B6B08:: @ 080B6B08 .4byte gUnk_080B6A88 @@ -3019,16 +5224,32 @@ gUnk_080B6B08:: @ 080B6B08 .incbin "baserom.gba", 0x0B6B84, 0x000000C gUnk_080B6B90:: @ 080B6B90 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B62B8, 0x0000008 +.else .incbin "baserom.gba", 0x0B6B90, 0x0000008 +.endif gUnk_080B6B98:: @ 080B6B98 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B62C0, 0x0000008 +.else .incbin "baserom.gba", 0x0B6B98, 0x0000008 +.endif gUnk_080B6BA0:: @ 080B6BA0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B62C8, 0x0000008 +.else .incbin "baserom.gba", 0x0B6BA0, 0x0000008 +.endif gUnk_080B6BA8:: @ 080B6BA8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B62D0, 0x0000008 +.else .incbin "baserom.gba", 0x0B6BA8, 0x0000008 +.endif gUnk_080B6BB0:: @ 080B6BB0 .4byte gUnk_080B6B90 @@ -3041,16 +5262,32 @@ gUnk_080B6BB0:: @ 080B6BB0 .incbin "baserom.gba", 0x0B6BCC, 0x000000C gUnk_080B6BD8:: @ 080B6BD8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6300, 0x0000008 +.else .incbin "baserom.gba", 0x0B6BD8, 0x0000008 +.endif gUnk_080B6BE0:: @ 080B6BE0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6308, 0x0000008 +.else .incbin "baserom.gba", 0x0B6BE0, 0x0000008 +.endif gUnk_080B6BE8:: @ 080B6BE8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6310, 0x0000008 +.else .incbin "baserom.gba", 0x0B6BE8, 0x0000008 +.endif gUnk_080B6BF0:: @ 080B6BF0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6318, 0x0000008 +.else .incbin "baserom.gba", 0x0B6BF0, 0x0000008 +.endif gUnk_080B6BF8:: @ 080B6BF8 .4byte gUnk_080B6BD8 @@ -3063,25 +5300,53 @@ gUnk_080B6BF8:: @ 080B6BF8 .incbin "baserom.gba", 0x0B6C14, 0x000000C gUnk_080B6C20:: @ 080B6C20 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6348, 0x0000008 +.else .incbin "baserom.gba", 0x0B6C20, 0x0000008 +.endif gUnk_080B6C28:: @ 080B6C28 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6350, 0x0000008 +.else .incbin "baserom.gba", 0x0B6C28, 0x0000008 +.endif gUnk_080B6C30:: @ 080B6C30 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6358, 0x0000008 +.else .incbin "baserom.gba", 0x0B6C30, 0x0000008 +.endif gUnk_080B6C38:: @ 080B6C38 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6360, 0x0000008 +.else .incbin "baserom.gba", 0x0B6C38, 0x0000008 +.endif gUnk_080B6C40:: @ 080B6C40 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6368, 0x0000008 +.else .incbin "baserom.gba", 0x0B6C40, 0x0000008 +.endif gUnk_080B6C48:: @ 080B6C48 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6370, 0x0000008 +.else .incbin "baserom.gba", 0x0B6C48, 0x0000008 +.endif gUnk_080B6C50:: @ 080B6C50 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6378, 0x0000008 +.else .incbin "baserom.gba", 0x0B6C50, 0x0000008 +.endif gUnk_080B6C58:: @ 080B6C58 .4byte gUnk_080B6C20 @@ -3100,16 +5365,32 @@ gUnk_080B6C58:: @ 080B6C58 .incbin "baserom.gba", 0x0B6C8C, 0x000000C gUnk_080B6C98:: @ 080B6C98 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B63C0, 0x0000008 +.else .incbin "baserom.gba", 0x0B6C98, 0x0000008 +.endif gUnk_080B6CA0:: @ 080B6CA0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B63C8, 0x0000008 +.else .incbin "baserom.gba", 0x0B6CA0, 0x0000008 +.endif gUnk_080B6CA8:: @ 080B6CA8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B63D0, 0x0000008 +.else .incbin "baserom.gba", 0x0B6CA8, 0x0000008 +.endif gUnk_080B6CB0:: @ 080B6CB0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B63D8, 0x0000008 +.else .incbin "baserom.gba", 0x0B6CB0, 0x0000008 +.endif gUnk_080B6CB8:: @ 080B6CB8 .4byte gUnk_080B6C98 @@ -3122,16 +5403,32 @@ gUnk_080B6CB8:: @ 080B6CB8 .incbin "baserom.gba", 0x0B6CD4, 0x000000C gUnk_080B6CE0:: @ 080B6CE0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6408, 0x0000008 +.else .incbin "baserom.gba", 0x0B6CE0, 0x0000008 +.endif gUnk_080B6CE8:: @ 080B6CE8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6410, 0x0000008 +.else .incbin "baserom.gba", 0x0B6CE8, 0x0000008 +.endif gUnk_080B6CF0:: @ 080B6CF0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6418, 0x0000008 +.else .incbin "baserom.gba", 0x0B6CF0, 0x0000008 +.endif gUnk_080B6CF8:: @ 080B6CF8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6420, 0x0000008 +.else .incbin "baserom.gba", 0x0B6CF8, 0x0000008 +.endif gUnk_080B6D00:: @ 080B6D00 .4byte gUnk_080B6CE0 @@ -3144,52 +5441,116 @@ gUnk_080B6D00:: @ 080B6D00 .incbin "baserom.gba", 0x0B6D1C, 0x000000C gUnk_080B6D28:: @ 080B6D28 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6450, 0x0000008 +.else .incbin "baserom.gba", 0x0B6D28, 0x0000008 +.endif gUnk_080B6D30:: @ 080B6D30 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6458, 0x0000008 +.else .incbin "baserom.gba", 0x0B6D30, 0x0000008 +.endif gUnk_080B6D38:: @ 080B6D38 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6460, 0x0000008 +.else .incbin "baserom.gba", 0x0B6D38, 0x0000008 +.endif gUnk_080B6D40:: @ 080B6D40 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6468, 0x0000008 +.else .incbin "baserom.gba", 0x0B6D40, 0x0000008 +.endif gUnk_080B6D48:: @ 080B6D48 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6470, 0x0000008 +.else .incbin "baserom.gba", 0x0B6D48, 0x0000008 +.endif gUnk_080B6D50:: @ 080B6D50 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6478, 0x0000008 +.else .incbin "baserom.gba", 0x0B6D50, 0x0000008 +.endif gUnk_080B6D58:: @ 080B6D58 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6480, 0x0000008 +.else .incbin "baserom.gba", 0x0B6D58, 0x0000008 +.endif gUnk_080B6D60:: @ 080B6D60 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6488, 0x0000008 +.else .incbin "baserom.gba", 0x0B6D60, 0x0000008 +.endif gUnk_080B6D68:: @ 080B6D68 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6490, 0x0000008 +.else .incbin "baserom.gba", 0x0B6D68, 0x0000008 +.endif gUnk_080B6D70:: @ 080B6D70 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6498, 0x0000008 +.else .incbin "baserom.gba", 0x0B6D70, 0x0000008 +.endif gUnk_080B6D78:: @ 080B6D78 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B64A0, 0x0000008 +.else .incbin "baserom.gba", 0x0B6D78, 0x0000008 +.endif gUnk_080B6D80:: @ 080B6D80 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B64A8, 0x0000008 +.else .incbin "baserom.gba", 0x0B6D80, 0x0000008 +.endif gUnk_080B6D88:: @ 080B6D88 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B64B0, 0x0000008 +.else .incbin "baserom.gba", 0x0B6D88, 0x0000008 +.endif gUnk_080B6D90:: @ 080B6D90 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B64B8, 0x0000008 +.else .incbin "baserom.gba", 0x0B6D90, 0x0000008 +.endif gUnk_080B6D98:: @ 080B6D98 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B64C0, 0x0000008 +.else .incbin "baserom.gba", 0x0B6D98, 0x0000008 +.endif gUnk_080B6DA0:: @ 080B6DA0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B64C8, 0x0000008 +.else .incbin "baserom.gba", 0x0B6DA0, 0x0000008 +.endif gUnk_080B6DA8:: @ 080B6DA8 .4byte gUnk_080B6D28 @@ -3258,52 +5619,116 @@ gUnk_080B6E60:: @ 080B6E60 .incbin "baserom.gba", 0x0B6E9C, 0x000000C gUnk_080B6EA8:: @ 080B6EA8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B65D0, 0x0000008 +.else .incbin "baserom.gba", 0x0B6EA8, 0x0000008 +.endif gUnk_080B6EB0:: @ 080B6EB0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B65D8, 0x0000008 +.else .incbin "baserom.gba", 0x0B6EB0, 0x0000008 +.endif gUnk_080B6EB8:: @ 080B6EB8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B65E0, 0x0000008 +.else .incbin "baserom.gba", 0x0B6EB8, 0x0000008 +.endif gUnk_080B6EC0:: @ 080B6EC0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B65E8, 0x0000008 +.else .incbin "baserom.gba", 0x0B6EC0, 0x0000008 +.endif gUnk_080B6EC8:: @ 080B6EC8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B65F0, 0x0000008 +.else .incbin "baserom.gba", 0x0B6EC8, 0x0000008 +.endif gUnk_080B6ED0:: @ 080B6ED0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B65F8, 0x0000008 +.else .incbin "baserom.gba", 0x0B6ED0, 0x0000008 +.endif gUnk_080B6ED8:: @ 080B6ED8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6600, 0x0000008 +.else .incbin "baserom.gba", 0x0B6ED8, 0x0000008 +.endif gUnk_080B6EE0:: @ 080B6EE0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6608, 0x0000008 +.else .incbin "baserom.gba", 0x0B6EE0, 0x0000008 +.endif gUnk_080B6EE8:: @ 080B6EE8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6610, 0x0000008 +.else .incbin "baserom.gba", 0x0B6EE8, 0x0000008 +.endif gUnk_080B6EF0:: @ 080B6EF0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6618, 0x0000008 +.else .incbin "baserom.gba", 0x0B6EF0, 0x0000008 +.endif gUnk_080B6EF8:: @ 080B6EF8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6620, 0x0000008 +.else .incbin "baserom.gba", 0x0B6EF8, 0x0000008 +.endif gUnk_080B6F00:: @ 080B6F00 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6628, 0x0000008 +.else .incbin "baserom.gba", 0x0B6F00, 0x0000008 +.endif gUnk_080B6F08:: @ 080B6F08 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6630, 0x0000008 +.else .incbin "baserom.gba", 0x0B6F08, 0x0000008 +.endif gUnk_080B6F10:: @ 080B6F10 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6638, 0x0000008 +.else .incbin "baserom.gba", 0x0B6F10, 0x0000008 +.endif gUnk_080B6F18:: @ 080B6F18 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6640, 0x0000008 +.else .incbin "baserom.gba", 0x0B6F18, 0x0000008 +.endif gUnk_080B6F20:: @ 080B6F20 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6648, 0x0000008 +.else .incbin "baserom.gba", 0x0B6F20, 0x0000008 +.endif gUnk_080B6F28:: @ 080B6F28 .4byte gUnk_080B6EA8 @@ -3340,28 +5765,60 @@ gUnk_080B6F28:: @ 080B6F28 .incbin "baserom.gba", 0x0B6FA4, 0x000000C gUnk_080B6FB0:: @ 080B6FB0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B66D8, 0x0000008 +.else .incbin "baserom.gba", 0x0B6FB0, 0x0000008 +.endif gUnk_080B6FB8:: @ 080B6FB8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B66E0, 0x0000008 +.else .incbin "baserom.gba", 0x0B6FB8, 0x0000008 +.endif gUnk_080B6FC0:: @ 080B6FC0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B66E8, 0x0000008 +.else .incbin "baserom.gba", 0x0B6FC0, 0x0000008 +.endif gUnk_080B6FC8:: @ 080B6FC8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B66F0, 0x0000008 +.else .incbin "baserom.gba", 0x0B6FC8, 0x0000008 +.endif gUnk_080B6FD0:: @ 080B6FD0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B66F8, 0x0000008 +.else .incbin "baserom.gba", 0x0B6FD0, 0x0000008 +.endif gUnk_080B6FD8:: @ 080B6FD8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6700, 0x0000008 +.else .incbin "baserom.gba", 0x0B6FD8, 0x0000008 +.endif gUnk_080B6FE0:: @ 080B6FE0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6708, 0x0000008 +.else .incbin "baserom.gba", 0x0B6FE0, 0x0000008 +.endif gUnk_080B6FE8:: @ 080B6FE8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6710, 0x0000008 +.else .incbin "baserom.gba", 0x0B6FE8, 0x0000008 +.endif gUnk_080B6FF0:: @ 080B6FF0 .4byte gUnk_080B6FB0 @@ -3394,52 +5851,116 @@ gUnk_080B6FF0:: @ 080B6FF0 .incbin "baserom.gba", 0x0B705C, 0x000000C gUnk_080B7068:: @ 080B7068 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6790, 0x0000008 +.else .incbin "baserom.gba", 0x0B7068, 0x0000008 +.endif gUnk_080B7070:: @ 080B7070 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6798, 0x0000008 +.else .incbin "baserom.gba", 0x0B7070, 0x0000008 +.endif gUnk_080B7078:: @ 080B7078 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B67A0, 0x0000008 +.else .incbin "baserom.gba", 0x0B7078, 0x0000008 +.endif gUnk_080B7080:: @ 080B7080 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B67A8, 0x0000008 +.else .incbin "baserom.gba", 0x0B7080, 0x0000008 +.endif gUnk_080B7088:: @ 080B7088 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B67B0, 0x0000008 +.else .incbin "baserom.gba", 0x0B7088, 0x0000008 +.endif gUnk_080B7090:: @ 080B7090 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B67B8, 0x0000008 +.else .incbin "baserom.gba", 0x0B7090, 0x0000008 +.endif gUnk_080B7098:: @ 080B7098 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B67C0, 0x0000008 +.else .incbin "baserom.gba", 0x0B7098, 0x0000008 +.endif gUnk_080B70A0:: @ 080B70A0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B67C8, 0x0000008 +.else .incbin "baserom.gba", 0x0B70A0, 0x0000008 +.endif gUnk_080B70A8:: @ 080B70A8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B67D0, 0x0000008 +.else .incbin "baserom.gba", 0x0B70A8, 0x0000008 +.endif gUnk_080B70B0:: @ 080B70B0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B67D8, 0x0000008 +.else .incbin "baserom.gba", 0x0B70B0, 0x0000008 +.endif gUnk_080B70B8:: @ 080B70B8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B67E0, 0x0000008 +.else .incbin "baserom.gba", 0x0B70B8, 0x0000008 +.endif gUnk_080B70C0:: @ 080B70C0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B67E8, 0x0000008 +.else .incbin "baserom.gba", 0x0B70C0, 0x0000008 +.endif gUnk_080B70C8:: @ 080B70C8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B67F0, 0x0000008 +.else .incbin "baserom.gba", 0x0B70C8, 0x0000008 +.endif gUnk_080B70D0:: @ 080B70D0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B67F8, 0x0000008 +.else .incbin "baserom.gba", 0x0B70D0, 0x0000008 +.endif gUnk_080B70D8:: @ 080B70D8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6800, 0x0000008 +.else .incbin "baserom.gba", 0x0B70D8, 0x0000008 +.endif gUnk_080B70E0:: @ 080B70E0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6808, 0x0000008 +.else .incbin "baserom.gba", 0x0B70E0, 0x0000008 +.endif gUnk_080B70E8:: @ 080B70E8 .4byte gUnk_080B7068 @@ -3476,52 +5997,116 @@ gUnk_080B70E8:: @ 080B70E8 .incbin "baserom.gba", 0x0B7164, 0x000000C gUnk_080B7170:: @ 080B7170 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6898, 0x0000008 +.else .incbin "baserom.gba", 0x0B7170, 0x0000008 +.endif gUnk_080B7178:: @ 080B7178 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B68A0, 0x0000008 +.else .incbin "baserom.gba", 0x0B7178, 0x0000008 +.endif gUnk_080B7180:: @ 080B7180 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B68A8, 0x0000008 +.else .incbin "baserom.gba", 0x0B7180, 0x0000008 +.endif gUnk_080B7188:: @ 080B7188 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B68B0, 0x0000008 +.else .incbin "baserom.gba", 0x0B7188, 0x0000008 +.endif gUnk_080B7190:: @ 080B7190 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B68B8, 0x0000008 +.else .incbin "baserom.gba", 0x0B7190, 0x0000008 +.endif gUnk_080B7198:: @ 080B7198 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B68C0, 0x0000008 +.else .incbin "baserom.gba", 0x0B7198, 0x0000008 +.endif gUnk_080B71A0:: @ 080B71A0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B68C8, 0x0000008 +.else .incbin "baserom.gba", 0x0B71A0, 0x0000008 +.endif gUnk_080B71A8:: @ 080B71A8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B68D0, 0x0000008 +.else .incbin "baserom.gba", 0x0B71A8, 0x0000008 +.endif gUnk_080B71B0:: @ 080B71B0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B68D8, 0x0000008 +.else .incbin "baserom.gba", 0x0B71B0, 0x0000008 +.endif gUnk_080B71B8:: @ 080B71B8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B68E0, 0x0000008 +.else .incbin "baserom.gba", 0x0B71B8, 0x0000008 +.endif gUnk_080B71C0:: @ 080B71C0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B68E8, 0x0000008 +.else .incbin "baserom.gba", 0x0B71C0, 0x0000008 +.endif gUnk_080B71C8:: @ 080B71C8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B68F0, 0x0000008 +.else .incbin "baserom.gba", 0x0B71C8, 0x0000008 +.endif gUnk_080B71D0:: @ 080B71D0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B68F8, 0x0000008 +.else .incbin "baserom.gba", 0x0B71D0, 0x0000008 +.endif gUnk_080B71D8:: @ 080B71D8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6900, 0x0000008 +.else .incbin "baserom.gba", 0x0B71D8, 0x0000008 +.endif gUnk_080B71E0:: @ 080B71E0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6908, 0x0000008 +.else .incbin "baserom.gba", 0x0B71E0, 0x0000008 +.endif gUnk_080B71E8:: @ 080B71E8 +.ifdef EU + .incbin "baserom_eu.gba", 0x0B6910, 0x0000008 +.else .incbin "baserom.gba", 0x0B71E8, 0x0000008 +.endif gUnk_080B71F0:: @ 080B71F0 .4byte gUnk_080B7170 diff --git a/data/data_080B7B74.s b/data/data_080B7B74.s index e6b2417d..32ea1744 100644 --- a/data/data_080B7B74.s +++ b/data/data_080B7B74.s @@ -14,7 +14,11 @@ gUnk_080BA2C0:: @ 080BA2C0 .incbin "baserom.gba", 0x0BA2C0, 0x0000FE0 gUnk_080BB2A0:: @ 080BB2A0 +.ifdef EU + .incbin "baserom_eu.gba", 0x0BA9C8, 0x0001100 @ TODO only small differences +.else .incbin "baserom.gba", 0x0BB2A0, 0x0001100 +.endif gUnk_080BC3A0:: @ 080BC3A0 .incbin "baserom.gba", 0x0BC3A0, 0x000080A @@ -596,12 +600,22 @@ gUnk_080C303F:: @ 080C303F .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0C2DDF, 0x00032A4 +.else +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C2767, 0x00032A4 .else .incbin "baserom.gba", 0x0C303F, 0x00032A4 .endif +.endif gUnk_080C62E3:: @ 080C62E3 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C5A0B, 0x000207D +.else .incbin "baserom.gba", 0x0C62E3, 0x000207D +.endif gUnk_080C8360:: @ 080C8360 .incbin "baserom.gba", 0x0C8360, 0x0000BCC @@ -620,27 +634,82 @@ gUnk_080C8F7C:: @ 080C8F7C gUnk_080C8F8C:: @ 080C8F8C +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C86B4, 0x0000008 +.else .incbin "baserom.gba", 0x0C8F8C, 0x0000008 +.endif .4byte sub_0801CB78 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C86C0, 0x000000C +.else .incbin "baserom.gba", 0x0C8F98, 0x000000C +.endif .4byte sub_0801CB78 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C86D0, 0x000000C +.else .incbin "baserom.gba", 0x0C8FA8, 0x000000C +.endif .4byte sub_0801CB78 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C86E0, 0x000000C +.else .incbin "baserom.gba", 0x0C8FB8, 0x000000C +.endif .4byte sub_0801CCB0 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C86F0, 0x000000C +.else .incbin "baserom.gba", 0x0C8FC8, 0x000000C +.endif .4byte sub_0801CCB0 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C8700, 0x000000C +.else .incbin "baserom.gba", 0x0C8FD8, 0x000000C +.endif .4byte sub_0801CD94 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C8710, 0x000000C +.else .incbin "baserom.gba", 0x0C8FE8, 0x000000C +.endif .4byte sub_0801CE58 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C8720, 0x000000C +.else .incbin "baserom.gba", 0x0C8FF8, 0x000000C +.endif .4byte EzloNag +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C8730, 0x000000C +.else .incbin "baserom.gba", 0x0C9008, 0x000000C +.endif .4byte EzloNag +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C8740, 0x000000C +.else .incbin "baserom.gba", 0x0C9018, 0x000000C +.endif .4byte sub_0801CD94 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C8750, 0x000000C +.else .incbin "baserom.gba", 0x0C9028, 0x000000C +.endif .4byte sub_0801CD94 .incbin "baserom.gba", 0x0C9038, 0x0000004 diff --git a/data/data_080C93E0.s b/data/data_080C93E0.s index c52d6a80..1e84ada0 100644 --- a/data/data_080C93E0.s +++ b/data/data_080C93E0.s @@ -17,13 +17,28 @@ gUnk_080C9488:: @ 080C9488 .4byte gUnk_080C9480 gUnk_080C948C:: @ 080C948C +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C8BB4, 0x0000018 +.else .incbin "baserom.gba", 0x0C948C, 0x0000018 +.endif gUnk_080C94A4:: @ 080C94A4 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C8BCC, 0x0000070 +.else .incbin "baserom.gba", 0x0C94A4, 0x0000070 +.endif gUnk_080C9514:: @ 080C9514 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C8C3C, 0x0000028 +.else .incbin "baserom.gba", 0x0C9514, 0x0000028 +.endif gUnk_080C953C:: @ 080C953C .4byte gUnk_080C948C @@ -31,16 +46,36 @@ gUnk_080C953C:: @ 080C953C .4byte gUnk_080C9514 gUnk_080C9548:: @ 080C9548 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C8C70, 0x0000028 +.else .incbin "baserom.gba", 0x0C9548, 0x0000028 +.endif gUnk_080C9570:: @ 080C9570 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C8C98, 0x0000048 +.else .incbin "baserom.gba", 0x0C9570, 0x0000048 +.endif gUnk_080C95B8:: @ 080C95B8 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C8CE0, 0x0000038 +.else .incbin "baserom.gba", 0x0C95B8, 0x0000038 +.endif gUnk_080C95F0:: @ 080C95F0 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C8D18, 0x0000010 +.else .incbin "baserom.gba", 0x0C95F0, 0x0000010 +.endif gUnk_080C9600:: @ 080C9600 .4byte gUnk_080C9548 @@ -49,13 +84,28 @@ gUnk_080C9600:: @ 080C9600 .4byte gUnk_080C95F0 gUnk_080C9610:: @ 080C9610 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C8D38, 0x0000038 +.else .incbin "baserom.gba", 0x0C9610, 0x0000038 +.endif gUnk_080C9648:: @ 080C9648 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C8D70, 0x0000080 +.else .incbin "baserom.gba", 0x0C9648, 0x0000080 +.endif gUnk_080C96C8:: @ 080C96C8 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C8DF0, 0x0000030 +.else .incbin "baserom.gba", 0x0C96C8, 0x0000030 +.endif gUnk_080C96F8:: @ 080C96F8 .4byte gUnk_080C9610 @@ -63,13 +113,28 @@ gUnk_080C96F8:: @ 080C96F8 .4byte gUnk_080C96C8 gUnk_080C9704:: @ 080C9704 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C8E2C, 0x0000090 +.else .incbin "baserom.gba", 0x0C9704, 0x0000090 +.endif gUnk_080C9794:: @ 080C9794 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C8EBC, 0x00000C0 +.else .incbin "baserom.gba", 0x0C9794, 0x00000C0 +.endif gUnk_080C9854:: @ 080C9854 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C8F7C, 0x0000010 +.else .incbin "baserom.gba", 0x0C9854, 0x0000010 +.endif gUnk_080C9864:: @ 080C9864 .4byte gUnk_080C9704 @@ -77,39 +142,64 @@ gUnk_080C9864:: @ 080C9864 .4byte gUnk_080C9854 gUnk_080C9870:: @ 080C9870 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C8F98, 0x0000078 +.else .ifdef JP .incbin "baserom_jp.gba", 0x0C9610, 0x0000078 .else .incbin "baserom.gba", 0x0C9870, 0x0000078 .endif +.endif gUnk_080C98E8:: @ 080C98E8 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C9010, 0x0000040 +.else .ifdef JP .incbin "baserom_jp.gba", 0x0C9688, 0x0000040 .else .incbin "baserom.gba", 0x0C98E8, 0x0000040 .endif +.endif gUnk_080C9928:: @ 080C9928 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C9050, 0x0000060 +.else .ifdef JP .incbin "baserom_jp.gba", 0x0C96C8, 0x0000060 .else .incbin "baserom.gba", 0x0C9928, 0x0000060 .endif +.endif gUnk_080C9988:: @ 080C9988 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C90B0, 0x0000060 +.else .ifdef JP .incbin "baserom_jp.gba", 0x0C9728, 0x0000060 .else .incbin "baserom.gba", 0x0C9988, 0x0000060 .endif +.endif gUnk_080C99E8:: @ 080C99E8 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C9110, 0x0000048 +.else .ifdef JP .incbin "baserom_jp.gba", 0x0C9788, 0x0000048 .else .incbin "baserom.gba", 0x0C99E8, 0x0000048 .endif +.endif gUnk_080C9A30:: @ 080C9A30 .4byte gUnk_080C9870 @@ -119,39 +209,64 @@ gUnk_080C9A30:: @ 080C9A30 .4byte gUnk_080C99E8 gUnk_080C9A44:: @ 080C9A44 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C916C, 0x0000038 +.else .ifdef JP .incbin "baserom_jp.gba", 0x0C97E4, 0x0000038 .else .incbin "baserom.gba", 0x0C9A44, 0x0000038 .endif +.endif gUnk_080C9A7C:: @ 080C9A7C +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C91A4, 0x00000B0 +.else .ifdef JP .incbin "baserom_jp.gba", 0x0C981C, 0x00000B0 .else .incbin "baserom.gba", 0x0C9A7C, 0x00000B0 .endif +.endif gUnk_080C9B2C:: @ 080C9B2C +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C9254, 0x0000088 +.else .ifdef JP .incbin "baserom_jp.gba", 0x0C98CC, 0x0000088 .else .incbin "baserom.gba", 0x0C9B2C, 0x0000088 .endif +.endif gUnk_080C9BB4:: @ 080C9BB4 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C92DC, 0x0000068 +.else .ifdef JP .incbin "baserom_jp.gba", 0x0C9954, 0x0000068 .else .incbin "baserom.gba", 0x0C9BB4, 0x0000068 .endif +.endif gUnk_080C9C1C:: @ 080C9C1C +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0C9344, 0x0000020 +.else .ifdef JP .incbin "baserom_jp.gba", 0x0C99BC, 0x0000020 .else .incbin "baserom.gba", 0x0C9C1C, 0x0000020 .endif +.endif gUnk_080C9C3C:: @ 080C9C3C .4byte gUnk_080C9A44 @@ -182,12 +297,20 @@ gUnk_080C9CBC:: @ 080C9CBC .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0C9A5C, 0x00003B0 +.else +.ifdef EU + .incbin "baserom_eu.gba", 0x0C93E4, 0x00003B0 .else .incbin "baserom.gba", 0x0C9CBC, 0x00003B0 .endif +.endif gUnk_080CA06C:: @ 080CA06C +.ifdef EU + .incbin "baserom_eu.gba", 0x0C9794, 0x00000B0 +.else .incbin "baserom.gba", 0x0CA06C, 0x00000B0 +.endif gUnk_080CA11C:: @ 080CA11C .incbin "baserom.gba", 0x0CA11C, 0x0000014 diff --git a/data/data_080D5360.s b/data/data_080D5360.s index 40cc38c1..6705401a 100644 --- a/data/data_080D5360.s +++ b/data/data_080D5360.s @@ -244,7 +244,12 @@ gUnk_080D5978:: @ 080D5978 .incbin "baserom.gba", 0x0D5978, 0x00000B0 gUnk_080D5A28:: @ 080D5A28 +.ifdef EU + @ TODO data added in between + .incbin "baserom_eu.gba", 0x0D5154, 0x00000A0 +.else .incbin "baserom.gba", 0x0D5A28, 0x0000070 +.endif gUnk_080D5A98:: @ 080D5A98 .incbin "baserom.gba", 0x0D5A98, 0x0000010 @@ -1891,8 +1896,12 @@ gUnk_080D8FB8:: @ 080D8FB8 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0D8D58, 0x000005C +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0D8D58, 0x000005C .else .incbin "baserom.gba", 0x0D8FB8, 0x000005C +.endif .endif .4byte script_08009698 .incbin "baserom.gba", 0x0D9018, 0x000000C @@ -1900,9 +1909,13 @@ gUnk_080D8FB8:: @ 080D8FB8 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0D8DC8, 0x0000020 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0D8DC8, 0x0000020 .else .incbin "baserom.gba", 0x0D9028, 0x0000020 .endif +.endif gUnk_080D9048:: @ 080D9048 .incbin "baserom.gba", 0x0D9048, 0x0000050 @@ -1930,9 +1943,13 @@ gUnk_080D9128:: @ 080D9128 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0D8EC8, 0x00000C0 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0D8EC8, 0x00000C0 .else .incbin "baserom.gba", 0x0D9128, 0x00000C0 .endif +.endif gUnk_080D91E8:: @ 080D91E8 .incbin "baserom.gba", 0x0D91E8, 0x0000090 @@ -1941,9 +1958,13 @@ gUnk_080D9278:: @ 080D9278 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0D9018, 0x0000018 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0D9018, 0x0000018 .else .incbin "baserom.gba", 0x0D9278, 0x0000018 .endif +.endif Room_RoyalValley_Main:: @ 080D9290 .4byte gUnk_080D8FB8 @@ -1968,9 +1989,13 @@ gUnk_080D9328:: @ 080D9328 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0D90C8, 0x0000010 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0D90C8, 0x0000010 .else .incbin "baserom.gba", 0x0D9328, 0x0000010 .endif +.endif gUnk_080D9338:: @ 080D9338 .incbin "baserom.gba", 0x0D9338, 0x0000008 @@ -2146,8 +2171,14 @@ gUnk_080D9AD8:: @ 080D9AD8 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0D9878, 0x000004C +.else +.ifdef EU + @ TODO only small differences + @ TODO remove the 0x10 bytes at the correct place (not here) + .incbin "baserom_eu.gba", 0x0D9234, 0x000004C .else .incbin "baserom.gba", 0x0D9AD8, 0x000004C +.endif .endif .4byte script_0800B200 .incbin "baserom.gba", 0x0D9B28, 0x000000C @@ -2161,9 +2192,13 @@ gUnk_080D9AD8:: @ 080D9AD8 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0D9908, 0x00000D0 +.else +.ifdef EU + .incbin "baserom_eu.gba", 0x0D92C4, 0x00000C0 .else .incbin "baserom.gba", 0x0D9B68, 0x00000D0 .endif +.endif gUnk_080D9C38:: @ 080D9C38 .incbin "baserom.gba", 0x0D9C38, 0x0000070 @@ -2171,9 +2206,13 @@ gUnk_080D9CA8:: @ 080D9CA8 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0D9A48, 0x0000020 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0D9A48, 0x0000020 .else .incbin "baserom.gba", 0x0D9CA8, 0x0000020 .endif +.endif gUnk_080D9CC8:: @ 080D9CC8 .incbin "baserom.gba", 0x0D9CC8, 0x0000020 @@ -2196,9 +2235,13 @@ gUnk_080D9E58:: @ 080D9E58 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0D9BF8, 0x0000010 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0D9BF8, 0x0000010 .else .incbin "baserom.gba", 0x0D9E58, 0x0000010 .endif +.endif gUnk_080D9E68:: @ 080D9E68 .incbin "baserom.gba", 0x0D9E68, 0x0000040 @@ -2500,9 +2543,13 @@ Room_GardenFountains_East:: @ 080DA514 gUnk_080DA534:: @ 080DA534 .ifdef JP .incbin "baserom_jp.gba", 0x0DA2D4, 0x40 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0DA2D4, 0x40 .else .incbin "baserom.gba", 0x0DA534, 0x0000050 .endif +.endif gUnk_080DA584:: @ 080DA584 .incbin "baserom.gba", 0x0DA584, 0x0000010 @@ -4128,9 +4175,13 @@ gUnk_080DD344:: @ 080DD344 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0DD0D4, 0x0000020 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0DD0D4, 0x0000020 .else .incbin "baserom.gba", 0x0DD344, 0x0000020 .endif +.endif gUnk_080DD364:: @ 080DD364 .incbin "baserom.gba", 0x0DD364, 0x000000C @@ -4160,9 +4211,13 @@ gUnk_080DD40C:: @ 080DD40C .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0DD19C, 0x0000090 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0DD19C, 0x0000090 .else .incbin "baserom.gba", 0x0DD40C, 0x0000090 .endif +.endif gUnk_080DD49C:: @ 080DD49C .incbin "baserom.gba", 0x0DD49C, 0x0000130 @@ -4177,9 +4232,13 @@ gUnk_080DD6CC:: @ 080DD6CC .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0DD45C, 0x0000040 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0DD45C, 0x0000040 .else .incbin "baserom.gba", 0x0DD6CC, 0x0000040 .endif +.endif Room_CloudTops_Middle:: @ 080DD70C .4byte gUnk_080DD40C @@ -4208,17 +4267,25 @@ gUnk_080DD790:: @ 080DD790 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0DD520, 0x0000050 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0DD520, 0x0000050 .else .incbin "baserom.gba", 0x0DD790, 0x0000050 .endif +.endif gUnk_080DD7E0:: @ 080DD7E0 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0DD570, 0x0000040 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0DD570, 0x0000040 .else .incbin "baserom.gba", 0x0DD7E0, 0x0000040 .endif +.endif gUnk_080DD820:: @ 080DD820 .incbin "baserom.gba", 0x0DD820, 0x0000020 @@ -4227,9 +4294,13 @@ gUnk_080DD840:: @ 080DD840 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0DD5D0, 0x0000040 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0DD5D0, 0x0000040 .else .incbin "baserom.gba", 0x0DD840, 0x0000040 .endif +.endif gUnk_080DD880:: @ 080DD880 .incbin "baserom.gba", 0x0DD880, 0x0000020 @@ -4238,11 +4309,24 @@ gUnk_080DD8A0:: @ 080DD8A0 .incbin "baserom.gba", 0x0DD8A0, 0x0000050 gUnk_080DD8F0:: @ 080DD8F0 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0DD02C, 0x00000A8 +.else .incbin "baserom.gba", 0x0DD8F0, 0x00000A8 +.endif + +.ifdef EU + .4byte 0 + .incbin "baserom.gba", 0x0DD98C, 0x000000C + .4byte script_0800D6D0 + .incbin "baserom.gba", 0x0DD99C, 0x000000C +.else .4byte script_0800D6D0 .incbin "baserom.gba", 0x0DD99C, 0x000000C .4byte script_0800D6F0 .incbin "baserom.gba", 0x0DD9AC, 0x000000C +.endif .4byte script_0800D6F0 .incbin "baserom.gba", 0x0DD9BC, 0x000000C .4byte script_0800D6B4 @@ -4311,9 +4395,13 @@ gUnk_080DDC00:: @ 080DDC00 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0DD990, 0x0000020 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0DD990, 0x0000020 .else .incbin "baserom.gba", 0x0DDC00, 0x0000020 .endif +.endif gUnk_080DDC20:: @ 080DDC20 .incbin "baserom.gba", 0x0DDC20, 0x0000030 @@ -4325,9 +4413,13 @@ gUnk_080DDCD0:: @ 080DDCD0 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0DDA60, 0x0000010 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0DDA60, 0x0000010 .else .incbin "baserom.gba", 0x0DDCD0, 0x0000010 .endif +.endif gUnk_080DDCE0:: @ 080DDCE0 .incbin "baserom.gba", 0x0DDCE0, 0x0000010 @@ -4366,9 +4458,13 @@ gUnk_080DDD84:: @ 080DDD84 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0DDB14, 0x0000030 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0DDB14, 0x0000030 .else .incbin "baserom.gba", 0x0DDD84, 0x0000030 .endif +.endif gUnk_080DDDB4:: @ 080DDDB4 .incbin "baserom.gba", 0x0DDDB4, 0x0000040 @@ -4398,9 +4494,13 @@ gUnk_080DDE48:: @ 080DDE48 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0DDBD8, 0x0000040 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0DDBD8, 0x0000040 .else .incbin "baserom.gba", 0x0DDE48, 0x0000040 .endif +.endif gUnk_080DDE88:: @ 080DDE88 .incbin "baserom.gba", 0x0DDE88, 0x0000020 @@ -4462,9 +4562,13 @@ gUnk_080DDFE8:: @ 080DDFE8 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0DDD78, 0x0000018 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0DDD78, 0x0000018 .else .incbin "baserom.gba", 0x0DDFE8, 0x0000018 .endif +.endif gUnk_080DE000:: @ 080DE000 .incbin "baserom.gba", 0x0DE000, 0x0000008 @@ -4484,9 +4588,13 @@ gUnk_080DE0E8:: @ 080DE0E8 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0DDE78, 0x0000030 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0DDE78, 0x0000030 .else .incbin "baserom.gba", 0x0DE0E8, 0x0000030 .endif +.endif gUnk_080DE118:: @ 080DE118 .incbin "baserom.gba", 0x0DE118, 0x0000014 @@ -4506,9 +4614,13 @@ gUnk_080DE150:: @ 080DE150 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0DDEE0, 0x0000090 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0DDEE0, 0x0000090 .else .incbin "baserom.gba", 0x0DE150, 0x0000090 .endif +.endif gUnk_080DE1E0:: @ 080DE1E0 .incbin "baserom.gba", 0x0DE1E0, 0x0000020 @@ -4532,9 +4644,14 @@ gUnk_080DE320:: @ 080DE320 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0DE0B0, 0x0000018 +.else +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0DDA5C, 0x0000018 .else .incbin "baserom.gba", 0x0DE320, 0x0000018 .endif +.endif gUnk_080DE338:: @ 080DE338 .incbin "baserom.gba", 0x0DE338, 0x0000014 @@ -4891,9 +5008,13 @@ Room_DeepwoodShrine_BossKey:: @ 080DF46C gUnk_080DF48C:: @ 080DF48C .ifdef JP .incbin "baserom_jp.gba", 0x0DF21C, 0x00000E0 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0DF21C, 0x00000E0 .else .incbin "baserom.gba", 0x0DF48C, 0x00000F0 .endif +.endif gUnk_080DF57C:: @ 080DF57C .incbin "baserom.gba", 0x0DF57C, 0x0000020 @@ -4958,9 +5079,13 @@ gUnk_080DF72C:: @ 080DF72C gUnk_080DF7FE:: @ 080DF7FE .ifdef JP .incbin "baserom_jp.gba", 0x0DF57E, 0x000002E +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0DF57E, 0x000002E .else .incbin "baserom.gba", 0x0DF7FE, 0x000003E .endif +.endif gUnk_080DF83C:: @ 080DF83C .incbin "baserom.gba", 0x0DF83C, 0x0000020 @@ -6399,9 +6524,13 @@ Room_FortressOfWinds_Stalfos:: @ 080E2D60 gUnk_080E2D84:: @ 080E2D84 .ifdef JP .incbin "baserom_jp.gba", 0x0E2AF4, 0x0000090 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0E2AF4, 0x0000090 .else .incbin "baserom.gba", 0x0E2D84, 0x00000B0 .endif +.endif gUnk_080E2E34:: @ 080E2E34 .incbin "baserom.gba", 0x0E2E34, 0x0000010 @@ -8784,7 +8913,11 @@ gUnk_080E9F20:: @ 080E9F20 .4byte gUnk_080E9F00 gUnk_080E9F4C:: @ 080E9F4C +.ifdef EU + .incbin "baserom_eu.gba", 0x0E9648, 0x0000150 +.else .incbin "baserom.gba", 0x0E9F4C, 0x0000150 +.endif gUnk_080EA09C:: @ 080EA09C .incbin "baserom.gba", 0x0EA09C, 0x0000050 @@ -9037,9 +9170,13 @@ Room_DarkHyruleCastleBridge_Main:: @ 080EAC40 gUnk_080EAC60:: @ 080EAC60 .ifdef JP .incbin "baserom_jp.gba", 0x0EA9B0, 0x0000020 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0EA9B0, 0x0000020 .else .incbin "baserom.gba", 0x0EAC60, 0x0000030 .endif +.endif gUnk_080EAC90:: @ 080EAC90 .incbin "baserom.gba", 0x0EAC90, 0x0000010 @@ -9060,9 +9197,13 @@ Room_VaatisArms_First:: @ 080EACA8 gUnk_080EACC8:: @ 080EACC8 .ifdef JP .incbin "baserom_jp.gba", 0x0EAA08, 0x0000020 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0EAA08, 0x0000020 .else .incbin "baserom.gba", 0x0EACC8, 0x0000030 .endif +.endif gUnk_080EACF8:: @ 080EACF8 .incbin "baserom.gba", 0x0EACF8, 0x0000010 @@ -9131,7 +9272,13 @@ gUnk_080EAE60:: @ 080EAE60 .4byte script_0800E154 .incbin "baserom.gba", 0x0EAE80, 0x000000C .4byte script_0800E200 +.ifdef EU + .incbin "baserom.gba", 0x0EAE90, 0x0000010 + @ TODO 0x10 bytes between here is missing in EU + .incbin "baserom.gba", 0x0EAEB0, 0x0000010 +.else .incbin "baserom.gba", 0x0EAE90, 0x0000030 +.endif gUnk_080EAEC0:: @ 080EAEC0 .incbin "baserom.gba", 0x0EAEC0, 0x000000C @@ -9460,7 +9607,12 @@ gUnk_080EB9E4:: @ 080EB9E4 gUnk_080EB9F4:: @ 080EB9F4 .incbin "baserom.gba", 0x0EB9F4, 0x000000C .4byte script_0800E544 +.ifdef EU + .incbin "baserom.gba", 0x0EBA04, 0x0000050 + .incbin "baserom.gba", 0x0EBA94, 0x0000010 +.else .incbin "baserom.gba", 0x0EBA04, 0x00000A0 +.endif gUnk_080EBAA4:: @ 080EBAA4 .incbin "baserom.gba", 0x0EBAA4, 0x000000C @@ -9475,7 +9627,12 @@ gUnk_080EBAF4:: @ 080EBAF4 .incbin "baserom.gba", 0x0EBB04, 0x0000030 gUnk_080EBB34:: @ 080EBB34 +.ifdef EU + .incbin "baserom.gba", 0x0EBB34, 0x0000010 + .incbin "baserom.gba", 0x0EBB84, 0x0000020 +.else .incbin "baserom.gba", 0x0EBB34, 0x0000070 +.endif gUnk_080EBBA4:: @ 080EBBA4 .incbin "baserom.gba", 0x0EBBA4, 0x0000010 @@ -10624,8 +10781,12 @@ gUnk_080EE80C:: @ 080EE80C .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0EE53C, 0x000006C +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0EE53C, 0x000006C .else .incbin "baserom.gba", 0x0EE80C, 0x000006C +.endif .endif .4byte script_08010AE4 .incbin "baserom.gba", 0x0EE87C, 0x0000010 @@ -10709,9 +10870,13 @@ gUnk_080EEADC:: @ 080EEADC .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0EE80C, 0x0000090 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0EE80C, 0x0000090 .else .incbin "baserom.gba", 0x0EEADC, 0x0000090 .endif +.endif gUnk_080EEB6C:: @ 080EEB6C .incbin "baserom.gba", 0x0EEB6C, 0x0000020 @@ -10739,9 +10904,13 @@ gUnk_080EEC4C:: @ 080EEC4C .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0EE97C, 0x0000070 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0EE97C, 0x0000070 .else .incbin "baserom.gba", 0x0EEC4C, 0x0000070 .endif +.endif gUnk_080EECBC:: @ 080EECBC .incbin "baserom.gba", 0x0EECBC, 0x0000020 @@ -10749,9 +10918,13 @@ gUnk_080EECBC:: @ 080EECBC gUnk_080EECDC:: @ 080EECDC .ifdef JP .incbin "baserom_jp.gba", 0x0EEA0C, 0x0000048 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0EEA0C, 0x0000048 .else .incbin "baserom.gba", 0x0EECDC, 0x0000050 .endif +.endif gUnk_080EED2C:: @ 080EED2C .incbin "baserom.gba", 0x0EED2C, 0x000004E @@ -11449,7 +11622,11 @@ gUnk_080F00D4:: @ 080F00D4 .incbin "baserom.gba", 0x0F00D4, 0x0000010 gUnk_080F00E4:: @ 080F00E4 +.ifdef EU + .incbin "baserom_eu.gba", 0x0EF728, 0x0000010 +.else .incbin "baserom.gba", 0x0F00E4, 0x0000010 +.endif Room_HyruleTownMinishCaves_WestChest:: @ 080F00F4 .4byte gUnk_080F00C4 @@ -11467,7 +11644,12 @@ gUnk_080F0114:: @ 080F0114 .incbin "baserom.gba", 0x0F0114, 0x0000038 gUnk_080F014C:: @ 080F014C +.ifdef EU + .incbin "baserom.gba", 0x0F014C, 0x0000008 + .incbin "baserom.gba", 0x0F0164, 0x0000020 +.else .incbin "baserom.gba", 0x0F014C, 0x0000038 +.endif gUnk_080F0184:: @ 080F0184 .incbin "baserom.gba", 0x0F0184, 0x0000010 @@ -11662,9 +11844,13 @@ gUnk_080F0630:: @ 080F0630 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0F0358, 0x0000020 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0F0358, 0x0000020 .else .incbin "baserom.gba", 0x0F0630, 0x0000020 .endif +.endif gUnk_080F0650:: @ 080F0650 .incbin "baserom.gba", 0x0F0650, 0x000000C @@ -11775,17 +11961,25 @@ gUnk_080F0940:: @ 080F0940 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0F0668, 0x0000060 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0F0668, 0x0000060 .else .incbin "baserom.gba", 0x0F0940, 0x0000060 .endif +.endif gUnk_080F09A0:: @ 080F09A0 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0F06C8, 0x0000060 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0F06C8, 0x0000060 .else .incbin "baserom.gba", 0x0F09A0, 0x0000060 .endif +.endif gUnk_080F0A00:: @ 080F0A00 .incbin "baserom.gba", 0x0F0A00, 0x0000002 @@ -11803,9 +11997,13 @@ gUnk_080F0A11:: @ 080F0A11 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0F0739, 0x000001F +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0F0739, 0x000001F .else .incbin "baserom.gba", 0x0F0A11, 0x000001F .endif +.endif gUnk_080F0A30:: @ 080F0A30 .incbin "baserom.gba", 0x0F0A30, 0x0000020 @@ -12800,8 +12998,12 @@ Room_HouseInteriors2_B:: @ 080F2B78 gUnk_080F2B9C:: @ 080F2B9C .ifdef JP .incbin "baserom_jp.gba", 0x0F28C4, 0x00000BC +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0F28C4, 0x00000BC .else .incbin "baserom.gba", 0x0F2B9C, 0x00000CC +.endif .endif .4byte script_08010120 .incbin "baserom.gba", 0x0F2C6C, 0x0000010 @@ -13280,9 +13482,13 @@ gUnk_080F40BC:: @ 080F40BC .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0F3DD4, 0x0000030 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0F3DD4, 0x0000030 .else .incbin "baserom.gba", 0x0F40BC, 0x0000030 .endif +.endif gUnk_080F40EC:: @ 080F40EC .incbin "baserom.gba", 0x0F40EC, 0x00000A0 @@ -13597,9 +13803,14 @@ gEntities_MinishWoods_0:: @ 080F4D00 .ifdef JP object_item x=0xC8, y=0x134, item=0x63, flag=0x3B, collision=1 object_item x=0x198, y=0x2B4, item=0x63, flag=0x3C, collision=1 +.else +.ifdef EU + object_item x=0xC8, y=0x134, item=0x63, flag=0x3B, collision=1 + object_item x=0x198, y=0x2B4, item=0x63, flag=0x3C, collision=1 .else object_item x=0xC8, y=0x134, item=0x63, flag=0x3C, collision=1 object_item x=0x198, y=0x2B4, item=0x63, flag=0x3D, collision=1 +.endif .endif entity_list_end @@ -13732,18 +13943,30 @@ gRoomTiles_MinishWoods_0:: @ 080F5220 .byte 0x0A, 0x01, 0x37, 0x00, 0x83, 0x0D, 0x1D, 0x00 .byte 0x0A, 0x01, 0x38, 0x00, 0x84, 0x0D, 0x1D, 0x00 .byte 0x0A, 0x01, 0x39, 0x00, 0x85, 0x0D, 0x1D, 0x00 +.else +.ifdef EU + .byte 0x0A, 0x01, 0x35, 0x00, 0x0A, 0x08, 0x1D, 0x00 + .byte 0x0A, 0x01, 0x36, 0x00, 0x0B, 0x08, 0x1D, 0x00 + .byte 0x0A, 0x01, 0x37, 0x00, 0x83, 0x0D, 0x1D, 0x00 + .byte 0x0A, 0x01, 0x38, 0x00, 0x84, 0x0D, 0x1D, 0x00 + .byte 0x0A, 0x01, 0x39, 0x00, 0x85, 0x0D, 0x1D, 0x00 .else .byte 0x0A, 0x01, 0x36, 0x00, 0x0A, 0x08, 0x1D, 0x00 .byte 0x0A, 0x01, 0x37, 0x00, 0x0B, 0x08, 0x1D, 0x00 .byte 0x0A, 0x01, 0x38, 0x00, 0x83, 0x0D, 0x1D, 0x00 .byte 0x0A, 0x01, 0x39, 0x00, 0x84, 0x0D, 0x1D, 0x00 .byte 0x0A, 0x01, 0x3A, 0x00, 0x85, 0x0D, 0x1D, 0x00 +.endif .endif .byte 0x05, 0x00, 0x00, 0x05, 0x6A, 0x01, 0x05, 0x06 .ifdef JP .byte 0x05, 0x00, 0x00, 0x17, 0xDB, 0x03, 0x17, 0x06 +.else +.ifdef EU + .byte 0x05, 0x00, 0x00, 0x17, 0xDB, 0x03, 0x17, 0x06 .else .byte 0x05, 0x00, 0x00, 0x1F, 0xDB, 0x03, 0x1F, 0x06 +.endif .endif .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 @@ -13828,7 +14051,12 @@ Room_SanctuaryEntrance_Main:: @ 080F53C0 .4byte sub_0804ECEC gUnk_080F53E0:: @ 080F53E0 +.ifdef EU + .incbin "baserom.gba", 0x0F53E0, 0x0000010 + .incbin "baserom.gba", 0x0F5400, 0x0000010 +.else .incbin "baserom.gba", 0x0F53E0, 0x0000030 +.endif gUnk_080F5410:: @ 080F5410 .incbin "baserom.gba", 0x0F5410, 0x0000010 @@ -13855,7 +14083,12 @@ gUnk_080F5448:: @ 080F5448 .4byte script_08013FE8 .incbin "baserom.gba", 0x0F5478, 0x000000C .4byte script_08013B18 +.ifdef EU + .incbin "baserom.gba", 0x0F5488, 0x0000040 + .incbin "baserom.gba", 0x0F54D8, 0x0000010 +.else .incbin "baserom.gba", 0x0F5488, 0x0000060 +.endif gUnk_080F54E8:: @ 080F54E8 .incbin "baserom.gba", 0x0F54E8, 0x000000C @@ -13914,9 +14147,13 @@ Room_Sanctuary_Main:: @ 080F5610 .4byte sub_0804ED5C gUnk_080F5630:: @ 080F5630 +.ifdef EU + .incbin "baserom.gba", 0x0F5650, 0x0000010 +.else .incbin "baserom.gba", 0x0F5630, 0x000000C .4byte script_08014274 .incbin "baserom.gba", 0x0F5640, 0x0000020 +.endif gUnk_080F5660:: @ 080F5660 .incbin "baserom.gba", 0x0F5660, 0x000000C @@ -13980,7 +14217,9 @@ gUnk_080F5888:: @ 080F5888 .incbin "baserom.gba", 0x0F5888, 0x0000020 gUnk_080F58A8:: @ 080F58A8 +.ifndef EU .incbin "baserom.gba", 0x0F58A8, 0x0000020 +.endif gUnk_080F58C8:: @ 080F58C8 .incbin "baserom.gba", 0x0F58C8, 0x0000040 @@ -14059,7 +14298,9 @@ gUnk_080F5B0C:: @ 080F5B0C .incbin "baserom.gba", 0x0F5B0C, 0x0000030 gUnk_080F5B3C:: @ 080F5B3C +.ifndef EU .incbin "baserom.gba", 0x0F5B3C, 0x0000020 +.endif gUnk_080F5B5C:: @ 080F5B5C .incbin "baserom.gba", 0x0F5B5C, 0x0000050 @@ -14070,6 +14311,11 @@ gUnk_080F5BAC:: @ 080F5BAC gUnk_080F5BBC:: @ 080F5BBC .incbin "baserom.gba", 0x0F5BBC, 0x0000008 +.ifdef EU +gUnk_080F5168:: + .incbin "baserom_eu.gba", 0x0F5168, 0x0000014 +.endif + gUnk_080F5BC4:: @ 080F5BC4 .incbin "baserom.gba", 0x0F5BC4, 0x0000010 @@ -14087,6 +14333,9 @@ Room_HouseInteriors3_RemShoeShop:: @ 080F5BE8 .4byte sub_0804EFBC .4byte gUnk_080F5BC4 .4byte gUnk_080F5BD4 +.ifdef EU + .4byte gUnk_080F5168 +.endif gUnk_080F5C10:: @ 080F5C10 .incbin "baserom.gba", 0x0F5C10, 0x000000C @@ -14657,12 +14906,21 @@ gUnk_080F6F2C:: @ 080F6F2C .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0F6C44, 0x0000050 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0F6C44, 0x0000050 .else .incbin "baserom.gba", 0x0F6F2C, 0x0000050 .endif +.endif gUnk_080F6F7C:: @ 080F6F7C +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0F6538, 0x0000040 +.else .incbin "baserom.gba", 0x0F6F7C, 0x0000040 +.endif gUnk_080F6FBC:: @ 080F6FBC .incbin "baserom.gba", 0x0F6FBC, 0x0000010 @@ -14709,9 +14967,13 @@ gUnk_080F70F8:: @ 080F70F8 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0F6E10, 0x0000060 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0F6E10, 0x0000060 .else .incbin "baserom.gba", 0x0F70F8, 0x0000060 .endif +.endif gUnk_080F7158:: @ 080F7158 .incbin "baserom.gba", 0x0F7158, 0x00000C0 @@ -14720,9 +14982,13 @@ gUnk_080F7218:: @ 080F7218 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0F6F30, 0x0000088 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0F6F30, 0x0000088 .else .incbin "baserom.gba", 0x0F7218, 0x0000088 .endif +.endif gUnk_080F72A0:: @ 080F72A0 .incbin "baserom.gba", 0x0F72A0, 0x0000010 @@ -14755,9 +15021,13 @@ gUnk_080F738C:: @ 080F738C .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0F70A4, 0x0000020 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0F70A4, 0x0000020 .else .incbin "baserom.gba", 0x0F738C, 0x0000020 .endif +.endif Room_HyruleField_FromMinishWoods:: @ 080F73AC .4byte gUnk_080F72EC @@ -14776,9 +15046,13 @@ gUnk_080F73DC:: @ 080F73DC .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0F70F4, 0x0000040 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0F70F4, 0x0000040 .else .incbin "baserom.gba", 0x0F73DC, 0x0000040 .endif +.endif gUnk_080F741C:: @ 080F741C .incbin "baserom.gba", 0x0F741C, 0x0000070 @@ -14787,9 +15061,13 @@ gUnk_080F748C:: @ 080F748C .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0F71A4, 0x0000018 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0F71A4, 0x0000018 .else .incbin "baserom.gba", 0x0F748C, 0x0000018 .endif +.endif gUnk_080F74A4:: @ 080F74A4 .incbin "baserom.gba", 0x0F74A4, 0x0000010 @@ -14851,9 +15129,13 @@ gUnk_080F76C0:: @ 080F76C0 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0F73D8, 0x0000038 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0F73D8, 0x0000038 .else .incbin "baserom.gba", 0x0F76C0, 0x0000038 .endif +.endif Room_HyruleField_Farmers:: @ 080F76F8 .4byte gUnk_080F74F0 @@ -14871,9 +15153,13 @@ gUnk_080F7720:: @ 080F7720 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0F7438, 0x0000050 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0F7438, 0x0000050 .else .incbin "baserom.gba", 0x0F7720, 0x0000050 .endif +.endif gUnk_080F7770:: @ 080F7770 .incbin "baserom.gba", 0x0F7770, 0x0000050 @@ -14909,7 +15195,12 @@ gUnk_080F7880:: @ 080F7880 .incbin "baserom.gba", 0x0F788C, 0x0000014 gUnk_080F78A0:: @ 080F78A0 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0F6E5C, 0x0000020 +.else .incbin "baserom.gba", 0x0F78A0, 0x0000020 +.endif gUnk_080F78C0:: @ 080F78C0 .incbin "baserom.gba", 0x0F78C0, 0x0000008 @@ -14920,12 +15211,21 @@ gUnk_080F78E0:: @ 080F78E0 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0F75F8, 0x00000F0 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0F75F8, 0x00000F0 .else .incbin "baserom.gba", 0x0F78E0, 0x00000F0 .endif +.endif gUnk_080F79D0:: @ 080F79D0 +.ifdef EU + .incbin "baserom.gba", 0x0F79D0, 0x0000030 + .incbin "baserom.gba", 0x0F7A10, 0x0000010 +.else .incbin "baserom.gba", 0x0F79D0, 0x0000050 +.endif gUnk_080F7A20:: @ 080F7A20 .incbin "baserom.gba", 0x0F7A20, 0x0000008 @@ -14939,9 +15239,13 @@ gUnk_080F7AF4:: @ 080F7AF4 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0F780C, 0x0000048 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0F780C, 0x0000048 .else .incbin "baserom.gba", 0x0F7AF4, 0x0000048 .endif +.endif gUnk_080F7B3C:: @ 080F7B3C .incbin "baserom.gba", 0x0F7B3C, 0x0000018 @@ -14986,9 +15290,13 @@ ManagerData_HyruleField_OutsideCastle:: @ 080F7C00 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0F7918, 0x0000080 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0F7918, 0x0000080 .else .incbin "baserom.gba", 0x0F7C00, 0x0000080 .endif +.endif gUnk_080F7C80:: @ 080F7C80 .incbin "baserom.gba", 0x0F7C80, 0x000000C @@ -15046,9 +15354,13 @@ TileData_HyruleField_OutsideCastle:: @ 080F7F10 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0F7C28, 0x0000070 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0F7C28, 0x0000070 .else .incbin "baserom.gba", 0x0F7F10, 0x0000070 .endif +.endif gUnk_080F7F80:: @ 080F7F80 .incbin "baserom.gba", 0x0F7F80, 0x0000018 @@ -15094,9 +15406,13 @@ ManagerData_HyruleField_OutsideCastleWest:: @ 080F808C .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0F7DA4, 0x0000060 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0F7DA4, 0x0000060 .else .incbin "baserom.gba", 0x0F808C, 0x0000060 .endif +.endif EnemyData_HyruleField_OutsideCastleWest:: @ 080F80EC .incbin "baserom.gba", 0x0F80EC, 0x00000B0 @@ -15105,9 +15421,13 @@ TileData_HyruleField_OutsideCastleWest:: @ 080F819C .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0F7EB4, 0x0000028 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0F7EB4, 0x0000028 .else .incbin "baserom.gba", 0x0F819C, 0x0000028 .endif +.endif gUnk_080F81C4:: @ 080F81C4 .incbin "baserom.gba", 0x0F81C4, 0x0000010 @@ -15130,9 +15450,13 @@ Room_HyruleField_OutsideCastleWest:: @ 080F81E8 EntityData_HyruleField_TrilbyHighlands:: @ 080F8210 .ifdef JP .incbin "baserom_jp.gba", 0x0F7F28, 0x00000B0 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0F7F28, 0x00000B0 .else .incbin "baserom.gba", 0x0F8210, 0x00000D0 .endif +.endif gUnk_080F82E0:: @ 080F82E0 .incbin "baserom.gba", 0x0F82E0, 0x000000C @@ -15149,9 +15473,13 @@ TileData_HyruleField_TrilbyHighlands:: @ 080F83E0 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0F80D8, 0x0000020 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0F80D8, 0x0000020 .else .incbin "baserom.gba", 0x0F83E0, 0x0000020 .endif +.endif Room_HyruleField_TrilbyHighlands:: @ 080F8400 .4byte EntityData_HyruleField_TrilbyHighlands @@ -15175,7 +15503,12 @@ gUnk_080F8450:: @ 080F8450 .incbin "baserom.gba", 0x0F8450, 0x0000030 gUnk_080F8480:: @ 080F8480 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0F7A0C, 0x0000030 +.else .incbin "baserom.gba", 0x0F8480, 0x0000030 +.endif gUnk_080F84B0:: @ 080F84B0 .incbin "baserom.gba", 0x0F84B0, 0x0000018 @@ -15507,9 +15840,13 @@ Room_Caves_LonLonRanchWallet:: @ 080F8CD4 gUnk_080F8CF4:: @ 080F8CF4 .ifdef JP .incbin "baserom_jp.gba", 0x0F89EC, 0x0000100 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0F89EC, 0x0000100 .else .incbin "baserom.gba", 0x0F8CF4, 0x0000110 .endif +.endif gUnk_080F8E04:: @ 080F8E04 .incbin "baserom.gba", 0x0F8E04, 0x0000010 @@ -15530,9 +15867,13 @@ Room_Caves_RupeeLinksHouse:: @ 080F8E1C gUnk_080F8E3C:: @ 080F8E3C .ifdef JP .incbin "baserom_jp.gba", 0x0F8B24, 0x0000100 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0F8B24, 0x0000100 .else .incbin "baserom.gba", 0x0F8E3C, 0x0000110 .endif +.endif gUnk_080F8F4C:: @ 080F8F4C .incbin "baserom.gba", 0x0F8F4C, 0x0000010 @@ -15553,9 +15894,13 @@ Room_Caves_RupeeTrilbyHighlands:: @ 080F8F64 gUnk_080F8F84:: @ 080F8F84 .ifdef JP .incbin "baserom_jp.gba", 0x0F8C5C, 0x0000050 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0F8C5C, 0x0000050 .else .incbin "baserom.gba", 0x0F8F84, 0x0000060 .endif +.endif gUnk_080F8FE4:: @ 080F8FE4 .incbin "baserom.gba", 0x0F8FE4, 0x0000010 @@ -15633,9 +15978,13 @@ Room_Caves_HeartPieceHallway:: @ 080F9154 gUnk_080F9174:: @ 080F9174 .ifdef JP .incbin "baserom_jp.gba", 0x0F8E3C, 0x0000040 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0F8E3C, 0x0000040 .else .incbin "baserom.gba", 0x0F9174, 0x0000050 .endif +.endif gUnk_080F91C4:: @ 080F91C4 .incbin "baserom.gba", 0x0F91C4, 0x0000010 @@ -15676,9 +16025,13 @@ gUnk_080F9264:: @ 080F9264 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0F8F1C, 0x00000A0 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0F8F1C, 0x00000A0 .else .incbin "baserom.gba", 0x0F9264, 0x00000A0 .endif +.endif gUnk_080F9304:: @ 080F9304 .incbin "baserom.gba", 0x0F9304, 0x000000C @@ -15706,9 +16059,13 @@ gUnk_080F9474:: @ 080F9474 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0F912C, 0x0000010 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0F912C, 0x0000010 .else .incbin "baserom.gba", 0x0F9474, 0x0000010 .endif +.endif gUnk_080F9484:: @ 080F9484 .incbin "baserom.gba", 0x0F9484, 0x0000010 @@ -15933,8 +16290,12 @@ gUnk_080F9BF8:: @ 080F9BF8 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0F98B0, 0x000002C +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0F98B0, 0x000002C .else .incbin "baserom.gba", 0x0F9BF8, 0x000002C +.endif .endif .4byte script_08009320 .incbin "baserom.gba", 0x0F9C28, 0x0000010 @@ -16701,17 +17062,25 @@ gUnk_080FAC28:: @ 080FAC28 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0FA8E0, 0x0000060 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0FA8E0, 0x0000060 .else .incbin "baserom.gba", 0x0FAC28, 0x0000060 .endif +.endif gUnk_080FAC88:: @ 080FAC88 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0FA940, 0x0000030 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0FA940, 0x0000030 .else .incbin "baserom.gba", 0x0FAC88, 0x0000030 .endif +.endif gUnk_080FACB8:: @ 080FACB8 .incbin "baserom.gba", 0x0FACB8, 0x0000090 @@ -16771,9 +17140,13 @@ gUnk_080FAF9C:: @ 080FAF9C .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0FAC54, 0x0000018 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0FAC54, 0x0000018 .else .incbin "baserom.gba", 0x0FAF9C, 0x0000018 .endif +.endif Room_MtCrenel_WallClimb:: @ 080FAFB4 .4byte gUnk_080FAE9C @@ -16808,9 +17181,13 @@ gUnk_080FB1F4:: @ 080FB1F4 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0FAEAC, 0x0000020 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0FAEAC, 0x0000020 .else .incbin "baserom.gba", 0x0FB1F4, 0x0000020 .endif +.endif gUnk_080FB214:: @ 080FB214 .incbin "baserom.gba", 0x0FB214, 0x0000020 @@ -16848,9 +17225,13 @@ gUnk_080FB410:: @ 080FB410 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0FB0C8, 0x0000050 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0FB0C8, 0x0000050 .else .incbin "baserom.gba", 0x0FB410, 0x0000050 .endif +.endif Room_MtCrenel_GustJarShortcut:: @ 080FB460 .4byte gUnk_080FB2A0 @@ -16866,9 +17247,13 @@ gUnk_080FB480:: @ 080FB480 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0FB138, 0x0000150 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0FB138, 0x0000150 .else .incbin "baserom.gba", 0x0FB480, 0x0000150 .endif +.endif gUnk_080FB5D0:: @ 080FB5D0 .incbin "baserom.gba", 0x0FB5D0, 0x0000030 @@ -16879,9 +17264,13 @@ gUnk_080FB600:: @ 080FB600 gUnk_080FB700:: @ 080FB700 .ifdef JP .incbin "baserom_jp.gba", 0x0FB3B8, 0x0000040 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0FB3B8, 0x0000040 .else .incbin "baserom.gba", 0x0FB700, 0x0000048 .endif +.endif gUnk_080FB748:: @ 080FB748 .incbin "baserom.gba", 0x0FB748, 0x0000020 @@ -17292,9 +17681,14 @@ gUnk_080FC3E4:: @ 080FC3E4 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0FC094, 0x0000460 +.else +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FB928, 0x0000460 .else .incbin "baserom.gba", 0x0FC3E4, 0x0000460 .endif +.endif gUnk_080FC844:: @ 080FC844 .incbin "baserom.gba", 0x0FC844, 0x0000018 diff --git a/data/data_080FC8A4.s b/data/data_080FC8A4.s index 0d065fc0..dd037a92 100644 --- a/data/data_080FC8A4.s +++ b/data/data_080FC8A4.s @@ -129,9 +129,13 @@ gUnk_080FCB62:: @ 080FCB62 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0FC812, 0x0000032 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0FC812, 0x0000032 .else .incbin "baserom.gba", 0x0FCB62, 0x0000032 .endif +.endif gUnk_080FCB94:: @ 080FCB94 .incbin "baserom.gba", 0x0FCB94, 0x0000020 @@ -779,7 +783,12 @@ gUnk_080FD5B4:: @ 080FD5B4 .incbin "baserom.gba", 0x0FD5B4, 0x00003B0 gUnk_080FD964:: @ 080FD964 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FCEA8, 0x00003B0 +.else .incbin "baserom.gba", 0x0FD964, 0x00003B0 +.endif gUnk_080FDD14:: @ 080FDD14 .incbin "baserom.gba", 0x0FDD14, 0x0000005 @@ -1218,17 +1227,25 @@ gUnk_080FE320:: @ 080FE320 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0FDFD0, 0x00002F0 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0FDFD0, 0x00002F0 .else .incbin "baserom.gba", 0x0FE320, 0x00002F0 .endif +.endif gUnk_080FE610:: @ 080FE610 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0FE2C0, 0x00004B8 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0FE2C0, 0x00004B8 .else .incbin "baserom.gba", 0x0FE610, 0x00004B8 .endif +.endif gUnk_080FEAC8:: @ 080FEAC8 .incbin "baserom.gba", 0x0FEAC8, 0x0000003 @@ -1240,17 +1257,25 @@ gUnk_080FEAEE:: @ 080FEAEE .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0FE79E, 0x000002C +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0FE79E, 0x000002C .else .incbin "baserom.gba", 0x0FEAEE, 0x000002C .endif +.endif gUnk_080FEB1A:: @ 080FEB1A .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0FE7CA, 0x00000C2 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0FE7CA, 0x00000C2 .else .incbin "baserom.gba", 0x0FEB1A, 0x00000C2 .endif +.endif gUnk_080FEBDC:: @ 080FEBDC .incbin "baserom.gba", 0x0FEBDC, 0x000000C @@ -1303,9 +1328,13 @@ gUnk_080FEE58:: @ 080FEE58 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0FEB08, 0x0000020 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0FEB08, 0x0000020 .else .incbin "baserom.gba", 0x0FEE58, 0x0000020 .endif +.endif gUnk_080FEE78:: @ 080FEE78 .incbin "baserom.gba", 0x0FEE78, 0x0000030 diff --git a/data/data_080FEEB8.s b/data/data_080FEEB8.s index 7b5b2f24..90c8e8b4 100644 --- a/data/data_080FEEB8.s +++ b/data/data_080FEEB8.s @@ -38,9 +38,13 @@ gUnk_080FEF48:: @ 080FEF48 .4byte script_0800BC50 .ifdef JP .incbin "baserom_jp.gba", 0x0FEC08, 0x0000020 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x0FEC08, 0x0000020 .else .incbin "baserom.gba", 0x0FEF58, 0x0000020 .endif +.endif gUnk_080FEF78:: @ 080FEF78 .incbin "baserom.gba", 0x0FEF78, 0x000000C @@ -276,34 +280,84 @@ gUnk_080FF420:: @ 080FF420 .4byte nullsub_493 gUnk_080FF428:: @ 080FF428 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FE96C, 0x0000008 +.else .incbin "baserom.gba", 0x0FF428, 0x0000008 +.endif gUnk_080FF430:: @ 080FF430 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FE974, 0x0000008 +.else .incbin "baserom.gba", 0x0FF430, 0x0000008 +.endif gUnk_080FF438:: @ 080FF438 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FE97C, 0x000000C +.else .incbin "baserom.gba", 0x0FF438, 0x000000C +.endif gUnk_080FF444:: @ 080FF444 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FE988, 0x000000C +.else .incbin "baserom.gba", 0x0FF444, 0x000000C +.endif gUnk_080FF450:: @ 080FF450 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FE994, 0x0000004 +.else .incbin "baserom.gba", 0x0FF450, 0x0000004 +.endif gUnk_080FF454:: @ 080FF454 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FE998, 0x0000004 +.else .incbin "baserom.gba", 0x0FF454, 0x0000004 +.endif gUnk_080FF458:: @ 080FF458 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FE99C, 0x0000004 +.else .incbin "baserom.gba", 0x0FF458, 0x0000004 +.endif gUnk_080FF45C:: @ 080FF45C +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FE9A0, 0x0000004 +.else .incbin "baserom.gba", 0x0FF45C, 0x0000004 +.endif gUnk_080FF460:: @ 080FF460 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FE9A4, 0x0000014 +.else .incbin "baserom.gba", 0x0FF460, 0x0000014 +.endif gUnk_080FF474:: @ 080FF474 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FE9B8, 0x0000010 +.else .incbin "baserom.gba", 0x0FF474, 0x0000010 +.endif gUnk_080FF484:: @ 080FF484 .incbin "baserom.gba", 0x0FF484, 0x0000004 @@ -771,130 +825,328 @@ gUnk_080FF6F0:: @ 080FF6F0 .incbin "baserom.gba", 0x0FF6F0, 0x0000004 gUnk_080FF6F4:: @ 080FF6F4 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FEC38, 0x0000004 +.else .incbin "baserom.gba", 0x0FF6F4, 0x0000004 +.endif gUnk_080FF6F8:: @ 080FF6F8 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FEC3C, 0x0000004 +.else .incbin "baserom.gba", 0x0FF6F8, 0x0000004 +.endif gUnk_080FF6FC:: @ 080FF6FC +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FEC40, 0x0000004 +.else .incbin "baserom.gba", 0x0FF6FC, 0x0000004 +.endif gUnk_080FF700:: @ 080FF700 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FEC44, 0x0000004 +.else .incbin "baserom.gba", 0x0FF700, 0x0000004 +.endif gUnk_080FF704:: @ 080FF704 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FEC48, 0x0000004 +.else .incbin "baserom.gba", 0x0FF704, 0x0000004 +.endif gUnk_080FF708:: @ 080FF708 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FEC4C, 0x0000004 +.else .incbin "baserom.gba", 0x0FF708, 0x0000004 +.endif gUnk_080FF70C:: @ 080FF70C +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FEC50, 0x0000004 +.else .incbin "baserom.gba", 0x0FF70C, 0x0000004 +.endif gUnk_080FF710:: @ 080FF710 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FEC54, 0x0000004 +.else .incbin "baserom.gba", 0x0FF710, 0x0000004 +.endif gUnk_080FF714:: @ 080FF714 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FEC58, 0x0000004 +.else .incbin "baserom.gba", 0x0FF714, 0x0000004 +.endif gUnk_080FF718:: @ 080FF718 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FEC5C, 0x0000004 +.else .incbin "baserom.gba", 0x0FF718, 0x0000004 +.endif gUnk_080FF71C:: @ 080FF71C +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FEC60, 0x0000004 +.else .incbin "baserom.gba", 0x0FF71C, 0x0000004 +.endif gUnk_080FF720:: @ 080FF720 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FEC64, 0x0000004 +.else .incbin "baserom.gba", 0x0FF720, 0x0000004 +.endif gUnk_080FF724:: @ 080FF724 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FEC68, 0x0000004 +.else .incbin "baserom.gba", 0x0FF724, 0x0000004 +.endif gUnk_080FF728:: @ 080FF728 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FEC6C, 0x0000004 +.else .incbin "baserom.gba", 0x0FF728, 0x0000004 +.endif gUnk_080FF72C:: @ 080FF72C +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FEC70, 0x0000004 +.else .incbin "baserom.gba", 0x0FF72C, 0x0000004 +.endif + gUnk_080FF730:: @ 080FF730 .incbin "baserom.gba", 0x0FF730, 0x000000C gUnk_080FF73C:: @ 080FF73C +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FEC80, 0x0000008 +.else .incbin "baserom.gba", 0x0FF73C, 0x0000008 +.endif gUnk_080FF744:: @ 080FF744 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FEC88, 0x000000C +.else .incbin "baserom.gba", 0x0FF744, 0x000000C +.endif gUnk_080FF750:: @ 080FF750 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FEC94, 0x000000C +.else .incbin "baserom.gba", 0x0FF750, 0x000000C +.endif gUnk_080FF75C:: @ 080FF75C +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FECA0, 0x0000014 +.else .incbin "baserom.gba", 0x0FF75C, 0x0000014 +.endif gUnk_080FF770:: @ 080FF770 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FECB4, 0x0000008 +.else .incbin "baserom.gba", 0x0FF770, 0x0000008 +.endif gUnk_080FF778:: @ 080FF778 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FECBC, 0x0000008 +.else .incbin "baserom.gba", 0x0FF778, 0x0000008 +.endif gUnk_080FF780:: @ 080FF780 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FECC4, 0x0000008 +.else .incbin "baserom.gba", 0x0FF780, 0x0000008 +.endif gUnk_080FF788:: @ 080FF788 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FECCC, 0x0000008 +.else .incbin "baserom.gba", 0x0FF788, 0x0000008 +.endif gUnk_080FF790:: @ 080FF790 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FECD4, 0x0000008 +.else .incbin "baserom.gba", 0x0FF790, 0x0000008 +.endif gUnk_080FF798:: @ 080FF798 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FECDC, 0x0000008 +.else .incbin "baserom.gba", 0x0FF798, 0x0000008 +.endif gUnk_080FF7A0:: @ 080FF7A0 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FECE4, 0x0000008 +.else .incbin "baserom.gba", 0x0FF7A0, 0x0000008 +.endif gUnk_080FF7A8:: @ 080FF7A8 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FECEC, 0x0000008 +.else .incbin "baserom.gba", 0x0FF7A8, 0x0000008 +.endif gUnk_080FF7B0:: @ 080FF7B0 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FECF4, 0x0000008 +.else .incbin "baserom.gba", 0x0FF7B0, 0x0000008 +.endif gUnk_080FF7B8:: @ 080FF7B8 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FECFC, 0x0000008 +.else .incbin "baserom.gba", 0x0FF7B8, 0x0000008 +.endif gUnk_080FF7C0:: @ 080FF7C0 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FED04, 0x0000008 +.else .incbin "baserom.gba", 0x0FF7C0, 0x0000008 +.endif gUnk_080FF7C8:: @ 080FF7C8 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FED0C, 0x0000008 +.else .incbin "baserom.gba", 0x0FF7C8, 0x0000008 +.endif gUnk_080FF7D0:: @ 080FF7D0 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FED14, 0x0000008 +.else .incbin "baserom.gba", 0x0FF7D0, 0x0000008 +.endif gUnk_080FF7D8:: @ 080FF7D8 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FED1C, 0x0000008 +.else .incbin "baserom.gba", 0x0FF7D8, 0x0000008 +.endif gUnk_080FF7E0:: @ 080FF7E0 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FED24, 0x0000008 +.else .incbin "baserom.gba", 0x0FF7E0, 0x0000008 +.endif gUnk_080FF7E8:: @ 080FF7E8 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FED2C, 0x0000008 +.else .incbin "baserom.gba", 0x0FF7E8, 0x0000008 +.endif gUnk_080FF7F0:: @ 080FF7F0 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FED34, 0x0000008 +.else .incbin "baserom.gba", 0x0FF7F0, 0x0000008 +.endif gUnk_080FF7F8:: @ 080FF7F8 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FED3C, 0x0000010 +.else .incbin "baserom.gba", 0x0FF7F8, 0x0000010 +.endif gUnk_080FF808:: @ 080FF808 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FED4C, 0x000000C +.else .incbin "baserom.gba", 0x0FF808, 0x000000C +.endif gUnk_080FF814:: @ 080FF814 .incbin "baserom.gba", 0x0FF814, 0x0000028 gUnk_080FF83C:: @ 080FF83C +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x0FED80, 0x0000008 +.else .incbin "baserom.gba", 0x0FF83C, 0x0000008 +.endif gUnk_080FF844:: @ 080FF844 +.ifndef EU .incbin "baserom.gba", 0x0FF844, 0x000000C +.endif gPaletteGroups:: @ 080FF850 .4byte 00000000 @@ -1104,32 +1356,589 @@ gPaletteGroups:: @ 080FF850 .4byte gUnk_080FF808 .4byte gUnk_080FF814 .4byte gUnk_080FF83C +.ifndef EU .4byte gUnk_080FF844 +.endif + + + + +@ TODO EU seems to be a lot different + +.ifdef EU + +gUnk_EU_080FF0C4:: @ 080FF0C4 + .incbin "baserom_eu.gba", 0x0FF0C4, 0x0000018 + +gUnk_EU_080FF0DC:: @ 080FF0DC + .incbin "baserom_eu.gba", 0x0FF0DC, 0x0000048 + +gUnk_EU_080FF124:: @ 080FF124 + .incbin "baserom_eu.gba", 0x0FF124, 0x0000054 + +gUnk_EU_080FF178:: @ 080FF178 + .incbin "baserom_eu.gba", 0x0FF178, 0x0000024 + +gUnk_EU_080FF19C:: @ 080FF19C + .incbin "baserom_eu.gba", 0x0FF19C, 0x0000030 + +gUnk_EU_080FF1CC:: @ 080FF1CC + .incbin "baserom_eu.gba", 0x0FF1CC, 0x0000048 + +gUnk_EU_080FF214:: @ 080FF214 + .incbin "baserom_eu.gba", 0x0FF214, 0x000000C + +gUnk_EU_080FF220:: @ 080FF220 + .incbin "baserom_eu.gba", 0x0FF220, 0x000000C + +gUnk_EU_080FF22C:: @ 080FF22C + .incbin "baserom_eu.gba", 0x0FF22C, 0x0000018 + +gUnk_EU_080FF244:: @ 080FF244 + .incbin "baserom_eu.gba", 0x0FF244, 0x0000018 + +gUnk_EU_080FF25C:: @ 080FF25C + .incbin "baserom_eu.gba", 0x0FF25C, 0x000000C + +gUnk_EU_080FF268:: @ 080FF268 + .incbin "baserom_eu.gba", 0x0FF268, 0x0000048 + +gUnk_EU_080FF2B0:: @ 080FF2B0 + .incbin "baserom_eu.gba", 0x0FF2B0, 0x0000018 + +gUnk_EU_080FF2C8:: @ 080FF2C8 + .incbin "baserom_eu.gba", 0x0FF2C8, 0x0000018 + +gUnk_EU_080FF2E0:: @ 080FF2E0 + .incbin "baserom_eu.gba", 0x0FF2E0, 0x000000C + +gUnk_EU_080FF2EC:: @ 080FF2EC + .incbin "baserom_eu.gba", 0x0FF2EC, 0x0000018 + +gUnk_EU_080FF304:: @ 080FF304 + .incbin "baserom_eu.gba", 0x0FF304, 0x000000C + +gUnk_EU_080FF310:: @ 080FF310 + .incbin "baserom_eu.gba", 0x0FF310, 0x000000C + +gUnk_EU_080FF31C:: @ 080FF31C + .incbin "baserom_eu.gba", 0x0FF31C, 0x000000C + +gUnk_EU_080FF328:: @ 080FF328 + .incbin "baserom_eu.gba", 0x0FF328, 0x000000C + +gUnk_EU_080FF334:: @ 080FF334 + .incbin "baserom_eu.gba", 0x0FF334, 0x000000C + +gUnk_EU_080FF340:: @ 080FF340 + .incbin "baserom_eu.gba", 0x0FF340, 0x000000C + +gUnk_EU_080FF34C:: @ 080FF34C + .incbin "baserom_eu.gba", 0x0FF34C, 0x000000C + +gUnk_EU_080FF358:: @ 080FF358 + .incbin "baserom_eu.gba", 0x0FF358, 0x0000018 + +gUnk_EU_080FF370:: @ 080FF370 + .incbin "baserom_eu.gba", 0x0FF370, 0x0000018 + +gUnk_EU_080FF388:: @ 080FF388 + .incbin "baserom_eu.gba", 0x0FF388, 0x000000C + +gUnk_EU_080FF394:: @ 080FF394 + .incbin "baserom_eu.gba", 0x0FF394, 0x0000018 + +gUnk_EU_080FF3AC:: @ 080FF3AC + .incbin "baserom_eu.gba", 0x0FF3AC, 0x0000018 + +gUnk_EU_080FF3C4:: @ 080FF3C4 + .incbin "baserom_eu.gba", 0x0FF3C4, 0x0000018 + +gUnk_EU_080FF3DC:: @ 080FF3DC + .incbin "baserom_eu.gba", 0x0FF3DC, 0x0000018 + +gUnk_EU_080FF3F4:: @ 080FF3F4 + .incbin "baserom_eu.gba", 0x0FF3F4, 0x000003C + +gUnk_EU_080FF430:: @ 080FF430 + .incbin "baserom_eu.gba", 0x0FF430, 0x000003C + +gUnk_EU_080FF46C:: @ 080FF46C + .incbin "baserom_eu.gba", 0x0FF46C, 0x000003C + +gUnk_EU_080FF4A8:: @ 080FF4A8 + .incbin "baserom_eu.gba", 0x0FF4A8, 0x000003C + +gUnk_EU_080FF4E4:: @ 080FF4E4 + .incbin "baserom_eu.gba", 0x0FF4E4, 0x000003C + +gUnk_EU_080FF520:: @ 080FF520 + .incbin "baserom_eu.gba", 0x0FF520, 0x000003C + +gUnk_EU_080FF55C:: @ 080FF55C + .incbin "baserom_eu.gba", 0x0FF55C, 0x0000030 + +gUnk_EU_080FF58C:: @ 080FF58C + .incbin "baserom_eu.gba", 0x0FF58C, 0x0000018 + +gUnk_EU_080FF5A4:: @ 080FF5A4 + .incbin "baserom_eu.gba", 0x0FF5A4, 0x000000C + +gUnk_EU_080FF5B0:: @ 080FF5B0 + .incbin "baserom_eu.gba", 0x0FF5B0, 0x000000C + +gUnk_EU_080FF5BC:: @ 080FF5BC + .incbin "baserom_eu.gba", 0x0FF5BC, 0x000000C + +gUnk_EU_080FF5C8:: @ 080FF5C8 + .incbin "baserom_eu.gba", 0x0FF5C8, 0x000000C + +gUnk_EU_080FF5D4:: @ 080FF5D4 + .incbin "baserom_eu.gba", 0x0FF5D4, 0x000000C + +gUnk_EU_080FF5E0:: @ 080FF5E0 + .incbin "baserom_eu.gba", 0x0FF5E0, 0x000000C + +gUnk_EU_080FF5EC:: @ 080FF5EC + .incbin "baserom_eu.gba", 0x0FF5EC, 0x000000C + +gUnk_EU_080FF5F8:: @ 080FF5F8 + .incbin "baserom_eu.gba", 0x0FF5F8, 0x000000C + +gUnk_EU_080FF604:: @ 080FF604 + .incbin "baserom_eu.gba", 0x0FF604, 0x000000C + +gUnk_EU_080FF610:: @ 080FF610 + .incbin "baserom_eu.gba", 0x0FF610, 0x000000C + +gUnk_EU_080FF61C:: @ 080FF61C + .incbin "baserom_eu.gba", 0x0FF61C, 0x000000C + +gUnk_EU_080FF628:: @ 080FF628 + .incbin "baserom_eu.gba", 0x0FF628, 0x000000C + +gUnk_EU_080FF634:: @ 080FF634 + .incbin "baserom_eu.gba", 0x0FF634, 0x000000C + +gUnk_EU_080FF640:: @ 080FF640 + .incbin "baserom_eu.gba", 0x0FF640, 0x000000C + +gUnk_EU_080FF64C:: @ 080FF64C + .incbin "baserom_eu.gba", 0x0FF64C, 0x000000C + +gUnk_EU_080FF658:: @ 080FF658 + .incbin "baserom_eu.gba", 0x0FF658, 0x000000C + +gUnk_EU_080FF664:: @ 080FF664 + .incbin "baserom_eu.gba", 0x0FF664, 0x000000C + +gUnk_EU_080FF670:: @ 080FF670 + .incbin "baserom_eu.gba", 0x0FF670, 0x000000C + +gUnk_EU_080FF67C:: @ 080FF67C + .incbin "baserom_eu.gba", 0x0FF67C, 0x000000C + +gUnk_EU_080FF688:: @ 080FF688 + .incbin "baserom_eu.gba", 0x0FF688, 0x000000C + +gUnk_EU_080FF694:: @ 080FF694 + .incbin "baserom_eu.gba", 0x0FF694, 0x000000C + +gUnk_EU_080FF6A0:: @ 080FF6A0 + .incbin "baserom_eu.gba", 0x0FF6A0, 0x000000C + +gUnk_EU_080FF6AC:: @ 080FF6AC + .incbin "baserom_eu.gba", 0x0FF6AC, 0x000000C + +gUnk_EU_080FF6B8:: @ 080FF6B8 + .incbin "baserom_eu.gba", 0x0FF6B8, 0x000000C + +gUnk_EU_080FF6C4:: @ 080FF6C4 + .incbin "baserom_eu.gba", 0x0FF6C4, 0x000000C + +gUnk_EU_080FF6D0:: @ 080FF6D0 + .incbin "baserom_eu.gba", 0x0FF6D0, 0x000000C + +gUnk_EU_080FF6DC:: @ 080FF6DC + .incbin "baserom_eu.gba", 0x0FF6DC, 0x0000018 + +gUnk_EU_080FF6F4:: @ 080FF6F4 + .incbin "baserom_eu.gba", 0x0FF6F4, 0x0000018 + +gUnk_EU_080FF70C:: @ 080FF70C + .incbin "baserom_eu.gba", 0x0FF70C, 0x0000018 + +gUnk_EU_080FF724:: @ 080FF724 + .incbin "baserom_eu.gba", 0x0FF724, 0x0000018 + +gUnk_EU_080FF73C:: @ 080FF73C + .incbin "baserom_eu.gba", 0x0FF73C, 0x0000018 + +gUnk_EU_080FF754:: @ 080FF754 + .incbin "baserom_eu.gba", 0x0FF754, 0x0000018 + +gUnk_EU_080FF76C:: @ 080FF76C + .incbin "baserom_eu.gba", 0x0FF76C, 0x0000018 + +gUnk_EU_080FF784:: @ 080FF784 + .incbin "baserom_eu.gba", 0x0FF784, 0x0000018 + +gUnk_EU_080FF79C:: @ 080FF79C + .incbin "baserom_eu.gba", 0x0FF79C, 0x0000018 + +gUnk_EU_080FF7B4:: @ 080FF7B4 + .incbin "baserom_eu.gba", 0x0FF7B4, 0x0000018 + +gUnk_EU_080FF7CC:: @ 080FF7CC + .incbin "baserom_eu.gba", 0x0FF7CC, 0x0000018 + +gUnk_EU_080FF7E4:: @ 080FF7E4 + .incbin "baserom_eu.gba", 0x0FF7E4, 0x0000018 + +gUnk_EU_080FF7FC:: @ 080FF7FC + .incbin "baserom_eu.gba", 0x0FF7FC, 0x0000018 + +gUnk_EU_080FF814:: @ 080FF814 + .incbin "baserom_eu.gba", 0x0FF814, 0x0000018 + +gUnk_EU_080FF82C:: @ 080FF82C + .incbin "baserom_eu.gba", 0x0FF82C, 0x0000018 + +gUnk_EU_080FF844:: @ 080FF844 + .incbin "baserom_eu.gba", 0x0FF844, 0x0000018 + +gUnk_EU_080FF85C:: @ 080FF85C + .incbin "baserom_eu.gba", 0x0FF85C, 0x0000018 + +gUnk_EU_080FF874:: @ 080FF874 + .incbin "baserom_eu.gba", 0x0FF874, 0x0000018 + +gUnk_EU_080FF88C:: @ 080FF88C + .incbin "baserom_eu.gba", 0x0FF88C, 0x0000018 + +gUnk_EU_080FF8A4:: @ 080FF8A4 + .incbin "baserom_eu.gba", 0x0FF8A4, 0x000000C + +gUnk_EU_080FF8B0:: @ 080FF8B0 + .incbin "baserom_eu.gba", 0x0FF8B0, 0x000000C + +gUnk_EU_080FF8BC:: @ 080FF8BC + .incbin "baserom_eu.gba", 0x0FF8BC, 0x0000030 + +gUnk_EU_080FF8EC:: @ 080FF8EC + .incbin "baserom_eu.gba", 0x0FF8EC, 0x0000030 + +gUnk_EU_080FF91C:: @ 080FF91C + .incbin "baserom_eu.gba", 0x0FF91C, 0x0000030 + +gUnk_EU_080FF94C:: @ 080FF94C + .incbin "baserom_eu.gba", 0x0FF94C, 0x0000054 + +gUnk_EU_080FF9A0:: @ 080FF9A0 + .incbin "baserom_eu.gba", 0x0FF9A0, 0x00000A8 + +gUnk_EU_080FFA48:: @ 080FFA48 + .incbin "baserom_eu.gba", 0x0FFA48, 0x00000A8 + +gUnk_EU_080FFAF0:: @ 080FFAF0 + .incbin "baserom_eu.gba", 0x0FFAF0, 0x0000078 + +gUnk_EU_080FFB68:: @ 080FFB68 + .incbin "baserom_eu.gba", 0x0FFB68, 0x0000048 + +gUnk_EU_080FFBB0:: @ 080FFBB0 + .incbin "baserom_eu.gba", 0x0FFBB0, 0x0000018 + +gUnk_EU_080FFBC8:: @ 080FFBC8 + .incbin "baserom_eu.gba", 0x0FFBC8, 0x0000018 + +gUnk_EU_080FFBE0:: @ 080FFBE0 + .incbin "baserom_eu.gba", 0x0FFBE0, 0x000003C + +gUnk_EU_080FFC1C:: @ 080FFC1C + .incbin "baserom_eu.gba", 0x0FFC1C, 0x0000030 + +gUnk_EU_080FFC4C:: @ 080FFC4C + .incbin "baserom_eu.gba", 0x0FFC4C, 0x0000030 + +gUnk_EU_080FFC7C:: @ 080FFC7C + .incbin "baserom_eu.gba", 0x0FFC7C, 0x0000030 + +gUnk_EU_080FFCAC:: @ 080FFCAC + .incbin "baserom_eu.gba", 0x0FFCAC, 0x0000030 + +gUnk_EU_080FFCDC:: @ 080FFCDC + .incbin "baserom_eu.gba", 0x0FFCDC, 0x0000030 + +gUnk_EU_080FFD0C:: @ 080FFD0C + .incbin "baserom_eu.gba", 0x0FFD0C, 0x0000030 + +gUnk_EU_080FFD3C:: @ 080FFD3C + .incbin "baserom_eu.gba", 0x0FFD3C, 0x0000030 + +gUnk_EU_080FFD6C:: @ 080FFD6C + .incbin "baserom_eu.gba", 0x0FFD6C, 0x0000030 + +gUnk_EU_080FFD9C:: @ 080FFD9C + .incbin "baserom_eu.gba", 0x0FFD9C, 0x0000030 + +gUnk_EU_080FFDCC:: @ 080FFDCC + .incbin "baserom_eu.gba", 0x0FFDCC, 0x0000030 + +gUnk_EU_080FFDFC:: @ 080FFDFC + .incbin "baserom_eu.gba", 0x0FFDFC, 0x0000030 + +gUnk_EU_080FFE2C:: @ 080FFE2C + .incbin "baserom_eu.gba", 0x0FFE2C, 0x0000030 + +gUnk_EU_080FFE5C:: @ 080FFE5C + .incbin "baserom_eu.gba", 0x0FFE5C, 0x0000030 + +gUnk_EU_080FFE8C:: @ 080FFE8C + .incbin "baserom_eu.gba", 0x0FFE8C, 0x0000030 + +gUnk_EU_080FFEBC:: @ 080FFEBC + .incbin "baserom_eu.gba", 0x0FFEBC, 0x0000030 + +gUnk_EU_080FFEEC:: @ 080FFEEC + .incbin "baserom_eu.gba", 0x0FFEEC, 0x0000030 + +gUnk_EU_080FFF1C:: @ 080FFF1C + .incbin "baserom_eu.gba", 0x0FFF1C, 0x0000030 + +gUnk_EU_080FFF4C:: @ 080FFF4C + .incbin "baserom_eu.gba", 0x0FFF4C, 0x0000030 + +gUnk_EU_080FFF7C:: @ 080FFF7C + .incbin "baserom_eu.gba", 0x0FFF7C, 0x0000030 + +gUnk_EU_080FFFAC:: @ 080FFFAC + .incbin "baserom_eu.gba", 0x0FFFAC, 0x0000030 + +gUnk_EU_080FFFDC:: @ 080FFFDC + .incbin "baserom_eu.gba", 0x0FFFDC, 0x0000030 + +gUnk_EU_0810000C:: @ 0810000C + .incbin "baserom_eu.gba", 0x10000C, 0x0000030 + +gUnk_EU_0810003C:: @ 0810003C + .incbin "baserom_eu.gba", 0x10003C, 0x000006C + +gUnk_EU_081000A8:: @ 081000A8 + .incbin "baserom_eu.gba", 0x1000A8, 0x000000C + +gUnk_EU_081000B4:: @ 081000B4 + .incbin "baserom_eu.gba", 0x1000B4, 0x000000C + +gUnk_EU_081000C0:: @ 081000C0 + .incbin "baserom_eu.gba", 0x1000C0, 0x000000C + +gUnk_EU_081000CC:: @ 081000CC + .incbin "baserom_eu.gba", 0x1000CC, 0x000000C + +gUnk_EU_081000D8:: @ 081000D8 + .incbin "baserom_eu.gba", 0x1000D8, 0x000000C + +gUnk_EU_081000E4:: @ 081000E4 + .incbin "baserom_eu.gba", 0x1000E4, 0x000000C + +gUnk_EU_081000F0:: @ 081000F0 + .incbin "baserom_eu.gba", 0x1000F0, 0x000000C + +gUnk_EU_081000FC:: @ 081000FC + .incbin "baserom_eu.gba", 0x1000FC, 0x0000060 + +gUnk_EU_0810015C:: @ 0810015C + .incbin "baserom_eu.gba", 0x10015C, 0x0000084 + +gUnk_EU_081001E0:: @ 081001E0 + .incbin "baserom_eu.gba", 0x1001E0, 0x000000C + +gUnk_EU_081001EC:: @ 081001EC + .incbin "baserom_eu.gba", 0x1001EC, 0x000000C + +gUnk_EU_081001F8:: @ 081001F8 + .incbin "baserom_eu.gba", 0x1001F8, 0x000000C + + +gUnk_08100AA8:: @ 08100218 + .4byte 0 + .4byte gUnk_EU_080FF0C4 + .4byte gUnk_EU_080FF0DC + .4byte gUnk_EU_080FF124 + .4byte gUnk_EU_080FF178 + .4byte gUnk_EU_080FF19C + .4byte gUnk_EU_080FF1CC + .4byte gUnk_EU_080FF214 + .4byte gUnk_EU_080FF220 + .4byte gUnk_EU_080FF2B0 + .4byte gUnk_EU_080FF2C8 + .4byte gUnk_EU_080FF2E0 + .4byte gUnk_EU_080FF22C + .4byte gUnk_EU_080FF244 + .4byte gUnk_EU_080FF25C + .4byte gUnk_EU_080FF268 + .4byte gUnk_EU_080FF2EC + .4byte gUnk_EU_080FF58C + .4byte gUnk_EU_080FF5A4 + .4byte gUnk_EU_080FF5B0 + .4byte gUnk_EU_080FF5EC + .4byte gUnk_EU_080FF5F8 + .4byte gUnk_EU_080FF55C + .4byte gUnk_EU_080FF304 + .4byte gUnk_EU_080FF310 + .4byte gUnk_EU_080FF31C + .4byte gUnk_EU_080FF328 + .4byte gUnk_EU_080FF334 + .4byte gUnk_EU_080FF340 + .4byte gUnk_EU_080FF34C + .4byte gUnk_EU_080FF3F4 + .4byte gUnk_EU_080FF4A8 + .4byte gUnk_EU_080FF46C + .4byte gUnk_EU_080FF430 + .4byte gUnk_EU_080FF520 + .4byte gUnk_EU_080FF4E4 + .4byte gUnk_EU_080FF358 + .4byte gUnk_EU_080FF370 + .4byte gUnk_EU_080FF388 + .4byte gUnk_EU_080FF394 + .4byte gUnk_EU_080FF3AC + .4byte gUnk_EU_080FF3C4 + .4byte gUnk_EU_080FF3DC + .4byte gUnk_EU_080FF5BC + .4byte gUnk_EU_080FF5C8 + .4byte gUnk_EU_080FF5D4 + .4byte gUnk_EU_080FF5E0 + .4byte gUnk_EU_080FF604 + .4byte gUnk_EU_080FF610 + .4byte gUnk_EU_080FF61C + .4byte gUnk_EU_080FF628 + .4byte gUnk_EU_080FF634 + .4byte gUnk_EU_080FF640 + .4byte gUnk_EU_080FF64C + .4byte gUnk_EU_080FF6DC + .4byte gUnk_EU_080FF6F4 + .4byte gUnk_EU_080FF70C + .4byte gUnk_EU_080FF724 + .4byte gUnk_EU_080FF73C + .4byte gUnk_EU_080FF754 + .4byte gUnk_EU_080FF76C + .4byte gUnk_EU_080FF784 + .4byte gUnk_EU_080FF79C + .4byte gUnk_EU_080FF7B4 + .4byte gUnk_EU_080FF7CC + .4byte gUnk_EU_080FF7E4 + .4byte gUnk_EU_080FF7FC + .4byte gUnk_EU_080FF814 + .4byte gUnk_EU_080FF82C + .4byte gUnk_EU_080FF844 + .4byte gUnk_EU_080FF85C + .4byte gUnk_EU_080FF874 + .4byte gUnk_EU_080FF88C + .4byte gUnk_EU_080FF8A4 + .4byte gUnk_EU_080FF8B0 + .4byte gUnk_EU_080FF658 + .4byte gUnk_EU_080FF664 + .4byte gUnk_EU_080FF670 + .4byte gUnk_EU_080FF67C + .4byte gUnk_EU_080FF688 + .4byte gUnk_EU_080FF694 + .4byte gUnk_EU_080FF6A0 + .4byte gUnk_EU_080FF6AC + .4byte gUnk_EU_080FF6B8 + .4byte gUnk_EU_080FF6C4 + .4byte gUnk_EU_080FF6D0 + .4byte gUnk_EU_080FF8BC + .4byte gUnk_EU_080FF8EC + .4byte gUnk_EU_080FF91C + .4byte gUnk_EU_080FF94C + .4byte gUnk_EU_080FF9A0 + .4byte gUnk_EU_080FFA48 + .4byte gUnk_EU_080FFAF0 + .4byte gUnk_EU_080FFBE0 + .4byte gUnk_EU_080FFC1C + .4byte gUnk_EU_080FFC4C + .4byte gUnk_EU_080FFC7C + .4byte gUnk_EU_080FFCAC + .4byte gUnk_EU_080FFCDC + .4byte gUnk_EU_080FFD0C + .4byte gUnk_EU_080FFD3C + .4byte gUnk_EU_080FFD6C + .4byte gUnk_EU_080FFD9C + .4byte gUnk_EU_080FFDCC + .4byte gUnk_EU_080FFDFC + .4byte gUnk_EU_080FFE5C + .4byte gUnk_EU_080FFE8C + .4byte gUnk_EU_080FFEEC + .4byte gUnk_EU_080FFF1C + .4byte gUnk_EU_080FFFAC + .4byte gUnk_EU_080FFFDC + .4byte gUnk_EU_0810000C + .4byte gUnk_EU_080FFE2C + .4byte gUnk_EU_080FFEBC + .4byte gUnk_EU_080FFFAC + .4byte gUnk_EU_080FFF7C + .4byte gUnk_EU_080FFF4C + .4byte gUnk_EU_0810003C + .4byte gUnk_EU_081000A8 + .4byte gUnk_EU_081000B4 + .4byte gUnk_EU_081000C0 + .4byte gUnk_EU_081000CC + .4byte gUnk_EU_081000D8 + .4byte gUnk_EU_081000E4 + .4byte gUnk_EU_081000F0 + .4byte gUnk_EU_081000FC + .4byte gUnk_EU_0810015C + .4byte gUnk_EU_080FFBB0 + .4byte gUnk_EU_080FFBC8 + .4byte gUnk_EU_080FFB68 + .4byte gUnk_EU_081001E0 + .4byte gUnk_EU_081001EC + .4byte gUnk_EU_081001F8 +.else + + gUnk_080FFB90:: @ 080FFB90 +.ifdef EU + .incbin "baserom_eu.gba", 0x0FF0C4, 0x0000018 +.else .incbin "baserom.gba", 0x0FFB90, 0x0000018 +.endif gUnk_080FFBA8:: @ 080FFBA8 .ifdef JP .incbin "baserom_jp.gba", 0x0FF858, 0x0000035 +.else +.ifdef EU + .incbin "baserom_eu.gba", 0x0FF0DC, 0x0000048 .else .incbin "baserom.gba", 0x0FFBA8, 0x0000035 .endif +.endif gUnk_080FFBDD:: @ 080FFBDD .ifdef JP .incbin "baserom_jp.gba", 0x0FF88D, 0x000001f +.else +.ifdef EU + .incbin "baserom_eu.gba", 0x0FF124, 0x0000054 .else .incbin "baserom.gba", 0x0FFBDD, 0x0000013 .endif +.endif gUnk_080FFBF0:: @ 080FFBF0 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x0FF8AC, 0x0000024 +.else +.ifdef EU + .incbin "baserom_eu.gba", 0x0FF178, 0x0000054 .else .incbin "baserom.gba", 0x0FFBF0, 0x0000024 .endif +.endif gUnk_080FFC14:: @ 080FFC14 .incbin "baserom.gba", 0x0FFC14, 0x0000024 @@ -1929,3 +2738,4 @@ gUnk_08100AA8:: @ 08100AA8 .4byte gUnk_08100A84 .4byte gUnk_08100A90 .4byte gUnk_08100A9C +.endif diff --git a/data/data_08108E6C.s b/data/data_08108E6C.s index 94528d70..625a6cea 100644 --- a/data/data_08108E6C.s +++ b/data/data_08108E6C.s @@ -8,14 +8,24 @@ gUnk_08108E6C:: @ 08108E6C .incbin "baserom.gba", 0x108E6C, 0x000000C gUnk_08108E78:: @ 08108E78 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x1085CC, 0x0000018 +.else .incbin "baserom.gba", 0x108E78, 0x0000018 +.endif gUnk_08108E90:: @ 08108E90 .4byte gUnk_08108E6C .4byte gUnk_08108E78 gUnk_08108E98:: @ 08108E98 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x1085EC, 0x000000C +.else .incbin "baserom.gba", 0x108E98, 0x000000C +.endif gUnk_08108EA4:: @ 08108EA4 .incbin "baserom.gba", 0x108EA4, 0x0000018 @@ -25,180 +35,330 @@ gUnk_08108EBC:: @ 08108EBC .4byte gUnk_08108EA4 gUnk_08108EC4:: @ 08108EC4 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x108618, 0x000000C +.else .incbin "baserom.gba", 0x108EC4, 0x000000C +.endif gUnk_08108ED0:: @ 08108ED0 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x108624, 0x0000018 +.else .incbin "baserom.gba", 0x108ED0, 0x0000018 +.endif gUnk_08108EE8:: @ 08108EE8 .4byte gUnk_08108EC4 .4byte gUnk_08108ED0 gUnk_08108EF0:: @ 08108EF0 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x108644, 0x000000C +.else .incbin "baserom.gba", 0x108EF0, 0x000000C +.endif gUnk_08108EFC:: @ 08108EFC +.ifdef EU + .incbin "baserom_eu.gba", 0x108650, 0x0000018 +.else .incbin "baserom.gba", 0x108EFC, 0x0000018 +.endif gUnk_08108F14:: @ 08108F14 .4byte gUnk_08108EF0 .4byte gUnk_08108EFC gUnk_08108F1C:: @ 08108F1C +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x108670, 0x000000C +.else .incbin "baserom.gba", 0x108F1C, 0x000000C +.endif gUnk_08108F28:: @ 08108F28 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x10867C, 0x0000018 +.else .incbin "baserom.gba", 0x108F28, 0x0000018 +.endif gUnk_08108F40:: @ 08108F40 .4byte gUnk_08108F1C .4byte gUnk_08108F28 gUnk_08108F48:: @ 08108F48 +.ifdef EU + .incbin "baserom_eu.gba", 0x10869C, 0x0000004 +.else .incbin "baserom.gba", 0x108F48, 0x0000004 +.endif gUnk_08108F4C:: @ 08108F4C +.ifdef EU + .incbin "baserom_eu.gba", 0x1086A0, 0x0000008 +.else .incbin "baserom.gba", 0x108F4C, 0x0000008 +.endif gUnk_08108F54:: @ 08108F54 +.ifdef EU + .incbin "baserom_eu.gba", 0x1086A8, 0x0000018 +.else .incbin "baserom.gba", 0x108F54, 0x0000018 +.endif gUnk_08108F6C:: @ 08108F6C .4byte gUnk_08108F48 .4byte gUnk_08108F54 gUnk_08108F74:: @ 08108F74 +.ifdef EU + .incbin "baserom_eu.gba", 0x1086C8, 0x000000C +.else .incbin "baserom.gba", 0x108F74, 0x000000C +.endif gUnk_08108F80:: @ 08108F80 +.ifdef EU + .incbin "baserom_eu.gba", 0x1086D4, 0x0000018 +.else .incbin "baserom.gba", 0x108F80, 0x0000018 +.endif gUnk_08108F98:: @ 08108F98 .4byte gUnk_08108F74 .4byte gUnk_08108F80 gUnk_08108FA0:: @ 08108FA0 +.ifdef EU + .incbin "baserom_eu.gba", 0x1086F4, 0x000000C +.else .incbin "baserom.gba", 0x108FA0, 0x000000C +.endif gUnk_08108FAC:: @ 08108FAC +.ifdef EU + .incbin "baserom_eu.gba", 0x108700, 0x0000018 +.else .incbin "baserom.gba", 0x108FAC, 0x0000018 +.endif gUnk_08108FC4:: @ 08108FC4 .4byte gUnk_08108FA0 .4byte gUnk_08108FAC gUnk_08108FCC:: @ 08108FCC +.ifdef EU + .incbin "baserom_eu.gba", 0x108720, 0x000000C +.else .incbin "baserom.gba", 0x108FCC, 0x000000C +.endif gUnk_08108FD8:: @ 08108FD8 +.ifdef EU + .incbin "baserom_eu.gba", 0x10872C, 0x0000018 +.else .incbin "baserom.gba", 0x108FD8, 0x0000018 +.endif gUnk_08108FF0:: @ 08108FF0 .4byte gUnk_08108FCC .4byte gUnk_08108FD8 gUnk_08108FF8:: @ 08108FF8 +.ifdef EU + .incbin "baserom_eu.gba", 0x10874C, 0x000000C +.else .incbin "baserom.gba", 0x108FF8, 0x000000C +.endif gUnk_08109004:: @ 08109004 +.ifdef EU + .incbin "baserom_eu.gba", 0x108758, 0x0000001 +.else .incbin "baserom.gba", 0x109004, 0x0000001 +.endif gUnk_08109005:: @ 08109005 +.ifdef EU + .incbin "baserom_eu.gba", 0x108759, 0x0000014 +.else .incbin "baserom.gba", 0x109005, 0x0000014 +.endif gUnk_08109019:: @ 08109019 +.ifdef EU + .incbin "baserom_eu.gba", 0x10876D, 0x0000003 +.else .incbin "baserom.gba", 0x109019, 0x0000003 +.endif gUnk_0810901C:: @ 0810901C .4byte gUnk_08108FF8 .4byte gUnk_08109004 gUnk_08109024:: @ 08109024 +.ifdef EU + .incbin "baserom_eu.gba", 0x108778, 0x000000C +.else .incbin "baserom.gba", 0x109024, 0x000000C +.endif gUnk_08109030:: @ 08109030 +.ifdef EU + .incbin "baserom_eu.gba", 0x108784, 0x0000003 +.else .incbin "baserom.gba", 0x109030, 0x0000003 +.endif gUnk_08109033:: @ 08109033 +.ifdef EU + .incbin "baserom_eu.gba", 0x108787, 0x0000015 +.else .incbin "baserom.gba", 0x109033, 0x0000015 +.endif gUnk_08109048:: @ 08109048 .4byte gUnk_08109024 .4byte gUnk_08109030 gUnk_08109050:: @ 08109050 +.ifdef EU + .incbin "baserom_eu.gba", 0x1087A4, 0x000000C +.else .incbin "baserom.gba", 0x109050, 0x000000C +.endif gUnk_0810905C:: @ 0810905C +.ifdef EU + .incbin "baserom_eu.gba", 0x1087B0, 0x0000018 +.else .incbin "baserom.gba", 0x10905C, 0x0000018 +.endif gUnk_08109074:: @ 08109074 .4byte gUnk_08109050 .4byte gUnk_0810905C gUnk_0810907C:: @ 0810907C +.ifdef EU + .incbin "baserom_eu.gba", 0x1087D0, 0x000000C +.else .incbin "baserom.gba", 0x10907C, 0x000000C +.endif gUnk_08109088:: @ 08109088 +.ifdef EU + .incbin "baserom_eu.gba", 0x1087DC, 0x0000018 +.else .incbin "baserom.gba", 0x109088, 0x0000018 +.endif gUnk_081090A0:: @ 081090A0 .4byte gUnk_0810907C .4byte gUnk_08109088 gUnk_081090A8:: @ 081090A8 +.ifdef EU + .incbin "baserom_eu.gba", 0x1087FC, 0x000000C +.else .incbin "baserom.gba", 0x1090A8, 0x000000C +.endif gUnk_081090B4:: @ 081090B4 +.ifdef EU + .incbin "baserom_eu.gba", 0x108808, 0x0000018 +.else .incbin "baserom.gba", 0x1090B4, 0x0000018 +.endif gUnk_081090CC:: @ 081090CC .4byte gUnk_081090A8 .4byte gUnk_081090B4 gUnk_081090D4:: @ 081090D4 +.ifdef EU + .incbin "baserom_eu.gba", 0x108828, 0x000000C +.else .incbin "baserom.gba", 0x1090D4, 0x000000C +.endif gUnk_081090E0:: @ 081090E0 +.ifdef EU + .incbin "baserom_eu.gba", 0x108834, 0x0000018 +.else .incbin "baserom.gba", 0x1090E0, 0x0000018 +.endif gUnk_081090F8:: @ 081090F8 .4byte gUnk_081090D4 .4byte gUnk_081090E0 gUnk_08109100:: @ 08109100 +.ifdef EU + .incbin "baserom_eu.gba", 0x108854, 0x000000C +.else .incbin "baserom.gba", 0x109100, 0x000000C +.endif gUnk_0810910C:: @ 0810910C +.ifdef EU + .incbin "baserom_eu.gba", 0x108860, 0x0000018 +.else .incbin "baserom.gba", 0x10910C, 0x0000018 +.endif gUnk_08109124:: @ 08109124 .4byte gUnk_08109100 .4byte gUnk_0810910C gUnk_0810912C:: @ 0810912C +.ifdef EU + .incbin "baserom_eu.gba", 0x108880, 0x000000C +.else .incbin "baserom.gba", 0x10912C, 0x000000C +.endif gUnk_08109138:: @ 08109138 .4byte gUnk_0810912C .4byte gUnk_081090E0 gUnk_08109140:: @ 08109140 +.ifdef EU + .incbin "baserom_eu.gba", 0x108894, 0x0000018 +.else .incbin "baserom.gba", 0x109140, 0x0000018 +.endif gUnk_08109158:: @ 08109158 .4byte gUnk_08109100 .4byte gUnk_08109140 gUnk_08109160:: @ 08109160 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x1088B4, 0x0000018 +.else .incbin "baserom.gba", 0x109160, 0x0000018 +.endif gUnk_08109178:: @ 08109178 .4byte gUnk_081090D4 .4byte gUnk_08109160 gUnk_08109180:: @ 08109180 +.ifdef EU + .incbin "baserom_eu.gba", 0x1088D4, 0x000000C +.else .incbin "baserom.gba", 0x109180, 0x000000C +.endif gUnk_0810918C:: @ 0810918C .4byte gUnk_08109180 @@ -242,10 +402,17 @@ gUnk_08109214:: @ 08109214 .4byte gUnk_089B1D90 .4byte gUnk_089B1D90 .4byte gUnk_089B1D90 +.ifdef EU + .4byte gUnk_089F7420 + .4byte gUnk_08A3EEB0 + .4byte gUnk_08A81E70 + .4byte gUnk_08AC37A0 +.else .4byte gUnk_089B1D90 .4byte gUnk_089B1D90 .4byte gUnk_089B1D90 .4byte gUnk_089B1D90 +.endif gUnk_08109230:: @ 08109230 .incbin "baserom.gba", 0x109230, 0x0000014 diff --git a/data/data_081146D0.s b/data/data_081146D0.s index f19f1420..b4265bc2 100644 --- a/data/data_081146D0.s +++ b/data/data_081146D0.s @@ -20,7 +20,12 @@ gUnk_081147E4:: @ 081147E4 .incbin "baserom.gba", 0x1147E4, 0x0000020 gUnk_08114804:: @ 08114804 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x113F4C, 0x0000010 +.else .incbin "baserom.gba", 0x114804, 0x0000010 +.endif gUnk_08114814:: @ 08114814 .incbin "baserom.gba", 0x114814, 0x0000010 @@ -77,10 +82,20 @@ gUnk_08114A6C:: @ 08114A6C .incbin "baserom.gba", 0x114A6C, 0x0000020 gUnk_08114A8C:: @ 08114A8C +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x1141D4, 0x0000030 +.else .incbin "baserom.gba", 0x114A8C, 0x0000030 +.endif gUnk_08114ABC:: @ 08114ABC +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x114204, 0x0000028 +.else .incbin "baserom.gba", 0x114ABC, 0x0000028 +.endif gUnk_08114AE4:: @ 08114AE4 .incbin "baserom.gba", 0x114AE4, 0x000001C @@ -131,9 +146,19 @@ gUnk_08114AE4:: @ 08114AE4 .4byte gUnk_08114A14 .incbin "baserom.gba", 0x114D4C, 0x0000014 .4byte gUnk_08114A6C +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x1144AC, 0x0000014 +.else .incbin "baserom.gba", 0x114D64, 0x0000014 +.endif .4byte gUnk_08114ABC +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x1144C4, 0x0000168 +.else .incbin "baserom.gba", 0x114D7C, 0x0000168 +.endif gUnk_08114EE4:: @ 08114EE4 .4byte 00000000 diff --git a/data/data_0811BE38.s b/data/data_0811BE38.s index 737ccdb9..5ca8e6f9 100644 --- a/data/data_0811BE38.s +++ b/data/data_0811BE38.s @@ -11,7 +11,12 @@ gUnk_0811BE40:: @ 0811BE40 .incbin "baserom.gba", 0x11BE40, 0x0000008 gUnk_0811BE48:: @ 0811BE48 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x11B590, 0x0000180 +.else .incbin "baserom.gba", 0x11BE48, 0x0000180 +.endif gUnk_0811BFC8:: @ 0811BFC8 .4byte sub_080779E8 diff --git a/data/data_08125104.s b/data/data_08125104.s index 83646edc..878a558d 100644 --- a/data/data_08125104.s +++ b/data/data_08125104.s @@ -15,7 +15,12 @@ gUnk_08125118:: @ 08125118 .incbin "baserom.gba", 0x125118, 0x00002C0 gUnk_081253D8:: @ 081253D8 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x124B20, 0x0000020 +.else .incbin "baserom.gba", 0x1253D8, 0x0000020 +.endif gUnk_081253F8:: @ 081253F8 .incbin "baserom.gba", 0x1253F8, 0x0000028 @@ -24,7 +29,12 @@ gUnk_08125420:: @ 08125420 .incbin "baserom.gba", 0x125420, 0x0000018 gUnk_08125438:: @ 08125438 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x124B80, 0x0000060 +.else .incbin "baserom.gba", 0x125438, 0x0000060 +.endif gUnk_08125498:: @ 08125498 .incbin "baserom.gba", 0x125498, 0x0000050 @@ -33,25 +43,50 @@ gUnk_081254E8:: @ 081254E8 .incbin "baserom.gba", 0x1254E8, 0x0000058 gUnk_08125540:: @ 08125540 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x124C88, 0x0000118 +.else .incbin "baserom.gba", 0x125540, 0x0000118 +.endif gUnk_08125658:: @ 08125658 .incbin "baserom.gba", 0x125658, 0x0000010 gUnk_08125668:: @ 08125668 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x124DB0, 0x0000030 +.else .incbin "baserom.gba", 0x125668, 0x0000030 +.endif gUnk_08125698:: @ 08125698 .incbin "baserom.gba", 0x125698, 0x0000010 gUnk_081256A8:: @ 081256A8 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x124DF0, 0x0000028 +.else .incbin "baserom.gba", 0x1256A8, 0x0000028 +.endif gUnk_081256D0:: @ 081256D0 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x124E18, 0x0000230 +.else .incbin "baserom.gba", 0x1256D0, 0x0000230 +.endif gUnk_08125900:: @ 08125900 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x125048, 0x0000018 +.else .incbin "baserom.gba", 0x125900, 0x0000018 +.endif gUnk_08125918:: @ 08125918 .incbin "baserom.gba", 0x125918, 0x0000010 @@ -66,55 +101,125 @@ gUnk_08125960:: @ 08125960 .incbin "baserom.gba", 0x125960, 0x0000048 gUnk_081259A8:: @ 081259A8 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x1250F0, 0x000006D +.else .incbin "baserom.gba", 0x1259A8, 0x000006D +.endif gUnk_08125A15:: @ 08125A15 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x12515D, 0x00000EB +.else .incbin "baserom.gba", 0x125A15, 0x00000EB +.endif gUnk_08125B00:: @ 08125B00 .incbin "baserom.gba", 0x125B00, 0x0000020 gUnk_08125B20:: @ 08125B20 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x125268, 0x0000030 +.else .incbin "baserom.gba", 0x125B20, 0x0000030 +.endif gUnk_08125B50:: @ 08125B50 .incbin "baserom.gba", 0x125B50, 0x0000020 gUnk_08125B70:: @ 08125B70 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x1252B8, 0x00000A8 +.else .incbin "baserom.gba", 0x125B70, 0x00000A8 +.endif gUnk_08125C18:: @ 08125C18 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x125360, 0x0000030 +.else .incbin "baserom.gba", 0x125C18, 0x0000030 +.endif gUnk_08125C48:: @ 08125C48 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x125390, 0x0000048 +.else .incbin "baserom.gba", 0x125C48, 0x0000048 +.endif gUnk_08125C90:: @ 08125C90 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x1253D8, 0x0000048 +.else .incbin "baserom.gba", 0x125C90, 0x0000048 +.endif gUnk_08125CD8:: @ 08125CD8 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x125420, 0x0000090 +.else .incbin "baserom.gba", 0x125CD8, 0x0000090 +.endif gUnk_08125D68:: @ 08125D68 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x1254B0, 0x0000048 +.else .incbin "baserom.gba", 0x125D68, 0x0000048 +.endif gUnk_08125DB0:: @ 08125DB0 .incbin "baserom.gba", 0x125DB0, 0x0000108 gUnk_08125EB8:: @ 08125EB8 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x125600, 0x0000018 +.else .incbin "baserom.gba", 0x125EB8, 0x0000018 +.endif gUnk_08125ED0:: @ 08125ED0 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x125618, 0x0000020 +.else .incbin "baserom.gba", 0x125ED0, 0x0000020 +.endif gUnk_08125EF0:: @ 08125EF0 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x125638, 0x0000020 +.else .incbin "baserom.gba", 0x125EF0, 0x0000020 +.endif gUnk_08125F10:: @ 08125F10 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x125658, 0x0000010 +.else .incbin "baserom.gba", 0x125F10, 0x0000010 +.endif gUnk_08125F20:: @ 08125F20 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x125668, 0x0000018 +.else .incbin "baserom.gba", 0x125F20, 0x0000018 +.endif gUnk_08125F38:: @ 08125F38 .incbin "baserom.gba", 0x125F38, 0x0000010 @@ -123,10 +228,20 @@ gUnk_08125F48:: @ 08125F48 .incbin "baserom.gba", 0x125F48, 0x0000030 gUnk_08125F78:: @ 08125F78 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x1256C0, 0x0000018 +.else .incbin "baserom.gba", 0x125F78, 0x0000018 +.endif gUnk_08125F90:: @ 08125F90 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x1256D8, 0x0000010 +.else .incbin "baserom.gba", 0x125F90, 0x0000010 +.endif gUnk_08125FA0:: @ 08125FA0 .incbin "baserom.gba", 0x125FA0, 0x0000020 @@ -138,94 +253,206 @@ gUnk_08125FE8:: @ 08125FE8 .incbin "baserom.gba", 0x125FE8, 0x0000050 gUnk_08126038:: @ 08126038 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x125780, 0x0000018 +.else .incbin "baserom.gba", 0x126038, 0x0000018 +.endif gUnk_08126050:: @ 08126050 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x125798, 0x0000018 +.else .incbin "baserom.gba", 0x126050, 0x0000018 +.endif gUnk_08126068:: @ 08126068 .incbin "baserom.gba", 0x126068, 0x0000040 gUnk_081260A8:: @ 081260A8 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x1257F0, 0x0000010 +.else .incbin "baserom.gba", 0x1260A8, 0x0000010 +.endif gUnk_081260B8:: @ 081260B8 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x125800, 0x0000058 +.else .incbin "baserom.gba", 0x1260B8, 0x0000058 +.endif gUnk_08126110:: @ 08126110 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x125858, 0x0000040 +.else .incbin "baserom.gba", 0x126110, 0x0000040 +.endif gUnk_08126150:: @ 08126150 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x125898, 0x0000030 +.else .incbin "baserom.gba", 0x126150, 0x0000030 +.endif gUnk_08126180:: @ 08126180 .incbin "baserom.gba", 0x126180, 0x0000030 gUnk_081261B0:: @ 081261B0 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x1258F8, 0x0000018 +.else .incbin "baserom.gba", 0x1261B0, 0x0000018 +.endif gUnk_081261C8:: @ 081261C8 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x125910, 0x0000020 +.else .incbin "baserom.gba", 0x1261C8, 0x0000020 +.endif gUnk_081261E8:: @ 081261E8 .incbin "baserom.gba", 0x1261E8, 0x0000010 gUnk_081261F8:: @ 081261F8 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x125940, 0x000001B +.else .incbin "baserom.gba", 0x1261F8, 0x000001B +.endif gUnk_08126213:: @ 08126213 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x12595B, 0x0000065 +.else .incbin "baserom.gba", 0x126213, 0x0000065 +.endif gUnk_08126278:: @ 08126278 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x1259C0, 0x0000020 +.else .incbin "baserom.gba", 0x126278, 0x0000020 +.endif gUnk_08126298:: @ 08126298 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x1259E0, 0x0000020 +.else .incbin "baserom.gba", 0x126298, 0x0000020 +.endif gUnk_081262B8:: @ 081262B8 .incbin "baserom.gba", 0x1262B8, 0x0000018 gUnk_081262D0:: @ 081262D0 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x125A18, 0x0000018 +.else .incbin "baserom.gba", 0x1262D0, 0x0000018 +.endif gUnk_081262E8:: @ 081262E8 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x125A30, 0x0000048 +.else .incbin "baserom.gba", 0x1262E8, 0x0000048 +.endif gUnk_08126330:: @ 08126330 .incbin "baserom.gba", 0x126330, 0x0000020 gUnk_08126350:: @ 08126350 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x125A98, 0x0000010 +.else .incbin "baserom.gba", 0x126350, 0x0000010 +.endif gUnk_08126360:: @ 08126360 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x125AA8, 0x0000020 +.else .incbin "baserom.gba", 0x126360, 0x0000020 +.endif gUnk_08126380:: @ 08126380 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x125AC8, 0x0000028 +.else .incbin "baserom.gba", 0x126380, 0x0000028 +.endif gUnk_081263A8:: @ 081263A8 .incbin "baserom.gba", 0x1263A8, 0x0000010 gUnk_081263B8:: @ 081263B8 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x125B00, 0x0000010 +.else .incbin "baserom.gba", 0x1263B8, 0x0000010 +.endif gUnk_081263C8:: @ 081263C8 .incbin "baserom.gba", 0x1263C8, 0x0000010 gUnk_081263D8:: @ 081263D8 +.ifndef EU .incbin "baserom.gba", 0x1263D8, 0x0000010 +.endif gUnk_081263E8:: @ 081263E8 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x125B20, 0x0000138 +.else .incbin "baserom.gba", 0x1263E8, 0x0000138 +.endif gUnk_08126520:: @ 08126520 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x125C58, 0x000009C +.else .incbin "baserom.gba", 0x126520, 0x000009C +.endif gUnk_081265BC:: @ 081265BC +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x125CF4, 0x0000073 +.else .incbin "baserom.gba", 0x1265BC, 0x0000073 +.endif gUnk_0812662F:: @ 0812662F +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x125D67, 0x0000169 +.else .incbin "baserom.gba", 0x12662F, 0x0000169 +.endif gUnk_08126798:: @ 08126798 .incbin "baserom.gba", 0x126798, 0x0000004 @@ -234,19 +461,34 @@ gUnk_08126798:: @ 08126798 .4byte gUnk_081263E8 .incbin "baserom.gba", 0x1267B0, 0x0000024 .4byte gUnk_081253D8 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x125F10, 0x000001C +.else .incbin "baserom.gba", 0x1267D8, 0x000001C +.endif .4byte gUnk_081263E8 .incbin "baserom.gba", 0x1267F8, 0x000001C .4byte gUnk_08125118 .incbin "baserom.gba", 0x126818, 0x000000C .4byte gUnk_08125B50 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x125F60, 0x000003C +.else .incbin "baserom.gba", 0x126828, 0x000003C +.endif .4byte gUnk_081262E8 .incbin "baserom.gba", 0x126868, 0x000000C .4byte gUnk_08125DB0 .incbin "baserom.gba", 0x126878, 0x0000004 .4byte gUnk_08125438 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x125FB8, 0x000002C +.else .incbin "baserom.gba", 0x126880, 0x000002C +.endif .4byte gUnk_081261C8 .incbin "baserom.gba", 0x1268B0, 0x000000C .4byte gUnk_08125420 @@ -258,45 +500,100 @@ gUnk_08126798:: @ 08126798 .4byte gUnk_081261F8 .incbin "baserom.gba", 0x1268E0, 0x000001C .4byte gUnk_08125498 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x126038, 0x0000034 +.else .incbin "baserom.gba", 0x126900, 0x0000034 +.endif .4byte gUnk_08126180 .incbin "baserom.gba", 0x126938, 0x000000C .4byte gUnk_08125F78 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x126080, 0x000002C +.else .incbin "baserom.gba", 0x126948, 0x000002C +.endif .4byte gUnk_08125C48 .incbin "baserom.gba", 0x126978, 0x0000014 .4byte gUnk_08125D68 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x1260C8, 0x000000C +.else .incbin "baserom.gba", 0x126990, 0x000000C +.endif .4byte gUnk_081263E8 .incbin "baserom.gba", 0x1269A0, 0x0000024 .4byte gUnk_081263A8 .incbin "baserom.gba", 0x1269C8, 0x0000004 .4byte gUnk_08125F20 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x126108, 0x0000014 +.else .incbin "baserom.gba", 0x1269D0, 0x0000014 +.endif .4byte gUnk_081254E8 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x126120, 0x0000014 +.else .incbin "baserom.gba", 0x1269E8, 0x0000014 +.endif .4byte gUnk_081256A8 .incbin "baserom.gba", 0x126A00, 0x0000004 .4byte gUnk_081256D0 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x126140, 0x000000C +.else .incbin "baserom.gba", 0x126A08, 0x000000C +.endif .4byte gUnk_08125540 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x126150, 0x0000024 +.else .incbin "baserom.gba", 0x126A18, 0x0000024 +.endif .4byte gUnk_081261E8 .incbin "baserom.gba", 0x126A40, 0x000000C .4byte gUnk_08125658 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x126188, 0x0000014 +.else .incbin "baserom.gba", 0x126A50, 0x0000014 +.endif .4byte gUnk_08125698 .incbin "baserom.gba", 0x126A68, 0x0000004 .4byte gUnk_08125900 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x1261A8, 0x000000C +.else .incbin "baserom.gba", 0x126A70, 0x000000C +.endif .4byte gUnk_08125F90 .incbin "baserom.gba", 0x126A80, 0x0000004 .4byte gUnk_08125B20 .incbin "baserom.gba", 0x126A88, 0x000000C .4byte gUnk_08126350 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x1261D0, 0x000000C +.else .incbin "baserom.gba", 0x126A98, 0x000000C +.endif .4byte gUnk_08125918 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x1261E0, 0x0000014 +.else .incbin "baserom.gba", 0x126AA8, 0x0000014 +.endif .4byte gUnk_08125928 .incbin "baserom.gba", 0x126AC0, 0x0000004 .4byte gUnk_081261B0 @@ -308,7 +605,12 @@ gUnk_08126798:: @ 08126798 .4byte gUnk_081259A8 .incbin "baserom.gba", 0x126AF0, 0x0000004 .4byte gUnk_08125B00 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x126230, 0x000000C +.else .incbin "baserom.gba", 0x126AF8, 0x000000C +.endif .4byte gUnk_08125C18 .incbin "baserom.gba", 0x126B08, 0x000000C .4byte gUnk_08125B70 @@ -316,29 +618,59 @@ gUnk_08126798:: @ 08126798 .4byte gUnk_08125EB8 .incbin "baserom.gba", 0x126B28, 0x0000004 .4byte gUnk_08125ED0 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x126268, 0x0000014 +.else .incbin "baserom.gba", 0x126B30, 0x0000014 +.endif .4byte gUnk_08125C90 .incbin "baserom.gba", 0x126B48, 0x0000004 .4byte gUnk_08125CD8 .incbin "baserom.gba", 0x126B50, 0x000000C .4byte gUnk_08125EF0 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x126298, 0x000001C +.else .incbin "baserom.gba", 0x126B60, 0x000001C +.endif .4byte gUnk_08125F10 - .incbin "baserom.gba", 0x126B80, 0x0000004 + .incbin "baserom_eu.gba", 0x1262B8, 0x0000004 .4byte gUnk_08125F38 .incbin "baserom.gba", 0x126B88, 0x000000C .4byte gUnk_08125F48 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x1262D0, 0x0000024 +.else .incbin "baserom.gba", 0x126B98, 0x0000024 - .4byte gUnk_08125FA0 +.endif + .4byte gUnk_08125FA0 @ 0x81262F4 .incbin "baserom.gba", 0x126BC0, 0x0000004 .4byte gUnk_08125FC0 .incbin "baserom.gba", 0x126BC8, 0x000000C .4byte gUnk_08125FE8 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x126310, 0x0000014 +.else .incbin "baserom.gba", 0x126BD8, 0x0000014 +.endif .4byte gUnk_08126038 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x126328, 0x000000C +.else .incbin "baserom.gba", 0x126BF0, 0x000000C +.endif .4byte gUnk_08126050 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x126338, 0x0000024 +.else .incbin "baserom.gba", 0x126C00, 0x0000024 +.endif .4byte gUnk_08126068 .incbin "baserom.gba", 0x126C28, 0x0000004 .4byte gUnk_081260A8 @@ -348,29 +680,64 @@ gUnk_08126798:: @ 08126798 .4byte gUnk_08126110 .incbin "baserom.gba", 0x126C50, 0x0000004 .4byte gUnk_08126150 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x126390, 0x0000044 +.else .incbin "baserom.gba", 0x126C58, 0x0000044 +.endif .4byte gUnk_08126278 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x1263D8, 0x000001C +.else .incbin "baserom.gba", 0x126CA0, 0x000001C +.endif .4byte gUnk_08126298 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x1263F8, 0x000001C +.else .incbin "baserom.gba", 0x126CC0, 0x000001C +.endif .4byte gUnk_081263E8 - .incbin "baserom.gba", 0x126CE0, 0x0000004 + .incbin "baserom_eu.gba", 0x126418, 0x0000004 .4byte gUnk_081262B8 .incbin "baserom.gba", 0x126CE8, 0x0000004 .4byte gUnk_081262D0 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x126428, 0x000000C +.else .incbin "baserom.gba", 0x126CF0, 0x000000C +.endif .4byte gUnk_081263E8 .incbin "baserom.gba", 0x126D00, 0x0000004 .4byte gUnk_08126330 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x126440, 0x000002C +.else .incbin "baserom.gba", 0x126D08, 0x000002C +.endif .4byte gUnk_081263C8 .incbin "baserom.gba", 0x126D38, 0x0000004 .4byte gUnk_08126360 +.ifdef EU + .incbin "baserom_eu.gba", 0x126478, 0x0000010 + .incbin "baserom_eu.gba", 0x126488, 0x0000034 +.else .incbin "baserom.gba", 0x126D40, 0x000000C .4byte gUnk_081263D8 .incbin "baserom.gba", 0x126D50, 0x0000034 +.endif .4byte gUnk_08126380 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x1264C0, 0x0000014 +.else .incbin "baserom.gba", 0x126D88, 0x0000014 +.endif .4byte gUnk_081263B8 .incbin "baserom.gba", 0x126DA0, 0x0000008 diff --git a/data/data_08127280.s b/data/data_08127280.s index 81795e24..f8d5fc0d 100644 --- a/data/data_08127280.s +++ b/data/data_08127280.s @@ -51,7 +51,12 @@ gUnk_08127D10:: @ 08127D10 .4byte sub_080A3930 gUnk_08127D30:: @ 08127D30 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x127468, 0x0000264 +.else .incbin "baserom.gba", 0x127D30, 0x0000264 +.endif gUnk_08127F94:: @ 08127F94 .incbin "baserom.gba", 0x127F94, 0x0000090 @@ -707,7 +712,12 @@ gUnk_08128A38:: @ 08128A38 .4byte sub_080A4F28 gUnk_08128AD8:: @ 08128AD8 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x128210, 0x0000058 +.else .incbin "baserom.gba", 0x128AD8, 0x0000058 +.endif gUnk_08128B30:: @ 08128B30 .4byte sub_080A4F28 diff --git a/data/data_0812AA88.s b/data/data_0812AA88.s index 5c94a158..bc3cc62a 100644 --- a/data/data_0812AA88.s +++ b/data/data_0812AA88.s @@ -139,14 +139,18 @@ gUnk_0812AAE8:: @ 0812AAE8 .4byte gUnk_0812ACB0 .4byte gUnk_0812ACA4 .4byte gUnk_0812AC94 +.ifndef EU .4byte gUnk_0812AC88 +.endif .4byte gUnk_0812AC84 gUnk_0812AC84:: @ 0812AC84 .incbin "baserom.gba", 0x12AC84, 0x0000004 +.ifndef EU gUnk_0812AC88:: @ 0812AC88 .incbin "baserom.gba", 0x12AC88, 0x000000C +.endif gUnk_0812AC94:: @ 0812AC94 .incbin "baserom.gba", 0x12AC94, 0x0000010 @@ -173,7 +177,11 @@ gUnk_0812ACF0:: @ 0812ACF0 .incbin "baserom.gba", 0x12ACF0, 0x0000010 gUnk_0812AD00:: @ 0812AD00 +.ifdef EU + .incbin "baserom_eu.gba", 0x12A428, 0x0000010 +.else .incbin "baserom.gba", 0x12AD00, 0x000000C +.endif gUnk_0812AD0C:: @ 0812AD0C .incbin "baserom.gba", 0x12AD0C, 0x0000014 @@ -1211,7 +1219,765 @@ ENUM_12AED0_LV1_CLEAR_MES: .else - +.ifdef EU +@ TODO same as JP, deduplicate +ENUM_12AED0: + .4byte gUnk_0812B204 + .4byte ENUM_12AED0_LV1_CLEAR_MES + .4byte ENUM_12AED0_LV2_CLEAR_MES + .4byte ENUM_12AED0_LV3_CLEAR_MES + .4byte ENUM_12AED0_LV4_CLEAR_MES + .4byte ENUM_12AED0_LV5_CLEAR_MES + .4byte ENUM_12AED0_MIZUUMI_00_BENT + .4byte ENUM_12AED0_MIZUUMI_00_00 + .4byte ENUM_12AED0_MIZUUMI_00_H00 + .4byte ENUM_12AED0_MIZUUMI_00_H01 + .4byte ENUM_12AED0_MIZUUMI_00_H02 + .4byte ENUM_12AED0_HIKYOU_00_T0 + .4byte ENUM_12AED0_HIKYOU_00_T1 + .4byte ENUM_12AED0_MAENIWA_00_00 + .4byte ENUM_12AED0_MAENIWA_00_01 + .4byte ENUM_12AED0_MAENIWA_00_02 + .4byte ENUM_12AED0_MAENIWA_00_BENT + .4byte ENUM_12AED0_MAENIWA_00_WARP + .4byte ENUM_12AED0_MAENIWA_00_T0 + .4byte ENUM_12AED0_MAENIWA_00_T1 + .4byte ENUM_12AED0_MAENIWA_00_CAP_0 + .4byte ENUM_12AED0_NAKANIWA_00_EZERO + .4byte ENUM_12AED0_HIKYOU_00_00 + .4byte ENUM_12AED0_HIKYOU_00_01 + .4byte ENUM_12AED0_HIKYOU_00_02 + .4byte ENUM_12AED0_HIKYOU_00_03 + .4byte ENUM_12AED0_HIKYOU_00_04 + .4byte ENUM_12AED0_HIKYOU_00_CAP_0 + .4byte ENUM_12AED0_HIKYOU_00_CAP_1 + .4byte ENUM_12AED0_HIKYOU_00_CAP_2 + .4byte ENUM_12AED0_HIKYOU_00_SEKIZOU + .4byte ENUM_12AED0_HIKYOU_00_14 + .4byte ENUM_12AED0_HIKYOU_00_BOSEKI + .4byte ENUM_12AED0_HIKYOU_00_H00 + .4byte ENUM_12AED0_HIKYOU_00_M0 + .4byte ENUM_12AED0_HIKYOU_00_M1 + .4byte ENUM_12AED0_HIKYOU_00_M2 + .4byte ENUM_12AED0_LOST_00_ENTER + .4byte ENUM_12AED0_LOST_00_00 + .4byte ENUM_12AED0_LOST_00_01 + .4byte ENUM_12AED0_LOST_02_00 + .4byte ENUM_12AED0_LOST_03_00 + .4byte ENUM_12AED0_LOST_03_T0 + .4byte ENUM_12AED0_LOST_04_00 + .4byte ENUM_12AED0_LOST_04_SIBA0 + .4byte ENUM_12AED0_LOST_04_SIBA1 + .4byte ENUM_12AED0_LOST_04_SIBA2 + .4byte ENUM_12AED0_LOST_04_SIBA3 + .4byte ENUM_12AED0_LOST_04_SIBA4 + .4byte ENUM_12AED0_LOST_05_00 + .4byte ENUM_12AED0_LOST_05_01 + .4byte ENUM_12AED0_LOST_05_T0 + .4byte ENUM_12AED0_LOST_05_T1 + .4byte ENUM_12AED0_MORI_00_HIBI_0 + .4byte ENUM_12AED0_MORI_00_HIBI_1 + .4byte ENUM_12AED0_MORI_00_HIBI_2 + .4byte ENUM_12AED0_MORI_00_HIBI_3 + .4byte ENUM_12AED0_MORI_00_HIBI_4 + .4byte ENUM_12AED0_MORI_00_KOBITO + .4byte ENUM_12AED0_MORI_00_H0 + .4byte ENUM_12AED0_MORI_00_H1 + .4byte ENUM_12AED0_MORI_ENTRANCE_1ST + .4byte ENUM_12AED0_YAMA_00_00 + .4byte ENUM_12AED0_YAMA_00_01 + .4byte ENUM_12AED0_YAMA_01_BW00 + .4byte ENUM_12AED0_YAMA_02_00 + .4byte ENUM_12AED0_YAMA_03_00 + .4byte ENUM_12AED0_YAMA_03_01 + .4byte ENUM_12AED0_YAMA_03_02 + .4byte ENUM_12AED0_YAMA_03_DOKU_0 + .4byte ENUM_12AED0_YAMA_03_DOKU_1 + .4byte ENUM_12AED0_YAMA_03_DOKU_2 + .4byte ENUM_12AED0_YAMA_04_CAP_0 + .4byte ENUM_12AED0_YAMA_04_R00 + .4byte ENUM_12AED0_YAMA_04_HIBI_0 + .4byte ENUM_12AED0_YAMA_04_HIBI_1 + .4byte ENUM_12AED0_YAMA_04_00 + .4byte ENUM_12AED0_YAMA_04_01 + .4byte ENUM_12AED0_YAMA_04_04 + .4byte ENUM_12AED0_YAMA_04_05 + .4byte ENUM_12AED0_YAMA_04_06 + .4byte ENUM_12AED0_YAMA_04_ENTHOUSHI + .4byte ENUM_12AED0_YAMA_04_ANAHOUSHI + .4byte ENUM_12AED0_YAMA_04_BOMBWALL0 + .4byte ENUM_12AED0_HAKA_BUNSHIN_00 + .4byte ENUM_12AED0_HAKA_BOSEKI_00 + .4byte ENUM_12AED0_HAKA_BOSEKI_01 + .4byte ENUM_12AED0_HAKA_BOSEKI_02 + .4byte ENUM_12AED0_HAKA_00_CAP_0 + .4byte ENUM_12AED0_HAKA_00_BW00 + .4byte ENUM_12AED0_HAKA_01_T0 + .4byte ENUM_12AED0_HAKA_KEY_GET + .4byte ENUM_12AED0_SOUGEN_01_WAKAGI_0 + .4byte ENUM_12AED0_SOUGEN_01_WAKAGI_1 + .4byte ENUM_12AED0_SOUGEN_01_WAKAGI_2 + .4byte ENUM_12AED0_SOUGEN_01_WAKAGI_3 + .4byte ENUM_12AED0_SOUGEN_01_WAKAGI_4 + .4byte ENUM_12AED0_SOUGEN_01_WAKAGI_5 + .4byte ENUM_12AED0_SOUGEN_01_WAKAGI_6 + .4byte ENUM_12AED0_SOUGEN_01_WAKAGI_7 + .4byte ENUM_12AED0_SOUGEN_01_WAKAGI_8 + .4byte ENUM_12AED0_SOUGEN_01_WAKAGI_9 + .4byte ENUM_12AED0_SOUGEN_01_WAKAGI_10 + .4byte ENUM_12AED0_SOUGEN_01_WAKAGI_11 + .4byte ENUM_12AED0_SOUGEN_01_WAKAGI_12 + .4byte ENUM_12AED0_SOUGEN_01_00 + .4byte ENUM_12AED0_SOUGEN_01_BENT + .4byte ENUM_12AED0_SOUGEN_01_ZELDA + .4byte ENUM_12AED0_SOUGEN_02_HIBI_0 + .4byte ENUM_12AED0_SOUGEN_02_HIBI_1 + .4byte ENUM_12AED0_SOUGEN_03_BOMBWALL + .4byte ENUM_12AED0_SOUGEN_04_HIBI_0 + .4byte ENUM_12AED0_SOUGEN_04_HIBI_1 + .4byte ENUM_12AED0_SOUGEN_04_HIBI_2 + .4byte ENUM_12AED0_SOUGEN_04_HIBI_3 + .4byte ENUM_12AED0_SOUGEN_05_HIBI_0 + .4byte ENUM_12AED0_SOUGEN_05_HIBI_1 + .4byte ENUM_12AED0_SOUGEN_05_HIBI_2 + .4byte ENUM_12AED0_SOUGEN_05_HIBI_3 + .4byte ENUM_12AED0_SOUGEN_05_BOMB_00 + .4byte ENUM_12AED0_SOUGEN_05_00 + .4byte ENUM_12AED0_SOUGEN_05_01 + .4byte ENUM_12AED0_SOUGEN_05_IWA02 + .4byte ENUM_12AED0_SOUGEN_05_BENT + .4byte ENUM_12AED0_SOUGEN_05_H00 + .4byte ENUM_12AED0_SOUGEN_05_R0 + .4byte ENUM_12AED0_SOUGEN_05_CAP_0 + .4byte ENUM_12AED0_SOUGEN_06_WAKAGI_0 + .4byte ENUM_12AED0_SOUGEN_06_WAKAGI_1 + .4byte ENUM_12AED0_SOUGEN_06_WAKAGI_2 + .4byte ENUM_12AED0_SOUGEN_06_WAKAGI_3 + .4byte ENUM_12AED0_SOUGEN_06_HIBI_0 + .4byte ENUM_12AED0_SOUGEN_06_HIBI_1 + .4byte ENUM_12AED0_SOUGEN_06_HIBI_2 + .4byte ENUM_12AED0_SOUGEN_06_HIBI_3 + .4byte ENUM_12AED0_SOUGEN_06_HIBI_4 + .4byte ENUM_12AED0_SOUGEN_06_IWA_0 + .4byte ENUM_12AED0_SOUGEN_06_AKINDO + .4byte ENUM_12AED0_SOUGEN_06_SAIKAI + .4byte ENUM_12AED0_SOUGEN_06_BENT + .4byte ENUM_12AED0_SOUGEN_06_SLIDE + .4byte ENUM_12AED0_SOUGEN_06_R1 + .4byte ENUM_12AED0_SOUGEN_07_00 + .4byte ENUM_12AED0_SOUGEN_07_01 + .4byte ENUM_12AED0_SOUGEN_07_02 + .4byte ENUM_12AED0_SOUGEN_07_H00 + .4byte ENUM_12AED0_SOUGEN_08_00 + .4byte ENUM_12AED0_SOUGEN_08_01 + .4byte ENUM_12AED0_SOUGEN_08_02 + .4byte ENUM_12AED0_SOUGEN_08_03 + .4byte ENUM_12AED0_SOUGEN_08_04 + .4byte ENUM_12AED0_SOUGEN_08_05 + .4byte ENUM_12AED0_SOUGEN_08_06 + .4byte ENUM_12AED0_SOUGEN_08_07 + .4byte ENUM_12AED0_SOUGEN_08_08 + .4byte ENUM_12AED0_SOUGEN_08_TORITSUKI + .4byte ENUM_12AED0_SOUGEN_08_T00 + .4byte ENUM_12AED0_CASTLE_00_00 + .4byte ENUM_12AED0_CASTLE_04_MEZAME + .4byte ENUM_12AED0_CASTLE_04_MAID_TALK + .4byte ENUM_12AED0_SUIGEN_00_h0 + .4byte ENUM_12AED0_SUIGEN_00_T0 + .4byte ENUM_12AED0_SUIGEN_00_r0 + .4byte ENUM_12AED0_SUIGEN_00_r1 + .4byte ENUM_12AED0_SUIGEN_00_r2 + .4byte ENUM_12AED0_SUIGEN_00_CAP_0 + .4byte ENUM_12AED0_SUIGEN_00_CAP_1 + .4byte ENUM_12AED0_SUIGEN_00_R0 + .4byte ENUM_12AED0_SUIGEN_00_R1 + .4byte ENUM_12AED0_SUIGEN_00_h1 + .4byte ENUM_12AED0_SUIGENGORON_00_CAP_0 + .4byte ENUM_12AED0_DAIGORON_SHIELD + .4byte ENUM_12AED0_DAIGORON_EXCHG + .4byte ENUM_12AED0_BEANDEMO_00 + .4byte ENUM_12AED0_BEANDEMO_01 + .4byte ENUM_12AED0_BEANDEMO_02 + .4byte ENUM_12AED0_BEANDEMO_03 + .4byte ENUM_12AED0_BEANDEMO_04 + .4byte ENUM_12AED0_KAKERA_TAKARA_A + .4byte ENUM_12AED0_KAKERA_TAKARA_E + .4byte ENUM_12AED0_KAKERA_TAKARA_K + .4byte ENUM_12AED0_KAKERA_TAKARA_L + .4byte ENUM_12AED0_KAKERA_TAKARA_M + .4byte ENUM_12AED0_KAKERA_TAKARA_N + .4byte ENUM_12AED0_KAKERA_TAKARA_O + .4byte ENUM_12AED0_KAKERA_TAKARA_P + .4byte ENUM_12AED0_KAKERA_TAKARA_Q + .4byte ENUM_12AED0_KAKERA_TAKARA_R + .4byte ENUM_12AED0_KAKERA_TAKARA_S + .4byte ENUM_12AED0_KAKERA_TAKARA_T + .4byte ENUM_12AED0_KAKERA_TAKARA_U + .4byte ENUM_12AED0_KAKERA_TAKARA_V + .4byte ENUM_12AED0_KAKERA_TAKARA_W + .4byte ENUM_12AED0_KAKERA_TAKARA_X + .4byte ENUM_12AED0_KAKERA_TAKARA_Y + .4byte ENUM_12AED0_KAKERA_TAKARA_Z + .4byte ENUM_12AED0_MACHI_02_HEISHI_TALK + .4byte ENUM_12AED0_MACHI00_00 + .4byte ENUM_12AED0_MACHI00_02 + .4byte ENUM_12AED0_MACHI00_03 + .4byte ENUM_12AED0_MACHI_00_T00 + .4byte ENUM_12AED0_MACHI_00_T01 + .4byte ENUM_12AED0_MACHI_01_DEMO + .4byte ENUM_12AED0_MACHI_02_HEISHI + .4byte ENUM_12AED0_MACHI_02_DOG + .4byte ENUM_12AED0_MACHI_07_BELL + .4byte ENUM_12AED0_SHOP05_OPEN + .4byte ENUM_12AED0_MACHI_MES_20 + .4byte ENUM_12AED0_MACHI_MES_21 + .4byte ENUM_12AED0_MACHI_MES_22 + .4byte ENUM_12AED0_MACHI_MES_23 + .4byte ENUM_12AED0_MACHI_MES_24 + .4byte ENUM_12AED0_MACHI_MES_30 + .4byte ENUM_12AED0_MACHI_MES_40 + .4byte ENUM_12AED0_MACHI_MES_60 + .4byte ENUM_12AED0_MACHI_MES_50 + .4byte ENUM_12AED0_MACHI_DOG_C + .4byte ENUM_12AED0_KUMOUE_00_CAP_0 + .4byte ENUM_12AED0_KUMOUE_01_CAP_0 + .4byte ENUM_12AED0_KUMOUE_01_T0 + .4byte ENUM_12AED0_KUMOUE_01_T1 + .4byte ENUM_12AED0_KUMOUE_01_T2 + .4byte ENUM_12AED0_KUMOUE_01_T3 + .4byte ENUM_12AED0_KUMOUE_01_T4 + .4byte ENUM_12AED0_KUMOUE_01_T5 + .4byte ENUM_12AED0_KUMOUE_01_T6 + .4byte ENUM_12AED0_KUMOUR_01_K0 + .4byte ENUM_12AED0_KUMOUR_01_K1 + .4byte ENUM_12AED0_KUMOUR_01_K2 + .4byte ENUM_12AED0_KUMOUR_01_K3 + .4byte ENUM_12AED0_KUMOUR_01_K4 + .4byte ENUM_12AED0_KUMOUR_01_K5 + .4byte ENUM_12AED0_KUMOUR_01_K6 + .4byte ENUM_12AED0_KUMONOUE_01_KAKERA + .4byte ENUM_12AED0_KUMOUE_02_CAP_0 + .4byte ENUM_12AED0_KUMOUE_02_AWASE_01 + .4byte ENUM_12AED0_KUMOUE_02_AWASE_02 + .4byte ENUM_12AED0_KUMOUE_02_AWASE_03 + .4byte ENUM_12AED0_KUMOUE_02_AWASE_04 + .4byte ENUM_12AED0_KUMOUE_02_AWASE_05 + .4byte ENUM_12AED0_KUMOUE_02_00 + .4byte ENUM_12AED0_KUMOUE_02_01 + .4byte ENUM_12AED0_KUMOUE_02_02 + .4byte ENUM_12AED0_KUMOUE_02_03 + .4byte ENUM_12AED0_KUMOUE_UNCLE_TALK + .4byte ENUM_12AED0_KUMOUE_GIRL_TALK + .4byte ENUM_12AED0_MIZUUMI_00_CAP_0 + .4byte ENUM_12AED0_SUIGEN_00_R2 + .4byte ENUM_12AED0_YAMA_04_CAP_1 + .4byte ENUM_12AED0_LOST_05_02 + .4byte ENUM_12AED0_LOST_05_03 + .4byte ENUM_12AED0_KAKERA_TAKARA_J + .4byte gUnk_0812AC84 +ENUM_12AED0_KAKERA_TAKARA_J: + .ascii "KAKERA_TAKARA_J\0" +ENUM_12AED0_LOST_05_03: + .ascii "LOST_05_03\0\0" +ENUM_12AED0_LOST_05_02: + .ascii "LOST_05_02\0\0" +ENUM_12AED0_YAMA_04_CAP_1: + .ascii "YAMA_04_CAP_1\0\0\0" +ENUM_12AED0_SUIGEN_00_R2: + .ascii "SUIGEN_00_R2\0\0\0\0" +ENUM_12AED0_MIZUUMI_00_CAP_0: + .ascii "MIZUUMI_00_CAP_0\0\0\0\0" +ENUM_12AED0_KUMOUE_GIRL_TALK: + .ascii "KUMOUE_GIRL_TALK\0\0\0\0" +ENUM_12AED0_KUMOUE_UNCLE_TALK: + .ascii "KUMOUE_UNCLE_TALK\0\0\0" +ENUM_12AED0_KUMOUE_02_03: + .ascii "KUMOUE_02_03\0\0\0\0" +ENUM_12AED0_KUMOUE_02_02: + .ascii "KUMOUE_02_02\0\0\0\0" +ENUM_12AED0_KUMOUE_02_01: + .ascii "KUMOUE_02_01\0\0\0\0" +ENUM_12AED0_KUMOUE_02_00: + .ascii "KUMOUE_02_00\0\0\0\0" +ENUM_12AED0_KUMOUE_02_AWASE_05: + .ascii "KUMOUE_02_AWASE_05\0\0" +ENUM_12AED0_KUMOUE_02_AWASE_04: + .ascii "KUMOUE_02_AWASE_04\0\0" +ENUM_12AED0_KUMOUE_02_AWASE_03: + .ascii "KUMOUE_02_AWASE_03\0\0" +ENUM_12AED0_KUMOUE_02_AWASE_02: + .ascii "KUMOUE_02_AWASE_02\0\0" +ENUM_12AED0_KUMOUE_02_AWASE_01: + .ascii "KUMOUE_02_AWASE_01\0\0" +ENUM_12AED0_KUMOUE_02_CAP_0: + .ascii "KUMOUE_02_CAP_0\0" +ENUM_12AED0_KUMONOUE_01_KAKERA: + .ascii "KUMONOUE_01_KAKERA\0\0" +ENUM_12AED0_KUMOUR_01_K6: + .ascii "KUMOUR_01_K6\0\0\0\0" +ENUM_12AED0_KUMOUR_01_K5: + .ascii "KUMOUR_01_K5\0\0\0\0" +ENUM_12AED0_KUMOUR_01_K4: + .ascii "KUMOUR_01_K4\0\0\0\0" +ENUM_12AED0_KUMOUR_01_K3: + .ascii "KUMOUR_01_K3\0\0\0\0" +ENUM_12AED0_KUMOUR_01_K2: + .ascii "KUMOUR_01_K2\0\0\0\0" +ENUM_12AED0_KUMOUR_01_K1: + .ascii "KUMOUR_01_K1\0\0\0\0" +ENUM_12AED0_KUMOUR_01_K0: + .ascii "KUMOUR_01_K0\0\0\0\0" +ENUM_12AED0_KUMOUE_01_T6: + .ascii "KUMOUE_01_T6\0\0\0\0" +ENUM_12AED0_KUMOUE_01_T5: + .ascii "KUMOUE_01_T5\0\0\0\0" +ENUM_12AED0_KUMOUE_01_T4: + .ascii "KUMOUE_01_T4\0\0\0\0" +ENUM_12AED0_KUMOUE_01_T3: + .ascii "KUMOUE_01_T3\0\0\0\0" +ENUM_12AED0_KUMOUE_01_T2: + .ascii "KUMOUE_01_T2\0\0\0\0" +ENUM_12AED0_KUMOUE_01_T1: + .ascii "KUMOUE_01_T1\0\0\0\0" +ENUM_12AED0_KUMOUE_01_T0: + .ascii "KUMOUE_01_T0\0\0\0\0" +ENUM_12AED0_KUMOUE_01_CAP_0: + .ascii "KUMOUE_01_CAP_0\0" +ENUM_12AED0_KUMOUE_00_CAP_0: + .ascii "KUMOUE_00_CAP_0\0" +ENUM_12AED0_MACHI_DOG_C: + .ascii "MACHI_DOG_C\0" +ENUM_12AED0_MACHI_MES_50: + .ascii "MACHI_MES_50\0\0\0\0" +ENUM_12AED0_MACHI_MES_60: + .ascii "MACHI_MES_60\0\0\0\0" +ENUM_12AED0_MACHI_MES_40: + .ascii "MACHI_MES_40\0\0\0\0" +ENUM_12AED0_MACHI_MES_30: + .ascii "MACHI_MES_30\0\0\0\0" +ENUM_12AED0_MACHI_MES_24: + .ascii "MACHI_MES_24\0\0\0\0" +ENUM_12AED0_MACHI_MES_23: + .ascii "MACHI_MES_23\0\0\0\0" +ENUM_12AED0_MACHI_MES_22: + .ascii "MACHI_MES_22\0\0\0\0" +ENUM_12AED0_MACHI_MES_21: + .ascii "MACHI_MES_21\0\0\0\0" +ENUM_12AED0_MACHI_MES_20: + .ascii "MACHI_MES_20\0\0\0\0" +ENUM_12AED0_SHOP05_OPEN: + .ascii "SHOP05_OPEN\0" +ENUM_12AED0_MACHI_07_BELL: + .ascii "MACHI_07_BELL\0\0\0" +ENUM_12AED0_MACHI_02_DOG: + .ascii "MACHI_02_DOG\0\0\0\0" +ENUM_12AED0_MACHI_02_HEISHI: + .ascii "MACHI_02_HEISHI\0" +ENUM_12AED0_MACHI_01_DEMO: + .ascii "MACHI_01_DEMO\0\0\0" +ENUM_12AED0_MACHI_00_T01: + .ascii "MACHI_00_T01\0\0\0\0" +ENUM_12AED0_MACHI_00_T00: + .ascii "MACHI_00_T00\0\0\0\0" +ENUM_12AED0_MACHI00_03: + .ascii "MACHI00_03\0\0" +ENUM_12AED0_MACHI00_02: + .ascii "MACHI00_02\0\0" +ENUM_12AED0_MACHI00_00: + .ascii "MACHI00_00\0\0" +ENUM_12AED0_MACHI_02_HEISHI_TALK: + .ascii "MACHI_02_HEISHI_TALK\0\0\0\0" +ENUM_12AED0_KAKERA_TAKARA_Z: + .ascii "KAKERA_TAKARA_Z\0" +ENUM_12AED0_KAKERA_TAKARA_Y: + .ascii "KAKERA_TAKARA_Y\0" +ENUM_12AED0_KAKERA_TAKARA_X: + .ascii "KAKERA_TAKARA_X\0" +ENUM_12AED0_KAKERA_TAKARA_W: + .ascii "KAKERA_TAKARA_W\0" +ENUM_12AED0_KAKERA_TAKARA_V: + .ascii "KAKERA_TAKARA_V\0" +ENUM_12AED0_KAKERA_TAKARA_U: + .ascii "KAKERA_TAKARA_U\0" +ENUM_12AED0_KAKERA_TAKARA_T: + .ascii "KAKERA_TAKARA_T\0" +ENUM_12AED0_KAKERA_TAKARA_S: + .ascii "KAKERA_TAKARA_S\0" +ENUM_12AED0_KAKERA_TAKARA_R: + .ascii "KAKERA_TAKARA_R\0" +ENUM_12AED0_KAKERA_TAKARA_Q: + .ascii "KAKERA_TAKARA_Q\0" +ENUM_12AED0_KAKERA_TAKARA_P: + .ascii "KAKERA_TAKARA_P\0" +ENUM_12AED0_KAKERA_TAKARA_O: + .ascii "KAKERA_TAKARA_O\0" +ENUM_12AED0_KAKERA_TAKARA_N: + .ascii "KAKERA_TAKARA_N\0" +ENUM_12AED0_KAKERA_TAKARA_M: + .ascii "KAKERA_TAKARA_M\0" +ENUM_12AED0_KAKERA_TAKARA_L: + .ascii "KAKERA_TAKARA_L\0" +ENUM_12AED0_KAKERA_TAKARA_K: + .ascii "KAKERA_TAKARA_K\0" +ENUM_12AED0_KAKERA_TAKARA_E: + .ascii "KAKERA_TAKARA_E\0" +ENUM_12AED0_KAKERA_TAKARA_A: + .ascii "KAKERA_TAKARA_A\0" +ENUM_12AED0_BEANDEMO_04: + .ascii "BEANDEMO_04\0" +ENUM_12AED0_BEANDEMO_03: + .ascii "BEANDEMO_03\0" +ENUM_12AED0_BEANDEMO_02: + .ascii "BEANDEMO_02\0" +ENUM_12AED0_BEANDEMO_01: + .ascii "BEANDEMO_01\0" +ENUM_12AED0_BEANDEMO_00: + .ascii "BEANDEMO_00\0" +ENUM_12AED0_DAIGORON_EXCHG: + .ascii "DAIGORON_EXCHG\0\0" +ENUM_12AED0_DAIGORON_SHIELD: + .ascii "DAIGORON_SHIELD\0" +ENUM_12AED0_SUIGENGORON_00_CAP_0: + .ascii "SUIGENGORON_00_CAP_0\0\0\0\0" +ENUM_12AED0_SUIGEN_00_h1: + .ascii "SUIGEN_00_h1\0\0\0\0" +ENUM_12AED0_SUIGEN_00_R1: + .ascii "SUIGEN_00_R1\0\0\0\0" +ENUM_12AED0_SUIGEN_00_R0: + .ascii "SUIGEN_00_R0\0\0\0\0" +ENUM_12AED0_SUIGEN_00_CAP_1: + .ascii "SUIGEN_00_CAP_1\0" +ENUM_12AED0_SUIGEN_00_CAP_0: + .ascii "SUIGEN_00_CAP_0\0" +ENUM_12AED0_SUIGEN_00_r2: + .ascii "SUIGEN_00_r2\0\0\0\0" +ENUM_12AED0_SUIGEN_00_r1: + .ascii "SUIGEN_00_r1\0\0\0\0" +ENUM_12AED0_SUIGEN_00_r0: + .ascii "SUIGEN_00_r0\0\0\0\0" +ENUM_12AED0_SUIGEN_00_T0: + .ascii "SUIGEN_00_T0\0\0\0\0" +ENUM_12AED0_SUIGEN_00_h0: + .ascii "SUIGEN_00_h0\0\0\0\0" +ENUM_12AED0_CASTLE_04_MAID_TALK: + .ascii "CASTLE_04_MAID_TALK\0" +ENUM_12AED0_CASTLE_04_MEZAME: + .ascii "CASTLE_04_MEZAME\0\0\0\0" +ENUM_12AED0_CASTLE_00_00: + .ascii "CASTLE_00_00\0\0\0\0" +ENUM_12AED0_SOUGEN_08_T00: + .ascii "SOUGEN_08_T00\0\0\0" +ENUM_12AED0_SOUGEN_08_TORITSUKI: + .ascii "SOUGEN_08_TORITSUKI\0" +ENUM_12AED0_SOUGEN_08_08: + .ascii "SOUGEN_08_08\0\0\0\0" +ENUM_12AED0_SOUGEN_08_07: + .ascii "SOUGEN_08_07\0\0\0\0" +ENUM_12AED0_SOUGEN_08_06: + .ascii "SOUGEN_08_06\0\0\0\0" +ENUM_12AED0_SOUGEN_08_05: + .ascii "SOUGEN_08_05\0\0\0\0" +ENUM_12AED0_SOUGEN_08_04: + .ascii "SOUGEN_08_04\0\0\0\0" +ENUM_12AED0_SOUGEN_08_03: + .ascii "SOUGEN_08_03\0\0\0\0" +ENUM_12AED0_SOUGEN_08_02: + .ascii "SOUGEN_08_02\0\0\0\0" +ENUM_12AED0_SOUGEN_08_01: + .ascii "SOUGEN_08_01\0\0\0\0" +ENUM_12AED0_SOUGEN_08_00: + .ascii "SOUGEN_08_00\0\0\0\0" +ENUM_12AED0_SOUGEN_07_H00: + .ascii "SOUGEN_07_H00\0\0\0" +ENUM_12AED0_SOUGEN_07_02: + .ascii "SOUGEN_07_02\0\0\0\0" +ENUM_12AED0_SOUGEN_07_01: + .ascii "SOUGEN_07_01\0\0\0\0" +ENUM_12AED0_SOUGEN_07_00: + .ascii "SOUGEN_07_00\0\0\0\0" +ENUM_12AED0_SOUGEN_06_R1: + .ascii "SOUGEN_06_R1\0\0\0\0" +ENUM_12AED0_SOUGEN_06_SLIDE: + .ascii "SOUGEN_06_SLIDE\0" +ENUM_12AED0_SOUGEN_06_BENT: + .ascii "SOUGEN_06_BENT\0\0" +ENUM_12AED0_SOUGEN_06_SAIKAI: + .ascii "SOUGEN_06_SAIKAI\0\0\0\0" +ENUM_12AED0_SOUGEN_06_AKINDO: + .ascii "SOUGEN_06_AKINDO\0\0\0\0" +ENUM_12AED0_SOUGEN_06_IWA_0: + .ascii "SOUGEN_06_IWA_0\0" +ENUM_12AED0_SOUGEN_06_HIBI_4: + .ascii "SOUGEN_06_HIBI_4\0\0\0\0" +ENUM_12AED0_SOUGEN_06_HIBI_3: + .ascii "SOUGEN_06_HIBI_3\0\0\0\0" +ENUM_12AED0_SOUGEN_06_HIBI_2: + .ascii "SOUGEN_06_HIBI_2\0\0\0\0" +ENUM_12AED0_SOUGEN_06_HIBI_1: + .ascii "SOUGEN_06_HIBI_1\0\0\0\0" +ENUM_12AED0_SOUGEN_06_HIBI_0: + .ascii "SOUGEN_06_HIBI_0\0\0\0\0" +ENUM_12AED0_SOUGEN_06_WAKAGI_3: + .ascii "SOUGEN_06_WAKAGI_3\0\0" +ENUM_12AED0_SOUGEN_06_WAKAGI_2: + .ascii "SOUGEN_06_WAKAGI_2\0\0" +ENUM_12AED0_SOUGEN_06_WAKAGI_1: + .ascii "SOUGEN_06_WAKAGI_1\0\0" +ENUM_12AED0_SOUGEN_06_WAKAGI_0: + .ascii "SOUGEN_06_WAKAGI_0\0\0" +ENUM_12AED0_SOUGEN_05_CAP_0: + .ascii "SOUGEN_05_CAP_0\0" +ENUM_12AED0_SOUGEN_05_R0: + .ascii "SOUGEN_05_R0\0\0\0\0" +ENUM_12AED0_SOUGEN_05_H00: + .ascii "SOUGEN_05_H00\0\0\0" +ENUM_12AED0_SOUGEN_05_BENT: + .ascii "SOUGEN_05_BENT\0\0" +ENUM_12AED0_SOUGEN_05_IWA02: + .ascii "SOUGEN_05_IWA02\0" +ENUM_12AED0_SOUGEN_05_01: + .ascii "SOUGEN_05_01\0\0\0\0" +ENUM_12AED0_SOUGEN_05_00: + .ascii "SOUGEN_05_00\0\0\0\0" +ENUM_12AED0_SOUGEN_05_BOMB_00: + .ascii "SOUGEN_05_BOMB_00\0\0\0" +ENUM_12AED0_SOUGEN_05_HIBI_3: + .ascii "SOUGEN_05_HIBI_3\0\0\0\0" +ENUM_12AED0_SOUGEN_05_HIBI_2: + .ascii "SOUGEN_05_HIBI_2\0\0\0\0" +ENUM_12AED0_SOUGEN_05_HIBI_1: + .ascii "SOUGEN_05_HIBI_1\0\0\0\0" +ENUM_12AED0_SOUGEN_05_HIBI_0: + .ascii "SOUGEN_05_HIBI_0\0\0\0\0" +ENUM_12AED0_SOUGEN_04_HIBI_3: + .ascii "SOUGEN_04_HIBI_3\0\0\0\0" +ENUM_12AED0_SOUGEN_04_HIBI_2: + .ascii "SOUGEN_04_HIBI_2\0\0\0\0" +ENUM_12AED0_SOUGEN_04_HIBI_1: + .ascii "SOUGEN_04_HIBI_1\0\0\0\0" +ENUM_12AED0_SOUGEN_04_HIBI_0: + .ascii "SOUGEN_04_HIBI_0\0\0\0\0" +ENUM_12AED0_SOUGEN_03_BOMBWALL: + .ascii "SOUGEN_03_BOMBWALL\0\0" +ENUM_12AED0_SOUGEN_02_HIBI_1: + .ascii "SOUGEN_02_HIBI_1\0\0\0\0" +ENUM_12AED0_SOUGEN_02_HIBI_0: + .ascii "SOUGEN_02_HIBI_0\0\0\0\0" +ENUM_12AED0_SOUGEN_01_ZELDA: + .ascii "SOUGEN_01_ZELDA\0" +ENUM_12AED0_SOUGEN_01_BENT: + .ascii "SOUGEN_01_BENT\0\0" +ENUM_12AED0_SOUGEN_01_00: + .ascii "SOUGEN_01_00\0\0\0\0" +ENUM_12AED0_SOUGEN_01_WAKAGI_12: + .ascii "SOUGEN_01_WAKAGI_12\0" +ENUM_12AED0_SOUGEN_01_WAKAGI_11: + .ascii "SOUGEN_01_WAKAGI_11\0" +ENUM_12AED0_SOUGEN_01_WAKAGI_10: + .ascii "SOUGEN_01_WAKAGI_10\0" +ENUM_12AED0_SOUGEN_01_WAKAGI_9: + .ascii "SOUGEN_01_WAKAGI_9\0\0" +ENUM_12AED0_SOUGEN_01_WAKAGI_8: + .ascii "SOUGEN_01_WAKAGI_8\0\0" +ENUM_12AED0_SOUGEN_01_WAKAGI_7: + .ascii "SOUGEN_01_WAKAGI_7\0\0" +ENUM_12AED0_SOUGEN_01_WAKAGI_6: + .ascii "SOUGEN_01_WAKAGI_6\0\0" +ENUM_12AED0_SOUGEN_01_WAKAGI_5: + .ascii "SOUGEN_01_WAKAGI_5\0\0" +ENUM_12AED0_SOUGEN_01_WAKAGI_4: + .ascii "SOUGEN_01_WAKAGI_4\0\0" +ENUM_12AED0_SOUGEN_01_WAKAGI_3: + .ascii "SOUGEN_01_WAKAGI_3\0\0" +ENUM_12AED0_SOUGEN_01_WAKAGI_2: + .ascii "SOUGEN_01_WAKAGI_2\0\0" +ENUM_12AED0_SOUGEN_01_WAKAGI_1: + .ascii "SOUGEN_01_WAKAGI_1\0\0" +ENUM_12AED0_SOUGEN_01_WAKAGI_0: + .ascii "SOUGEN_01_WAKAGI_0\0\0" +ENUM_12AED0_HAKA_KEY_GET: + .ascii "HAKA_KEY_GET\0\0\0\0" +ENUM_12AED0_HAKA_01_T0: + .ascii "HAKA_01_T0\0\0" +ENUM_12AED0_HAKA_00_BW00: + .ascii "HAKA_00_BW00\0\0\0\0" +ENUM_12AED0_HAKA_00_CAP_0: + .ascii "HAKA_00_CAP_0\0\0\0" +ENUM_12AED0_HAKA_BOSEKI_02: + .ascii "HAKA_BOSEKI_02\0\0" +ENUM_12AED0_HAKA_BOSEKI_01: + .ascii "HAKA_BOSEKI_01\0\0" +ENUM_12AED0_HAKA_BOSEKI_00: + .ascii "HAKA_BOSEKI_00\0\0" +ENUM_12AED0_HAKA_BUNSHIN_00: + .ascii "HAKA_BUNSHIN_00\0" +ENUM_12AED0_YAMA_04_BOMBWALL0: + .ascii "YAMA_04_BOMBWALL0\0\0\0" +ENUM_12AED0_YAMA_04_ANAHOUSHI: + .ascii "YAMA_04_ANAHOUSHI\0\0\0" +ENUM_12AED0_YAMA_04_ENTHOUSHI: + .ascii "YAMA_04_ENTHOUSHI\0\0\0" +ENUM_12AED0_YAMA_04_06: + .ascii "YAMA_04_06\0\0" +ENUM_12AED0_YAMA_04_05: + .ascii "YAMA_04_05\0\0" +ENUM_12AED0_YAMA_04_04: + .ascii "YAMA_04_04\0\0" +ENUM_12AED0_YAMA_04_01: + .ascii "YAMA_04_01\0\0" +ENUM_12AED0_YAMA_04_00: + .ascii "YAMA_04_00\0\0" +ENUM_12AED0_YAMA_04_HIBI_1: + .ascii "YAMA_04_HIBI_1\0\0" +ENUM_12AED0_YAMA_04_HIBI_0: + .ascii "YAMA_04_HIBI_0\0\0" +ENUM_12AED0_YAMA_04_R00: + .ascii "YAMA_04_R00\0" +ENUM_12AED0_YAMA_04_CAP_0: + .ascii "YAMA_04_CAP_0\0\0\0" +ENUM_12AED0_YAMA_03_DOKU_2: + .ascii "YAMA_03_DOKU_2\0\0" +ENUM_12AED0_YAMA_03_DOKU_1: + .ascii "YAMA_03_DOKU_1\0\0" +ENUM_12AED0_YAMA_03_DOKU_0: + .ascii "YAMA_03_DOKU_0\0\0" +ENUM_12AED0_YAMA_03_02: + .ascii "YAMA_03_02\0\0" +ENUM_12AED0_YAMA_03_01: + .ascii "YAMA_03_01\0\0" +ENUM_12AED0_YAMA_03_00: + .ascii "YAMA_03_00\0\0" +ENUM_12AED0_YAMA_02_00: + .ascii "YAMA_02_00\0\0" +ENUM_12AED0_YAMA_01_BW00: + .ascii "YAMA_01_BW00\0\0\0\0" +ENUM_12AED0_YAMA_00_01: + .ascii "YAMA_00_01\0\0" +ENUM_12AED0_YAMA_00_00: + .ascii "YAMA_00_00\0\0" +ENUM_12AED0_MORI_ENTRANCE_1ST: + .ascii "MORI_ENTRANCE_1ST\0\0\0" +ENUM_12AED0_MORI_00_H1: + .ascii "MORI_00_H1\0\0" +ENUM_12AED0_MORI_00_H0: + .ascii "MORI_00_H0\0\0" +ENUM_12AED0_MORI_00_KOBITO: + .ascii "MORI_00_KOBITO\0\0" +ENUM_12AED0_MORI_00_HIBI_4: + .ascii "MORI_00_HIBI_4\0\0" +ENUM_12AED0_MORI_00_HIBI_3: + .ascii "MORI_00_HIBI_3\0\0" +ENUM_12AED0_MORI_00_HIBI_2: + .ascii "MORI_00_HIBI_2\0\0" +ENUM_12AED0_MORI_00_HIBI_1: + .ascii "MORI_00_HIBI_1\0\0" +ENUM_12AED0_MORI_00_HIBI_0: + .ascii "MORI_00_HIBI_0\0\0" +ENUM_12AED0_LOST_05_T1: + .ascii "LOST_05_T1\0\0" +ENUM_12AED0_LOST_05_T0: + .ascii "LOST_05_T0\0\0" +ENUM_12AED0_LOST_05_01: + .ascii "LOST_05_01\0\0" +ENUM_12AED0_LOST_05_00: + .ascii "LOST_05_00\0\0" +ENUM_12AED0_LOST_04_SIBA4: + .ascii "LOST_04_SIBA4\0\0\0" +ENUM_12AED0_LOST_04_SIBA3: + .ascii "LOST_04_SIBA3\0\0\0" +ENUM_12AED0_LOST_04_SIBA2: + .ascii "LOST_04_SIBA2\0\0\0" +ENUM_12AED0_LOST_04_SIBA1: + .ascii "LOST_04_SIBA1\0\0\0" +ENUM_12AED0_LOST_04_SIBA0: + .ascii "LOST_04_SIBA0\0\0\0" +ENUM_12AED0_LOST_04_00: + .ascii "LOST_04_00\0\0" +ENUM_12AED0_LOST_03_T0: + .ascii "LOST_03_T0\0\0" +ENUM_12AED0_LOST_03_00: + .ascii "LOST_03_00\0\0" +ENUM_12AED0_LOST_02_00: + .ascii "LOST_02_00\0\0" +ENUM_12AED0_LOST_00_01: + .ascii "LOST_00_01\0\0" +ENUM_12AED0_LOST_00_00: + .ascii "LOST_00_00\0\0" +ENUM_12AED0_LOST_00_ENTER: + .ascii "LOST_00_ENTER\0\0\0" +ENUM_12AED0_HIKYOU_00_M2: + .ascii "HIKYOU_00_M2\0\0\0\0" +ENUM_12AED0_HIKYOU_00_M1: + .ascii "HIKYOU_00_M1\0\0\0\0" +ENUM_12AED0_HIKYOU_00_M0: + .ascii "HIKYOU_00_M0\0\0\0\0" +ENUM_12AED0_HIKYOU_00_H00: + .ascii "HIKYOU_00_H00\0\0\0" +ENUM_12AED0_HIKYOU_00_BOSEKI: + .ascii "HIKYOU_00_BOSEKI\0\0\0\0" +ENUM_12AED0_HIKYOU_00_14: + .ascii "HIKYOU_00_14\0\0\0\0" +ENUM_12AED0_HIKYOU_00_SEKIZOU: + .ascii "HIKYOU_00_SEKIZOU\0\0\0" +ENUM_12AED0_HIKYOU_00_CAP_2: + .ascii "HIKYOU_00_CAP_2\0" +ENUM_12AED0_HIKYOU_00_CAP_1: + .ascii "HIKYOU_00_CAP_1\0" +ENUM_12AED0_HIKYOU_00_CAP_0: + .ascii "HIKYOU_00_CAP_0\0" +ENUM_12AED0_HIKYOU_00_04: + .ascii "HIKYOU_00_04\0\0\0\0" +ENUM_12AED0_HIKYOU_00_03: + .ascii "HIKYOU_00_03\0\0\0\0" +ENUM_12AED0_HIKYOU_00_02: + .ascii "HIKYOU_00_02\0\0\0\0" +ENUM_12AED0_HIKYOU_00_01: + .ascii "HIKYOU_00_01\0\0\0\0" +ENUM_12AED0_HIKYOU_00_00: + .ascii "HIKYOU_00_00\0\0\0\0" +ENUM_12AED0_NAKANIWA_00_EZERO: + .ascii "NAKANIWA_00_EZERO\0\0\0" +ENUM_12AED0_MAENIWA_00_CAP_0: + .ascii "MAENIWA_00_CAP_0\0\0\0\0" +ENUM_12AED0_MAENIWA_00_T1: + .ascii "MAENIWA_00_T1\0\0\0" +ENUM_12AED0_MAENIWA_00_T0: + .ascii "MAENIWA_00_T0\0\0\0" +ENUM_12AED0_MAENIWA_00_WARP: + .ascii "MAENIWA_00_WARP\0" +ENUM_12AED0_MAENIWA_00_BENT: + .ascii "MAENIWA_00_BENT\0" +ENUM_12AED0_MAENIWA_00_02: + .ascii "MAENIWA_00_02\0\0\0" +ENUM_12AED0_MAENIWA_00_01: + .ascii "MAENIWA_00_01\0\0\0" +ENUM_12AED0_MAENIWA_00_00: + .ascii "MAENIWA_00_00\0\0\0" +ENUM_12AED0_HIKYOU_00_T1: + .ascii "HIKYOU_00_T1\0\0\0\0" +ENUM_12AED0_HIKYOU_00_T0: + .ascii "HIKYOU_00_T0\0\0\0\0" +ENUM_12AED0_MIZUUMI_00_H02: + .ascii "MIZUUMI_00_H02\0\0" +ENUM_12AED0_MIZUUMI_00_H01: + .ascii "MIZUUMI_00_H01\0\0" +ENUM_12AED0_MIZUUMI_00_H00: + .ascii "MIZUUMI_00_H00\0\0" +ENUM_12AED0_MIZUUMI_00_00: + .ascii "MIZUUMI_00_00\0\0\0" +ENUM_12AED0_MIZUUMI_00_BENT: + .ascii "MIZUUMI_00_BENT\0" +ENUM_12AED0_LV5_CLEAR_MES: + .ascii "LV5_CLEAR_MES\0\0\0" +ENUM_12AED0_LV4_CLEAR_MES: + .ascii "LV4_CLEAR_MES\0\0\0" +ENUM_12AED0_LV3_CLEAR_MES: + .ascii "LV3_CLEAR_MES\0\0\0" +ENUM_12AED0_LV2_CLEAR_MES: + .ascii "LV2_CLEAR_MES\0\0\0" +ENUM_12AED0_LV1_CLEAR_MES: + .ascii "LV1_CLEAR_MES\0\0\0" +.else .4byte gUnk_0812B204 .4byte gUnk_0812C5F0 @@ -2243,6 +3009,7 @@ gUnk_0812C5E0:: @ 0812C5E0 gUnk_0812C5F0:: @ 0812C5F0 .incbin "baserom.gba", 0x12C5F0, 0x0000010 +.endif .endif .4byte gUnk_0812B204 @@ -2450,6 +3217,7 @@ gUnk_0812C5F0:: @ 0812C5F0 .4byte gUnk_0812C9BC .4byte gUnk_0812C9AC .4byte gUnk_0812C99C +.ifndef EU .4byte gUnk_0812C98C .4byte gUnk_0812C97C .ifndef JP @@ -2458,9 +3226,11 @@ gUnk_0812C5F0:: @ 0812C5F0 .4byte gUnk_0812C964 .4byte gUnk_0812C95C .4byte gUnk_0812C954 +.endif .endif .4byte gUnk_0812AC84 +.ifndef EU .ifndef JP gUnk_0812C954:: @ 0812C954 .incbin "baserom.gba", 0x12C954, 0x0000008 @@ -2484,6 +3254,7 @@ gUnk_0812C97C:: @ 0812C97C gUnk_0812C98C:: @ 0812C98C .incbin "baserom.gba", 0x12C98C, 0x0000010 +.endif gUnk_0812C99C:: @ 0812C99C .incbin "baserom.gba", 0x12C99C, 0x0000010 @@ -3294,22 +4065,26 @@ gUnk_0812D688:: @ 0812D688 .4byte gUnk_0812DA04 .4byte gUnk_0812D9F4 .4byte gUnk_0812D9E8 +.ifdef EU +.else .ifdef JP .4byte gUnk_0812D9D0 .else .4byte gUnk_0812D9D0 .4byte gUnk_0812D9C8 +.endif .endif .4byte gUnk_0812AC84 +.ifndef EU .ifndef JP gUnk_0812D9C8:: @ 0812D9C8 .incbin "baserom.gba", 0x12D9C8, 0x0000008 .endif - gUnk_0812D9D0:: @ 0812D9D0 .incbin "baserom.gba", 0x12D9D0, 0x0000018 +.endif gUnk_0812D9E8:: @ 0812D9E8 .incbin "baserom.gba", 0x12D9E8, 0x000000C @@ -4043,6 +4818,7 @@ gUnk_0812E5FC:: @ 0812E5FC .4byte gUnk_0812E8A4 .4byte gUnk_0812E88C .4byte gUnk_0812E874 +.ifndef EU .ifndef JP .4byte gUnk_0812E86C .4byte gUnk_0812E864 @@ -4050,9 +4826,11 @@ gUnk_0812E5FC:: @ 0812E5FC .4byte gUnk_0812E854 .4byte gUnk_0812E84C .4byte gUnk_0812E844 +.endif .endif .4byte gUnk_0812AC84 +.ifndef EU .ifndef JP gUnk_0812E844:: @ 0812E844 .incbin "baserom.gba", 0x12E844, 0x0000008 @@ -4071,6 +4849,7 @@ gUnk_0812E864:: @ 0812E864 gUnk_0812E86C:: @ 0812E86C .incbin "baserom.gba", 0x12E86C, 0x0000008 .endif +.endif gUnk_0812E874:: @ 0812E874 .incbin "baserom.gba", 0x12E874, 0x0000018 @@ -4570,15 +5349,19 @@ gUnk_0812F494:: @ 0812F494 .4byte gUnk_0812F630 .4byte gUnk_0812F624 .4byte gUnk_0812F614 +.ifndef EU .ifndef JP .4byte gUnk_0812F604 +.endif .endif .4byte gUnk_0812AC84 +.ifndef EU .ifndef JP gUnk_0812F604:: @ 0812F604 .incbin "baserom.gba", 0x12F604, 0x0000010 .endif +.endif gUnk_0812F614:: @ 0812F614 .incbin "baserom.gba", 0x12F614, 0x0000010 diff --git a/data/data_081320FC.s b/data/data_081320FC.s index 9b794118..01560713 100755 --- a/data/data_081320FC.s +++ b/data/data_081320FC.s @@ -32,12 +32,21 @@ gUnk_0813210C:: @ 0813210C .incbin "baserom.gba", 0x1321C4, 0x000000C .ifdef JP .4byte gUnk_080FD150 +.else +.ifdef EU + .4byte gUnk_080FD150 .else .4byte gUnk_080FD180 +.endif .endif .incbin "baserom.gba", 0x1321D4, 0x000000C .4byte gUnk_080FD150 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x131834, 0x000000C +.else .incbin "baserom.gba", 0x1321E4, 0x000000C +.endif .4byte gUnk_0813248C .incbin "baserom.gba", 0x1321F4, 0x000000C .4byte gUnk_081324AC @@ -64,15 +73,30 @@ gUnk_08132230:: @ 08132230 .4byte gUnk_080FD448 .incbin "baserom.gba", 0x132284, 0x000000C .4byte gUnk_080FD150 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x1318E4, 0x000000C +.else .incbin "baserom.gba", 0x132294, 0x000000C +.endif .4byte gUnk_080FD168 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x1318F4, 0x000000C +.else .incbin "baserom.gba", 0x1322A4, 0x000000C +.endif .4byte gUnk_080FD150 .incbin "baserom.gba", 0x1322B4, 0x000000C .4byte gUnk_0813252C .incbin "baserom.gba", 0x1322C4, 0x000000C .4byte gUnk_080FD150 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x131924, 0x000000C +.else .incbin "baserom.gba", 0x1322D4, 0x000000C +.endif .4byte gUnk_0813256C .incbin "baserom.gba", 0x1322E4, 0x000000C .4byte gUnk_081325BC @@ -88,7 +112,12 @@ gUnk_08132324:: @ 08132324 .4byte gUnk_081326CC .incbin "baserom.gba", 0x132334, 0x000000C .4byte gUnk_080FD460 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x131994, 0x000000C +.else .incbin "baserom.gba", 0x132344, 0x000000C +.endif .4byte gUnk_080FD460 .incbin "baserom.gba", 0x132354, 0x0000008 @@ -182,20 +211,50 @@ gUnk_08132506:: @ 08132506 gUnk_0813250C:: @ 0813250C .incbin "baserom.gba", 0x13250C, 0x0000004 .4byte gUnk_080FD170 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x131B64, 0x000000C +.else .incbin "baserom.gba", 0x132514, 0x000000C +.endif .4byte gUnk_080FD43C +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x131B74, 0x0000008 +.else .incbin "baserom.gba", 0x132524, 0x0000008 +.endif gUnk_0813252C:: @ 0813252C .incbin "baserom.gba", 0x13252C, 0x0000004 .4byte gUnk_080FD168 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x131B84, 0x000000C +.else .incbin "baserom.gba", 0x132534, 0x000000C +.endif .4byte gUnk_080FD168 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x131B94, 0x000000C +.else .incbin "baserom.gba", 0x132544, 0x000000C +.endif .4byte gUnk_080FD168 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x131BA4, 0x000000C +.else .incbin "baserom.gba", 0x132554, 0x000000C +.endif .4byte gUnk_080FD168 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x131BB4, 0x0000008 +.else .incbin "baserom.gba", 0x132564, 0x0000008 +.endif gUnk_0813256C:: @ 0813256C .incbin "baserom.gba", 0x13256C, 0x0000004 @@ -213,38 +272,113 @@ gUnk_0813256C:: @ 0813256C gUnk_081325BC:: @ 081325BC .incbin "baserom.gba", 0x1325BC, 0x0000004 .4byte gUnk_080FD4B8 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x131C14, 0x000000C +.else .incbin "baserom.gba", 0x1325C4, 0x000000C +.endif .4byte gUnk_080FD4C0 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x131C24, 0x000000C +.else .incbin "baserom.gba", 0x1325D4, 0x000000C +.endif .4byte gUnk_080FD4C8 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x131C34, 0x000000C +.else .incbin "baserom.gba", 0x1325E4, 0x000000C +.endif .4byte gUnk_080FD4D0 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x131C44, 0x000000C +.else .incbin "baserom.gba", 0x1325F4, 0x000000C +.endif .4byte gUnk_080FD4D8 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x131C54, 0x000000C +.else .incbin "baserom.gba", 0x132604, 0x000000C +.endif .4byte gUnk_080FD4E0 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x131C64, 0x000000C +.else .incbin "baserom.gba", 0x132614, 0x000000C +.endif .4byte gUnk_080FD4E8 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x131C74, 0x000000C +.else .incbin "baserom.gba", 0x132624, 0x000000C +.endif .4byte gUnk_080FD4F0 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x131C84, 0x000000C +.else .incbin "baserom.gba", 0x132634, 0x000000C +.endif .4byte gUnk_080FD4F8 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x131C94, 0x000000C +.else .incbin "baserom.gba", 0x132644, 0x000000C +.endif .4byte gUnk_080FD500 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x131CA4, 0x000000C +.else .incbin "baserom.gba", 0x132654, 0x000000C +.endif .4byte gUnk_080FD508 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x131CB4, 0x000000C +.else .incbin "baserom.gba", 0x132664, 0x000000C +.endif .4byte gUnk_080FD510 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x131CC4, 0x000000C +.else .incbin "baserom.gba", 0x132674, 0x000000C +.endif .4byte gUnk_080FD518 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x131CD4, 0x000000C +.else .incbin "baserom.gba", 0x132684, 0x000000C +.endif .4byte gUnk_080FD520 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x131CE4, 0x0000008 +.else .incbin "baserom.gba", 0x132694, 0x0000008 +.endif gUnk_0813269C:: @ 0813269C .incbin "baserom.gba", 0x13269C, 0x0000004 .4byte gUnk_080FD150 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x131CF4, 0x000000C +.else .incbin "baserom.gba", 0x1326A4, 0x000000C +.endif .4byte gUnk_080FD150 .incbin "baserom.gba", 0x1326B4, 0x000000C .4byte gUnk_080FD150 @@ -253,9 +387,19 @@ gUnk_0813269C:: @ 0813269C gUnk_081326CC:: @ 081326CC .incbin "baserom.gba", 0x1326CC, 0x0000004 .4byte gUnk_080FD168 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x131D24, 0x000000C +.else .incbin "baserom.gba", 0x1326D4, 0x000000C +.endif .4byte gUnk_080FD448 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x131D34, 0x0000008 +.else .incbin "baserom.gba", 0x1326E4, 0x0000008 +.endif gUnk_081326EC:: @ 081326EC .incbin "baserom.gba", 0x1326EC, 0x0000014 diff --git a/data/data_08132B30.s b/data/data_08132B30.s index 6a8a5b15..77361b63 100644 --- a/data/data_08132B30.s +++ b/data/data_08132B30.s @@ -5,25 +5,59 @@ .align 2 gUnk_08132B30:: @ 08132B30 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x132180, 0x0000203 +.else .incbin "baserom.gba", 0x132B30, 0x0000203 +.endif gUnk_08132D33:: @ 08132D33 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x132383, 0x00002E6 +.else .incbin "baserom.gba", 0x132D33, 0x00002E6 +.endif gUnk_08133019:: @ 08133019 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x132669, 0x00000F8 +.else .incbin "baserom.gba", 0x133019, 0x00000F8 +.endif gUnk_08133111:: @ 08133111 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x132761, 0x0000200 +.else .incbin "baserom.gba", 0x133111, 0x0000200 +.endif gUnk_08133311:: @ 08133311 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x132961, 0x0000022 +.else .incbin "baserom.gba", 0x133311, 0x0000022 +.endif gUnk_08133333:: @ 08133333 +.ifdef EU + .incbin "baserom_eu.gba", 0x132983, 0x0000031 +.else .incbin "baserom.gba", 0x133333, 0x0000035 +.endif gUnk_08133368:: @ 08133368 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x1329B4, 0x00005B0 +.else .incbin "baserom.gba", 0x133368, 0x00005B0 +.endif gUnk_08133918:: @ 08133918 .incbin "baserom.gba", 0x133918, 0x0000020 @@ -319,7 +353,12 @@ gUnk_0813509C:: @ 0813509C .4byte gUnk_08135074 gUnk_081350A0:: @ 081350A0 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x1346EC, 0x00000C8 +.else .incbin "baserom.gba", 0x1350A0, 0x00000C8 +.endif gUnk_08135168:: @ 08135168 .incbin "baserom.gba", 0x135168, 0x0000028 @@ -1614,22 +1653,46 @@ gUnk_08138958:: @ 08138958 .4byte gUnk_08133FC8 gUnk_0813897C:: @ 0813897C +.ifdef EU .incbin "baserom.gba", 0x13897C, 0x0000028 +.else + .incbin "baserom.gba", 0x13897C, 0x0000028 +.endif gUnk_081389A4:: @ 081389A4 +.ifdef EU + .incbin "baserom_eu.gba", 0x137FF0, 0x0000028 +.else .incbin "baserom.gba", 0x1389A4, 0x0000014 +.endif gUnk_081389B8:: @ 081389B8 +.ifdef EU + .incbin "baserom_eu.gba", 0x138018, 0x0000028 +.else .incbin "baserom.gba", 0x1389B8, 0x0000014 +.endif gUnk_081389CC:: @ 081389CC +.ifdef EU + .incbin "baserom_eu.gba", 0x138040, 0x0000028 +.else .incbin "baserom.gba", 0x1389CC, 0x0000014 +.endif gUnk_081389E0:: @ 081389E0 +.ifdef EU + .incbin "baserom_eu.gba", 0x138068, 0x0000028 +.else .incbin "baserom.gba", 0x1389E0, 0x0000014 +.endif gUnk_081389F4:: @ 081389F4 +.ifdef EU + .incbin "baserom_eu.gba", 0x138090, 0x00000B4 +.else .incbin "baserom.gba", 0x1389F4, 0x0000064 +.endif gUnk_08138A58:: @ 08138A58 .incbin "baserom.gba", 0x138A58, 0x0000050 @@ -2620,9 +2683,13 @@ gUnk_0813ABF8:: @ 0813ABF8 .ifdef JP @ TODO only small differences .incbin "baserom_jp.gba", 0x13A824, 0x0000014 +.else +.ifdef EU + .incbin "baserom_jp.gba", 0x13A824, 0x0000014 .else .incbin "baserom.gba", 0x13ABF8, 0x0000014 .endif +.endif gUnk_0813AC0C:: @ 0813AC0C .incbin "baserom.gba", 0x13AC0C, 0x0000014 @@ -2682,7 +2749,12 @@ gUnk_0813AD74:: @ 0813AD74 .incbin "baserom.gba", 0x13AD74, 0x0000014 gUnk_0813AD88:: @ 0813AD88 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x13A474, 0x0000064 +.else .incbin "baserom.gba", 0x13AD88, 0x0000064 +.endif gUnk_0813ADEC:: @ 0813ADEC .incbin "baserom.gba", 0x13ADEC, 0x0000028 @@ -6437,7 +6509,12 @@ gUnk_08221119:: @ 08221119 .incbin "baserom.gba", 0x221119, 0x00004E2 gUnk_082215FB:: @ 082215FB +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x220CE7, 0x00003F6 +.else .incbin "baserom.gba", 0x2215FB, 0x00003F6 +.endif gUnk_082219F1:: @ 082219F1 .incbin "baserom.gba", 0x2219F1, 0x0000027 @@ -7724,40 +7801,100 @@ gUnk_082F2B0F:: @ 082F2B0F .incbin "baserom.gba", 0x2F2B0F, 0x0001265 gUnk_082F3D74:: @ 082F3D74 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x2F3460, 0x000018F +.else .incbin "baserom.gba", 0x2F3D74, 0x000018F +.endif gUnk_082F3F03:: @ 082F3F03 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x2F35EF, 0x0000015 +.else .incbin "baserom.gba", 0x2F3F03, 0x0000015 +.endif gUnk_082F3F18:: @ 082F3F18 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x2F3604, 0x0000215 +.else .incbin "baserom.gba", 0x2F3F18, 0x0000215 +.endif gUnk_082F412D:: @ 082F412D +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x2F3819, 0x000030B +.else .incbin "baserom.gba", 0x2F412D, 0x000030B +.endif gUnk_082F4438:: @ 082F4438 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x2F3B24, 0x0000BCF +.else .incbin "baserom.gba", 0x2F4438, 0x0000BCF +.endif gUnk_082F5007:: @ 082F5007 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x2F46F3, 0x0000051 +.else .incbin "baserom.gba", 0x2F5007, 0x0000051 +.endif gUnk_082F5058:: @ 082F5058 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x2F4744, 0x00000B9 +.else .incbin "baserom.gba", 0x2F5058, 0x00000B9 +.endif gUnk_082F5111:: @ 082F5111 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x2F47FD, 0x000015B +.else .incbin "baserom.gba", 0x2F5111, 0x000015B +.endif gUnk_082F526C:: @ 082F526C +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x2F4958, 0x00079B8 +.else .incbin "baserom.gba", 0x2F526C, 0x00079B8 +.endif gUnk_082FCC24:: @ 082FCC24 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x2FC310, 0x00011D5 +.else .incbin "baserom.gba", 0x2FCC24, 0x00011D5 +.endif gUnk_082FDDF9:: @ 082FDDF9 +.ifdef EU + @ TODO remove the 4 bytes at the correct place + .incbin "baserom_eu.gba", 0x2FD4E5, 0x00004E4 +.else .incbin "baserom.gba", 0x2FDDF9, 0x00004E8 +.endif gUnk_082FE2E1:: @ 082FE2E1 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x2FD9C9, 0x0001CBE +.else .incbin "baserom.gba", 0x2FE2E1, 0x0001CBE +.endif gUnk_082FFF9F:: @ 082FFF9F .incbin "baserom.gba", 0x2FFF9F, 0x0000061 @@ -7958,7 +8095,12 @@ gUnk_08308716:: @ 08308716 .incbin "baserom.gba", 0x308716, 0x00006F3 gUnk_08308E09:: @ 08308E09 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x3084F1, 0x0000817 +.else .incbin "baserom.gba", 0x308E09, 0x0000817 +.endif gUnk_08309620:: @ 08309620 .incbin "baserom.gba", 0x309620, 0x000027A @@ -8402,7 +8544,12 @@ gUnk_08315F6C:: @ 08315F6C .incbin "baserom.gba", 0x315F6C, 0x0001B94 gUnk_08317B00:: @ 08317B00 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0x3171E8, 0x00026A1 +.else .incbin "baserom.gba", 0x317B00, 0x00026A1 +.endif gUnk_0831A1A1:: @ 0831A1A1 .incbin "baserom.gba", 0x31A1A1, 0x0001993 @@ -8410,6 +8557,11 @@ gUnk_0831A1A1:: @ 0831A1A1 gUnk_0831BB34:: @ 0831BB34 .incbin "baserom.gba", 0x31BB34, 0x00009FB +.ifdef EU +@ TODO differs to gUnk_08324AE4 + .incbin "baserom_eu.gba", 0x31BC17, 0x00083D5 +.else + gUnk_0831C52F:: @ 0831C52F .incbin "baserom.gba", 0x31C52F, 0x00012C6 @@ -8493,6 +8645,7 @@ gUnk_0832413F:: @ 0832413F gUnk_08324A37:: @ 08324A37 .incbin "baserom.gba", 0x324A37, 0x00000AD +.endif gUnk_08324AE4:: @ 08324AE4 .incbin "baserom.gba", 0x324AE4, 0x000018F @@ -8695,6 +8848,11 @@ gUnk_08344A77:: @ 08344A77 gUnk_0834535C:: @ 0834535C .incbin "baserom.gba", 0x34535C, 0x000031B +@ TODO EU differs from here +.ifdef EU + .incbin "baserom_eu.gba", 0x344B7F, 0x025D851 +.else + gUnk_08345677:: @ 08345677 .incbin "baserom.gba", 0x345677, 0x0000325 @@ -11185,8 +11343,10 @@ gUnk_085A0806:: @ 085A0806 .incbin "baserom.gba", 0x5A0806, 0x000267A .endif +.endif + +@ TODO JP and EU differ to here -@ TODO JP differs to here gGlobalGfxAndPalettes:: @ 085A2E80 .incbin "baserom.gba", 0x5A2E80, 0x0001382 @@ -11299,11 +11459,14 @@ gUnk_085B1094:: @ 085B1094 .incbin "baserom.gba", 0x5B1094, 0x00030EC gUnk_085B4180:: @ 085B4180 +.ifdef EU + @TODO differs to + .incbin "baserom_eu.gba", 0x5B36D0, 0x0001D00 +.else .incbin "baserom.gba", 0x5B4180, 0x0000EB5 - gUnk_085B5035:: @ 085B5035 .incbin "baserom.gba", 0x5B5035, 0x0000E8B - +.endif @ TODO figurine Data gUnk_085B5EC0:: @ 085B5EC0 @@ -12245,6 +12408,10 @@ gUnk_08645533:: @ 08645533 gUnk_08645536:: @ 08645536 .incbin "baserom.gba", 0x645536, 0x00001EF +.ifdef EU + @ TODO differs to gUnk_086926A0 + .incbin "baserom_eu.gba", 0x644C35, 0x004D23B +.else gUnk_08645725:: @ 08645725 .incbin "baserom.gba", 0x645725, 0x0005330 @@ -12548,6 +12715,7 @@ gUnk_086925DA:: @ 086925DA gUnk_0869261A:: @ 0869261A .incbin "baserom.gba", 0x69261A, 0x0000086 +.endif gUnk_086926A0:: @ 086926A0 .incbin "baserom.gba", 0x6926A0, 0x000001A @@ -15036,6 +15204,11 @@ gUnk_08900110:: @ 08900110 gUnk_08900380:: @ 08900380 .incbin "baserom.gba", 0x900380, 0x00002A0 +.ifdef EU +@ TODO differs to gUnk_089B1D90 + .incbin "baserom_eu.gba", 0x8FFDF0, 0x00AED70 +.else + gUnk_08900620:: @ 08900620 .incbin "baserom.gba", 0x900620, 0x0003D2B @@ -15686,3 +15859,5 @@ gUnk_089B0310:: @ 089B0310 gUnk_089B1000:: @ 089B1000 .incbin "baserom.gba", 0x9B1000, 0x0000D90 + +.endif diff --git a/data/data_089FC6C4.s b/data/data_089FC6C4.s index 53c6d0b0..c064574f 100644 --- a/data/data_089FC6C4.s +++ b/data/data_089FC6C4.s @@ -1108,13 +1108,30 @@ gUnk_08A071A0:: @ 08A071A0 .incbin "baserom.gba", 0xA07390, 0x0000004 gUnk_08A07394:: @ 08A07394 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0xB12CA4, 0x0000154 + .4byte 0x2 + .incbin "baserom_eu.gba", 0xB12DFC, 0x0000008 +.else .incbin "baserom.gba", 0xA07394, 0x0000154 .4byte gUnk_08A12ED0 .incbin "baserom.gba", 0xA074EC, 0x0000008 +.endif .4byte gUnk_08A16610 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0xB12E08, 0x0000008 +.else .incbin "baserom.gba", 0xA074F8, 0x0000008 +.endif .4byte gUnk_08A12ED0 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0xB12E14, 0x0000008 +.else .incbin "baserom.gba", 0xA07504, 0x0000008 +.endif .4byte gUnk_08A1A54C .incbin "baserom.gba", 0xA07510, 0x00000EC .4byte gUnk_08A84DCC @@ -1686,6 +1703,23 @@ gUnk_08A0CE22:: @ 08A0CE22 .incbin "baserom.gba", 0xA0CF40, 0x0000004 gUnk_08A0CF44:: @ 08A0CF44 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0xB18854, 0x0000178 + .4byte 0x2 + .incbin "baserom_eu.gba", 0xB189D0, 0x00000C8 + .4byte 0x2 + .incbin "baserom_eu.gba", 0xB18A9C, 0x000008C + .4byte 0x2 + .incbin "baserom_eu.gba", 0xB18B2C, 0x000002C + .4byte 0x2 + .incbin "baserom_eu.gba", 0xB18B5C, 0x0000008 + .4byte 0x2 + .incbin "baserom_eu.gba", 0xB18B68, 0x0000008 + .4byte 0x2 + .incbin "baserom_eu.gba", 0xB18B74, 0x0000008 + +.else .incbin "baserom.gba", 0xA0CF44, 0x0000178 .4byte gUnk_08A1A54C .incbin "baserom.gba", 0xA0D0C0, 0x00000C8 @@ -1699,14 +1733,19 @@ gUnk_08A0CF44:: @ 08A0CF44 .incbin "baserom.gba", 0xA0D258, 0x0000008 .4byte gUnk_08B2A77C .incbin "baserom.gba", 0xA0D264, 0x0000008 +.endif .4byte gUnk_08B08B14 .incbin "baserom.gba", 0xA0D270, 0x0000008 .4byte gUnk_08B3F61C .incbin "baserom.gba", 0xA0D27C, 0x0000008 .4byte gUnk_08B47114 +.ifdef EU + .4byte 0x7FFF00FF +.else .incbin "baserom.gba", 0xA0D288, 0x00002B4 .4byte gUnk_08A0FCE0 .incbin "baserom.gba", 0xA0D540, 0x0000004 +.endif gUnk_08A0D544:: @ 08A0D544 .incbin "baserom.gba", 0xA0D544, 0x0000004 diff --git a/data/map_headers.s b/data/map_headers.s index e9ad9eb4..5cd95b2e 100755 --- a/data/map_headers.s +++ b/data/map_headers.s @@ -25,34 +25,68 @@ gAreaRoomMaps_LakeHylia:: @ 08103328 gAreaRoomMap_CastorWilds_0:: @ 08103330 map_bottom 0x20914, 0x1D88, 1 +.ifdef EU + map_top 0x21990-0x4, 0x1D88, 1, 1 +.else map_top 0x21990, 0x1D88, 1, 1 +.endif gAreaRoomMaps_CastorWilds:: @ 08103348 .4byte gAreaRoomMap_CastorWilds_0 gAreaRoomMap_Ruins_0:: @ 0810334C +.ifdef EU + map_bottom 0x22150-0x4, 0x3DE, 1 + map_top 0x22430-0x4, 0x3DE, 1, 1 +.else map_bottom 0x22150, 0x3DE, 1 map_top 0x22430, 0x3DE, 1, 1 +.endif gAreaRoomMap_Ruins_1:: @ 08103364 +.ifdef EU + map_bottom 0x22500-0x4, 0x186, 1 + map_top 0x2261C-0x4, 0x186, 1, 1 +.else map_bottom 0x22500, 0x186, 1 map_top 0x2261C, 0x186, 1, 1 +.endif gAreaRoomMap_Ruins_2:: @ 0810337C +.ifdef EU + map_bottom 0x22688-0x4, 0x12C, 1 + map_top 0x22780-0x4, 0x12C, 1, 1 +.else map_bottom 0x22688, 0x12C, 1 map_top 0x22780, 0x12C, 1, 1 +.endif gAreaRoomMap_Ruins_3:: @ 08103394 +.ifdef EU + map_bottom 0x227E4-0x4, 0x12C, 1 + map_top 0x228E4-0x4, 0x12C, 1, 1 +.else map_bottom 0x227E4, 0x12C, 1 map_top 0x228E4, 0x12C, 1, 1 +.endif gAreaRoomMap_Ruins_4:: @ 081033AC +.ifdef EU + map_bottom 0x22940-0x4, 0x420, 1 + map_top 0x22C44-0x4, 0x420, 1, 1 +.else map_bottom 0x22940, 0x420, 1 map_top 0x22C44, 0x420, 1, 1 +.endif gAreaRoomMap_Ruins_5:: @ 081033C4 +.ifdef EU + map_bottom 0x22D30-0x4, 0x462, 1 + map_top 0x22FBC-0x4, 0x462, 1, 1 +.else map_bottom 0x22D30, 0x462, 1 map_top 0x22FBC, 0x462, 1, 1 +.endif gAreaRoomMaps_Ruins:: @ 081033DC .4byte gAreaRoomMap_Ruins_0 @@ -63,38 +97,73 @@ gAreaRoomMaps_Ruins:: @ 081033DC .4byte gAreaRoomMap_Ruins_5 gAreaRoomMap_HyruleTown_0:: @ 081033F4 +.ifdef EU + map_bottom 0x3A454-0x4, 0x1D88, 1 + map_top 0x3B5F4-0x4, 0x1D88, 1, 1 +.else map_bottom 0x3A454, 0x1D88, 1 map_top 0x3B5F4, 0x1D88, 1, 1 +.endif gAreaRoomMaps_HyruleTown:: @ 0810340C .4byte gAreaRoomMap_HyruleTown_0 gAreaRoomMap_FestivalTown_0:: @ 08103410 +.ifdef EU + map_bottom 0x3C290-0x4, 0xBB8, 1 + map_top 0x3CAD0-0x4, 0xBB8, 1, 1 +.else map_bottom 0x3C290, 0xBB8, 1 map_top 0x3CAD0, 0xBB8, 1, 1 +.endif gAreaRoomMaps_FestivalTown:: @ 08103428 .4byte gAreaRoomMap_FestivalTown_0 gAreaRoomMap_MtCrenel_0:: @ 0810342C +.ifdef EU + map_bottom 0x47410-0x4, 0x6E4, 1 + map_top 0x47760-0x4, 0x6E4, 1, 1 +.else map_bottom 0x47410, 0x6E4, 1 map_top 0x47760, 0x6E4, 1, 1 +.endif gAreaRoomMap_MtCrenel_1:: @ 08103444 +.ifdef EU + map_bottom 0x47838-0x4, 0x720, 1 + map_top 0x47B70-0x4, 0x720, 1, 1 +.else map_bottom 0x47838, 0x720, 1 map_top 0x47B70, 0x720, 1, 1 +.endif gAreaRoomMap_MtCrenel_2:: @ 0810345C +.ifdef EU + map_bottom 0x47D64-0x4, 0xB94, 1 + map_top 0x483C8-0x4, 0xB94, 1, 1 +.else map_bottom 0x47D64, 0xB94, 1 map_top 0x483C8, 0xB94, 1, 1 +.endif gAreaRoomMap_MtCrenel_3:: @ 08103474 +.ifdef EU + map_bottom 0x48588-0x4, 0xB52, 1 + map_top 0x48BFC-0x4, 0xB52, 1, 1 +.else map_bottom 0x48588, 0xB52, 1 map_top 0x48BFC, 0xB52, 1, 1 +.endif gAreaRoomMap_MtCrenel_4:: @ 0810348C +.ifdef EU + map_bottom 0x48D94-0x4, 0xEC4, 1 + map_top 0x496D8-0x4, 0xEC4, 1, 1 +.else map_bottom 0x48D94, 0xEC4, 1 map_top 0x496D8, 0xEC4, 1, 1 +.endif gAreaRoomMaps_MtCrenel:: @ 081034A4 .4byte gAreaRoomMap_MtCrenel_0 @@ -104,62 +173,130 @@ gAreaRoomMaps_MtCrenel:: @ 081034A4 .4byte gAreaRoomMap_MtCrenel_4 gAreaRoomMap_HyruleField_0:: @ 081034B8 +.ifdef EU + map_bottom 0x610CC-0x4, 0x30C, 1 + map_top 0x612B8-0x4, 0x30C, 1, 1 +.else map_bottom 0x610CC, 0x30C, 1 map_top 0x612B8, 0x30C, 1, 1 +.endif gAreaRoomMap_HyruleField_1:: @ 081034D0 +.ifdef EU + map_data 0x49964-0x4, 0x6000000, 0x4000, 1 + map_data 0x4EA0C-0x4, 0x6008000, 0x4000, 1 + map_data 0x10, 0x0, 0x0, 0 + map_bottom 0x61384-0x4, 0x152A, 1 + map_top 0x61FC4-0x4, 0x152A, 1, 1 +.else map_data 0x49964, 0x6000000, 0x4000, 1 map_data 0x4EA0C, 0x6008000, 0x4000, 1 map_data 0x10, 0x0, 0x0, 0 map_bottom 0x61384, 0x152A, 1 map_top 0x61FC4, 0x152A, 1, 1 +.endif gAreaRoomMap_HyruleField_2:: @ 0810350C +.ifdef EU + map_bottom 0x62384-0x4, 0x30C, 1 + map_top 0x625B8-0x4, 0x30C, 1, 1 +.else map_bottom 0x62384, 0x30C, 1 map_top 0x625B8, 0x30C, 1, 1 +.endif gAreaRoomMap_HyruleField_3:: @ 08103524 +.ifdef EU + map_data 0x49964-0x4, 0x6000000, 0x4000, 1 + map_data 0x4EA0C-0x4, 0x6008000, 0x4000, 1 + map_data 0x10, 0x0, 0x0, 0 + map_bottom 0x62688-0x4, 0x3C0, 1 + map_top 0x628D0-0x4, 0x3C0, 1, 1 +.else map_data 0x49964, 0x6000000, 0x4000, 1 map_data 0x4EA0C, 0x6008000, 0x4000, 1 map_data 0x10, 0x0, 0x0, 0 map_bottom 0x62688, 0x3C0, 1 map_top 0x628D0, 0x3C0, 1, 1 +.endif gAreaRoomMap_HyruleField_4:: @ 08103560 +.ifdef EU + map_data 0x569D0-0x4, 0x6000000, 0x4000, 1 + map_data 0x5B950-0x4, 0x6008000, 0x4000, 1 + map_data 0x43, 0x0, 0x0, 0 + map_bottom 0x629A8-0x4, 0x7F8, 1 + map_top 0x62E74-0x4, 0x7F8, 1, 1 +.else map_data 0x569D0, 0x6000000, 0x4000, 1 map_data 0x5B950, 0x6008000, 0x4000, 1 map_data 0x43, 0x0, 0x0, 0 map_bottom 0x629A8, 0x7F8, 1 map_top 0x62E74, 0x7F8, 1, 1 +.endif gAreaRoomMap_HyruleField_5:: @ 0810359C +.ifdef EU + map_data 0x569D0-0x4, 0x6000000, 0x4000, 1 + map_data 0x5B950-0x4, 0x6008000, 0x4000, 1 + map_data 0x43, 0x0, 0x0, 0 + map_bottom 0x63144-0x4, 0x1518, 1 + map_top 0x63E04-0x4, 0x1518, 1, 1 +.else map_data 0x569D0, 0x6000000, 0x4000, 1 map_data 0x5B950, 0x6008000, 0x4000, 1 map_data 0x43, 0x0, 0x0, 0 map_bottom 0x63144, 0x1518, 1 map_top 0x63E04, 0x1518, 1, 1 +.endif gAreaRoomMap_HyruleField_6:: @ 081035D8 +.ifdef EU + map_data 0x50844-0x4, 0x6000000, 0x4000, 1 + map_data 0x55348-0x4, 0x6008000, 0x4000, 1 + map_data 0x2E, 0x0, 0x0, 0 + map_bottom 0x64440-0x4, 0x189C, 1 + map_top 0x6513C-0x4, 0x189C, 1, 1 +.else map_data 0x50844, 0x6000000, 0x4000, 1 map_data 0x55348, 0x6008000, 0x4000, 1 map_data 0x2E, 0x0, 0x0, 0 map_bottom 0x64440, 0x189C, 1 map_top 0x6513C, 0x189C, 1, 1 +.endif gAreaRoomMap_HyruleField_7:: @ 08103614 +.ifdef EU + map_data 0x49964-0x4, 0x6000000, 0x4000, 1 + map_data 0x4EA0C-0x4, 0x6008000, 0x4000, 1 + map_data 0x10, 0x0, 0x0, 0 + map_bottom 0x65560-0x4, 0xE10, 1 + map_top 0x65DBC-0x4, 0xE10, 1, 1 +.else map_data 0x49964, 0x6000000, 0x4000, 1 map_data 0x4EA0C, 0x6008000, 0x4000, 1 map_data 0x10, 0x0, 0x0, 0 map_bottom 0x65560, 0xE10, 1 map_top 0x65DBC, 0xE10, 1, 1 +.endif gAreaRoomMap_HyruleField_8:: @ 08103650 +.ifdef EU + map_bottom 0x6620C-0x4, 0x960, 1 + map_top 0x6678C-0x4, 0x960, 1, 1 +.else map_bottom 0x6620C, 0x960, 1 map_top 0x6678C, 0x960, 1, 1 +.endif gAreaRoomMap_HyruleField_9:: @ 08103668 +.ifdef EU + map_bottom 0x6699C-0x4, 0x258, 1 + map_top 0x66B60-0x4, 0x258, 1, 1 +.else map_bottom 0x6699C, 0x258, 1 map_top 0x66B60, 0x258, 1, 1 +.endif gAreaRoomMaps_HyruleField:: @ 08103680 .4byte gAreaRoomMap_HyruleField_0 @@ -174,23 +311,43 @@ gAreaRoomMaps_HyruleField:: @ 08103680 .4byte gAreaRoomMap_HyruleField_9 gAreaRoomMap_CastleGarden_0:: @ 081036A8 +.ifdef EU + map_bottom 0x6DD10-0x4, 0x103E, 1 + map_top 0x6E684-0x4, 0x103E, 1, 1 +.else map_bottom 0x6DD10, 0x103E, 1 map_top 0x6E684, 0x103E, 1, 1 +.endif gAreaRoomMaps_CastleGarden:: @ 081036C0 .4byte gAreaRoomMap_CastleGarden_0 gAreaRoomMap_CloudTops_0:: @ 081036C4 +.ifdef EU + map_bottom 0x74AD0-0x4, 0x1F02, 1 + map_top 0x751F0-0x4, 0x1F02, 1, 1 +.else map_bottom 0x74AD0, 0x1F02, 1 map_top 0x751F0, 0x1F02, 1, 1 +.endif gAreaRoomMap_CloudTops_1:: @ 081036DC +.ifdef EU + map_bottom 0x755F0-0x4, 0x1F02, 1 + map_top 0x7602C-0x4, 0x1F02, 1, 1 +.else map_bottom 0x755F0, 0x1F02, 1 map_top 0x7602C, 0x1F02, 1, 1 +.endif gAreaRoomMap_CloudTops_2:: @ 081036F4 +.ifdef EU + map_bottom 0x76498-0x4, 0x1F02, 1 + map_top 0x76DBC-0x4, 0x1F02, 1, 1 +.else map_bottom 0x76498, 0x1F02, 1 map_top 0x76DBC, 0x1F02, 1, 1 +.endif gAreaRoomMaps_CloudTops:: @ 0810370C .4byte gAreaRoomMap_CloudTops_0 @@ -198,49 +355,94 @@ gAreaRoomMaps_CloudTops:: @ 0810370C .4byte gAreaRoomMap_CloudTops_2 gAreaRoomMap_RoyalValley_0:: @ 08103718 +.ifdef EU + map_bottom 0x7EC78-0x4, 0xEC4, 1 + map_top 0x7F3EC-0x4, 0xEC4, 1, 1 +.else map_bottom 0x7EC78, 0xEC4, 1 map_top 0x7F3EC, 0xEC4, 1, 1 +.endif gAreaRoomMap_RoyalValley_1:: @ 08103730 +.ifdef EU + map_bottom 0x7F8F8-0x4, 0x12C, 1 + map_top 0x7F9E8-0x4, 0x12C, 1, 1 +.else map_bottom 0x7F8F8, 0x12C, 1 map_top 0x7F9E8, 0x12C, 1, 1 +.endif gAreaRoomMaps_RoyalValley:: @ 08103748 .4byte gAreaRoomMap_RoyalValley_0 .4byte gAreaRoomMap_RoyalValley_1 gAreaRoomMap_VeilFalls_0:: @ 08103750 +.ifdef EU + map_bottom 0x85C24-0x4, 0xEC4, 1 + map_top 0x86560-0x4, 0xEC4, 1, 1 +.else map_bottom 0x85C24, 0xEC4, 1 map_top 0x86560, 0xEC4, 1, 1 +.endif gAreaRoomMaps_VeilFalls:: @ 08103768 .4byte gAreaRoomMap_VeilFalls_0 gAreaRoomMap_VeilFallsTop_0:: @ 0810376C +.ifdef EU + map_bottom 0x87FB4-0x4, 0x2D0, 1 + map_top 0x8812C-0x4, 0x2D0, 1, 1 +.else map_bottom 0x87FB4, 0x2D0, 1 map_top 0x8812C, 0x2D0, 1, 1 +.endif gAreaRoomMaps_VeilFallsTop:: @ 08103784 .4byte gAreaRoomMap_VeilFallsTop_0 gAreaRoomMap_Beanstalks_0:: @ 08103788 +.ifdef EU + map_bottom 0x8C11C-0x4, 0x12C, 0, 1 +.else map_bottom 0x8C11C, 0x12C, 0, 1 +.endif gAreaRoomMap_Beanstalks_1:: @ 08103794 +.ifdef EU + map_bottom 0x8C248-0x4, 0x12C, 0, 1 +.else map_bottom 0x8C248, 0x12C, 0, 1 +.endif gAreaRoomMap_Beanstalks_2:: @ 081037A0 +.ifdef EU + map_bottom 0x8C374-0x4, 0x12C, 0, 1 +.else map_bottom 0x8C374, 0x12C, 0, 1 +.endif gAreaRoomMap_Beanstalks_3:: @ 081037AC +.ifdef EU + map_bottom 0x8C4A0-0x4, 0x12C, 0, 1 +.else map_bottom 0x8C4A0, 0x12C, 0, 1 +.endif +.ifdef EU +gAreaRoomMap_Beanstalks_4:: @ 081037B8-0x4 + map_bottom 0x8C5CC-0x4, 0x12C, 0, 1 +.else gAreaRoomMap_Beanstalks_4:: @ 081037B8 map_bottom 0x8C5CC, 0x12C, 0, 1 +.endif gAreaRoomMap_Beanstalks_5:: @ 081037C4 map_bottom 0x0, 0x2000, 1 +.ifdef EU + map_top_special 0x8BB5C-0x4, 0x800, 1, 1 +.else map_top_special 0x8BB5C, 0x800, 1, 1 +.endif gAreaRoomMaps_Beanstalks:: @ 081037DC .4byte gAreaRoomMap_Beanstalks_0 @@ -277,72 +479,157 @@ gAreaRoomMaps_Beanstalks:: @ 081037DC .4byte gAreaRoomMap_Beanstalks_5 gAreaRoomMap_CrenelCaves_0:: @ 0810385C +.ifdef EU + map_bottom 0x98278-0x4, 0xA8C, 1 + map_top 0x98694-0x4, 0xA8C, 1, 1 +.else map_bottom 0x98278, 0xA8C, 1 map_top 0x98694, 0xA8C, 1, 1 +.endif gAreaRoomMap_CrenelCaves_1:: @ 08103874 +.ifdef EU + map_bottom 0x9887C-0x4, 0x14A, 1 + map_top 0x9897C-0x4, 0x14A, 1, 1 +.else map_bottom 0x9887C, 0x14A, 1 map_top 0x9897C, 0x14A, 1, 1 +.endif gAreaRoomMap_CrenelCaves_2:: @ 0810388C +.ifdef EU + map_bottom 0x989D0-0x4, 0x3A2, 1 + map_top 0x98C14-0x4, 0x3A2, 1, 1 +.else map_bottom 0x989D0, 0x3A2, 1 map_top 0x98C14, 0x3A2, 1, 1 +.endif gAreaRoomMap_CrenelCaves_3:: @ 081038A4 +.ifdef EU + map_bottom 0x98CB8-0x4, 0x168, 1 + map_top 0x98DCC-0x4, 0x168, 1, 1 +.else map_bottom 0x98CB8, 0x168, 1 map_top 0x98DCC, 0x168, 1, 1 +.endif gAreaRoomMap_CrenelCaves_4:: @ 081038BC +.ifdef EU + map_bottom 0x98E18-0x4, 0x12C, 1 + map_top 0x98F10-0x4, 0x12C, 1, 1 +.else map_bottom 0x98E18, 0x12C, 1 map_top 0x98F10, 0x12C, 1, 1 +.endif gAreaRoomMap_CrenelCaves_5:: @ 081038D4 +.ifdef EU + map_bottom 0x98F64-0x4, 0x12C, 1 + map_top 0x99080-0x4, 0x12C, 1, 1 +.else map_bottom 0x98F64, 0x12C, 1 map_top 0x99080, 0x12C, 1, 1 +.endif gAreaRoomMap_CrenelCaves_6:: @ 081038EC +.ifdef EU + map_bottom 0x990D4-0x4, 0x168, 1 + map_top 0x99200-0x4, 0x168, 1, 1 +.else map_bottom 0x990D4, 0x168, 1 map_top 0x99200, 0x168, 1, 1 +.endif gAreaRoomMap_CrenelCaves_7:: @ 08103904 +.ifdef EU + map_bottom 0x99250-0x4, 0x14A, 1 + map_top 0x99350-0x4, 0x14A, 1, 1 +.else map_bottom 0x99250, 0x14A, 1 map_top 0x99350, 0x14A, 1, 1 +.endif gAreaRoomMap_CrenelCaves_8:: @ 0810391C +.ifdef EU + map_bottom 0x993A8-0x4, 0x258, 1 + map_top 0x99558-0x4, 0x258, 1, 1 +.else map_bottom 0x993A8, 0x258, 1 map_top 0x99558, 0x258, 1, 1 +.endif gAreaRoomMap_CrenelCaves_9:: @ 08103934 +.ifdef EU + map_bottom 0x995F4-0x4, 0x12C, 0 + map_top 0x99720-0x4, 0x12C, 1, 1 +.else map_bottom 0x995F4, 0x12C, 0 map_top 0x99720, 0x12C, 1, 1 +.endif gAreaRoomMap_CrenelCaves_10:: @ 0810394C +.ifdef EU + map_bottom 0x99760-0x4, 0x2BC, 1 + map_top 0x99944-0x4, 0x2BC, 1, 1 +.else map_bottom 0x99760, 0x2BC, 1 map_top 0x99944, 0x2BC, 1, 1 +.endif gAreaRoomMap_CrenelCaves_11:: @ 08103964 +.ifdef EU + map_bottom 0x999F4-0x4, 0x294, 1 + map_top 0x99BD0-0x4, 0x294, 1, 1 +.else map_bottom 0x999F4, 0x294, 1 map_top 0x99BD0, 0x294, 1, 1 +.endif gAreaRoomMap_CrenelCaves_12:: @ 0810397C +.ifdef EU + map_bottom 0x99C60-0x4, 0x12C, 1 + map_top 0x99D7C-0x4, 0x12C, 1, 1 +.else map_bottom 0x99C60, 0x12C, 1 map_top 0x99D7C, 0x12C, 1, 1 +.endif gAreaRoomMap_CrenelCaves_13:: @ 08103994 +.ifdef EU + map_bottom 0x99DB0-0x4, 0x12C, 1 + map_top 0x99EB4-0x4, 0x12C, 1, 1 +.else map_bottom 0x99DB0, 0x12C, 1 map_top 0x99EB4, 0x12C, 1, 1 +.endif gAreaRoomMap_CrenelCaves_14:: @ 081039AC +.ifdef EU + map_bottom 0x99F0C-0x4, 0x12C, 1 + map_top 0x9A010-0x4, 0x12C, 1, 1 +.else map_bottom 0x99F0C, 0x12C, 1 map_top 0x9A010, 0x12C, 1, 1 +.endif gAreaRoomMap_CrenelCaves_15:: @ 081039C4 +.ifdef EU + map_bottom 0x9A050-0x4, 0x12C, 1 + map_top 0x9A148-0x4, 0x12C, 1, 1 +.else map_bottom 0x9A050, 0x12C, 1 map_top 0x9A148, 0x12C, 1, 1 +.endif gAreaRoomMap_CrenelCaves_16:: @ 081039DC +.ifdef EU + map_bottom 0x9A18C-0x4, 0x1FE, 1 + map_top 0x9A308-0x4, 0x1FE, 1, 1 +.else map_bottom 0x9A18C, 0x1FE, 1 map_top 0x9A308, 0x1FE, 1, 1 +.endif gAreaRoomMaps_CrenelCaves:: @ 081039F4 .4byte gAreaRoomMap_CrenelCaves_0 @@ -364,16 +651,31 @@ gAreaRoomMaps_CrenelCaves:: @ 081039F4 .4byte gAreaRoomMap_CrenelCaves_16 gAreaRoomMap_GreatFairies_0:: @ 08103A38 +.ifdef EU + map_bottom 0x9F744-0x4, 0x21C, 1 + map_top 0x9F924-0x4, 0x21C, 1, 1 +.else map_bottom 0x9F744, 0x21C, 1 map_top 0x9F924, 0x21C, 1, 1 +.endif gAreaRoomMap_GreatFairies_1:: @ 08103A50 +.ifdef EU + map_bottom 0x9F9C4-0x4, 0x21C, 1 + map_top 0x9FB98-0x4, 0x21C, 1, 1 +.else map_bottom 0x9F9C4, 0x21C, 1 map_top 0x9FB98, 0x21C, 1, 1 +.endif gAreaRoomMap_GreatFairies_2:: @ 08103A68 +.ifdef EU + map_bottom 0x9FC38-0x4, 0x21C, 1 + map_top 0x9FE14-0x4, 0x21C, 1, 1 +.else map_bottom 0x9FC38, 0x21C, 1 map_top 0x9FE14, 0x21C, 1, 1 +.endif gAreaRoomMaps_GreatFairies:: @ 08103A80 .4byte gAreaRoomMap_GreatFairies_0 @@ -386,26 +688,46 @@ gAreaRoomMaps_GreatFairies:: @ 08103A80 .4byte gAreaRoomMap_Unused gAreaRoomMap_LakeWoodsCave_0:: @ 08103AA0 +.ifdef EU + map_bottom 0xCD968-0x4, 0x1F02, 1 + map_top 0xCE2AC-0x4, 0x1F02, 1, 1 +.else map_bottom 0xCD968, 0x1F02, 1 map_top 0xCE2AC, 0x1F02, 1, 1 +.endif gAreaRoomMaps_LakeWoodsCave:: @ 08103AB8 .4byte gAreaRoomMap_LakeWoodsCave_0 gAreaRoomMap_HyruleDigCaves_0:: @ 08103ABC +.ifdef EU + map_bottom 0xCFEE4-0x4, 0x1D88, 1 + map_top 0xD07C0-0x4, 0x1D88, 1, 1 +.else map_bottom 0xCFEE4, 0x1D88, 1 map_top 0xD07C0, 0x1D88, 1, 1 +.endif gAreaRoomMaps_HyruleDigCaves:: @ 08103AD4 .4byte gAreaRoomMap_HyruleDigCaves_0 gAreaRoomMap_DigCaves_0:: @ 08103AD8 +.ifdef EU + map_bottom 0xD1410-0x4, 0x7F8, 1 + map_top 0xD16C8-0x4, 0x7F8, 1, 1 +.else map_bottom 0xD1410, 0x7F8, 1 map_top 0xD16C8, 0x7F8, 1, 1 +.endif gAreaRoomMap_DigCaves_1:: @ 08103AF0 +.ifdef EU + map_bottom 0xD187C-0x4, 0xE10, 1 + map_top 0xD1D2C-0x4, 0xE10, 1, 1 +.else map_bottom 0xD187C, 0xE10, 1 map_top 0xD1D2C, 0xE10, 1, 1 +.endif gAreaRoomMaps_DigCaves1:: @ 08103B08 .4byte gAreaRoomMap_DigCaves_0 @@ -414,45 +736,85 @@ gAreaRoomMaps_DigCaves1:: @ 08103B08 .4byte gAreaRoomMap_DigCaves_1 gAreaRoomMap_CrenelDigCave_0:: @ 08103B18 +.ifdef EU + map_bottom 0xD0D00-0x4, 0x7C0, 1 + map_top 0xD1140-0x4, 0x7C0, 1, 1 +.else map_bottom 0xD0D00, 0x7C0, 1 map_top 0xD1140, 0x7C0, 1, 1 +.endif gAreaRoomMaps_CrenelDigCave:: @ 08103B30 .4byte gAreaRoomMap_CrenelDigCave_0 gAreaRoomMap_VeilFallsDigCave_0:: @ 08103B34 +.ifdef EU + map_bottom 0xD2000-0x4, 0xEC4, 1 + map_top 0xD24FC-0x4, 0xEC4, 1, 1 +.else map_bottom 0xD2000, 0xEC4, 1 map_top 0xD24FC, 0xEC4, 1, 1 +.endif gAreaRoomMaps_VeilFallsDigCave:: @ 08103B4C .4byte gAreaRoomMap_VeilFallsDigCave_0 gAreaRoomMap_CastorWildsDigCave_0:: @ 08103B50 +.ifdef EU + map_bottom 0xCF2D0-0x4, 0x1D88, 1 + map_top 0xCFACC-0x4, 0x1D88, 1, 1 +.else map_bottom 0xCF2D0, 0x1D88, 1 map_top 0xCFACC, 0x1D88, 1, 1 +.endif gAreaRoomMaps_CastorWildsDigCave:: @ 08103B68 .4byte gAreaRoomMap_CastorWildsDigCave_0 gAreaRoomMap_OuterFortressOfWinds_0:: @ 08103B6C +.ifdef EU + map_bottom 0xD27E0-0x4, 0x5FE, 1 + map_top 0xD2A10-0x4, 0x5FE, 1, 1 +.else map_bottom 0xD27E0, 0x5FE, 1 map_top 0xD2A10, 0x5FE, 1, 1 +.endif gAreaRoomMap_OuterFortressOfWinds_1:: @ 08103B84 +.ifdef EU + map_bottom 0xD2BAC-0x4, 0x938, 1 + map_top 0xD2F0C-0x4, 0x938, 1, 1 +.else map_bottom 0xD2BAC, 0x938, 1 map_top 0xD2F0C, 0x938, 1, 1 +.endif gAreaRoomMap_OuterFortressOfWinds_2:: @ 08103B9C +.ifdef EU + map_bottom 0xD31B4-0x4, 0x5FE, 1 + map_top 0xD3434-0x4, 0x5FE, 1, 1 +.else map_bottom 0xD31B4, 0x5FE, 1 map_top 0xD3434, 0x5FE, 1, 1 +.endif gAreaRoomMap_OuterFortressOfWinds_3:: @ 08103BB4 +.ifdef EU + map_bottom 0xD3618-0x4, 0x1EE, 1 + map_top 0xD3708-0x4, 0x1EE, 1, 1 +.else map_bottom 0xD3618, 0x1EE, 1 map_top 0xD3708, 0x1EE, 1, 1 +.endif gAreaRoomMap_OuterFortressOfWinds_4:: @ 08103BCC +.ifdef EU + map_bottom 0xD3814-0x4, 0x186, 1 + map_top 0xD3900-0x4, 0x186, 1, 1 +.else map_bottom 0xD3814, 0x186, 1 map_top 0xD3900, 0x186, 1, 1 +.endif gAreaRoomMaps_OuterFortressOfWinds:: @ 08103BE4 .4byte gAreaRoomMap_OuterFortressOfWinds_0 @@ -462,58 +824,108 @@ gAreaRoomMaps_OuterFortressOfWinds:: @ 08103BE4 .4byte gAreaRoomMap_OuterFortressOfWinds_4 gAreaRoomMap_HyliaDigCaves_0:: @ 08103BF8 +.ifdef EU + map_bottom 0xCE79C-0x4, 0x220, 1 + map_top 0xCE8CC-0x4, 0x220, 1, 1 +.else map_bottom 0xCE79C, 0x220, 1 map_top 0xCE8CC, 0x220, 1, 1 +.endif gAreaRoomMap_HyliaDigCaves_1:: @ 08103C10 +.ifdef EU + map_bottom 0xCE978-0x4, 0xD4A, 1 + map_top 0xCEEF8-0x4, 0xD4A, 1, 1 +.else map_bottom 0xCE978, 0xD4A, 1 map_top 0xCEEF8, 0xD4A, 1, 1 +.endif gAreaRoomMaps_HyliaDigCaves:: @ 08103C28 .4byte gAreaRoomMap_HyliaDigCaves_0 .4byte gAreaRoomMap_HyliaDigCaves_1 gAreaRoomMap_Empty_0:: @ 08103C30 +.ifdef EU + map_bottom 0x8C7D4-0x4, 0x1F02, 1 + map_top 0x8CD7C-0x4, 0x1F02, 1, 1 +.else map_bottom 0x8C7D4, 0x1F02, 1 map_top 0x8CD7C, 0x1F02, 1, 1 +.endif gAreaRoomMaps_Empty:: @ 08103C48 .4byte gAreaRoomMap_Empty_0 .4byte gAreaRoomMap_Empty_0 gAreaRoomMap_MinishVillage_0:: @ 08103C50 +.ifdef EU + map_bottom 0xE0F04-0x4, 0x1F02, 1 + map_top 0xE1ACC-0x4, 0x1F02, 1, 1 +.else map_bottom 0xE0F04, 0x1F02, 1 map_top 0xE1ACC, 0x1F02, 1, 1 +.endif gAreaRoomMap_MinishVillage_1:: @ 08103C68 +.ifdef EU + map_bottom 0xE2584-0x4, 0x618, 1 + map_top 0xE2728-0x4, 0x618, 1, 1 +.else map_bottom 0xE2584, 0x618, 1 map_top 0xE2728, 0x618, 1, 1 +.endif gAreaRoomMaps_MinishVillage:: @ 08103C80 .4byte gAreaRoomMap_MinishVillage_0 .4byte gAreaRoomMap_MinishVillage_1 gAreaRoomMap_MelarisMine_0:: @ 08103C88 +.ifdef EU + map_bottom 0xEA6B4-0x4, 0xDB6, 1 + map_top 0xEAE44-0x4, 0xDB6, 1, 1 +.else map_bottom 0xEA6B4, 0xDB6, 1 map_top 0xEAE44, 0xDB6, 1, 1 +.endif gAreaRoomMaps_MelarisMine:: @ 08103CA0 .4byte gAreaRoomMap_MelarisMine_0 gAreaRoomMap_MinishPaths1_0:: @ 08103CA4 +.ifdef EU + map_bottom 0xEF458-0x4, 0x5DC, 1, 1 +.else map_bottom 0xEF458, 0x5DC, 1, 1 +.endif gAreaRoomMap_MinishPaths1_1:: @ 08103CB0 +.ifdef EU + map_bottom 0xEF618-0x4, 0x5DC, 1, 1 +.else map_bottom 0xEF618, 0x5DC, 1, 1 +.endif gAreaRoomMap_MinishPaths1_2:: @ 08103CBC +.ifdef EU + map_bottom 0xEF830-0x4, 0x5DC, 1, 1 +.else map_bottom 0xEF830, 0x5DC, 1, 1 +.endif gAreaRoomMap_MinishPaths1_3:: @ 08103CC8 +.ifdef EU + map_bottom 0xEFA5C-0x4, 0x5DC, 1, 1 +.else map_bottom 0xEFA5C, 0x5DC, 1, 1 +.endif gAreaRoomMap_MinishPaths1_4:: @ 08103CD4 +.ifdef EU + map_bottom 0xEFC64-0x4, 0x5DC, 1, 1 +.else map_bottom 0xEFC64, 0x5DC, 1, 1 +.endif gAreaRoomMaps_MinishPaths1:: @ 08103CE0 .4byte gAreaRoomMap_MinishPaths1_0 @@ -523,16 +935,32 @@ gAreaRoomMaps_MinishPaths1:: @ 08103CE0 .4byte gAreaRoomMap_MinishPaths1_4 gAreaRoomMap_CrenelMinishPaths_0:: @ 08103CF4 +.ifdef EU + map_bottom 0xF6B30-0x4, 0x5DC, 1, 1 +.else map_bottom 0xF6B30, 0x5DC, 1, 1 +.endif gAreaRoomMap_CrenelMinishPaths_1:: @ 08103D00 +.ifdef EU + map_bottom 0xF6D24-0x4, 0x5DC, 1, 1 +.else map_bottom 0xF6D24, 0x5DC, 1, 1 +.endif gAreaRoomMap_CrenelMinishPaths_2:: @ 08103D0C +.ifdef EU + map_bottom 0xF6FCC-0x4, 0x4B0, 1, 1 +.else map_bottom 0xF6FCC, 0x4B0, 1, 1 +.endif gAreaRoomMap_CrenelMinishPaths_3:: @ 08103D18 +.ifdef EU + map_bottom 0xF714C-0x4, 0x4B0, 1, 1 +.else map_bottom 0xF714C, 0x4B0, 1, 1 +.endif gAreaRoomMaps_CrenelMinishPaths:: @ 08103D24 .4byte gAreaRoomMap_CrenelMinishPaths_0 @@ -542,108 +970,213 @@ gAreaRoomMaps_CrenelMinishPaths:: @ 08103D24 gAreaRoomMap_MinishHouseInteriors_0:: @ 08103D34 map_bottom 0x0, 0x2000, 1 +.ifdef EU + map_unknown 0x139D8C-0x4, 0x96, 1 + map_unknown_2 0x139804-0x4, 0x800, 1, 1 +.else map_unknown 0x139D8C, 0x96, 1 map_unknown_2 0x139804, 0x800, 1, 1 +.endif gAreaRoomMap_MinishHouseInteriors_1:: @ 08103D58 map_bottom 0x0, 0x2000, 1 +.ifdef EU + map_unknown 0x13E770-0x4, 0x96, 1 + map_unknown_2 0x139DCC-0x4, 0x800, 1, 1 +.else map_unknown 0x13E770, 0x96, 1 map_unknown_2 0x139DCC, 0x800, 1, 1 +.endif gAreaRoomMap_MinishHouseInteriors_2:: @ 08103D7C map_bottom 0x0, 0x2000, 1 +.ifdef EU + map_unknown 0x142334-0x4, 0x1D0, 1 + map_unknown_2 0x13E7AC-0x4, 0x1000, 1, 1 +.else map_unknown 0x142334, 0x1D0, 1 map_unknown_2 0x13E7AC, 0x1000, 1, 1 +.endif gAreaRoomMap_MinishHouseInteriors_3:: @ 08103DA0 map_bottom 0x0, 0x2000, 1 +.ifdef EU + map_unknown 0x144C24-0x4, 0xA0, 1 + map_unknown_2 0x1423A4-0x4, 0x800, 1, 1 +.else map_unknown 0x144C24, 0xA0, 1 map_unknown_2 0x1423A4, 0x800, 1, 1 +.endif gAreaRoomMap_MinishHouseInteriors_4:: @ 08103DC4 map_bottom 0x0, 0x2000, 1 +.ifdef EU + map_unknown 0x147460-0x4, 0xA0, 1 + map_unknown_2 0x144C58-0x4, 0x800, 1, 1 +.else map_unknown 0x147460, 0xA0, 1 map_unknown_2 0x144C58, 0x800, 1, 1 +.endif gAreaRoomMap_MinishHouseInteriors_5:: @ 08103DE8 map_bottom 0x0, 0x2000, 1 +.ifdef EU + map_unknown 0x149B84-0x4, 0xA0, 1 + map_unknown_2 0x14748C-0x4, 0x800, 1, 1 +.else map_unknown 0x149B84, 0xA0, 1 map_unknown_2 0x14748C, 0x800, 1, 1 +.endif gAreaRoomMap_MinishHouseInteriors_6:: @ 08103E0C map_bottom 0x0, 0x2000, 1 +.ifdef EU + map_unknown 0x14C7B0-0x4, 0xA0, 1 + map_unknown_2 0x149BB4-0x4, 0x800, 1, 1 +.else map_unknown 0x14C7B0, 0xA0, 1 map_unknown_2 0x149BB4, 0x800, 1, 1 +.endif gAreaRoomMap_MinishHouseInteriors_8:: @ 08103E30 map_bottom 0x0, 0x2000, 1 +.ifdef EU + map_unknown 0x15583C-0x4, 0xE1, 1 + map_unknown_2 0x151BF4-0x4, 0x800, 1, 1 +.else map_unknown 0x15583C, 0xE1, 1 map_unknown_2 0x151BF4, 0x800, 1, 1 +.endif gAreaRoomMap_MinishHouseInteriors_7:: @ 08103E54 map_bottom 0x0, 0x2000, 1 +.ifdef EU + map_unknown 0x151BC0-0x4, 0x96, 1 + map_unknown_2 0x14C7EC-0x4, 0x800, 1, 1 +.else map_unknown 0x151BC0, 0x96, 1 map_unknown_2 0x14C7EC, 0x800, 1, 1 +.endif gAreaRoomMap_MinishHouseInteriors_9:: @ 08103E78 map_bottom 0x0, 0x2000, 1 +.ifdef EU + map_unknown 0x15A290-0x4, 0x159, 1 + map_unknown_2 0x15588C-0x4, 0x1000, 1, 1 +.else map_unknown 0x15A290, 0x159, 1 map_unknown_2 0x15588C, 0x1000, 1, 1 +.endif gAreaRoomMap_MinishHouseInteriors_10:: @ 08103E9C map_bottom 0x0, 0x2000, 1 +.ifdef EU + map_unknown 0x15D544-0x4, 0x96, 1 + map_unknown_2 0x15A2E4-0x4, 0x800, 1, 1 +.else map_unknown 0x15D544, 0x96, 1 map_unknown_2 0x15A2E4, 0x800, 1, 1 +.endif gAreaRoomMap_MinishHouseInteriors_11:: @ 08103EC0 map_bottom 0x0, 0x2000, 1 +.ifdef EU + map_unknown 0x160898-0x4, 0x96, 1 + map_unknown_2 0x15D57C-0x4, 0x800, 1, 1 +.else map_unknown 0x160898, 0x96, 1 map_unknown_2 0x15D57C, 0x800, 1, 1 +.endif gAreaRoomMap_MinishHouseInteriors_12:: @ 08103EE4 map_bottom 0x0, 0x2000, 1 +.ifdef EU + map_unknown 0x163698-0x4, 0xDC, 1 + map_unknown_2 0x1608DC-0x4, 0x1000, 1, 1 +.else map_unknown 0x163698, 0xDC, 1 map_unknown_2 0x1608DC, 0x1000, 1, 1 +.endif gAreaRoomMap_MinishHouseInteriors_13:: @ 08103F08 map_bottom 0x0, 0x2000, 1 +.ifdef EU + map_unknown 0x16C6F8-0x4, 0x96, 1 + map_unknown_2 0x1692D8-0x4, 0x800, 1, 1 +.else map_unknown 0x16C6F8, 0x96, 1 map_unknown_2 0x1692D8, 0x800, 1, 1 +.endif gAreaRoomMap_MinishHouseInteriors_14:: @ 08103F2C map_bottom 0x0, 0x2000, 1 +.ifdef EU + map_unknown 0x16FA58-0x4, 0x96, 1 + map_unknown_2 0x16C730-0x4, 0x800, 1, 1 +.else map_unknown 0x16FA58, 0x96, 1 map_unknown_2 0x16C730, 0x800, 1, 1 +.endif gAreaRoomMap_MinishHouseInteriors_15:: @ 08103F50 map_bottom 0x0, 0x2000, 1 +.ifdef EU + map_unknown 0x172E58-0x4, 0x96, 1 + map_unknown_2 0x16FA8C-0x4, 0x800, 1, 1 +.else map_unknown 0x172E58, 0x96, 1 map_unknown_2 0x16FA8C, 0x800, 1, 1 +.endif gAreaRoomMap_MinishHouseInteriors_16:: @ 08103F74 map_bottom 0x0, 0x2000, 1 +.ifdef EU + map_unknown 0x17519C-0x4, 0x96, 1 + map_unknown_2 0x172E8C-0x4, 0x800, 1, 1 +.else map_unknown 0x17519C, 0x96, 1 map_unknown_2 0x172E8C, 0x800, 1, 1 +.endif gAreaRoomMap_MinishHouseInteriors_17:: @ 08103F98 map_bottom 0x0, 0x2000, 1 +.ifdef EU + map_unknown 0x178664-0x4, 0x96, 1 + map_unknown_2 0x1751D0-0x4, 0x800, 1, 1 +.else map_unknown 0x178664, 0x96, 1 map_unknown_2 0x1751D0, 0x800, 1, 1 +.endif gAreaRoomMap_MinishHouseInteriors_18:: @ 08103FBC map_bottom 0x0, 0x2000, 1 +.ifdef EU + map_unknown 0x17B3B8-0x4, 0x96, 1 + map_unknown_2 0x1786A0-0x4, 0x800, 1, 1 +.else map_unknown 0x17B3B8, 0x96, 1 map_unknown_2 0x1786A0, 0x800, 1, 1 +.endif gAreaRoomMap_MinishHouseInteriors_19:: @ 08103FE0 map_bottom 0x0, 0x2000, 1 +.ifdef EU + map_unknown 0x17EA00-0x4, 0x96, 1 + map_unknown_2 0x17B3F0-0x4, 0x800, 1, 1 +.else map_unknown 0x17EA00, 0x96, 1 map_unknown_2 0x17B3F0, 0x800, 1, 1 +.endif gAreaRoomMap_MinishHouseInteriors_20:: @ 08104004 map_bottom 0x0, 0x2000, 1 +.ifdef EU + map_unknown 0x181E7C-0x4, 0x96, 1 + map_unknown_2 0x17EA34-0x4, 0x800, 1, 1 +.else map_unknown 0x181E7C, 0x96, 1 map_unknown_2 0x17EA34, 0x800, 1, 1 +.endif gAreaRoomMaps_MinishHouseInteriors:: @ 08104028 .4byte gAreaRoomMap_MinishHouseInteriors_0 @@ -689,48 +1222,93 @@ gAreaRoomMaps_MinishHouseInteriors:: @ 08104028 gAreaRoomMap_TownMinishHoles_0:: @ 081040C8 map_bottom 0x0, 0x2000, 1 +.ifdef EU + map_unknown 0x184554-0x4, 0x96, 1 + map_unknown_2 0x181EB4-0x4, 0x800, 1, 1 +.else map_unknown 0x184554, 0x96, 1 map_unknown_2 0x181EB4, 0x800, 1, 1 +.endif gAreaRoomMap_TownMinishHoles_1:: @ 081040EC map_bottom 0x0, 0x2000, 1 +.ifdef EU + map_unknown 0x1874D0-0x4, 0x96, 1 + map_unknown_2 0x184588-0x4, 0x800, 1, 1 +.else map_unknown 0x1874D0, 0x96, 1 map_unknown_2 0x184588, 0x800, 1, 1 +.endif gAreaRoomMap_TownMinishHoles_2:: @ 08104110 map_bottom 0x0, 0x2000, 1 +.ifdef EU + map_unknown 0x18A01C-0x4, 0x96, 1 + map_unknown_2 0x187514-0x4, 0x800, 1, 1 +.else map_unknown 0x18A01C, 0x96, 1 map_unknown_2 0x187514, 0x800, 1, 1 +.endif gAreaRoomMap_TownMinishHoles_3:: @ 08104134 map_bottom 0x0, 0x2000, 1 +.ifdef EU + map_unknown 0x18CFB8-0x4, 0x96, 1 + map_unknown_2 0x18A04C-0x4, 0x800, 1, 1 +.else map_unknown 0x18CFB8, 0x96, 1 map_unknown_2 0x18A04C, 0x800, 1, 1 +.endif gAreaRoomMap_TownMinishHoles_4:: @ 08104158 map_bottom 0x0, 0x2000, 1 +.ifdef EU + map_unknown 0x18F98C-0x4, 0x96, 1 + map_unknown_2 0x18CFF4-0x4, 0x800, 1, 1 +.else map_unknown 0x18F98C, 0x96, 1 map_unknown_2 0x18CFF4, 0x800, 1, 1 +.endif gAreaRoomMap_TownMinishHoles_5:: @ 0810417C map_bottom 0x0, 0x2000, 1 +.ifdef EU + map_unknown 0x192FC0-0x4, 0x96, 1 + map_unknown_2 0x18F9C8-0x4, 0x800, 1, 1 +.else map_unknown 0x192FC0, 0x96, 1 map_unknown_2 0x18F9C8, 0x800, 1, 1 +.endif gAreaRoomMap_TownMinishHoles_6:: @ 081041A0 map_bottom 0x0, 0x2000, 1 +.ifdef EU + map_unknown 0x196F84-0x4, 0x24C, 1 + map_unknown_2 0x192FF4-0x4, 0x2000, 1, 1 +.else map_unknown 0x196F84, 0x24C, 1 map_unknown_2 0x192FF4, 0x2000, 1, 1 +.endif gAreaRoomMap_TownMinishHoles_7:: @ 081041C4 map_bottom 0x0, 0x2000, 1 +.ifdef EU + map_unknown 0x19BBAC-0x4, 0xE1, 1 + map_unknown_2 0x196FFC-0x4, 0x800, 1, 1 +.else map_unknown 0x19BBAC, 0xE1, 1 map_unknown_2 0x196FFC, 0x800, 1, 1 +.endif gAreaRoomMap_TownMinishHoles_8:: @ 081041E8 map_bottom 0x0, 0x2000, 1 +.ifdef EU + map_unknown 0x19FCC0-0x4, 0x190, 1 + map_unknown_2 0x19BBE4-0x4, 0x2000, 1, 1 +.else map_unknown 0x19FCC0, 0x190, 1 map_unknown_2 0x19BBE4, 0x2000, 1, 1 +.endif gAreaRoomMaps_TownMinishHoles:: @ 0810420C .4byte gAreaRoomMap_TownMinishHoles_0 @@ -783,56 +1361,121 @@ gAreaRoomMaps_TownMinishHoles:: @ 0810420C .4byte 0x0 gAreaRoomMap_HouseInteriors1_0:: @ 081042CC +.ifdef EU + map_bottom 0x132A1C-0x4, 0x198, 1 + map_top 0x132B6C-0x4, 0x198, 1, 1 +.else map_bottom 0x132A1C, 0x198, 1 map_top 0x132B6C, 0x198, 1, 1 +.endif gAreaRoomMap_HouseInteriors1_1:: @ 081042E4 +.ifdef EU + map_bottom 0x132BB4-0x4, 0x14A, 1 + map_top 0x132CD8-0x4, 0x14A, 1, 1 +.else map_bottom 0x132BB4, 0x14A, 1 map_top 0x132CD8, 0x14A, 1, 1 +.endif gAreaRoomMap_HouseInteriors1_2:: @ 081042FC +.ifdef EU + map_bottom 0x132D38-0x4, 0x14A, 1 + map_top 0x132E50-0x4, 0x14A, 1, 1 +.else map_bottom 0x132D38, 0x14A, 1 map_top 0x132E50, 0x14A, 1, 1 +.endif gAreaRoomMap_HouseInteriors1_3:: @ 08104314 +.ifdef EU + map_bottom 0x132E80-0x4, 0x2C0, 1 + map_top 0x13305C-0x4, 0x2C0, 1, 1 +.else map_bottom 0x132E80, 0x2C0, 1 map_top 0x13305C, 0x2C0, 1, 1 +.endif gAreaRoomMap_HouseInteriors1_4:: @ 0810432C +.ifdef EU + map_bottom 0x1330E8-0x4, 0x1A4, 1 + map_top 0x13322C-0x4, 0x1A4, 1, 1 +.else map_bottom 0x1330E8, 0x1A4, 1 map_top 0x13322C, 0x1A4, 1, 1 +.endif gAreaRoomMap_HouseInteriors1_5:: @ 08104344 +.ifdef EU + map_bottom 0x133280-0x4, 0x12C, 1 + map_top 0x133384-0x4, 0x12C, 1, 1 +.else map_bottom 0x133280, 0x12C, 1 map_top 0x133384, 0x12C, 1, 1 +.endif gAreaRoomMap_HouseInteriors1_6:: @ 0810435C +.ifdef EU + map_bottom 0x1333F0-0x4, 0x12C, 1 + map_top 0x1334F4-0x4, 0x12C, 1, 1 +.else map_bottom 0x1333F0, 0x12C, 1 map_top 0x1334F4, 0x12C, 1, 1 +.endif gAreaRoomMap_HouseInteriors1_7:: @ 08104374 +.ifdef EU + map_bottom 0x133544-0x4, 0x12C, 1 + map_top 0x133640-0x4, 0x12C, 1, 1 +.else map_bottom 0x133544, 0x12C, 1 map_top 0x133640, 0x12C, 1, 1 +.endif gAreaRoomMap_HouseInteriors1_8:: @ 0810438C +.ifdef EU + map_bottom 0x133694-0x4, 0x12C, 1 + map_top 0x133790-0x4, 0x12C, 1, 1 +.else map_bottom 0x133694, 0x12C, 1 map_top 0x133790, 0x12C, 1, 1 +.endif gAreaRoomMap_HouseInteriors1_9:: @ 081043A4 +.ifdef EU + map_bottom 0x1337C0-0x4, 0x348, 1 + map_top 0x133A3C-0x4, 0x348, 1, 1 +.else map_bottom 0x1337C0, 0x348, 1 map_top 0x133A3C, 0x348, 1, 1 +.endif gAreaRoomMap_HouseInteriors1_10:: @ 081043BC +.ifdef EU + map_bottom 0x133ACC-0x4, 0x12C, 1 + map_top 0x133BDC-0x4, 0x12C, 1, 1 +.else map_bottom 0x133ACC, 0x12C, 1 map_top 0x133BDC, 0x12C, 1, 1 +.endif gAreaRoomMap_HouseInteriors1_11:: @ 081043D4 +.ifdef EU + map_bottom 0x133C08-0x4, 0x1C2, 1 + map_top 0x133D90-0x4, 0x1C2, 1, 1 +.else map_bottom 0x133C08, 0x1C2, 1 map_top 0x133D90, 0x1C2, 1, 1 +.endif gAreaRoomMap_HouseInteriors1_12:: @ 081043EC +.ifdef EU + map_bottom 0x133DD0-0x4, 0x1B8, 1 + map_top 0x133F48-0x4, 0x1B8, 1, 1 +.else map_bottom 0x133DD0, 0x1B8, 1 map_top 0x133F48, 0x1B8, 1, 1 +.endif gAreaRoomMaps_HouseInteriors1:: @ 08104404 .4byte gAreaRoomMap_HouseInteriors1_0 @@ -853,80 +1496,175 @@ gAreaRoomMaps_HouseInteriors1:: @ 08104404 .4byte 0x0 gAreaRoomMap_HouseInteriors2_0:: @ 08104444 +.ifdef EU + map_bottom 0x12F9C8-0x4, 0x12C, 1 + map_top 0x12FAE8-0x4, 0x12C, 1, 1 +.else map_bottom 0x12F9C8, 0x12C, 1 map_top 0x12FAE8, 0x12C, 1, 1 +.endif gAreaRoomMap_HouseInteriors2_1:: @ 0810445C +.ifdef EU + map_bottom 0x12FB40-0x4, 0x168, 1 + map_top 0x12FC5C-0x4, 0x168, 1, 1 +.else map_bottom 0x12FB40, 0x168, 1 map_top 0x12FC5C, 0x168, 1, 1 +.endif gAreaRoomMap_HouseInteriors2_2:: @ 08104474 +.ifdef EU + map_bottom 0x12FCD4-0x4, 0x168, 1 + map_top 0x12FDF4-0x4, 0x168, 1, 1 +.else map_bottom 0x12FCD4, 0x168, 1 map_top 0x12FDF4, 0x168, 1, 1 +.endif gAreaRoomMap_HouseInteriors2_3:: @ 0810448C +.ifdef EU + map_bottom 0x12FE64-0x4, 0x168, 1 + map_top 0x12FF88-0x4, 0x168, 1, 1 +.else map_bottom 0x12FE64, 0x168, 1 map_top 0x12FF88, 0x168, 1, 1 +.endif gAreaRoomMap_HouseInteriors2_4:: @ 081044A4 +.ifdef EU + map_bottom 0x12FFF4-0x4, 0x168, 1 + map_top 0x130118-0x4, 0x168, 1, 1 +.else map_bottom 0x12FFF4, 0x168, 1 map_top 0x130118, 0x168, 1, 1 +.endif gAreaRoomMap_HouseInteriors2_5:: @ 081044BC +.ifdef EU + map_bottom 0x130164-0x4, 0x14A, 1 + map_top 0x130254-0x4, 0x14A, 1, 1 +.else map_bottom 0x130164, 0x14A, 1 map_top 0x130254, 0x14A, 1, 1 +.endif gAreaRoomMap_HouseInteriors2_6:: @ 081044D4 +.ifdef EU + map_bottom 0x1302A8-0x4, 0x12C, 1 + map_top 0x1303C8-0x4, 0x12C, 1, 1 +.else map_bottom 0x1302A8, 0x12C, 1 map_top 0x1303C8, 0x12C, 1, 1 +.endif gAreaRoomMap_HouseInteriors2_7:: @ 081044EC +.ifdef EU + map_bottom 0x130428-0x4, 0x168, 1 + map_top 0x130540-0x4, 0x168, 1, 1 +.else map_bottom 0x130428, 0x168, 1 map_top 0x130540, 0x168, 1, 1 +.endif gAreaRoomMap_HouseInteriors2_8:: @ 08104504 +.ifdef EU + map_bottom 0x130598-0x4, 0x14A, 1 + map_top 0x1306C4-0x4, 0x14A, 1, 1 +.else map_bottom 0x130598, 0x14A, 1 map_top 0x1306C4, 0x14A, 1, 1 +.endif gAreaRoomMap_HouseInteriors2_9:: @ 0810451C +.ifdef EU + map_bottom 0x130718-0x4, 0x12C, 1 + map_top 0x130824-0x4, 0x12C, 1, 1 +.else map_bottom 0x130718, 0x12C, 1 map_top 0x130824, 0x12C, 1, 1 +.endif gAreaRoomMap_HouseInteriors2_10:: @ 08104534 +.ifdef EU + map_bottom 0x13087C-0x4, 0x12C, 1 + map_top 0x13098C-0x4, 0x12C, 1, 1 +.else map_bottom 0x13087C, 0x12C, 1 map_top 0x13098C, 0x12C, 1, 1 +.endif gAreaRoomMap_HouseInteriors2_11:: @ 0810454C +.ifdef EU + map_bottom 0x1309E0-0x4, 0x12C, 1 + map_top 0x130AF8-0x4, 0x12C, 1, 1 +.else map_bottom 0x1309E0, 0x12C, 1 map_top 0x130AF8, 0x12C, 1, 1 +.endif gAreaRoomMap_HouseInteriors2_12:: @ 08104564 +.ifdef EU + map_bottom 0x130B54-0x4, 0x12C, 1 + map_top 0x130C6C-0x4, 0x12C, 1, 1 +.else map_bottom 0x130B54, 0x12C, 1 map_top 0x130C6C, 0x12C, 1, 1 +.endif gAreaRoomMap_HouseInteriors2_13:: @ 0810457C +.ifdef EU + map_bottom 0x130CB4-0x4, 0x12C, 1 + map_top 0x130DD8-0x4, 0x12C, 1, 1 +.else map_bottom 0x130CB4, 0x12C, 1 map_top 0x130DD8, 0x12C, 1, 1 +.endif gAreaRoomMap_HouseInteriors2_14:: @ 08104594 +.ifdef EU + map_bottom 0x130E28-0x4, 0x12C, 1 + map_top 0x130F48-0x4, 0x12C, 1, 1 +.else map_bottom 0x130E28, 0x12C, 1 map_top 0x130F48, 0x12C, 1, 1 +.endif gAreaRoomMap_HouseInteriors2_15:: @ 081045AC +.ifdef EU + map_bottom 0x130F8C-0x4, 0x12C, 1 + map_top 0x1310A0-0x4, 0x12C, 1, 1 +.else map_bottom 0x130F8C, 0x12C, 1 map_top 0x1310A0, 0x12C, 1, 1 +.endif gAreaRoomMap_HouseInteriors2_16:: @ 081045C4 +.ifdef EU + map_bottom 0x1310FC-0x4, 0x14A, 1 + map_top 0x1311D0-0x4, 0x14A, 1, 1 +.else map_bottom 0x1310FC, 0x14A, 1 map_top 0x1311D0, 0x14A, 1, 1 +.endif gAreaRoomMap_HouseInteriors2_17:: @ 081045DC +.ifdef EU + map_bottom 0x131234-0x4, 0x12C, 1 + map_top 0x131340-0x4, 0x12C, 1, 1 +.else map_bottom 0x131234, 0x12C, 1 map_top 0x131340, 0x12C, 1, 1 +.endif gAreaRoomMap_HouseInteriors2_18:: @ 081045F4 +.ifdef EU + map_bottom 0x13138C-0x4, 0x12C, 1 + map_top 0x13149C-0x4, 0x12C, 1, 1 +.else map_bottom 0x13138C, 0x12C, 1 map_top 0x13149C, 0x12C, 1, 1 +.endif gAreaRoomMaps_HouseInteriors2:: @ 0810460C .4byte gAreaRoomMap_HouseInteriors2_0 @@ -979,28 +1717,58 @@ gAreaRoomMaps_HouseInteriors2:: @ 0810460C .4byte gAreaRoomMap_HouseInteriors2_0 gAreaRoomMap_HouseInteriors4_0:: @ 081046CC +.ifdef EU + map_bottom 0x1314F4-0x4, 0x168, 1 + map_top 0x131600-0x4, 0x168, 1, 1 +.else map_bottom 0x1314F4, 0x168, 1 map_top 0x131600, 0x168, 1, 1 +.endif gAreaRoomMap_HouseInteriors4_1:: @ 081046E4 +.ifdef EU + map_bottom 0x131644-0x4, 0x168, 1 + map_top 0x131798-0x4, 0x168, 1, 1 +.else map_bottom 0x131644, 0x168, 1 map_top 0x131798, 0x168, 1, 1 +.endif gAreaRoomMap_HouseInteriors4_2:: @ 081046FC +.ifdef EU + map_bottom 0x1317D8-0x4, 0x12C, 1 + map_top 0x1318EC-0x4, 0x12C, 1, 1 +.else map_bottom 0x1317D8, 0x12C, 1 map_top 0x1318EC, 0x12C, 1, 1 +.endif gAreaRoomMap_HouseInteriors4_3:: @ 08104714 +.ifdef EU + map_bottom 0x13192C-0x4, 0x12C, 1 + map_top 0x131A44-0x4, 0x12C, 1, 1 +.else map_bottom 0x13192C, 0x12C, 1 map_top 0x131A44, 0x12C, 1, 1 +.endif gAreaRoomMap_HouseInteriors4_4:: @ 0810472C +.ifdef EU + map_bottom 0x131A70-0x4, 0x12C, 1 + map_top 0x131B80-0x4, 0x12C, 1, 1 +.else map_bottom 0x131A70, 0x12C, 1 map_top 0x131B80, 0x12C, 1, 1 +.endif gAreaRoomMap_HouseInteriors4_5:: @ 08104744 +.ifdef EU + map_bottom 0x131BDC-0x4, 0x168, 1 + map_top 0x131D10-0x4, 0x168, 1, 1 +.else map_bottom 0x131BDC, 0x168, 1 map_top 0x131D10, 0x168, 1, 1 +.endif gAreaRoomMaps_HouseInteriors4:: @ 0810475C .4byte gAreaRoomMap_HouseInteriors4_0 @@ -1021,40 +1789,85 @@ gAreaRoomMaps_HouseInteriors4:: @ 0810475C .4byte gAreaRoomMap_HouseInteriors4_0 gAreaRoomMap_HouseInteriors3_0:: @ 0810479C +.ifdef EU + map_bottom 0x131D48-0x4, 0x186, 1 + map_top 0x131E7C-0x4, 0x186, 1, 1 +.else map_bottom 0x131D48, 0x186, 1 map_top 0x131E7C, 0x186, 1, 1 +.endif gAreaRoomMap_HouseInteriors3_1:: @ 081047B4 +.ifdef EU + map_bottom 0x131EF8-0x4, 0x186, 1 + map_top 0x13202C-0x4, 0x186, 1, 1 +.else map_bottom 0x131EF8, 0x186, 1 map_top 0x13202C, 0x186, 1, 1 +.endif gAreaRoomMap_HouseInteriors3_2:: @ 081047CC +.ifdef EU + map_bottom 0x13208C-0x4, 0x12C, 1 + map_top 0x1321A4-0x4, 0x12C, 1, 1 +.else map_bottom 0x13208C, 0x12C, 1 map_top 0x1321A4, 0x12C, 1, 1 +.endif gAreaRoomMap_HouseInteriors3_3:: @ 081047E4 +.ifdef EU + map_bottom 0x1321F4-0x4, 0x168, 1 + map_top 0x132304-0x4, 0x168, 1, 1 +.else map_bottom 0x1321F4, 0x168, 1 map_top 0x132304, 0x168, 1, 1 +.endif gAreaRoomMap_HouseInteriors3_4:: @ 081047FC +.ifdef EU + map_bottom 0x132354-0x4, 0x12C, 1 + map_top 0x132468-0x4, 0x12C, 1, 1 +.else map_bottom 0x132354, 0x12C, 1 map_top 0x132468, 0x12C, 1, 1 +.endif gAreaRoomMap_HouseInteriors3_5:: @ 08104814 +.ifdef EU + map_bottom 0x1324B4-0x4, 0x12C, 1 + map_top 0x1325AC-0x4, 0x12C, 1, 1 +.else map_bottom 0x1324B4, 0x12C, 1 map_top 0x1325AC, 0x12C, 1, 1 +.endif gAreaRoomMap_HouseInteriors3_6:: @ 0810482C +.ifdef EU + map_bottom 0x1325F4-0x4, 0x14A, 1 + map_top 0x13272C-0x4, 0x14A, 1, 1 +.else map_bottom 0x1325F4, 0x14A, 1 map_top 0x13272C, 0x14A, 1, 1 +.endif gAreaRoomMap_HouseInteriors3_7:: @ 08104844 +.ifdef EU + map_bottom 0x132778-0x4, 0x12C, 1 + map_top 0x132878-0x4, 0x12C, 1, 1 +.else map_bottom 0x132778, 0x12C, 1 map_top 0x132878, 0x12C, 1, 1 +.endif gAreaRoomMap_HouseInteriors3_8:: @ 0810485C +.ifdef EU + map_bottom 0x1328BC-0x4, 0x140, 1 + map_top 0x1329D4-0x4, 0x140, 1, 1 +.else map_bottom 0x1328BC, 0x140, 1 map_top 0x1329D4, 0x140, 1, 1 +.endif gAreaRoomMaps_HouseInteriors3:: @ 08104874 .4byte gAreaRoomMap_HouseInteriors3_0 @@ -1068,72 +1881,157 @@ gAreaRoomMaps_HouseInteriors3:: @ 08104874 .4byte gAreaRoomMap_HouseInteriors3_8 gAreaRoomMap_TreeInteriors_0:: @ 08104898 +.ifdef EU + map_bottom 0x1350AC-0x4, 0x12C, 0 + map_top 0x1351D8-0x4, 0x12C, 1, 1 +.else map_bottom 0x1350AC, 0x12C, 0 map_top 0x1351D8, 0x12C, 1, 1 +.endif gAreaRoomMap_TreeInteriors_1:: @ 081048B0 +.ifdef EU + map_bottom 0x135208-0x4, 0x12C, 0 + map_top 0x135334-0x4, 0x12C, 1, 1 +.else map_bottom 0x135208, 0x12C, 0 map_top 0x135334, 0x12C, 1, 1 +.endif gAreaRoomMap_TreeInteriors_2:: @ 081048C8 +.ifdef EU + map_bottom 0x135360-0x4, 0x12C, 0 + map_top 0x13548C-0x4, 0x12C, 1, 1 +.else map_bottom 0x135360, 0x12C, 0 map_top 0x13548C, 0x12C, 1, 1 +.endif gAreaRoomMap_TreeInteriors_3:: @ 081048E0 +.ifdef EU + map_bottom 0x1354D0-0x4, 0x12C, 0 + map_top 0x1355FC-0x4, 0x12C, 1, 1 +.else map_bottom 0x1354D0, 0x12C, 0 map_top 0x1355FC, 0x12C, 1, 1 +.endif gAreaRoomMap_TreeInteriors_4:: @ 081048F8 +.ifdef EU + map_bottom 0x135628-0x4, 0x12C, 0 + map_top 0x135754-0x4, 0x12C, 1, 1 +.else map_bottom 0x135628, 0x12C, 0 map_top 0x135754, 0x12C, 1, 1 +.endif gAreaRoomMap_TreeInteriors_5:: @ 08104910 +.ifdef EU + map_bottom 0x135780-0x4, 0x12C, 0 + map_top 0x1358AC-0x4, 0x12C, 1, 1 +.else map_bottom 0x135780, 0x12C, 0 map_top 0x1358AC, 0x12C, 1, 1 +.endif gAreaRoomMap_TreeInteriors_6:: @ 08104928 +.ifdef EU + map_bottom 0x1358D8-0x4, 0x12C, 0 + map_top 0x135A04-0x4, 0x12C, 1, 1 +.else map_bottom 0x1358D8, 0x12C, 0 map_top 0x135A04, 0x12C, 1, 1 +.endif gAreaRoomMap_TreeInteriors_7:: @ 08104940 +.ifdef EU + map_bottom 0x135A30-0x4, 0x12C, 0 + map_top 0x135B5C-0x4, 0x12C, 1, 1 +.else map_bottom 0x135A30, 0x12C, 0 map_top 0x135B5C, 0x12C, 1, 1 +.endif gAreaRoomMap_TreeInteriors_8:: @ 08104958 +.ifdef EU + map_bottom 0x135B88-0x4, 0x12C, 0 + map_top 0x135CB4-0x4, 0x12C, 1, 1 +.else map_bottom 0x135B88, 0x12C, 0 map_top 0x135CB4, 0x12C, 1, 1 +.endif gAreaRoomMap_TreeInteriors_9:: @ 08104970 +.ifdef EU + map_bottom 0x135CE0-0x4, 0x12C, 0 + map_top 0x135E0C-0x4, 0x12C, 1, 1 +.else map_bottom 0x135CE0, 0x12C, 0 map_top 0x135E0C, 0x12C, 1, 1 +.endif gAreaRoomMap_TreeInteriors_10:: @ 08104988 +.ifdef EU + map_bottom 0x135E38-0x4, 0x12C, 0 + map_top 0x135F64-0x4, 0x12C, 1, 1 +.else map_bottom 0x135E38, 0x12C, 0 map_top 0x135F64, 0x12C, 1, 1 +.endif gAreaRoomMap_TreeInteriors_11:: @ 081049A0 +.ifdef EU + map_bottom 0x135F90-0x4, 0x12C, 0 + map_top 0x1360BC-0x4, 0x12C, 1, 1 +.else map_bottom 0x135F90, 0x12C, 0 map_top 0x1360BC, 0x12C, 1, 1 +.endif gAreaRoomMap_TreeInteriors_12:: @ 081049B8 +.ifdef EU + map_bottom 0x1360EC-0x4, 0x12C, 0 + map_top 0x136218-0x4, 0x12C, 1, 1 +.else map_bottom 0x1360EC, 0x12C, 0 map_top 0x136218, 0x12C, 1, 1 +.endif gAreaRoomMap_TreeInteriors_13:: @ 081049D0 +.ifdef EU + map_bottom 0x136248-0x4, 0x12C, 0 + map_top 0x136374-0x4, 0x12C, 1, 1 +.else map_bottom 0x136248, 0x12C, 0 map_top 0x136374, 0x12C, 1, 1 +.endif gAreaRoomMap_TreeInteriors_14:: @ 081049E8 +.ifdef EU + map_bottom 0x1363CC-0x4, 0x12C, 0 + map_top 0x1364F8-0x4, 0x12C, 1, 1 +.else map_bottom 0x1363CC, 0x12C, 0 map_top 0x1364F8, 0x12C, 1, 1 +.endif gAreaRoomMap_TreeInteriors_15:: @ 08104A00 +.ifdef EU + map_bottom 0x136528-0x4, 0x12C, 0 + map_top 0x136654-0x4, 0x12C, 1, 1 +.else map_bottom 0x136528, 0x12C, 0 map_top 0x136654, 0x12C, 1, 1 +.endif gAreaRoomMap_TreeInteriors_16:: @ 08104A18 +.ifdef EU + map_bottom 0x136694-0x4, 0x12C, 0 + map_top 0x1367C0-0x4, 0x12C, 1, 1 +.else map_bottom 0x136694, 0x12C, 0 map_top 0x1367C0, 0x12C, 1, 1 +.endif gAreaRoomMaps_TreeInteriors:: @ 08104A30 .4byte gAreaRoomMap_TreeInteriors_0 @@ -1170,60 +2068,130 @@ gAreaRoomMaps_TreeInteriors:: @ 08104A30 .4byte gAreaRoomMap_TreeInteriors_16 gAreaRoomMap_Dojos_0:: @ 08104AB0 +.ifdef EU + map_bottom 0x133F88-0x4, 0x168, 1 + map_top 0x1340B0-0x4, 0x168, 1, 1 +.else map_bottom 0x133F88, 0x168, 1 map_top 0x1340B0, 0x168, 1, 1 +.endif gAreaRoomMap_Dojos_1:: @ 08104AC8 +.ifdef EU + map_bottom 0x1340EC-0x4, 0x168, 1 + map_top 0x13421C-0x4, 0x168, 1, 1 +.else map_bottom 0x1340EC, 0x168, 1 map_top 0x13421C, 0x168, 1, 1 +.endif gAreaRoomMap_Dojos_2:: @ 08104AE0 +.ifdef EU + map_bottom 0x134254-0x4, 0x168, 1 + map_top 0x134384-0x4, 0x168, 1, 1 +.else map_bottom 0x134254, 0x168, 1 map_top 0x134384, 0x168, 1, 1 +.endif gAreaRoomMap_Dojos_3:: @ 08104AF8 +.ifdef EU + map_bottom 0x1343BC-0x4, 0x168, 1 + map_top 0x1344E0-0x4, 0x168, 1, 1 +.else map_bottom 0x1343BC, 0x168, 1 map_top 0x1344E0, 0x168, 1, 1 +.endif gAreaRoomMap_Dojos_4:: @ 08104B10 +.ifdef EU + map_bottom 0x134518-0x4, 0x168, 1 + map_top 0x13463C-0x4, 0x168, 1, 1 +.else map_bottom 0x134518, 0x168, 1 map_top 0x13463C, 0x168, 1, 1 +.endif gAreaRoomMap_Dojos_5:: @ 08104B28 +.ifdef EU + map_bottom 0x134674-0x4, 0x168, 1 + map_top 0x1347A8-0x4, 0x168, 1, 1 +.else map_bottom 0x134674, 0x168, 1 map_top 0x1347A8, 0x168, 1, 1 +.endif gAreaRoomMap_Dojos_6:: @ 08104B40 +.ifdef EU + map_bottom 0x1347E0-0x4, 0x168, 1 + map_top 0x13490C-0x4, 0x168, 1, 1 +.else map_bottom 0x1347E0, 0x168, 1 map_top 0x13490C, 0x168, 1, 1 +.endif gAreaRoomMap_Dojos_7:: @ 08104B58 +.ifdef EU + map_bottom 0x134944-0x4, 0x12C, 1 + map_top 0x1349E4-0x4, 0x12C, 1, 1 +.else map_bottom 0x134944, 0x12C, 1 map_top 0x1349E4, 0x12C, 1, 1 +.endif gAreaRoomMap_Dojos_8:: @ 08104B70 +.ifdef EU + map_bottom 0x134A28-0x4, 0x12C, 1 + map_top 0x134ACC-0x4, 0x12C, 1, 1 +.else map_bottom 0x134A28, 0x12C, 1 map_top 0x134ACC, 0x12C, 1, 1 +.endif gAreaRoomMap_Dojos_9:: @ 08104B88 +.ifdef EU + map_bottom 0x134B1C-0x4, 0x12C, 1 + map_top 0x134BC0-0x4, 0x12C, 1, 1 +.else map_bottom 0x134B1C, 0x12C, 1 map_top 0x134BC0, 0x12C, 1, 1 +.endif gAreaRoomMap_Dojos_10:: @ 08104BA0 +.ifdef EU + map_bottom 0x134C34-0x4, 0x12C, 1 + map_top 0x134CF8-0x4, 0x12C, 1, 1 +.else map_bottom 0x134C34, 0x12C, 1 map_top 0x134CF8, 0x12C, 1, 1 +.endif gAreaRoomMap_Dojos_11:: @ 08104BB8 +.ifdef EU + map_bottom 0x134D28-0x4, 0x12C, 1 + map_top 0x134E28-0x4, 0x12C, 1, 1 +.else map_bottom 0x134D28, 0x12C, 1 map_top 0x134E28, 0x12C, 1, 1 +.endif gAreaRoomMap_Dojos_12:: @ 08104BD0 +.ifdef EU + map_bottom 0x134E58-0x4, 0x12C, 1 + map_top 0x134F54-0x4, 0x12C, 1, 1 +.else map_bottom 0x134E58, 0x12C, 1 map_top 0x134F54, 0x12C, 1, 1 +.endif gAreaRoomMap_Dojos_13:: @ 08104BE8 +.ifdef EU + map_bottom 0x134F84-0x4, 0x12C, 1 + map_top 0x13507C-0x4, 0x12C, 1, 1 +.else map_bottom 0x134F84, 0x12C, 1 map_top 0x13507C, 0x12C, 1, 1 +.endif gAreaRoomMaps_Dojos:: @ 08104C00 .4byte gAreaRoomMap_Dojos_0 @@ -1244,76 +2212,166 @@ gAreaRoomMaps_Dojos:: @ 08104C00 .4byte gAreaRoomMap_Dojos_0 gAreaRoomMap_MinishCracks_0:: @ 08104C40 +.ifdef EU + map_bottom 0x1367EC-0x4, 0x12C, 0 + map_top 0x136918-0x4, 0x12C, 1, 1 +.else map_bottom 0x1367EC, 0x12C, 0 map_top 0x136918, 0x12C, 1, 1 +.endif gAreaRoomMap_MinishCracks_1:: @ 08104C58 +.ifdef EU + map_bottom 0x136948-0x4, 0x12C, 0 + map_top 0x136A74-0x4, 0x12C, 1, 1 +.else map_bottom 0x136948, 0x12C, 0 map_top 0x136A74, 0x12C, 1, 1 +.endif gAreaRoomMap_MinishCracks_2:: @ 08104C70 +.ifdef EU + map_bottom 0x136AC4-0x4, 0x12C, 0 + map_top 0x136BF0-0x4, 0x12C, 1, 1 +.else map_bottom 0x136AC4, 0x12C, 0 map_top 0x136BF0, 0x12C, 1, 1 +.endif gAreaRoomMap_MinishCracks_3:: @ 08104C88 +.ifdef EU + map_bottom 0x136C44-0x4, 0x12C, 0 + map_top 0x136D70-0x4, 0x12C, 1, 1 +.else map_bottom 0x136C44, 0x12C, 0 map_top 0x136D70, 0x12C, 1, 1 +.endif gAreaRoomMap_MinishCracks_4:: @ 08104CA0 +.ifdef EU + map_bottom 0x136DC4-0x4, 0x12C, 0 + map_top 0x136EF0-0x4, 0x12C, 1, 1 +.else map_bottom 0x136DC4, 0x12C, 0 map_top 0x136EF0, 0x12C, 1, 1 +.endif gAreaRoomMap_MinishCracks_5:: @ 08104CB8 +.ifdef EU + map_bottom 0x136F40-0x4, 0x12C, 1 + map_top 0x137058-0x4, 0x12C, 1, 1 +.else map_bottom 0x136F40, 0x12C, 1 map_top 0x137058, 0x12C, 1, 1 +.endif gAreaRoomMap_MinishCracks_6:: @ 08104CD0 +.ifdef EU + map_bottom 0x13709C-0x4, 0x12C, 0 + map_top 0x1371C8-0x4, 0x12C, 1, 1 +.else map_bottom 0x13709C, 0x12C, 0 map_top 0x1371C8, 0x12C, 1, 1 +.endif gAreaRoomMap_MinishCracks_7:: @ 08104CE8 +.ifdef EU + map_bottom 0x1371F4-0x4, 0x12C, 0 + map_top 0x137320-0x4, 0x12C, 1, 1 +.else map_bottom 0x1371F4, 0x12C, 0 map_top 0x137320, 0x12C, 1, 1 +.endif gAreaRoomMap_MinishCracks_8:: @ 08104D00 +.ifdef EU + map_bottom 0x137374-0x4, 0x12C, 0 + map_top 0x1374A0-0x4, 0x12C, 1, 1 +.else map_bottom 0x137374, 0x12C, 0 map_top 0x1374A0, 0x12C, 1, 1 +.endif gAreaRoomMap_MinishCracks_9:: @ 08104D18 +.ifdef EU + map_bottom 0x1374D0-0x4, 0x12C, 0 + map_top 0x1375FC-0x4, 0x12C, 1, 1 +.else map_bottom 0x1374D0, 0x12C, 0 map_top 0x1375FC, 0x12C, 1, 1 +.endif gAreaRoomMap_MinishCracks_10:: @ 08104D30 +.ifdef EU + map_bottom 0x13762C-0x4, 0x12C, 0 + map_top 0x137758-0x4, 0x12C, 1, 1 +.else map_bottom 0x13762C, 0x12C, 0 map_top 0x137758, 0x12C, 1, 1 +.endif gAreaRoomMap_MinishCracks_11:: @ 08104D48 +.ifdef EU + map_bottom 0x137788-0x4, 0x12C, 0 + map_top 0x1378B4-0x4, 0x12C, 1, 1 +.else map_bottom 0x137788, 0x12C, 0 map_top 0x1378B4, 0x12C, 1, 1 +.endif gAreaRoomMap_MinishCracks_12:: @ 08104D60 +.ifdef EU + map_bottom 0x1378E4-0x4, 0x12C, 0 + map_top 0x137A10-0x4, 0x12C, 1, 1 +.else map_bottom 0x1378E4, 0x12C, 0 map_top 0x137A10, 0x12C, 1, 1 +.endif gAreaRoomMap_MinishCracks_13:: @ 08104D78 +.ifdef EU + map_bottom 0x137A40-0x4, 0x12C, 0 + map_top 0x137B6C-0x4, 0x12C, 1, 1 +.else map_bottom 0x137A40, 0x12C, 0 map_top 0x137B6C, 0x12C, 1, 1 +.endif gAreaRoomMap_MinishCracks_14:: @ 08104D90 +.ifdef EU + map_bottom 0x137B9C-0x4, 0x12C, 1 + map_top 0x137CAC-0x4, 0x12C, 1, 1 +.else map_bottom 0x137B9C, 0x12C, 1 map_top 0x137CAC, 0x12C, 1, 1 +.endif gAreaRoomMap_MinishCracks_15:: @ 08104DA8 +.ifdef EU + map_bottom 0x137CDC-0x4, 0x12C, 1 + map_top 0x137DEC-0x4, 0x12C, 1, 1 +.else map_bottom 0x137CDC, 0x12C, 1 map_top 0x137DEC, 0x12C, 1, 1 +.endif gAreaRoomMap_MinishCracks_16:: @ 08104DC0 +.ifdef EU + map_bottom 0x137E1C-0x4, 0x12C, 1 + map_top 0x137F2C-0x4, 0x12C, 1, 1 +.else map_bottom 0x137E1C, 0x12C, 1 map_top 0x137F2C, 0x12C, 1, 1 +.endif gAreaRoomMap_MinishCracks_17:: @ 08104DD8 +.ifdef EU + map_bottom 0x137F64-0x4, 0x12C, 1 + map_top 0x138078-0x4, 0x12C, 1, 1 +.else map_bottom 0x137F64, 0x12C, 1 map_top 0x138078, 0x12C, 1, 1 +.endif gAreaRoomMaps_MinishCracks:: @ 08104DF0 .4byte gAreaRoomMap_MinishCracks_0 @@ -1336,48 +2394,103 @@ gAreaRoomMaps_MinishCracks:: @ 08104DF0 .4byte gAreaRoomMap_MinishCracks_17 gAreaRoomMap_ArmosInterios_0:: @ 08104E38 +.ifdef EU + map_bottom 0xA595C-0x4, 0x12C, 0 + map_top 0xA5A88-0x4, 0x12C, 1, 1 +.else map_bottom 0xA595C, 0x12C, 0 map_top 0xA5A88, 0x12C, 1, 1 +.endif gAreaRoomMap_ArmosInterios_1:: @ 08104E50 +.ifdef EU + map_bottom 0xA5AC8-0x4, 0x12C, 0 + map_top 0xA5BF4-0x4, 0x12C, 1, 1 +.else map_bottom 0xA5AC8, 0x12C, 0 map_top 0xA5BF4, 0x12C, 1, 1 +.endif gAreaRoomMap_ArmosInterios_2:: @ 08104E68 +.ifdef EU + map_bottom 0xA5C34-0x4, 0x12C, 0 + map_top 0xA5D60-0x4, 0x12C, 1, 1 +.else map_bottom 0xA5C34, 0x12C, 0 map_top 0xA5D60, 0x12C, 1, 1 +.endif gAreaRoomMap_ArmosInterios_3:: @ 08104E80 +.ifdef EU + map_bottom 0xA5DA0-0x4, 0x12C, 0 + map_top 0xA5ECC-0x4, 0x12C, 1, 1 +.else map_bottom 0xA5DA0, 0x12C, 0 map_top 0xA5ECC, 0x12C, 1, 1 +.endif gAreaRoomMap_ArmosInterios_4:: @ 08104E98 +.ifdef EU + map_bottom 0xA5F0C-0x4, 0x12C, 0 + map_top 0xA6038-0x4, 0x12C, 1, 1 +.else map_bottom 0xA5F0C, 0x12C, 0 map_top 0xA6038, 0x12C, 1, 1 +.endif gAreaRoomMap_ArmosInterios_5:: @ 08104EB0 +.ifdef EU + map_bottom 0xA6078-0x4, 0x12C, 0 + map_top 0xA61A4-0x4, 0x12C, 1, 1 +.else map_bottom 0xA6078, 0x12C, 0 map_top 0xA61A4, 0x12C, 1, 1 +.endif gAreaRoomMap_ArmosInterios_6:: @ 08104EC8 +.ifdef EU + map_bottom 0xA61E4-0x4, 0x12C, 0 + map_top 0xA6310-0x4, 0x12C, 1, 1 +.else map_bottom 0xA61E4, 0x12C, 0 map_top 0xA6310, 0x12C, 1, 1 +.endif gAreaRoomMap_ArmosInterios_7:: @ 08104EE0 +.ifdef EU + map_bottom 0xA6350-0x4, 0x12C, 0 + map_top 0xA647C-0x4, 0x12C, 1, 1 +.else map_bottom 0xA6350, 0x12C, 0 map_top 0xA647C, 0x12C, 1, 1 +.endif gAreaRoomMap_ArmosInterios_8:: @ 08104EF8 +.ifdef EU + map_bottom 0xA64BC-0x4, 0x12C, 0 + map_top 0xA65E8-0x4, 0x12C, 1, 1 +.else map_bottom 0xA64BC, 0x12C, 0 map_top 0xA65E8, 0x12C, 1, 1 +.endif gAreaRoomMap_ArmosInterios_9:: @ 08104F10 +.ifdef EU + map_bottom 0xA6628-0x4, 0x12C, 0 + map_top 0xA6754-0x4, 0x12C, 1, 1 +.else map_bottom 0xA6628, 0x12C, 0 map_top 0xA6754, 0x12C, 1, 1 +.endif gAreaRoomMap_ArmosInterios_10:: @ 08104F28 +.ifdef EU + map_bottom 0xA6794-0x4, 0x12C, 0 + map_top 0xA68C0-0x4, 0x12C, 1, 1 +.else map_bottom 0xA6794, 0x12C, 0 map_top 0xA68C0, 0x12C, 1, 1 +.endif gAreaRoomMaps_ArmosInteriors:: @ 08104F40 .4byte gAreaRoomMap_ArmosInterios_0 @@ -1393,16 +2506,32 @@ gAreaRoomMaps_ArmosInteriors:: @ 08104F40 .4byte gAreaRoomMap_ArmosInterios_10 gAreaRoomMap_MinishRafters_0:: @ 08104F6C +.ifdef EU + map_bottom 0x1380A8-0x4, 0x3E0, 1, 1 +.else map_bottom 0x1380A8, 0x3E0, 1, 1 +.endif gAreaRoomMap_MinishRafters_1:: @ 08104F78 +.ifdef EU + map_bottom 0x1382F4-0x4, 0x3E0, 1, 1 +.else map_bottom 0x1382F4, 0x3E0, 1, 1 +.endif gAreaRoomMap_MinishRafters_2:: @ 08104F84 +.ifdef EU + map_bottom 0x138510-0x4, 0x3E0, 1, 1 +.else map_bottom 0x138510, 0x3E0, 1, 1 +.endif gAreaRoomMap_MinishRafters_3:: @ 08104F90 +.ifdef EU + map_bottom 0x1387B4-0x4, 0x3E0, 1, 1 +.else map_bottom 0x1387B4, 0x3E0, 1, 1 +.endif gAreaRoomMaps_MinishRafters:: @ 08104F9C .4byte gAreaRoomMap_MinishRafters_0 @@ -1411,32 +2540,62 @@ gAreaRoomMaps_MinishRafters:: @ 08104F9C .4byte gAreaRoomMap_MinishRafters_3 gAreaRoomMap_GoronCave_0:: @ 08104FAC +.ifdef EU + map_bottom 0xB0054-0x4, 0x12C, 1 + map_top 0xB0118-0x4, 0x12C, 1, 1 +.else map_bottom 0xB0054, 0x12C, 1 map_top 0xB0118, 0x12C, 1, 1 +.endif gAreaRoomMap_GoronCave_1:: @ 08104FC4 +.ifdef EU + map_bottom 0xB015C-0x4, 0x546, 1 + map_top 0xB03E0-0x4, 0x546, 1, 1 +.else map_bottom 0xB015C, 0x546, 1 map_top 0xB03E0, 0x546, 1, 1 +.endif gAreaRoomMaps_GoronCave:: @ 08104FDC .4byte gAreaRoomMap_GoronCave_0 .4byte gAreaRoomMap_GoronCave_1 gAreaRoomMap_WindTribeTower_0:: @ 08104FE4 +.ifdef EU + map_bottom 0x138BD8-0x4, 0x276, 1 + map_top 0x138DB8-0x4, 0x276, 1, 1 +.else map_bottom 0x138BD8, 0x276, 1 map_top 0x138DB8, 0x276, 1, 1 +.endif gAreaRoomMap_WindTribeTower_1:: @ 08104FFC +.ifdef EU + map_bottom 0x138E3C-0x4, 0x276, 1 + map_top 0x139028-0x4, 0x276, 1, 1 +.else map_bottom 0x138E3C, 0x276, 1 map_top 0x139028, 0x276, 1, 1 +.endif gAreaRoomMap_WindTribeTower_2:: @ 08105014 +.ifdef EU + map_bottom 0x1390A4-0x4, 0x276, 1 + map_top 0x13927C-0x4, 0x276, 1, 1 +.else map_bottom 0x1390A4, 0x276, 1 map_top 0x13927C, 0x276, 1, 1 +.endif gAreaRoomMap_WindTribeTower_3:: @ 0810502C +.ifdef EU + map_bottom 0x1392FC-0x4, 0x276, 1 + map_top 0x1394EC-0x4, 0x276, 1, 1 +.else map_bottom 0x1392FC, 0x276, 1 map_top 0x1394EC, 0x276, 1, 1 +.endif gAreaRoomMaps_WindTribeTower:: @ 08105044 .4byte gAreaRoomMap_WindTribeTower_0 @@ -1445,51 +2604,106 @@ gAreaRoomMaps_WindTribeTower:: @ 08105044 .4byte gAreaRoomMap_WindTribeTower_3 gAreaRoomMap_WindTribeTowerRoof_0:: @ 08105054 +.ifdef EU + map_bottom 0x13954C-0x4, 0x30C, 1 + map_top 0x1397A0-0x4, 0x30C, 1, 1 +.else map_bottom 0x13954C, 0x30C, 1 map_top 0x1397A0, 0x30C, 1, 1 +.endif gAreaRoomMaps_WindTribeTowerRoof:: @ 0810506C .4byte gAreaRoomMap_WindTribeTowerRoof_0 gAreaRoomMap_MinishCaves_0:: @ 08105070 +.ifdef EU + map_bottom 0xC12D4-0x4, 0x474, 1 + map_top 0xC15F4-0x4, 0x474, 1, 1 +.else map_bottom 0xC12D4, 0x474, 1 map_top 0xC15F4, 0x474, 1, 1 +.endif gAreaRoomMap_MinishCaves_1:: @ 08105088 +.ifdef EU + map_bottom 0xC16AC-0x4, 0x41A, 1 + map_top 0xC198C-0x4, 0x41A, 1, 1 +.else map_bottom 0xC16AC, 0x41A, 1 map_top 0xC198C, 0x41A, 1, 1 +.endif gAreaRoomMap_MinishCaves_2:: @ 081050A0 +.ifdef EU + map_bottom 0xC1A30-0x4, 0x1FE, 1 + map_top 0xC1B90-0x4, 0x1FE, 1, 1 +.else map_bottom 0xC1A30, 0x1FE, 1 map_top 0xC1B90, 0x1FE, 1, 1 +.endif gAreaRoomMap_MinishCaves_3:: @ 081050B8 +.ifdef EU + map_bottom 0xC1BEC-0x4, 0x4CE, 1 + map_top 0xC1EDC-0x4, 0x4CE, 1, 1 +.else map_bottom 0xC1BEC, 0x4CE, 1 map_top 0xC1EDC, 0x4CE, 1, 1 +.endif gAreaRoomMap_MinishCaves_4:: @ 081050D0 +.ifdef EU + map_bottom 0xC1FA0-0x4, 0x1C2, 1 + map_top 0xC2124-0x4, 0x1C2, 1, 1 +.else map_bottom 0xC1FA0, 0x1C2, 1 map_top 0xC2124, 0x1C2, 1, 1 +.endif gAreaRoomMap_MinishCaves_5:: @ 081050E8 +.ifdef EU + map_bottom 0xC2174-0x4, 0x258, 1 + map_top 0xC2368-0x4, 0x258, 1, 1 +.else map_bottom 0xC2174, 0x258, 1 map_top 0xC2368, 0x258, 1, 1 +.endif gAreaRoomMap_MinishCaves_6:: @ 08105100 +.ifdef EU + map_bottom 0xC23D8-0x4, 0x258, 1 + map_top 0xC25C4-0x4, 0x258, 1, 1 +.else map_bottom 0xC23D8, 0x258, 1 map_top 0xC25C4, 0x258, 1, 1 +.endif gAreaRoomMap_MinishCaves_7:: @ 08105118 +.ifdef EU + map_bottom 0xC262C-0x4, 0x744, 1 + map_top 0xC2A54-0x4, 0x744, 1, 1 +.else map_bottom 0xC262C, 0x744, 1 map_top 0xC2A54, 0x744, 1, 1 +.endif gAreaRoomMap_MinishCaves_8:: @ 08105130 +.ifdef EU + map_bottom 0xC2B64-0x4, 0x4B0, 1 + map_top 0xC2DFC-0x4, 0x4B0, 1, 1 +.else map_bottom 0xC2B64, 0x4B0, 1 map_top 0xC2DFC, 0x4B0, 1, 1 +.endif gAreaRoomMap_MinishCaves_9:: @ 08105148 +.ifdef EU + map_bottom 0xC2E94-0x4, 0x618, 1 + map_top 0xC3294-0x4, 0x618, 1, 1 +.else map_bottom 0xC2E94, 0x618, 1 map_top 0xC3294, 0x618, 1, 1 +.endif gAreaRoomMaps_MinishCaves:: @ 08105160 .4byte gAreaRoomMap_MinishCaves_0 @@ -1504,114 +2718,219 @@ gAreaRoomMaps_MinishCaves:: @ 08105160 .4byte gAreaRoomMap_MinishCaves_9 gAreaRoomMap_CastleGardenMinishHoles_0:: @ 08105188 +.ifdef EU + map_bottom 0xC3368-0x4, 0x1C2, 1 + map_top 0xC3508-0x4, 0x1C2, 1, 1 +.else map_bottom 0xC3368, 0x1C2, 1 map_top 0xC3508, 0x1C2, 1, 1 +.endif gAreaRoomMap_CastleGardenMinishHoles_1:: @ 081051A0 +.ifdef EU + map_bottom 0xC3554-0x4, 0x1C2, 1 + map_top 0xC36F0-0x4, 0x1C2, 1, 1 +.else map_bottom 0xC3554, 0x1C2, 1 map_top 0xC36F0, 0x1C2, 1, 1 +.endif gAreaRoomMaps_CastleGardenMinishHoles:: @ 081051B8 .4byte gAreaRoomMap_CastleGardenMinishHoles_0 .4byte gAreaRoomMap_CastleGardenMinishHoles_1 gAreaRoomMap_37_0:: @ 081051C0 +.ifdef EU + map_bottom 0xC373C-0x4, 0x1C2, 1 + map_top 0xC38F0-0x4, 0x1C2, 1, 1 +.else map_bottom 0xC373C, 0x1C2, 1 map_top 0xC38F0, 0x1C2, 1, 1 +.endif gAreaRoomMap_37_1:: @ 081051D8 +.ifdef EU + map_bottom 0xC3988-0x4, 0x1C2, 1 + map_top 0xC3B38-0x4, 0x1C2, 1, 1 +.else map_bottom 0xC3988, 0x1C2, 1 map_top 0xC3B38, 0x1C2, 1, 1 +.endif gAreaRoomMaps_37:: @ 081051F0 .4byte gAreaRoomMap_37_0 .4byte gAreaRoomMap_37_1 gAreaRoomMap_EzloCutscene_0:: @ 081051F8 +.ifdef EU + map_bottom 0x1389B8-0x4, 0x258, 1 + map_top 0x138B50-0x4, 0x258, 1, 1 +.else map_bottom 0x1389B8, 0x258, 1 map_top 0x138B50, 0x258, 1, 1 +.endif gAreaRoomMaps_EzloCutscene:: @ 08105210 .4byte gAreaRoomMap_EzloCutscene_0 gAreaRoomMap_HyruleTownUnderground_0:: @ 08105214 +.ifdef EU + map_bottom 0x1AA7A4-0x4, 0xE10, 1 + map_top 0x1AAC74-0x4, 0xE10, 1, 1 +.else map_bottom 0x1AA7A4, 0xE10, 1 map_top 0x1AAC74, 0xE10, 1, 1 +.endif gAreaRoomMap_HyruleTownUnderground_1:: @ 0810522C +.ifdef EU + map_bottom 0x1AAE34-0x4, 0x12C, 1 + map_top 0x1AAF18-0x4, 0x12C, 1, 1 +.else map_bottom 0x1AAE34, 0x12C, 1 map_top 0x1AAF18, 0x12C, 1, 1 +.endif gAreaRoomMaps_HyruleTownUnderground:: @ 08105244 .4byte gAreaRoomMap_HyruleTownUnderground_0 .4byte gAreaRoomMap_HyruleTownUnderground_1 gAreaRoomMap_GardenFountains_0:: @ 0810524C +.ifdef EU + map_bottom 0x1AAF44-0x4, 0x12C, 1 + map_top 0x1AB024-0x4, 0x12C, 1, 1 +.else map_bottom 0x1AAF44, 0x12C, 1 map_top 0x1AB024, 0x12C, 1, 1 +.endif gAreaRoomMap_GardenFountains_1:: @ 08105264 +.ifdef EU + map_bottom 0x1AB058-0x4, 0x12C, 1 + map_top 0x1AB150-0x4, 0x12C, 1, 1 +.else map_bottom 0x1AB058, 0x12C, 1 map_top 0x1AB150, 0x12C, 1, 1 +.endif gAreaRoomMaps_GardenFountains:: @ 0810527C .4byte gAreaRoomMap_GardenFountains_0 .4byte gAreaRoomMap_GardenFountains_1 gAreaRoomMap_HyruleCastleCellar_0:: @ 08105284 +.ifdef EU + map_bottom 0x1AB184-0x4, 0x3C0, 1 + map_top 0x1AB2D4-0x4, 0x3C0, 1, 1 +.else map_bottom 0x1AB184, 0x3C0, 1 map_top 0x1AB2D4, 0x3C0, 1, 1 +.endif gAreaRoomMap_HyruleCastleCellar_1:: @ 0810529C +.ifdef EU + map_bottom 0x1AB354-0x4, 0x1E0, 1 + map_top 0x1AB428-0x4, 0x1E0, 1, 1 +.else map_bottom 0x1AB354, 0x1E0, 1 map_top 0x1AB428, 0x1E0, 1, 1 +.endif gAreaRoomMaps_HyruleCastleCellar:: @ 081052B4 .4byte gAreaRoomMap_HyruleCastleCellar_0 .4byte gAreaRoomMap_HyruleCastleCellar_1 gAreaRoomMap_SimonsSimulation_0:: @ 081052BC +.ifdef EU + map_bottom 0x1AB474-0x4, 0x23A, 1 + map_top 0x1AB5A8-0x4, 0x23A, 1, 1 +.else map_bottom 0x1AB474, 0x23A, 1 map_top 0x1AB5A8, 0x23A, 1, 1 +.endif gAreaRoomMaps_SimonsSimulation:: @ 081052D4 .4byte gAreaRoomMap_SimonsSimulation_0 gAreaRoomMap_40_0:: @ 081052D8 +.ifdef EU + map_bottom 0x1A93EC-0x4, 0x286, 1 + map_top 0x1A958C-0x4, 0x286, 1, 1 +.else map_bottom 0x1A93EC, 0x286, 1 map_top 0x1A958C, 0x286, 1, 1 +.endif gAreaRoomMap_40_1:: @ 081052F0 +.ifdef EU + map_bottom 0x1A95F8-0x4, 0x30E, 1 + map_top 0x1A982C-0x4, 0x30E, 1, 1 +.else map_bottom 0x1A95F8, 0x30E, 1 map_top 0x1A982C, 0x30E, 1, 1 +.endif gAreaRoomMap_40_2:: @ 08105308 +.ifdef EU + map_bottom 0x1A98CC-0x4, 0x286, 1 + map_top 0x1A9A30-0x4, 0x286, 1, 1 +.else map_bottom 0x1A98CC, 0x286, 1 map_top 0x1A9A30, 0x286, 1, 1 +.endif gAreaRoomMap_40_3:: @ 08105320 +.ifdef EU + map_bottom 0x1A9AD0-0x4, 0x286, 1 + map_top 0x1A9C28-0x4, 0x286, 1, 1 +.else map_bottom 0x1A9AD0, 0x286, 1 map_top 0x1A9C28, 0x286, 1, 1 +.endif gAreaRoomMap_40_4:: @ 08105338 +.ifdef EU + map_bottom 0x1A9CC8-0x4, 0x30E, 1 + map_top 0x1A9E68-0x4, 0x30E, 1, 1 +.else map_bottom 0x1A9CC8, 0x30E, 1 map_top 0x1A9E68, 0x30E, 1, 1 +.endif gAreaRoomMap_40_5:: @ 08105350 +.ifdef EU + map_bottom 0x1A9EF4-0x4, 0x286, 1 + map_top 0x1AA084-0x4, 0x286, 1, 1 +.else map_bottom 0x1A9EF4, 0x286, 1 map_top 0x1AA084, 0x286, 1, 1 +.endif gAreaRoomMap_40_6:: @ 08105368 +.ifdef EU + map_bottom 0x1AA114-0x4, 0x520, 1 + map_top 0x1AA384-0x4, 0x520, 1, 1 +.else map_bottom 0x1AA114, 0x520, 1 map_top 0x1AA384, 0x520, 1, 1 +.endif gAreaRoomMap_40_7:: @ 08105380 +.ifdef EU + map_bottom 0x1AA468-0x4, 0x28A, 1 + map_top 0x1AA5AC-0x4, 0x28A, 1, 1 +.else map_bottom 0x1AA468, 0x28A, 1 map_top 0x1AA5AC, 0x28A, 1, 1 +.endif gAreaRoomMap_40_8:: @ 08105398 +.ifdef EU + map_bottom 0x1AA628-0x4, 0x200, 1 + map_top 0x1AA72C-0x4, 0x200, 1, 1 +.else map_bottom 0x1AA628, 0x200, 1 map_top 0x1AA72C, 0x200, 1, 1 +.endif gAreaRoomMaps_40:: @ 081053B0 .4byte gAreaRoomMap_40_0 @@ -1625,92 +2944,202 @@ gAreaRoomMaps_40:: @ 081053B0 .4byte gAreaRoomMap_40_8 gAreaRoomMap_DeepwoodShrine_0:: @ 081053D4 +.ifdef EU + map_bottom 0x1BF038-0x4, 0x1FE, 1 + map_top 0x1BF14C-0x4, 0x1FE, 1, 1 +.else map_bottom 0x1BF038, 0x1FE, 1 map_top 0x1BF14C, 0x1FE, 1, 1 +.endif gAreaRoomMap_DeepwoodShrine_1:: @ 081053EC +.ifdef EU + map_bottom 0x1BF274-0x4, 0x2EE, 1 + map_top 0x1BF444-0x4, 0x2EE, 1, 1 +.else map_bottom 0x1BF274, 0x2EE, 1 map_top 0x1BF444, 0x2EE, 1, 1 +.endif gAreaRoomMap_DeepwoodShrine_2:: @ 08105404 +.ifdef EU + map_bottom 0x1BF5AC-0x4, 0x276, 1 + map_top 0x1BF758-0x4, 0x276, 1, 1 +.else map_bottom 0x1BF5AC, 0x276, 1 map_top 0x1BF758, 0x276, 1, 1 +.endif gAreaRoomMap_DeepwoodShrine_3:: @ 0810541C +.ifdef EU + map_bottom 0x1BF89C-0x4, 0x1FE, 1 + map_top 0x1BFA34-0x4, 0x1FE, 1, 1 +.else map_bottom 0x1BF89C, 0x1FE, 1 map_top 0x1BFA34, 0x1FE, 1, 1 +.endif gAreaRoomMap_DeepwoodShrine_4:: @ 08105434 +.ifdef EU + map_bottom 0x1BFB34-0x4, 0x154, 1 + map_top 0x1BFC58-0x4, 0x154, 1, 1 +.else map_bottom 0x1BFB34, 0x154, 1 map_top 0x1BFC58, 0x154, 1, 1 +.endif gAreaRoomMap_DeepwoodShrine_5:: @ 0810544C +.ifdef EU + map_bottom 0x1BFD30-0x4, 0x352, 1 + map_top 0x1BFFA0-0x4, 0x352, 1, 1 +.else map_bottom 0x1BFD30, 0x352, 1 map_top 0x1BFFA0, 0x352, 1, 1 +.endif gAreaRoomMap_DeepwoodShrine_6:: @ 08105464 +.ifdef EU + map_bottom 0x1C00F8-0x4, 0x5AA, 1 + map_top 0x1C0470-0x4, 0x5AA, 1, 1 +.else map_bottom 0x1C00F8, 0x5AA, 1 map_top 0x1C0470, 0x5AA, 1, 1 +.endif gAreaRoomMap_DeepwoodShrine_7:: @ 0810547C +.ifdef EU + map_bottom 0x1C063C-0x4, 0x352, 1 + map_top 0x1C088C-0x4, 0x352, 1, 1 +.else map_bottom 0x1C063C, 0x352, 1 map_top 0x1C088C, 0x352, 1, 1 +.endif gAreaRoomMap_DeepwoodShrine_8:: @ 08105494 +.ifdef EU + map_bottom 0x1C09C0-0x4, 0x198, 1 + map_top 0x1C0AF4-0x4, 0x198, 1, 1 +.else map_bottom 0x1C09C0, 0x198, 1 map_top 0x1C0AF4, 0x198, 1, 1 +.endif gAreaRoomMap_DeepwoodShrine_9:: @ 081054AC +.ifdef EU + map_bottom 0x1C0BEC-0x4, 0x1BA, 1 + map_top 0x1C0D48-0x4, 0x1BA, 1, 1 +.else map_bottom 0x1C0BEC, 0x1BA, 1 map_top 0x1C0D48, 0x1BA, 1, 1 +.endif gAreaRoomMap_DeepwoodShrine_10:: @ 081054C4 +.ifdef EU + map_bottom 0x1C0E30-0x4, 0x2CA, 1 + map_top 0x1C1008-0x4, 0x2CA, 1, 1 +.else map_bottom 0x1C0E30, 0x2CA, 1 map_top 0x1C1008, 0x2CA, 1, 1 +.endif gAreaRoomMap_DeepwoodShrine_11:: @ 081054DC +.ifdef EU + map_bottom 0x1C1154-0x4, 0x2CA, 1 + map_top 0x1C132C-0x4, 0x2CA, 1, 1 +.else map_bottom 0x1C1154, 0x2CA, 1 map_top 0x1C132C, 0x2CA, 1, 1 +.endif gAreaRoomMap_DeepwoodShrine_12:: @ 081054F4 +.ifdef EU + map_bottom 0x1C14E4-0x4, 0x2CA, 1 + map_top 0x1C1690-0x4, 0x2CA, 1, 1 +.else map_bottom 0x1C14E4, 0x2CA, 1 map_top 0x1C1690, 0x2CA, 1, 1 +.endif gAreaRoomMap_DeepwoodShrine_13:: @ 0810550C +.ifdef EU + map_bottom 0x1C1800-0x4, 0x2EE, 1 + map_top 0x1C1A34-0x4, 0x2EE, 1, 1 +.else map_bottom 0x1C1800, 0x2EE, 1 map_top 0x1C1A34, 0x2EE, 1, 1 +.endif gAreaRoomMap_DeepwoodShrine_14:: @ 08105524 +.ifdef EU + map_bottom 0x1C1B10-0x4, 0x276, 1 + map_top 0x1C1D08-0x4, 0x276, 1, 1 +.else map_bottom 0x1C1B10, 0x276, 1 map_top 0x1C1D08, 0x276, 1, 1 +.endif gAreaRoomMap_DeepwoodShrine_15:: @ 0810553C +.ifdef EU + map_bottom 0x1C1DDC-0x4, 0x198, 1 + map_top 0x1C1F14-0x4, 0x198, 1, 1 +.else map_bottom 0x1C1DDC, 0x198, 1 map_top 0x1C1F14, 0x198, 1, 1 +.endif gAreaRoomMap_DeepwoodShrine_16:: @ 08105554 +.ifdef EU + map_bottom 0x1C1FB4-0x4, 0x5AA, 1 + map_top 0x1C2264-0x4, 0x5AA, 1, 1 +.else map_bottom 0x1C1FB4, 0x5AA, 1 map_top 0x1C2264, 0x5AA, 1, 1 +.endif gAreaRoomMap_DeepwoodShrine_17:: @ 0810556C +.ifdef EU + map_bottom 0x1C2490-0x4, 0x264, 1 + map_top 0x1C25D4-0x4, 0x264, 1, 1 +.else map_bottom 0x1C2490, 0x264, 1 map_top 0x1C25D4, 0x264, 1, 1 +.endif gAreaRoomMap_DeepwoodShrineBoss_0:: @ 08105584 +.ifdef EU + map_bottom 0x1C26EC-0x4, 0x1FE, 1 + map_top 0x1C28C4-0x4, 0x1FE, 1, 1 +.else map_bottom 0x1C26EC, 0x1FE, 1 map_top 0x1C28C4, 0x1FE, 1, 1 +.endif gAreaRoomMap_DeepwoodShrine_18:: @ 0810559C +.ifdef EU + map_bottom 0x1C296C-0x4, 0x2CA, 1 + map_top 0x1C2B40-0x4, 0x2CA, 1, 1 +.else map_bottom 0x1C296C, 0x2CA, 1 map_top 0x1C2B40, 0x2CA, 1, 1 +.endif gAreaRoomMap_DeepwoodShrine_19:: @ 081055B4 +.ifdef EU + map_bottom 0x1C2CF4-0x4, 0x12C, 1 + map_top 0x1C2D2C-0x4, 0x12C, 1, 1 +.else map_bottom 0x1C2CF4, 0x12C, 1 map_top 0x1C2D2C, 0x12C, 1, 1 +.endif gAreaRoomMap_DeepwoodShrineEntry_0:: @ 081055CC +.ifdef EU + map_bottom 0x1C2D80-0x4, 0x1C2, 0 + map_top 0x1C2F44-0x4, 0x1C2, 1, 1 +.else map_bottom 0x1C2D80, 0x1C2, 0 map_top 0x1C2F44, 0x1C2, 1, 1 +.endif gAreaRoomMaps_DeepwoodShrine:: @ 081055E4 .4byte gAreaRoomMap_DeepwoodShrine_0 @@ -1754,76 +3183,166 @@ gAreaRoomMaps_DeepwoodShrineEntry:: @ 0810566C .4byte gAreaRoomMap_DeepwoodShrineEntry_0 gAreaRoomMap_CaveOfFlames_0:: @ 08105670 +.ifdef EU + map_bottom 0x1D6458-0x4, 0x30E, 1 + map_top 0x1D65CC-0x4, 0x30E, 1, 1 +.else map_bottom 0x1D6458, 0x30E, 1 map_top 0x1D65CC, 0x30E, 1, 1 +.endif gAreaRoomMap_CaveOfFlames_1:: @ 08105688 +.ifdef EU + map_bottom 0x1D67A8-0x4, 0x30E, 1 + map_top 0x1D6908-0x4, 0x30E, 1, 1 +.else map_bottom 0x1D67A8, 0x30E, 1 map_top 0x1D6908, 0x30E, 1, 1 +.endif gAreaRoomMap_CaveOfFlames_2:: @ 081056A0 +.ifdef EU + map_bottom 0x1D6AE0-0x4, 0x4AC, 1 + map_top 0x1D6C00-0x4, 0x4AC, 1, 1 +.else map_bottom 0x1D6AE0, 0x4AC, 1 map_top 0x1D6C00, 0x4AC, 1, 1 +.endif gAreaRoomMap_CaveOfFlames_3:: @ 081056B8 +.ifdef EU + map_bottom 0x1D6F10-0x4, 0x1BA, 1 + map_top 0x1D6F4C-0x4, 0x1BA, 1, 1 +.else map_bottom 0x1D6F10, 0x1BA, 1 map_top 0x1D6F4C, 0x1BA, 1, 1 +.endif gAreaRoomMap_CaveOfFlames_4:: @ 081056D0 +.ifdef EU + map_bottom 0x1D70D4-0x4, 0x74E, 1 + map_top 0x1D72BC-0x4, 0x74E, 1, 1 +.else map_bottom 0x1D70D4, 0x74E, 1 map_top 0x1D72BC, 0x74E, 1, 1 +.endif gAreaRoomMap_CaveOfFlames_5:: @ 081056E8 +.ifdef EU + map_bottom 0x1D76E8-0x4, 0x1BA, 1 + map_top 0x1D7724-0x4, 0x1BA, 1, 1 +.else map_bottom 0x1D76E8, 0x1BA, 1 map_top 0x1D7724, 0x1BA, 1, 1 +.endif gAreaRoomMap_CaveOfFlames_6:: @ 08105700 +.ifdef EU + map_bottom 0x1D78CC-0x4, 0x5B6, 1 + map_top 0x1D7984-0x4, 0x5B6, 1, 1 +.else map_bottom 0x1D78CC, 0x5B6, 1 map_top 0x1D7984, 0x5B6, 1, 1 +.endif gAreaRoomMap_CaveOfFlames_7:: @ 08105718 +.ifdef EU + map_bottom 0x1D7CF8-0x4, 0x1FE, 1 + map_top 0x1D7D3C-0x4, 0x1FE, 1, 1 +.else map_bottom 0x1D7CF8, 0x1FE, 1 map_top 0x1D7D3C, 0x1FE, 1, 1 +.endif gAreaRoomMap_CaveOfFlames_8:: @ 08105730 +.ifdef EU + map_bottom 0x1D7F00-0x4, 0x508, 1 + map_top 0x1D8158-0x4, 0x508, 1, 1 +.else map_bottom 0x1D7F00, 0x508, 1 map_top 0x1D8158, 0x508, 1, 1 +.endif gAreaRoomMap_CaveOfFlames_9:: @ 08105748 +.ifdef EU + map_bottom 0x1D8420-0x4, 0x508, 1 + map_top 0x1D869C-0x4, 0x508, 1, 1 +.else map_bottom 0x1D8420, 0x508, 1 map_top 0x1D869C, 0x508, 1, 1 +.endif gAreaRoomMap_CaveOfFlames_10:: @ 08105760 +.ifdef EU + map_bottom 0x1D8940-0x4, 0x9D8, 1 + map_top 0x1D8CAC-0x4, 0x9D8, 1, 1 +.else map_bottom 0x1D8940, 0x9D8, 1 map_top 0x1D8CAC, 0x9D8, 1, 1 +.endif gAreaRoomMap_CaveOfFlames_11:: @ 08105778 +.ifdef EU + map_bottom 0x1D9094-0x4, 0x4EC, 1 + map_top 0x1D9264-0x4, 0x4EC, 1, 1 +.else map_bottom 0x1D9094, 0x4EC, 1 map_top 0x1D9264, 0x4EC, 1, 1 +.endif gAreaRoomMap_CaveOfFlames_12:: @ 08105790 +.ifdef EU + map_bottom 0x1D940C-0x4, 0x276, 1 + map_top 0x1D956C-0x4, 0x276, 1, 1 +.else map_bottom 0x1D940C, 0x276, 1 map_top 0x1D956C, 0x276, 1, 1 +.endif gAreaRoomMap_CaveOfFlames_13:: @ 081057A8 +.ifdef EU + map_bottom 0x1D9688-0x4, 0x276, 1 + map_top 0x1D97E0-0x4, 0x276, 1, 1 +.else map_bottom 0x1D9688, 0x276, 1 map_top 0x1D97E0, 0x276, 1, 1 +.endif gAreaRoomMap_CaveOfFlames_14:: @ 081057C0 +.ifdef EU + map_bottom 0x1D992C-0x4, 0x276, 1 + map_top 0x1D9A28-0x4, 0x276, 1, 1 +.else map_bottom 0x1D992C, 0x276, 1 map_top 0x1D9A28, 0x276, 1, 1 +.endif gAreaRoomMap_CaveOfFlames_15:: @ 081057D8 +.ifdef EU + map_bottom 0x1D9BA8-0x4, 0x186, 1 + map_top 0x1D9BE0-0x4, 0x186, 1, 1 +.else map_bottom 0x1D9BA8, 0x186, 1 map_top 0x1D9BE0, 0x186, 1, 1 +.endif gAreaRoomMap_CaveOfFlames_16:: @ 081057F0 +.ifdef EU + map_bottom 0x1D9D48-0x4, 0x186, 1 + map_top 0x1D9D80-0x4, 0x186, 1, 1 +.else map_bottom 0x1D9D48, 0x186, 1 map_top 0x1D9D80, 0x186, 1, 1 +.endif gAreaRoomMap_CaveOfFlames_17:: @ 08105808 +.ifdef EU + map_bottom 0x1D9EC8-0x4, 0x9D8, 1 + map_top 0x1DA3B4-0x4, 0x9D8, 1, 1 +.else map_bottom 0x1D9EC8, 0x9D8, 1 map_top 0x1DA3B4, 0x9D8, 1, 1 +.endif gAreaRoomMaps_CaveOfFlames:: @ 08105820 .4byte gAreaRoomMap_CaveOfFlames_0 @@ -1852,107 +3371,232 @@ gAreaRoomMaps_CaveOfFlames:: @ 08105820 .4byte gAreaRoomMap_CaveOfFlames_17 gAreaRoomMap_CaveOfFlamesBoss_0:: @ 08105880 +.ifdef EU + map_bottom 0x1DA6E8-0x4, 0x360, 1 + map_top 0x1DA990-0x4, 0x360, 1, 1 +.else map_bottom 0x1DA6E8, 0x360, 1 map_top 0x1DA990, 0x360, 1, 1 +.endif gAreaRoomMaps_CaveOfFlamesBoss:: @ 08105898 .4byte gAreaRoomMap_CaveOfFlamesBoss_0 gAreaRoomMap_FortressOfWinds_0:: @ 0810589C +.ifdef EU + map_bottom 0x1F19E8-0x4, 0x1BA, 1 + map_top 0x1F1B1C-0x4, 0x1BA, 1, 1 +.else map_bottom 0x1F19E8, 0x1BA, 1 map_top 0x1F1B1C, 0x1BA, 1, 1 +.endif gAreaRoomMap_FortressOfWinds_1:: @ 081058B4 +.ifdef EU + map_bottom 0x1F1BCC-0x4, 0x1BA, 1 + map_top 0x1F1CF0-0x4, 0x1BA, 1, 1 +.else map_bottom 0x1F1BCC, 0x1BA, 1 map_top 0x1F1CF0, 0x1BA, 1, 1 +.endif gAreaRoomMap_FortressOfWinds_2:: @ 081058CC +.ifdef EU + map_bottom 0x1F1DCC-0x4, 0x804, 1 + map_top 0x1F213C-0x4, 0x804, 1, 1 +.else map_bottom 0x1F1DCC, 0x804, 1 map_top 0x1F213C, 0x804, 1, 1 +.endif gAreaRoomMap_FortressOfWinds_3:: @ 081058E4 +.ifdef EU + map_bottom 0x1F23E0-0x4, 0x1DC, 1 + map_top 0x1F253C-0x4, 0x1DC, 1, 1 +.else map_bottom 0x1F23E0, 0x1DC, 1 map_top 0x1F253C, 0x1DC, 1, 1 +.endif gAreaRoomMap_FortressOfWinds_4:: @ 081058FC +.ifdef EU + map_bottom 0x1F2600-0x4, 0x364, 1 + map_top 0x1F2834-0x4, 0x364, 1, 1 +.else map_bottom 0x1F2600, 0x364, 1 map_top 0x1F2834, 0x364, 1, 1 +.endif gAreaRoomMap_FortressOfWinds_5:: @ 08105914 +.ifdef EU + map_bottom 0x1F2A14-0x4, 0x1BA, 1 + map_top 0x1F2A50-0x4, 0x1BA, 1, 1 +.else map_bottom 0x1F2A14, 0x1BA, 1 map_top 0x1F2A50, 0x1BA, 1, 1 +.endif gAreaRoomMap_FortressOfWinds_6:: @ 0810592C +.ifdef EU + map_bottom 0x1F2C14-0x4, 0x1BA, 1 + map_top 0x1F2C9C-0x4, 0x1BA, 1, 1 +.else map_bottom 0x1F2C14, 0x1BA, 1 map_top 0x1F2C9C, 0x1BA, 1, 1 +.endif gAreaRoomMap_FortressOfWinds_7:: @ 08105944 +.ifdef EU + map_bottom 0x1F2E0C-0x4, 0x374, 1 + map_top 0x1F2FBC-0x4, 0x374, 1, 1 +.else map_bottom 0x1F2E0C, 0x374, 1 map_top 0x1F2FBC, 0x374, 1, 1 +.endif gAreaRoomMap_FortressOfWinds_8:: @ 0810595C +.ifdef EU + map_bottom 0x1F3174-0x4, 0x1BA, 1 + map_top 0x1F31B0-0x4, 0x1BA, 1, 1 +.else map_bottom 0x1F3174, 0x1BA, 1 map_top 0x1F31B0, 0x1BA, 1, 1 +.endif gAreaRoomMap_FortressOfWinds_9:: @ 08105974 +.ifdef EU + map_bottom 0x1F3320-0x4, 0x374, 1 + map_top 0x1F3390-0x4, 0x374, 1, 1 +.else map_bottom 0x1F3320, 0x374, 1 map_top 0x1F3390, 0x374, 1, 1 +.endif gAreaRoomMap_FortressOfWinds_10:: @ 0810598C +.ifdef EU + map_bottom 0x1F3640-0x4, 0x1BA, 1 + map_top 0x1F367C-0x4, 0x1BA, 1, 1 +.else map_bottom 0x1F3640, 0x1BA, 1 map_top 0x1F367C, 0x1BA, 1, 1 +.endif gAreaRoomMap_FortressOfWinds_11:: @ 081059A4 +.ifdef EU + map_bottom 0x1F382C-0x4, 0x256, 1 + map_top 0x1F3998-0x4, 0x256, 1, 1 +.else map_bottom 0x1F382C, 0x256, 1 map_top 0x1F3998, 0x256, 1, 1 +.endif gAreaRoomMap_FortressOfWinds_12:: @ 081059BC +.ifdef EU + map_bottom 0x1F3A40-0x4, 0x1BA, 1 + map_top 0x1F3B3C-0x4, 0x1BA, 1, 1 +.else map_bottom 0x1F3A40, 0x1BA, 1 map_top 0x1F3B3C, 0x1BA, 1, 1 +.endif gAreaRoomMap_FortressOfWinds_13:: @ 081059D4 +.ifdef EU + map_bottom 0x1F3C38-0x4, 0x1BA, 1 + map_top 0x1F3D10-0x4, 0x1BA, 1, 1 +.else map_bottom 0x1F3C38, 0x1BA, 1 map_top 0x1F3D10, 0x1BA, 1, 1 +.endif gAreaRoomMap_FortressOfWinds_14:: @ 081059EC +.ifdef EU + map_bottom 0x1F3DF0-0x4, 0x374, 1 + map_top 0x1F4054-0x4, 0x374, 1, 1 +.else map_bottom 0x1F3DF0, 0x374, 1 map_top 0x1F4054, 0x374, 1, 1 +.endif gAreaRoomMap_FortressOfWinds_15:: @ 08105A04 +.ifdef EU + map_bottom 0x1F41C4-0x4, 0x1BA, 1 + map_top 0x1F42A4-0x4, 0x1BA, 1, 1 +.else map_bottom 0x1F41C4, 0x1BA, 1 map_top 0x1F42A4, 0x1BA, 1, 1 +.endif gAreaRoomMap_FortressOfWinds_16:: @ 08105A1C +.ifdef EU + map_bottom 0x1F4398-0x4, 0x1BA, 1 + map_top 0x1F443C-0x4, 0x1BA, 1, 1 +.else map_bottom 0x1F4398, 0x1BA, 1 map_top 0x1F443C, 0x1BA, 1, 1 +.endif gAreaRoomMap_FortressOfWinds_17:: @ 08105A34 +.ifdef EU + map_bottom 0x1F458C-0x4, 0x1BA, 1 + map_top 0x1F46A4-0x4, 0x1BA, 1, 1 +.else map_bottom 0x1F458C, 0x1BA, 1 map_top 0x1F46A4, 0x1BA, 1, 1 +.endif gAreaRoomMap_FortressOfWinds_18:: @ 08105A4C +.ifdef EU + map_bottom 0x1F475C-0x4, 0x1BA, 1 + map_top 0x1F48A0-0x4, 0x1BA, 1, 1 +.else map_bottom 0x1F475C, 0x1BA, 1 map_top 0x1F48A0, 0x1BA, 1, 1 +.endif gAreaRoomMap_FortressOfWinds_19:: @ 08105A64 +.ifdef EU + map_bottom 0x1F494C-0x4, 0x186, 1 + map_top 0x1F4A34-0x4, 0x186, 1, 1 +.else map_bottom 0x1F494C, 0x186, 1 map_top 0x1F4A34, 0x186, 1, 1 +.endif gAreaRoomMap_FortressOfWinds_20:: @ 08105A7C +.ifdef EU + map_bottom 0x1F4AE4-0x4, 0x186, 1 + map_top 0x1F4BE8-0x4, 0x186, 1, 1 +.else map_bottom 0x1F4AE4, 0x186, 1 map_top 0x1F4BE8, 0x186, 1, 1 +.endif gAreaRoomMap_FortressOfWinds_21:: @ 08105A94 +.ifdef EU + map_bottom 0x1F4C8C-0x4, 0x186, 1 + map_top 0x1F4D90-0x4, 0x186, 1, 1 +.else map_bottom 0x1F4C8C, 0x186, 1 map_top 0x1F4D90, 0x186, 1, 1 +.endif gAreaRoomMap_FortressOfWinds_22:: @ 08105AAC +.ifdef EU + map_bottom 0x1F4E3C-0x4, 0x186, 1 + map_top 0x1F4F18-0x4, 0x186, 1, 1 +.else map_bottom 0x1F4E3C, 0x186, 1 map_top 0x1F4F18, 0x186, 1, 1 +.endif gAreaRoomMap_FortressOfWinds_23:: @ 08105AC4 +.ifdef EU + map_bottom 0x1F4FB4-0x4, 0x1A0, 1 + map_top 0x1F50AC-0x4, 0x1A0, 1, 1 +.else map_bottom 0x1F4FB4, 0x1A0, 1 map_top 0x1F50AC, 0x1A0, 1, 1 +.endif gAreaRoomMaps_FortressOfWinds:: @ 08105ADC .4byte gAreaRoomMap_FortressOfWinds_0 @@ -1994,187 +3638,409 @@ gAreaRoomMaps_FortressOfWinds:: @ 08105ADC .4byte gAreaRoomMap_FortressOfWinds_23 gAreaRoomMap_FortressOfWindsTop_0:: @ 08105B70 +.ifdef EU + map_bottom 0x1F55E0-0x4, 0x4B0, 1 + map_top 0x1F58B8-0x4, 0x4B0, 1, 1 +.else map_bottom 0x1F55E0, 0x4B0, 1 map_top 0x1F58B8, 0x4B0, 1, 1 +.endif gAreaRoomMaps_FortressOfWindsTop:: @ 08105B88 .4byte gAreaRoomMap_FortressOfWindsTop_0 gAreaRoomMap_InnerMazaal_0:: @ 08105B8C +.ifdef EU + map_bottom 0x1F514C-0x4, 0x286, 1 + map_top 0x1F5214-0x4, 0x286, 1, 1 +.else map_bottom 0x1F514C, 0x286, 1 map_top 0x1F5214, 0x286, 1, 1 +.endif gAreaRoomMap_InnerMazaal_1:: @ 08105BA4 +.ifdef EU + map_bottom 0x1F538C-0x4, 0x286, 1 + map_top 0x1F5460-0x4, 0x286, 1, 1 +.else map_bottom 0x1F538C, 0x286, 1 map_top 0x1F5460, 0x286, 1, 1 +.endif gAreaRoomMaps_InnerMazaal:: @ 08105BBC .4byte gAreaRoomMap_InnerMazaal_0 .4byte gAreaRoomMap_InnerMazaal_1 gAreaRoomMap_TempleOfDroplets_0:: @ 08105BC4 +.ifdef EU + map_bottom 0x2052BC-0x4, 0x1BA, 1 + map_top 0x2053CC-0x4, 0x1BA, 1, 1 +.else map_bottom 0x2052BC, 0x1BA, 1 map_top 0x2053CC, 0x1BA, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_1:: @ 08105BDC +.ifdef EU + map_bottom 0x205494-0x4, 0x1BA, 1 + map_top 0x2055B0-0x4, 0x1BA, 1, 1 +.else map_bottom 0x205494, 0x1BA, 1 map_top 0x2055B0, 0x1BA, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_2:: @ 08105BF4 +.ifdef EU + map_bottom 0x205678-0x4, 0x1BA, 1 + map_top 0x2057A4-0x4, 0x1BA, 1, 1 +.else map_bottom 0x205678, 0x1BA, 1 map_top 0x2057A4, 0x1BA, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_3:: @ 08105C0C +.ifdef EU + map_bottom 0x205858-0x4, 0x6B4, 1 + map_top 0x205AA0-0x4, 0x6B4, 1, 1 +.else map_bottom 0x205858, 0x6B4, 1 map_top 0x205AA0, 0x6B4, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_4:: @ 08105C24 +.ifdef EU + map_bottom 0x205DA0-0x4, 0x1BA, 1 + map_top 0x205E5C-0x4, 0x1BA, 1, 1 +.else map_bottom 0x205DA0, 0x1BA, 1 map_top 0x205E5C, 0x1BA, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_5:: @ 08105C3C +.ifdef EU + map_bottom 0x205FA4-0x4, 0x1BA, 1 + map_top 0x205FE0-0x4, 0x1BA, 1, 1 +.else map_bottom 0x205FA4, 0x1BA, 1 map_top 0x205FE0, 0x1BA, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_6:: @ 08105C54 +.ifdef EU + map_bottom 0x206150-0x4, 0x30C, 1 + map_top 0x206270-0x4, 0x30C, 1, 1 +.else map_bottom 0x206150, 0x30C, 1 map_top 0x206270, 0x30C, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_7:: @ 08105C6C +.ifdef EU + map_bottom 0x206470-0x4, 0x374, 1 + map_top 0x2065BC-0x4, 0x374, 1, 1 +.else map_bottom 0x206470, 0x374, 1 map_top 0x2065BC, 0x374, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_8:: @ 08105C84 +.ifdef EU + map_bottom 0x206798-0x4, 0x948, 1 + map_top 0x206AA4-0x4, 0x948, 1, 1 +.else map_bottom 0x206798, 0x948, 1 map_top 0x206AA4, 0x948, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_9:: @ 08105C9C +.ifdef EU + map_bottom 0x206EE4-0x4, 0x1BA, 1 + map_top 0x206FBC-0x4, 0x1BA, 1, 1 +.else map_bottom 0x206EE4, 0x1BA, 1 map_top 0x206FBC, 0x1BA, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_10:: @ 08105CB4 +.ifdef EU + map_bottom 0x2070C0-0x4, 0x492, 1 + map_top 0x20735C-0x4, 0x492, 1, 1 +.else map_bottom 0x2070C0, 0x492, 1 map_top 0x20735C, 0x492, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_11:: @ 08105CCC +.ifdef EU + map_bottom 0x2074E8-0x4, 0x1BA, 1 + map_top 0x207620-0x4, 0x1BA, 1, 1 +.else map_bottom 0x2074E8, 0x1BA, 1 map_top 0x207620, 0x1BA, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_12:: @ 08105CE4 +.ifdef EU + map_bottom 0x207710-0x4, 0x186, 1 + map_top 0x207748-0x4, 0x186, 1, 1 +.else map_bottom 0x207710, 0x186, 1 map_top 0x207748, 0x186, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_13:: @ 08105CFC +.ifdef EU + map_bottom 0x20787C-0x4, 0x374, 1 + map_top 0x2079F0-0x4, 0x374, 1, 1 +.else map_bottom 0x20787C, 0x374, 1 map_top 0x2079F0, 0x374, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_14:: @ 08105D14 +.ifdef EU + map_bottom 0x207BDC-0x4, 0x420, 1 + map_top 0x207CFC-0x4, 0x420, 1, 1 +.else map_bottom 0x207BDC, 0x420, 1 map_top 0x207CFC, 0x420, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_15:: @ 08105D2C +.ifdef EU + map_bottom 0x207E10-0x4, 0x1BA, 1 + map_top 0x207F30-0x4, 0x1BA, 1, 1 +.else map_bottom 0x207E10, 0x1BA, 1 map_top 0x207F30, 0x1BA, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_16:: @ 08105D44 +.ifdef EU + map_bottom 0x20800C-0x4, 0x1BA, 1 + map_top 0x20810C-0x4, 0x1BA, 1, 1 +.else map_bottom 0x20800C, 0x1BA, 1 map_top 0x20810C, 0x1BA, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_17:: @ 08105D5C +.ifdef EU + map_bottom 0x20818C-0x4, 0x186, 1 + map_top 0x208254-0x4, 0x186, 1, 1 +.else map_bottom 0x20818C, 0x186, 1 map_top 0x208254, 0x186, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_18:: @ 08105D74 +.ifdef EU + map_bottom 0x208310-0x4, 0x374, 1 + map_top 0x20846C-0x4, 0x374, 1, 1 +.else map_bottom 0x208310, 0x374, 1 map_top 0x20846C, 0x374, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_19:: @ 08105D8C +.ifdef EU + map_bottom 0x2085BC-0x4, 0x1BA, 1 + map_top 0x2086EC-0x4, 0x1BA, 1, 1 +.else map_bottom 0x2085BC, 0x1BA, 1 map_top 0x2086EC, 0x1BA, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_20:: @ 08105DA4 +.ifdef EU + map_bottom 0x2087B4-0x4, 0x35A, 1 + map_top 0x2088D0-0x4, 0x35A, 1, 1 +.else map_bottom 0x2087B4, 0x35A, 1 map_top 0x2088D0, 0x35A, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_21:: @ 08105DBC +.ifdef EU + map_bottom 0x208A3C-0x4, 0x1BA, 1 + map_top 0x208B48-0x4, 0x1BA, 1, 1 +.else map_bottom 0x208A3C, 0x1BA, 1 map_top 0x208B48, 0x1BA, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_22:: @ 08105DD4 +.ifdef EU + map_bottom 0x208BFC-0x4, 0x374, 1 + map_top 0x208D38-0x4, 0x374, 1, 1 +.else map_bottom 0x208BFC, 0x374, 1 map_top 0x208D38, 0x374, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_23:: @ 08105DEC +.ifdef EU + map_bottom 0x208FF8-0x4, 0x1BA, 1 + map_top 0x209110-0x4, 0x1BA, 1, 1 +.else map_bottom 0x208FF8, 0x1BA, 1 map_top 0x209110, 0x1BA, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_24:: @ 08105E04 +.ifdef EU + map_bottom 0x20921C-0x4, 0x4B0, 1 + map_top 0x2092B4-0x4, 0x4B0, 1, 1 +.else map_bottom 0x20921C, 0x4B0, 1 map_top 0x2092B4, 0x4B0, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_25:: @ 08105E1C +.ifdef EU + map_bottom 0x20961C-0x4, 0x1A4, 1 + map_top 0x209658-0x4, 0x1A4, 1, 1 +.else map_bottom 0x20961C, 0x1A4, 1 map_top 0x209658, 0x1A4, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_26:: @ 08105E34 +.ifdef EU + map_bottom 0x2097C4-0x4, 0xA0E, 1 + map_top 0x209BC8-0x1C, 0xA0E, 1, 1 +.else map_bottom 0x2097C4, 0xA0E, 1 map_top 0x209BC8, 0xA0E, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_27:: @ 08105E4C +.ifdef EU + map_bottom 0x209F4C-0x1C, 0x1BA, 1 + map_top 0x20A098-0x1C, 0x1BA, 1, 1 +.else map_bottom 0x209F4C, 0x1BA, 1 map_top 0x20A098, 0x1BA, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_28:: @ 08105E64 +.ifdef EU + map_bottom 0x20A144-0x1C, 0x186, 1 + map_top 0x20A234-0x1C, 0x186, 1, 1 +.else map_bottom 0x20A144, 0x186, 1 map_top 0x20A234, 0x186, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_29:: @ 08105E7C +.ifdef EU + map_bottom 0x20A2CC-0x1C, 0x492, 1 + map_top 0x20A4CC-0x1C, 0x492, 1, 1 +.else map_bottom 0x20A2CC, 0x492, 1 map_top 0x20A4CC, 0x492, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_30:: @ 08105E94 +.ifdef EU + map_bottom 0x20A614-0x1C, 0x186, 1 + map_top 0x20A64C-0x1C, 0x186, 1, 1 +.else map_bottom 0x20A614, 0x186, 1 map_top 0x20A64C, 0x186, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_31:: @ 08105EAC +.ifdef EU + map_bottom 0x20A614+0x154, 0x1BA, 1 + map_top 0x20A64C+0x1CC, 0x1BA, 1, 1 +.else +@nocheckin map_bottom 0x20A614, 0x186, 1 + @nocheckin map_top 0x20A64C, 0x186, 1, 1 map_bottom 0x20A784, 0x1BA, 1 map_top 0x20A834, 0x1BA, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_32:: @ 08105EC4 +.ifdef EU + map_bottom 0x20A980-0x1C, 0x1BA, 1 + map_top 0x20AA74-0x1C, 0x1BA, 1, 1 +.else map_bottom 0x20A980, 0x1BA, 1 map_top 0x20AA74, 0x1BA, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_33:: @ 08105EDC +.ifdef EU + map_bottom 0x20AB54-0x1C, 0x186, 1 + map_top 0x20AC10-0x1C, 0x186, 1, 1 +.else map_bottom 0x20AB54, 0x186, 1 map_top 0x20AC10, 0x186, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_34:: @ 08105EF4 +.ifdef EU + map_bottom 0x20ACB4-0x1C, 0x186, 1 + map_top 0x20ACEC-0x1C, 0x186, 1, 1 +.else map_bottom 0x20ACB4, 0x186, 1 map_top 0x20ACEC, 0x186, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_35:: @ 08105F0C +.ifdef EU + map_bottom 0x20AE3C-0x1C, 0x396, 1 + map_top 0x20B03C-0x1C, 0x396, 1, 1 +.else map_bottom 0x20AE3C, 0x396, 1 map_top 0x20B03C, 0x396, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_36:: @ 08105F24 +.ifdef EU + map_bottom 0x20B188-0x1C, 0x1BA, 1 + map_top 0x20B2C0-0x1C, 0x1BA, 1, 1 +.else map_bottom 0x20B188, 0x1BA, 1 map_top 0x20B2C0, 0x1BA, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_37:: @ 08105F3C +.ifdef EU + map_bottom 0x20B394-0x1C, 0x186, 1 + map_top 0x20B4C0-0x1C, 0x186, 1, 1 +.else map_bottom 0x20B394, 0x186, 1 map_top 0x20B4C0, 0x186, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_38:: @ 08105F54 +.ifdef EU + map_bottom 0x20B558-0x1C, 0x39C, 1 + map_top 0x20B724-0x1C, 0x39C, 1, 1 +.else map_bottom 0x20B558, 0x39C, 1 map_top 0x20B724, 0x39C, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_39:: @ 08105F6C +.ifdef EU + map_bottom 0x20B82C-0x1C, 0x1DC, 1 + map_top 0x20B950-0x1C, 0x1DC, 1, 1 +.else map_bottom 0x20B82C, 0x1DC, 1 map_top 0x20B950, 0x1DC, 1, 1 +.endif gAreaRoomMap_TempleOfDroplets_40:: @ 08105F84 +.ifdef EU + map_bottom 0x20BA0C-0x1C, 0x1A0, 1 + map_top 0x20BADC-0x1C, 0x1A0, 1, 1 +.else map_bottom 0x20BA0C, 0x1A0, 1 map_top 0x20BADC, 0x1A0, 1, 1 +.endif gAreaRoomMaps_TempleOfDroplets:: @ 08105F9C .4byte gAreaRoomMap_TempleOfDroplets_0 @@ -2234,55 +4100,115 @@ gAreaRoomMaps_TempleOfDroplets:: @ 08105F9C .4byte gAreaRoomMap_TempleOfDroplets_40 gAreaRoomMap_61_0:: @ 08106078 +.ifdef EU + map_bottom 0x20BBC4-0x1C, 0x1C2, 1 + map_top 0x20BCF8-0x1C, 0x1C2, 1, 1 +.else map_bottom 0x20BBC4, 0x1C2, 1 map_top 0x20BCF8, 0x1C2, 1, 1 +.endif gAreaRoomMaps_61:: @ 08106090 .4byte gAreaRoomMap_61_0 gAreaRoomMap_HyruleTownMinishCaves_0:: @ 08106094 +.ifdef EU + map_bottom 0x20BD3C-0x1C, 0x330, 1 + map_top 0x20BF18-0x2C, 0x330, 1, 1 +.else map_bottom 0x20BD3C, 0x330, 1 map_top 0x20BF18, 0x330, 1, 1 +.endif gAreaRoomMap_HyruleTownMinishCaves_1:: @ 081060AC +.ifdef EU + map_bottom 0x20BFC0-0x2C, 0x2D0, 1 + map_top 0x20C138-0x2C, 0x2D0, 1, 1 +.else map_bottom 0x20BFC0, 0x2D0, 1 map_top 0x20C138, 0x2D0, 1, 1 +.endif gAreaRoomMap_HyruleTownMinishCaves_2:: @ 081060C4 +.ifdef EU + map_bottom 0x20C1E0-0x2C, 0x242, 1 + map_top 0x20C2F0-0x2C, 0x242, 1, 1 +.else map_bottom 0x20C1E0, 0x242, 1 map_top 0x20C2F0, 0x242, 1, 1 +.endif gAreaRoomMap_HyruleTownMinishCaves_3:: @ 081060DC +.ifdef EU + map_bottom 0x20C3C4-0x2C, 0x1FE, 1 + map_top 0x20C408-0x2C, 0x1FE, 1, 1 +.else map_bottom 0x20C3C4, 0x1FE, 1 map_top 0x20C408, 0x1FE, 1, 1 +.endif gAreaRoomMap_HyruleTownMinishCaves_4:: @ 081060F4 +.ifdef EU + map_bottom 0x20C538-0x2C, 0x1C2, 1 + map_top 0x20C624-0x2C, 0x1C2, 1, 1 +.else map_bottom 0x20C538, 0x1C2, 1 map_top 0x20C624, 0x1C2, 1, 1 +.endif gAreaRoomMap_HyruleTownMinishCaves_5:: @ 0810610C +.ifdef EU + map_bottom 0x20C6AC-0x2C, 0x222, 1 + map_top 0x20C7E0-0x2C, 0x222, 1, 1 +.else map_bottom 0x20C6AC, 0x222, 1 map_top 0x20C7E0, 0x222, 1, 1 +.endif gAreaRoomMap_HyruleTownMinishCaves_6:: @ 08106124 +.ifdef EU + map_bottom 0x20C848-0x2C, 0x1BA, 1 + map_top 0x20C95C-0x2C, 0x1BA, 1, 1 +.else map_bottom 0x20C848, 0x1BA, 1 map_top 0x20C95C, 0x1BA, 1, 1 +.endif gAreaRoomMap_HyruleTownMinishCaves_7:: @ 0810613C +.ifdef EU + map_bottom 0x20C998-0x2C, 0x186, 1 + map_top 0x20CAA4-0x2C, 0x186, 1, 1 +.else map_bottom 0x20C998, 0x186, 1 map_top 0x20CAA4, 0x186, 1, 1 +.endif gAreaRoomMap_HyruleTownMinishCaves_8:: @ 08106154 +.ifdef EU + map_bottom 0x20CAFC-0x2C, 0x24C, 1 + map_top 0x20CC48-0x2C, 0x24C, 1, 1 +.else map_bottom 0x20CAFC, 0x24C, 1 map_top 0x20CC48, 0x24C, 1, 1 +.endif gAreaRoomMap_HyruleTownMinishCaves_9:: @ 0810616C +.ifdef EU + map_bottom 0x20CCB8-0x2C, 0x1DC, 1 + map_top 0x20CDD0-0x2C, 0x1DC, 1, 1 +.else map_bottom 0x20CCB8, 0x1DC, 1 map_top 0x20CDD0, 0x1DC, 1, 1 +.endif gAreaRoomMap_HyruleTownMinishCaves_10:: @ 08106184 +.ifdef EU + map_bottom 0x20CE18-0x2C, 0x348, 1 + map_top 0x20CEF4-0x2C, 0x348, 1, 1 +.else map_bottom 0x20CE18, 0x348, 1 map_top 0x20CEF4, 0x348, 1, 1 +.endif gAreaRoomMaps_HyruleTownMinishCaves:: @ 0810619C .4byte gAreaRoomMap_HyruleTownMinishCaves_0 @@ -2309,40 +4235,85 @@ gAreaRoomMaps_HyruleTownMinishCaves:: @ 0810619C .4byte gAreaRoomMap_HyruleTownMinishCaves_10 gAreaRoomMap_RoyalCrypt_0:: @ 081061F4 +.ifdef EU + map_bottom 0x2159A4-0x2C, 0x532, 1 + map_top 0x215BCC-0x2C, 0x532, 1, 1 +.else map_bottom 0x2159A4, 0x532, 1 map_top 0x215BCC, 0x532, 1, 1 +.endif gAreaRoomMap_RoyalCrypt_1:: @ 0810620C +.ifdef EU + map_bottom 0x215D68-0x2C, 0x1DC, 1 + map_top 0x215E8C-0x2C, 0x1DC, 1, 1 +.else map_bottom 0x215D68, 0x1DC, 1 map_top 0x215E8C, 0x1DC, 1, 1 +.endif gAreaRoomMap_RoyalCrypt_2:: @ 08106224 +.ifdef EU + map_bottom 0x215F08-0x2C, 0x348, 1 + map_top 0x21602C-0x2C, 0x348, 1, 1 +.else map_bottom 0x215F08, 0x348, 1 map_top 0x21602C, 0x348, 1, 1 +.endif gAreaRoomMap_RoyalCrypt_3:: @ 0810623C +.ifdef EU + map_bottom 0x216104-0x2C, 0x2F4, 1 + map_top 0x216278-0x2C, 0x2F4, 1, 1 +.else map_bottom 0x216104, 0x2F4, 1 map_top 0x216278, 0x2F4, 1, 1 +.endif gAreaRoomMap_RoyalCrypt_4:: @ 08106254 +.ifdef EU + map_bottom 0x216344-0x2C, 0x6F0, 1 + map_top 0x216678-0x2C, 0x6F0, 1, 1 +.else map_bottom 0x216344, 0x6F0, 1 map_top 0x216678, 0x6F0, 1, 1 +.endif gAreaRoomMap_RoyalCrypt_5:: @ 0810626C +.ifdef EU + map_bottom 0x2167CC-0x2C, 0x2E4, 1 + map_top 0x216954-0x2C, 0x2E4, 1, 1 +.else map_bottom 0x2167CC, 0x2E4, 1 map_top 0x216954, 0x2E4, 1, 1 +.endif gAreaRoomMap_RoyalCrypt_6:: @ 08106284 +.ifdef EU + map_bottom 0x2169F4-0x2C, 0x2E4, 1 + map_top 0x216B58-0x2C, 0x2E4, 1, 1 +.else map_bottom 0x2169F4, 0x2E4, 1 map_top 0x216B58, 0x2E4, 1, 1 +.endif gAreaRoomMap_RoyalCrypt_7:: @ 0810629C +.ifdef EU + map_bottom 0x216BF0-0x2C, 0x2EC, 1 + map_top 0x216D48-0x2C, 0x2EC, 1, 1 +.else map_bottom 0x216BF0, 0x2EC, 1 map_top 0x216D48, 0x2EC, 1, 1 +.endif gAreaRoomMap_RoyalCrypt_8:: @ 081062B4 +.ifdef EU + map_bottom 0x216E00-0x2C, 0x154, 1 + map_top 0x216EF0-0x2C, 0x154, 1, 1 +.else map_bottom 0x216E00, 0x154, 1 map_top 0x216EF0, 0x154, 1, 1 +.endif gAreaRoomMaps_RoyalCrypt:: @ 081062CC .4byte gAreaRoomMap_RoyalCrypt_0 @@ -2366,460 +4337,715 @@ gAreaRoomMap_PalaceOfWinds_0:: @ 0810630C .ifdef JP map_bottom 0x2246C0+0x74, 0xA8C, 1 map_top 0x224A00+0x74, 0xA8C, 1, 1 +.else +.ifdef EU + map_bottom 0x2246C0+0x48, 0xA8C, 1 + map_top 0x224A00+0x48, 0xA8C, 1, 1 .else map_bottom 0x2246C0, 0xA8C, 1 map_top 0x224A00, 0xA8C, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_1:: @ 08106324 .ifdef JP map_bottom 0x224D14+0x74, 0x12C, 1 map_top 0x224E04+0x74, 0x12C, 1, 1 +.else +.ifdef EU + map_bottom 0x224D14+0x48, 0x12C, 1 + map_top 0x224E04+0x48, 0x12C, 1, 1 .else map_bottom 0x224D14, 0x12C, 1 map_top 0x224E04, 0x12C, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_2:: @ 0810633C .ifdef JP map_bottom 0x224E64+0x74, 0x1A4, 1 map_top 0x224FBC+0x74, 0x1A4, 1, 1 +.else +.ifdef EU + map_bottom 0x224E64+0x48, 0x1A4, 1 + map_top 0x224FBC+0x48, 0x1A4, 1, 1 .else map_bottom 0x224E64, 0x1A4, 1 map_top 0x224FBC, 0x1A4, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_3:: @ 08106354 .ifdef JP map_bottom 0x22505C+0x74, 0x384, 1 map_top 0x2252A4+0x74, 0x384, 1, 1 +.else +.ifdef EU + map_bottom 0x22505C+0x48, 0x384, 1 + map_top 0x2252A4+0x48, 0x384, 1, 1 .else map_bottom 0x22505C, 0x384, 1 map_top 0x2252A4, 0x384, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_4:: @ 0810636C .ifdef JP map_bottom 0x2253FC+0x74, 0x12C, 1 map_top 0x2254C8+0x74, 0x12C, 1, 1 +.else +.ifdef EU + map_bottom 0x2253FC+0x48, 0x12C, 1 + map_top 0x2254C8+0x48, 0x12C, 1, 1 .else map_bottom 0x2253FC, 0x12C, 1 map_top 0x2254C8, 0x12C, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_5:: @ 08106384 .ifdef JP map_bottom 0x225524+0x74, 0x384, 1 map_top 0x22572C+0x74, 0x384, 1, 1 +.else +.ifdef EU + map_bottom 0x225524+0x48, 0x384, 1 + map_top 0x22572C+0x48, 0x384, 1, 1 .else map_bottom 0x225524, 0x384, 1 map_top 0x22572C, 0x384, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_6:: @ 0810639C .ifdef JP map_bottom 0x225850+0x74, 0x384, 1 map_top 0x225A40+0x74, 0x384, 1, 1 +.else +.ifdef EU + map_bottom 0x225850+0x48, 0x384, 1 + map_top 0x225A40+0x48, 0x384, 1, 1 .else map_bottom 0x225850, 0x384, 1 map_top 0x225A40, 0x384, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_7:: @ 081063B4 .ifdef JP map_bottom 0x225B60+0x74, 0x384, 1 map_top 0x225D68+0x74, 0x384, 1, 1 +.else +.ifdef EU + map_bottom 0x225B60+0x48, 0x384, 1 + map_top 0x225D68+0x48, 0x384, 1, 1 .else map_bottom 0x225B60, 0x384, 1 map_top 0x225D68, 0x384, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_8:: @ 081063CC .ifdef JP map_bottom 0x225E98+0x74, 0x258, 1 map_top 0x22601C+0x74, 0x258, 1, 1 +.else +.ifdef EU + map_bottom 0x225E98+0x48, 0x258, 1 + map_top 0x22601C+0x48, 0x258, 1, 1 .else map_bottom 0x225E98, 0x258, 1 map_top 0x22601C, 0x258, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_9:: @ 081063E4 .ifdef JP map_bottom 0x226128+0x74, 0x12C, 1 map_top 0x226200+0x74, 0x12C, 1, 1 +.else +.ifdef EU + map_bottom 0x226128+0x48, 0x12C, 1 + map_top 0x226200+0x48, 0x12C, 1, 1 .else map_bottom 0x226128, 0x12C, 1 map_top 0x226200, 0x12C, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_10:: @ 081063FC .ifdef JP map_bottom 0x226264+0x74, 0x186, 1 map_top 0x226364+0x74, 0x186, 1, 1 +.else +.ifdef EU + map_bottom 0x226264+0x48, 0x186, 1 + map_top 0x226364+0x48, 0x186, 1, 1 .else map_bottom 0x226264, 0x186, 1 map_top 0x226364, 0x186, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_11:: @ 08106414 .ifdef JP map_bottom 0x226418+0x74, 0x12C, 1 map_top 0x2264FC+0x74, 0x12C, 1, 1 +.else +.ifdef EU + map_bottom 0x226418+0x48, 0x12C, 1 + map_top 0x2264FC+0x48, 0x12C, 1, 1 .else map_bottom 0x226418, 0x12C, 1 map_top 0x2264FC, 0x12C, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_12:: @ 0810642C .ifdef JP map_bottom 0x226578+0x74, 0x1E0, 1 map_top 0x22663C+0x74, 0x1E0, 1, 1 +.else +.ifdef EU + map_bottom 0x226578+0x48, 0x1E0, 1 + map_top 0x22663C+0x48, 0x1E0, 1, 1 .else map_bottom 0x226578, 0x1E0, 1 map_top 0x22663C, 0x1E0, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_13:: @ 08106444 .ifdef JP map_bottom 0x2266BC+0x74, 0x12C, 1 map_top 0x22679C+0x74, 0x12C, 1, 1 +.else +.ifdef EU + map_bottom 0x2266BC+0x48, 0x12C, 1 + map_top 0x22679C+0x48, 0x12C, 1, 1 .else map_bottom 0x2266BC, 0x12C, 1 map_top 0x22679C, 0x12C, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_14:: @ 0810645C .ifdef JP map_bottom 0x226818+0x74, 0x258, 1 map_top 0x226948+0x74, 0x258, 1, 1 +.else +.ifdef EU + map_bottom 0x226818+0x48, 0x258, 1 + map_top 0x226948+0x48, 0x258, 1, 1 .else map_bottom 0x226818, 0x258, 1 map_top 0x226948, 0x258, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_15:: @ 08106474 .ifdef JP map_bottom 0x2269F4+0x74, 0x708, 1 map_top 0x226C3C+0x74, 0x708, 1, 1 +.else +.ifdef EU + map_bottom 0x2269F4+0x48, 0x708, 1 + map_top 0x226C3C+0x48, 0x708, 1, 1 .else map_bottom 0x2269F4, 0x708, 1 map_top 0x226C3C, 0x708, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_16:: @ 0810648C .ifdef JP map_bottom 0x226E70+0x74, 0xA8C, 1 map_top 0x2271A4+0x74, 0xA8C, 1, 1 +.else +.ifdef EU + map_bottom 0x226E70+0x48, 0xA8C, 1 + map_top 0x2271A4+0x48, 0xA8C, 1, 1 .else map_bottom 0x226E70, 0xA8C, 1 map_top 0x2271A4, 0xA8C, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_17:: @ 081064A4 .ifdef JP map_bottom 0x22745C+0x74, 0x384, 1 map_top 0x227668+0x74, 0x384, 1, 1 +.else +.ifdef EU + map_bottom 0x22745C+0x48, 0x384, 1 + map_top 0x227668+0x48, 0x384, 1, 1 .else map_bottom 0x22745C, 0x384, 1 map_top 0x227668, 0x384, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_18:: @ 081064BC .ifdef JP map_bottom 0x227774+0x74, 0x258, 1 map_top 0x227860+0x74, 0x258, 1, 1 +.else +.ifdef EU + map_bottom 0x227774+0x48, 0x258, 1 + map_top 0x227860+0x48, 0x258, 1, 1 .else map_bottom 0x227774, 0x258, 1 map_top 0x227860, 0x258, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_19:: @ 081064D4 .ifdef JP map_bottom 0x227924+0x74, 0x4B0, 1 map_top 0x227B6C+0x74, 0x4B0, 1, 1 +.else +.ifdef EU + map_bottom 0x227924+0x48, 0x4B0, 1 + map_top 0x227B6C+0x48, 0x4B0, 1, 1 .else map_bottom 0x227924, 0x4B0, 1 map_top 0x227B6C, 0x4B0, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_20:: @ 081064EC .ifdef JP map_bottom 0x227D34+0x74, 0x258, 1 map_top 0x227EA8+0x74, 0x258, 1, 1 +.else +.ifdef EU + map_bottom 0x227D34+0x48, 0x258, 1 + map_top 0x227EA8+0x48, 0x258, 1, 1 .else map_bottom 0x227D34, 0x258, 1 map_top 0x227EA8, 0x258, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_21:: @ 08106504 .ifdef JP map_bottom 0x227F48+0x74, 0x708, 1 map_top 0x228330+0x74, 0x708, 1, 1 +.else +.ifdef EU + map_bottom 0x227F48+0x48, 0x708, 1 + map_top 0x228330+0x48, 0x708, 1, 1 .else map_bottom 0x227F48, 0x708, 1 map_top 0x228330, 0x708, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_22:: @ 0810651C .ifdef JP map_bottom 0x22856C+0x74, 0x4B0, 1 map_top 0x2287B8+0x74, 0x4B0, 1, 1 +.else +.ifdef EU + map_bottom 0x22856C+0x48, 0x4B0, 1 + map_top 0x2287B8+0x48, 0x4B0, 1, 1 .else map_bottom 0x22856C, 0x4B0, 1 map_top 0x2287B8, 0x4B0, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_23:: @ 08106534 .ifdef JP map_bottom 0x228988+0x74, 0x258, 1 map_top 0x228A58+0x74, 0x258, 1, 1 +.else +.ifdef EU + map_bottom 0x228988+0x48, 0x258, 1 + map_top 0x228A58+0x48, 0x258, 1, 1 .else map_bottom 0x228988, 0x258, 1 map_top 0x228A58, 0x258, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_24:: @ 0810654C .ifdef JP map_bottom 0x228AFC+0x74, 0x4B0, 1 map_top 0x228C7C+0x74, 0x4B0, 1, 1 +.else +.ifdef EU + map_bottom 0x228AFC+0x48, 0x4B0, 1 + map_top 0x228C7C+0x48, 0x4B0, 1, 1 .else map_bottom 0x228AFC, 0x4B0, 1 map_top 0x228C7C, 0x4B0, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_25:: @ 08106564 .ifdef JP map_bottom 0x228DE4+0x74, 0x4B0, 1 map_top 0x228F90+0x74, 0x4B0, 1, 1 +.else +.ifdef EU + map_bottom 0x228DE4+0x48, 0x4B0, 1 + map_top 0x228F90+0x48, 0x4B0, 1, 1 .else map_bottom 0x228DE4, 0x4B0, 1 map_top 0x228F90, 0x4B0, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_26:: @ 0810657C .ifdef JP map_bottom 0x229138+0x74, 0x4B0, 1 map_top 0x2293A4+0x74, 0x4B0, 1, 1 +.else +.ifdef EU + map_bottom 0x229138+0x48, 0x4B0, 1 + map_top 0x2293A4+0x48, 0x4B0, 1, 1 .else map_bottom 0x229138, 0x4B0, 1 map_top 0x2293A4, 0x4B0, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_27:: @ 08106594 .ifdef JP map_bottom 0x229574+0x74, 0x12C, 1 map_top 0x22964C+0x74, 0x12C, 1, 1 +.else +.ifdef EU + map_bottom 0x229574+0x48, 0x12C, 1 + map_top 0x22964C+0x48, 0x12C, 1, 1 .else map_bottom 0x229574, 0x12C, 1 map_top 0x22964C, 0x12C, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_28:: @ 081065AC .ifdef JP map_bottom 0x2296D8+0x74, 0x12C, 1 map_top 0x2297C0+0x74, 0x12C, 1, 1 +.else +.ifdef EU + map_bottom 0x2296D8+0x48, 0x12C, 1 + map_top 0x2297C0+0x48, 0x12C, 1, 1 .else map_bottom 0x2296D8, 0x12C, 1 map_top 0x2297C0, 0x12C, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_29:: @ 081065C4 .ifdef JP map_bottom 0x229820+0x74, 0x12C, 1 map_top 0x2298F8+0x74, 0x12C, 1, 1 +.else +.ifdef EU + map_bottom 0x229820+0x48, 0x12C, 1 + map_top 0x2298F8+0x48, 0x12C, 1, 1 .else map_bottom 0x229820, 0x12C, 1 map_top 0x2298F8, 0x12C, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_30:: @ 081065DC .ifdef JP map_bottom 0x229978+0x74, 0x12C, 1 map_top 0x229A58+0x74, 0x12C, 1, 1 +.else +.ifdef EU + map_bottom 0x229978+0x48, 0x12C, 1 + map_top 0x229A58+0x48, 0x12C, 1, 1 .else map_bottom 0x229978, 0x12C, 1 map_top 0x229A58, 0x12C, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_31:: @ 081065F4 .ifdef JP map_bottom 0x229AD4+0x74, 0x12C, 1 map_top 0x229BA4+0x74, 0x12C, 1, 1 +.else +.ifdef EU + map_bottom 0x229AD4+0x48, 0x12C, 1 + map_top 0x229BA4+0x48, 0x12C, 1, 1 .else map_bottom 0x229AD4, 0x12C, 1 map_top 0x229BA4, 0x12C, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_32:: @ 0810660C .ifdef JP map_bottom 0x229C14+0x74, 0x12C, 1 map_top 0x229CE8+0x74, 0x12C, 1, 1 +.else +.ifdef EU + map_bottom 0x229C14+0x48, 0x12C, 1 + map_top 0x229CE8+0x48, 0x12C, 1, 1 .else map_bottom 0x229C14, 0x12C, 1 map_top 0x229CE8, 0x12C, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_33:: @ 08106624 .ifdef JP map_bottom 0x229D5C+0x74, 0xA8C, 1 map_top 0x22A0F0+0x74, 0xA8C, 1, 1 +.else +.ifdef EU + map_bottom 0x229D5C+0x48, 0xA8C, 1 + map_top 0x22A0F0+0x48, 0xA8C, 1, 1 .else map_bottom 0x229D5C, 0xA8C, 1 map_top 0x22A0F0, 0xA8C, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_34:: @ 0810663C .ifdef JP map_bottom 0x22A454+0x74, 0x708, 1 map_top 0x22A760+0x74, 0x708, 1, 1 +.else +.ifdef EU + map_bottom 0x22A454+0x48, 0x708, 1 + map_top 0x22A760+0x48, 0x708, 1, 1 .else map_bottom 0x22A454, 0x708, 1 map_top 0x22A760, 0x708, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_35:: @ 08106654 .ifdef JP map_bottom 0x22A99C+0x74, 0x258, 1 map_top 0x22AB10+0x74, 0x258, 1, 1 +.else +.ifdef EU + map_bottom 0x22A99C+0x48, 0x258, 1 + map_top 0x22AB10+0x48, 0x258, 1, 1 .else map_bottom 0x22A99C, 0x258, 1 map_top 0x22AB10, 0x258, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_36:: @ 0810666C .ifdef JP map_bottom 0x22ABF0+0x74, 0x4B0, 1 map_top 0x22AD78+0x74, 0x4B0, 1, 1 +.else +.ifdef EU + map_bottom 0x22ABF0+0x48, 0x4B0, 1 + map_top 0x22AD78+0x48, 0x4B0, 1, 1 .else map_bottom 0x22ABF0, 0x4B0, 1 map_top 0x22AD78, 0x4B0, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_37:: @ 08106684 .ifdef JP map_bottom 0x22AEC4+0x74, 0x12C, 1 map_top 0x22AFC4+0x74, 0x12C, 1, 1 +.else +.ifdef EU + map_bottom 0x22AEC4+0x48, 0x12C, 1 + map_top 0x22AFC4+0x48, 0x12C, 1, 1 .else map_bottom 0x22AEC4, 0x12C, 1 map_top 0x22AFC4, 0x12C, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_38:: @ 0810669C .ifdef JP map_bottom 0x22B03C+0x74, 0x12C, 1 map_top 0x22B150+0x74, 0x12C, 1, 1 +.else +.ifdef EU + map_bottom 0x22B03C+0x48, 0x12C, 1 + map_top 0x22B150+0x48, 0x12C, 1, 1 .else map_bottom 0x22B03C, 0x12C, 1 map_top 0x22B150, 0x12C, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_39:: @ 081066B4 .ifdef JP map_bottom 0x22B1B0+0x74, 0x12C, 1 map_top 0x22B2A8+0x74, 0x12C, 1, 1 +.else +.ifdef EU + map_bottom 0x22B1B0+0x48, 0x12C, 1 + map_top 0x22B2A8+0x48, 0x12C, 1, 1 .else map_bottom 0x22B1B0, 0x12C, 1 map_top 0x22B2A8, 0x12C, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_40:: @ 081066CC .ifdef JP map_bottom 0x22B324+0x74, 0x12C, 1 map_top 0x22B414+0x74, 0x12C, 1, 1 +.else +.ifdef EU + map_bottom 0x22B324+0x48, 0x12C, 1 + map_top 0x22B414+0x48, 0x12C, 1, 1 .else map_bottom 0x22B324, 0x12C, 1 map_top 0x22B414, 0x12C, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_41:: @ 081066E4 .ifdef JP map_bottom 0x22B498+0x74, 0x12C, 1 map_top 0x22B56C+0x74, 0x12C, 1, 1 +.else +.ifdef EU + map_bottom 0x22B498+0x48, 0x12C, 1 + map_top 0x22B56C+0x48, 0x12C, 1, 1 .else map_bottom 0x22B498, 0x12C, 1 map_top 0x22B56C, 0x12C, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_42:: @ 081066FC .ifdef JP map_bottom 0x22B5EC+0x74, 0x12C, 1 map_top 0x22B6D8+0x74, 0x12C, 1, 1 +.else +.ifdef EU + map_bottom 0x22B5EC+0x48, 0x12C, 1 + map_top 0x22B6D8+0x48, 0x12C, 1, 1 .else map_bottom 0x22B5EC, 0x12C, 1 map_top 0x22B6D8, 0x12C, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_43:: @ 08106714 .ifdef JP map_bottom 0x22B758+0x74, 0x258, 1 map_top 0x22B8B4+0x74, 0x258, 1, 1 +.else +.ifdef EU + map_bottom 0x22B758+0x48, 0x258, 1 + map_top 0x22B8B4+0x48, 0x258, 1, 1 .else map_bottom 0x22B758, 0x258, 1 map_top 0x22B8B4, 0x258, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_44:: @ 0810672C .ifdef JP map_bottom 0x22B994+0x74, 0x708, 1 map_top 0x22BC78+0x74, 0x708, 1, 1 +.else +.ifdef EU + map_bottom 0x22B994+0x48, 0x708, 1 + map_top 0x22BC78+0x48, 0x708, 1, 1 .else map_bottom 0x22B994, 0x708, 1 map_top 0x22BC78, 0x708, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_45:: @ 08106744 .ifdef JP map_bottom 0x22BE68+0x74, 0x708, 1 map_top 0x22C07C+0x74, 0x708, 1, 1 +.else +.ifdef EU + map_bottom 0x22BE68+0x48, 0x708, 1 + map_top 0x22C07C+0x48, 0x708, 1, 1 .else map_bottom 0x22BE68, 0x708, 1 map_top 0x22C07C, 0x708, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_46:: @ 0810675C .ifdef JP map_bottom 0x22C304+0x74, 0x550, 1 map_top 0x22C4B0+0x74, 0x550, 1, 1 +.else +.ifdef EU + map_bottom 0x22C304+0x48, 0x550, 1 + map_top 0x22C4B0+0x48, 0x550, 1, 1 .else map_bottom 0x22C304, 0x550, 1 map_top 0x22C4B0, 0x550, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_47:: @ 08106774 .ifdef JP map_bottom 0x22C648+0x74, 0x12C, 1 map_top 0x22C6C8+0x74, 0x12C, 1, 1 +.else +.ifdef EU + map_bottom 0x22C648+0x48, 0x12C, 1 + map_top 0x22C6C8+0x48, 0x12C, 1, 1 .else map_bottom 0x22C648, 0x12C, 1 map_top 0x22C6C8, 0x12C, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_48:: @ 0810678C .ifdef JP map_bottom 0x22C71C+0x74, 0x500, 1 map_top 0x22C9C0+0x74, 0x500, 1, 1 +.else +.ifdef EU + map_bottom 0x22C71C+0x48, 0x500, 1 + map_top 0x22C9C0+0x48, 0x500, 1, 1 .else map_bottom 0x22C71C, 0x500, 1 map_top 0x22C9C0, 0x500, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_49:: @ 081067A4 .ifdef JP map_bottom 0x22CB00+0x74, 0x3DE, 1 map_top 0x22CC68+0x74, 0x3DE, 1, 1 +.else +.ifdef EU + map_bottom 0x22CB00+0x48, 0x3DE, 1 + map_top 0x22CC68+0x48, 0x3DE, 1, 1 .else map_bottom 0x22CB00, 0x3DE, 1 map_top 0x22CC68, 0x3DE, 1, 1 .endif +.endif gAreaRoomMap_PalaceOfWinds_50:: @ 081067BC .ifdef JP map_bottom 0x22CD70+0x74, 0x708, 1 map_top 0x22D070+0x74, 0x708, 1, 1 +.else +.ifdef EU + map_bottom 0x22CD70+0x48, 0x708, 1 + map_top 0x22D070+0x48, 0x708, 1, 1 .else map_bottom 0x22CD70, 0x708, 1 map_top 0x22D070, 0x708, 1, 1 .endif +.endif gAreaRoomMaps_PalaceOfWinds:: @ 081067D4 .4byte gAreaRoomMap_PalaceOfWinds_0 @@ -2877,9 +5103,13 @@ gAreaRoomMaps_PalaceOfWinds:: @ 081067D4 gAreaRoomMap_PalaceOfWindsBoss_0:: @ 081068A0 .ifdef JP map_top 0x22D2B8+0x74, 0x1F80, 1, 1 +.else +.ifdef EU + map_top 0x22D2B8+0x48, 0x1F80, 1, 1 .else map_top 0x22D2B8, 0x1F80, 1, 1 .endif +.endif gAreaRoomMaps_PalaceOfWindsBoss:: @ 081068AC .4byte gAreaRoomMap_PalaceOfWindsBoss_0 @@ -2888,28 +5118,43 @@ gAreaRoomMap_Sanctuary_0:: @ 081068B0 .ifdef JP map_bottom 0x236A08+0x74, 0x6D6, 1 map_top 0x236D1C+0x74, 0x6D6, 1, 1 +.else +.ifdef EU + map_bottom 0x236A08+0x48, 0x6D6, 1 + map_top 0x236D1C+0x48, 0x6D6, 1, 1 .else map_bottom 0x236A08, 0x6D6, 1 map_top 0x236D1C, 0x6D6, 1, 1 .endif +.endif gAreaRoomMap_Sanctuary_1:: @ 081068C8 .ifdef JP map_bottom 0x236E14+0x74, 0x910, 1 map_top 0x237320+0x74, 0x910, 1, 1 +.else +.ifdef EU + map_bottom 0x236E14+0x48, 0x910, 1 + map_top 0x237320+0x48, 0x910, 1, 1 .else map_bottom 0x236E14, 0x910, 1 map_top 0x237320, 0x910, 1, 1 .endif +.endif gAreaRoomMap_Sanctuary_2:: @ 081068E0 .ifdef JP map_bottom 0x2375D8+0x74, 0x344, 1 map_top 0x23788C+0x74, 0x344, 1, 1 +.else +.ifdef EU + map_bottom 0x2375D8+0x48, 0x344, 1 + map_top 0x23788C+0x48, 0x344, 1, 1 .else map_bottom 0x2375D8, 0x344, 1 map_top 0x23788C, 0x344, 1, 1 .endif +.endif gAreaRoomMaps_Sanctuary:: @ 081068F8 .4byte gAreaRoomMap_Sanctuary_0 @@ -2925,64 +5170,99 @@ gAreaRoomMap_HyruleCastle_0:: @ 08106918 .ifdef JP map_bottom 0x240B44+0x74, 0x7CE, 1 map_top 0x240F30+0x74, 0x7CE, 1, 1 +.else +.ifdef EU + map_bottom 0x240B44+0x48, 0x7CE, 1 + map_top 0x240F30+0x48, 0x7CE, 1, 1 .else map_bottom 0x240B44, 0x7CE, 1 map_top 0x240F30, 0x7CE, 1, 1 .endif +.endif gAreaRoomMap_HyruleCastle_1:: @ 08106930 .ifdef JP map_bottom 0x241118+0x74, 0x7FE, 1 map_top 0x241424+0x74, 0x7FE, 1, 1 +.else +.ifdef EU + map_bottom 0x241118+0x48, 0x7FE, 1 + map_top 0x241424+0x48, 0x7FE, 1, 1 .else map_bottom 0x241118, 0x7FE, 1 map_top 0x241424, 0x7FE, 1, 1 .endif +.endif gAreaRoomMap_HyruleCastle_2:: @ 08106948 .ifdef JP map_bottom 0x2415B0+0x74, 0x2EC, 1 map_top 0x2417B8+0x74, 0x2EC, 1, 1 +.else +.ifdef EU + map_bottom 0x2415B0+0x48, 0x2EC, 1 + map_top 0x2417B8+0x48, 0x2EC, 1, 1 .else map_bottom 0x2415B0, 0x2EC, 1 map_top 0x2417B8, 0x2EC, 1, 1 .endif +.endif gAreaRoomMap_HyruleCastle_3:: @ 08106960 .ifdef JP map_bottom 0x24186C+0x74, 0xC94, 1 map_top 0x241D18+0x74, 0xC94, 1, 1 +.else +.ifdef EU + map_bottom 0x24186C+0x48, 0xC94, 1 + map_top 0x241D18+0x48, 0xC94, 1, 1 .else map_bottom 0x24186C, 0xC94, 1 map_top 0x241D18, 0xC94, 1, 1 .endif +.endif gAreaRoomMap_HyruleCastle_4:: @ 08106978 .ifdef JP map_bottom 0x241EF0+0x74, 0x1FE, 1 map_top 0x242044+0x74, 0x1FE, 1, 1 +.else +.ifdef EU + map_bottom 0x241EF0+0x48, 0x1FE, 1 + map_top 0x242044+0x48, 0x1FE, 1, 1 .else map_bottom 0x241EF0, 0x1FE, 1 map_top 0x242044, 0x1FE, 1, 1 .endif +.endif gAreaRoomMap_HyruleCastle_5:: @ 08106990 .ifdef JP map_bottom 0x2420A4+0x74, 0x12C, 1 map_top 0x24217C+0x74, 0x12C, 1, 1 +.else +.ifdef EU + map_bottom 0x2420A4+0x48, 0x12C, 1 + map_top 0x24217C+0x48, 0x12C, 1, 1 .else map_bottom 0x2420A4, 0x12C, 1 map_top 0x24217C, 0x12C, 1, 1 .endif +.endif gAreaRoomMap_HyruleCastle_6:: @ 081069A8 .ifdef JP map_bottom 0x2421A8+0x74, 0x12C, 1 map_top 0x242274+0x74, 0x12C, 1, 1 +.else +.ifdef EU + map_bottom 0x2421A8+0x48, 0x12C, 1 + map_top 0x242274+0x48, 0x12C, 1, 1 .else map_bottom 0x2421A8, 0x12C, 1 map_top 0x242274, 0x12C, 1, 1 .endif +.endif gAreaRoomMaps_HyruleCastle:: @ 081069C0 .4byte gAreaRoomMap_HyruleCastle_0 @@ -3006,10 +5286,15 @@ gAreaRoomMap_SanctuaryEntrance_0:: @ 08106A00 .ifdef JP map_bottom 0x247218+0x74, 0x396, 1 map_top 0x24745C+0x74, 0x396, 1, 1 +.else +.ifdef EU + map_bottom 0x247218+0x48, 0x396, 1 + map_top 0x24745C+0x48, 0x396, 1, 1 .else map_bottom 0x247218, 0x396, 1 map_top 0x24745C, 0x396, 1, 1 .endif +.endif gAreaRoomMaps_SanctuaryEntrance:: @ 08106A18 .4byte gAreaRoomMap_SanctuaryEntrance_0 @@ -3018,541 +5303,841 @@ gAreaRoomMap_DarkHyruleCastle_0:: @ 08106A1C .ifdef JP map_bottom 0x264EF4+0x74, 0xE58, 1 map_top 0x265378+0x74, 0xE58, 1, 1 +.else +.ifdef EU + map_bottom 0x264EF4+0x48, 0xE58, 1 + map_top 0x265378+0x48, 0xE58, 1, 1 .else map_bottom 0x264EF4, 0xE58, 1 map_top 0x265378, 0xE58, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_1:: @ 08106A34 .ifdef JP map_bottom 0x2657C8+0x74, 0x1BA, 1 map_top 0x2658A4+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x2657C8+0x48, 0x1BA, 1 + map_top 0x2658A4+0x48, 0x1BA, 1, 1 .else map_bottom 0x2657C8, 0x1BA, 1 map_top 0x2658A4, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_2:: @ 08106A4C .ifdef JP map_bottom 0x265964+0x74, 0x1BA, 1 map_top 0x265A44+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x265964+0x48, 0x1BA, 1 + map_top 0x265A44+0x48, 0x1BA, 1, 1 .else map_bottom 0x265964, 0x1BA, 1 map_top 0x265A44, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_3:: @ 08106A64 .ifdef JP map_bottom 0x265B18+0x74, 0x1BA, 1 map_top 0x265C08+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x265B18+0x48, 0x1BA, 1 + map_top 0x265C08+0x48, 0x1BA, 1, 1 .else map_bottom 0x265B18, 0x1BA, 1 map_top 0x265C08, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_4:: @ 08106A7C .ifdef JP map_bottom 0x265CD4+0x74, 0x1BA, 1 map_top 0x265DC8+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x265CD4+0x48, 0x1BA, 1 + map_top 0x265DC8+0x48, 0x1BA, 1, 1 .else map_bottom 0x265CD4, 0x1BA, 1 map_top 0x265DC8, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_5:: @ 08106A94 .ifdef JP map_bottom 0x265E98+0x74, 0x444, 1 map_top 0x2660BC+0x74, 0x444, 1, 1 +.else +.ifdef EU + map_bottom 0x265E98+0x48, 0x444, 1 + map_top 0x2660BC+0x48, 0x444, 1, 1 .else map_bottom 0x265E98, 0x444, 1 map_top 0x2660BC, 0x444, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_6:: @ 08106AAC .ifdef JP map_bottom 0x26620C+0x74, 0x2A0, 1 map_top 0x2663A0+0x74, 0x2A0, 1, 1 +.else +.ifdef EU + map_bottom 0x26620C+0x48, 0x2A0, 1 + map_top 0x2663A0+0x48, 0x2A0, 1, 1 .else map_bottom 0x26620C, 0x2A0, 1 map_top 0x2663A0, 0x2A0, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_7:: @ 08106AC4 .ifdef JP map_bottom 0x2664A0+0x74, 0x374, 1 map_top 0x2665EC+0x74, 0x374, 1, 1 +.else +.ifdef EU + map_bottom 0x2664A0+0x48, 0x374, 1 + map_top 0x2665EC+0x48, 0x374, 1, 1 .else map_bottom 0x2664A0, 0x374, 1 map_top 0x2665EC, 0x374, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_8:: @ 08106ADC .ifdef JP map_bottom 0x266730+0x74, 0x374, 1 map_top 0x266910+0x74, 0x374, 1, 1 +.else +.ifdef EU + map_bottom 0x266730+0x48, 0x374, 1 + map_top 0x266910+0x48, 0x374, 1, 1 .else map_bottom 0x266730, 0x374, 1 map_top 0x266910, 0x374, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_9:: @ 08106AF4 .ifdef JP map_bottom 0x266A44+0x74, 0x1FE, 1 map_top 0x266B98+0x74, 0x1FE, 1, 1 +.else +.ifdef EU + map_bottom 0x266A44+0x48, 0x1FE, 1 + map_top 0x266B98+0x48, 0x1FE, 1, 1 .else map_bottom 0x266A44, 0x1FE, 1 map_top 0x266B98, 0x1FE, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_10:: @ 08106B0C .ifdef JP map_bottom 0x266C78+0x74, 0x1BA, 1 map_top 0x266DA4+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x266C78+0x48, 0x1BA, 1 + map_top 0x266DA4+0x48, 0x1BA, 1, 1 .else map_bottom 0x266C78, 0x1BA, 1 map_top 0x266DA4, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_11:: @ 08106B24 .ifdef JP map_bottom 0x266E70+0x74, 0x1BA, 1 map_top 0x266F7C+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x266E70+0x48, 0x1BA, 1 + map_top 0x266F7C+0x48, 0x1BA, 1, 1 .else map_bottom 0x266E70, 0x1BA, 1 map_top 0x266F7C, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_12:: @ 08106B3C .ifdef JP map_bottom 0x26701C+0x74, 0x1BA, 1 map_top 0x26712C+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x26701C+0x48, 0x1BA, 1 + map_top 0x26712C+0x48, 0x1BA, 1, 1 .else map_bottom 0x26701C, 0x1BA, 1 map_top 0x26712C, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_13:: @ 08106B54 .ifdef JP map_bottom 0x2671DC+0x74, 0x1BA, 1 map_top 0x2672E8+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x2671DC+0x48, 0x1BA, 1 + map_top 0x2672E8+0x48, 0x1BA, 1, 1 .else map_bottom 0x2671DC, 0x1BA, 1 map_top 0x2672E8, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_14:: @ 08106B6C .ifdef JP map_bottom 0x2673B4+0x74, 0x1BA, 1 map_top 0x2674F0+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x2673B4+0x48, 0x1BA, 1 + map_top 0x2674F0+0x48, 0x1BA, 1, 1 .else map_bottom 0x2673B4, 0x1BA, 1 map_top 0x2674F0, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_15:: @ 08106B84 .ifdef JP map_bottom 0x2675D4+0x74, 0x1BA, 1 map_top 0x2676F8+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x2675D4+0x48, 0x1BA, 1 + map_top 0x2676F8+0x48, 0x1BA, 1, 1 .else map_bottom 0x2675D4, 0x1BA, 1 map_top 0x2676F8, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_16:: @ 08106B9C .ifdef JP map_bottom 0x2677BC+0x74, 0x1BA, 1 map_top 0x2678F0+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x2677BC+0x48, 0x1BA, 1 + map_top 0x2678F0+0x48, 0x1BA, 1, 1 .else map_bottom 0x2677BC, 0x1BA, 1 map_top 0x2678F0, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_17:: @ 08106BB4 .ifdef JP map_bottom 0x2679D0+0x74, 0x2A8, 1 map_top 0x267B70+0x74, 0x2A8, 1, 1 +.else +.ifdef EU + map_bottom 0x2679D0+0x48, 0x2A8, 1 + map_top 0x267B70+0x48, 0x2A8, 1, 1 .else map_bottom 0x2679D0, 0x2A8, 1 map_top 0x267B70, 0x2A8, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_18:: @ 08106BCC .ifdef JP map_bottom 0x267C98+0x74, 0x2A8, 1 map_top 0x267E00+0x74, 0x2A8, 1, 1 +.else +.ifdef EU + map_bottom 0x267C98+0x48, 0x2A8, 1 + map_top 0x267E00+0x48, 0x2A8, 1, 1 .else map_bottom 0x267C98, 0x2A8, 1 map_top 0x267E00, 0x2A8, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_19:: @ 08106BE4 .ifdef JP map_bottom 0x267F48+0x74, 0x1BA, 1 map_top 0x268080+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x267F48+0x48, 0x1BA, 1 + map_top 0x268080+0x48, 0x1BA, 1, 1 .else map_bottom 0x267F48, 0x1BA, 1 map_top 0x268080, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_20:: @ 08106BFC .ifdef JP map_bottom 0x268168+0x74, 0x1BA, 1 map_top 0x2682C8+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x268168+0x48, 0x1BA, 1 + map_top 0x2682C8+0x48, 0x1BA, 1, 1 .else map_bottom 0x268168, 0x1BA, 1 map_top 0x2682C8, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_21:: @ 08106C14 .ifdef JP map_bottom 0x2683A4+0x74, 0x1BA, 1 map_top 0x2684CC+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x2683A4+0x48, 0x1BA, 1 + map_top 0x2684CC+0x48, 0x1BA, 1, 1 .else map_bottom 0x2683A4, 0x1BA, 1 map_top 0x2684CC, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_22:: @ 08106C2C .ifdef JP map_bottom 0x2685A8+0x74, 0x1BA, 1 map_top 0x2686B0+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x2685A8+0x48, 0x1BA, 1 + map_top 0x2686B0+0x48, 0x1BA, 1, 1 .else map_bottom 0x2685A8, 0x1BA, 1 map_top 0x2686B0, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_23:: @ 08106C44 .ifdef JP map_bottom 0x26876C+0x74, 0x374, 1 map_top 0x268930+0x74, 0x374, 1, 1 +.else +.ifdef EU + map_bottom 0x26876C+0x48, 0x374, 1 + map_top 0x268930+0x48, 0x374, 1, 1 .else map_bottom 0x26876C, 0x374, 1 map_top 0x268930, 0x374, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_24:: @ 08106C5C .ifdef JP map_bottom 0x268A98+0x74, 0x374, 1 map_top 0x268C2C+0x74, 0x374, 1, 1 +.else +.ifdef EU + map_bottom 0x268A98+0x48, 0x374, 1 + map_top 0x268C2C+0x48, 0x374, 1, 1 .else map_bottom 0x268A98, 0x374, 1 map_top 0x268C2C, 0x374, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_25:: @ 08106C74 .ifdef JP map_bottom 0x268D54+0x74, 0x1BA, 1 map_top 0x268E3C+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x268D54+0x48, 0x1BA, 1 + map_top 0x268E3C+0x48, 0x1BA, 1, 1 .else map_bottom 0x268D54, 0x1BA, 1 map_top 0x268E3C, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_26:: @ 08106C8C .ifdef JP map_bottom 0x268F0C+0x74, 0x1BA, 1 map_top 0x269010+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x268F0C+0x48, 0x1BA, 1 + map_top 0x269010+0x48, 0x1BA, 1, 1 .else map_bottom 0x268F0C, 0x1BA, 1 map_top 0x269010, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_27:: @ 08106CA4 .ifdef JP map_bottom 0x2690AC+0x74, 0x1BA, 1 map_top 0x2690E8+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x2690AC+0x48, 0x1BA, 1 + map_top 0x2690E8+0x48, 0x1BA, 1, 1 .else map_bottom 0x2690AC, 0x1BA, 1 map_top 0x2690E8, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_28:: @ 08106CBC .ifdef JP map_bottom 0x269168+0x74, 0x1BA, 1 map_top 0x269290+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x269168+0x48, 0x1BA, 1 + map_top 0x269290+0x48, 0x1BA, 1, 1 .else map_bottom 0x269168, 0x1BA, 1 map_top 0x269290, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_29:: @ 08106CD4 .ifdef JP map_bottom 0x26936C+0x74, 0x374, 1 map_top 0x2694B0+0x74, 0x374, 1, 1 +.else +.ifdef EU + map_bottom 0x26936C+0x48, 0x374, 1 + map_top 0x2694B0+0x48, 0x374, 1, 1 .else map_bottom 0x26936C, 0x374, 1 map_top 0x2694B0, 0x374, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_30:: @ 08106CEC .ifdef JP map_bottom 0x2695F0+0x74, 0x1BA, 1 map_top 0x2696D4+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x2695F0+0x48, 0x1BA, 1 + map_top 0x2696D4+0x48, 0x1BA, 1, 1 .else map_bottom 0x2695F0, 0x1BA, 1 map_top 0x2696D4, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_31:: @ 08106D04 .ifdef JP map_bottom 0x269794+0x74, 0x1BA, 1 map_top 0x2698E4+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x269794+0x48, 0x1BA, 1 + map_top 0x2698E4+0x48, 0x1BA, 1, 1 .else map_bottom 0x269794, 0x1BA, 1 map_top 0x2698E4, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_32:: @ 08106D1C .ifdef JP map_bottom 0x2699BC+0x74, 0x1BA, 1 map_top 0x269AF0+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x2699BC+0x48, 0x1BA, 1 + map_top 0x269AF0+0x48, 0x1BA, 1, 1 .else map_bottom 0x2699BC, 0x1BA, 1 map_top 0x269AF0, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_33:: @ 08106D34 .ifdef JP map_bottom 0x269BD8+0x74, 0x1BA, 1 map_top 0x269CE0+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x269BD8+0x48, 0x1BA, 1 + map_top 0x269CE0+0x48, 0x1BA, 1, 1 .else map_bottom 0x269BD8, 0x1BA, 1 map_top 0x269CE0, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_34:: @ 08106D4C .ifdef JP map_bottom 0x269DB4+0x74, 0x1BA, 1 map_top 0x269ED0+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x269DB4+0x48, 0x1BA, 1 + map_top 0x269ED0+0x48, 0x1BA, 1, 1 .else map_bottom 0x269DB4, 0x1BA, 1 map_top 0x269ED0, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_35:: @ 08106D64 .ifdef JP map_bottom 0x269FAC+0x74, 0x1BA, 1 map_top 0x269FE8+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x269FAC+0x48, 0x1BA, 1 + map_top 0x269FE8+0x48, 0x1BA, 1, 1 .else map_bottom 0x269FAC, 0x1BA, 1 map_top 0x269FE8, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_36:: @ 08106D7C .ifdef JP map_bottom 0x26A168+0x74, 0x1BA, 1 map_top 0x26A1A4+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x26A168+0x48, 0x1BA, 1 + map_top 0x26A1A4+0x48, 0x1BA, 1, 1 .else map_bottom 0x26A168, 0x1BA, 1 map_top 0x26A1A4, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_37:: @ 08106D94 .ifdef JP map_bottom 0x26A2F8+0x74, 0x1BA, 1 map_top 0x26A334+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x26A2F8+0x48, 0x1BA, 1 + map_top 0x26A334+0x48, 0x1BA, 1, 1 .else map_bottom 0x26A2F8, 0x1BA, 1 map_top 0x26A334, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_38:: @ 08106DAC .ifdef JP map_bottom 0x26A4A0+0x74, 0x2A8, 1 map_top 0x26A5CC+0x74, 0x2A8, 1, 1 +.else +.ifdef EU + map_bottom 0x26A4A0+0x48, 0x2A8, 1 + map_top 0x26A5CC+0x48, 0x2A8, 1, 1 .else map_bottom 0x26A4A0, 0x2A8, 1 map_top 0x26A5CC, 0x2A8, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_39:: @ 08106DC4 .ifdef JP map_bottom 0x26A70C+0x74, 0x2A8, 1 map_top 0x26A7BC+0x74, 0x2A8, 1, 1 +.else +.ifdef EU + map_bottom 0x26A70C+0x48, 0x2A8, 1 + map_top 0x26A7BC+0x48, 0x2A8, 1, 1 .else map_bottom 0x26A70C, 0x2A8, 1 map_top 0x26A7BC, 0x2A8, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_40:: @ 08106DDC .ifdef JP map_bottom 0x26A940+0x74, 0x1BA, 1 map_top 0x26AA24+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x26A940+0x48, 0x1BA, 1 + map_top 0x26AA24+0x48, 0x1BA, 1, 1 .else map_bottom 0x26A940, 0x1BA, 1 map_top 0x26AA24, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_41:: @ 08106DF4 .ifdef JP map_bottom 0x26AAF8+0x74, 0x1BA, 1 map_top 0x26ABB4+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x26AAF8+0x48, 0x1BA, 1 + map_top 0x26ABB4+0x48, 0x1BA, 1, 1 .else map_bottom 0x26AAF8, 0x1BA, 1 map_top 0x26ABB4, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_42:: @ 08106E0C .ifdef JP map_bottom 0x26AC78+0x74, 0x1BA, 1 map_top 0x26AD44+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x26AC78+0x48, 0x1BA, 1 + map_top 0x26AD44+0x48, 0x1BA, 1, 1 .else map_bottom 0x26AC78, 0x1BA, 1 map_top 0x26AD44, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_43:: @ 08106E24 .ifdef JP map_bottom 0x26AE18+0x74, 0x1BA, 1 map_top 0x26AEF8+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x26AE18+0x48, 0x1BA, 1 + map_top 0x26AEF8+0x48, 0x1BA, 1, 1 .else map_bottom 0x26AE18, 0x1BA, 1 map_top 0x26AEF8, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_44:: @ 08106E3C .ifdef JP map_bottom 0x26AFBC+0x74, 0x1BA, 1 map_top 0x26B094+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x26AFBC+0x48, 0x1BA, 1 + map_top 0x26B094+0x48, 0x1BA, 1, 1 .else map_bottom 0x26AFBC, 0x1BA, 1 map_top 0x26B094, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_45:: @ 08106E54 .ifdef JP map_bottom 0x26B15C+0x74, 0x1BA, 1 map_top 0x26B250+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x26B15C+0x48, 0x1BA, 1 + map_top 0x26B250+0x48, 0x1BA, 1, 1 .else map_bottom 0x26B15C, 0x1BA, 1 map_top 0x26B250, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_46:: @ 08106E6C .ifdef JP map_bottom 0x26B2F4+0x74, 0x1BA, 1 map_top 0x26B408+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x26B2F4+0x48, 0x1BA, 1 + map_top 0x26B408+0x48, 0x1BA, 1, 1 .else map_bottom 0x26B2F4, 0x1BA, 1 map_top 0x26B408, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_47:: @ 08106E84 .ifdef JP map_bottom 0x26B4BC+0x74, 0x1BA, 1 map_top 0x26B4F8+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x26B4BC+0x48, 0x1BA, 1 + map_top 0x26B4F8+0x48, 0x1BA, 1, 1 .else map_bottom 0x26B4BC, 0x1BA, 1 map_top 0x26B4F8, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_48:: @ 08106E9C .ifdef JP map_bottom 0x26B658+0x74, 0x1BA, 1 map_top 0x26B694+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x26B658+0x48, 0x1BA, 1 + map_top 0x26B694+0x48, 0x1BA, 1, 1 .else map_bottom 0x26B658, 0x1BA, 1 map_top 0x26B694, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_49:: @ 08106EB4 .ifdef JP map_bottom 0x26B7EC+0x74, 0x1BA, 1 map_top 0x26B828+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x26B7EC+0x48, 0x1BA, 1 + map_top 0x26B828+0x48, 0x1BA, 1, 1 .else map_bottom 0x26B7EC, 0x1BA, 1 map_top 0x26B828, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_50:: @ 08106ECC .ifdef JP map_bottom 0x26B984+0x74, 0x1BA, 1 map_top 0x26B9C0+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x26B984+0x48, 0x1BA, 1 + map_top 0x26B9C0+0x48, 0x1BA, 1, 1 .else map_bottom 0x26B984, 0x1BA, 1 map_top 0x26B9C0, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_51:: @ 08106EE4 .ifdef JP map_bottom 0x26BB34+0x74, 0x2A8, 1 map_top 0x26BB8C+0x74, 0x2A8, 1, 1 +.else +.ifdef EU + map_bottom 0x26BB34+0x48, 0x2A8, 1 + map_top 0x26BB8C+0x48, 0x2A8, 1, 1 .else map_bottom 0x26BB34, 0x2A8, 1 map_top 0x26BB8C, 0x2A8, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_52:: @ 08106EFC .ifdef JP map_bottom 0x26BD88+0x74, 0x2A8, 1 map_top 0x26BDE0+0x74, 0x2A8, 1, 1 +.else +.ifdef EU + map_bottom 0x26BD88+0x48, 0x2A8, 1 + map_top 0x26BDE0+0x48, 0x2A8, 1, 1 .else map_bottom 0x26BD88, 0x2A8, 1 map_top 0x26BDE0, 0x2A8, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_53:: @ 08106F14 .ifdef JP map_bottom 0x26BFB4+0x74, 0x1BA, 1 map_top 0x26C060+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x26BFB4+0x48, 0x1BA, 1 + map_top 0x26C060+0x48, 0x1BA, 1, 1 .else map_bottom 0x26BFB4, 0x1BA, 1 map_top 0x26C060, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_54:: @ 08106F2C .ifdef JP map_bottom 0x26C190+0x74, 0x1BA, 1 map_top 0x26C23C+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x26C190+0x48, 0x1BA, 1 + map_top 0x26C23C+0x48, 0x1BA, 1, 1 .else map_bottom 0x26C190, 0x1BA, 1 map_top 0x26C23C, 0x1BA, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_55:: @ 08106F44 .ifdef JP map_bottom 0x26C36C+0x74, 0xA5C, 1 map_top 0x26C578+0x74, 0xA5C, 1, 1 +.else +.ifdef EU + map_bottom 0x26C36C+0x48, 0xA5C, 1 + map_top 0x26C578+0x48, 0xA5C, 1, 1 .else map_bottom 0x26C36C, 0xA5C, 1 map_top 0x26C578, 0xA5C, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_56:: @ 08106F5C .ifdef JP map_bottom 0x26CB1C+0x74, 0x1FE, 1 map_top 0x26CC54+0x74, 0x1FE, 1, 1 +.else +.ifdef EU + map_bottom 0x26CB1C+0x48, 0x1FE, 1 + map_top 0x26CC54+0x48, 0x1FE, 1, 1 .else map_bottom 0x26CB1C, 0x1FE, 1 map_top 0x26CC54, 0x1FE, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_57:: @ 08106F74 .ifdef JP map_bottom 0x26CD14+0x74, 0x3FC, 1 map_top 0x26CE94+0x74, 0x3FC, 1, 1 +.else +.ifdef EU + map_bottom 0x26CD14+0x48, 0x3FC, 1 + map_top 0x26CE94+0x48, 0x3FC, 1, 1 .else map_bottom 0x26CD14, 0x3FC, 1 map_top 0x26CE94, 0x3FC, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_58:: @ 08106F8C .ifdef JP map_bottom 0x26CFD0+0x74, 0x264, 1 map_top 0x26D0C4+0x74, 0x264, 1, 1 +.else +.ifdef EU + map_bottom 0x26CFD0+0x48, 0x264, 1 + map_top 0x26D0C4+0x48, 0x264, 1, 1 .else map_bottom 0x26CFD0, 0x264, 1 map_top 0x26D0C4, 0x264, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastle_59:: @ 08106FA4 .ifdef JP map_bottom 0x26D194+0x74, 0x1BA, 1 map_top 0x26D1D0+0x74, 0x1BA, 1, 1 +.else +.ifdef EU + map_bottom 0x26D194+0x48, 0x1BA, 1 + map_top 0x26D1D0+0x48, 0x1BA, 1, 1 .else map_bottom 0x26D194, 0x1BA, 1 map_top 0x26D1D0, 0x1BA, 1, 1 .endif +.endif gAreaRoomMaps_DarkHyruleCastle:: @ 08106FBC .4byte gAreaRoomMap_DarkHyruleCastle_0 @@ -3620,82 +6205,127 @@ gAreaRoomMap_DarkHyruleCastleOutside_0:: @ 081070AC .ifdef JP map_bottom 0x27647C+0x74, 0x2EE, 1 map_top 0x276694+0x74, 0x2EE, 1, 1 +.else +.ifdef EU + map_bottom 0x27647C+0x48, 0x2EE, 1 + map_top 0x276694+0x48, 0x2EE, 1, 1 .else map_bottom 0x27647C, 0x2EE, 1 map_top 0x276694, 0x2EE, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastleOutside_1:: @ 081070C4 .ifdef JP map_bottom 0x276704+0x74, 0x396, 1 map_top 0x276924+0x74, 0x396, 1, 1 +.else +.ifdef EU + map_bottom 0x276704+0x48, 0x396, 1 + map_top 0x276924+0x48, 0x396, 1, 1 .else map_bottom 0x276704, 0x396, 1 map_top 0x276924, 0x396, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastleOutside_2:: @ 081070DC .ifdef JP map_bottom 0x2769A0+0x74, 0x374, 1 map_top 0x276A8C+0x74, 0x374, 1, 1 +.else +.ifdef EU + map_bottom 0x2769A0+0x48, 0x374, 1 + map_top 0x276A8C+0x48, 0x374, 1, 1 .else map_bottom 0x2769A0, 0x374, 1 map_top 0x276A8C, 0x374, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastleOutside_3:: @ 081070F4 .ifdef JP map_bottom 0x276BE8+0x74, 0x52E, 1 map_top 0x276D2C+0x74, 0x52E, 1, 1 +.else +.ifdef EU + map_bottom 0x276BE8+0x48, 0x52E, 1 + map_top 0x276D2C+0x48, 0x52E, 1, 1 .else map_bottom 0x276BE8, 0x52E, 1 map_top 0x276D2C, 0x52E, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastleOutside_4:: @ 0810710C .ifdef JP map_bottom 0x276EEC+0x74, 0x2A8, 1 map_top 0x276F78+0x74, 0x2A8, 1, 1 +.else +.ifdef EU + map_bottom 0x276EEC+0x48, 0x2A8, 1 + map_top 0x276F78+0x48, 0x2A8, 1, 1 .else map_bottom 0x276EEC, 0x2A8, 1 map_top 0x276F78, 0x2A8, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastleOutside_5:: @ 08107124 .ifdef JP map_bottom 0x27705C+0x74, 0x374, 1 map_top 0x277164+0x74, 0x374, 1, 1 +.else +.ifdef EU + map_bottom 0x27705C+0x48, 0x374, 1 + map_top 0x277164+0x48, 0x374, 1, 1 .else map_bottom 0x27705C, 0x374, 1 map_top 0x277164, 0x374, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastleOutside_6:: @ 0810713C .ifdef JP map_bottom 0x2772D0+0x74, 0xA5C, 1 map_top 0x277480+0x74, 0xA5C, 1, 1 +.else +.ifdef EU + map_bottom 0x2772D0+0x48, 0xA5C, 1 + map_top 0x277480+0x48, 0xA5C, 1, 1 .else map_bottom 0x2772D0, 0xA5C, 1 map_top 0x277480, 0xA5C, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastleOutside_7:: @ 08107154 .ifdef JP map_bottom 0x2776C8+0x74, 0x6E8, 1 map_top 0x277848+0x74, 0x6E8, 1, 1 +.else +.ifdef EU + map_bottom 0x2776C8+0x48, 0x6E8, 1 + map_top 0x277848+0x48, 0x6E8, 1, 1 .else map_bottom 0x2776C8, 0x6E8, 1 map_top 0x277848, 0x6E8, 1, 1 .endif +.endif gAreaRoomMap_DarkHyruleCastleOutside_8:: @ 0810716C .ifdef JP map_bottom 0x277A28+0x74, 0x630, 1 map_top 0x277AEC+0x74, 0x630, 1, 1 +.else +.ifdef EU + map_bottom 0x277A28+0x48, 0x630, 1 + map_top 0x277AEC+0x48, 0x630, 1, 1 .else map_bottom 0x277A28, 0x630, 1 map_top 0x277AEC, 0x630, 1, 1 .endif +.endif gAreaRoomMaps_DarkHyruleCastleOutside:: @ 08107184 .4byte gAreaRoomMap_DarkHyruleCastleOutside_0 @@ -3712,10 +6342,15 @@ gAreaRoomMap_DarkHyruleCastleBridge_0:: @ 081071A8 .ifdef JP map_bottom 0x26D27C+0x74, 0x2A8, 1 map_top 0x26D470+0x74, 0x2A8, 1, 1 +.else +.ifdef EU + map_bottom 0x26D27C+0x48, 0x2A8, 1 + map_top 0x26D470+0x48, 0x2A8, 1, 1 .else map_bottom 0x26D27C, 0x2A8, 1 map_top 0x26D470, 0x2A8, 1, 1 .endif +.endif gAreaRoomMaps_DarkHyruleCastleBridge:: @ 081071C0 .4byte gAreaRoomMap_DarkHyruleCastleBridge_0 @@ -3724,28 +6359,43 @@ gAreaRoomMap_VaatisArms_0:: @ 081071C4 .ifdef JP map_bottom 0x26DA80+0x74, 0x214, 1 map_top 0x26DC40+0x74, 0x214, 1, 1 +.else +.ifdef EU + map_bottom 0x26DA80+0x48, 0x214, 1 + map_top 0x26DC40+0x48, 0x214, 1, 1 .else map_bottom 0x26DA80, 0x214, 1 map_top 0x26DC40, 0x214, 1, 1 .endif +.endif gAreaRoomMap_VaatisArms_1:: @ 081071DC .ifdef JP map_bottom 0x26DC98+0x74, 0x214, 1 map_top 0x26DE58+0x74, 0x214, 1, 1 +.else +.ifdef EU + map_bottom 0x26DC98+0x48, 0x214, 1 + map_top 0x26DE58+0x48, 0x214, 1, 1 .else map_bottom 0x26DC98, 0x214, 1 map_top 0x26DE58, 0x214, 1, 1 .endif +.endif gAreaRoomMap_VaatisArms_2:: @ 081071F4 .ifdef JP map_bottom 0x26DEB0+0x74, 0x214, 1 map_top 0x26E070+0x74, 0x214, 1, 1 +.else +.ifdef EU + map_bottom 0x26DEB0+0x48, 0x214, 1 + map_top 0x26E070+0x48, 0x214, 1, 1 .else map_bottom 0x26DEB0, 0x214, 1 map_top 0x26E070, 0x214, 1, 1 .endif +.endif gAreaRoomMaps_VaatisArms:: @ 0810720C .4byte gAreaRoomMap_VaatisArms_0 @@ -3756,19 +6406,29 @@ gAreaRoomMap_Vaati3_0:: @ 08107218 .ifdef JP map_bottom 0x26D564+0x74, 0x294, 1 map_top 0x26D704+0x74, 0x294, 1, 1 +.else +.ifdef EU + map_bottom 0x26D564+0x48, 0x294, 1 + map_top 0x26D704+0x48, 0x294, 1, 1 .else map_bottom 0x26D564, 0x294, 1 map_top 0x26D704, 0x294, 1, 1 .endif +.endif gAreaRoomMap_Vaati3_1:: @ 08107230 .ifdef JP map_bottom 0x26D75C+0x74, 0x210, 1 map_top 0x26D89C+0x74, 0x210, 1, 1 +.else +.ifdef EU + map_bottom 0x26D75C+0x48, 0x210, 1 + map_top 0x26D89C+0x48, 0x210, 1, 1 .else map_bottom 0x26D75C, 0x210, 1 map_top 0x26D89C, 0x210, 1, 1 .endif +.endif gAreaRoomMaps_Vaati3:: @ 08107248 .4byte gAreaRoomMap_Vaati3_0 @@ -3778,10 +6438,15 @@ gAreaRoomMap_Vaati2_0:: @ 08107250 .ifdef JP map_bottom 0x26D8E4+0x74, 0x294, 1 map_top 0x26DA24+0x74, 0x294, 1, 1 +.else +.ifdef EU + map_bottom 0x26D8E4+0x48, 0x294, 1 + map_top 0x26DA24+0x48, 0x294, 1, 1 .else map_bottom 0x26D8E4, 0x294, 1 map_top 0x26DA24, 0x294, 1, 1 .endif +.endif gAreaRoomMaps_Vaati2:: @ 08107268 .4byte gAreaRoomMap_Vaati2_0 @@ -3790,28 +6455,43 @@ gAreaRoomMap_47_0:: @ 0810726C .ifdef JP map_bottom 0x277BB0+0x74, 0x256, 1 map_top 0x277CD8+0x74, 0x256, 1, 1 +.else +.ifdef EU + map_bottom 0x277BB0+0x48, 0x256, 1 + map_top 0x277CD8+0x48, 0x256, 1, 1 .else map_bottom 0x277BB0, 0x256, 1 map_top 0x277CD8, 0x256, 1, 1 .endif +.endif gAreaRoomMap_47_1:: @ 08107284 .ifdef JP map_bottom 0x277D38+0x74, 0x2B2, 1 map_top 0x277E5C+0x74, 0x2B2, 1, 1 +.else +.ifdef EU + map_bottom 0x277D38+0x48, 0x2B2, 1 + map_top 0x277E5C+0x48, 0x2B2, 1, 1 .else map_bottom 0x277D38, 0x2B2, 1 map_top 0x277E5C, 0x2B2, 1, 1 .endif +.endif gAreaRoomMap_47_2:: @ 0810729C .ifdef JP map_bottom 0x277ECC+0x74, 0x47E, 1 map_top 0x2780BC+0x74, 0x47E, 1, 1 +.else +.ifdef EU + map_bottom 0x277ECC+0x48, 0x47E, 1 + map_top 0x2780BC+0x48, 0x47E, 1, 1 .else map_bottom 0x277ECC, 0x47E, 1 map_top 0x2780BC, 0x47E, 1, 1 .endif +.endif gAreaRoomMaps_47:: @ 081072B4 .4byte gAreaRoomMap_47_0 @@ -3819,24 +6499,49 @@ gAreaRoomMaps_47:: @ 081072B4 .4byte gAreaRoomMap_47_2 gAreaRoomMap_CastorCaves_0:: @ 081072C0 +.ifdef EU + map_bottom 0x9FEB4-0x4, 0x168, 1 + map_top 0x9FFE4-0x4, 0x168, 1, 1 +.else map_bottom 0x9FEB4, 0x168, 1 map_top 0x9FFE4, 0x168, 1, 1 +.endif gAreaRoomMap_CastorCaves_1:: @ 081072D8 +.ifdef EU + map_bottom 0xA0030-0x4, 0x1B8, 1 + map_top 0xA0194-0x4, 0x1B8, 1, 1 +.else map_bottom 0xA0030, 0x1B8, 1 map_top 0xA0194, 0x1B8, 1, 1 +.endif gAreaRoomMap_CastorCaves_2:: @ 081072F0 +.ifdef EU + map_bottom 0xA01DC-0x4, 0x12C, 1 + map_top 0xA02B4-0x4, 0x12C, 1, 1 +.else map_bottom 0xA01DC, 0x12C, 1 map_top 0xA02B4, 0x12C, 1, 1 +.endif gAreaRoomMap_CastorCaves_3:: @ 08107308 +.ifdef EU + map_bottom 0xA0328-0x4, 0x12C, 1 + map_top 0xA0414-0x4, 0x12C, 1, 1 +.else map_bottom 0xA0328, 0x12C, 1 map_top 0xA0414, 0x12C, 1, 1 +.endif gAreaRoomMap_CastorCaves_4:: @ 08107320 +.ifdef EU + map_bottom 0xA0488-0x4, 0x12C, 1 + map_top 0xA058C-0x4, 0x12C, 1, 1 +.else map_bottom 0xA0488, 0x12C, 1 map_top 0xA058C, 0x12C, 1, 1 +.endif gAreaRoomMaps_CastorCaves:: @ 08107338 .4byte gAreaRoomMap_CastorCaves_0 @@ -3846,112 +6551,242 @@ gAreaRoomMaps_CastorCaves:: @ 08107338 .4byte gAreaRoomMap_CastorCaves_4 gAreaRoomMap_CastorDarknut_0:: @ 0810734C +.ifdef EU + map_bottom 0xA05C0-0x4, 0x1BA, 1 + map_top 0xA0724-0x4, 0x1BA, 1, 1 +.else map_bottom 0xA05C0, 0x1BA, 1 map_top 0xA0724, 0x1BA, 1, 1 +.endif gAreaRoomMap_CastorDarknut_1:: @ 08107364 +.ifdef EU + map_bottom 0xA0768-0x4, 0x280, 1 + map_top 0xA08BC-0x4, 0x280, 1, 1 +.else map_bottom 0xA0768, 0x280, 1 map_top 0xA08BC, 0x280, 1, 1 +.endif gAreaRoomMaps_CastorDarknut:: @ 0810737C .4byte gAreaRoomMap_CastorDarknut_0 .4byte gAreaRoomMap_CastorDarknut_1 gAreaRoomMap_Caves_0:: @ 08107384 +.ifdef EU + map_bottom 0xB04AC-0x4, 0x372, 1 + map_top 0xB06C8-0x4, 0x372, 1, 1 +.else map_bottom 0xB04AC, 0x372, 1 map_top 0xB06C8, 0x372, 1, 1 +.endif gAreaRoomMap_Caves_1:: @ 0810739C +.ifdef EU + map_bottom 0xB0738-0x4, 0x2B2, 1 + map_top 0xB090C-0x4, 0x2B2, 1, 1 +.else map_bottom 0xB0738, 0x2B2, 1 map_top 0xB090C, 0x2B2, 1, 1 +.endif gAreaRoomMap_Caves_2:: @ 081073B4 +.ifdef EU + map_bottom 0xB09B8-0x4, 0x12C, 1 + map_top 0xB0ABC-0x4, 0x12C, 1, 1 +.else map_bottom 0xB09B8, 0x12C, 1 map_top 0xB0ABC, 0x12C, 1, 1 +.endif gAreaRoomMap_Caves_3:: @ 081073CC +.ifdef EU + map_bottom 0xB0AE8-0x4, 0x12C, 1 + map_top 0xB0BF4-0x4, 0x12C, 1, 1 +.else map_bottom 0xB0AE8, 0x12C, 1 map_top 0xB0BF4, 0x12C, 1, 1 +.endif gAreaRoomMap_Caves_4:: @ 081073E4 +.ifdef EU + map_bottom 0xB0C20-0x4, 0x12C, 1 + map_top 0xB0D10-0x4, 0x12C, 1, 1 +.else map_bottom 0xB0C20, 0x12C, 1 map_top 0xB0D10, 0x12C, 1, 1 +.endif gAreaRoomMap_Caves_5:: @ 081073FC +.ifdef EU + map_bottom 0xB0D3C-0x4, 0x12C, 1 + map_top 0xB0E08-0x4, 0x12C, 1, 1 +.else map_bottom 0xB0D3C, 0x12C, 1 map_top 0xB0E08, 0x12C, 1, 1 +.endif gAreaRoomMap_Caves_6:: @ 08107414 +.ifdef EU + map_bottom 0xB0E34-0x4, 0x1A4, 1 + map_top 0xB0F48-0x4, 0x1A4, 1, 1 +.else map_bottom 0xB0E34, 0x1A4, 1 map_top 0xB0F48, 0x1A4, 1, 1 +.endif gAreaRoomMap_Caves_7:: @ 0810742C +.ifdef EU + map_bottom 0xB0FE0-0x4, 0x12C, 1 + map_top 0xB10E8-0x4, 0x12C, 1, 1 +.else map_bottom 0xB0FE0, 0x12C, 1 map_top 0xB10E8, 0x12C, 1, 1 +.endif gAreaRoomMap_Caves_8:: @ 08107444 +.ifdef EU + map_bottom 0xB113C-0x4, 0x12C, 1 + map_top 0xB1250-0x4, 0x12C, 1, 1 +.else map_bottom 0xB113C, 0x12C, 1 map_top 0xB1250, 0x12C, 1, 1 +.endif gAreaRoomMap_Caves_9:: @ 0810745C +.ifdef EU + map_bottom 0xB1290-0x4, 0x12C, 1 + map_top 0xB1390-0x4, 0x12C, 1, 1 +.else map_bottom 0xB1290, 0x12C, 1 map_top 0xB1390, 0x12C, 1, 1 +.endif gAreaRoomMap_Caves_10:: @ 08107474 +.ifdef EU + map_bottom 0xB13F0-0x4, 0x12C, 1 + map_top 0xB14EC-0x4, 0x12C, 1, 1 +.else map_bottom 0xB13F0, 0x12C, 1 map_top 0xB14EC, 0x12C, 1, 1 +.endif gAreaRoomMap_Caves_11:: @ 0810748C +.ifdef EU + map_bottom 0xB1520-0x4, 0x12C, 1 + map_top 0xB1624-0x4, 0x12C, 1, 1 +.else map_bottom 0xB1520, 0x12C, 1 map_top 0xB1624, 0x12C, 1, 1 +.endif gAreaRoomMap_Caves_12:: @ 081074A4 +.ifdef EU + map_bottom 0xB1658-0x4, 0x1E0, 1 + map_top 0xB17C0-0x4, 0x1E0, 1, 1 +.else map_bottom 0xB1658, 0x1E0, 1 map_top 0xB17C0, 0x1E0, 1, 1 +.endif gAreaRoomMap_Caves_13:: @ 081074BC +.ifdef EU + map_bottom 0xB183C-0x4, 0x1E0, 1 + map_top 0xB1940-0x4, 0x1E0, 1, 1 +.else map_bottom 0xB183C, 0x1E0, 1 map_top 0xB1940, 0x1E0, 1, 1 +.endif gAreaRoomMap_Caves_14:: @ 081074D4 +.ifdef EU + map_bottom 0xB19D0-0x4, 0x208, 1 + map_top 0xB1B00-0x4, 0x208, 1, 1 +.else map_bottom 0xB19D0, 0x208, 1 map_top 0xB1B00, 0x208, 1, 1 +.endif gAreaRoomMap_Caves_15:: @ 081074EC +.ifdef EU + map_bottom 0xB1B7C-0x4, 0x12C, 1 + map_top 0xB1C88-0x4, 0x12C, 1, 1 +.else map_bottom 0xB1B7C, 0x12C, 1 map_top 0xB1C88, 0x12C, 1, 1 +.endif gAreaRoomMap_Caves_16:: @ 08107504 +.ifdef EU + map_bottom 0xB1CBC-0x4, 0x12C, 1 + map_top 0xB1DAC-0x4, 0x12C, 1, 1 +.else map_bottom 0xB1CBC, 0x12C, 1 map_top 0xB1DAC, 0x12C, 1, 1 +.endif gAreaRoomMap_Caves_17:: @ 0810751C +.ifdef EU + map_bottom 0xB1DE0-0x4, 0x12C, 1 + map_top 0xB1EDC-0x4, 0x12C, 1, 1 +.else map_bottom 0xB1DE0, 0x12C, 1 map_top 0xB1EDC, 0x12C, 1, 1 +.endif gAreaRoomMap_Caves_18:: @ 08107534 +.ifdef EU + map_bottom 0xB1F10-0x4, 0x12C, 1 + map_top 0xB200C-0x4, 0x12C, 1, 1 +.else map_bottom 0xB1F10, 0x12C, 1 map_top 0xB200C, 0x12C, 1, 1 +.endif gAreaRoomMap_Caves_19:: @ 0810754C +.ifdef EU + map_bottom 0xB2038-0x4, 0x12C, 1 + map_top 0xB2124-0x4, 0x12C, 1, 1 +.else map_bottom 0xB2038, 0x12C, 1 map_top 0xB2124, 0x12C, 1, 1 +.endif gAreaRoomMap_Caves_20:: @ 08107564 +.ifdef EU + map_bottom 0xB2174-0x4, 0x12C, 1 + map_top 0xB225C-0x4, 0x12C, 1, 1 +.else map_bottom 0xB2174, 0x12C, 1 map_top 0xB225C, 0x12C, 1, 1 +.endif gAreaRoomMap_Caves_21:: @ 0810757C +.ifdef EU + map_bottom 0xB2294-0x4, 0x1C2, 1 + map_top 0xB2374-0x4, 0x1C2, 1, 1 +.else map_bottom 0xB2294, 0x1C2, 1 map_top 0xB2374, 0x1C2, 1, 1 +.endif gAreaRoomMap_Caves_22:: @ 08107594 +.ifdef EU + map_bottom 0xB2410-0x4, 0x12C, 1 + map_top 0xB2524-0x4, 0x12C, 1, 1 +.else map_bottom 0xB2410, 0x12C, 1 map_top 0xB2524, 0x12C, 1, 1 +.endif gAreaRoomMap_Caves_23:: @ 081075AC +.ifdef EU + map_bottom 0xB2560-0x4, 0x12C, 1 + map_top 0xB2624-0x4, 0x12C, 1, 1 +.else map_bottom 0xB2560, 0x12C, 1 map_top 0xB2624, 0x12C, 1, 1 +.endif gAreaRoomMaps_Caves:: @ 081075C4 .4byte gAreaRoomMap_Caves_0 @@ -3980,44 +6815,94 @@ gAreaRoomMaps_Caves:: @ 081075C4 .4byte gAreaRoomMap_Caves_23 gAreaRoomMap_VeilFallsCaves_0:: @ 08107624 +.ifdef EU + map_bottom 0xB2658-0x4, 0x1A4, 1 + map_top 0xB277C-0x4, 0x1A4, 1, 1 +.else map_bottom 0xB2658, 0x1A4, 1 map_top 0xB277C, 0x1A4, 1, 1 +.endif gAreaRoomMap_VeilFallsCaves_1:: @ 0810763C +.ifdef EU + map_bottom 0xB27E8-0x4, 0x2D0, 1 + map_top 0xB297C-0x4, 0x2D0, 1, 1 +.else map_bottom 0xB27E8, 0x2D0, 1 map_top 0xB297C, 0x2D0, 1, 1 +.endif gAreaRoomMap_VeilFallsCaves_2:: @ 08107654 +.ifdef EU + map_bottom 0xB2A3C-0x4, 0x186, 1 + map_top 0xB2B18-0x4, 0x186, 1, 1 +.else map_bottom 0xB2A3C, 0x186, 1 map_top 0xB2B18, 0x186, 1, 1 +.endif gAreaRoomMap_VeilFallsCaves_3:: @ 0810766C +.ifdef EU + map_bottom 0xB2BAC-0x4, 0x1E0, 1 + map_top 0xB2CE8-0x4, 0x1E0, 1, 1 +.else map_bottom 0xB2BAC, 0x1E0, 1 map_top 0xB2CE8, 0x1E0, 1, 1 +.endif gAreaRoomMap_VeilFallsCaves_4:: @ 08107684 +.ifdef EU + map_bottom 0xB2D34-0x4, 0x12C, 1 + map_top 0xB2E14-0x4, 0x12C, 1, 1 +.else map_bottom 0xB2D34, 0x12C, 1 map_top 0xB2E14, 0x12C, 1, 1 +.endif gAreaRoomMap_VeilFallsCaves_5:: @ 0810769C +.ifdef EU + map_bottom 0xB2E88-0x4, 0x12C, 1 + map_top 0xB2F50-0x4, 0x12C, 1, 1 +.else map_bottom 0xB2E88, 0x12C, 1 map_top 0xB2F50, 0x12C, 1, 1 +.endif gAreaRoomMap_VeilFallsCaves_6:: @ 081076B4 +.ifdef EU + map_bottom 0xB2FD8-0x4, 0x12C, 1 + map_top 0xB309C-0x4, 0x12C, 1, 1 +.else map_bottom 0xB2FD8, 0x12C, 1 map_top 0xB309C, 0x12C, 1, 1 +.endif gAreaRoomMap_VeilFallsCaves_7:: @ 081076CC +.ifdef EU + map_bottom 0xB310C-0x4, 0x258, 1 + map_top 0xB328C-0x4, 0x258, 1, 1 +.else map_bottom 0xB310C, 0x258, 1 map_top 0xB328C, 0x258, 1, 1 +.endif gAreaRoomMap_VeilFallsCaves_8:: @ 081076E4 +.ifdef EU + map_bottom 0xB3318-0x4, 0x258, 1 + map_top 0xB34E8-0x4, 0x258, 1, 1 +.else map_bottom 0xB3318, 0x258, 1 map_top 0xB34E8, 0x258, 1, 1 +.endif gAreaRoomMap_VeilFallsCaves_9:: @ 081076FC +.ifdef EU + map_bottom 0xB3578-0x4, 0x12C, 1 + map_top 0xB3694-0x4, 0x12C, 1, 1 +.else map_bottom 0xB3578, 0x12C, 1 map_top 0xB3694, 0x12C, 1, 1 +.endif gAreaRoomMaps_VeilFallsCaves:: @ 08107714 .4byte gAreaRoomMap_VeilFallsCaves_0 @@ -4032,12 +6917,22 @@ gAreaRoomMaps_VeilFallsCaves:: @ 08107714 .4byte gAreaRoomMap_VeilFallsCaves_9 gAreaRoomMap_RoyalValleyGraves_0:: @ 0810773C +.ifdef EU + map_bottom 0xB36C8-0x4, 0x12C, 1 + map_top 0xB37E4-0x4, 0x12C, 1, 1 +.else map_bottom 0xB36C8, 0x12C, 1 map_top 0xB37E4, 0x12C, 1, 1 +.endif gAreaRoomMap_RoyalValleyGraves_1:: @ 08107754 +.ifdef EU + map_bottom 0xB3818-0x4, 0x258, 1 + map_top 0xB3984-0x4, 0x258, 1, 1 +.else map_bottom 0xB3818, 0x258, 1 map_top 0xB3984, 0x258, 1, 1 +.endif gAreaRoomMaps_RoyalValleyGraves:: @ 0810776C .4byte gAreaRoomMap_RoyalValleyGraves_0 @@ -4047,10 +6942,15 @@ gAreaRoomMap_45_0:: @ 08107774 .ifdef JP map_bottom 0x278158+0x74, 0x1FE, 1 map_top 0x27828C+0x74, 0x1FE, 1, 1 +.else +.ifdef EU + map_bottom 0x278158+0x48, 0x1FE, 1 + map_top 0x27828C+0x48, 0x1FE, 1, 1 .else map_bottom 0x278158, 0x1FE, 1 map_top 0x27828C, 0x1FE, 1, 1 .endif +.endif gAreaRoomMaps_45:: @ 0810778C .4byte gAreaRoomMap_45_0 @@ -4059,73 +6959,113 @@ gAreaRoomMap_46_0:: @ 08107790 .ifdef JP map_bottom 0x2782D0+0x74, 0x286, 1 map_top 0x278454+0x74, 0x286, 1, 1 +.else +.ifdef EU + map_bottom 0x2782D0+0x48, 0x286, 1 + map_top 0x278454+0x48, 0x286, 1, 1 .else map_bottom 0x2782D0, 0x286, 1 map_top 0x278454, 0x286, 1, 1 .endif +.endif gAreaRoomMap_46_1:: @ 081077A8 .ifdef JP map_bottom 0x2784C4+0x74, 0x30E, 1 map_top 0x2786E0+0x74, 0x30E, 1, 1 +.else +.ifdef EU + map_bottom 0x2784C4+0x48, 0x30E, 1 + map_top 0x2786E0+0x48, 0x30E, 1, 1 .else map_bottom 0x2784C4, 0x30E, 1 map_top 0x2786E0, 0x30E, 1, 1 .endif +.endif gAreaRoomMap_46_2:: @ 081077C0 .ifdef JP map_bottom 0x278790+0x74, 0x286, 1 map_top 0x278908+0x74, 0x286, 1, 1 +.else +.ifdef EU + map_bottom 0x278790+0x48, 0x286, 1 + map_top 0x278908+0x48, 0x286, 1, 1 .else map_bottom 0x278790, 0x286, 1 map_top 0x278908, 0x286, 1, 1 .endif +.endif gAreaRoomMap_46_3:: @ 081077D8 .ifdef JP map_bottom 0x2789A0+0x74, 0x286, 1 map_top 0x278AEC+0x74, 0x286, 1, 1 +.else +.ifdef EU + map_bottom 0x2789A0+0x48, 0x286, 1 + map_top 0x278AEC+0x48, 0x286, 1, 1 .else map_bottom 0x2789A0, 0x286, 1 map_top 0x278AEC, 0x286, 1, 1 .endif +.endif gAreaRoomMap_46_4:: @ 081077F0 .ifdef JP map_bottom 0x278B88+0x74, 0x30E, 1 map_top 0x278D38+0x74, 0x30E, 1, 1 +.else +.ifdef EU + map_bottom 0x278B88+0x48, 0x30E, 1 + map_top 0x278D38+0x48, 0x30E, 1, 1 .else map_bottom 0x278B88, 0x30E, 1 map_top 0x278D38, 0x30E, 1, 1 .endif +.endif gAreaRoomMap_46_5:: @ 08107808 .ifdef JP map_bottom 0x278DDC+0x74, 0x286, 1 map_top 0x278F2C+0x74, 0x286, 1, 1 +.else +.ifdef EU + map_bottom 0x278DDC+0x48, 0x286, 1 + map_top 0x278F2C+0x48, 0x286, 1, 1 .else map_bottom 0x278DDC, 0x286, 1 map_top 0x278F2C, 0x286, 1, 1 .endif +.endif gAreaRoomMap_46_6:: @ 08107820 .ifdef JP map_bottom 0x278FA8+0x74, 0x720, 1 map_top 0x27921C+0x74, 0x720, 1, 1 +.else +.ifdef EU + map_bottom 0x278FA8+0x48, 0x720, 1 + map_top 0x27921C+0x48, 0x720, 1, 1 .else map_bottom 0x278FA8, 0x720, 1 map_top 0x27921C, 0x720, 1, 1 .endif +.endif gAreaRoomMap_46_7:: @ 08107838 .ifdef JP map_bottom 0x27932C+0x74, 0x2F2, 1 map_top 0x2794A4+0x74, 0x2F2, 1, 1 +.else +.ifdef EU + map_bottom 0x27932C+0x48, 0x2F2, 1 + map_top 0x2794A4+0x48, 0x2F2, 1, 1 .else map_bottom 0x27932C, 0x2F2, 1 map_top 0x2794A4, 0x2F2, 1, 1 .endif +.endif gAreaRoomMaps_46:: @ 08107850 .4byte gAreaRoomMap_46_0 @@ -4141,10 +7081,15 @@ gAreaRoomMap_08107870:: @ 08107870 .ifdef JP map_bottom 0x279520+0x74, 0xC80, 1 map_top 0x2799B0+0x74, 0xC80, 1, 1 +.else +.ifdef EU + map_bottom 0x279520+0x48, 0xC80, 1 + map_top 0x2799B0+0x48, 0xC80, 1, 1 .else map_bottom 0x279520, 0xC80, 1 map_top 0x2799B0, 0xC80, 1, 1 .endif +.endif @ Unused gAreaRoomMaps_08107888:: @ 08107888 @@ -4154,10 +7099,15 @@ gAreaRoomMap_4D_0:: @ 0810788C .ifdef JP map_bottom 0x279D28+0x74, 0xCD0, 1 map_top 0x27A2F4+0x74, 0xCD0, 1, 1 +.else +.ifdef EU + map_bottom 0x279D28+0x48, 0xCD0, 1 + map_top 0x27A2F4+0x48, 0xCD0, 1, 1 .else map_bottom 0x279D28, 0xCD0, 1 map_top 0x27A2F4, 0xCD0, 1, 1 .endif +.endif gAreaRoomMaps_4D:: @ 081078A4 .4byte gAreaRoomMap_4D_0 @@ -4166,10 +7116,15 @@ gAreaRoomMap_57_0:: @ 081078A8 .ifdef JP map_bottom 0x27A574+0x74, 0xC80, 1 map_top 0x27AAE4+0x74, 0xC80, 1, 1 +.else +.ifdef EU + map_bottom 0x27A574+0x48, 0xC80, 1 + map_top 0x27AAE4+0x48, 0xC80, 1, 1 .else map_bottom 0x27A574, 0xC80, 1 map_top 0x27AAE4, 0xC80, 1, 1 .endif +.endif gAreaRoomMaps_57:: @ 081078C0 .4byte gAreaRoomMap_57_0 @@ -4178,10 +7133,15 @@ gAreaRoomMap_5F_0:: @ 081078C4 .ifdef JP map_bottom 0x27AD50+0x74, 0xC80, 1 map_top 0x27B118+0x74, 0xC80, 1, 1 +.else +.ifdef EU + map_bottom 0x27AD50+0x48, 0xC80, 1 + map_top 0x27B118+0x48, 0xC80, 1, 1 .else map_bottom 0x27AD50, 0xC80, 1 map_top 0x27B118, 0xC80, 1, 1 .endif +.endif gAreaRoomMaps_5F:: @ 081078DC .4byte gAreaRoomMap_5F_0 @@ -4190,10 +7150,15 @@ gAreaRoomMap_67_0:: @ 081078E0 .ifdef JP map_bottom 0x27B3A0+0x74, 0x12C, 1 map_top 0x27B470+0x74, 0x12C, 1, 1 +.else +.ifdef EU + map_bottom 0x27B3A0+0x48, 0x12C, 1 + map_top 0x27B470+0x48, 0x12C, 1, 1 .else map_bottom 0x27B3A0, 0x12C, 1 map_top 0x27B470, 0x12C, 1, 1 .endif +.endif gAreaRoomMaps_67:: @ 081078F8 .4byte gAreaRoomMap_67_0 @@ -4202,10 +7167,15 @@ gAreaRoomMap_6F_0:: @ 081078FC .ifdef JP map_bottom 0x27B4AC+0x74, 0xC80, 1 map_top 0x27B974+0x74, 0xC80, 1, 1 +.else +.ifdef EU + map_bottom 0x27B4AC+0x48, 0xC80, 1 + map_top 0x27B974+0x48, 0xC80, 1, 1 .else map_bottom 0x27B4AC, 0xC80, 1 map_top 0x27B974, 0xC80, 1, 1 .endif +.endif gAreaRoomMaps_6F:: @ 08107914 .4byte gAreaRoomMap_6F_0 @@ -4214,10 +7184,15 @@ gAreaRoomMap_77_0:: @ 08107918 .ifdef JP map_bottom 0x27BCCC+0x74, 0x1040, 1 map_top 0x27C2C8+0x74, 0x1040, 1, 1 +.else +.ifdef EU + map_bottom 0x27BCCC+0x48, 0x1040, 1 + map_top 0x27C2C8+0x48, 0x1040, 1, 1 .else map_bottom 0x27BCCC, 0x1040, 1 map_top 0x27C2C8, 0x1040, 1, 1 .endif +.endif gAreaRoomMaps_77:: @ 08107930 .4byte gAreaRoomMap_77_0 @@ -4226,10 +7201,15 @@ gAreaRoomMap_7F_0:: @ 08107934 .ifdef JP map_bottom 0x27C720+0x74, 0xC80, 1 map_top 0x27CC28+0x74, 0xC80, 1, 1 +.else +.ifdef EU + map_bottom 0x27C720+0x48, 0xC80, 1 + map_top 0x27CC28+0x48, 0xC80, 1, 1 .else map_bottom 0x27C720, 0xC80, 1 map_top 0x27CC28, 0xC80, 1, 1 .endif +.endif gAreaRoomMaps_7F:: @ 0810794C .4byte gAreaRoomMap_7F_0 @@ -4238,10 +7218,15 @@ gAreaRoomMap_87_0:: @ 08107950 .ifdef JP map_bottom 0x27CF58+0x74, 0xF3C, 1 map_top 0x27D71C+0x74, 0xF3C, 1, 1 +.else +.ifdef EU + map_bottom 0x27CF58+0x48, 0xF3C, 1 + map_top 0x27D71C+0x48, 0xF3C, 1, 1 .else map_bottom 0x27CF58, 0xF3C, 1 map_top 0x27D71C, 0xF3C, 1, 1 .endif +.endif gAreaRoomMaps_87:: @ 08107968 .4byte gAreaRoomMap_87_0 @@ -4250,10 +7235,15 @@ gAreaRoomMap_8F_0:: @ 0810796C .ifdef JP map_bottom 0x27DA00+0x74, 0xFA0, 1 map_top 0x27DFF4+0x74, 0xFA0, 1, 1 +.else +.ifdef EU + map_bottom 0x27DA00+0x48, 0xFA0, 1 + map_top 0x27DFF4+0x48, 0xFA0, 1, 1 .else map_bottom 0x27DA00, 0xFA0, 1 map_top 0x27DFF4, 0xFA0, 1, 1 .endif +.endif gAreaRoomMaps_8F:: @ 08107984 .4byte gAreaRoomMap_8F_0 diff --git a/data/metatile_headers.s b/data/metatile_headers.s index 21c03b72..e3b2c66c 100755 --- a/data/metatile_headers.s +++ b/data/metatile_headers.s @@ -23,259 +23,552 @@ gAreaMetatiles_CastorWilds:: @ 0810270C metatile_types_top 0x2062C, 0xFFC, 1, 1 gAreaMetatiles_HyruleTown:: @ 0810273C +.ifdef EU + metatiles_bottom 0x29774-0x4, 0x4000, 1 + metatiles_top 0x2B788-0x4, 0x3FF0, 1 + metatile_types_bottom 0x2D47C-0x4, 0x1000, 1 + metatile_types_top 0x2D984-0x4, 0xFFC, 1, 1 +.else metatiles_bottom 0x29774, 0x4000, 1 metatiles_top 0x2B788, 0x3FF0, 1 metatile_types_bottom 0x2D47C, 0x1000, 1 metatile_types_top 0x2D984, 0xFFC, 1, 1 +.endif gAreaMetatiles_MtCrenel:: @ 0810276C +.ifdef EU + metatiles_bottom 0x43FF0-0x4, 0x4000, 1 + metatiles_top 0x45D0C-0x4, 0x3FF0, 1 + metatile_types_bottom 0x46BA4-0x4, 0x1000, 1 + metatile_types_top 0x4712C-0x4, 0xFFC, 1, 1 +.else metatiles_bottom 0x43FF0, 0x4000, 1 metatiles_top 0x45D0C, 0x3FF0, 1 metatile_types_bottom 0x46BA4, 0x1000, 1 metatile_types_top 0x4712C, 0xFFC, 1, 1 +.endif gAreaMetatiles_HyruleField:: @ 0810279C +.ifdef EU + metatiles_bottom 0x5D3B8-0x4, 0x4000, 1 + metatiles_top 0x5F584-0x4, 0x3FF0, 1 + metatile_types_bottom 0x6064C-0x4, 0x1000, 1 + metatile_types_top 0x60C64-0x4, 0xFFC, 1, 1 +.else metatiles_bottom 0x5D3B8, 0x4000, 1 metatiles_top 0x5F584, 0x3FF0, 1 metatile_types_bottom 0x6064C, 0x1000, 1 metatile_types_top 0x60C64, 0xFFC, 1, 1 +.endif gAreaMetatiles_CastleGarden:: @ 081027CC +.ifdef EU + metatiles_bottom 0x6B79C-0x4, 0x3000, 1 + metatiles_top 0x6CD14-0x4, 0x3FF0, 1 + metatile_types_bottom 0x6D7A8-0x4, 0xC00, 1 + metatile_types_top 0x6DAE4-0x4, 0xFFC, 1, 1 +.else metatiles_bottom 0x6B79C, 0x3000, 1 metatiles_top 0x6CD14, 0x3FF0, 1 metatile_types_bottom 0x6D7A8, 0xC00, 1 metatile_types_top 0x6DAE4, 0xFFC, 1, 1 +.endif gAreaMetatiles_CloudTops:: @ 081027FC +.ifdef EU + metatiles_bottom 0x72898-0x4, 0x3FB0, 1 + metatiles_top 0x73B54-0x4, 0x3FF0, 1 + metatile_types_bottom 0x74534-0x4, 0xFEC, 1 + metatile_types_top 0x74824-0x4, 0xFFC, 1, 1 +.else metatiles_bottom 0x72898, 0x3FB0, 1 metatiles_top 0x73B54, 0x3FF0, 1 metatile_types_bottom 0x74534, 0xFEC, 1 metatile_types_top 0x74824, 0xFFC, 1, 1 +.endif gAreaMetatiles_RoyalValley:: @ 0810282C +.ifdef EU + metatiles_bottom 0x7CAB8-0x4, 0x4000, 1 + metatiles_top 0x7DBEC-0x4, 0x3FF0, 1 + metatile_types_bottom 0x7E6F8-0x4, 0x1000, 1 + metatile_types_top 0x7EA4C-0x4, 0xFFC, 1, 1 +.else metatiles_bottom 0x7CAB8, 0x4000, 1 metatiles_top 0x7DBEC, 0x3FF0, 1 metatile_types_bottom 0x7E6F8, 0x1000, 1 metatile_types_top 0x7EA4C, 0xFFC, 1, 1 +.endif gAreaMetatiles_Beanstalks:: @ 0810285C +.ifdef EU + metatiles_bottom 0x8B610-0x4, 0x5A8, 1 + metatile_types_bottom 0x8B930-0x4, 0x16A, 1, 1 +.else metatiles_bottom 0x8B610, 0x5A8, 1 metatile_types_bottom 0x8B930, 0x16A, 1, 1 +.endif gAreaMetatiles_CrenelCaves:: @ 08102874 +.ifdef EU + metatiles_bottom 0x93F04-0x4, 0x3F80, 1 + metatiles_top 0x95ED0-0x4, 0x3F40, 1 + metatile_types_bottom 0x9775C-0x4, 0xFE0, 1 + metatile_types_top 0x97D58-0x4, 0xFD0, 1, 1 +.else metatiles_bottom 0x93F04, 0x3F80, 1 metatiles_top 0x95ED0, 0x3F40, 1 metatile_types_bottom 0x9775C, 0xFE0, 1 metatile_types_top 0x97D58, 0xFD0, 1, 1 +.endif gAreaMetatiles_GreatFairies:: @ 081028A4 +.ifdef EU + metatiles_bottom 0x9E2D0-0x4, 0x17A8, 1 + metatiles_top 0x9EF9C-0x4, 0x1070, 1 + metatile_types_bottom 0x9F4D0-0x4, 0x5EA, 1 + metatile_types_top 0x9F650-0x4, 0x41C, 1, 1 +.else metatiles_bottom 0x9E2D0, 0x17A8, 1 metatiles_top 0x9EF9C, 0x1070, 1 metatile_types_bottom 0x9F4D0, 0x5EA, 1 metatile_types_top 0x9F650, 0x41C, 1, 1 +.endif gAreaMetatiles_MinishVillage:: @ 081028D4 +.ifdef EU + metatiles_bottom 0xD9690-0x4, 0x35A8, 1 + metatiles_top 0xDB294-0x4, 0x3228, 1 + metatile_types_bottom 0xDC79C-0x4, 0xD6A, 1 + metatile_types_top 0xDCA88-0x4, 0xC8A, 1, 1 +.else metatiles_bottom 0xD9690, 0x35A8, 1 metatiles_top 0xDB294, 0x3228, 1 metatile_types_bottom 0xDC79C, 0xD6A, 1 metatile_types_top 0xDCA88, 0xC8A, 1, 1 +.endif gAreaMetatiles_MelarisMine:: @ 08102904 +.ifdef EU + metatiles_bottom 0xE8D1C-0x4, 0x27C0, 1 + metatiles_top 0xEA3A0-0x4, 0x308, 1 + metatile_types_bottom 0xEA464-0x4, 0x9F0, 1 + metatile_types_top 0xEA684-0x4, 0xC2, 1, 1 +.else metatiles_bottom 0xE8D1C, 0x27C0, 1 metatiles_top 0xEA3A0, 0x308, 1 metatile_types_bottom 0xEA464, 0x9F0, 1 metatile_types_top 0xEA684, 0xC2, 1, 1 +.endif gAreaMetatiles_MnishPaths1:: @ 08102934 +.ifdef EU + metatiles_bottom 0xEE698-0x4, 0x1420, 1 + metatile_types_bottom 0xEF330-0x4, 0x508, 1, 1 +.else metatiles_bottom 0xEE698, 0x1420, 1 metatile_types_bottom 0xEF330, 0x508, 1, 1 +.endif gAreaMetatiles_CrenelMinishPaths:: @ 0810294C +.ifdef EU + metatiles_bottom 0xF5734-0x4, 0x1EB8, 1 + metatile_types_bottom 0xF698C-0x4, 0x7AE, 1, 1 +.else metatiles_bottom 0xF5734, 0x1EB8, 1 metatile_types_bottom 0xF698C, 0x7AE, 1, 1 +.endif gAreaMetatiles_MinishHouseInteriors:: @ 08102964 +.ifdef EU + metatiles_bottom 0x93F04-0x4, 0x3F80, 1 + metatiles_top 0x95ED0-0x4, 0x3F40, 1 + metatile_types_bottom 0x9775C-0x4, 0xFE0, 1 + metatile_types_top 0x97D58-0x4, 0xFD0, 1, 1 +.else metatiles_bottom 0x93F04, 0x3F80, 1 metatiles_top 0x95ED0, 0x3F40, 1 metatile_types_bottom 0x9775C, 0xFE0, 1 metatile_types_top 0x97D58, 0xFD0, 1, 1 +.endif gAreaMetatiles_HouseInteriors1:: @ 08102994 +.ifdef EU + metatiles_bottom 0xFCE7C-0x4, 0x3188, 1 + metatiles_top 0xF7AD8-0x4, 0x3FF0, 1 + metatile_types_bottom 0xFE120-0x4, 0xC62, 1 + metatile_types_top 0xF8A5C-0x4, 0xFFC, 1, 1 +.else metatiles_bottom 0xFCE7C, 0x3188, 1 metatiles_top 0xF7AD8, 0x3FF0, 1 metatile_types_bottom 0xFE120, 0xC62, 1 metatile_types_top 0xF8A5C, 0xFFC, 1, 1 +.endif gAreaMetatiles_HouseInteriors2:: @ 081029C4 +.ifdef EU + metatiles_bottom 0x102AB8-0x4, 0x33A0, 1 + metatiles_top 0xF7AD8-0x4, 0x3FF0, 1 + metatile_types_bottom 0x103D54-0x4, 0xCE8, 1 + metatile_types_top 0xF8A5C-0x4, 0xFFC, 1, 1 +.else metatiles_bottom 0x102AB8, 0x33A0, 1 metatiles_top 0xF7AD8, 0x3FF0, 1 metatile_types_bottom 0x103D54, 0xCE8, 1 metatile_types_top 0xF8A5C, 0xFFC, 1, 1 +.endif gAreaMetatiles_HouseInteriors4:: @ 081029F4 +.ifdef EU + metatiles_bottom 0x10823C-0x4, 0x33A0, 1 + metatiles_top 0xF7AD8-0x4, 0x3FF0, 1 + metatile_types_bottom 0x109530-0x4, 0xCE8, 1 + metatile_types_top 0xF8A5C-0x4, 0xFFC, 1, 1 +.else metatiles_bottom 0x10823C, 0x33A0, 1 metatiles_top 0xF7AD8, 0x3FF0, 1 metatile_types_bottom 0x109530, 0xCE8, 1 metatile_types_top 0xF8A5C, 0xFFC, 1, 1 +.endif gAreaMetatiles_HouseInteriors3:: @ 08102A24 +.ifdef EU + metatiles_bottom 0x10DAA8-0x4, 0x2F20, 1 + metatiles_top 0xF7AD8-0x4, 0x3FF0, 1 + metatile_types_bottom 0x10E9F0-0x4, 0xBC8, 1 + metatile_types_top 0xF8A5C-0x4, 0xFFC, 1, 1 +.else metatiles_bottom 0x10DAA8, 0x2F20, 1 metatiles_top 0xF7AD8, 0x3FF0, 1 metatile_types_bottom 0x10E9F0, 0xBC8, 1 metatile_types_top 0xF8A5C, 0xFFC, 1, 1 +.endif gAreaMetatiles_TreeInteriors:: @ 08102A54 +.ifdef EU + metatiles_bottom 0x112BF0-0x4, 0x3000, 1 + metatiles_top 0xF7AD8-0x4, 0x3FF0, 1 + metatile_types_bottom 0x113A88-0x4, 0xC00, 1 + metatile_types_top 0xF8A5C-0x4, 0xFFC, 1, 1 +.else metatiles_bottom 0x112BF0, 0x3000, 1 metatiles_top 0xF7AD8, 0x3FF0, 1 metatile_types_bottom 0x113A88, 0xC00, 1 metatile_types_top 0xF8A5C, 0xFFC, 1, 1 +.endif gAreaMetatiles_Dojos:: @ 08102A84 +.ifdef EU + metatiles_bottom 0x11D198-0x4, 0x33A0, 1 + metatiles_top 0xF7AD8-0x4, 0x3FF0, 1 + metatile_types_bottom 0x11E030-0x4, 0xCE8, 1 + metatile_types_top 0xF8A5C-0x4, 0xFFC, 1, 1 +.else metatiles_bottom 0x11D198, 0x33A0, 1 metatiles_top 0xF7AD8, 0x3FF0, 1 metatile_types_bottom 0x11E030, 0xCE8, 1 metatile_types_top 0xF8A5C, 0xFFC, 1, 1 +.endif gAreaMetatiles_MinishCracks:: @ 08102AB4 +.ifdef EU + metatiles_bottom 0x118044-0x4, 0x3180, 1 + metatiles_top 0xF7AD8-0x4, 0x3FF0, 1 + metatile_types_bottom 0x118F94-0x4, 0xC60, 1 + metatile_types_top 0xF8A5C-0x4, 0xFFC, 1, 1 +.else metatiles_bottom 0x118044, 0x3180, 1 metatiles_top 0xF7AD8, 0x3FF0, 1 metatile_types_bottom 0x118F94, 0xC60, 1 metatile_types_top 0xF8A5C, 0xFFC, 1, 1 +.endif gAreaMetatiles_ArmosInteriors:: @ 08102AE4 +.ifdef EU + metatiles_bottom 0xA4840-0x4, 0xC50, 1 + metatiles_top 0xA4FB4-0x4, 0xC50, 1 + metatile_types_bottom 0xA5728-0x4, 0x314, 1 + metatile_types_top 0xA5840-0x4, 0x314, 1, 1 +.else metatiles_bottom 0xA4840, 0xC50, 1 metatiles_top 0xA4FB4, 0xC50, 1 metatile_types_bottom 0xA5728, 0x314, 1 metatile_types_top 0xA5840, 0x314, 1, 1 +.endif gAreaMetatiles_MinishRafters:: @ 08102B14 +.ifdef EU + metatiles_bottom 0x120478-0x4, 0x1A30, 1 + metatiles_top 0xF7AD8-0x4, 0x3FF0, 1 + metatile_types_bottom 0x1210C8-0x4, 0x68C, 1 + metatile_types_top 0xF8A5C-0x4, 0xFFC, 1, 1 +.else metatiles_bottom 0x120478, 0x1A30, 1 metatiles_top 0xF7AD8, 0x3FF0, 1 metatile_types_bottom 0x1210C8, 0x68C, 1 metatile_types_top 0xF8A5C, 0xFFC, 1, 1 +.endif gAreaMetatiles_GoronCave:: @ 08102B44 +.ifdef EU + metatiles_bottom 0xAC444-0x4, 0x3F80, 1 + metatiles_top 0xADE48-0x4, 0x3400, 1 + metatile_types_bottom 0xAF650-0x4, 0xFE0, 1 + metatile_types_top 0xAFB8C-0x4, 0xD00, 1, 1 +.else metatiles_bottom 0xAC444, 0x3F80, 1 metatiles_top 0xADE48, 0x3400, 1 metatile_types_bottom 0xAF650, 0xFE0, 1 metatile_types_top 0xAFB8C, 0xD00, 1, 1 +.endif gAreaMetatiles_WindTribeTower:: @ 08102B74 +.ifdef EU + metatiles_bottom 0x125100-0x4, 0x2EB0, 1 + metatiles_top 0xF7AD8-0x4, 0x3FF0, 1 + metatile_types_bottom 0x126040-0x4, 0xBAC, 1 + metatile_types_top 0xF8A5C-0x4, 0xFFC, 1, 1 +.else metatiles_bottom 0x125100, 0x2EB0, 1 metatiles_top 0xF7AD8, 0x3FF0, 1 metatile_types_bottom 0x126040, 0xBAC, 1 metatile_types_top 0xF8A5C, 0xFFC, 1, 1 +.endif gAreaMetatiles_WindTribeTowerRoof:: @ 08102BA4 +.ifdef EU + metatiles_bottom 0x12AAB0-0x4, 0xBC0, 1 + metatiles_top 0x12B13C-0x4, 0xBC0, 1 + metatile_types_bottom 0x12B784-0x4, 0x2F0, 1 + metatile_types_top 0x12B840-0x4, 0x2F0, 1, 1 +.else metatiles_bottom 0x12AAB0, 0xBC0, 1 metatiles_top 0x12B13C, 0xBC0, 1 metatile_types_bottom 0x12B784, 0x2F0, 1 metatile_types_top 0x12B840, 0x2F0, 1, 1 +.endif gAreaMetatiles_MinishCaves:: @ 08102BD4 +.ifdef EU + metatiles_bottom 0xB9118-0x4, 0x3F80, 1 + metatiles_top 0xBAF54-0x4, 0x3F80, 1 + metatile_types_bottom 0xBC0CC-0x4, 0xFE0, 1 + metatile_types_top 0xBC570-0x4, 0xFE0, 1, 1 +.else metatiles_bottom 0xB9118, 0x3F80, 1 metatiles_top 0xBAF54, 0x3F80, 1 metatile_types_bottom 0xBC0CC, 0xFE0, 1 metatile_types_top 0xBC570, 0xFE0, 1, 1 +.endif gAreaMetatiles_CastleGardenMinishHoles:: @ 08102C04 +.ifdef EU + metatiles_bottom 0xBFB4C-0x4, 0x13A8, 1 + metatiles_top 0xC0570-0x4, 0x1680, 1 + metatile_types_bottom 0xC1030-0x4, 0x4EA, 1 + metatile_types_top 0xC11B8-0x4, 0x5A0, 1, 1 +.else metatiles_bottom 0xBFB4C, 0x13A8, 1 metatiles_top 0xC0570, 0x1680, 1 metatile_types_bottom 0xC1030, 0x4EA, 1 metatile_types_top 0xC11B8, 0x5A0, 1, 1 +.endif gAreaMetatiles_EzloCutscene:: @ 08102C34 +.ifdef EU + metatiles_bottom 0x12EEBC-0x4, 0x1A20, 1 + metatiles_top 0xF7AD8-0x4, 0x3FF0, 1 + metatile_types_bottom 0x12F564-0x4, 0x688, 1 + metatile_types_top 0xF8A5C-0x4, 0xFFC, 1, 1 +.else metatiles_bottom 0x12EEBC, 0x1A20, 1 metatiles_top 0xF7AD8, 0x3FF0, 1 metatile_types_bottom 0x12F564, 0x688, 1 metatile_types_top 0xF8A5C, 0xFFC, 1, 1 +.endif gAreaMetatiles_HyruleTownUnderground:: @ 08102C64 +.ifdef EU + metatiles_bottom 0x1A51B8-0x4, 0x3E80, 1 + metatiles_top 0x1A7454-0x4, 0x3610, 1 + metatile_types_bottom 0x1A8B10-0x4, 0xFA0, 1 + metatile_types_top 0x1A9000-0x4, 0xD84, 1, 1 +.else metatiles_bottom 0x1A51B8, 0x3E80, 1 metatiles_top 0x1A7454, 0x3610, 1 metatile_types_bottom 0x1A8B10, 0xFA0, 1 metatile_types_top 0x1A9000, 0xD84, 1, 1 +.endif gAreaMetatiles_DeepwoodShrine:: @ 08102C94 +.ifdef EU + metatiles_bottom 0x1B20C4-0x4, 0x3B28, 1 + metatiles_top 0x1B4644-0x4, 0x3620, 1 + metatile_types_bottom 0x1B6044-0x4, 0xECA, 1 + metatile_types_top 0x1B64F8-0x4, 0xD88, 1, 1 +.else metatiles_bottom 0x1B20C4, 0x3B28, 1 metatiles_top 0x1B4644, 0x3620, 1 metatile_types_bottom 0x1B6044, 0xECA, 1 metatile_types_top 0x1B64F8, 0xD88, 1, 1 +.endif gAreaMetatiles_DeepwoodShrineBoss:: @ 08102CC4 +.ifdef EU + metatiles_bottom 0x1B9E08-0x4, 0x3620, 1 + metatiles_top 0x1BAF34-0x4, 0x11F8, 1 + metatile_types_bottom 0x1BB24C-0x4, 0xD88, 1 + metatile_types_top 0x1BB4BC-0x4, 0x47E, 1, 1 +.else metatiles_bottom 0x1B9E08, 0x3620, 1 metatiles_top 0x1BAF34, 0x11F8, 1 metatile_types_bottom 0x1BB24C, 0xD88, 1 metatile_types_top 0x1BB4BC, 0x47E, 1, 1 +.endif gAreaMetatiles_DeepwoodShrineEntry:: @ 08102CF4 +.ifdef EU + metatiles_bottom 0x1BE520-0x4, 0xD08, 1 + metatiles_top 0x1BEB0C-0x4, 0x9F8, 1 + metatile_types_bottom 0x1BEF10-0x4, 0x342, 1 + metatile_types_top 0x1BEFC0-0x4, 0x27E, 1, 1 +.else metatiles_bottom 0x1BE520, 0xD08, 1 metatiles_top 0x1BEB0C, 0x9F8, 1 metatile_types_bottom 0x1BEF10, 0x342, 1 metatile_types_top 0x1BEFC0, 0x27E, 1, 1 +.endif gAreaMetatiles_CaveOfFlames:: @ 08102D24 +.ifdef EU + metatiles_bottom 0x1CA0C8-0x4, 0x3B08, 1 + metatiles_top 0x1CBCF4-0x4, 0x3F28, 1 + metatile_types_bottom 0x1CD6F4-0x4, 0xEC2, 1 + metatile_types_top 0x1CDB88-0x4, 0xFCA, 1, 1 +.else metatiles_bottom 0x1CA0C8, 0x3B08, 1 metatiles_top 0x1CBCF4, 0x3F28, 1 metatile_types_bottom 0x1CD6F4, 0xEC2, 1 metatile_types_top 0x1CDB88, 0xFCA, 1, 1 +.endif gAreaMetatiles_CaveOfFlamesBoss:: @ 08102D54 +.ifdef EU + metatiles_bottom 0x1D378C-0x4, 0x3B08, 1 + metatiles_top 0x1D4B14-0x4, 0x3610, 1 + metatile_types_bottom 0x1D5C70-0x4, 0xEC2, 1 + metatile_types_top 0x1D5EFC-0x4, 0xD84, 1, 1 +.else metatiles_bottom 0x1D378C, 0x3B08, 1 metatiles_top 0x1D4B14, 0x3610, 1 metatile_types_bottom 0x1D5C70, 0xEC2, 1 metatile_types_top 0x1D5EFC, 0xD84, 1, 1 +.endif gAreaMetatiles_FortressOfWinds:: @ 08102D84 +.ifdef EU + metatiles_bottom 0x1E163C-0x4, 0x3868, 1 + metatiles_top 0x1E3670-0x4, 0x3850, 1 + metatile_types_bottom 0x1E4E8C-0x4, 0xE1A, 1 + metatile_types_top 0x1E52DC-0x4, 0xE14, 1, 1 +.else metatiles_bottom 0x1E163C, 0x3868, 1 metatiles_top 0x1E3670, 0x3850, 1 metatile_types_bottom 0x1E4E8C, 0xE1A, 1 metatile_types_top 0x1E52DC, 0xE14, 1, 1 +.endif gAreaMetatiles_FortressOfWindsTop:: @ 08102DB4 +.ifdef EU + metatiles_bottom 0x1F06E4-0x4, 0x1440, 1 + metatiles_top 0x1F11AC-0x4, 0x1368, 1 + metatile_types_bottom 0x1F1740-0x4, 0x510, 1 + metatile_types_top 0x1F18D4-0x4, 0x4DA, 1, 1 +.else metatiles_bottom 0x1F06E4, 0x1440, 1 metatiles_top 0x1F11AC, 0x1368, 1 metatile_types_bottom 0x1F1740, 0x510, 1 metatile_types_top 0x1F18D4, 0x4DA, 1, 1 +.endif gAreaMetatiles_InnerMazaal:: @ 08102DE4 +.ifdef EU + metatiles_bottom 0x1E9E38-0x4, 0x3C00, 1 + metatiles_top 0x1EABE0-0x4, 0x3E70, 1 + metatile_types_bottom 0x1EBAAC-0x4, 0xF00, 1 + metatile_types_top 0x1EBD60-0x4, 0xF9C, 1, 1 +.else metatiles_bottom 0x1E9E38, 0x3C00, 1 metatiles_top 0x1EABE0, 0x3E70, 1 metatile_types_bottom 0x1EBAAC, 0xF00, 1 metatile_types_top 0x1EBD60, 0xF9C, 1, 1 +.endif gAreaMetatiles_TempleOfDroplets:: @ 08102E14 +.ifdef EU + metatiles_bottom 0x1FC4F4-0x4, 0x3D68, 1 + metatiles_top 0x1FE6E0-0x4, 0x4000, 1 + metatile_types_bottom 0x200A9C-0x4, 0xF5A, 1 + metatile_types_top 0x200F70-0x4, 0x1000, 1, 1 +.else metatiles_bottom 0x1FC4F4, 0x3D68, 1 metatiles_top 0x1FE6E0, 0x4000, 1 metatile_types_bottom 0x200A9C, 0xF5A, 1 metatile_types_top 0x200F70, 0x1000, 1, 1 +.endif gAreaMetatiles_61:: @ 08102E44 +.ifdef EU + metatiles_bottom 0x204BD4-0x4, 0x600, 1 + metatiles_top 0x20509C-0x4, 0x398, 1 + metatile_types_bottom 0x2051BC-0x4, 0x180, 1 + metatile_types_top 0x205254-0x4, 0xE6, 1, 1 +.else metatiles_bottom 0x204BD4, 0x600, 1 metatiles_top 0x20509C, 0x398, 1 metatile_types_bottom 0x2051BC, 0x180, 1 metatile_types_top 0x205254, 0xE6, 1, 1 +.endif gAreaMetatiles_RoyalCrypt:: @ 08102E74 +.ifdef EU + metatiles_bottom 0x212144-0x2C, 0x3610, 1 + metatiles_top 0x213D34-0x2C, 0x3610, 1 + metatile_types_bottom 0x215134-0x2C, 0xD84, 1 + metatile_types_top 0x2155E0-0x2C, 0xD84, 1, 1 +.else metatiles_bottom 0x212144, 0x3610, 1 metatiles_top 0x213D34, 0x3610, 1 metatile_types_bottom 0x215134, 0xD84, 1 metatile_types_top 0x2155E0, 0xD84, 1, 1 +.endif gAreaMetatiles_PalaceOfWinds:: @ 08102EA4 +.ifdef EU + metatiles_bottom 0x21D230-0x2C, 0x3620, 1 + metatiles_top 0x21EEA4-0x2C, 0x3620, 1 + metatile_types_bottom 0x220788-0x2C, 0xD88, 1 + metatile_types_top 0x220C54-0x2C, 0xD88, 1, 1 +.else metatiles_bottom 0x21D230, 0x3620, 1 metatiles_top 0x21EEA4, 0x3620, 1 metatile_types_bottom 0x220788, 0xD88, 1 metatile_types_top 0x220C54, 0xD88, 1, 1 +.endif gAreaMetatiles_PalaceOfWindsBoss:: @ 08102ED4 .ifdef JP metatiles_top 0x223680, 0x108, 1 metatile_types_top 0x2236C8, 0x42, 1, 1 +.else +.ifdef EU + metatiles_top 0x22360C+0x48, 0x108, 1 + metatile_types_top 0x223654+0x48, 0x42, 1, 1 .else metatiles_top 0x22360C, 0x108, 1 metatile_types_top 0x223654, 0x42, 1, 1 .endif +.endif gAreaMetatiles_Sanctuary:: @ 08102EEC .ifdef JP @@ -283,12 +576,19 @@ gAreaMetatiles_Sanctuary:: @ 08102EEC metatiles_top 0x235320, 0x3620, 1 metatile_types_bottom 0x236424, 0xD88, 1 metatile_types_top 0x236788, 0xD88, 1, 1 +.else +.ifdef EU + metatiles_bottom 0x2333A4+0x48, 0x3620, 1 + metatiles_top 0x2352AC+0x48, 0x3620, 1 + metatile_types_bottom 0x2363B0+0x48, 0xD88, 1 + metatile_types_top 0x236714+0x48, 0xD88, 1, 1 .else metatiles_bottom 0x2333A4, 0x3620, 1 metatiles_top 0x2352AC, 0x3620, 1 metatile_types_bottom 0x2363B0, 0xD88, 1 metatile_types_top 0x236714, 0xD88, 1, 1 .endif +.endif gAreaMetatiles_HyruleCastle:: @ 08102F1C @@ -297,12 +597,19 @@ gAreaMetatiles_HyruleCastle:: @ 08102F1C metatiles_top 0x23EF98, 0x3610, 1 metatile_types_bottom 0x240440, 0xDF0, 1 metatile_types_top 0x24086C, 0xD84, 1, 1 +.else +.ifdef EU + metatiles_bottom 0x23D1B0+0x48, 0x37C0, 1 + metatiles_top 0x23EF24+0x48, 0x3610, 1 + metatile_types_bottom 0x2403CC+0x48, 0xDF0, 1 + metatile_types_top 0x2407F8+0x48, 0xD84, 1, 1 .else metatiles_bottom 0x23D1B0, 0x37C0, 1 metatiles_top 0x23EF24, 0x3610, 1 metatile_types_bottom 0x2403CC, 0xDF0, 1 metatile_types_top 0x2407F8, 0xD84, 1, 1 .endif +.endif gAreaMetatiles_SanctuaryEntrance:: @ 08102F4C .ifdef JP @@ -310,12 +617,19 @@ gAreaMetatiles_SanctuaryEntrance:: @ 08102F4C metatiles_top 0x246CAC, 0xFF0, 1 metatile_types_bottom 0x24702C, 0x51E, 1 metatile_types_top 0x24719C, 0x3FC, 1, 1 +.else +.ifdef EU + metatiles_bottom 0x2460E4+0x48, 0x1478, 1 + metatiles_top 0x246C38+0x48, 0xFF0, 1 + metatile_types_bottom 0x246FB8+0x48, 0x51E, 1 + metatile_types_top 0x247128+0x48, 0x3FC, 1, 1 .else metatiles_bottom 0x2460E4, 0x1478, 1 metatiles_top 0x246C38, 0xFF0, 1 metatile_types_bottom 0x246FB8, 0x51E, 1 metatile_types_top 0x247128, 0x3FC, 1, 1 .endif +.endif gAreaMetatiles_DarkHyruleCastle:: @ 08102F7C .ifdef JP @@ -323,12 +637,19 @@ gAreaMetatiles_DarkHyruleCastle:: @ 08102F7C metatiles_top 0x250680, 0x37C0, 1 metatile_types_bottom 0x2524F4, 0xFF6, 1 metatile_types_top 0x252A7C, 0xDF0, 1, 1 +.else +.ifdef EU + metatiles_bottom 0x24D8CC+0x48, 0x3FD8, 1 + metatiles_top 0x25060C+0x48, 0x37C0, 1 + metatile_types_bottom 0x252480+0x48, 0xFF6, 1 + metatile_types_top 0x252A08+0x48, 0xDF0, 1, 1 .else metatiles_bottom 0x24D8CC, 0x3FD8, 1 metatiles_top 0x25060C, 0x37C0, 1 metatile_types_bottom 0x252480, 0xFF6, 1 metatile_types_top 0x252A08, 0xDF0, 1, 1 .endif +.endif gAreaMetatiles_DarkHyruleCastleOutside:: @ 08102FAC .ifdef JP @@ -336,12 +657,19 @@ gAreaMetatiles_DarkHyruleCastleOutside:: @ 08102FAC metatiles_top 0x27540C, 0x1EF0, 1 metatile_types_bottom 0x276048, 0xCD0, 1 metatile_types_top 0x276324, 0x7BC, 1, 1 +.else +.ifdef EU + metatiles_bottom 0x273E74+0x48, 0x3340, 1 + metatiles_top 0x275398+0x48, 0x1EF0, 1 + metatile_types_bottom 0x275FD4+0x48, 0xCD0, 1 + metatile_types_top 0x2762B0+0x48, 0x7BC, 1, 1 .else metatiles_bottom 0x273E74, 0x3340, 1 metatiles_top 0x275398, 0x1EF0, 1 metatile_types_bottom 0x275FD4, 0xCD0, 1 metatile_types_top 0x2762B0, 0x7BC, 1, 1 .endif +.endif gAreaMetatiles_DarkHyruleCastleBridge:: @ 08102FDC .ifdef JP @@ -349,12 +677,19 @@ gAreaMetatiles_DarkHyruleCastleBridge:: @ 08102FDC metatiles_top 0x257468, 0x3610, 1 metatile_types_bottom 0x257D78, 0xD84, 1 metatile_types_top 0x257FEC, 0xD84, 1, 1 +.else +.ifdef EU + metatiles_bottom 0x256614+0x48, 0x3610, 1 + metatiles_top 0x2573F4+0x48, 0x3610, 1 + metatile_types_bottom 0x257D04+0x48, 0xD84, 1 + metatile_types_top 0x257F78+0x48, 0xD84, 1, 1 .else metatiles_bottom 0x256614, 0x3610, 1 metatiles_top 0x2573F4, 0x3610, 1 metatile_types_bottom 0x257D04, 0xD84, 1 metatile_types_top 0x257F78, 0xD84, 1, 1 .endif +.endif gAreaMetatiles_VaatisArms:: @ 0810300C .ifdef JP @@ -362,12 +697,19 @@ gAreaMetatiles_VaatisArms:: @ 0810300C metatiles_top 0x264A38, 0xBC0, 1 metatile_types_bottom 0x264DBC, 0x5F2, 1 metatile_types_top 0x264EC0, 0x2F0, 1, 1 +.else +.ifdef EU + metatiles_bottom 0x263CFC+0x48, 0x17C8, 1 + metatiles_top 0x2649C4+0x48, 0xBC0, 1 + metatile_types_bottom 0x264D48+0x48, 0x5F2, 1 + metatile_types_top 0x264E4C+0x48, 0x2F0, 1, 1 .else metatiles_bottom 0x263CFC, 0x17C8, 1 metatiles_top 0x2649C4, 0xBC0, 1 metatile_types_bottom 0x264D48, 0x5F2, 1 metatile_types_top 0x264E4C, 0x2F0, 1, 1 .endif +.endif gAreaMetatiles_Vaati3:: @ 0810303C .ifdef JP @@ -375,12 +717,19 @@ gAreaMetatiles_Vaati3:: @ 0810303C metatiles_top 0x25CDE8, 0x9B8, 1 metatile_types_bottom 0x25CFC4, 0x3A0, 1 metatile_types_top 0x25D098, 0x26E, 1, 1 +.else +.ifdef EU + metatiles_bottom 0x25C6BC+0x48, 0xE80, 1 + metatiles_top 0x25CD74+0x48, 0x9B8, 1 + metatile_types_bottom 0x25CF50+0x48, 0x3A0, 1 + metatile_types_top 0x25D024+0x48, 0x26E, 1, 1 .else metatiles_bottom 0x25C6BC, 0xE80, 1 metatiles_top 0x25CD74, 0x9B8, 1 metatile_types_bottom 0x25CF50, 0x3A0, 1 metatile_types_top 0x25D024, 0x26E, 1, 1 .endif +.endif gAreaMetatiles_Vaati2:: @ 0810306C .ifdef JP @@ -388,12 +737,19 @@ gAreaMetatiles_Vaati2:: @ 0810306C metatiles_top 0x260C90, 0x298, 1 metatile_types_bottom 0x260D30, 0x214, 1 metatile_types_top 0x260DAC, 0xA6, 1, 1 +.else +.ifdef EU + metatiles_bottom 0x2607F0+0x48, 0x850, 1 + metatiles_top 0x260C1C+0x48, 0x298, 1 + metatile_types_bottom 0x260CBC+0x48, 0x214, 1 + metatile_types_top 0x260D38+0x48, 0xA6, 1, 1 .else metatiles_bottom 0x2607F0, 0x850, 1 metatiles_top 0x260C1C, 0x298, 1 metatile_types_bottom 0x260CBC, 0x214, 1 metatile_types_top 0x260D38, 0xA6, 1, 1 .endif +.endif gAreaMetatiles:: @ 0810309C diff --git a/data/scripts/script_08008B5C.inc b/data/scripts/script_08008B5C.inc index d7e5a9cc..7bce1e1b 100644 --- a/data/scripts/script_08008B5C.inc +++ b/data/scripts/script_08008B5C.inc @@ -39,11 +39,16 @@ SCRIPT_START script_08008BC0 _0807EB44 0x0004 DoPostScriptAction 0x000a _0807E930 0x0000 +.ifdef EU + SetGlobalFlag 0x0061 +.endif EndBlock script_08008BD2: _0807E944 _0807E864 +.ifndef EU SetGlobalFlag 0x0061 +.endif _0807E930 0x0004 Call sub_0807F2D4 _0807EA94 diff --git a/data/scripts/script_0800939A.inc b/data/scripts/script_0800939A.inc index 2efdd91d..31f82777 100644 --- a/data/scripts/script_0800939A.inc +++ b/data/scripts/script_0800939A.inc @@ -1,8 +1,12 @@ SCRIPT_START script_0800939A .ifdef JP CheckLocalFlag 0x00ac +.else +.ifdef EU + CheckLocalFlag 0x00ac .else CheckLocalFlag 0x00ae +.endif .endif JumpIf script_0800943E CheckInventory1 0x000d @@ -24,8 +28,12 @@ script_080093DA: SetIntVariable 0x00001d05 .ifdef JP CheckLocalFlag 0x00ab +.else +.ifdef EU + CheckLocalFlag 0x00ab .else CheckLocalFlag 0x00ad +.endif .endif JumpIf script_080093EE SetIntVariable 0x00001d04 @@ -46,9 +54,14 @@ script_080093EE: .ifdef JP SetLocalFlag 0x00ac SetLocalFlag 0x00ab +.else +.ifdef EU + SetLocalFlag 0x00ac + SetLocalFlag 0x00ab .else SetLocalFlag 0x00ae SetLocalFlag 0x00ad +.endif .endif Call sub_0806D5D4 _0807EB8C diff --git a/data/scripts/script_08009464.inc b/data/scripts/script_08009464.inc index bca65bbe..5f134afa 100644 --- a/data/scripts/script_08009464.inc +++ b/data/scripts/script_08009464.inc @@ -7,8 +7,12 @@ SCRIPT_START script_08009464 Wait 0x003c .ifdef JP ClearLocalFlag 0x00ac +.else +.ifdef EU + ClearLocalFlag 0x00ac .else ClearLocalFlag 0x00ae +.endif .endif Call sub_0806D620 Wait 0x003c diff --git a/data/scripts/script_080098D4.inc b/data/scripts/script_080098D4.inc index ea0a2350..1b17c7aa 100644 --- a/data/scripts/script_080098D4.inc +++ b/data/scripts/script_080098D4.inc @@ -9,14 +9,22 @@ script_080098E0: JumpIfNot script_080098E0 .ifdef JP CheckLocalFlag 0x5b +.else +.ifdef EU + CheckLocalFlag 0x5b .else CheckLocalFlag 0x5d +.endif .endif JumpIf script_08009910 .ifdef JP SetLocalFlag 0x005b +.else +.ifdef EU + SetLocalFlag 0x005b .else SetLocalFlag 0x005d +.endif .endif _0807E864 Call sub_0807F9A4 diff --git a/data/scripts/script_08009E88.inc b/data/scripts/script_08009E88.inc index 75074f51..4368b582 100644 --- a/data/scripts/script_08009E88.inc +++ b/data/scripts/script_08009E88.inc @@ -4,8 +4,12 @@ SCRIPT_START script_08009E88 _0807E864 .ifdef JP SetLocalFlag 0x009e +.else +.ifdef EU + SetLocalFlag 0x009e .else SetLocalFlag 0x009f +.endif .endif EndBlock Wait 0x003c diff --git a/data/scripts/script_0800A0FC.inc b/data/scripts/script_0800A0FC.inc index 80b3c50f..baedeedc 100644 --- a/data/scripts/script_0800A0FC.inc +++ b/data/scripts/script_0800A0FC.inc @@ -7,7 +7,9 @@ script_0800A0FE: _0807E864 Call sub_0807DF28 StopBgm +.ifndef EU Call sub_0807FBFC +.endif SetEntityPositionRelative 0x00b0, 0x0058 Call sub_0807F844 _0807E8E4_3 @@ -22,4 +24,6 @@ script_0800A0FE: CallWithArg sub_0806DA1C, 0x00000006 DoPostScriptAction 0x0006 SCRIPT_END +.ifndef EU .2byte 0x0000 +.endif diff --git a/data/scripts/script_0800B0D0.inc b/data/scripts/script_0800B0D0.inc index 9ad7992a..fa5ccadf 100644 --- a/data/scripts/script_0800B0D0.inc +++ b/data/scripts/script_0800B0D0.inc @@ -28,7 +28,9 @@ script_0800B134: CallWithArg sub_0806BC94, 0x00000004 Call sub_0807F650 _0807E9F0 +.ifndef EU JumpIfNot script_0800B160 +.endif Call sub_0806BCC0 script_0800B160: Call sub_0807DF50 diff --git a/data/scripts/script_0800B200.inc b/data/scripts/script_0800B200.inc index 909699d5..ebd489df 100644 --- a/data/scripts/script_0800B200.inc +++ b/data/scripts/script_0800B200.inc @@ -3,8 +3,12 @@ SCRIPT_START script_0800B200 _0807E5F8 0x00000000 .ifdef JP CheckLocalFlag 0x001e +.else +.ifdef EU + CheckLocalFlag 0x001e .else CheckLocalFlag 0x001d +.endif .endif JumpIf script_0800B252 SetEntitySpeed 0x00c0 @@ -24,8 +28,12 @@ script_0800B216: _0807E878 .ifdef JP CheckLocalFlag 0x001e +.else +.ifdef EU + CheckLocalFlag 0x001e .else CheckLocalFlag 0x001d +.endif .endif JumpIfNot script_0800B216 script_0800B252: diff --git a/data/scripts/script_0800B308.inc b/data/scripts/script_0800B308.inc index 8ec57e2e..a283ba91 100644 --- a/data/scripts/script_0800B308.inc +++ b/data/scripts/script_0800B308.inc @@ -2,8 +2,12 @@ SCRIPT_START script_0800B308 BeginBlock .ifdef JP CheckLocalFlag 0x001e +.else +.ifdef EU + CheckLocalFlag 0x001e .else CheckLocalFlag 0x001d +.endif .endif JumpIf script_0800B39C DoPostScriptAction 0x0001 @@ -42,8 +46,12 @@ script_0800B350: EndBlock .ifdef JP SetLocalFlag 0x001e +.else +.ifdef EU + SetLocalFlag 0x001e .else SetLocalFlag 0x001d +.endif .endif PlaySound SFX_SECRET script_0800B39C: diff --git a/data/scripts/script_0800D6D0.inc b/data/scripts/script_0800D6D0.inc index d69cc2e6..8150664a 100644 --- a/data/scripts/script_0800D6D0.inc +++ b/data/scripts/script_0800D6D0.inc @@ -2,8 +2,12 @@ SCRIPT_START script_0800D6D0 BeginBlock .ifdef JP CheckLocalFlag 0x00f0 +.else +.ifdef EU + CheckLocalFlag 0x00f0 .else CheckLocalFlag 0x00f3 +.endif .endif JumpIf script_0800D6E8 DoPostScriptAction 0x0008 @@ -11,8 +15,12 @@ SCRIPT_START script_0800D6D0 script_0800D6E0: .ifdef JP CheckLocalFlag 0x00f0 +.else +.ifdef EU + CheckLocalFlag 0x00f0 .else CheckLocalFlag 0x00f3 +.endif .endif JumpIfNot script_0800D6E0 script_0800D6E8: diff --git a/data/scripts/script_0800D6F0.inc b/data/scripts/script_0800D6F0.inc index 5a402b35..63cfa930 100644 --- a/data/scripts/script_0800D6F0.inc +++ b/data/scripts/script_0800D6F0.inc @@ -2,8 +2,12 @@ SCRIPT_START script_0800D6F0 BeginBlock .ifdef JP CheckLocalFlag 0x00f2 +.else +.ifdef EU + CheckLocalFlag 0x00f2 .else CheckLocalFlag 0x00f5 +.endif .endif JumpIf script_0800D6E8 DoPostScriptAction 0x0008 @@ -11,8 +15,12 @@ SCRIPT_START script_0800D6F0 script_0800D700: .ifdef JP CheckLocalFlag 0x00f2 +.else +.ifdef EU + CheckLocalFlag 0x00f2 .else CheckLocalFlag 0x00f5 +.endif .endif JumpIfNot script_0800D700 DoPostScriptAction 0x0007 diff --git a/data/scripts/script_0800E0BC.inc b/data/scripts/script_0800E0BC.inc index abb3f935..b00339ee 100644 --- a/data/scripts/script_0800E0BC.inc +++ b/data/scripts/script_0800E0BC.inc @@ -294,6 +294,8 @@ script_0800E484: _0807EA94 _0807E878 Jump script_0800E484 + + SCRIPT_START script_0800E4A4 BeginBlock Call sub_0807F354 @@ -303,14 +305,22 @@ SCRIPT_START script_0800E4A4 script_0800E4B6: .ifdef JP CheckPlayerInRegion 0x0088, 0x0100, 0x0820 +.else +.ifdef EU + CheckPlayerInRegion 0x0088, 0x0100, 0x0820 .else CheckPlayerInRegion 0x0088, 0x00f8, 0x0820 +.endif .endif JumpIfNot script_0800E4B6 BeginBlock _0807E864 .ifdef JP Call sub_0805E544 +.else +.ifdef EU + Call sub_0805E544 +.endif .endif EndBlock Call sub_0807F3F8 @@ -329,6 +339,10 @@ script_0800E4B6: SetLocalFlag 0x007c .ifdef JP Call UnfreezeTime +.else +.ifdef EU + Call UnfreezeTime +.endif .endif script_0800E4FA: _0807E878 diff --git a/data/scripts/script_0800F554.inc b/data/scripts/script_0800F554.inc index 747ea06b..bf828afc 100644 --- a/data/scripts/script_0800F554.inc +++ b/data/scripts/script_0800F554.inc @@ -123,8 +123,12 @@ script_0800F6A0: CallWithArg sub_0807F3D8, 0x00000004 .ifdef JP CheckLocalFlag 0x00ca +.else +.ifdef EU + CheckLocalFlag 0x00ca .else CheckLocalFlag 0x00cd +.endif .endif JumpIf script_0800F6C4 TextboxNoOverlap 0x2512 @@ -148,8 +152,12 @@ SCRIPT_START script_0800F6E0 script_0800F6F4: .ifdef JP CheckLocalFlag 0x00ca +.else +.ifdef EU + CheckLocalFlag 0x00ca .else CheckLocalFlag 0x00cd +.endif .endif JumpIf script_0800F718 CheckEntityInteractType diff --git a/data/scripts/script_0800F724.inc b/data/scripts/script_0800F724.inc index 102bb549..bd45a2ff 100644 --- a/data/scripts/script_0800F724.inc +++ b/data/scripts/script_0800F724.inc @@ -5,8 +5,12 @@ SCRIPT_START script_0800F724 script_0800F72C: .ifdef JP CheckLocalFlag 0x00ca +.else +.ifdef EU + CheckLocalFlag 0x00ca .else CheckLocalFlag 0x00cd +.endif .endif JumpIfNot script_0800F72C DoPostScriptAction 0x0007 @@ -16,8 +20,12 @@ script_0800F72C: SCRIPT_START script_0800F73C .ifdef JP CheckLocalFlag 0x00ca +.else +.ifdef EU + CheckLocalFlag 0x00ca .else CheckLocalFlag 0x00cd +.endif .endif JumpIf script_0800FA4C _0807E864 @@ -180,8 +188,12 @@ SCRIPT_START script_0800F73C Call sub_08063C44 .ifdef JP SetLocalFlag 0x00ca +.else +.ifdef EU + SetLocalFlag 0x00ca .else SetLocalFlag 0x00cd +.endif .endif Call sub_0807DF50 _0807E878 diff --git a/data/scripts/script_0800FD0C.inc b/data/scripts/script_0800FD0C.inc index 563a019a..7b8bb425 100644 --- a/data/scripts/script_0800FD0C.inc +++ b/data/scripts/script_0800FD0C.inc @@ -1,8 +1,12 @@ SCRIPT_START script_0800FD0C .ifdef JP CheckLocalFlag 0x00ca +.else +.ifdef EU + CheckLocalFlag 0x00ca .else CheckLocalFlag 0x00cd +.endif .endif JumpIf script_0800FD50 WaitForSomething2 0x00000010 @@ -11,8 +15,12 @@ script_0800FD1A: JumpIfNot script_0800FD1A .ifdef JP CheckLocalFlag 0x00ca +.else +.ifdef EU + CheckLocalFlag 0x00ca .else CheckLocalFlag 0x00cd +.endif .endif JumpIf script_0800FD5C _0807E864 diff --git a/data/scripts/script_0800FF74.inc b/data/scripts/script_0800FF74.inc index f105ab7b..5f45e217 100644 --- a/data/scripts/script_0800FF74.inc +++ b/data/scripts/script_0800FF74.inc @@ -7,7 +7,9 @@ SCRIPT_START script_0800FF74 .ifdef JP ClearLocalFlag 0x00c4 .else +.ifndef EU ClearLocalFlag 0x00c7 +.endif .endif EndBlock script_0800FF92: @@ -16,16 +18,24 @@ script_0800FF92: DoPostScriptAction 0x000a .ifdef JP CheckLocalFlag 0x00cb +.else +.ifdef EU + CheckLocalFlag 0x00cb .else CheckLocalFlag 0x00ce +.endif .endif JumpIf script_0800FFCC DoPostScriptAction 0x000b Call sub_08064198 .ifdef JP CheckLocalFlag 0x00c4 +.else +.ifdef EU + CheckLocalFlag 0x00c4 .else CheckLocalFlag 0x00c7 +.endif .endif JumpIfNot script_0800FFCC Call sub_08064488 @@ -39,8 +49,12 @@ script_0800FFCC: EndBlock .ifdef JP SetLocalFlag 0x00c4 +.else +.ifdef EU + SetLocalFlag 0x00c4 .else SetLocalFlag 0x00c7 +.endif .endif _0807E864 _0807EB74 @@ -53,8 +67,12 @@ script_0800FFCC: script_0800FFF8: .ifdef JP CheckLocalFlag 0x00cb +.else +.ifdef EU + CheckLocalFlag 0x00cb .else CheckLocalFlag 0x00ce +.endif .endif JumpIfNot script_0801000A TextboxNoOverlap 0x340b @@ -82,9 +100,13 @@ script_08010014: CallWithArg sub_0807F3D8, 0x00000008 .ifdef JP SetLocalFlag 0x00cb +.else +.ifdef EU + SetLocalFlag 0x00cb .else SetLocalFlag 0x00ce .endif +.endif script_08010060: Call sub_080644A4 CallWithArg sub_0807F5B0, 0x0000000a diff --git a/data/scripts/script_08010264.inc b/data/scripts/script_08010264.inc index a633beba..d0d023f8 100644 --- a/data/scripts/script_08010264.inc +++ b/data/scripts/script_08010264.inc @@ -501,8 +501,12 @@ script_08010860: TextboxNoOverlap 0x2c21 Jump script_080108B2 script_080108AA: -.ifndef JP +.ifdef USA SetLocalFlag 0x00fa +.else +.ifdef DEMO + SetLocalFlag 0x00fa +.endif .endif TextboxNoOverlap 0x2c20 script_080108B2: diff --git a/data/scripts/script_08010964.inc b/data/scripts/script_08010964.inc index 7b408aaf..908a6a23 100644 --- a/data/scripts/script_08010964.inc +++ b/data/scripts/script_08010964.inc @@ -21,8 +21,12 @@ SCRIPT_START script_080109A0 EndBlock .ifdef JP CheckLocalFlag 0x00ce +.else +.ifdef EU + CheckLocalFlag 0x00ce .else CheckLocalFlag 0x00d1 +.endif .endif JumpIf script_080109EA CheckPlayerInRegion2 0x0808 diff --git a/data/scripts/script_08011128.inc b/data/scripts/script_08011128.inc index d54a4e51..7e9e0db4 100644 --- a/data/scripts/script_08011128.inc +++ b/data/scripts/script_08011128.inc @@ -5,6 +5,11 @@ SCRIPT_START script_08011128 .ifdef JP _0807E9D4 DoPostScriptAction 0x000a +.else +.ifdef EU + _0807E9D4 + DoPostScriptAction 0x000a +.endif .endif EndBlock script_08011134: @@ -41,4 +46,8 @@ script_08011134: SCRIPT_END .ifdef JP .2byte 0x0000 +.else +.ifdef EU + .2byte 0x0000 +.endif .endif diff --git a/data/scripts/script_0801194C.inc b/data/scripts/script_0801194C.inc index dc3594b3..50b0e0d3 100644 --- a/data/scripts/script_0801194C.inc +++ b/data/scripts/script_0801194C.inc @@ -139,8 +139,12 @@ script_08011AFA: _0807EA94 .ifdef JP SetLocalFlag 0x0011 +.else +.ifdef EU + SetLocalFlag 0x0011 .else SetLocalFlag 0x0010 +.endif .endif CallWithArg sub_0806DA1C, 0x00000003 _0807E878 diff --git a/data/scripts/script_08011C7C.inc b/data/scripts/script_08011C7C.inc index fe9af336..cbe9a609 100644 --- a/data/scripts/script_08011C7C.inc +++ b/data/scripts/script_08011C7C.inc @@ -325,6 +325,8 @@ script_0801200C: _0807EB44 0x0004 DoPostScriptAction 0x0001 Jump script_08011FFE + + SCRIPT_START script_08012024 BeginBlock Call sub_08064828 @@ -361,8 +363,12 @@ script_08012070: _0807EA94 _0807F034 0x0031 WaitPlayerAction8 -.ifndef JP +.ifdef USA Call sub_0807FC24 +.else +.ifdef DEMO + Call sub_0807FC24 +.endif .endif Jump script_0801209E script_0801209A: @@ -373,10 +379,7 @@ script_0801209E: _0807EB44 0x0004 DoPostScriptAction 0x0001 Jump script_0801203A -.ifndef JP - .2byte 0x0000 -.endif - + .align 2, 0 SCRIPT_START script_080120B0 BeginBlock @@ -414,8 +417,12 @@ script_080120FC: _0807EA94 _0807F034 0x002f WaitPlayerAction8 -.ifndef JP +.ifdef USA Call sub_0807FC24 +.else +.ifdef DEMO + Call sub_0807FC24 +.endif .endif Jump script_0801212A script_08012126: @@ -426,9 +433,7 @@ script_0801212A: _0807EB44 0x0004 DoPostScriptAction 0x0001 Jump script_080120C6 -.ifndef JP - .2byte 0x0000 -.endif + .align 2, 0 SCRIPT_START script_0801213C BeginBlock @@ -466,8 +471,12 @@ script_08012188: _0807EA94 _0807F034 0x0030 WaitPlayerAction8 -.ifndef JP +.ifdef USA Call sub_0807FC24 +.else +.ifdef DEMO + Call sub_0807FC24 +.endif .endif Jump script_080121B6 script_080121B2: @@ -478,9 +487,7 @@ script_080121B6: _0807EB44 0x0004 DoPostScriptAction 0x0001 Jump script_08012152 -.ifndef JP - .2byte 0x0000 -.endif + .align 2, 0 SCRIPT_START script_080121C8 BeginBlock @@ -600,4 +607,4 @@ script_080122EC: _0807E878 DoPostScriptAction 0x0006 SCRIPT_END - .2byte 0x0000 + .align 2, 0 diff --git a/data/scripts/script_08012430.inc b/data/scripts/script_08012430.inc index a6c730c1..c18f6787 100644 --- a/data/scripts/script_08012430.inc +++ b/data/scripts/script_08012430.inc @@ -18,14 +18,20 @@ script_08012440: SetLocalFlag 0x00b3 _0807F034 0x0062 WaitPlayerAction8 -.ifndef JP +.ifdef USA SetLocalFlag 0x00d0 +.else +.ifdef DEMO + SetLocalFlag 0x00d0 +.endif .endif script_08012474: _0807E878 _0807E930 0x0000 Jump script_08012440 - .2byte 0x0000 + .align 2, 0 + + SCRIPT_START script_08012480 BeginBlock Call sub_08054564 diff --git a/data/scripts/script_08012C68.inc b/data/scripts/script_08012C68.inc index bcbb12f3..b8aa1e2a 100644 --- a/data/scripts/script_08012C68.inc +++ b/data/scripts/script_08012C68.inc @@ -33,8 +33,12 @@ script_08012CA0: _0807EA94 .ifdef JP SetLocalFlag 0x003a +.else +.ifdef EU + SetLocalFlag 0x003a .else SetLocalFlag 0x003b +.endif .endif Call sub_0807DF50 _0807E878 diff --git a/data/scripts/script_08012CD8.inc b/data/scripts/script_08012CD8.inc index 5e0ade09..900f0de5 100644 --- a/data/scripts/script_08012CD8.inc +++ b/data/scripts/script_08012CD8.inc @@ -14,8 +14,12 @@ SCRIPT_START script_08012CD8 _0807EA94 .ifdef JP SetLocalFlag 0x003d +.else +.ifdef EU + SetLocalFlag 0x003d .else SetLocalFlag 0x003e +.endif .endif Call sub_0807DF50 _0807E878 diff --git a/data/scripts/script_08012D70.inc b/data/scripts/script_08012D70.inc index 700f949f..8b936911 100644 --- a/data/scripts/script_08012D70.inc +++ b/data/scripts/script_08012D70.inc @@ -10,8 +10,12 @@ SCRIPT_START script_08012D70 _0807EA94 .ifdef JP SetLocalFlag 0x0015 +.else +.ifdef EU + SetLocalFlag 0x0015 .else SetLocalFlag 0x0014 +.endif .endif Call sub_0807DF50 _0807E878 diff --git a/data/scripts/script_080138B4.inc b/data/scripts/script_080138B4.inc index 9a63f5c8..206ac542 100644 --- a/data/scripts/script_080138B4.inc +++ b/data/scripts/script_080138B4.inc @@ -77,9 +77,11 @@ script_080138D0: TextboxNoOverlapFollowPos 0x0505, 0x000c _0807EA94 _0807E5F8 0x00040000 +.ifndef EU _0807F0B4 0x0002 SetEntityPositionRelative 0x00e8, 0x00d8 CameraTargetEntity +.endif Call sub_0806DC3C CallWithArg sub_0807F244, 0x00010001 CallWithArg sub_0807F29C, gUnk_080049FE @@ -87,7 +89,9 @@ script_080138D0: CallWithArg sub_0807F29C, 0x00000000 Call sub_0806DC58 script_08013A8E: +.ifndef EU CheckRoomFlag 0x0004 JumpIfNot script_08013A8E +.endif CallWithArg sub_0805DDEC, 0x00000001 _0807F0C8 0xffff, 0x0000 diff --git a/data/scripts/script_08013AA6.inc b/data/scripts/script_08013AA6.inc index 484789c1..37961ee2 100644 --- a/data/scripts/script_08013AA6.inc +++ b/data/scripts/script_08013AA6.inc @@ -1,6 +1,12 @@ SCRIPT_START script_08013AA6 Call sub_0807F3F8 Wait 0x003c +.ifdef EU + _0807F0B4 0x0007 + SetEntityPositionRelative 0x00e8, 0x00a8 + CameraTargetEntity + Wait 0x003c +.endif _0807E5F8 0x00000008 Wait 0x0078 CallWithArg sub_0805DE18, 0x00000001 diff --git a/data/scripts/script_08013BE8.inc b/data/scripts/script_08013BE8.inc index ea87d86b..b6c87eec 100644 --- a/data/scripts/script_08013BE8.inc +++ b/data/scripts/script_08013BE8.inc @@ -25,7 +25,9 @@ script_08013C32: Call sub_0807F934 DoPostScriptAction 0x000a CallWithArg sub_080962F8, 0x00000000 +.ifndef EU CallWithArg sub_0807F8E8, 0x00000004 +.endif EndBlock script_08013C58: EndBlock @@ -55,4 +57,4 @@ script_08013C98: DoPostScriptAction 0x0008 DoPostScriptAction 0x0006 SCRIPT_END - .2byte 0x0000 + .align 2, 0 diff --git a/data/scripts/script_08014248.inc b/data/scripts/script_08014248.inc index 56ab6d41..569bc7d0 100644 --- a/data/scripts/script_08014248.inc +++ b/data/scripts/script_08014248.inc @@ -7,7 +7,9 @@ SCRIPT_START script_08014248 script_08014264: CallWithArg sub_08095EAC, 0x00000001 Jump script_08014264 - .2byte 0x0000 + .align 2, 0 + +.ifndef EU SCRIPT_START script_08014274 BeginBlock DoPostScriptAction 0x0008 @@ -28,3 +30,4 @@ script_08014298: _0807E878 Jump script_08014298 .2byte 0x0000 +.endif diff --git a/data/scripts/script_080143C0.inc b/data/scripts/script_080143C0.inc index 1f682585..652ee0ff 100644 --- a/data/scripts/script_080143C0.inc +++ b/data/scripts/script_080143C0.inc @@ -27,10 +27,12 @@ script_080143FA: _0807EA94 SetIntVariable 0x00000303 Call sub_0807F420 +.ifndef EU Wait 0x001e _0807EB8C TextboxNoOverlap 0x2c22 _0807EA94 +.endif script_0801443E: _0807E930 0x0004 _0807E908 0x0001 diff --git a/data/scripts/script_08014450.inc b/data/scripts/script_08014450.inc index 2bce9f6a..10fbfc52 100644 --- a/data/scripts/script_08014450.inc +++ b/data/scripts/script_08014450.inc @@ -35,8 +35,12 @@ script_080144B8: Jump script_080144C8 script_080144C0: SetLocalFlag 0x0093 -.ifndef JP +.ifdef USA SetLocalFlag 0x00d3 +.else +.ifdef DEMO + SetLocalFlag 0x00d3 +.endif .endif script_080144C8: ModRupees 0xfff6 @@ -56,11 +60,13 @@ script_080144FC: _0807E878 CheckRoomFlag 0x0000 JumpIfNot script_08014462 -.ifndef JP +.ifdef USA + _0807E9DC +.else +.ifdef DEMO _0807E9DC .endif -SCRIPT_END -.ifndef JP - .2byte 0x0000 .endif +SCRIPT_END + .align 2, 0 diff --git a/data/scripts/script_080145B0.inc b/data/scripts/script_080145B0.inc index 8cc995b4..1aa48d71 100644 --- a/data/scripts/script_080145B0.inc +++ b/data/scripts/script_080145B0.inc @@ -9,10 +9,19 @@ script_080145C2: JumpIfNot script_080145C2 _0807E864 ClearRoomFlag 0x0005 +.ifdef EU + Wait 0x0018 + _0807E8E4_1 + _0807EB44 0x0006 +.else Wait 0x000c _0807EB8C +.endif TextboxNoOverlapFollowPos 0x432e, 0x000c _0807EA94 +.ifdef EU + Wait 0x0018 +.endif _0807E878 Jump script_080145C2 script_080145E4: diff --git a/data/scripts/script_080145E8.inc b/data/scripts/script_080145E8.inc index 88c520e0..0f68e289 100644 --- a/data/scripts/script_080145E8.inc +++ b/data/scripts/script_080145E8.inc @@ -5,6 +5,36 @@ SCRIPT_START script_080145E8 DoPostScriptAction 0x0000 EndBlock script_080145F8: +.ifdef EU + CheckPlayerInRegion 0x00a8, 0x0054, 0x080c + JumpIfNot script_080145F8 + ComparePlayerAnimationState 0x0000 + JumpIfNot script_080145F8 + CheckRoomFlag 0x0009 + JumpIf script_08014632 + _0807E864 + Wait 0x0018 + _0807E8E4_3 + _0807EB44 0x0002 + TextboxNoOverlapFollowPos 0x432b, 0x000c + _0807EA94 + Wait 0x0018 + _0807E878 + Jump script_080145F8 +script_08014632: + CheckRoomFlag 0x0000 + JumpIfNot script_08014632 + _0807E864 + Call sub_0807DF28 +script_08014642: + CheckRoomFlag 0x0009 + JumpIf script_08014642 + _0807E5F8 0x00000004 + WaitForSomething2 0x00000008 + Call sub_0807DF50 + _0807E878 + Jump script_080145F8 +.else CheckRoomFlag 0x0000 JumpIfNot script_080145F8 _0807E864 @@ -17,6 +47,8 @@ script_08014608: Call sub_0807DF50 _0807E878 Jump script_080145F8 +.endif + .align 2, 0 SCRIPT_START script_08014628 BeginBlock @@ -27,9 +59,52 @@ SCRIPT_START script_08014628 EndBlock script_0801463A: _0807E30C +.ifdef EU + JumpIf script_080146E2 +.else JumpIf script_080146A0 +.endif TestBit 0x00000004 JumpIf script_0801477A +.ifdef EU + CheckPlayerInRegion 0x0078, 0x0078, 0x0810 + JumpIfNot script_0801463A + CheckRoomFlag 0x0009 + JumpIfNot script_0801463A + _0807E864 + _0807EB28 0x431f + _0807EA94 +script_0801469A: + StartPlayerScript script_080147DC + Wait 0x0010 + _0807E5F8 0x00000002 + WaitForSomething2 0x00000001 + _0807E878 + Jump script_0801463A +script_080146E2: + _0807E864 + _0807E930 0x0008 + Wait 0x0020 + _0807E930 0x0002 + CheckGlobalFlag 0x0059 + JumpIf script_0801472E_2 + CheckRoomFlag 0x0009 + JumpIf script_080146F4 + CheckLocalFlag 0x005c + JumpIfNot script_080146FE + CheckLocalFlag 0x005e + JumpIfNot script_0801474A + CheckRoomFlag 0x0006 + JumpIf script_0801472E + CheckLocalFlag 0x005f + JumpIf script_08014720 + Call sub_08088574 + SetRoomFlag 0x000a + Jump script_0801473C +script_0801472E_2: + TextboxNoOverlapFollowPos 0x432f, 0x000c + Jump script_080147CE @ TODO script_08014816 +.else CheckRoomFlag 0x0004 JumpIf script_08014672 Call sub_0808861C @@ -79,12 +154,22 @@ script_080146C6: Call sub_08088574 SetRoomFlag 0x0009 Jump script_0801473C +.endif + script_080146F4: TextboxNoOverlapFollowPos 0x431e, 0x000c Jump script_080147CE script_080146FE: +.ifdef EU + SetRoomFlag 0x000A +.else SetRoomFlag 0x0009 +.endif SetLocalFlag 0x005c +.ifdef EU +script_0801474A: + SetRoomFlag 0x000a +.endif TextboxNoOverlapFollowPos 0x4305, 0x000c _0807EA94 _0807E3BC 0x0001 @@ -92,11 +177,19 @@ script_080146FE: TextboxNoOverlapFollowPos 0x4306, 0x000c Jump script_0801473C script_08014720: +.ifdef EU + SetRoomFlag 0x000A +.else SetRoomFlag 0x0009 +.endif Call sub_08088504 Jump script_0801473C script_0801472E: +.ifdef EU + SetRoomFlag 0x000A +.else SetRoomFlag 0x0009 +.endif ClearRoomFlag 0x0006 Call sub_08088544 script_0801473C: @@ -112,11 +205,19 @@ script_08014754: JumpIfNot script_08014754 ClearRoomFlag 0x0003 _0807EA94 +.ifdef EU + SetRoomFlag 0x0009 +.else SetRoomFlag 0x0004 +.endif TextboxNoOverlapFollowPos 0x431e, 0x000c Jump script_080147CE script_08014770: +.ifdef EU + SetRoomFlag 0x000A +.else SetRoomFlag 0x0009 +.endif _0807EA94 Jump script_080147CE script_0801477A: @@ -142,13 +243,19 @@ script_080147B4: _0807E930 0x0002 Jump script_0801478A script_080147C4: +.ifdef EU + SetRoomFlag 0x000A +.else SetRoomFlag 0x0009 +.endif TextboxNoOverlapFollowPos 0x4307, 0x000c script_080147CE: _0807EA94 +.ifdef EU + Wait 0x000F +.else Wait 0x0004 +.endif _0807E878 Jump script_0801463A -.ifndef JP - .2byte 0x0000 -.endif + .align 2, 0 diff --git a/data/scripts/script_08014CDC.inc b/data/scripts/script_08014CDC.inc index 4a9f1dc2..4b0d2f45 100644 --- a/data/scripts/script_08014CDC.inc +++ b/data/scripts/script_08014CDC.inc @@ -55,8 +55,12 @@ script_08014D96: _0807EC64 0x0018 .ifdef JP SetLocalFlag 0x006b +.else +.ifdef EU + SetLocalFlag 0x006b .else SetLocalFlag 0x006d +.endif .endif Call sub_0807DF50 _0807E878 diff --git a/data/scripts/script_08014E14.inc b/data/scripts/script_08014E14.inc index 01df4073..1b70d789 100644 --- a/data/scripts/script_08014E14.inc +++ b/data/scripts/script_08014E14.inc @@ -241,8 +241,12 @@ script_08015104: CameraTargetPlayer .ifdef JP SetLocalFlag 0x008a +.else +.ifdef EU + SetLocalFlag 0x008a .else SetLocalFlag 0x008c +.endif .endif _0807EB28 0x130c _0807EA94 diff --git a/data/scripts/script_080157AC.inc b/data/scripts/script_080157AC.inc index a88d0a4e..57f353dc 100644 --- a/data/scripts/script_080157AC.inc +++ b/data/scripts/script_080157AC.inc @@ -65,8 +65,12 @@ script_08015888: WaitForSomething2 0x00000002 .ifdef JP SetLocalFlag 0x0089 +.else +.ifdef EU + SetLocalFlag 0x0089 .else SetLocalFlag 0x008b +.endif .endif Call sub_08066FB8 Call sub_0807DF50 diff --git a/data/scripts/script_08015B34.inc b/data/scripts/script_08015B34.inc index 256600f4..9df5e5af 100644 --- a/data/scripts/script_08015B34.inc +++ b/data/scripts/script_08015B34.inc @@ -3,8 +3,12 @@ SCRIPT_START script_08015B34 BeginBlock .ifdef JP CheckLocalFlag 0x0089 +.else +.ifdef EU + CheckLocalFlag 0x0089 .else CheckLocalFlag 0x008b +.endif .endif JumpIf script_08015B7E CallWithArg sub_0807F6B4, 0x00000318 diff --git a/data/scripts/script_08015BA8.inc b/data/scripts/script_08015BA8.inc index 46f4d3f6..433c22e4 100644 --- a/data/scripts/script_08015BA8.inc +++ b/data/scripts/script_08015BA8.inc @@ -2,8 +2,12 @@ SCRIPT_START script_08015BA8 BeginBlock .ifdef JP SetLocalFlag 0x008c +.else +.ifdef EU + SetLocalFlag 0x008c .else SetLocalFlag 0x008e +.endif .endif _0807E864 MoveEntityToPlayer diff --git a/data/scripts/script_08015BE8.inc b/data/scripts/script_08015BE8.inc index 65c65409..d066f2e8 100644 --- a/data/scripts/script_08015BE8.inc +++ b/data/scripts/script_08015BE8.inc @@ -33,8 +33,12 @@ script_08015BF0: _0807EA94 .ifdef JP SetLocalFlag 0x009b +.else +.ifdef EU + SetLocalFlag 0x009b .else SetLocalFlag 0x009c +.endif .endif Call sub_0807FBCC Call sub_0807DF50 diff --git a/data/scripts/script_080160A8.inc b/data/scripts/script_080160A8.inc index 91d91fa6..9239fd38 100644 --- a/data/scripts/script_080160A8.inc +++ b/data/scripts/script_080160A8.inc @@ -34,8 +34,12 @@ script_080160E0: Jump script_08016132 script_0801610C: WaitPlayerAction8 +.ifndef EU _0807EB8C TextboxNoOverlapFollow 0x2d0d +.else + TextboxNoOverlapFollow 0x2d08 +.endif _0807EA94 Jump script_08016132 script_0801611A: @@ -51,6 +55,8 @@ script_08016132: _0807E878 _0807EB44 0x0004 Jump script_080160B0 + .align 2, 0 + SCRIPT_START script_0801613C BeginBlock Call sub_080787B4 @@ -78,6 +84,8 @@ script_08016184: script_0801618A: _0807E878 Jump script_08016146 + .align 2, 0 + SCRIPT_START script_08016190 BeginBlock Call sub_080787B4 @@ -100,13 +108,19 @@ script_080161C6: TextboxNoOverlapFollow 0x2d0b Jump script_080161E2 script_080161D8: +.ifndef EU WaitPlayerAction8 _0807EA94 _0807EB8C TextboxNoOverlap 0x2d06 +.else + TextboxNoOverlapFollow 0x2d06 +.endif script_080161E2: _0807E878 Jump script_0801619A + .align 2, 0 + SCRIPT_START script_080161E8 BeginBlock Call sub_0807F348 diff --git a/data/scripts/script_08016384.inc b/data/scripts/script_08016384.inc index b0f66de0..7887a419 100644 --- a/data/scripts/script_08016384.inc +++ b/data/scripts/script_08016384.inc @@ -19,8 +19,12 @@ SCRIPT_START script_08016384 CheckLocalFlag 0x0067 .ifdef JP CheckLocalFlagByOffset 0x0100, 0x0069 +.else +.ifdef EU + CheckLocalFlagByOffset 0x0100, 0x0069 .else CheckLocalFlagByOffset 0x0100, 0x006b +.endif .endif CheckGlobalFlag 0x0013 CheckRoomFlag 0x0000 diff --git a/data/sounds.s b/data/sounds.s index 0b856ee5..4833d395 100644 --- a/data/sounds.s +++ b/data/sounds.s @@ -3839,6 +3839,9 @@ bgmDarkHyruleCastle:: @ 08DD6BFC sound_header 7 0 0 0xb2 gUnk_08A06D94 bgmDarkHyruleCastle_track0 bgmDarkHyruleCastle_track1 bgmDarkHyruleCastle_track2 bgmDarkHyruleCastle_track3 bgmDarkHyruleCastle_track4 bgmDarkHyruleCastle_track5 bgmDarkHyruleCastle_track6 bgmSecretCastleEntrance_track0:: @ 08DD6C20 +.ifdef EU + .incbin "baserom_eu.gba", 0xEE2278, 0x0000073 @TODO pointers inside +.else .incbin "baserom.gba", 0xDD6C20, 0x000000B gUnk_08DD6C2B:: @ 08DD6C2B .incbin "baserom.gba", 0xDD6C2B, 0x000000D @@ -3858,7 +3861,12 @@ gUnk_08DD6C85:: @ 08DD6C85 .incbin "baserom.gba", 0xDD6CAC, 0x0000005 .4byte gUnk_08DD6C2B .incbin "baserom.gba", 0xDD6CB5, 0x0000001 +.endif + bgmSecretCastleEntrance_track1:: @ 08DD6CB6 +.ifdef EU + .incbin "baserom_eu.gba", 0xEE22EB, 0x0000063 @TODO pointers inside +.else .incbin "baserom.gba", 0xDD6CB6, 0x0000007 gUnk_08DD6CBD:: @ 08DD6CBD .incbin "baserom.gba", 0xDD6CBD, 0x000000D @@ -3882,20 +3890,37 @@ gUnk_08DD6D0C:: @ 08DD6D0C .incbin "baserom.gba", 0xDD6D33, 0x0000003 .4byte gUnk_08DD6CBD .incbin "baserom.gba", 0xDD6D3A, 0x0000001 +.endif + bgmSecretCastleEntrance_track2:: @ 08DD6D3B .incbin "baserom.gba", 0xDD6D3B, 0x0000004 gUnk_08DD6D3F:: @ 08DD6D3F +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0xEE2352, 0x0000009 +.else .incbin "baserom.gba", 0xDD6D3F, 0x0000009 +.endif gUnk_08DD6D48:: @ 08DD6D48 .incbin "baserom.gba", 0xDD6D48, 0x0000019 .4byte gUnk_08DD6D48 +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0xEE2378, 0x000003B +.else .incbin "baserom.gba", 0xDD6D65, 0x000003B +.endif .4byte gUnk_08DD6D3F .incbin "baserom.gba", 0xDD6DA4, 0x0000001 bgmSecretCastleEntrance_track3:: @ 08DD6DA5 .incbin "baserom.gba", 0xDD6DA5, 0x0000006 gUnk_08DD6DAB:: @ 08DD6DAB +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0xEE23BE, 0x0000005 +.else .incbin "baserom.gba", 0xDD6DAB, 0x0000005 +.endif gUnk_08DD6DB0:: @ 08DD6DB0 .incbin "baserom.gba", 0xDD6DB0, 0x0000019 .4byte gUnk_08DD6DB0 @@ -3903,7 +3928,12 @@ gUnk_08DD6DB0:: @ 08DD6DB0 .4byte gUnk_08DD6DAB .incbin "baserom.gba", 0xDD6DEB, 0x0000001 bgmSecretCastleEntrance_track4:: @ 08DD6DEC +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0xEE23FF, 0x0000008 +.else .incbin "baserom.gba", 0xDD6DEC, 0x0000008 +.endif gUnk_08DD6DF4:: @ 08DD6DF4 .incbin "baserom.gba", 0xDD6DF4, 0x0000017 gUnk_08DD6E0B:: @ 08DD6E0B @@ -3947,12 +3977,19 @@ gUnk_08DD6ECD:: @ 08DD6ECD .incbin "baserom.gba", 0xDD6ECD, 0x00000B8 .4byte gUnk_08DD6ECD .incbin "baserom.gba", 0xDD6F89, 0x0000001 + bgmSecretCastleEntrance_track7:: @ 08DD6F8A +.ifdef EU + .incbin "baserom_eu.gba", 0xEE259D, 0x000003B @TODO pointers inside +.else .incbin "baserom.gba", 0xDD6F8A, 0x0000003 gUnk_08DD6F8D:: @ 08DD6F8D .incbin "baserom.gba", 0xDD6F8D, 0x0000030 .4byte gUnk_08DD6F8D .incbin "baserom.gba", 0xDD6FC1, 0x0000003 +.endif + + bgmSecretCastleEntrance:: @ 08DD6FC4 sound_header 8 0 0 0xbc gUnk_08A07394 bgmSecretCastleEntrance_track0 bgmSecretCastleEntrance_track1 bgmSecretCastleEntrance_track2 bgmSecretCastleEntrance_track3 bgmSecretCastleEntrance_track4 bgmSecretCastleEntrance_track5 bgmSecretCastleEntrance_track6 bgmSecretCastleEntrance_track7 @@ -6020,11 +6057,19 @@ bgmDiggingCave:: @ 08DDC394 sound_header 6 0 0 0xb2 gUnk_08A0C944 bgmDiggingCave_track0 bgmDiggingCave_track1 bgmDiggingCave_track2 bgmDiggingCave_track3 bgmDiggingCave_track4 bgmDiggingCave_track5 bgmSwiftbladeDojo_track0:: @ 08DDC3B4 +.ifdef EU + .incbin "baserom_eu.gba", 0xEE79C8, 0x000002B @TODO pointers inside +.else .incbin "baserom.gba", 0xDDC3B4, 0x000000B gUnk_08DDC3BF:: @ 08DDC3BF .incbin "baserom.gba", 0xDDC3BF, 0x000001E .4byte gUnk_08DDC3BF .incbin "baserom.gba", 0xDDC3E1, 0x0000001 +.endif + +.ifdef EU + .incbin "baserom_eu.gba", 0xEE79F3, 0x000009D @TODO pointers inside +.else bgmSwiftbladeDojo_track1:: @ 08DDC3E2 .incbin "baserom.gba", 0xDDC3E2, 0x0000007 gUnk_08DDC3E9:: @ 08DDC3E9 @@ -6043,8 +6088,14 @@ gUnk_08DDC423:: @ 08DDC423 .incbin "baserom.gba", 0xDDC423, 0x000008C .4byte gUnk_08DDC423 .incbin "baserom.gba", 0xDDC4B3, 0x0000001 +.endif + bgmSwiftbladeDojo:: @ 08DDC4B4 +.ifdef EU + .incbin "baserom_eu.gba",0xEE7A90, 0x0000010 @TODO pointers inside +.else sound_header 4 0 0 0x9e gUnk_08A0CF44 bgmSwiftbladeDojo_track0 bgmSwiftbladeDojo_track1 bgmSwiftbladeDojo_track2 bgmSwiftbladeDojo_track3 +.endif bgmMinishCap_track0:: @ 08DDC4CC .incbin "baserom.gba", 0xDDC4CC, 0x000000B @@ -7090,6 +7141,9 @@ gUnk_08DDEBF3:: @ 08DDEBF3 bgmWindRuins:: @ 08DDEC38 sound_header 7 0 0 0xa8 gUnk_08A0F014 bgmWindRuins_track0 bgmWindRuins_track1 bgmWindRuins_track2 bgmWindRuins_track3 bgmWindRuins_track4 bgmWindRuins_track5 bgmWindRuins_track6 +.ifdef EU + .incbin "baserom_eu.gba", 0xEEA230, 0x00000DC @TODO pointers inside +.else bgmLearnScroll_track0:: @ 08DDEC5C .incbin "baserom.gba", 0xDDEC5C, 0x000000C gUnk_08DDEC68:: @ 08DDEC68 @@ -7116,8 +7170,14 @@ gUnk_08DDECDA:: @ 08DDECDA .incbin "baserom.gba", 0xDDECDA, 0x000008C .4byte gUnk_08DDECDA .incbin "baserom.gba", 0xDDED6A, 0x0000002 +.endif + bgmLearnScroll:: @ 08DDED6C +.ifdef EU + .incbin "baserom_eu.gba", 0xEEA30C, 0x0000014 @TODO pointers inside +.else sound_header 5 0 0 0x9e gUnk_08A0CF44 bgmLearnScroll_track0 bgmLearnScroll_track1 bgmLearnScroll_track2 bgmLearnScroll_track3 bgmLearnScroll_track4 +.endif bgmEzloGet_track0:: @ 08DDED88 .incbin "baserom.gba", 0xDDED88, 0x0000026 @@ -7218,7 +7278,11 @@ sfxSecretBig_track0:: @ 08DDF1A8 sfxSecretBig_track1:: @ 08DDF1CF .incbin "baserom.gba", 0xDDF1CF, 0x0000025 sfxSecretBig:: @ 08DDF1F4 +.ifdef EU + sound_header 2 0 0xc0 0 gUnk_08A1004C sfxSecretBig_track0 sfxSecretBig_track1 +.else sound_header 2 0 0xd0 0 gUnk_08A1004C sfxSecretBig_track0 sfxSecretBig_track1 +.endif sfxMetalClink_track0:: @ 08DDF204 .incbin "baserom.gba", 0xDDF204, 0x0000018 @@ -7672,7 +7736,11 @@ sfxRemSleep:: @ 08DDFDA8 sfxTaskComplete_track0:: @ 08DDFDB4 .incbin "baserom.gba", 0xDDFDB4, 0x0000020 sfxTaskComplete:: @ 08DDFDD4 +.ifdef EU + sound_header 1 0 0xc0 0 gUnk_08A104E4 sfxTaskComplete_track0 +.else sound_header 1 0 0xb0 0 gUnk_08A104E4 sfxTaskComplete_track0 +.endif sfxKeyAppear_track0:: @ 08DDFDE0 .incbin "baserom.gba", 0xDDFDE0, 0x0000034 @@ -7685,7 +7753,12 @@ sfxCF:: @ 08DDFE30 sound_header 1 0 0x48 0 gUnk_08A10514 sfxCF_track0 sfxD0_track0:: @ 08DDFE3C +.ifdef EU + @ TODO only small differences + .incbin "baserom_eu.gba", 0xEEB3D4, 0x0000010 +.else .incbin "baserom.gba", 0xDDFE3C, 0x0000010 +.endif sfxD0:: @ 08DDFE4C sound_header 1 0 0x48 0 gUnk_08A10520 sfxD0_track0 diff --git a/data/sprite_table.s b/data/sprite_table.s index eee54c38..1b549c3d 100644 --- a/data/sprite_table.s +++ b/data/sprite_table.s @@ -8,8 +8,11 @@ gUnk_089FB770:: @ 089FB770 .byte 00, 0x0d, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 gUnk_089FB780:: @ 089FB780 +.ifdef EU + .incbin "baserom_eu.gba", 0xB07090, 0x0000F44 +.else .incbin "baserom.gba", 0x9FB780, 0x0000F44 - +.endif @ More sprites in demo .ifdef DEMO .incbin "baserom_demo.gba", 0x9FD0F4, 0x984c diff --git a/data/strings.s b/data/strings.s index 2bc41268..ff241c98 100644 --- a/data/strings.s +++ b/data/strings.s @@ -4,9 +4,28 @@ .section .rodata .align 2 +@ TODO use tmc_strings to extract strings for other variants + gUnk_089B1D90:: @ 089B1D90 .ifdef JP .incbin "baserom_jp.gba", 0x9B1A30, 0x2BCC0 +.else +.ifdef EU +.incbin "baserom_eu.gba", 0x9AEB60, 0x00488C0 + +gUnk_089F7420:: +.incbin "baserom_eu.gba", 0x9F7420, 0x0047A90 + +gUnk_08A3EEB0:: +.incbin "baserom_eu.gba", 0xA3EEB0, 0x0042FC0 + +gUnk_08A81E70:: +.incbin "baserom_eu.gba", 0xA81E70, 0x0041930 + +gUnk_08AC37A0:: +.incbin "baserom_eu.gba", 0xAC37A0, 0x00438E0 + .else .incbin "translations/USA.bin" .endif +.endif diff --git a/data/tileset_headers.s b/data/tileset_headers.s index abcfff54..0ad27038 100755 --- a/data/tileset_headers.s +++ b/data/tileset_headers.s @@ -20,8 +20,13 @@ gTileset_MinishWoods_0:: @ 08100CF4 tileset_palette_set 28, 1 gTileset_MinishWoods_1:: @ 08100D24 +.ifdef EU + tileset_tiles 0xC3BE4-0x4, 0x6000000, 0x2000, 1 + tileset_tiles 0xC4BFC-0x4, 0x6008000, 0x2000, 1 +.else tileset_tiles 0xC3BE4, 0x6000000, 0x2000, 1 tileset_tiles 0xC4BFC, 0x6008000, 0x2000, 1 +.endif tileset_palette_set 21, 1 gAreaTilesets_MinishWoods:: @ 08100D48 @@ -56,51 +61,90 @@ gAreaTilesets_Ruins:: @ 08100DE8 .4byte gAreaTileset_Ruins_0 gAreaTileset_HyruleTown_0:: @ 08100DEC +.ifdef EU + tileset_tiles 0x2DCAC-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x302CC-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x32760-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x2DCAC, 0x6000000, 0x4000, 1 tileset_tiles 0x302CC, 0x6004000, 0x4000, 1 tileset_tiles 0x32760, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 27, 1 gAreaTilesets_HyruleTown:: @ 08100E1C .4byte gAreaTileset_HyruleTown_0 gAreaTileset_FestivalTown_0:: @ 08100E20 +.ifdef EU + tileset_tiles 0x3467C-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x36264-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x386F8-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x3467C, 0x6000000, 0x4000, 1 tileset_tiles 0x36264, 0x6004000, 0x4000, 1 tileset_tiles 0x386F8, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 170, 1 gAreaTilesets_FestivalTown:: @ 08100E50 .4byte gAreaTileset_FestivalTown_0 gAreaTileset_MtCrenel_0:: @ 08100E54 +.ifdef EU + tileset_tiles 0x3D02C-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x3F944-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x41E84-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x3D02C, 0x6000000, 0x4000, 1 tileset_tiles 0x3F944, 0x6004000, 0x4000, 1 tileset_tiles 0x41E84, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 30, 1 gAreaTilesets_MtCrenel:: @ 08100E84 .4byte gAreaTileset_MtCrenel_0 gAreaTileset_HyruleField_0:: @ 08100E88 +.ifdef EU + tileset_tiles 0x49964-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x4C134-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x4EA0C-0x4, 0x6008000, 0x4000, 1 + tileset_tiles 0x60F68-0x4, 0x600F000, 0x800, 1 +.else tileset_tiles 0x49964, 0x6000000, 0x4000, 1 tileset_tiles 0x4C134, 0x6004000, 0x4000, 1 tileset_tiles 0x4EA0C, 0x6008000, 0x4000, 1 tileset_tiles 0x60F68, 0x600F000, 0x800, 1 +.endif tileset_palette_set 16, 1 gAreaTileset_HyruleField_1:: @ 08100EC4 +.ifdef EU + tileset_tiles 0x569D0-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x59078-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x5B950-0x4, 0x6008000, 0x4000, 1 + tileset_tiles 0x60F68-0x4, 0x600F000, 0x800, 1 +.else tileset_tiles 0x569D0, 0x6000000, 0x4000, 1 tileset_tiles 0x59078, 0x6004000, 0x4000, 1 tileset_tiles 0x5B950, 0x6008000, 0x4000, 1 tileset_tiles 0x60F68, 0x600F000, 0x800, 1 +.endif tileset_palette_set 67, 1 gAreaTileset_HyruleField_2:: @ 08100F00 +.ifdef EU + tileset_tiles 0x50844-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x52A70-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x55348-0x4, 0x6008000, 0x4000, 1 + tileset_tiles 0x60F68-0x4, 0x600F000, 0x800, 1 +.else tileset_tiles 0x50844, 0x6000000, 0x4000, 1 tileset_tiles 0x52A70, 0x6004000, 0x4000, 1 tileset_tiles 0x55348, 0x6008000, 0x4000, 1 tileset_tiles 0x60F68, 0x600F000, 0x800, 1 +.endif tileset_palette_set 46, 1 gAreaTilesets_HyruleField:: @ 08100F3C @@ -109,86 +153,148 @@ gAreaTilesets_HyruleField:: @ 08100F3C .4byte gAreaTileset_HyruleField_2 gAreaTileset_CastleGarden_0:: @ 08100F48 +.ifdef EU + tileset_tiles 0x66C28-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x68AD8-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x6A7C0-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x66C28, 0x6000000, 0x4000, 1 tileset_tiles 0x68AD8, 0x6004000, 0x4000, 1 tileset_tiles 0x6A7C0, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 31, 1 gAreaTilesets_CastleGarden:: @ 08100F78 .4byte gAreaTileset_CastleGarden_0 gAreaTileset_CloudTops_0:: @ 08100F7C +.ifdef EU + tileset_tiles 0x6EA9C-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x701BC-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x71A14-0x4, 0x6008000, 0x4000, 1 + tileset_tiles 0x77194-0x4, 0x600F000, 0x800, 1 +.else tileset_tiles 0x6EA9C, 0x6000000, 0x4000, 1 tileset_tiles 0x701BC, 0x6004000, 0x4000, 1 tileset_tiles 0x71A14, 0x6008000, 0x4000, 1 tileset_tiles 0x77194, 0x600F000, 0x800, 1 +.endif tileset_palette_set 32, 1 gAreaTilesets_CloudTops:: @ 08100FB8 .4byte gAreaTileset_CloudTops_0 gAreaTileset_RoyalValley_0:: @ 08100FBC +.ifdef EU + tileset_tiles 0x773A8-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x79588-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x7B084-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x773A8, 0x6000000, 0x4000, 1 tileset_tiles 0x79588, 0x6004000, 0x4000, 1 tileset_tiles 0x7B084, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 38, 1 gAreaTilesets_RoyalValley:: @ 08100FEC .4byte gAreaTileset_RoyalValley_0 gAreaTileset_VeilFalls_0:: @ 08100FF0 +.ifdef EU + tileset_tiles 0x7FA54-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x81D54-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x842A8-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x7FA54, 0x6000000, 0x4000, 1 tileset_tiles 0x81D54, 0x6004000, 0x4000, 1 tileset_tiles 0x842A8, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 44, 1 gAreaTilesets_VeilFalls:: @ 08101020 .4byte gAreaTileset_VeilFalls_0 gAreaTileset_VeilFallsTop_0:: @ 08101024 +.ifdef EU + tileset_tiles 0x7FA54-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x81D54-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x86984-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x7FA54, 0x6000000, 0x4000, 1 tileset_tiles 0x81D54, 0x6004000, 0x4000, 1 tileset_tiles 0x86984, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 44, 1 gAreaTilesets_VeilFallsTop:: @ 08101054 .4byte gAreaTileset_VeilFallsTop_0 gAreaTileset_Beanstalks_0:: @ 08101058 +.ifdef EU + tileset_tiles 0x88188-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x89218-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x89E04-0x4, 0x6008000, 0x4000, 1 + tileset_tiles 0x8B9A4-0x4, 0x600F000, 0x800, 1 +.else tileset_tiles 0x88188, 0x6000000, 0x4000, 1 tileset_tiles 0x89218, 0x6004000, 0x4000, 1 tileset_tiles 0x89E04, 0x6008000, 0x4000, 1 tileset_tiles 0x8B9A4, 0x600F000, 0x800, 1 +.endif tileset_palette_set 41, 1 gAreaTilesets_Beanstalks:: @ 08101094 .4byte gAreaTileset_Beanstalks_0 gAreaTileset_CrenelCaves_0:: @ 08101098 +.ifdef EU + tileset_tiles 0x8D160-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x8FAF0-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x92434-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x8D160, 0x6000000, 0x4000, 1 tileset_tiles 0x8FAF0, 0x6004000, 0x4000, 1 tileset_tiles 0x92434, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 62, 1 gAreaTilesets_CrenelCaves:: @ 081010C8 .4byte gAreaTileset_CrenelCaves_0 gAreaTileset_GreatFairies_0:: @ 081010CC +.ifdef EU + tileset_tiles 0x9A388-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x9C1A4-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x9D704-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x9A388, 0x6000000, 0x4000, 1 tileset_tiles 0x9C1A4, 0x6004000, 0x4000, 1 tileset_tiles 0x9D704, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 92, 1 gAreaTileset_GreatFairies_1:: @ 081010FC +.ifdef EU + tileset_tiles 0x9A388-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x9C1A4-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x9D704-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x9A388, 0x6000000, 0x4000, 1 tileset_tiles 0x9C1A4, 0x6004000, 0x4000, 1 tileset_tiles 0x9D704, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 102, 1 gAreaTileset_GreatFairies_2:: @ 0810112C +.ifdef EU + tileset_tiles 0x9A388-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x9C1A4-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x9D704-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x9A388, 0x6000000, 0x4000, 1 tileset_tiles 0x9C1A4, 0x6004000, 0x4000, 1 tileset_tiles 0x9D704, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 103, 1 gAreaTilesets_GreatFairies:: @ 0810115C @@ -197,55 +303,93 @@ gAreaTilesets_GreatFairies:: @ 0810115C .4byte gAreaTileset_GreatFairies_2 gAreaTileset_LakeWoodsCave_0:: @ 08101168 + tileset_tiles 0x3D0, 0x6000000, 0x4000, 1 tileset_tiles 0x3024, 0x6004000, 0x4000, 1 tileset_tiles 0x5614, 0x6008000, 0x4000, 1 +.ifdef EU + tileset_tiles 0xC3BE4-0x4, 0x6001000, 0x2000, 1 + tileset_tiles 0xC4BFC-0x4, 0x6009000, 0x2000, 1 +.else tileset_tiles 0xC3BE4, 0x6001000, 0x2000, 1 tileset_tiles 0xC4BFC, 0x6009000, 0x2000, 1 +.endif tileset_palette_set 21, 1 gAreaTilesets_LakeWoodsCave:: @ 081011B0 .4byte gAreaTileset_LakeWoodsCave_0 gAreaTileset_HyruleDigCaves_0:: @ 081011B4 +.ifdef EU + tileset_tiles 0x2DCAC-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x302CC-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x32760-0x4, 0x6008000, 0x4000, 1 + tileset_tiles 0xC5600-0x4, 0x6001000, 0x2000, 1 + tileset_tiles 0xC6420-0x4, 0x6009000, 0x2000, 1 +.else tileset_tiles 0x2DCAC, 0x6000000, 0x4000, 1 tileset_tiles 0x302CC, 0x6004000, 0x4000, 1 tileset_tiles 0x32760, 0x6008000, 0x4000, 1 tileset_tiles 0xC5600, 0x6001000, 0x2000, 1 tileset_tiles 0xC6420, 0x6009000, 0x2000, 1 +.endif tileset_palette_set 54, 1 gAreaTilesets_HyruleDigCaves:: @ 081011FC .4byte gAreaTileset_HyruleDigCaves_0 gAreaTileset_DigCaves1_0:: @ 08101200 +.ifdef EU + tileset_tiles 0x49964-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x4C134-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x4EA0C-0x4, 0x6008000, 0x4000, 1 + tileset_tiles 0xC8B0C-0x4, 0x6001000, 0x2000, 1 + tileset_tiles 0xC99EC-0x4, 0x6009000, 0x2000, 1 +.else tileset_tiles 0x49964, 0x6000000, 0x4000, 1 tileset_tiles 0x4C134, 0x6004000, 0x4000, 1 tileset_tiles 0x4EA0C, 0x6008000, 0x4000, 1 tileset_tiles 0xC8B0C, 0x6001000, 0x2000, 1 tileset_tiles 0xC99EC, 0x6009000, 0x2000, 1 +.endif tileset_palette_set 85, 1 gAreaTilesets_DigCaves1:: @ 08101248 .4byte gAreaTileset_DigCaves1_0 gAreaTileset_CrenelDigCave_0:: @ 0810124C +.ifdef EU + tileset_tiles 0x3D02C-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x3F944-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x41E84-0x4, 0x6008000, 0x4000, 1 + tileset_tiles 0xC6DF8-0x4, 0x6001000, 0x2000, 1 + tileset_tiles 0xC7F60-0x4, 0x6009000, 0x2000, 1 +.else tileset_tiles 0x3D02C, 0x6000000, 0x4000, 1 tileset_tiles 0x3F944, 0x6004000, 0x4000, 1 tileset_tiles 0x41E84, 0x6008000, 0x4000, 1 tileset_tiles 0xC6DF8, 0x6001000, 0x2000, 1 tileset_tiles 0xC7F60, 0x6009000, 0x2000, 1 +.endif tileset_palette_set 33, 1 gAreaTilesets_CrenelDigCave:: @ 08101294 .4byte gAreaTileset_CrenelDigCave_0 gAreaTileset_VeilFallsDigCave_0:: @ 08101298 +.ifdef EU + tileset_tiles 0x7FA54-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x81D54-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x842A8-0x4, 0x6008000, 0x4000, 1 + tileset_tiles 0xC6DF8-0x4, 0x6001000, 0x2000, 1 + tileset_tiles 0xC7F60-0x4, 0x6009000, 0x2000, 1 +.else tileset_tiles 0x7FA54, 0x6000000, 0x4000, 1 tileset_tiles 0x81D54, 0x6004000, 0x4000, 1 tileset_tiles 0x842A8, 0x6008000, 0x4000, 1 tileset_tiles 0xC6DF8, 0x6001000, 0x2000, 1 tileset_tiles 0xC7F60, 0x6009000, 0x2000, 1 +.endif tileset_palette_set 99, 1 gAreaTilesets_VeilFallsDigCave:: @ 081012E0 @@ -255,8 +399,13 @@ gAreaTileset_CastorWildsDigCave_0:: @ 081012E4 tileset_tiles 0x16DB8, 0x6000000, 0x4000, 1 tileset_tiles 0x199CC, 0x6004000, 0x4000, 1 tileset_tiles 0x1C158, 0x6008000, 0x4000, 1 +.ifdef EU + tileset_tiles 0xCA4C0-0x4, 0x6001000, 0x2000, 1 + tileset_tiles 0xCB858-0x4, 0x6009000, 0x2000, 1 +.else tileset_tiles 0xCA4C0, 0x6001000, 0x2000, 1 tileset_tiles 0xCB858, 0x6009000, 0x2000, 1 +.endif tileset_palette_set 100, 1 gAreaTilesets_CastorWildsDigCave:: @ 0810132C @@ -266,8 +415,13 @@ gAreaTileset_OuterFortressOfWinds_0:: @ 08101330 tileset_tiles 0x16DB8, 0x6000000, 0x4000, 1 tileset_tiles 0x199CC, 0x6004000, 0x4000, 1 tileset_tiles 0x1C158, 0x6008000, 0x4000, 1 +.ifdef EU + tileset_tiles 0xCA4C0-0x4, 0x6001000, 0x2000, 1 + tileset_tiles 0xCB858-0x4, 0x6009000, 0x2000, 1 +.else tileset_tiles 0xCA4C0, 0x6001000, 0x2000, 1 tileset_tiles 0xCB858, 0x6009000, 0x2000, 1 +.endif tileset_palette_set 167, 1 gAreaTilesets_OuterFortressOfWinds:: @ 08101378 @@ -277,23 +431,41 @@ gAreaTileset_HyliaDigCaves_0:: @ 0810137C tileset_tiles 0xC634, 0x6000000, 0x4000, 1 tileset_tiles 0xE640, 0x6004000, 0x4000, 1 tileset_tiles 0x10C70, 0x6008000, 0x4000, 1 + +.ifdef EU + tileset_tiles 0xCC334-0x4, 0x6001000, 0x2000, 1 + tileset_tiles 0xCCF64-0x4, 0x6009000, 0x2000, 1 +.else tileset_tiles 0xCC334, 0x6001000, 0x2000, 1 tileset_tiles 0xCCF64, 0x6009000, 0x2000, 1 +.endif tileset_palette_set 20, 1 gAreaTilesets_HyliaDigCaves:: @ 081013C4 .4byte gAreaTileset_HyliaDigCaves_0 gAreaTileset_MinishVillage_0:: @ 081013C8 +.ifdef EU + tileset_tiles 0xD39BC-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0xD5434-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0xD76F4-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0xD39BC, 0x6000000, 0x4000, 1 tileset_tiles 0xD5434, 0x6004000, 0x4000, 1 tileset_tiles 0xD76F4, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 14, 1 gAreaTileset_MinishVillage_1:: @ 081013F8 +.ifdef EU + tileset_tiles 0xDCC34-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0xDDFCC-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0xE028C-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0xDCC34, 0x6000000, 0x4000, 1 tileset_tiles 0xDDFCC, 0x6004000, 0x4000, 1 tileset_tiles 0xE028C, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 25, 1 gAreaTilesets_MinishVillage:: @ 08101428 @@ -301,27 +473,48 @@ gAreaTilesets_MinishVillage:: @ 08101428 .4byte gAreaTileset_MinishVillage_1 gAreaTileset_MelarisMine_0:: @ 08101430 +.ifdef EU + tileset_tiles 0xE28EC-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0xE4D74-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0xE6994-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0xE28EC, 0x6000000, 0x4000, 1 tileset_tiles 0xE4D74, 0x6004000, 0x4000, 1 tileset_tiles 0xE6994, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 61, 1 gAreaTilesets_MelarisMine:: @ 08101460 .4byte gAreaTileset_MelarisMine_0 gAreaTileset_MinishPaths1_0:: @ 08101464 +.ifdef EU + tileset_tiles 0xEB00C-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0xECB90-0x4, 0x6004000, 0x4000, 1 +.else tileset_tiles 0xEB00C, 0x6000000, 0x4000, 1 tileset_tiles 0xECB90, 0x6004000, 0x4000, 1 +.endif tileset_palette_set 18, 1 gAreaTileset_MinishPaths1_1:: @ 08101488 +.ifdef EU + tileset_tiles 0xEB00C-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0xECB90-0x4, 0x6004000, 0x4000, 1 +.else tileset_tiles 0xEB00C, 0x6000000, 0x4000, 1 tileset_tiles 0xECB90, 0x6004000, 0x4000, 1 +.endif tileset_palette_set 63, 1 gAreaTileset_MinishPaths1_2:: @ 081014AC +.ifdef EU + tileset_tiles 0xEB00C-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0xECB90-0x4, 0x6004000, 0x4000, 1 +.else tileset_tiles 0xEB00C, 0x6000000, 0x4000, 1 tileset_tiles 0xECB90, 0x6004000, 0x4000, 1 +.endif tileset_palette_set 64, 1 gAreaTilesets_MinishPaths1:: @ 081014D0 @@ -330,18 +523,34 @@ gAreaTilesets_MinishPaths1:: @ 081014D0 .4byte gAreaTileset_MinishPaths1_2 gAreaTileset_CrenelMinishPaths_0:: @ 081014DC +.ifdef EU + tileset_tiles 0xEFE04-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0xF1644-0x4, 0x6004000, 0x4000, 1 +.else tileset_tiles 0xEFE04, 0x6000000, 0x4000, 1 tileset_tiles 0xF1644, 0x6004000, 0x4000, 1 +.endif tileset_palette_set 65, 1 gAreaTileset_CrenelMinishPaths_1:: @ 08101500 +.ifdef EU + tileset_tiles 0xF2E74-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0xF4160-0x4, 0x6004000, 0x4000, 1 +.else tileset_tiles 0xF2E74, 0x6000000, 0x4000, 1 tileset_tiles 0xF4160, 0x6004000, 0x4000, 1 +.endif tileset_palette_set 66, 1 +.ifdef EU +gAreaTileset_CrenelMinishPaths_2:: @ 08101524-0x4 + tileset_tiles 0xF2E74-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0xF4160-0x4, 0x6004000, 0x4000, 1 +.else gAreaTileset_CrenelMinishPaths_2:: @ 08101524 tileset_tiles 0xF2E74, 0x6000000, 0x4000, 1 tileset_tiles 0xF4160, 0x6004000, 0x4000, 1 +.endif tileset_palette_set 93, 1 gAreaTilesets_CrenelMinishPaths:: @ 08101548 @@ -350,83 +559,163 @@ gAreaTilesets_CrenelMinishPaths:: @ 08101548 .4byte gAreaTileset_CrenelMinishPaths_2 gAreaTileset_MinishHouseInteriors_0:: @ 08101554 +.ifdef EU + tileset_tiles 0x13A218-0x4, 0x6000000, 0x8740, 1 +.else tileset_tiles 0x13A218, 0x6000000, 0x8740, 1 +.endif tileset_palette_set 68, 1 gAreaTileset_MinishHouseInteriors_1:: @ 0810156C +.ifdef EU + tileset_tiles 0x13F620-0x4, 0x6000000, 0x7540, 1 +.else tileset_tiles 0x13F620, 0x6000000, 0x7540, 1 +.endif tileset_palette_set 69, 1 gAreaTileset_MinishHouseInteriors_2:: @ 08101584 +.ifdef EU + tileset_tiles 0x1427B8-0x4, 0x6000000, 0x4B40, 1 +.else tileset_tiles 0x1427B8, 0x6000000, 0x4B40, 1 +.endif tileset_palette_set 70, 1 gAreaTileset_MinishHouseInteriors_3:: @ 0810159C +.ifdef EU + tileset_tiles 0x14506C-0x4, 0x6000000, 0x4A40, 1 +.else tileset_tiles 0x14506C, 0x6000000, 0x4A40, 1 +.endif tileset_palette_set 71, 1 gAreaTileset_MinishHouseInteriors_4:: @ 081015B4 +.ifdef EU + tileset_tiles 0x14789C-0x4, 0x6000000, 0x4980, 1 +.else tileset_tiles 0x14789C, 0x6000000, 0x4980, 1 +.endif tileset_palette_set 72, 1 gAreaTileset_MinishHouseInteriors_5:: @ 081015CC +.ifdef EU + tileset_tiles 0x149FC8-0x4, 0x6000000, 0x4D80, 1 +.else tileset_tiles 0x149FC8, 0x6000000, 0x4D80, 1 +.endif tileset_palette_set 73, 1 gAreaTileset_MinishHouseInteriors_6:: @ 081015E4 +.ifdef EU + tileset_tiles 0x14CD90-0x4, 0x6000000, 0x8E40, 1 +.else tileset_tiles 0x14CD90, 0x6000000, 0x8E40, 1 +.endif tileset_palette_set 74, 1 gAreaTileset_MinishHouseInteriors_7:: @ 081015FC +.ifdef EU + tileset_tiles 0x152324-0x4, 0x6000000, 0x7E00, 1 +.else tileset_tiles 0x152324, 0x6000000, 0x7E00, 1 +.endif tileset_palette_set 75, 1 gAreaTileset_MinishHouseInteriors_8:: @ 08101614 +.ifdef EU + tileset_tiles 0x1562EC-0x4, 0x6000000, 0x9F40, 1 +.else tileset_tiles 0x1562EC, 0x6000000, 0x9F40, 1 +.endif tileset_palette_set 76, 1 gAreaTileset_MinishHouseInteriors_9:: @ 0810162C +.ifdef EU + tileset_tiles 0x15A834-0x4, 0x6000000, 0x7980, 1 +.else tileset_tiles 0x15A834, 0x6000000, 0x7980, 1 +.endif tileset_palette_set 86, 1 gAreaTileset_MinishHouseInteriors_10:: @ 08101644 +.ifdef EU + tileset_tiles 0x15DAE0-0x4, 0x6000000, 0x7B40, 1 +.else tileset_tiles 0x15DAE0, 0x6000000, 0x7B40, 1 +.endif tileset_palette_set 87, 1 gAreaTileset_MinishHouseInteriors_11:: @ 0810165C +.ifdef EU + tileset_tiles 0x16100C-0x4, 0x6000000, 0x69C0, 1 +.else tileset_tiles 0x16100C, 0x6000000, 0x69C0, 1 +.endif tileset_palette_set 88, 1 gAreaTileset_MinishHouseInteriors_12:: @ 08101674 +.ifdef EU + tileset_tiles 0x169738-0x4, 0x6000000, 0x5D80, 1 +.else tileset_tiles 0x169738, 0x6000000, 0x5D80, 1 +.endif tileset_palette_set 77, 1 gAreaTileset_MinishHouseInteriors_13:: @ 0810168C +.ifdef EU + tileset_tiles 0x16CB98-0x4, 0x6000000, 0x5CC0, 1 +.else tileset_tiles 0x16CB98, 0x6000000, 0x5CC0, 1 +.endif tileset_palette_set 78, 1 gAreaTileset_MinishHouseInteriors_14:: @ 081016A4 +.ifdef EU + tileset_tiles 0x16FEE8-0x4, 0x6000000, 0x5B00, 1 +.else tileset_tiles 0x16FEE8, 0x6000000, 0x5B00, 1 +.endif tileset_palette_set 79, 1 gAreaTileset_MinishHouseInteriors_15:: @ 081016BC +.ifdef EU + tileset_tiles 0x1732E8-0x4, 0x6000000, 0x5240, 1 +.else tileset_tiles 0x1732E8, 0x6000000, 0x5240, 1 +.endif tileset_palette_set 80, 1 gAreaTileset_MinishHouseInteriors_16:: @ 081016D4 +.ifdef EU + tileset_tiles 0x175638-0x4, 0x6000000, 0x5C40, 1 +.else tileset_tiles 0x175638, 0x6000000, 0x5C40, 1 +.endif tileset_palette_set 81, 1 gAreaTileset_MinishHouseInteriors_17:: @ 081016EC +.ifdef EU + tileset_tiles 0x178B08-0x4, 0x6000000, 0x5740, 1 +.else tileset_tiles 0x178B08, 0x6000000, 0x5740, 1 +.endif tileset_palette_set 82, 1 gAreaTileset_MinishHouseInteriors_18:: @ 08101704 +.ifdef EU + tileset_tiles 0x17B854-0x4, 0x6000000, 0x6180, 1 +.else tileset_tiles 0x17B854, 0x6000000, 0x6180, 1 +.endif tileset_palette_set 83, 1 gAreaTileset_MinishHouseInteriors_19:: @ 0810171C +.ifdef EU + tileset_tiles 0x17EE9C-0x4, 0x6000000, 0x5C80, 1 +.else tileset_tiles 0x17EE9C, 0x6000000, 0x5C80, 1 +.endif tileset_palette_set 84, 1 gAreaTilesets_MinishHouseInteriors:: @ 08101734 @@ -452,39 +741,75 @@ gAreaTilesets_MinishHouseInteriors:: @ 08101734 .4byte gAreaTileset_MinishHouseInteriors_19 gAreaTileset_TownMinishHoles_0:: @ 08101784 +.ifdef EU + tileset_tiles 0x1823BC-0x4, 0x6000000, 0x6100, 1 +.else tileset_tiles 0x1823BC, 0x6000000, 0x6100, 1 +.endif tileset_palette_set 115, 1 gAreaTileset_TownMinishHoles_1:: @ 0810179C +.ifdef EU + tileset_tiles 0x184B10-0x4, 0x6000000, 0x7DC0, 1 +.else tileset_tiles 0x184B10, 0x6000000, 0x7DC0, 1 +.endif tileset_palette_set 116, 1 gAreaTileset_TownMinishHoles_2:: @ 081017B4 +.ifdef EU + tileset_tiles 0x187A3C-0x4, 0x6000000, 0x70C0, 1 +.else tileset_tiles 0x187A3C, 0x6000000, 0x70C0, 1 +.endif tileset_palette_set 117, 1 gAreaTileset_TownMinishHoles_3:: @ 081017CC +.ifdef EU + tileset_tiles 0x18A5D4-0x4, 0x6000000, 0x7E40, 1 +.else tileset_tiles 0x18A5D4, 0x6000000, 0x7E40, 1 +.endif tileset_palette_set 118, 1 gAreaTileset_TownMinishHoles_4:: @ 081017E4 +.ifdef EU + tileset_tiles 0x18D530-0x4, 0x6000000, 0x7240, 1 +.else tileset_tiles 0x18D530, 0x6000000, 0x7240, 1 +.endif tileset_palette_set 119, 1 gAreaTileset_TownMinishHoles_5:: @ 081017FC +.ifdef EU + tileset_tiles 0x18FF58-0x4, 0x6000000, 0x8900, 1 +.else tileset_tiles 0x18FF58, 0x6000000, 0x8900, 1 +.endif tileset_palette_set 129, 1 gAreaTileset_TownMinishHoles_6:: @ 08101814 +.ifdef EU + tileset_tiles 0x193CD4-0x4, 0x6000000, 0xBEC0, 1 +.else tileset_tiles 0x193CD4, 0x6000000, 0xBEC0, 1 +.endif tileset_palette_set 124, 1 gAreaTileset_TownMinishHoles_7:: @ 0810182C +.ifdef EU + tileset_tiles 0x197688-0x4, 0x6000000, 0xA480, 1 +.else tileset_tiles 0x197688, 0x6000000, 0xA480, 1 +.endif tileset_palette_set 123, 1 gAreaTileset_TownMinishHoles_8:: @ 08101844 +.ifdef EU + tileset_tiles 0x19C788-0x4, 0x6000000, 0xB0C0, 1 +.else tileset_tiles 0x19C788, 0x6000000, 0xB0C0, 1 +.endif tileset_palette_set 122, 1 gAreaTilesets_TownMinishHoles:: @ 0810185C @@ -499,30 +824,54 @@ gAreaTilesets_TownMinishHoles:: @ 0810185C .4byte gAreaTileset_TownMinishHoles_8 gAreaTileset_HouseInteriors1_0:: @ 08101880 +.ifdef EU + tileset_tiles 0xF8D18-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0xFAD04-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0xF7308-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0xF8D18, 0x6000000, 0x4000, 1 tileset_tiles 0xFAD04, 0x6004000, 0x4000, 1 tileset_tiles 0xF7308, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 51, 1 gAreaTilesets_HouseInteriors1:: @ 081018B0 .4byte gAreaTileset_HouseInteriors1_0 gAreaTileset_HouseInteriors2_0:: @ 081018B4 +.ifdef EU + tileset_tiles 0xFE38C-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x100940-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0xF7308-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0xFE38C, 0x6000000, 0x4000, 1 tileset_tiles 0x100940, 0x6004000, 0x4000, 1 tileset_tiles 0xF7308, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 52, 1 gAreaTileset_HouseInteriors2_1:: @ 081018E4 +.ifdef EU + tileset_tiles 0xFE38C-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x100940-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0xF7308-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0xFE38C, 0x6000000, 0x4000, 1 tileset_tiles 0x100940, 0x6004000, 0x4000, 1 tileset_tiles 0xF7308, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 168, 1 gAreaTileset_HouseInteriors2_2:: @ 08101914 +.ifdef EU + tileset_tiles 0xFE38C-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x100940-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0xF7308-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0xFE38C, 0x6000000, 0x4000, 1 tileset_tiles 0x100940, 0x6004000, 0x4000, 1 tileset_tiles 0xF7308, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 157, 1 gAreaTilesets_HouseInteriors2:: @ 08101944 @@ -531,66 +880,120 @@ gAreaTilesets_HouseInteriors2:: @ 08101944 .4byte gAreaTileset_HouseInteriors2_2 gAreaTileset_HouseInteriors4_0:: @ 08101950 +.ifdef EU + tileset_tiles 0x104044-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x1060C4-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0xF7308-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x104044, 0x6000000, 0x4000, 1 tileset_tiles 0x1060C4, 0x6004000, 0x4000, 1 tileset_tiles 0xF7308, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 89, 1 gAreaTilesets_HouseInteriors4:: @ 08101980 .4byte gAreaTileset_HouseInteriors4_0 gAreaTileset_HouseInteriors3_0:: @ 08101984 +.ifdef EU + tileset_tiles 0x10984C-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x10B930-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0xF7308-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x10984C, 0x6000000, 0x4000, 1 tileset_tiles 0x10B930, 0x6004000, 0x4000, 1 tileset_tiles 0xF7308, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 53, 1 gAreaTilesets_HouseInteriors3:: @ 081019B4 .4byte gAreaTileset_HouseInteriors3_0 gAreaTileset_TreeInteriors_0:: @ 081019B8 +.ifdef EU + tileset_tiles 0x10EC50-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x110A78-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0xF7308-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x10EC50, 0x6000000, 0x4000, 1 tileset_tiles 0x110A78, 0x6004000, 0x4000, 1 tileset_tiles 0xF7308, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 13, 1 gAreaTilesets_TreeInteriors:: @ 081019E8 .4byte gAreaTileset_TreeInteriors_0 gAreaTileset_Dojos_0:: @ 081019EC +.ifdef EU + tileset_tiles 0x11919C-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x11B020-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0xF7308-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x11919C, 0x6000000, 0x4000, 1 tileset_tiles 0x11B020, 0x6004000, 0x4000, 1 tileset_tiles 0xF7308, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 150, 1 gAreaTileset_Dojos_1:: @ 08101A1C +.ifdef EU + tileset_tiles 0x11919C-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x11B020-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0xF7308-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x11919C, 0x6000000, 0x4000, 1 tileset_tiles 0x11B020, 0x6004000, 0x4000, 1 tileset_tiles 0xF7308, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 149, 1 gAreaTileset_Dojos_2:: @ 08101A4C +.ifdef EU + tileset_tiles 0x11919C-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x11B020-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0xF7308-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x11919C, 0x6000000, 0x4000, 1 tileset_tiles 0x11B020, 0x6004000, 0x4000, 1 tileset_tiles 0xF7308, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 148, 1 gAreaTileset_Dojos_3:: @ 08101A7C +.ifdef EU + tileset_tiles 0x11919C-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x11B020-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0xF7308-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x11919C, 0x6000000, 0x4000, 1 tileset_tiles 0x11B020, 0x6004000, 0x4000, 1 tileset_tiles 0xF7308, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 146, 1 gAreaTileset_Dojos_4:: @ 08101AAC +.ifdef EU + tileset_tiles 0x11919C-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x11B020-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0xF7308-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x11919C, 0x6000000, 0x4000, 1 tileset_tiles 0x11B020, 0x6004000, 0x4000, 1 tileset_tiles 0xF7308, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 147, 1 gAreaTileset_Dojos_5:: @ 08101ADC +.ifdef EU + tileset_tiles 0x11919C-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x11B020-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0xF7308-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x11919C, 0x6000000, 0x4000, 1 tileset_tiles 0x11B020, 0x6004000, 0x4000, 1 tileset_tiles 0xF7308, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 45, 1 gAreaTilesets_Dojos:: @ 08101B0C @@ -602,33 +1005,63 @@ gAreaTilesets_Dojos:: @ 08101B0C .4byte gAreaTileset_Dojos_5 gAreaTileset_MinishCracks_0:: @ 08101B24 +.ifdef EU + tileset_tiles 0x113C98-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x115ECC-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0xF7308-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x113C98, 0x6000000, 0x4000, 1 tileset_tiles 0x115ECC, 0x6004000, 0x4000, 1 tileset_tiles 0xF7308, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 153, 1 gAreaTileset_MinishCracks_1:: @ 08101B54 +.ifdef EU + tileset_tiles 0x113C98-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x115ECC-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0xF7308-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x113C98, 0x6000000, 0x4000, 1 tileset_tiles 0x115ECC, 0x6004000, 0x4000, 1 tileset_tiles 0xF7308, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 152, 1 gAreaTileset_MinishCracks_2:: @ 08101B84 +.ifdef EU + tileset_tiles 0x113C98-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x115ECC-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0xF7308-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x113C98, 0x6000000, 0x4000, 1 tileset_tiles 0x115ECC, 0x6004000, 0x4000, 1 tileset_tiles 0xF7308, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 154, 1 gAreaTileset_MinishCracks_3:: @ 08101BB4 +.ifdef EU + tileset_tiles 0x113C98-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x115ECC-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0xF7308-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x113C98, 0x6000000, 0x4000, 1 tileset_tiles 0x115ECC, 0x6004000, 0x4000, 1 tileset_tiles 0xF7308, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 34, 1 gAreaTileset_MinishCracks_4:: @ 08101BE4 +.ifdef EU + tileset_tiles 0x113C98-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x115ECC-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0xF7308-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x113C98, 0x6000000, 0x4000, 1 tileset_tiles 0x115ECC, 0x6004000, 0x4000, 1 tileset_tiles 0xF7308, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 151, 1 gAreaTilesets_MinishCracks:: @ 08101C14 @@ -639,239 +1072,397 @@ gAreaTilesets_MinishCracks:: @ 08101C14 .4byte gAreaTileset_MinishCracks_4 gAreaTileset_ArmosInteriors_0:: @ 08101C28 +.ifdef EU + tileset_tiles 0xA0924-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0xA1AC0-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0xA36A4-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0xA0924, 0x6000000, 0x4000, 1 tileset_tiles 0xA1AC0, 0x6004000, 0x4000, 1 tileset_tiles 0xA36A4, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 110, 1 gAreaTilesets_ArmosInteriors:: @ 08101C58 .4byte gAreaTileset_ArmosInteriors_0 gAreaTileset_MinishRafters_0:: @ 08101C5C +.ifdef EU + tileset_tiles 0x11E2E4-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x11FCDC-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0xF7308-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x11E2E4, 0x6000000, 0x4000, 1 tileset_tiles 0x11FCDC, 0x6004000, 0x4000, 1 tileset_tiles 0xF7308, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 121, 1 gAreaTilesets_MinishRafters:: @ 08101C8C .4byte gAreaTileset_MinishRafters_0 gAreaTileset_GoronCave_0:: @ 08101C90 +.ifdef EU + tileset_tiles 0xA6900-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0xA8578-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0xAAA44-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0xA6900, 0x6000000, 0x4000, 1 tileset_tiles 0xA8578, 0x6004000, 0x4000, 1 tileset_tiles 0xAAA44, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 125, 1 gAreaTilesets_GoronCave:: @ 08101CC0 .4byte gAreaTileset_GoronCave_0 gAreaTileset_WindTribeTower_0:: @ 08101CC4 +.ifdef EU + tileset_tiles 0x121254-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x122F88-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0xF7308-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x121254, 0x6000000, 0x4000, 1 tileset_tiles 0x122F88, 0x6004000, 0x4000, 1 tileset_tiles 0xF7308, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 126, 1 gAreaTilesets_WindTribeTower:: @ 08101CF4 .4byte gAreaTileset_WindTribeTower_0 gAreaTileset_WindTribeTowerRoof_0:: @ 08101CF8 +.ifdef EU + tileset_tiles 0x126224-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x127B68-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x129CE0-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x126224, 0x6000000, 0x4000, 1 tileset_tiles 0x127B68, 0x6004000, 0x4000, 1 tileset_tiles 0x129CE0, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 127, 1 gAreaTilesets_WindTribeTowerRoof:: @ 08101D28 .4byte gAreaTileset_WindTribeTowerRoof_0 gAreaTileset_MinishCaves_0:: @ 08101D2C +.ifdef EU + tileset_tiles 0xB39E0-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0xB5B40-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0xB7D48-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0xB39E0, 0x6000000, 0x4000, 1 tileset_tiles 0xB5B40, 0x6004000, 0x4000, 1 tileset_tiles 0xB7D48, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 158, 1 gAreaTilesets_MinishCaves:: @ 08101D5C .4byte gAreaTileset_MinishCaves_0 gAreaTileset_CastleGardenMinishHoles_0:: @ 08101D60 +.ifdef EU + tileset_tiles 0xBC8F4-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0xBDCB8-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0xBEE54-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0xBC8F4, 0x6000000, 0x4000, 1 tileset_tiles 0xBDCB8, 0x6004000, 0x4000, 1 tileset_tiles 0xBEE54, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 159, 1 gAreaTilesets_CastleGardenMinishHoles:: @ 08101D90 .4byte gAreaTileset_CastleGardenMinishHoles_0 gAreaTileset_37_0:: @ 08101D94 +.ifdef EU + tileset_tiles 0xBC8F4-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0xBDCB8-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0xBEE54-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0xBC8F4, 0x6000000, 0x4000, 1 tileset_tiles 0xBDCB8, 0x6004000, 0x4000, 1 tileset_tiles 0xBEE54, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 160, 1 gAreaTilesets_37:: @ 08101DC4 .4byte gAreaTileset_37_0 gAreaTileset_EzloCutscene_0:: @ 08101DC8 +.ifdef EU + tileset_tiles 0x12BB70-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x12CD44-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0xF7308-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x12BB70, 0x6000000, 0x4000, 1 tileset_tiles 0x12CD44, 0x6004000, 0x4000, 1 tileset_tiles 0xF7308, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 161, 1 gAreaTilesets_EzloCutscene:: @ 08101DF8 .4byte gAreaTileset_EzloCutscene_0 gAreaTileset_HyruleTownUnderground_0:: @ 08101DFC +.ifdef EU + tileset_tiles 0x19FD10-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x1A1C8C-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x1A3BE0-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x19FD10, 0x6000000, 0x4000, 1 tileset_tiles 0x1A1C8C, 0x6004000, 0x4000, 1 tileset_tiles 0x1A3BE0, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 109, 1 gAreaTilesets_HyruleTownUnderground:: @ 08101E2C .4byte gAreaTileset_HyruleTownUnderground_0 gAreaTileset_SimonsSimulation_0:: @ 08101E30 +.ifdef EU + tileset_tiles 0x19FD10-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x1A1C8C-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x1A3BE0-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x19FD10, 0x6000000, 0x4000, 1 tileset_tiles 0x1A1C8C, 0x6004000, 0x4000, 1 tileset_tiles 0x1A3BE0, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 15, 1 gAreaTilesets_SimonsSimulation:: @ 08101E60 .4byte gAreaTileset_SimonsSimulation_0 gAreaTileset_40_0:: @ 08101E64 +.ifdef EU + tileset_tiles 0x19FD10-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x1A1C8C-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x1A3BE0-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x19FD10, 0x6000000, 0x4000, 1 tileset_tiles 0x1A1C8C, 0x6004000, 0x4000, 1 tileset_tiles 0x1A3BE0, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 15, 1 gAreaTilesets_40:: @ 08101E94 .4byte gAreaTileset_40_0 gAreaTileset_DeepwoodShrine_0:: @ 08101E98 +.ifdef EU + tileset_tiles 0x1AB5F4-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x1ADAE0-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x1B007C-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x1AB5F4, 0x6000000, 0x4000, 1 tileset_tiles 0x1ADAE0, 0x6004000, 0x4000, 1 tileset_tiles 0x1B007C, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 17, 1 gAreaTilesets_DeepwoodShrine:: @ 08101EC8 .4byte gAreaTileset_DeepwoodShrine_0 gAreaTileset_DeepwoodShrineBoss_0:: @ 08101ECC +.ifdef EU + tileset_tiles 0x1B68AC-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x1B7708-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x1B9668-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x1B68AC, 0x6000000, 0x4000, 1 tileset_tiles 0x1B7708, 0x6004000, 0x4000, 1 tileset_tiles 0x1B9668, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 17, 1 gAreaTilesets_DeepwoodShrineBoss:: @ 08101EFC .4byte gAreaTileset_DeepwoodShrineBoss_0 gAreaTileset_DeepwoodShrineEntry_0:: @ 08101F00 +.ifdef EU + tileset_tiles 0x1BB598-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x1BCACC-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x1BD320-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x1BB598, 0x6000000, 0x4000, 1 tileset_tiles 0x1BCACC, 0x6004000, 0x4000, 1 tileset_tiles 0x1BD320, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 90, 1 gAreaTilesets_DeepwoodShrineEntry:: @ 08101F30 .4byte gAreaTileset_DeepwoodShrineEntry_0 gAreaTileset_CaveOfFlames_0:: @ 08101F34 +.ifdef EU + tileset_tiles 0x1C3044-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x1C56F8-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x1C7960-0x4, 0x6008000, 0x4000, 1 + tileset_tiles 0x1D6168-0x4, 0x600F000, 0x800, 1 +.else tileset_tiles 0x1C3044, 0x6000000, 0x4000, 1 tileset_tiles 0x1C56F8, 0x6004000, 0x4000, 1 tileset_tiles 0x1C7960, 0x6008000, 0x4000, 1 tileset_tiles 0x1D6168, 0x600F000, 0x800, 1 +.endif tileset_palette_set 36, 1 gAreaTilesets_CaveOfFlames:: @ 08101F70 .4byte gAreaTileset_CaveOfFlames_0 gAreaTileset_CaveOfFlamesBoss_0:: @ 08101F74 +.ifdef EU + tileset_tiles 0x1CE024-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x1CFB40-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x1D1E98-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x1CE024, 0x6000000, 0x4000, 1 tileset_tiles 0x1CFB40, 0x6004000, 0x4000, 1 tileset_tiles 0x1D1E98, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 36, 1 gAreaTilesets_CaveOfFlamesBoss:: @ 08101FA4 .4byte gAreaTileset_CaveOfFlamesBoss_0 gAreaTileset_CastorDarknut_0:: @ 08101FA8 +.ifdef EU + tileset_tiles 0x1DACA4-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x1DD2D0-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x1DF4B4-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x1DACA4, 0x6000000, 0x4000, 1 tileset_tiles 0x1DD2D0, 0x6004000, 0x4000, 1 tileset_tiles 0x1DF4B4, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 37, 1 gAreaTilesets_FortressOfWinds:: @ 08101FD8 .4byte gAreaTileset_CastorDarknut_0 gAreaTileset_FortressOfWindsTop_0:: @ 08101FDC +.ifdef EU + tileset_tiles 0x1EC07C-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x1ED3E0-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x1EEE8C-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x1EC07C, 0x6000000, 0x4000, 1 tileset_tiles 0x1ED3E0, 0x6004000, 0x4000, 1 tileset_tiles 0x1EEE8C, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 94, 1 gAreaTilesets_FortressOfWindsTop:: @ 0810200C .4byte gAreaTileset_FortressOfWindsTop_0 gAreaTileset_InnerMazaal_0:: @ 08102010 +.ifdef EU + tileset_tiles 0x1E5748-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x1E7484-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x1E89D0-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x1E5748, 0x6000000, 0x4000, 1 tileset_tiles 0x1E7484, 0x6004000, 0x4000, 1 tileset_tiles 0x1E89D0, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 128, 1 gAreaTilesets_InnerMazaal:: @ 08102040 .4byte gAreaTileset_InnerMazaal_0 gAreaTileset_TempleOfDroplets_0:: @ 08102044 +.ifdef EU + tileset_tiles 0x1F5A1C-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x1F7C44-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x1FA2F0-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x1F5A1C, 0x6000000, 0x4000, 1 tileset_tiles 0x1F7C44, 0x6004000, 0x4000, 1 tileset_tiles 0x1FA2F0, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 55, 1 gAreaTilesets_TempleOfDroplets:: @ 08102074 .4byte gAreaTileset_TempleOfDroplets_0 gAreaTileset_61_0:: @ 08102078 +.ifdef EU + tileset_tiles 0x20143C-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x2031E8-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x204370-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x20143C, 0x6000000, 0x4000, 1 tileset_tiles 0x2031E8, 0x6004000, 0x4000, 1 tileset_tiles 0x204370, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 104, 1 gAreaTilesets_61:: @ 081020A8 .4byte gAreaTileset_61_0 gAreaTileset_HyruleTownMinishCaves_0:: @ 081020AC +.ifdef EU + tileset_tiles 0x1F5A1C-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x1F7C44-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x1FA2F0-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x1F5A1C, 0x6000000, 0x4000, 1 tileset_tiles 0x1F7C44, 0x6004000, 0x4000, 1 tileset_tiles 0x1FA2F0, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 130, 1 gAreaTilesets_HyruleTownMinishCaves:: @ 081020DC .4byte gAreaTileset_HyruleTownMinishCaves_0 gAreaTileset_RoyalCrypt_0:: @ 081020E0 +.ifdef EU + tileset_tiles 0x20CFC4-0x2C, 0x6000000, 0x4000, 1 + tileset_tiles 0x20EF84-0x2C, 0x6004000, 0x4000, 1 + tileset_tiles 0x210B80-0x2C, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x20CFC4, 0x6000000, 0x4000, 1 tileset_tiles 0x20EF84, 0x6004000, 0x4000, 1 tileset_tiles 0x210B80, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 60, 1 gAreaTilesets_RoyalCrypt:: @ 08102110 .4byte gAreaTileset_RoyalCrypt_0 gAreaTileset_PalaceOfWinds_0:: @ 08102114 +.ifdef EU + tileset_tiles 0x216F68-0x2C, 0x6000000, 0x4000, 1 + tileset_tiles 0x219350-0x2C, 0x6004000, 0x4000, 1 + tileset_tiles 0x21B4D8-0x2C, 0x6008000, 0x4000, 1 + tileset_tiles 0x2210F8-0x2C, 0x600F000, 0x800, 1 +.else tileset_tiles 0x216F68, 0x6000000, 0x4000, 1 tileset_tiles 0x219350, 0x6004000, 0x4000, 1 tileset_tiles 0x21B4D8, 0x6008000, 0x4000, 1 tileset_tiles 0x2210F8, 0x600F000, 0x800, 1 +.endif tileset_palette_set 56, 1 gAreaTilesets_PalaceOfWinds:: @ 08102150 .4byte gAreaTileset_PalaceOfWinds_0 gAreaTileset_PalaceOfWindsBoss_0:: @ 08102154 +.ifdef EU + tileset_tiles 0x22131C-0x2C, 0x6000000, 0x4000, 1 + tileset_tiles 0x222634-0x2C, 0x6004000, 0x4000, 1 + tileset_tiles 0x22449C+0x48, 0x600F000, 0x800, 1 +.else tileset_tiles 0x22131C, 0x6000000, 0x4000, 1 tileset_tiles 0x222634, 0x6004000, 0x4000, 1 .ifdef JP tileset_tiles 0x224510, 0x600F000, 0x800, 1 .else tileset_tiles 0x22449C, 0x600F000, 0x800, 1 +.endif .endif tileset_palette_set 162, 1 @@ -883,10 +1474,16 @@ gAreaTileset_Sanctuary_0:: @ 08102188 tileset_tiles 0x22E250, 0x6000000, 0x4000, 1 tileset_tiles 0x22FFA4, 0x6004000, 0x4000, 1 tileset_tiles 0x232028, 0x6008000, 0x4000, 1 +.else +.ifdef EU + tileset_tiles 0x22E1DC+0x48, 0x6000000, 0x4000, 1 + tileset_tiles 0x22FF30+0x48, 0x6004000, 0x4000, 1 + tileset_tiles 0x231FB4+0x48, 0x6008000, 0x4000, 1 .else tileset_tiles 0x22E1DC, 0x6000000, 0x4000, 1 tileset_tiles 0x22FF30, 0x6004000, 0x4000, 1 tileset_tiles 0x231FB4, 0x6008000, 0x4000, 1 +.endif .endif tileset_palette_set 57, 1 @@ -898,10 +1495,16 @@ gAreaTileset_HyruleCastle_0:: @ 081021BC tileset_tiles 0x2379C0, 0x6000000, 0x4000, 1 tileset_tiles 0x239B50, 0x6004000, 0x4000, 1 tileset_tiles 0x23B8C8, 0x6008000, 0x4000, 1 +.else +.ifdef EU + tileset_tiles 0x23794C+0x48, 0x6000000, 0x4000, 1 + tileset_tiles 0x239ADC+0x48, 0x6004000, 0x4000, 1 + tileset_tiles 0x23B854+0x48, 0x6008000, 0x4000, 1 .else tileset_tiles 0x23794C, 0x6000000, 0x4000, 1 tileset_tiles 0x239ADC, 0x6004000, 0x4000, 1 tileset_tiles 0x23B854, 0x6008000, 0x4000, 1 +.endif .endif tileset_palette_set 58, 1 @@ -913,10 +1516,16 @@ gAreaTileset_SanctuaryEntrance_0:: @ 081021F0 tileset_tiles 0x242430, 0x6000000, 0x4000, 1 tileset_tiles 0x243F6C, 0x6004000, 0x4000, 1 tileset_tiles 0x245558, 0x6008000, 0x4000, 1 +.else +.ifdef EU + tileset_tiles 0x2423BC+0x48, 0x6000000, 0x4000, 1 + tileset_tiles 0x243EF8+0x48, 0x6004000, 0x4000, 1 + tileset_tiles 0x2454E4+0x48, 0x6008000, 0x4000, 1 .else tileset_tiles 0x2423BC, 0x6000000, 0x4000, 1 tileset_tiles 0x243EF8, 0x6004000, 0x4000, 1 tileset_tiles 0x2454E4, 0x6008000, 0x4000, 1 +.endif .endif tileset_palette_set 145, 1 @@ -929,10 +1538,16 @@ gAreaTileset_DarkHyruleCastle_0:: @ 08102224 tileset_tiles 0x247560, 0x6000000, 0x4000, 1 tileset_tiles 0x249734, 0x6004000, 0x4000, 1 tileset_tiles 0x24B99C, 0x6008000, 0x4000, 1 +.else +.ifdef EU + tileset_tiles 0x2474EC+0x48, 0x6000000, 0x4000, 1 + tileset_tiles 0x2496C0+0x48, 0x6004000, 0x4000, 1 + tileset_tiles 0x24B928+0x48, 0x6008000, 0x4000, 1 .else tileset_tiles 0x2474EC, 0x6000000, 0x4000, 1 tileset_tiles 0x2496C0, 0x6004000, 0x4000, 1 tileset_tiles 0x24B928, 0x6008000, 0x4000, 1 +.endif .endif tileset_palette_set 59, 1 @@ -944,10 +1559,16 @@ gAreaTileset_DarkHyruleCastleOutside_0:: @ 08102258 tileset_tiles 0x26E430, 0x6000000, 0x4000, 1 tileset_tiles 0x270420, 0x6004000, 0x4000, 1 tileset_tiles 0x2720A4, 0x6008000, 0x4000, 1 +.else +.ifdef EU + tileset_tiles 0x26E3BC+0x48, 0x6000000, 0x4000, 1 + tileset_tiles 0x2703AC+0x48, 0x6004000, 0x4000, 1 + tileset_tiles 0x272030+0x48, 0x6008000, 0x4000, 1 .else tileset_tiles 0x26E3BC, 0x6000000, 0x4000, 1 tileset_tiles 0x2703AC, 0x6004000, 0x4000, 1 tileset_tiles 0x272030, 0x6008000, 0x4000, 1 +.endif .endif tileset_palette_set 144, 1 @@ -960,10 +1581,16 @@ gAreaTileset_DarkHyruleCastleBridge_0:: @ 0810228C tileset_tiles 0x252F6C, 0x6000000, 0x4000, 1 tileset_tiles 0x254090, 0x6004000, 0x4000, 1 tileset_tiles 0x2557CC, 0x6008000, 0x4000, 1 +.else +.ifdef EU + tileset_tiles 0x252EF8+0x48, 0x6000000, 0x4000, 1 + tileset_tiles 0x25401C+0x48, 0x6004000, 0x4000, 1 + tileset_tiles 0x255758+0x48, 0x6008000, 0x4000, 1 .else tileset_tiles 0x252EF8, 0x6000000, 0x4000, 1 tileset_tiles 0x25401C, 0x6004000, 0x4000, 1 tileset_tiles 0x255758, 0x6008000, 0x4000, 1 +.endif .endif tileset_palette_set 180, 1 @@ -975,10 +1602,16 @@ gAreaTileset_VaatisArms_0:: @ 081022C0 tileset_tiles 0x260DFC, 0x6000000, 0x4000, 1 tileset_tiles 0x2625A4, 0x6004000, 0x4000, 1 tileset_tiles 0x262F78, 0x6008000, 0x4000, 1 +.else +.ifdef EU + tileset_tiles 0x260D88+0x48, 0x6000000, 0x4000, 1 + tileset_tiles 0x262530+0x48, 0x6004000, 0x4000, 1 + tileset_tiles 0x262F04+0x48, 0x6008000, 0x4000, 1 .else tileset_tiles 0x260D88, 0x6000000, 0x4000, 1 tileset_tiles 0x262530, 0x6004000, 0x4000, 1 tileset_tiles 0x262F04, 0x6008000, 0x4000, 1 +.endif .endif tileset_palette_set 155, 1 @@ -990,10 +1623,16 @@ gAreaTileset_Vaati3_0:: @ 081022F4 tileset_tiles 0x258204, 0x6000000, 0x4000, 1 tileset_tiles 0x259310, 0x6004000, 0x4000, 1 tileset_tiles 0x25A52C, 0x6008000, 0x4000, 1 +.else +.ifdef EU + tileset_tiles 0x258190+0x48, 0x6000000, 0x4000, 1 + tileset_tiles 0x25929C+0x48, 0x6004000, 0x4000, 1 + tileset_tiles 0x25A4B8+0x48, 0x6008000, 0x4000, 1 .else tileset_tiles 0x258190, 0x6000000, 0x4000, 1 tileset_tiles 0x25929C, 0x6004000, 0x4000, 1 tileset_tiles 0x25A4B8, 0x6008000, 0x4000, 1 +.endif .endif tileset_palette_set 156, 1 @@ -1006,11 +1645,18 @@ gAreaTileset_Vaati2_0:: @ 08102328 tileset_tiles 0x25DC08, 0x6004000, 0x4000, 1 tileset_tiles 0x25EE50, 0x6008000, 0x4000, 1 tileset_tiles 0x26E13C, 0x600F000, 0x800, 1 +.else +.ifdef EU + tileset_tiles 0x25D0B4+0x48, 0x6000000, 0x4000, 1 + tileset_tiles 0x25DB94+0x48, 0x6004000, 0x4000, 1 + tileset_tiles 0x25EDDC+0x48, 0x6008000, 0x4000, 1 + tileset_tiles 0x26E0C8+0x48, 0x600F000, 0x800, 1 .else tileset_tiles 0x25D0B4, 0x6000000, 0x4000, 1 tileset_tiles 0x25DB94, 0x6004000, 0x4000, 1 tileset_tiles 0x25EDDC, 0x6008000, 0x4000, 1 tileset_tiles 0x26E0C8, 0x600F000, 0x800, 1 +.endif .endif tileset_palette_set 169, 1 @@ -1018,45 +1664,75 @@ gAreaTilesets_Vaati2:: @ 08102364 .4byte gAreaTileset_Vaati2_0 gAreaTileset_45_0:: @ 08102368 +.ifdef EU + tileset_tiles 0x8D160-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x8FAF0-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x92434-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x8D160, 0x6000000, 0x4000, 1 tileset_tiles 0x8FAF0, 0x6004000, 0x4000, 1 tileset_tiles 0x92434, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 35, 1 gAreaTilesets_45:: @ 08102398 .4byte gAreaTileset_45_0 gAreaTileset_CastorCaves_0:: @ 0810239C +.ifdef EU + tileset_tiles 0x8D160-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x8FAF0-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x92434-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x8D160, 0x6000000, 0x4000, 1 tileset_tiles 0x8FAF0, 0x6004000, 0x4000, 1 tileset_tiles 0x92434, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 101, 1 gAreaTilesets_CastorCaves:: @ 081023CC .4byte gAreaTileset_CastorCaves_0 gAreaTileset_Caves_0:: @ 081023D0 +.ifdef EU + tileset_tiles 0x8D160-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x8FAF0-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x92434-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x8D160, 0x6000000, 0x4000, 1 tileset_tiles 0x8FAF0, 0x6004000, 0x4000, 1 tileset_tiles 0x92434, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 131, 1 gAreaTilesets_Caves:: @ 08102400 .4byte gAreaTileset_Caves_0 gAreaTileset_VeilFallsCaves_0:: @ 08102404 +.ifdef EU + tileset_tiles 0x8D160-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x8FAF0-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x92434-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x8D160, 0x6000000, 0x4000, 1 tileset_tiles 0x8FAF0, 0x6004000, 0x4000, 1 tileset_tiles 0x92434, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 132, 1 gAreaTilesets_VeilFallsCaves:: @ 08102434 .4byte gAreaTileset_VeilFallsCaves_0 gAreaTileset_RoyalValleyGraves_0:: @ 08102438 +.ifdef EU + tileset_tiles 0x8D160-0x4, 0x6000000, 0x4000, 1 + tileset_tiles 0x8FAF0-0x4, 0x6004000, 0x4000, 1 + tileset_tiles 0x92434-0x4, 0x6008000, 0x4000, 1 +.else tileset_tiles 0x8D160, 0x6000000, 0x4000, 1 tileset_tiles 0x8FAF0, 0x6004000, 0x4000, 1 tileset_tiles 0x92434, 0x6008000, 0x4000, 1 +.endif tileset_palette_set 133, 1 gAreaTilesets_RoyalValleyGraves:: @ 08102468 diff --git a/linker_EU.ld b/linker_EU.ld new file mode 100644 index 00000000..7a93664b --- /dev/null +++ b/linker_EU.ld @@ -0,0 +1,1731 @@ +ENTRY(__start) + +gNumMusicPlayers = 0x20; +gMaxLines = 0; + +MEMORY { + ewram (w!x) : ORIGIN = 0x02000000, LENGTH = 256K + iwram (w!x) : ORIGIN = 0x03000000, LENGTH = 32K + rom (rx) : ORIGIN = 0x08000000, LENGTH = 32M +} + +SECTIONS { + ewram (NOLOAD) : ALIGN(4) { + . = 0x00000006; gUnk_02000006 = .; + . = 0x00000010; gUnk_02000010 = .; + . = 0x00000020; gUnk_02000020 = .; + . = 0x00000030; gUnk_02000030 = .; + . = 0x00000040; gUnk_02000040 = .; + . = 0x00000050; gTextBox = .; + . = 0x0000005C; gUnk_0200005C = .; + . = 0x00000070; gUnk_02000070 = .; + . = 0x00000080; gMenu = .; + . = 0x00000080; gIntroState = .; + . = 0x00000080; gChooseFileState = .; + . = 0x00000090; gUnk_02000090 = .; + . = 0x000000B0; gUnk_020000B0 = .; + . = 0x000000C0; gUnk_020000C0 = .; + . = 0x00000CC0; gUnk_02000CC0 = .; + . = 0x00000D00; gUnk_02000D00 = .; + . = 0x00001A00; gUnk_02001A00 = .; + . = 0x00001A3C; gUnk_02001A3C = .; + . = 0x00001A40; gBG3Buffer = .; + . = 0x00001B40; gUnk_02001B40 = .; + . = 0x00002A40; gSave = .; + . = 0x00002AA0; gUnk_02002AA0 = .; + . = 0x00002AC0; gUnk_02002AC0 = .; + . = 0x00002AC8; gUnk_02002AC8 = .; + . = 0x00002AE8; gStats = .; + . = 0x00002B0E; gUnk_02002B0E = .; + . = 0x00002B32; gUnk_02002B32 = .; + . = 0x00002B54; gUnk_02002B54 = .; + . = 0x00002B58; gUnk_02002B58 = .; + . = 0x00002B6B; gUnk_02002B6B = .; + . = 0x00002C01; gUnk_02002C01 = .; + . = 0x00002C81; gUnk_02002C81 = .; + . = 0x00002C8E; gUnk_02002C8E = .; + . = 0x00002C9C; gGlobalFlags = .; + . = 0x00002E9C; gUnk_02002E9C = .; + . = 0x00002ECC; gUnk_02002ECC = .; + . = 0x00002F00; gMapDataTopSpecial = .; + . = 0x00006F00; gUnk_02006F00 = .; + . = 0x0000AF00; gUnk_0200AF00 = .; + . = 0x0000AF13; gUnk_0200AF13 = .; + . = 0x0000AF34; gUnk_0200AF34 = .; + . = 0x0000B240; gUnk_0200B240 = .; + . = 0x0000B640; gUnk_0200B640 = .; + . = 0x0000B644; gUsedPalettes = .; + . = 0x0000B650; gUnk_0200B650 = .; + . = 0x0000B654; gMapDataTop = .; + . = 0x0000D654; gUnk_0200D654 = .; + . = 0x0000E654; gUnk_0200E654 = .; + . = 0x00010654; gMetatileTypesTop = .; + . = 0x00011654; gUnk_02011654 = .; + . = 0x00012654; gMetatilesTop = .; + . = 0x00016654; gUnk_02016654 = .; + . = 0x00017654; gUnk_02017654 = .; + . = 0x00017660; gUnk_02017660 = .; + . = 0x000176A0; gPaletteBuffer = .; + . = 0x000176E0; gUnk_020176E0 = .; + . = 0x00017700; gUnk_02017700 = .; + . = 0x00017830; gUnk_02017830 = .; + . = 0x000178E0; gUnk_020178E0 = .; + . = 0x00017AA0; gUnk_02017AA0 = .; + . = 0x00017BA0; gUnk_02017BA0 = .; + . = 0x00018EA0; gUnk_02018EA0 = .; + . = 0x00018EB0; gUnk_02018EB0 = .; + . = 0x00018EE0; gUnk_02018EE0 = .; + . = 0x00019EE0; gUnk_02019EE0 = .; + . = 0x00019F6C; gUnk_02019F6C = .; + . = 0x0001AEE0; gUnk_0201AEE0 = .; + . = 0x00021EE0; gSoundPlayingInfo = .; + . = 0x00021F00; gUnk_02021F00 = .; + . = 0x00021F20; gUnk_02021F20 = .; + . = 0x00021F30; gBG1Buffer = .; + . = 0x00021F70; gUnk_02021F70 = .; + . = 0x00022030; gUnk_02022030 = .; + . = 0x00022130; gUnk_02022130 = .; + . = 0x00022730; gUnk_02022730 = .; + . = 0x00022740; gUnk_02022740 = .; + . = 0x00022750; gPlayerScriptExecutionContext = .; + . = 0x00022780; gCurrentTextBox = .; + . = 0x000227DC; gUnk_020227DC = .; + . = 0x000227E8; gUnk_020227E8 = .; + . = 0x000227F0; gUnk_020227F0 = .; + . = 0x000227F8; gUnk_020227F8 = .; + . = 0x00022800; gUnk_02022800 = .; + . = 0x0002281E; gUnk_0202281E = .; + . = 0x00022830; gUnk_02022830 = .; + . = 0x00024030; gUnk_02024030 = .; + . = 0x00024048; gUnk_02024048 = .; + . = 0x00024050; gUnk_02024050 = .; + . = 0x00024090; gUnk_02024090 = .; + . = 0x00024490; gUnk_02024490 = .; + . = 0x00024494; gUnk_02024494 = .; + . = 0x000246B0; gUnk_020246B0 = .; + . = 0x00025EB0; gUnk_02025EB0 = .; + . = 0x00025EB4; gMapDataBottom = .; + . = 0x00027EB4; gUnk_02027EB4 = .; + . = 0x00028EB4; gUnk_02028EB4 = .; + . = 0x0002AEB4; gMetatileTypesBottom = .; + . = 0x0002BEB4; gUnk_0202BEB4 = .; + . = 0x0002CEB4; gMetatilesBottom = .; + . = 0x00030EB4; gUnk_02030EB4 = .; + . = 0x00031EC0; gUnk_02031EC0 = .; + . = 0x00032EC0; gUnk_02032EC0 = .; + . = 0x00032EDC; gUnk_02032EDC = .; + . = 0x00032F14; gUnk_02032F14 = .; + . = 0x00033280; gActiveScriptInfo = .; + . = 0x00033290; gUnk_02033290 = .; + . = 0x00033A90; gArea = .; + . = 0x00033AB8; gUnk_02033AB8 = .; + . = 0x00033ACC; gUnk_02033ACC = .; + . = 0x000342CC; gUnk_020342CC = .; + . = 0x000342F8; gUnk_020342F8 = .; + . = 0x00034330; gUnk_02034330 = .; + . = 0x00034350; gRoomVars = .; + . = 0x00034364; gRoomFlags = .; + . = 0x00034398; gUnk_02034398 = .; + . = 0x00034480; gUnk_02034480 = .; + . = 0x00034490; gUnk_02034490 = .; + . = 0x00034492; gUnk_02034492 = .; + . = 0x000344A0; gUnk_020344A0 = .; + . = 0x000344B0; gBG2Buffer = .; + . = 0x000344F0; gUnk_020344F0 = .; + . = 0x00034CB0; gBG0Buffer = .; + . = 0x00034CB2; gUnk_02034CB2 = .; + . = 0x00034CF0; gUnk_02034CF0 = .; + . = 0x00034D30; gUnk_02034D30 = .; + . = 0x00034DF0; gUnk_02034DF0 = .; + . = 0x000350E2; gUnk_020350E2 = .; + . = 0x000350F0; gUnk_020350F0 = .; + . = 0x00035160; gUnk_02035160 = .; + . = 0x000354B0; gUnk_020354B0 = .; + . = 0x000354B4; gManagerCount = .; + . = 0x000354C0; gUnk_020354C0 = .; + . = 0x0003553E; gUnk_0203553E = .; + . = 0x00035540; gzHeap = .; + . = 0x00035542; gUnk_02035542 = .; + . = 0x00036540; gUnk_02036540 = .; + . = 0x00036570; gScriptExecutionContextArray = .; + . = 0x000369F0; gUnk_020369F0 = .; + . = 0x00036A38; gCurrentWindow = .; + . = 0x00036A40; gNewWindow = .; + . = 0x00036A50; gEEPROMConfig = .; + . = 0x00036A50; gUnk_02036A50 = .; /* DEMO is 8 bytes earlier due to missing eeprom*/ + . = 0x00036A58; gUnk_02036A58 = .; + . = 0x00036AD0; gUnk_02036AD0 = .; /* DEMO is 8 bytes earlier due to missing eeprom*/ + . = 0x00036AD8; gUnk_02036AD8 = .; + . = 0x00036BB0; gUnk_02036BB0 = .; /* DEMO is 8 bytes earlier due to missing eeprom*/ + . = 0x00036BB8; gUnk_02036BB8 = .; + . = 0x00036BB8; gMPlayTracksDEMO = .; /* DEMO is 8 bytes earlier due to missing eeprom*/ + . = 0x00036BC0; gMPlayTracks = .; + . = 0x00038558; gUnk_02038558 = .; /* DEMO is 8 bytes earlier due to missing eeprom*/ + . = 0x00038560; gUnk_02038560 = .; + . = 0x00040000; + } >ewram + + iwram (NOLOAD) : ALIGN(4) { + . = 0x00000000; gUnk_03000000 = .; + . = 0x00000020; gUnk_03000020 = .; + . = 0x00000420; gUnk_03000420 = .; + . = 0x00000B80; gUnk_03000B80 = .; + . = 0x00000BD4; gUnk_03000BD4 = .; + . = 0x00000BF0; gRoomControls = .; + . = 0x00000BF6; gUnk_03000BF6 = .; + . = 0x00000BF8; gUnk_03000BF8 = .; + . = 0x00000C24; gUnk_03000C24 = .; + . = 0x00000C30; gUnk_03000C30 = .; + . = 0x00000E10; gUnk_03000E10 = .; + . = 0x00000F50; gScreen = .; + . = 0x00000F58; gBG0Settings = .; + . = 0x00000F64; gBG1Settings = .; + . = 0x00000F70; gBGAffSettings = .; + . = 0x00000F88; gBgControls = .; + . = 0x00000FBC; gUnk_03000FBC = .; + . = 0x00000FD0; gFadeControl = .; + . = 0x00000FF0; gInput = .; + . = 0x00001000; gMain = .; + . = 0x00001010; gOamCmd = .; + . = 0x00001020; gUnk_03001020 = .; + . = 0x000010A0; gScreenTransition = .; + . = 0x000010AC; gUnk_030010AC = .; + . = 0x000010EC; gUnk_030010EC = .; + . = 0x0000110C; gUnk_0300110C = .; + . = 0x00001150; gRand = .; + . = 0x00001160; gPlayerEntity = .; + . = 0x00001198; gUnk_03001198 = .; + . = 0x000011E8; gUnk_030011E8 = .; + . = 0x000015A0; gUnk_030015A0 = .; + . = 0x00003BE0; gUnk_03003BE0 = .; + . = 0x00003C70; gUnk_03003C70 = .; + . = 0x00003D68; gUnk_03003D68 = .; + . = 0x00003D70; gEntityLists = .; + . = 0x00003D80; gUnk_03003D80 = .; + . = 0x00003D90; gUnk_03003D90 = .; + . = 0x00003DA0; gUnk_03003DA0 = .; + . = 0x00003DA8; gUnk_03003DA8 = .; + . = 0x00003DB0; gUnk_03003DB0 = .; + . = 0x00003DB8; gHitboxCount = .; + . = 0x00003DBC; gEntCount = .; + . = 0x00003DC0; gUnk_03003DC0 = .; + . = 0x00003DD0; gUnk_03003DD0 = .; + . = 0x00003DE0; gUnk_03003DE0 = .; + . = 0x00003DE4; gUnk_03003DE4 = .; + . = 0x00003DF0; gUnk_03003DF0 = .; + . = 0x00003DF8; gUnk_03003DF8 = .; + . = 0x00003F80; gPlayerState = .; + . = 0x00003FC0; gUnk_03003FC0 = .; + . = 0x00004010; gUnk_03004010 = .; + . = 0x00004020; gUnk_03004020 = .; + . = 0x00004030; gUnk_03004030 = .; + . = 0x00004040; gUnk_03004040 = .; + . = 0x0000404C; SoundMainRAM_Buffer = .; + . = 0x0000404D; gUnk_0300404D = .; + . = 0x000043D0; gSoundInfo = .; + . = 0x00004D50; gMPlayJumpTable = .; + . = 0x00004D54; gUnk_03004D54 = .; + . = 0x00004DD8; gUnk_03004DD8 = .; + . = 0x00004DDC; gUnk_03004DDC = .; + . = 0x00004DE0; gCgbChans = .; + . = 0x00004EE0; gMPlayInfos = .; + . = 0x000055E0; gMPlayMemAccArea = .; + . = 0x000055F0; gMPlayInfos2 = .; + . = 0x000056F0; gUnk_030056F0 = .; + . = 0x000056F1; gUnk_030056F1 = .; + . = 0x00005740; gUnk_03005740 = .; + . = 0x0000574C; gUnk_0300574C = .; + . = 0x00005760; gUnk_03005760 = .; + . = 0x00005770; gUnk_03005770 = .; + . = 0x00005778; gUnk_03005778 = .; + . = 0x00005780; gUnk_03005780 = .; + . = 0x0000579C; gUnk_0300579C = .; + . = 0x000057A8; gUnk_030057A8 = .; + . = 0x000057BC; gUnk_030057BC = .; + . = 0x000057CC; gUnk_030057CC = .; + . = 0x000057D4; gUnk_030057D4 = .; + . = 0x00005800; gUnk_03005800 = .; + . = 0x0000581C; gUnk_0300581C = .; + . = 0x00005828; gUnk_03005828 = .; + . = 0x0000583C; gUnk_0300583C = .; + . = 0x0000584C; gUnk_0300584C = .; + . = 0x00005854; gUnk_03005854 = .; + . = 0x00005864; gUnk_03005864 = .; + . = 0x00005880; gUnk_03005880 = .; + . = 0x0000588C; gUnk_0300588C = .; + . = 0x000058A0; gUnk_030058A0 = .; + . = 0x000058B0; gUnk_030058B0 = .; + . = 0x000058B8; gUnk_030058B8 = .; + . = 0x000058C8; gUnk_030058C8 = .; + . = 0x000058DC; gUnk_030058DC = .; + . = 0x000058F8; gUnk_030058F8 = .; + . = 0x00005918; gUnk_03005918 = .; + . = 0x000059F0; gDoCollision = .; + . = 0x00005CA4; gUnk_03005CA4 = .; + . = 0x00005CD0; gUnk_03005CD0 = .; + . = 0x00005CFC; gUnk_03005CFC = .; + . = 0x00005D18; gUnk_03005D18 = .; + . = 0x00005D24; gUnk_03005D24 = .; + . = 0x00005D58; gUnk_03005D58 = .; + . = 0x00005D5C; gUnk_03005D5C = .; + . = 0x00005D90; IntrMain = .; + . = 0x00005E60; gUnk_03005E60 = .; + . = 0x00005E98; gUnk_03005E98 = .; + . = 0x00005F24; _EntUpdate = .; + . = 0x00005F40; gUnk_03005F40 = .; + . = 0x00005FBC; gUnk_03005FBC = .; + . = 0x00005FF0; gUnk_03005FF0 = .; + . = 0x000060F0; gUnk_030060F0 = .; + . = 0x00006164; gUnk_03006164 = .; + . = 0x0000659C; gUnk_0300659C = .; + . = 0x000065AC; gUnk_03006580 = .; + . = 0x000065C8; gUnk_030065C8 = .; /* TODO EU for gUnk_0300659C? */ + . = 0x000067E4; gUnk_030067E4 = .; + . = 0x000069AC; gUnk_030069AC = .;/* TODO EU for gUnk_030067E4*/ + . = 0x00006A94; gUnk_030068CC = .; + . = 0x00006B14; gUnk_0300694C = .; + . = 0x00006B24; gUnk_0300695C = .; + . = 0x00007F00; gUnk_03007F00 = .; + . = 0x00007FA0; gUnk_03007FA0 = .; + . = 0x00007FFA; gUnk_03007FFA = .; + . = 0x00008000; + } >iwram + + rom : ALIGN(2) { + + /* handwritten assembly */ + asm/crt0.o(.text); + asm/code_08000108.o(.text); + data/data_08000360.o(.rodata); + asm/code_08000E44.o(.text); + asm/libgcc.o(.text); + asm/code_08000F10.o(.text); + data/data_08000F54.o(.rodata); + asm/code_080011C4.o(.text); + data/data_080029B4.o(.rodata); + asm/code_08003FC4.o(.text); + asm/code_080043E8.o(.text); + data/data_08007DF4.o(.rodata); + asm/code_0800857C.o(.text); + /* scripts */ + data/scripts.o(.text); + asm/code_08016984.o(.text); + asm/sub_08016AE4.o(.text); + + + /* C source compiled with interworking */ + asm/code_08016B30.o(.text); + asm/updateBackgroundRegisters.o(.text); + src/arm_proxy.o(.text); + asm/code_08016DF8.o(.text); + /* C source compiled without interworking */ + asm/code_08018500.o(.text); + src/code_08018C58.o(.text); + src/playerItem/playerItem11.o(.text); + asm/playerItem11.o(.text); + src/playerItem/playerItemBow.o(.text); + asm/playerItem/playerItemBow.o(.text); + asm/playerItem/playerItemSwordBeam.o(.text); + asm/code_0801967C.o(.text); + asm/playerItem/playerItemBomb.o(.text); + asm/playerItem/playerItem3.o(.text); + asm/playerItem/playerItemC.o(.text); + asm/playerItem/playerItemSwordSpin.o(.text); + asm/playerItemCellOverwriteSet.o(.text); + asm/code_0801C1D4.o(.text); + asm/drawUI.o(.text); + asm/code_0801C370.o(.text); + asm/drawRupees.o(.text); + asm/code_0801C5E0.o(.text); + asm/drawHealth.o(.text); + asm/sub_0801C824.o(.text); + asm/code_0801C85C.o(.text); + src/ezloNag.o(.text); + asm/code_0801CEC0.o(.text); + src/utils.o(.text); + asm/code_0801D79C.o(.text); + /* enemies */ + src/enemy/octorok.o(.text); + src/enemy/chuchu.o(.text); + src/enemy/leever.o(.text); + src/enemy/peahat.o(.text); + src/enemy/rollobite.o(.text); + src/enemy/darkNut.o(.text); + src/enemy/hangingSeed.o(.text); + src/enemy/beetle.o(.text); + src/enemy/keese.o(.text); + src/enemy/doorMimic.o(.text); + src/enemy/rockChuchu.o(.text); + src/enemy/spinyChuchu.o(.text); + src/enemy/cuccoChickAggr.o(.text); + src/enemy/moldorm.o(.text); + src/enemy/enemyE.o(.text); + src/enemy/moldworm.o(.text); + src/enemy/sluggula.o(.text); + src/enemy/pesto.o(.text); + src/enemy/puffstool.o(.text); + src/enemy/chuchuBoss.o(.text); + asm/chuchuBoss.o(.text); + src/enemy/likeLike.o(.text); + src/enemy/spearMoblin.o(.text); + src/enemy/businessScrub.o(.text); + src/enemy/rupeeLike.o(.text); + src/enemy/madderpillar.o(.text); + src/enemy/waterDrop.o(.text); + src/enemy/wallMaster.o(.text); + src/enemy/bombPeahat.o(.text); + src/enemy/spark.o(.text); + src/enemy/chaser.o(.text); + src/enemy/spikedBeetle.o(.text); + src/enemy/sensorBladeTrap.o(.text); + src/enemy/helmasaur.o(.text); + src/enemy/fallingBoulder.o(.text); + src/enemy/bobomb.o(.text); + src/enemy/wallMaster2.o(.text); + asm/gleerok.o(.text); + asm/vaatiEyesMacro.o(.text); + src/enemy/tektite.o(.text); + asm/wizzrobeWind.o(.text); + asm/wizzrobeFire.o(.text); + asm/wizzrobeIce.o(.text); + src/code_080300AC.o(.text); /* ??? */ + asm/code_080300AC.o(.text); /* ??? */ + asm/armos.o(.text); + asm/eyegore.o(.text); + src/enemy/rope.o(.text); + src/enemy/smallPesto.o(.text); + src/enemy/acroBandits.o(.text); + src/enemy/bladeTrap.o(.text); + src/enemy/keaton.o(.text); + asm/crow.o(.text); + asm/mulldozer.o(.text); + asm/bombarossa.o(.text); + src/enemy/wisp.o(.text); + asm/spinyBeetle.o(.text); + src/enemy/mazaalHead.o(.text); + src/enemy/mazaalMacro.o(.text); + src/enemy/mazaalHand.o(.text); + asm/octorokBoss.o(.text); + asm/flyingPot.o(.text); + src/enemy/gibdo.o(.text); + asm/octorokGolden.o(.text); + src/enemy/tektiteGolden.o(.text); + src/enemy/ropeGolden.o(.text); + asm/cloudPiranha.o(.text); + asm/scissorsBeetle.o(.text); + asm/cuccoAggr.o(.text); + asm/stalfos.o(.text); + asm/flyingSkull.o(.text); + src/enemy/mazaalBracelet.o(.text); + asm/takkuri.o(.text); + src/enemy/bowMoblin.o(.text); + asm/bowMoblin.o(.text); + src/enemy/lakitu.o(.text); + src/enemy/lakituCloud.o(.text); + asm/enemy49.o(.text); + asm/vaatiRebornEnemy.o(.text); + asm/vaatiProjectile.o(.text); + asm/ballChainSoldier.o(.text); + src/enemy/enemy4D.o(.text); + asm/enemy4D.o(.text); + asm/ghini.o(.text); + asm/vaatiTransfigured.o(.text); + asm/enemy50.o(.text); + asm/vaatiWrath.o(.text); + asm/vaatiArm.o(.text); + asm/dust.o(.text); + src/enemy/vaatiBall.o(.text); + src/enemy/slime.o(.text); + asm/sub_080451CC.o(.text); + src/enemy/miniSlime.o(.text); + src/enemy/fireballGuy.o(.text); + src/enemy/miniFireballGuy.o(.text); + asm/enemy5A.o(.text); + asm/businessScrubPrologue.o(.text); + asm/gyorgFemale.o(.text); + src/enemy/gyorgMale.o(.text); + asm/curtain.o(.text); + asm/enemy5F.o(.text); + asm/gyorgChild.o(.text); + asm/gyorgFemaleEye.o(.text); + asm/enemy62.o(.text); + asm/gyorgFemaleMouth.o(.text); + asm/enemy64.o(.text); + src/enemy/treeItem.o(.text); + asm/enemy66.o(.text); + /* END enemies */ + src/code_08049CD4.o(.text); + asm/code_08049D30.o(.text); + asm/sub_0804AA30.o(.text); + src/createEnemy.o(.text); + src/code_0804AA84.o(.text); + asm/code_0804AA84.o(.text); + src/loadRoomEntityList.o(.text); + asm/loadRoomEntity.o(.text); + asm/code_0804AEB0.o(.text); + src/loadRoom.o(.text); + asm/code_0804B058.o(.text); + src/room.o(.text); + asm/code_0804B9F8.o(.text); + src/sub_08050008.o(.text); + src/fade.o(.text); + asm/code_08050038.o(.text); + src/fileScreen.o(.text); + asm/fileScreen.o(.text); + src/game.o(.text); + asm/code_080526F8.o(.text); + asm/modBombs.o(.text); + asm/modArrows.o(.text); + src/code_0805436C.o(.text); + asm/code_0805436C.o(.text); + asm/playerItem/playerItemLantern.o(.text); + asm/code_08054C04.o(.text); + src/sub_08055E08.o(.text); + src/main.o(.text); + src/textbox.o(.text); + asm/code_08056418.o(.text); + src/manager/manager1.o(.text); + asm/manager1.o(.text); + src/manager/manager2.o(.text); + asm/manager2.o(.text); + src/manager/manager3.o(.text); + src/manager/manager4.o(.text); + src/manager/manager5.o(.text); + src/manager/manager6.o(.text); + src/manager/manager7.o(.text); + src/manager/manager8.o(.text); + src/manager/manager9.o(.text); + src/manager/managerA.o(.text); + src/manager/managerB.o(.text); + src/manager/managerC.o(.text); + asm/managerD.o(.text); + src/manager/managerE.o(.text); + asm/managerF.o(.text); + asm/manager10.o(.text); + asm/manager11.o(.text); + asm/manager12.o(.text); + asm/manager13.o(.text); + asm/manager14.o(.text); + src/manager/manager15.o(.text); + asm/manager16.o(.text); + asm/manager17.o(.text); + asm/manager18.o(.text); + asm/manager19.o(.text); + src/manager/manager1A.o(.text); + asm/manager1B.o(.text); + asm/manager1C.o(.text); + asm/manager1D.o(.text); + src/manager/manager1E.o(.text); + asm/manager1F.o(.text); + src/manager/manager20.o(.text); + asm/manager21.o(.text); + asm/manager22.o(.text); + asm/manager23.o(.text); + asm/manager24.o(.text); + asm/manager25.o(.text); + src/manager/manager26.o(.text); + src/manager/manager27.o(.text); + src/manager/manager28.o(.text); + asm/manager29.o(.text); + asm/manager2A.o(.text); + asm/manager2B.o(.text); + asm/manager2C.o(.text); + asm/manager2D.o(.text); + src/manager/manager2E.o(.text); + asm/manager2E.o(.text); + asm/manager2F.o(.text); + src/manager/manager30.o(.text); + asm/manager31.o(.text); + asm/manager32.o(.text); + asm/manager33.o(.text); + asm/manager34.o(.text); + asm/manager35.o(.text); + asm/manager36.o(.text); + asm/manager37.o(.text); + asm/manager38.o(.text); + src/manager/manager39.o(.text); + asm/sub_0805E248.o(.text); + src/sub_0805E374.o(.text); + src/sub_0805E3A0.o(.text); + asm/code_0805E3B0.o(.text); + asm/getEmptyEntity.o(.text); + src/entity.o(.text); + src/code_0805EC04.o(.text); + asm/code_0805EC04.o(.text); + src/code_0805F9A0.o(.text); + src/debugScreen.o(.text); + src/playerItem/playerItem14.o(.text); + /* npcs */ + src/npc/gentari.o(.text); + src/npc/festari.o(.text); + src/npc/forestMinish.o(.text); + src/npc/postman.o(.text); + src/npc/npc5.o(.text); + src/npc/townsperson.o(.text); + src/npc/kid.o(.text); + src/npc/npc9.o(.text); + src/npc/stamp.o(.text); + src/npc/marcy.o(.text); + src/npc/wheaton.o(.text); + src/npc/pita.o(.text); + src/npc/minishEzlo.o(.text); + src/npc/mailbox.o(.text); + src/npc/beedle.o(.text); + src/npc/brocco.o(.text); + src/npc/sittingPerson.o(.text); + src/npc/pina.o(.text); + src/npc/guard.o(.text); + src/npc/guardWithSpear.o(.text); + src/npc/castleMaid.o(.text); + src/npc/din.o(.text); + src/npc/nayru.o(.text); + src/npc/farore.o(.text); + src/npc/sturgeon.o(.text); + src/npc/tingleSiblings.o(.text); + src/npc/stockwell.o(.text); + src/npc/talon.o(.text); + src/npc/malon.o(.text); + src/npc/epona.o(.text); + src/npc/milkCart.o(.text); + src/npc/ghostBrothers.o(.text); + src/npc/smith.o(.text); + src/npc/npc23.o(.text); + src/npc/kingDaltus.o(.text); + src/npc/ministerPotho.o(.text); + src/npc/npc26.o(.text); + asm/vaati.o(.text); + src/npc/zelda.o(.text); + src/npc/mutoh.o(.text); + src/npc/carpenter.o(.text); + src/npc/castorWildsStatue.o(.text); + src/npc/cat.o(.text); + src/npc/mountainMinish.o(.text); + src/npc/zeldaFollower.o(.text); + src/npc/melari.o(.text); + src/npc/bladeBrothers.o(.text); + src/npc/cow.o(.text); + src/npc/goron.o(.text); + src/npc/goronMerchant.o(.text); + src/npc/gorman.o(.text); + src/npc/dog.o(.text); + src/npc/syrup.o(.text); + src/npc/rem.o(.text); + src/npc/rem.o(.text); + src/npc/townMinish.o(.text); + src/npc/librari.o(.text); + src/npc/percy.o(.text); + asm/vaatiReborn.o(.text); + src/npc/moblinLady.o(.text); + src/npc/librarians.o(.text); + src/npc/farmers.o(.text); + src/npc/carlov.o(.text); + src/npc/dampe.o(.text); + src/npc/drLeft.o(.text); + src/npc/kingGustaf.o(.text); + src/npc/gina.o(.text); + src/npc/simon.o(.text); + src/npc/anju.o(.text); + src/npc/mama.o(.text); + src/npc/emma.o(.text); + src/npc/teachers.o(.text); + src/npc/windTribespeople.o(.text); + src/npc/gregal.o(.text); + src/npc/mayorHagen.o(.text); + src/npc/bigGoron.o(.text); + src/npc/ezloCap.o(.text); + src/npc/npc4E.o(.text); + src/npc/npc4F.o(.text); + src/npc/clothesRack.o(.text); + src/npc/picolyteBottle.o(.text); + src/npc/smallTownMinish.o(.text); + src/npc/hurdyGurdyMan.o(.text); + src/npc/cucco.o(.text); + src/npc/cuccoChick.o(.text); + src/npc/fusionMenuNPC.o(.text); + src/npc/phonograph.o(.text); + src/npc/npc58.o(.text); + /* END npcs */ + asm/code_0806EC20.o(.text); + src/createNPC.o(.text); + asm/code_0806ED78.o(.text); + src/coord.o(.text); + asm/code_0806FA6C.o(.text); + asm/playerItem/playerItem12.o(.text); + asm/playerItem/playerItemPacciCane.o(.text); + asm/code_0807059C.o(.text); + src/player.o(.text); + asm/stairsInteract.o(.text); + asm/code_080732D0.o(.text); + asm/item/itemDebug.o(.text); + asm/item/itemSword.o(.text); + asm/item/itemLantern.o(.text); + asm/item/itemBoomerang.o(.text); + asm/item/itemBow.o(.text); + asm/item/itemBomb.o(.text); + asm/item/itemTryPickupObject.o(.text); + asm/item/itemRocsCape.o(.text); + asm/item/itemPegasusBoots.o(.text); + asm/code_080732D0.o(.text); + asm/ocarina.o(.text); + src/item/itemPacciCane.o(.text); + src/item/itemShield.o(.text); + src/item/itemGustJar.o(.text); + asm/item/itemGustJar.o(.text); + asm/item/itemMoleMitts.o(.text); + asm/item/itemJarEmpty.o(.text); + asm/code_08077698.o(.text); + asm/respawnPlayer.o(.text); + src/code_08077B98.o(.text); + src/code_08077DF4.o(.text); + asm/code_08077B98.o(.text); + src/code_08078778.o(.text); + asm/code_08078778.o(.text); + src/sub_0807B820.o(.text); + asm/code_0807B9B8.o(.text); + src/sub_0807C998.o(.text); + asm/sub_0807CA18.o(.text); + asm/getInventoryValue.o(.text); + asm/code_0807CAA0.o(.text); + src/flags.o(.text); + src/save.o(.text); + src/code_0807CC3C.o(.text); + src/script.o(.text); + asm/code_0807F0D8.o(.text); + src/code_0808091C.o(.text); + asm/code_0808091C.o(.text); + /* objects */ + src/object/itemOnGround.o(.text); + asm/deathFx.o(.text); + asm/itemForSale.o(.text); + src/object/button.o(.text); + asm/object4.o(.text); + src/object/pot.o(.text); + asm/object6.o(.text); + asm/blockPushed.o(.text); + src/object/lockedDoor.o(.text); + asm/object9.o(.text); + src/object/objectA.o(.text); + asm/objectB.o(.text); + src/object/chestSpawner.o(.text); + asm/chestSpawner.o(.text); + asm/objectD.o(.text); + asm/objectE.o(.text); + asm/specialFx.o(.text); + asm/object10.o(.text); + asm/object11.o(.text); + asm/object12.o(.text); + src/object/railtrack.o(.text); + asm/lilypadLarge.o(.text); + asm/object15.o(.text); + asm/floatingPlatform.o(.text); + asm/object17.o(.text); + asm/evilSpirit.o(.text); + src/object/houseDoorExterior.o(.text); + src/object/object1A.o(.text); + src/object/greatFairy.o(.text); + src/object/object1C.o(.text); + src/object/object1D.o(.text); + asm/object1E.o(.text); + asm/object1F.o(.text); + asm/object20.o(.text); + asm/object21.o(.text); + asm/figurineDevice.o(.text); + asm/eyeSwitch.o(.text); + asm/object24.o(.text); + asm/bigBarrel.o(.text); + asm/object26.o(.text); + asm/pushableStatue.o(.text); + asm/object28.o(.text); + asm/object29.o(.text); + src/object/object2A.o(.text); + asm/object2A.o(.text); + asm/object2B.o(.text); + asm/beanstalk.o(.text); + src/object/smoke.o(.text); + asm/pushableRock.o(.text); + asm/hittableLever.o(.text); + asm/object30.o(.text); + asm/object31.o(.text); + asm/pullableMushroom.o(.text); + asm/bollard.o(.text); + asm/warpPoint.o(.text); + asm/object35.o(.text); + asm/object36.o(.text); + asm/object37.o(.text); + asm/jarPortal.o(.text); + asm/bossDoor.o(.text); + asm/object3A.o(.text); + asm/macroMushroomStalks.o(.text); + asm/object75.o(.text); /* 75 and 76 are mislocated in base game */ + asm/object76.o(.text); + asm/code_0808C964.o(.text); + asm/macroPlayer.o(.text); + asm/object3D.o(.text); + asm/object3E.o(.text); + src/object/giantLeaf.o(.text); + asm/fairy.o(.text); + asm/ladderUp.o(.text); + asm/object42.o(.text); + asm/object43.o(.text); + asm/object44.o(.text); + asm/object45.o(.text); + asm/giantBookLadder.o(.text); + src/object/heartContainer.o(.text); + src/object/fileScreenObjects.o(.text); + src/object/object49.o(.text); + src/object/backgroundCloud.o(.text); + asm/object4B.o(.text); + asm/pushableFurniture.o(.text); + asm/furniture.o(.text); + src/object/minishSizedEntrance.o(.text); + src/object/archway.o(.text); + asm/giantRock.o(.text); + asm/object51.o(.text); + asm/object52.o(.text); + asm/object53.o(.text); + asm/pullableLever.o(.text); + src/object/minecart.o(.text); + asm/minecart.o(.text); + src/object/thoughtBubble.o(.text); + src/object/hiddenLadderDown.o(.text); + asm/gentariCurtains.o(.text); + asm/lavaPlatform.o(.text); + asm/object5A.o(.text); + asm/object5B.o(.text); + src/object/mask.o(.text); + asm/houseDoorInterior.o(.text); + asm/whirlwind.o(.text); + asm/objectBlockingStairs.o(.text); + src/object/swordsmanNewsletter.o(.text); + asm/object61.o(.text); + asm/giantTwig.o(.text); + asm/object63.o(.text); + asm/object64.o(.text); + asm/ladderHoleInBookshelf.o(.text); + asm/object66.o(.text); + asm/object67.o(.text); + asm/object68.o(.text); + asm/object69.o(.text); + asm/object6A.o(.text); + asm/crenalBeanSprout.o(.text); + asm/minecartDoor.o(.text); + asm/objectOnPillar.o(.text); + src/object/mineralWaterSource.o(.text); + src/object/minishSizedArchway.o(.text); + asm/object70.o(.text); + asm/pushableGrave.o(.text); + asm/object72.o(.text); + src/object/lilypadSmall.o(.text); + asm/object74.o(.text); + src/object/bell.o(.text); + asm/macroDecorations.o(.text); + asm/object79.o(.text); + asm/steam.o(.text); + asm/pushableLever.o(.text); + asm/macroShoes.o(.text); + asm/objectOnSpinyBeetle.o(.text); + src/object/object7E.o(.text); + asm/picoBloom.o(.text); + asm/object80.o(.text); + asm/object81.o(.text); + src/object/bigVortex.o(.text); + asm/bigPushableLever.o(.text); + asm/smallIceBlock.o(.text); + asm/bigIceBlock.o(.text); + src/object/object86.o(.text); + asm/object87.o(.text); + asm/macroBook.o(.text); + asm/object89.o(.text); + asm/object8A.o(.text); + asm/object8B.o(.text); + asm/book.o(.text); + asm/fireplace.o(.text); + asm/object8E.o(.text); + asm/frozenWaterElement.o(.text); + asm/object90.o(.text); + asm/object91.o(.text); + src/object/bakerOven.o(.text); + asm/object93.o(.text); + src/object/windTribeFlag.o(.text); + src/object/bird.o(.text); + asm/bird.o(.text); + asm/object96.o(.text); + asm/object97.o(.text); + asm/object98.o(.text); + asm/object99.o(.text); + asm/macroAcorn.o(.text); + asm/object9B.o(.text); + src/object/treeHidingPortal.o(.text); + asm/treeHidingPortal.o(.text); + src/object/lightableSwitch.o(.text); + src/object/object9E.o(.text); + src/object/fan.o(.text); + asm/fan.o(.text); + asm/objectA0.o(.text); + src/object/palaceArchway.o(.text); + src/object/objectA2.o(.text); + src/object/cloud.o(.text); + src/object/minishLight.o(.text); + asm/objectA5.o(.text); + asm/objectA6.o(.text); + asm/objectA7.o(.text); + src/object/objectA8.o(.text); + asm/objectA8.o(.text); + asm/objectA9.o(.text); + asm/waterfallOpening.o(.text); + asm/objectAB.o(.text); + asm/fourElements.o(.text); + asm/objectAD.o(.text); + src/object/floatingBlock.o(.text); + src/object/objectAF.o(.text); + src/object/metalDoor.o(.text); + src/object/jailBars.o(.text); + src/object/objectB2.o(.text); + asm/objectB3.o(.text); + asm/objectB4.o(.text); + asm/objectB5.o(.text); + asm/objectB6.o(.text); + src/object/well.o(.text); + asm/windTribeTeleporter.o(.text); + asm/objectB9.o(.text); + asm/objectBA.o(.text); + src/object/windcrest.o(.text); + asm/litArea.o(.text); + asm/objectBD.o(.text); + src/object/pinwheel.o(.text); + asm/objectBF.o(.text); + asm/enemyItem.o(.text); + asm/objectC1.o(.text); + /* END objects */ + asm/sub_080A276C.o(.text); + asm/sub_080A2838.o(.text); + asm/sub_080A285C.o(.text); + src/createObject.o(.text); + asm/code_080A29BC.o(.text); + asm/playerItem/playerItemShield.o(.text); + asm/playerItem/playerItem15.o(.text); + src/audio.o(.text); + asm/code_080A3480.o(.text); + src/sub_080A3B84.o(.text); + asm/code_080A3BD0.o(.text); + src/sub_080A554C.o(.text); + asm/code_080A5574.o(.text); + asm/playerItem/playerItemSword.o(.text); + asm/code_080A7C00.o(.text); + src/projectile/projectile0.o(.text); + src/projectile/projectile1.o(.text); + src/projectile/projectile2.o(.text); + src/projectile/projectile3.o(.text); + src/projectile/projectile4.o(.text); + src/projectile/projectile5.o(.text); + src/projectile/projectile6.o(.text); + src/projectile/projectile7.o(.text); + src/projectile/projectile8.o(.text); + src/projectile/projectile9.o(.text); + src/projectile/projectileA.o(.text); + src/projectile/projectileB.o(.text); + src/projectile/projectileC.o(.text); + src/projectile/projectileD.o(.text); + src/projectile/projectileE.o(.text); + src/projectile/projectileF.o(.text); + src/projectile/projectile10.o(.text); + src/projectile/projectile11.o(.text); + src/projectile/projectile12.o(.text); + src/projectile/projectile13.o(.text); + src/projectile/projectile14.o(.text); + src/projectile/projectile15.o(.text); + src/projectile/projectile16.o(.text); + src/projectile/projectile17.o(.text); + src/projectile/projectile18.o(.text); + src/projectile/projectile19.o(.text); + src/projectile/projectile1A.o(.text); + src/projectile/projectile1B.o(.text); + src/projectile/projectile1C.o(.text); + src/projectile/projectile1D.o(.text); + src/projectile/projectile1E.o(.text); + src/projectile/projectile1F.o(.text); + src/projectile/projectile20.o(.text); + src/projectile/projectile21.o(.text); + src/projectile/projectile22.o(.text); + src/projectile/projectile23.o(.text); + src/projectile/projectile24.o(.text); + asm/playerItem/playerItem10.o(.text); + asm/playerItem/playerItem13.o(.text); + src/intro.o(.text); + asm/sub_080AD8F0.o(.text); + asm/code_080AD90C.o(.text); + asm/playerItem/playerItemGustJar.o(.text); + asm/code_080ADD30.o(.text); + /* library functions */ + asm/m4a_asm.o(.text); + src/gba/m4a.o(.text); + asm/libagbsyscall.o(.text); + src/eeprom.o(.text); + *libc.a:memcpy.o(.text); + + /* handwritten assembly in arm mode */ + asm/intr.o(.text); + /* data */ + data/data_080B2A70.o(.rodata); + src/playerItem.o(.rodata); + src/object.o(.rodata); + src/manager.o(.rodata); + src/npc.o(.rodata); + data/data_080B3740.o(.rodata); + data/const/playerItem/playerItem11.o(.rodata); + data/const/playerItem/playerItemBow.o(.rodata); + data/data_080B3E70.o(.rodata); + data/const/playerItem/playerItemSwordBeam.o(.rodata); + data/data_080B4410.o(.rodata); + data/const/playerItem/playerItemBomb.o(.rodata); + data/const/playerItem/playerItem3.o(.rodata); + data/const/playerItem/playerItemC.o(.rodata); + data/const/playerItem/playerItemSwordSpin.o(.rodata); + data/data_080B7910.o(.rodata); + data/const/playerItem/playerItemCellOverwriteSet.o(.rodata); + data/data_080B7B74.o(.rodata); + src/coord.o(.rodata); + data/data_080C93E0.o(.rodata); + src/enemy/octorok.o(.rodata); + data/animations/enemy/octorok.o(.rodata); + src/enemy/chuchu.o(.rodata); + data/animations/enemy/chuchu.o(.rodata); + src/enemy/leever.o(.rodata); + data/animations/enemy/leever.o(.rodata); + src/enemy/peahat.o(.rodata); + data/animations/enemy/peahat.o(.rodata); + src/enemy/rollobite.o(.rodata); + data/animations/enemy/rollobite.o(.rodata); + src/enemy/darkNut.o(.rodata); + data/animations/enemy/darkNut.o(.rodata); + src/enemy/hangingSeed.o(.rodata); + src/enemy/beetle.o(.rodata); + data/animations/enemy/beetle.o(.rodata); + src/enemy/keese.o(.rodata); + data/animations/enemy/keese.o(.rodata); + src/enemy/doorMimic.o(.rodata); + data/animations/enemy/doorMimic.o(.rodata); + src/enemy/rockChuchu.o(.rodata); + data/animations/enemy/rockChuchu.o(.rodata); + src/enemy/spinyChuchu.o(.rodata); + data/animations/enemy/spinyChuchu.o(.rodata); + src/enemy/cuccoChickAggr.o(.rodata); + src/enemy/moldorm.o(.rodata); + src/enemy/enemyE.o(.rodata); + data/animations/enemy/enemyE.o(.rodata); + src/enemy/moldworm.o(.rodata); + data/animations/enemy/moldworm.o(.rodata); + src/enemy/sluggula.o(.rodata); + data/animations/enemy/sluggula.o(.rodata); + src/enemy/pesto.o(.rodata); + data/animations/enemy/pesto.o(.rodata); + src/enemy/puffstool.o(.rodata); + data/animations/enemy/puffstool.o(.rodata); + src/enemy/chuchuBoss.o(.rodata); + data/animations/enemy/chuchuBoss.o(.rodata); + src/enemy/likeLike.o(.rodata); + data/animations/enemy/likeLike.o(.rodata); + src/enemy/spearMoblin.o(.rodata); + data/animations/enemy/spearMoblin.o(.rodata); + src/enemy/businessScrub.o(.rodata); + data/animations/enemy/businessScrub.o(.rodata); + src/enemy/rupeeLike.o(.rodata); + data/animations/enemy/rupeeLike.o(.rodata); + src/enemy/madderpillar.o(.rodata); + data/animations/enemy/madderpillar.o(.rodata); + src/enemy/waterDrop.o(.rodata); + data/animations/enemy/waterDrop.o(.rodata); + src/enemy/wallMaster.o(.rodata); + data/animations/enemy/wallMaster.o(.rodata); + src/enemy/bombPeahat.o(.rodata); + data/animations/enemy/bombPeahat.o(.rodata); + src/enemy/spark.o(.rodata); + data/animations/enemy/spark.o(.rodata); + src/enemy/chaser.o(.rodata); + data/animations/enemy/chaser.o(.rodata); + src/enemy/spikedBeetle.o(.rodata); + data/animations/enemy/spikedBeetle.o(.rodata); + src/enemy/sensorBladeTrap.o(.rodata); + src/enemy/helmasaur.o(.rodata); + data/animations/enemy/helmasaur.o(.rodata); + src/enemy/fallingBoulder.o(.rodata); + data/animations/enemy/fallingBoulder.o(.rodata); + src/enemy/bobomb.o(.rodata); + data/animations/enemy/bobomb.o(.rodata); + src/enemy/wallMaster2.o(.rodata); + data/const/enemy/gleerok.o(.rodata); + data/animations/enemy/gleerok.o(.rodata); + data/const/enemy/vaatiEyesMacro.o(.rodata); + data/animations/enemy/vaatiEyesMacro.o(.rodata); + data/const/enemy/tektite.o(.rodata); + data/animations/enemy/tektite.o(.rodata); + data/const/enemy/wizzrobeWind.o(.rodata); + data/animations/enemy/wizzrobeWind.o(.rodata); + data/const/enemy/wizzrobeFire.o(.rodata); + data/animations/enemy/wizzrobeFire.o(.rodata); + data/const/enemy/wizzrobeIce.o(.rodata); + data/animations/enemy/wizzrobeIce.o(.rodata); + data/const/enemy/armos.o(.rodata); + data/animations/enemy/armos.o(.rodata); + data/const/enemy/eyegore.o(.rodata); + data/animations/enemy/eyegore.o(.rodata); + data/const/enemy/rope.o(.rodata); + data/animations/enemy/rope.o(.rodata); + data/const/enemy/smallPesto.o(.rodata); + data/const/enemy/acroBandits.o(.rodata); + data/animations/enemy/acroBandits.o(.rodata); + data/const/enemy/keaton.o(.rodata); + data/animations/enemy/keaton.o(.rodata); + data/const/enemy/crow.o(.rodata); + data/animations/enemy/crow.o(.rodata); + data/const/enemy/mulldozer.o(.rodata); + data/animations/enemy/mulldozer.o(.rodata); + data/const/enemy/bombarossa.o(.rodata); + data/animations/enemy/bombarossa.o(.rodata); + data/const/enemy/wisp.o(.rodata); + data/animations/enemy/wisp.o(.rodata); + data/const/enemy/spinyBeetle.o(.rodata); + data/animations/enemy/spinyBeetle.o(.rodata); + src/enemy/mazaalHead.o(.rodata); + data/animations/enemy/mazaalHead.o(.rodata); + src/enemy/mazaalMacro.o(.rodata); + data/animations/enemy/mazaalMacro.o(.rodata); + src/enemy/mazaalHand.o(.rodata); + data/animations/enemy/mazaalHand.o(.rodata); + data/const/enemy/octorokBoss.o(.rodata); + data/animations/enemy/octorokBoss.o(.rodata); + data/const/enemy/flyingPot.o(.rodata); + data/const/enemy/gibdo.o(.rodata); + data/animations/enemy/gibdo.o(.rodata); + data/const/enemy/octorokGolden.o(.rodata); + data/const/enemy/tektiteGolden.o(.rodata); + data/const/enemy/ropeGolden.o(.rodata); + data/const/enemy/cloudPiranha.o(.rodata); + data/animations/enemy/cloudPiranha.o(.rodata); + data/const/enemy/scissorsBeetle.o(.rodata); + data/animations/enemy/scissorsBeetle.o(.rodata); + data/const/enemy/cuccoAggr.o(.rodata); + data/animations/enemy/cuccoAggr.o(.rodata); + data/const/enemy/stalfos.o(.rodata); + data/animations/enemy/stalfos.o(.rodata); + data/const/enemy/flyingSkull.o(.rodata); + data/animations/enemy/flyingSkull.o(.rodata); + src/enemy/mazaalBracelet.o(.rodata); + data/animations/enemy/mazaalBracelet.o(.rodata); + data/const/enemy/takkuri.o(.rodata); + data/const/enemy/bowMoblin.o(.rodata); + data/animations/enemy/bowMoblin.o(.rodata); src/enemy/lakitu.o(.rodata); + data/animations/enemy/lakitu.o(.rodata); + src/enemy/lakituCloud.o(.rodata); + data/const/enemy/enemy49.o(.rodata); + data/const/enemy/vaatiRebornEnemy.o(.rodata); + data/animations/enemy/vaatiRebornEnemy.o(.rodata); + data/const/enemy/vaatiProjectile.o(.rodata); + data/animations/enemy/vaatiProjectile.o(.rodata); + data/const/enemy/ballChainSoldier.o(.rodata); + data/animations/enemy/ballChainSoldier.o(.rodata); + data/const/enemy/enemy4D.o(.rodata); + data/const/enemy/ghini.o(.rodata); + data/animations/enemy/ghini.o(.rodata); + data/const/enemy/vaatiTransfigured.o(.rodata); + data/animations/enemy/vaatiTransfigured.o(.rodata); + data/const/enemy/enemy50.o(.rodata); + data/const/enemy/vaatiWrath.o(.rodata); + data/animations/enemy/vaatiWrath.o(.rodata); + data/const/enemy/vaatiArm.o(.rodata); + data/animations/enemy/vaatiArm.o(.rodata); + data/const/enemy/dust.o(.rodata); + data/const/enemy/vaatiBall.o(.rodata); + data/animations/enemy/vaatiBall.o(.rodata); + data/const/enemy/slime.o(.rodata); + data/animations/enemy/slime.o(.rodata); + data/const/enemy/miniSlime.o(.rodata); + data/const/enemy/fireballGuy.o(.rodata); + data/animations/enemy/fireballGuy.o(.rodata); + data/const/enemy/miniFireballGuy.o(.rodata); + data/const/enemy/enemy5A.o(.rodata); + data/animations/enemy/enemy5A.o(.rodata); + data/const/enemy/businessScrubPrologue.o(.rodata); + data/const/enemy/gyorgFemale.o(.rodata); + src/enemy/gyorgMale.o(.rodata); + data/animations/enemy/gyorgMale.o(.rodata); + data/const/enemy/curtain.o(.rodata); + data/animations/enemy/curtain.o(.rodata); + data/const/enemy/enemy5F.o(.rodata); + data/animations/enemy/enemy5F.o(.rodata); + data/const/enemy/gyorgChild.o(.rodata); + data/animations/enemy/gyorgChild.o(.rodata); + data/const/enemy/gyorgFemaleEye.o(.rodata); + data/animations/enemy/gyorgFemaleEye.o(.rodata); + data/const/enemy/enemy62.o(.rodata); + data/animations/enemy/enemy62.o(.rodata); + data/const/enemy/gyorgFemaleMouth.o(.rodata); + data/animations/enemy/gyorgFemaleMouth.o(.rodata); + data/const/enemy/enemy64.o(.rodata); + data/const/enemy/treeItem.o(.rodata); + data/const/enemy/enemy66.o(.rodata); + data/const/code_08049D30.o(.rodata); + src/enemy.o(.rodata); + data/data_080D3D94.o(.rodata); + data/entity_headers.o(.rodata); + data/data_080D5360.o(.rodata); + src/fileScreen.o(.rodata); + data/data_080FC8A4.o(.rodata); + data/const/playerItem/playerItemLantern.o(.rodata); + data/data_080FEEB8.o(.rodata); + src/main.o(.rodata); + data/tileset_headers.o(.rodata); + data/metatile_headers.o(.rodata); + data/map_headers.o(.rodata); + src/textbox.o(.rodata); + data/data_08107BC8.o(.rodata); + data/const/manager/manager1.o(.rodata); + data/const/manager/manager3.o(.rodata); + data/const/manager/manager4.o(.rodata); + src/manager/manager5.o(.rodata); + src/manager/manager7.o(.rodata); + . = ALIGN(4); + src/manager/manager9.o(.rodata); + src/manager/managerA.o(.rodata); + src/manager/managerB.o(.rodata); + src/manager/managerC.o(.rodata); + data/const/manager/managerD.o(.rodata); + data/const/manager/managerF.o(.rodata); + data/const/manager/manager10.o(.rodata); + data/const/manager/manager12.o(.rodata); + data/const/manager/manager13.o(.rodata); + data/const/manager/manager14.o(.rodata); + data/const/manager/manager15.o(.rodata); + data/const/manager/manager17.o(.rodata); + data/const/manager/manager18.o(.rodata); + data/const/manager/manager1A.o(.rodata); + data/const/manager/manager1B.o(.rodata); + data/const/manager/manager1C.o(.rodata); + data/const/manager/manager1D.o(.rodata); + src/manager/manager1E.o(.rodata); + data/const/manager/manager1F.o(.rodata); + data/const/manager/manager22.o(.rodata); + data/const/manager/manager23.o(.rodata); + data/const/manager/manager24.o(.rodata); + src/manager/manager26.o(.rodata); + src/manager/manager27.o(.rodata); + src/manager/manager28.o(.rodata); + data/const/manager/manager2B.o(.rodata); + data/const/manager/manager2E.o(.rodata); + data/const/manager/manager31.o(.rodata); + data/const/manager/manager32.o(.rodata); + data/const/manager/manager34.o(.rodata); + data/const/manager/manager35.o(.rodata); + data/const/manager/manager36.o(.rodata); + data/const/manager/manager37.o(.rodata); + data/const/manager/manager38.o(.rodata); + data/const/manager/manager39.o(.rodata); + data/data_08108E6C.o(.rodata); + data/const/playerItem/playerItem14.o(.rodata); + data/animations/npc/gentari.o(.rodata); + data/const/npc/festari.o(.rodata); + data/animations/npc/festari.o(.rodata); + data/const/npc/forestMinish.o(.rodata); + data/animations/npc/forestMinish.o(.rodata); + data/const/npc/postman.o(.rodata); + data/animations/npc/postman.o(.rodata); + data/const/npc/npc5.o(.rodata); + data/animations/npc/npc5.o(.rodata); + data/const/npc/townsperson.o(.rodata); + data/animations/npc/townsperson.o(.rodata); + data/const/npc/kid.o(.rodata); + data/animations/npc/kid.o(.rodata); + data/const/npc/npc9.o(.rodata); + data/animations/npc/npc9.o(.rodata); + data/const/npc/stamp.o(.rodata); + data/animations/npc/stamp.o(.rodata); + data/const/npc/marcy.o(.rodata); + data/animations/npc/marcy.o(.rodata); + data/const/npc/wheaton.o(.rodata); + data/animations/npc/wheaton.o(.rodata); + data/const/npc/pita.o(.rodata); + data/animations/npc/pita.o(.rodata); + data/const/npc/minishEzlo.o(.rodata); + data/animations/npc/minishEzlo.o(.rodata); + data/const/npc/mailbox.o(.rodata); + data/animations/npc/mailbox.o(.rodata); + data/const/npc/beedle.o(.rodata); + data/animations/npc/beedle.o(.rodata); + data/const/npc/brocco.o(.rodata); + data/animations/npc/brocco.o(.rodata); + data/const/npc/sittingPerson.o(.rodata); + data/animations/npc/sittingPerson.o(.rodata); + data/const/npc/pina.o(.rodata); + data/animations/npc/pina.o(.rodata); + data/const/npc/guard.o(.rodata); + data/animations/npc/guard.o(.rodata); + data/const/npc/guardWithSpear.o(.rodata); + data/animations/npc/guardWithSpear.o(.rodata); + data/const/npc/maid.o(.rodata); + data/animations/npc/maid.o(.rodata); + data/animations/npc/din.o(.rodata); + data/animations/npc/nayru.o(.rodata); + data/animations/npc/farore.o(.rodata); + data/const/npc/sturgeon.o(.rodata); + data/animations/npc/sturgeon.o(.rodata); + data/const/npc/tingleSiblings.o(.rodata); + data/animations/npc/tingleSiblings.o(.rodata); + data/const/npc/stockwell.o(.rodata); + data/animations/npc/stockwell.o(.rodata); + data/const/npc/talon.o(.rodata); + data/animations/npc/talon.o(.rodata); + data/const/npc/malon.o(.rodata); + data/animations/npc/malon.o(.rodata); + data/const/npc/epona.o(.rodata); + data/animations/npc/epona.o(.rodata); + data/const/npc/milkCart.o(.rodata); + data/animations/npc/milkCart.o(.rodata); + data/const/npc/ghostBrothers.o(.rodata); + data/animations/npc/ghostBrothers.o(.rodata); + data/const/npc/smith.o(.rodata); + data/animations/npc/smith.o(.rodata); + data/const/npc/npc23.o(.rodata); + data/const/npc/kingDaltus.o(.rodata); + data/animations/npc/kingDaltus.o(.rodata); + data/const/npc/ministerPotho.o(.rodata); + data/animations/npc/ministerPotho.o(.rodata); + src/npc/npc26.o(.rodata); + data/animations/npc/npc26.o(.rodata); + data/const/npc/vaati.o(.rodata); + data/animations/npc/vaati.o(.rodata); + data/const/npc/zelda.o(.rodata); + data/const/npc/mutoh.o(.rodata); + data/animations/npc/mutoh.o(.rodata); + data/const/npc/carpenter.o(.rodata); + data/animations/npc/carpenter.o(.rodata); + data/const/npc/castorWildsStatue.o(.rodata); + data/animations/npc/castorWildsStatue.o(.rodata); + data/const/npc/cat.o(.rodata); + data/animations/npc/cat.o(.rodata); + data/const/npc/mountainMinish.o(.rodata); + data/animations/npc/mountainMinish.o(.rodata); + data/const/npc/melari.o(.rodata); + data/animations/npc/melari.o(.rodata); + data/const/npc/bladeBrothers.o(.rodata); + data/animations/npc/bladeBrothers.o(.rodata); + data/const/npc/cow.o(.rodata); + data/animations/npc/cow.o(.rodata); + data/const/npc/goron.o(.rodata); + data/animations/npc/goron.o(.rodata); + src/npc/goronMerchant.o(.rodata); + data/animations/npc/goronMerchant.o(.rodata); + data/const/npc/gorman.o(.rodata); + data/animations/npc/gorman.o(.rodata); + data/const/npc/dog.o(.rodata); + data/animations/npc/dog.o(.rodata); + data/const/npc/syrup.o(.rodata); + data/animations/npc/syrup.o(.rodata); + data/const/npc/rem.o(.rodata); + data/animations/npc/rem.o(.rodata); + data/const/npc/townMinish.o(.rodata); + data/animations/npc/townMinish.o(.rodata); + data/const/npc/librari.o(.rodata); + data/animations/npc/librari.o(.rodata); + data/const/npc/percy.o(.rodata); + data/animations/npc/percy.o(.rodata); + data/const/npc/vaatiReborn.o(.rodata); + data/animations/npc/vaatiReborn.o(.rodata); + data/const/npc/moblinLady.o(.rodata); + data/animations/npc/moblinLady.o(.rodata); + data/const/npc/librarians.o(.rodata); + data/animations/npc/librarians.o(.rodata); + data/const/npc/farmers.o(.rodata); + data/animations/npc/farmers.o(.rodata); + data/animations/npc/carlov.o(.rodata); + data/const/npc/dampe.o(.rodata); + data/animations/npc/dampe.o(.rodata); + data/const/npc/drLeft.o(.rodata); + data/animations/npc/drLeft.o(.rodata); + data/animations/npc/kingGustaf.o(.rodata); + data/animations/npc/gina.o(.rodata); + data/animations/npc/simon.o(.rodata); + data/animations/npc/anju.o(.rodata); + data/const/npc/mama.o(.rodata); + data/animations/npc/mama.o(.rodata); + data/animations/npc/emma.o(.rodata); + data/const/npc/teachers.o(.rodata); + data/animations/npc/teachers.o(.rodata); + data/const/npc/windTribespeople.o(.rodata); + data/animations/npc/windTribespeople.o(.rodata); + data/const/npc/gregal.o(.rodata); + data/animations/npc/gregal.o(.rodata); + data/const/npc/mayorHagen.o(.rodata); + data/animations/npc/mayorHagen.o(.rodata); + data/const/npc/bigGoron.o(.rodata); + src/npc/ezloCap.o(.rodata); + src/npc/npc4E.o(.rodata); + src/npc/npc4F.o(.rodata); + data/animations/npc/npc4F.o(.rodata); + data/const/npc/clothesRack.o(.rodata); + data/animations/npc/clothesRack.o(.rodata); + data/const/npc/picolyteBottle.o(.rodata); + data/const/npc/smallTownMinish.o(.rodata); + data/animations/npc/smallTownMinish.o(.rodata); + data/const/npc/hurdyGurdyMan.o(.rodata); + data/animations/npc/hurdyGurdyMan.o(.rodata); + data/const/npc/cucco.o(.rodata); + data/const/npc/cuccoChick.o(.rodata); + data/const/npc/phonograph.o(.rodata); + data/const/npc/npc58.o(.rodata); + data/data_081146D0.o(.rodata); + data/const/playerItem/playerItem12.o(.rodata); + data/const/playerItem/playerItemPacciCane.o(.rodata); + src/player.o(.rodata); + data/data_0811B9E0.o(.rodata); + src/item.o(.rodata); + data/const/item/itemSword.o(.rodata); + data/const/item/itemLantern.o(.rodata); + data/const/item/itemBoomerang.o(.rodata); + data/const/item/itemBow.o(.rodata); + data/const/item/itemBomb.o(.rodata); + data/const/item/itemTryPickupObject.o(.rodata); + data/const/item/itemPegasusBoots.o(.rodata); + data/const/item/itemOcarina.o(.rodata); + data/const/item/itemPacciCane.o(.rodata); + data/const/item/itemShield.o(.rodata); + data/const/item/itemGustJar.o(.rodata); + data/const/item/itemMoleMitts.o(.rodata); + data/const/item/itemJarEmpty.o(.rodata); + data/data_0811BE38.o(.rodata); + data/room_headers.o(.rodata); + src/save.o(.rodata); + data/data_0811E454.o(.rodata); + src/script.o(.rodata); + data/data_0811E750.o(.rodata); + data/const/object/itemOnGround.o(.rodata); + data/const/object/deathFx.o(.rodata); + data/animations/object/deathFx.o(.rodata); + data/const/object/itemForSale.o(.rodata); + data/const/object/button.o(.rodata); + data/const/object/object4.o(.rodata); + data/animations/object/object4.o(.rodata); + data/const/object/pot.o(.rodata); + data/animations/object/pot.o(.rodata); + data/const/object/object6.o(.rodata); + data/animations/object/object6.o(.rodata); + data/const/object/blockPushed.o(.rodata); + src/object/lockedDoor.o(.rodata); + data/const/object/object9.o(.rodata); + data/animations/object/object9.o(.rodata); + data/const/object/objectB.o(.rodata); + data/const/object/chestSpawner.o(.rodata); + data/animations/object/chestSpawner.o(.rodata); + data/const/object/objectD.o(.rodata); + data/animations/object/objectD.o(.rodata); + data/const/object/specialFx.o(.rodata); + data/animations/object/specialFx.o(.rodata); + data/const/object/object10.o(.rodata); + data/const/object/object11.o(.rodata); + data/const/object/object12.o(.rodata); + data/const/object/railtrack.o(.rodata); + data/animations/object/railtrack.o(.rodata); + data/const/object/lilypadLarge.o(.rodata); + data/const/object/object15.o(.rodata); + data/const/object/floatingPlatform.o(.rodata); + data/const/object/object17.o(.rodata); + data/const/object/evilSpirit.o(.rodata); + data/const/object/houseDoorExterior.o(.rodata); + data/const/object/object1A.o(.rodata); + src/object/greatFairy.o(.rodata); + data/animations/npc/greatFairy.o(.rodata); +data/const/object/object1D.o(.rodata); + data/const/object/object1E.o(.rodata); + data/animations/object/object1E.o(.rodata); + data/const/object/object1F.o(.rodata); + data/const/object/object20.o(.rodata); + data/animations/object/object20.o(.rodata); + data/const/object/object21.o(.rodata); + data/const/object/figurineDevice.o(.rodata); + data/animations/object/figurineDevice.o(.rodata); + data/const/object/eyeSwitch.o(.rodata); + data/animations/object/eyeSwitch.o(.rodata); + data/const/object/object24.o(.rodata); + data/animations/object/object24.o(.rodata); + data/const/object/bigBarrel.o(.rodata); + data/animations/object/bigBarrel.o(.rodata); + data/const/object/object26.o(.rodata); + data/const/object/pushableStatue.o(.rodata); + data/animations/object/pushableStatue.o(.rodata); + data/const/object/object29.o(.rodata); + data/animations/object/object29.o(.rodata); + data/const/object/object2A.o(.rodata); + data/animations/object/object2A.o(.rodata); + data/const/object/beanstalk.o(.rodata); + data/animations/object/beanstalk.o(.rodata); + data/const/object/smoke.o(.rodata); + data/const/object/pushableRock.o(.rodata); + data/animations/object/pushableRock.o(.rodata); + data/const/object/hittableLever.o(.rodata); + data/const/object/object30.o(.rodata); + data/const/object/object31.o(.rodata); + data/const/object/pullableMushroom.o(.rodata); + data/animations/object/pullableMushroom.o(.rodata); + data/const/object/bollard.o(.rodata); + data/animations/object/bollard.o(.rodata); + data/const/object/warpPoint.o(.rodata); + data/animations/object/warpPoint.o(.rodata); + data/const/object/object35.o(.rodata); + data/animations/object/object35.o(.rodata); + data/const/object/object36.o(.rodata); + data/const/object/object37.o(.rodata); + data/const/object/jarPortal.o(.rodata); + data/animations/object/jarPortal.o(.rodata); + data/const/object/bossDoor.o(.rodata); + data/animations/object/bossDoor.o(.rodata); + data/const/object/object3A.o(.rodata); + data/const/object/macroMushroomStalks.o(.rodata); + data/const/object/object75.o(.rodata); + data/const/object/object76.o(.rodata); + data/const/object/macroPlayer.o(.rodata); + data/const/object/object3D.o(.rodata); + data/const/object/object3E.o(.rodata); + data/const/object/giantLeaf.o(.rodata); + data/const/object/fairy.o(.rodata); + data/const/object/object42.o(.rodata); + data/const/object/object43.o(.rodata); + data/animations/object/object43.o(.rodata); + data/const/object/object44.o(.rodata); + data/animations/object/object44.o(.rodata); + data/const/object/object45.o(.rodata); + data/animations/object/object45.o(.rodata); + data/const/object/giantBookLadder.o(.rodata); + src/object/heartContainer.o(.rodata); + data/const/object/heartContainer.o(.rodata); + data/const/object/fileScreenObjects.o(.rodata); + data/animations/object/fileScreenObjects.o(.rodata); + data/const/object/object49.o(.rodata); + data/const/object/backgroundCloud.o(.rodata); + data/const/object/object4B.o(.rodata); + data/const/object/pushableFurniture.o(.rodata); + data/const/object/furniture.o(.rodata); + data/animations/object/furniture.o(.rodata); + data/const/object/minishSizedEntrance.o(.rodata); + data/animations/object/minishSizedEntrance.o(.rodata); + data/const/object/object51.o(.rodata); + data/const/object/object53.o(.rodata); + data/const/object/pullableLever.o(.rodata); + data/animations/object/pullableLever.o(.rodata); + data/const/object/minecart.o(.rodata); + data/animations/object/minecart.o(.rodata); + data/const/object/thoughtBubble.o(.rodata); + data/animations/object/thoughtBubble.o(.rodata); + data/const/object/hiddenLadderDown.o(.rodata); + data/const/object/gentariCurtains.o(.rodata); + data/animations/object/gentariCurtains.o(.rodata); + data/const/object/lavaPlatform.o(.rodata); + data/animations/object/lavaPlatform.o(.rodata); + data/const/object/object5A.o(.rodata); + data/const/object/object5B.o(.rodata); + data/const/object/mask.o(.rodata); + data/const/object/houseDoorInterior.o(.rodata); + data/const/object/whirlwind.o(.rodata); + data/animations/object/whirlwind.o(.rodata); + data/const/object/objectBlockingStairs.o(.rodata); + data/const/object/swordsmanNewsletter.o(.rodata); + data/const/object/object61.o(.rodata); + data/const/object/giantTwig.o(.rodata); + data/const/object/object63.o(.rodata); + data/const/object/object64.o(.rodata); + data/animations/object/object64.o(.rodata); + data/const/object/ladderHoleInBookshelf.o(.rodata); + data/const/object/object67.o(.rodata); + data/const/object/object68.o(.rodata); + data/const/object/object6A.o(.rodata); + data/animations/object/object6A.o(.rodata); + data/const/object/crenalBeanSprout.o(.rodata); + data/animations/object/crenalBeanSprout.o(.rodata); + data/const/object/minecartDoor.o(.rodata); + data/const/object/objectOnPillar.o(.rodata); + data/const/object/mineralWaterSource.o(.rodata); + data/const/object/object70.o(.rodata); + data/const/object/pushableGrave.o(.rodata); + data/const/object/object72.o(.rodata); + data/const/object/lilypadSmall.o(.rodata); + data/const/object/object74.o(.rodata); + data/const/object/bell.o(.rodata); + data/const/object/macroDecorations.o(.rodata); + data/const/object/object79.o(.rodata); + data/animations/object/object79.o(.rodata); + data/const/object/steam.o(.rodata); + data/const/object/pushableLever.o(.rodata); + data/animations/object/pushableLever.o(.rodata); + data/const/object/macroShoes.o(.rodata); + data/const/object/objectOnSpinyBeetle.o(.rodata); + data/const/object/picoBloom.o(.rodata); + data/animations/object/picoBloom.o(.rodata); + data/const/object/object80.o(.rodata); + data/const/object/object81.o(.rodata); + data/const/object/bigVortex.o(.rodata); + data/animations/object/bigVortex.o(.rodata); + data/const/object/bigPushableLever.o(.rodata); + data/animations/object/bigPushableLever.o(.rodata); + data/const/object/smallIceBlock.o(.rodata); + data/animations/object/smallIceBlock.o(.rodata); + data/const/object/bigIceBlock.o(.rodata); + data/animations/object/bigIceBlock.o(.rodata); + data/const/object/object86.o(.rodata); + data/animations/object/object86.o(.rodata); + data/const/object/object87.o(.rodata); + data/const/object/macroBook.o(.rodata); + data/animations/object/macroBook.o(.rodata); + data/const/object/object89.o(.rodata); + data/const/object/object8A.o(.rodata); + data/const/object/object8B.o(.rodata); + data/const/object/books.o(.rodata); + data/const/object/fireplace.o(.rodata); + data/const/object/object8E.o(.rodata); + data/const/object/frozenWaterElement.o(.rodata); + data/const/object/object90.o(.rodata); + data/const/object/object91.o(.rodata); + data/const/object/bakerOven.o(.rodata); + data/animations/object/bakerOven.o(.rodata); + data/const/object/object93.o(.rodata); + data/const/object/bird.o(.rodata); + data/animations/object/bird.o(.rodata); + data/const/object/object96.o(.rodata); + data/const/object/object97.o(.rodata); + data/const/object/object98.o(.rodata); + data/animations/object/object98.o(.rodata); + data/const/object/macroAcorn.o(.rodata); + data/const/object/object9B.o(.rodata); + data/animations/object/object9B.o(.rodata); + data/const/object/treeHidingPortal.o(.rodata); + data/const/object/lightableSwitch.o(.rodata); + data/const/object/fan.o(.rodata); + data/animations/object/fan.o(.rodata); + data/const/object/objectA0.o(.rodata); + data/animations/object/objectA0.o(.rodata); + data/const/object/palaceArchway.o(.rodata); src/object/objectA2.o(.rodata); + data/animations/object/objectA2.o(.rodata); + data/const/object/cloud.o(.rodata); + data/const/object/minishLight.o(.rodata); + data/const/object/objectA6.o(.rodata); + data/animations/object/objectA6.o(.rodata); + data/const/object/objectA8.o(.rodata); + data/const/object/objectA9.o(.rodata); + data/const/object/waterfallOpening.o(.rodata); + data/const/object/objectAB.o(.rodata); + data/animations/object/objectAB.o(.rodata); + data/const/object/fourElements.o(.rodata); + data/const/object/objectAD.o(.rodata); + data/const/object/objectAF.o(.rodata); + data/animations/object/objectAF.o(.rodata); + data/const/object/metalDoor.o(.rodata); + data/const/object/jailBars.o(.rodata); + data/animations/object/jailBars.o(.rodata); + data/animations/object/objectB2.o(.rodata); + data/const/object/objectB3.o(.rodata); + data/animations/object/objectB3.o(.rodata); + data/const/object/objectB4.o(.rodata); + data/animations/object/objectB4.o(.rodata); + data/const/object/well.o(.rodata); + data/const/object/windTribeTeleporter.o(.rodata); + data/const/object/objectB9.o(.rodata); + data/const/object/objectBA.o(.rodata); + data/animations/object/objectBA.o(.rodata); + data/const/object/windcrest.o(.rodata); + data/const/object/objectBD.o(.rodata); + data/const/object/pinwheel.o(.rodata); + data/animations/object/pinwheel.o(.rodata); + data/const/object/objectC1.o(.rodata); + data/data_08125104.o(.rodata); + data/const/playerItem/playerItemShield.o(.rodata); + data/const/playerItem/playerItem15.o(.rodata); + data/data_08127280.o(.rodata); + data/const/playerItem/playerItemSword.o(.rodata); + data/data_08129320.o(.rodata); + data/const/projectile/projectile0.o(.rodata); + data/const/projectile/projectile1.o(.rodata); + data/animations/projectile/projectile1.o(.rodata); + data/const/projectile/projectile2.o(.rodata); + data/animations/projectile/projectile2.o(.rodata); + data/const/projectile/projectile3.o(.rodata); + data/const/projectile/projectile4.o(.rodata); + data/const/projectile/projectile5.o(.rodata); + data/const/projectile/projectile6.o(.rodata); + data/animations/projectile/projectile6.o(.rodata); + data/const/projectile/projectile7.o(.rodata); + data/animations/projectile/projectile7.o(.rodata); + data/const/projectile/projectile8.o(.rodata); + data/animations/projectile/projectile8.o(.rodata); + data/const/projectile/projectile9.o(.rodata); + data/animations/projectile/projectile9.o(.rodata); + data/const/projectile/projectileA.o(.rodata); + data/const/projectile/projectileB.o(.rodata); + data/const/projectile/projectileC.o(.rodata); + data/const/projectile/projectileD.o(.rodata); + data/animations/projectile/projectileD.o(.rodata); + data/const/projectile/projectileE.o(.rodata); + data/animations/projectile/projectileE.o(.rodata); + data/const/projectile/projectileF.o(.rodata); + data/const/projectile/projectile10.o(.rodata); + data/const/projectile/projectile11.o(.rodata); + data/animations/projectile/projectile11.o(.rodata); + data/const/projectile/projectile12.o(.rodata); + data/animations/projectile/projectile12.o(.rodata); + data/const/projectile/projectile13.o(.rodata); + data/animations/projectile/projectile13.o(.rodata); + data/const/projectile/projectile14.o(.rodata); + data/const/projectile/projectile15.o(.rodata); + data/animations/projectile/projectile15.o(.rodata); + data/const/projectile/projectile16.o(.rodata); + data/animations/projectile/projectile16.o(.rodata); + data/const/projectile/projectile18.o(.rodata); + data/animations/projectile/projectile18.o(.rodata); + data/const/projectile/projectile19.o(.rodata); + data/const/projectile/projectile1A.o(.rodata); + data/const/projectile/projectile1B.o(.rodata); + data/animations/projectile/projectile1B.o(.rodata); + data/const/projectile/projectile1C.o(.rodata); + data/animations/projectile/projectile1C.o(.rodata); + data/const/projectile/projectile1D.o(.rodata); + data/const/projectile/projectile1E.o(.rodata); + data/animations/projectile/projectile1E.o(.rodata); + data/const/projectile/projectile1F.o(.rodata); + data/animations/projectile/projectile1F.o(.rodata); + data/const/projectile/projectile20.o(.rodata); + data/animations/projectile/projectile20.o(.rodata); + data/const/projectile/projectile21.o(.rodata); + data/const/projectile/projectile22.o(.rodata); + data/const/projectile/projectile23.o(.rodata); + data/animations/projectile/projectile23.o(.rodata); + data/const/projectile/projectile24.o(.rodata); + data/const/playerItem/playerItem10.o(.rodata); + data/data_0812AA88.o(.rodata); + data/const/playerItem/playerItem13.o(.rodata); + src/intro.o(.rodata); + data/data_081320FC.o(.rodata); + data/const/playerItem/playerItemGustJar.o(.rodata); + data/data_08132B30.o(.rodata); + data/strings.o(.rodata); + data/sprite_table.o(.rodata); + src/gba/m4a.o(.rodata); + data/data_089FC6C4.o(.rodata); + src/audio.o(.rodata); + data/data_08A127A1.o(.rodata); + data/sounds.o(.rodata); + src/eeprom.o(.rodata); + } >rom + + /* DWARF 2 sections */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + .debug_info 0 : { *(.debug_info) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + + /* Discard everything not specifically mentioned above. */ + /DISCARD/ : + { + *(*); + } +} diff --git a/src/arm_proxy.c b/src/arm_proxy.c index fb6612b9..b3b71deb 100644 --- a/src/arm_proxy.c +++ b/src/arm_proxy.c @@ -157,6 +157,11 @@ void PlayerUpdate(Entity* this) { } // Responsible for some life things like low health beep and initiating the death sequence +#ifdef EU +NAKED void HandlePlayerLife(Entity* this) { + asm(".incbin \"baserom_eu.gba\", 0x017038, 0x1f0"); // TODO disassemble +} +#else void HandlePlayerLife(Entity* this) { u32 temp; @@ -227,6 +232,7 @@ void HandlePlayerLife(Entity* this) { CreateFx(this, 0x55 + gSave.stats.effect, 0); } } +#endif void sub_080171F0(void) { if (gPlayerState.field_0x1a[0] != 0) diff --git a/src/audio.c b/src/audio.c index 39e1cfdd..b9de7665 100644 --- a/src/audio.c +++ b/src/audio.c @@ -24,7 +24,9 @@ void InitSoundPlayingInfo(void) { InitVolume(); gSoundPlayingInfo.volumeSfx = 0x100; gSoundPlayingInfo.unk_04 = 0x100; +#ifndef EU m4aMPlayAllStop(); +#endif } void SetMasterVolume(u32 volume) { @@ -787,7 +789,6 @@ typedef enum { MUSIC_PLAYER_BGM, } MusicPlayerE; - #ifdef DEMO const MusicPlayer gMusicPlayers[] = { [MUSIC_PLAYER_00] = { &gMPlayInfos[0x08], &gMPlayTracksDEMO[0x00], 2, 1 }, @@ -975,7 +976,11 @@ const Song gSongTable[] = { [SFX_RUPEE_GET] = { &sfxRupeeGet, MUSIC_PLAYER_00, MUSIC_PLAYER_00 }, [SFX_HEART_BOUNCE] = { &sfxHeartBounce, MUSIC_PLAYER_12, MUSIC_PLAYER_12 }, [SFX_HEART_GET] = { &sfxHeartGet, MUSIC_PLAYER_00, MUSIC_PLAYER_00 }, +#ifdef EU + [SFX_SECRET] = { &sfxSecret, MUSIC_PLAYER_10, MUSIC_PLAYER_10 }, +#else [SFX_SECRET] = { &sfxSecret, MUSIC_PLAYER_03, MUSIC_PLAYER_03 }, +#endif [SFX_SECRET_BIG] = { &sfxSecretBig, MUSIC_PLAYER_03, MUSIC_PLAYER_03 }, [SFX_METAL_CLINK] = { &sfxMetalClink, MUSIC_PLAYER_0E, MUSIC_PLAYER_0E }, [SFX_PLY_VO1] = { &sfxPlyVo1, MUSIC_PLAYER_PLY_VO, MUSIC_PLAYER_PLY_VO }, @@ -1066,7 +1071,11 @@ const Song gSongTable[] = { [SFX_CA] = { &sfxCA, MUSIC_PLAYER_0E, MUSIC_PLAYER_0E }, [SFX_CB] = { &sfxCB, MUSIC_PLAYER_0F, MUSIC_PLAYER_0F }, [SFX_REM_SLEEP] = { &sfxRemSleep, MUSIC_PLAYER_10, MUSIC_PLAYER_10 }, +#ifdef EU + [SFX_TASK_COMPLETE] = { &sfxTaskComplete, MUSIC_PLAYER_17, MUSIC_PLAYER_17 }, +#else [SFX_TASK_COMPLETE] = { &sfxTaskComplete, MUSIC_PLAYER_03, MUSIC_PLAYER_03 }, +#endif [SFX_KEY_APPEAR] = { &sfxKeyAppear, MUSIC_PLAYER_16, MUSIC_PLAYER_16 }, [SFX_CF] = { &sfxCF, MUSIC_PLAYER_11, MUSIC_PLAYER_11 }, [SFX_D0] = { &sfxD0, MUSIC_PLAYER_12, MUSIC_PLAYER_12 }, diff --git a/src/code_0805436C.c b/src/code_0805436C.c index 21934343..4793e016 100644 --- a/src/code_0805436C.c +++ b/src/code_0805436C.c @@ -172,7 +172,13 @@ void sub_08054570(void) { gRoomVars.filler[2] = 0; } +#ifdef EU +NAKED u32 sub_0805457C(u32 arg0, u32 arg1) { + asm(".incbin \"baserom_eu.gba\", 0x054114, 0x1c0"); // TODO disassemble +} +#else ASM_FUNC("asm/non_matching/sub_0805457C.inc", u32 sub_0805457C(u32 arg0, u32 arg1)); +#endif NONMATCH("asm/non_matching/CreateItemDrop.inc", u32 CreateItemDrop(Entity* arg0, u32 itemID, u32 itemParameter)) { // TODO see below @@ -265,7 +271,7 @@ u32 CreateItemDrop(Entity* arg0, u32 itemID, u32 itemParameter) { */ void sub_08054870(void) { - #ifndef DEMO +#ifndef DEMO gUnk_080FE2A0[gMenu.menuType](); - #endif +#endif } diff --git a/src/code_0805F9A0.c b/src/code_0805F9A0.c index 612c4371..55c1545d 100644 --- a/src/code_0805F9A0.c +++ b/src/code_0805F9A0.c @@ -64,11 +64,11 @@ void sub_0805F820(WStruct* r0, u32* r1) { VStruct* temp3; if (r0->unk4 - r0->unk6 > 0) { - #ifdef DEMO +#ifdef DEMO sub_08002724(r1, &gUnk_02036A50); - #else +#else sub_08002724(r1, &gUnk_02036A58); - #endif +#endif if (r0->unk1 == 0) { u32 tmp = sub_0805F7A0(*r1); uVar6 = tmp & 0xf; @@ -86,11 +86,11 @@ void sub_0805F820(WStruct* r0, u32* r1) { uVar3 = uVar4; } - #ifdef DEMO +#ifdef DEMO puVar8 = &gUnk_02036A50 + uVar6; - #else +#else puVar8 = &gUnk_02036A58 + uVar6; - #endif +#endif temp2 = r0->unk8; temp = gUnk_0810942E[r0->unk3].filler0[r0->unk2 * 2]; uVar7 = r0->unk6; @@ -133,40 +133,40 @@ void sub_0805F918(u32 idx, u32 idx2, void* dest) { u8* temp; u8* temp2; - #ifdef DEMO +#ifdef DEMO MemFill32(sub_0805F8F8(idx2), &gUnk_02036AD0, 0xe0); - #else +#else MemFill32(sub_0805F8F8(idx2), &gUnk_02036AD8, 0xe0); - #endif +#endif puVar1 = gUnk_081092AC[idx]; temp = &gUnk_081094CE + idx2 * 0xc0; idx3 = 0; for (i = 0; i < 3; i++) { - #ifdef DEMO +#ifdef DEMO puVar2 = &gUnk_02036A50; sub_08002724(puVar1, &gUnk_02036A50); - #else +#else puVar2 = &gUnk_02036A58; sub_08002724(puVar1, &gUnk_02036A58); - #endif +#endif puVar1 += 0x40; for (j = 0; j < 8; j++) { - #ifdef DEMO +#ifdef DEMO sub_080026C4(puVar2, &gUnk_02036AD0, temp, idx3); - #else +#else sub_080026C4(puVar2, &gUnk_02036AD8, temp, idx3); - #endif +#endif puVar2++; idx3++; } } - #ifdef DEMO +#ifdef DEMO LoadResourceAsync((const void*)&gUnk_02036AD0, (u32)dest, 0xe0); - #else +#else LoadResourceAsync((const void*)&gUnk_02036AD8, (u32)dest, 0xe0); - #endif +#endif } u32 sub_0805F9A0(u32 r0) { diff --git a/src/eeprom.c b/src/eeprom.c index 945c788f..b7763a47 100644 --- a/src/eeprom.c +++ b/src/eeprom.c @@ -2,7 +2,7 @@ #include "gba/eeprom.h" #ifdef DEMO -const u8 unk[] = {0xff, 0xff, 0xff, 0xff}; +const u8 unk[] = { 0xff, 0xff, 0xff, 0xff }; const u8 padding[0x18] = {}; #else typedef struct EEPROMConfig { @@ -13,7 +13,6 @@ typedef struct EEPROMConfig { // u8 filler[3]; } EEPROMConfig; - const char EEPROM_V124[] = "EEPROM_V124"; extern const EEPROMConfig* gEEPROMConfig; const EEPROMConfig gEEPROMConfig512 = { 0x200, 0x40, 0x300, 0x6 }; @@ -21,8 +20,6 @@ const EEPROMConfig gEEPROMConfig8k = { 0x2000, 0x400, 0x300, 0xe }; u16 EEPROMWrite(u16, const u16*, u8); - - u16 EEPROMConfigure(u16 unk_1) { u16 ret; @@ -256,4 +253,4 @@ u16 EEPROMWrite0_8k_Check(u16 address, const u16* data) { const char thing[0x1c] = "\xff\xff\xff\xff"; -#endif \ No newline at end of file +#endif diff --git a/src/enemy/bombPeahat.c b/src/enemy/bombPeahat.c index fa170060..f94035fc 100644 --- a/src/enemy/bombPeahat.c +++ b/src/enemy/bombPeahat.c @@ -105,14 +105,19 @@ void sub_0802A924(Entity* this) { this->actionDelay = 0; this->field_0xf = 0; this->hitbox = (Hitbox*)&gUnk_080CD16C; +#ifdef EU + this->field_0x3c |= 0x10; +#endif this->height.HALF.HI = -0x30; this->field_0x80.HALF.LO = Random() & 1; this->field_0x82.HWORD = 0; this->field_0x7a.HALF.HI = 0; this->field_0x80.HALF.HI = 0; this->field_0x7a.HALF.LO = 0; +#ifndef EU this->field_0x78.HALF.LO = 0; this->field_0x78.HALF.HI = 0; +#endif this->collisionLayer = 3; this->spriteOrientation.flipY = 1; this->spriteRendering.b3 = 1; @@ -183,6 +188,11 @@ void sub_0802AA40(Entity* this) { } } +#ifdef EU +NAKED void sub_0802AAC0(Entity* this) { + asm(".incbin \"baserom_eu.gba\", 0x02aa94, 0xc8"); // TODO disassemble +} +#else void sub_0802AAC0(Entity* this) { sub_0802AC40(this); if (--this->field_0xf == 0) { @@ -210,7 +220,13 @@ void sub_0802AAC0(Entity* this) { InitializeAnimation(this, 0); } } +#endif +#ifdef EU +NAKED void sub_0802AB40(Entity* this) { + asm(".incbin \"baserom_eu.gba\", 0x02ab5c, 0x60"); // TODO disassemble +} +#else void sub_0802AB40(Entity* this) { sub_0802AC40(this); switch (this->field_0x78.HALF.LO) { @@ -249,6 +265,7 @@ void sub_0802AB40(Entity* this) { break; } } +#endif void sub_0802AC08(Entity* this) { if (this->frames.all & 0x80) { @@ -262,6 +279,11 @@ void sub_0802AC08(Entity* this) { GetNextFrame(this); } +#ifdef EU +NAKED void sub_0802AC40(Entity* this) { + asm(".incbin \"baserom_eu.gba\", 0x02ABF4, 0x54"); // TODO disassemble +} +#else void sub_0802AC40(Entity* this) { GetNextFrame(this); sub_0806F69C(this); @@ -291,6 +313,7 @@ void sub_0802AC40(Entity* this) { } } } +#endif void sub_0802ACDC(Entity* this, u32 param_2) { u32 x; @@ -339,6 +362,12 @@ void sub_0802AD54(Entity* this) { } } +#ifdef EU +// TODO regalloc in EU version +NAKED void sub_0802ADDC(Entity* this) { + asm(".incbin \"baserom_eu.gba\", 0x02AD48, 0x000004C"); // TODOg disassemble +} +#else void sub_0802ADDC(Entity* this) { Entity* ent = CreateEnemy(BOMB_PEAHAT, this->type + 2); if (ent != NULL) { @@ -346,12 +375,16 @@ void sub_0802ADDC(Entity* this) { ent->parent = this; this->attachedEntity = ent; CopyPosition(this, ent); + /*#ifdef EU + this->height.HALF.HI += 8; + #endif*/ this->field_0x80.HALF.HI = 1; if (this->type == 0) { this->field_0x7a.HALF.LO++; } } } +#endif void sub_0802AE24(Entity* this) { this->action = 1; @@ -366,6 +399,11 @@ void sub_0802AE24(Entity* this) { InitializeAnimation(this, 3); } +#ifdef EU +NAKED void sub_0802AE68(Entity* this) { + asm(".incbin \"baserom_eu.gba\", 0x02add8, 0x94"); // TODO disassemble +} +#else void sub_0802AE68(Entity* this) { Entity* ent = sub_0802B250(this); if (ent == 0) { @@ -383,6 +421,7 @@ void sub_0802AE68(Entity* this) { } } } +#endif void sub_0802AEBC(Entity* this) { gUnk_080CD158[this->subAction](this); @@ -539,6 +578,11 @@ void sub_0802B1A0(Entity* this) { InitializeAnimation(this, 0); } +#ifdef EU +NAKED void sub_0802B1BC(Entity* this) { + asm(".incbin \"baserom_eu.gba\", 0x02b16c, 0x84"); // TODO disassemble +} +#else void sub_0802B1BC(Entity* this) { Entity* ent; @@ -559,6 +603,7 @@ void sub_0802B1BC(Entity* this) { } } } +#endif void sub_0802B204(Entity* this) { if (sub_080044EC(this, 0x2800) == 1) { @@ -578,6 +623,7 @@ bool32 sub_0802B234(Entity* this) { return ret; } +#ifndef EU Entity* sub_0802B250(Entity* this) { Entity* parent = this->parent; if (parent && parent->next == NULL) { @@ -596,6 +642,7 @@ void sub_0802B264(Entity* this) { } GetNextFrame(this); } +#endif // clang-format off void (*const gUnk_080CD0F0[])(Entity*) = { @@ -648,14 +695,26 @@ void (*const gUnk_080CD158[])(Entity*) = { }; const Hitbox gUnk_080CD16C = { +#ifdef EU + 0x00, 0xFD, 0x05, 0x03, 0x03, 0x05, 0x06, 0x06, +#else 0x00, 0xFB, 0x05, 0x03, 0x03, 0x05, 0x06, 0x06, +#endif }; +#ifdef EU +const u8 unk_data[] = { // TODO + 0x0c, 0x0, 0x0, 0x0 +}; +#endif + const Hitbox gUnk_080CD174 = { 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x04, 0x04, }; + const Hitbox gUnk_080CD17C = { 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x16, 0x16, }; + // clang-format on diff --git a/src/enemy/businessScrub.c b/src/enemy/businessScrub.c index d1ed2872..2fd6ac8f 100644 --- a/src/enemy/businessScrub.c +++ b/src/enemy/businessScrub.c @@ -266,9 +266,9 @@ void sub_08028CE8(Entity* this) { this->actionDelay = 4; this->field_0x80.HALF.HI = 0; sub_080290E0(this, 3); - #ifndef JP +#if defined(USA) || defined(DEMO) SetLocalFlag(0x87); - #endif +#endif return; case 1: CreateItemEntity(offer->field_0x8, offer->field_0x9, 0); @@ -565,7 +565,11 @@ const struct SalesOffering gUnk_080CC954[] = { {0x04, 0x00, 0x0014, 0x2910, 0x2911, 0x1c, 0xff, 0xffff}, {0x0c, 0x00, 0xffff, 0x2912, 0x2913, 0xff, 0xff, 0x0046}, {0x04, 0x00, 0x0064, 0x2913, 0x2902, 0x5c, 0x75, 0xffff}, +#ifdef EU + {0x00, 0x00, 0x0064, 0x290d, 0x2902, 0x5c, 0xff, 0xffff}, +#else {0x00, 0x00, 0x00C8, 0x290d, 0x2902, 0x5c, 0xff, 0xffff}, +#endif }; const u8 gUnk_080CC9C0[] = { diff --git a/src/enemy/chuchu.c b/src/enemy/chuchu.c index 4f8d86d0..7ca16f40 100644 --- a/src/enemy/chuchu.c +++ b/src/enemy/chuchu.c @@ -332,6 +332,11 @@ void sub_0801F3AC(Entity* this) { } } +#ifdef EU +NAKED void sub_0801F428(Entity* this) { + asm(".incbin \"baserom_eu.gba\", 0x01F428, 0x60"); // TODO disassemble +} +#else void sub_0801F428(Entity* this) { sub_0804A720(this); this->action = 1; @@ -348,6 +353,7 @@ void sub_0801F428(Entity* this) { this->spriteSettings.b.draw = 1; InitializeAnimation(this, 2); } +#endif void sub_0801F48C(Entity* this) { GetNextFrame(this); diff --git a/src/enemy/gyorgMale.c b/src/enemy/gyorgMale.c index ed48da55..921784df 100644 --- a/src/enemy/gyorgMale.c +++ b/src/enemy/gyorgMale.c @@ -143,7 +143,11 @@ void sub_08046930(Entity* this) { if (this->type) { this->subAction = 5; this->direction = 0x20; +#ifdef EU + this->speed = 0x200; +#else this->speed = 0x280; +#endif } sub_08047D88(this); if (this->field_0x7c.BYTES.byte0 == 0) @@ -152,7 +156,11 @@ void sub_08046930(Entity* this) { this->actionDelay = 1; this->animationState = 0; this->direction = 0; +#ifdef EU + this->speed = 0x200; +#else this->speed = 0x280; +#endif } void sub_0804696C(Entity* this) { @@ -163,10 +171,16 @@ void sub_0804696C(Entity* this) { this->speed = 0x100; this->spriteOrientation.flipY = 3; this->spriteRendering.b3 = 3; +#ifndef EU SoundReq(BGM_BOSS_THEME); +#endif } if (this->actionDelay) { +#ifdef EU + if (gRoomControls.roomOriginY + 0x210 > this->y.HALF.HI) { +#else if (gRoomControls.roomOriginY + 0x258 > this->y.HALF.HI) { +#endif this->actionDelay = 0; SoundReq(SFX_APPARATE); } diff --git a/src/enemy/likeLike.c b/src/enemy/likeLike.c index 400233c6..b6a5988f 100644 --- a/src/enemy/likeLike.c +++ b/src/enemy/likeLike.c @@ -257,7 +257,11 @@ bool32 sub_080281E0(u32 param_1) { } void sub_08028224(u32 param_1) { +#ifdef EU + CreateItemEntity(param_1, 0, 1); +#else sub_080A7C18(param_1, 0, 1); +#endif TextboxNoOverlapFollow(0x579); } diff --git a/src/enemy/rockChuchu.c b/src/enemy/rockChuchu.c index 3f27ae13..c7b0dbe1 100644 --- a/src/enemy/rockChuchu.c +++ b/src/enemy/rockChuchu.c @@ -44,7 +44,9 @@ void sub_08022254(Entity* this) { ent = CreateEnemy(CHUCHU, 1); if (ent) { ent->type2 = 1; +#ifndef EU ent->iframes = -8; +#endif sub_0804A4E4(this, ent); this->action = 2; this->flags &= ~0x80; @@ -98,8 +100,10 @@ void sub_080223E4(Entity* this) { if (ent) { ent->bitfield = 0x94; ent->iframes = 0x10; +#ifndef EU ent->field_0x42 = 0xc; ent->field_0x3e = this->direction; +#endif } DeleteEntity(this); diff --git a/src/enemy/ropeGolden.c b/src/enemy/ropeGolden.c index 606e2c9f..1e63b5df 100644 --- a/src/enemy/ropeGolden.c +++ b/src/enemy/ropeGolden.c @@ -80,9 +80,7 @@ void sub_080382EC(Entity* this) { } } -NONMATCH("asm/non_matching/ropeGolden/sub_08038304.inc", void sub_08038304(Entity* this)) { -} -END_NONMATCH +ASM_FUNC("asm/non_matching/ropeGolden/sub_08038304.inc", void sub_08038304(Entity* this)) void sub_080383AC(Entity* this) { u32 v; diff --git a/src/enemy/rupeeLike.c b/src/enemy/rupeeLike.c index 8a75457f..0f29065a 100644 --- a/src/enemy/rupeeLike.c +++ b/src/enemy/rupeeLike.c @@ -274,7 +274,11 @@ void sub_080297F0(Entity* this) { this->spriteSettings.b.draw = TRUE; this->damageType = 0x8e; sub_080AE068(this); +#ifdef EU + this->spriteIndex = 0x142; +#else this->spriteIndex = 0x143; +#endif temp = gUnk_080CCC47[this->type]; this->palette.b.b0 = temp; this->spriteVramOffset = 9; diff --git a/src/enemy/vaatiBall.c b/src/enemy/vaatiBall.c index 7420c131..903a84db 100644 --- a/src/enemy/vaatiBall.c +++ b/src/enemy/vaatiBall.c @@ -34,7 +34,11 @@ void VaatiBall(Entity* this) { ModHealth(-2); } +#ifdef EU + if (this->currentHealth < 0xfa) { +#else if (this->currentHealth < 0xfd) { +#endif this->spriteSettings.b.draw = 0; this->flags &= 0x7f; this->currentHealth = -1; diff --git a/src/fileScreen.c b/src/fileScreen.c index 6e18b5dd..b1e990be 100644 --- a/src/fileScreen.c +++ b/src/fileScreen.c @@ -271,10 +271,17 @@ static void sub_0805066C(void) { if (loadNewPalette) { paletteOffset = &gGlobalGfxAndPalettes[gUnk_080FC8DE[gUnk_02019EE0.unk2]]; +#ifdef EU + LoadPalettes(&paletteOffset[0x11A60], 11, 1); + LoadPalettes(&paletteOffset[0x11B60], 12, 1); + LoadPalettes(&paletteOffset[0x11C60], 13, 1); + LoadPalettes(&paletteOffset[0x11D60], 14, 1); +#else LoadPalettes(&paletteOffset[0x11AA0], 11, 1); LoadPalettes(&paletteOffset[0x11BA0], 12, 1); LoadPalettes(&paletteOffset[0x11CA0], 13, 1); LoadPalettes(&paletteOffset[0x11DA0], 14, 1); +#endif } } @@ -475,22 +482,38 @@ void sub_08050A64(u32 idx) { if (GetInventoryValue(0x40)) { gOamCmd.x = 0xA2; gOamCmd.y = 0x36; +#ifdef EU + sub_080ADA14(0x144, 0x24); +#else sub_080ADA14(0x145, 0x24); +#endif } if (GetInventoryValue(0x41)) { gOamCmd.x = 0x96; gOamCmd.y = 0x3D; +#ifdef EU + sub_080ADA14(0x144, 0x22); +#else sub_080ADA14(0x145, 0x22); +#endif } if (GetInventoryValue(0x42)) { gOamCmd.x = 0xAE; gOamCmd.y = 0x3D; +#ifdef EU + sub_080ADA14(0x144, 0x23); +#else sub_080ADA14(0x145, 0x23); +#endif } if (GetInventoryValue(0x43)) { gOamCmd.x = 0xA2; gOamCmd.y = 0x44; +#ifdef EU + sub_080ADA14(0x144, 0x21); +#else sub_080ADA14(0x145, 0x21); +#endif } } diff --git a/src/game.c b/src/game.c index 4117416d..69f344b8 100644 --- a/src/game.c +++ b/src/game.c @@ -61,15 +61,15 @@ void sub_0805212C(void) { gMenu.transitionTimer--; if (gMenu.transitionTimer == 0) { sub_080520C4(2); - #ifdef DEMO +#ifdef DEMO SoundReq(0x80080000); - DoFade(7,4); - #else + DoFade(7, 4); +#else sub_08052418(0, 0); gScreen.lcd.displayControl |= 0x600; gFadeControl.field_0x4 = 0xffff; DoFade(4, 0x10); - #endif +#endif } } } else { @@ -79,9 +79,9 @@ void sub_0805212C(void) { #ifdef DEMO void sub_080521A0(void) { - if (gFadeControl.active == 0) { - DoSoftReset(); - } + if (gFadeControl.active == 0) { + DoSoftReset(); + } } #else void sub_080521A0(void) { @@ -224,7 +224,11 @@ void sub_080523D4(void) { gOamCmd.y = gMenu.focusCoords[0]; for (i = 0; i < 8; ++i) { gOamCmd.x = gUnk_080FCA84[i]; +#ifdef EU + sub_080ADA14(0x1fc, i); +#else sub_080ADA14(0x1fd, i); +#endif } } @@ -302,16 +306,26 @@ void InitializePlayer(void) { } bool32 sub_08052620(u32 r0) { +#ifdef EU + return gArea == 0x01; +#else return gArea == 0x81; +#endif } bool32 sub_08052638(u32 r0) { +#if EU + return gUnk_08127D30[r0 * 4] == 0x01; +#else return gUnk_08127D30[r0 * 4] == 0x81; +#endif } +#ifndef EU u32 sub_08052654() { return (gArea >> 7) & 1; } +#endif u32 CheckIsDungeon(void) { return (gArea >> 2) & 1; diff --git a/src/intro.c b/src/intro.c index 414165e1..a181800e 100644 --- a/src/intro.c +++ b/src/intro.c @@ -104,23 +104,21 @@ static void HandleNintendoCapcomLogos(void) { gScreen.bg.bg1Updated = 1; DoFade(6, 8); advance = ADVANCE_NONE; - #ifdef DEMO +#ifdef DEMO if (gUnk_02000010.listenForKeyPresses == 0) { - if ((gInput.heldKeys & 0x204) == 0x204) { // TODO - gUnk_02000010.field_0x7 = 1; - SoundReq(0x73); - } - else { - if ((gInput.heldKeys & 0x104) == 0x104) { // TODO - gUnk_02000010.field_0x7 = 2; - SoundReq(0xcd); - } - else { - gUnk_02000010.field_0x7 = 0; + if ((gInput.heldKeys & 0x204) == 0x204) { // TODO + gUnk_02000010.field_0x7 = 1; + SoundReq(0x73); + } else { + if ((gInput.heldKeys & 0x104) == 0x104) { // TODO + gUnk_02000010.field_0x7 = 2; + SoundReq(0xcd); + } else { + gUnk_02000010.field_0x7 = 0; + } } } - } - #endif +#endif } else { if (advance == ADVANCE_TIMER_EXPIRED) { @@ -192,17 +190,17 @@ static void HandleTitlescreen(void) { } break; case 2: - #ifdef JP +#if defined(JP) || defined(EU) if (GetAdvanceState()) { - #else +#else if (--gIntroState.timer == 0) { - #endif +#endif gIntroState.timer = 3600; gIntroState.state++; } - #ifndef JP +#if defined(USA) || defined(DEMO) UpdatePressStartIcon(); - #endif +#endif break; default: advance = GetAdvanceState(); @@ -215,20 +213,31 @@ static void HandleTitlescreen(void) { AdvanceIntroSequence(advance); SoundReq(SONG_VOL_FADE_OUT); } - #ifdef JP +#ifdef JP gOamCmd._4 = 0; gOamCmd._6 = 0; gOamCmd._8 = 0xE020; gOamCmd.x = 120; gOamCmd.y = 152; sub_080ADA14(511, 1); - #else - UpdatePressStartIcon(); - #endif +#elif defined(EU) + gOamCmd._4 = 0; + gOamCmd._6 = 0; + gOamCmd._8 = 0xE020; + gOamCmd.x = 120; + gOamCmd.y = 152; + sub_080ADA14(510, 1); +#else + UpdatePressStartIcon(); +#endif if ((gIntroState.timer & 0x20) == 0) { gOamCmd._8 = 0xe000; gOamCmd.y = 0x84; +#ifdef EU + sub_080ADA14(0x1fe, 0); +#else sub_080ADA14(0x1ff, 0); +#endif } } if (gIntroState.gameLanguage != gUnk_02000000->gameLanguage) { @@ -240,7 +249,7 @@ static void HandleTitlescreen(void) { sub_080AD9B0(); } -#ifndef JP +#if defined(USA) || defined(DEMO) static void UpdatePressStartIcon(void) { gOamCmd._4 = 0; gOamCmd._6 = 0; @@ -286,7 +295,7 @@ static void HandleJapaneseTitlescreenAnimationIntro(void) { if (!gFadeControl.active) { gFadeControl.field_0x4 = -1; gIntroState.subState++; -#ifdef JP +#if defined(JP) || defined(EU) gIntroState.timer = 120; #else gIntroState.timer = 90; @@ -301,7 +310,7 @@ static void HandleJapaneseTitlescreenAnimationIntro(void) { case 2: if (GetAdvanceState() != ADVANCE_NONE) { gIntroState.state++; -#ifdef JP +#if defined(JP) || defined(EU) gIntroState.timer = 30; #else gIntroState.timer = 60; @@ -331,7 +340,7 @@ static void HandleTitlescreenAnimationIntro(void) { break; case 2: if (--gIntroState.timer == 0) { -#ifdef JP +#if defined(JP) || defined(EU) gIntroState.timer = 360; #else gIntroState.timer = 300; @@ -345,7 +354,7 @@ static void HandleTitlescreenAnimationIntro(void) { default: if (!gFadeControl.active && GetAdvanceState() != ADVANCE_NONE) { gIntroState.state++; -#ifdef JP +#if defined(JP) || defined(EU) gIntroState.timer = 30; #else gIntroState.timer = 60; diff --git a/src/main.c b/src/main.c index 3fa19e65..286e128a 100644 --- a/src/main.c +++ b/src/main.c @@ -19,15 +19,17 @@ extern void HandleCreditsScreen(void); extern void HandleDebugTextScreen(void); static void (*const sScreenHandlers[])(void) = { - [SCREEN_INTRO] = HandleIntroScreen, - #ifdef DEMO - [SCREEN_CHOOSE_FILE] = HandleChooseDemoScreen, - #else + [SCREEN_INTRO] = HandleIntroScreen, +#ifdef DEMO + [SCREEN_CHOOSE_FILE] = HandleChooseDemoScreen, +#else [SCREEN_CHOOSE_FILE] = HandleChooseFileScreen, - #endif +#endif - [SCREEN_GAMEPLAY] = HandleGameplayScreen, [SCREEN_GAME_OVER] = HandleGameOverScreen, - [SCREEN_CREDITS] = HandleCreditsScreen, [SCREEN_DEBUG_TEXT] = HandleDebugTextScreen, + [SCREEN_GAMEPLAY] = HandleGameplayScreen, + [SCREEN_GAME_OVER] = HandleGameOverScreen, + [SCREEN_CREDITS] = HandleCreditsScreen, + [SCREEN_DEBUG_TEXT] = HandleDebugTextScreen, }; static void sub_080560B8(void); @@ -116,11 +118,11 @@ static void sub_08055F70(void) { size = (u32)gUnk_080B2CD8_2 - (u32)gUnk_080B2CD8_3; if (size != 0) { - #ifdef DEMO +#ifdef DEMO MemCopy(gUnk_080B2CD8_3, gUnk_02038558, size); - #else +#else MemCopy(gUnk_080B2CD8_3, gUnk_02038560, size); - #endif +#endif } DispReset(0); @@ -173,7 +175,11 @@ const Defaults sDefaultSettings = { .saveFileId = 0, .messageSpeed = 1, .brightnessPref = 1, +#ifdef EU + .gameLanguage = 2, // TODO in EU 2 is english? +#else .gameLanguage = GAME_LANGUAGE, +#endif .name = "LINK", ._e = 0, ._f = 0, @@ -212,9 +218,16 @@ NONMATCH("asm/non_matching/sub_080560B8.inc", static void sub_080560B8(void)) { END_NONMATCH u32 sub_08056134(void) { +#ifdef EU + if ((gUnk_02000000->signature != SIGNATURE) || (gUnk_02000000->saveFileId >= NUM_SAVE_SLOTS) || + (gUnk_02000000->messageSpeed >= MAX_MSG_SPEED) || (gUnk_02000000->brightnessPref >= MAX_BRIGHTNESS) || + (gUnk_02000000->gameLanguage <= GAME_LANGUAGE) || (gUnk_02000000->gameLanguage >= 7) || + (gUnk_02000000->_e != 0)) +#else if ((gUnk_02000000->signature != SIGNATURE) || (gUnk_02000000->saveFileId >= NUM_SAVE_SLOTS) || (gUnk_02000000->messageSpeed >= MAX_MSG_SPEED) || (gUnk_02000000->brightnessPref >= MAX_BRIGHTNESS) || (gUnk_02000000->gameLanguage != GAME_LANGUAGE) || (gUnk_02000000->_e != 0)) +#endif return FALSE; return TRUE; diff --git a/src/manager/manager4.c b/src/manager/manager4.c index 7066c507..ccce7d47 100644 --- a/src/manager/manager4.c +++ b/src/manager/manager4.c @@ -96,6 +96,11 @@ END_NONMATCH extern void sub_08080930(); +#ifdef EU +NAKED void sub_08057A18(Manager* this, DiggingCaveEntrance* entr) { + asm(".incbin \"baserom_eu.gba\", 0x057580, 0x0000078"); // TODOg disassemble +} +#else void sub_08057A18(Manager* this, DiggingCaveEntrance* entr) { u16 tmp; sub_0805E5A8(); @@ -118,6 +123,7 @@ void sub_08057A18(Manager* this, DiggingCaveEntrance* entr) { sub_08080930(entr->unk_03); DeleteManager(this); } +#endif DiggingCaveEntrance* sub_08057AA8(DiggingCaveEntrance* entr, int roomID) { for (; entr->unk_00 != 0xFFFF; entr++) { diff --git a/src/manager/manager7.c b/src/manager/manager7.c index 0b0431df..b30beaf1 100644 --- a/src/manager/manager7.c +++ b/src/manager/manager7.c @@ -18,12 +18,29 @@ extern u32 sub_08056300(const u16*); extern const u8 gGlobalGfxAndPalettes[]; -const u16 gUnk_08108050[0x2A] = { 0, 0, 0x20, 0xE0, 0xE0, 1, 0, 0x1D0, 0x80, 0x60, 2, - 0x170, 0x278, 0xF8, 0xA0, 3, 0x310, 0x178, 0xC0, 0x150, 3, 0x340, - 0x2C8, 0x60, 0x90, 4, 0x1D0, 0, 0x200, 0xE0, 1, 0x108, 0x188, - 0xD0, 0x80, 2, 0x1E8, 0x338, 0x50, 0xC0, 0xFF, 0 }; +const u16 gUnk_08108050[0x2A] = { +#ifdef EU + 0, 0, 0x20, 0xE0, 0xE0, 1, 0x28, 0x1C8, 0x60, 0x80, 2, + 0x188, 0x278, 0xE0, 0xA0, 3, 0x310, 0x178, 0xC0, 0x150, 3, 0x340, +#else + 0, 0, 0x20, 0xE0, 0xE0, 1, 0, 0x1D0, 0x80, 0x60, 2, + 0x170, 0x278, 0xF8, 0xA0, 3, 0x310, 0x178, 0xC0, 0x150, 3, 0x340, +#endif + 0x2C8, 0x60, 0x90, 4, 0x1D0, 0, 0x200, 0xE0, 1, 0x108, 0x188, + 0xD0, 0x80, 2, 0x1E8, 0x338, 0x50, 0xC0, 0xFF, 0 +}; const u32 gUnk_081080A4[0x50] = { +#ifdef EU + 0x109860, 0x6000000, 0x10a860, 0x6001000, 0x10b860, 0x6002000, 0x10c860, 0x6003000, 0x10d860, 0x6008000, + 0x10e860, 0x6009000, 0x10f860, 0x600a000, 0x110860, 0x600b000, 0x111860, 0x6000000, 0x112860, 0x6001000, + 0x113860, 0x6002000, 0x114860, 0x6003000, 0x115860, 0x6008000, 0x116860, 0x6009000, 0x117860, 0x600a000, + 0x118860, 0x600b000, 0x119860, 0x6000000, 0x11a860, 0x6001000, 0x11b860, 0x6002000, 0x11c860, 0x6003000, + 0x11d860, 0x6008000, 0x11e860, 0x6009000, 0x11f860, 0x600a000, 0x120860, 0x600b000, 0x121860, 0x6000000, + 0x122860, 0x6001000, 0x123860, 0x6002000, 0x124860, 0x6003000, 0x125860, 0x6008000, 0x126860, 0x6009000, + 0x127860, 0x600a000, 0x128860, 0x600b000, 0x129860, 0x6000000, 0x12a860, 0x6001000, 0x12b860, 0x6002000, + 0x12c860, 0x6003000, 0x12d860, 0x6008000, 0x12e860, 0x6009000, 0x12f860, 0x600a000, 0x130860, 0x600b000 +#else 0x001095E0, 0x06000000, 0x0010A5E0, 0x06001000, 0x0010B5E0, 0x06002000, 0x0010C5E0, 0x06003000, 0x0010D5E0, 0x06008000, 0x0010E5E0, 0x06009000, 0x0010F5E0, 0x0600A000, 0x001105E0, 0x0600B000, 0x001115E0, 0x06000000, 0x001125E0, 0x06001000, 0x001135E0, 0x06002000, 0x001145E0, 0x06003000, 0x001155E0, 0x06008000, 0x001165E0, @@ -33,10 +50,16 @@ const u32 gUnk_081080A4[0x50] = { 0x001245E0, 0x06003000, 0x001255E0, 0x06008000, 0x001265E0, 0x06009000, 0x001275E0, 0x0600A000, 0x001285E0, 0x0600B000, 0x001295E0, 0x06000000, 0x0012A5E0, 0x06001000, 0x0012B5E0, 0x06002000, 0x0012C5E0, 0x06003000, 0x0012D5E0, 0x06008000, 0x0012E5E0, 0x06009000, 0x0012F5E0, 0x0600A000, 0x001305E0, 0x0600B000 +#endif }; const u8 gUnk_081081E4[] = { 0x16, 0x17, 0x17, 0x18, 0x18 }; +#ifdef EU +NAKED void Manager7_Main(Manager7* this) { + asm(".incbin \"baserom_eu.gba\", 0x0578A0, 0x00000CC"); // TODOg disassemble +} +#else void Manager7_Main(Manager7* this) { u32 tmp; const u32* tmp2; @@ -44,6 +67,7 @@ void Manager7_Main(Manager7* this) { this->manager.action = 1; this->manager.unk_0e = 8; this->unk_20 = 0xFF; + sub_0805E3A0(this, 6); sub_08052D74(this, sub_08057E30, 0); } @@ -56,9 +80,9 @@ void Manager7_Main(Manager7* this) { } if (gRoomControls.unk2) return; - #ifndef JP +#ifndef JP tmp = this->unk_20; - #endif +#endif tmp2 = &gUnk_081080A4[tmp << 4]; switch (this->manager.unk_0e) { case 0: @@ -84,6 +108,7 @@ void Manager7_Main(Manager7* this) { break; } } +#endif void sub_08057E30(Manager7* this) { sub_08057E7C(gRoomVars.unk_10); @@ -107,6 +132,11 @@ void sub_08057E64() { } } +#ifdef EU +NAKED void sub_08057E7C(u32 unk1) { + asm(".incbin \"baserom_eu.gba\", 0x0579B8, 0x0000050"); // TODOg disassemble +} +#else void sub_08057E7C(u32 unk1) { u32 tmp; const u32* tmp2; @@ -119,3 +149,4 @@ void sub_08057E7C(u32 unk1) { } gRoomVars.unk_10 = unk1; } +#endif diff --git a/src/npc/castleMaid.c b/src/npc/castleMaid.c index eceef3d3..dc513e2e 100644 --- a/src/npc/castleMaid.c +++ b/src/npc/castleMaid.c @@ -97,13 +97,13 @@ void sub_0806464C(Entity* this) { s32 tmp; if (CheckGlobalFlag(0x15) != 0) { tmp = 2; -#ifdef JP +#if defined(JP) || defined(EU) } else if (CheckLocalFlag(0x9f) == 0) { #else } else if (CheckLocalFlag(0xa0) == 0) { #endif tmp = 0; -#ifdef JP +#if defined(JP) || defined(EU) SetLocalFlag(0x9f); #else SetLocalFlag(0xa0); diff --git a/src/npc/castorWildsStatue.c b/src/npc/castorWildsStatue.c index 874ba09a..b508d100 100644 --- a/src/npc/castorWildsStatue.c +++ b/src/npc/castorWildsStatue.c @@ -58,7 +58,7 @@ void sub_08067418(Entity* this) { this->spriteOrientation.flipY = 1; this->spriteRendering.b3 = 1; this->spritePriority.b0 = 2; -#ifdef JP +#if defined(JP) || defined(EU) if (CheckLocalFlag(0x1e) == 0) { #else if (CheckLocalFlag(0x1d) == 0) { diff --git a/src/npc/dog.c b/src/npc/dog.c index 851cdbf4..97486431 100644 --- a/src/npc/dog.c +++ b/src/npc/dog.c @@ -74,7 +74,7 @@ void sub_08069B44(Entity* this) { if (((this->type == 0) && ((gPlayerState.flags.all & 0x80) == 0)) && (GetInventoryValue(0x36) != 2)) { this->action = 4; } -#ifdef JP +#if defined(JP) || defined(EU) if ((this->type == 2) && (CheckLocalFlag(0xcc) == 0)) { #else if ((this->type == 2) && (CheckLocalFlag(0xcf) == 0)) { @@ -221,7 +221,15 @@ void sub_08069E50(Entity* this) { void sub_08069ECC(Entity* this) { if (UpdateFuseInteraction(this) != 0) { +#ifdef EU + if (GetInventoryValue(0x36) != 2) { + this->action = 5; + } else { + this->action = 1; + } +#else this->action = 1; +#endif } } @@ -262,7 +270,7 @@ void sub_08069F6C(Entity* this) { } u32 sub_08069F90(Entity* this) { -#ifdef JP +#if defined(JP) || defined(EU) if ((this->type == 2) && (CheckLocalFlag(0xcc) == 0)) { #else if ((this->type == 2) && (CheckLocalFlag(0xcf) == 0)) { @@ -320,13 +328,13 @@ void sub_0806A0A4(Entity* this) { if ((gPlayerState.flags.all & 0x80) != 0) { dialog = 4; -#ifdef JP +#if defined(JP) || defined(EU) if (CheckLocalFlag(0xcc) == 0) { #else if (CheckLocalFlag(0xcf) == 0) { #endif dialog = 3; -#ifdef JP +#if defined(JP) || defined(EU) SetLocalFlag(0xcc); #else SetLocalFlag(0xcf); @@ -336,19 +344,19 @@ void sub_0806A0A4(Entity* this) { } else { dialog = 2; -#ifdef JP +#if defined(JP) || defined(EU) if (CheckLocalFlag(0xcc) == 0) { #else if (CheckLocalFlag(0xcf) == 0) { #endif dialog = 1; -#ifdef JP +#if defined(JP) || defined(EU) if (CheckLocalFlag(0xd8) == 0) { #else if (CheckLocalFlag(0xdb) == 0) { #endif dialog = 0; -#ifdef JP +#if defined(JP) || defined(EU) SetLocalFlag(0xd8); #else SetLocalFlag(0xdb); diff --git a/src/npc/gina.c b/src/npc/gina.c index b9b2e255..95886173 100644 --- a/src/npc/gina.c +++ b/src/npc/gina.c @@ -29,9 +29,9 @@ void Gina(Entity* this) { case 2: if (UpdateFuseInteraction(this) != 0) { this->action = 1; - #ifndef JP +#if defined(USA) || defined(DEMO) SetLocalFlag(0x88); - #endif +#endif } break; } diff --git a/src/npc/goronMerchant.c b/src/npc/goronMerchant.c index a34046b7..ca41b899 100644 --- a/src/npc/goronMerchant.c +++ b/src/npc/goronMerchant.c @@ -164,6 +164,27 @@ void (*const gUnk_08111B98[])(Entity*) = { }; const u16 GoronMerchant_KinstonePrices[] = { +#ifdef EU + 200, + 100, + 50, + // prices after restock 1 + 300, + 200, + 100, + // prices after restock 2 + 400, + 300, + 200, + // prices after restock 3 + 500, + 400, + 300, + // prices after restock 4 + 600, + 500, + 400, +#else 300, 200, 50, @@ -183,4 +204,5 @@ const u16 GoronMerchant_KinstonePrices[] = { 300, 200, 50, +#endif }; diff --git a/src/npc/npc4E.c b/src/npc/npc4E.c index b62fb5fc..b82dfa45 100644 --- a/src/npc/npc4E.c +++ b/src/npc/npc4E.c @@ -105,35 +105,35 @@ void sub_0806DAD0(Entity* this) { void sub_0806DAE8(Entity* this) { switch (this->type - 1) { case 0: -#ifdef JP +#if defined(JP) || defined(EU) SetLocalFlag(0xeb); #else SetLocalFlag(0xee); #endif break; case 1: -#ifdef JP +#if defined(JP) || defined(EU) SetLocalFlag(0xec); #else SetLocalFlag(0xef); #endif break; case 2: -#ifdef JP +#if defined(JP) || defined(EU) SetLocalFlag(0xed); #else SetLocalFlag(0xf0); #endif break; case 3: -#ifdef JP +#if defined(JP) || defined(EU) SetLocalFlag(0xee); #else SetLocalFlag(0xf1); #endif break; case 4: -#ifdef JP +#if defined(JP) || defined(EU) SetLocalFlag(0xef); #else SetLocalFlag(0xf2); @@ -147,7 +147,7 @@ void sub_0806DAE8(Entity* this) { void sub_0806DB44(Entity* this, ScriptExecutionContext* context) { context->condition = 0; -#ifdef JP +#if defined(JP) || defined(EU) if (CheckLocalFlag(0xeb) != 0 && CheckLocalFlag(0xec) != 0 && CheckLocalFlag(0xed) != 0 && CheckLocalFlag(0xee) != 0 && CheckLocalFlag(0xef) != 0) { #else @@ -262,10 +262,14 @@ void NPC4E_Fusion(Entity* this) { const Hitbox gUnk_08114154 = { 0, -8, 0, 0, 0, 0, 24, 8 }; const u8 gUnk_0811415C[] = { // - 0x00, 0x00, 0x08, 0x08, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x10, 0x04, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x0a, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x04, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x08, 0x10, 0x04, 0x0e, 0x00, - 0x00, 0x00, 0x00, 0xf8, 0x18, 0x08, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x08, 0x0e, 0x00, 0x00, 0x00 + 0x00, 0x00, 0x08, 0x08, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x0e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x04, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0a, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x06, 0x04, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x08, 0x10, 0x04, + 0x0e, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x18, 0x08, 0x0e, 0x00, 0x00, 0x00, +#ifndef EU + 0x00, 0x00, 0x58, 0x08, 0x0e, 0x00, 0x00, 0x00 +#endif }; extern ScreenTransitionData gUnk_0813AB6C; extern ScreenTransitionData gUnk_0813ABBC; @@ -285,14 +289,16 @@ extern ScreenTransitionData gUnk_0813ACFC; // Array of pointers to ScreenTransitionData const ScreenTransitionData* const gUnk_081141A4[] = { // - &gUnk_0813AB6C, &gUnk_0813ABBC, &gUnk_0813ABE4, &gUnk_0813ABF8, &gUnk_0813AC0C, &gUnk_0813AC20, - &gUnk_0813AC5C, &gUnk_0813AC70, &gUnk_0813AC84, &gUnk_0813AC98, &gUnk_0813ACAC, &gUnk_0813ACC0, - &gUnk_0813ACD4, &gUnk_0813ACE8, &gUnk_0813AC5C, &gUnk_0813ACFC + &gUnk_0813AB6C, &gUnk_0813ABBC, &gUnk_0813ABE4, &gUnk_0813ABF8, + &gUnk_0813AC0C, &gUnk_0813AC20, &gUnk_0813AC5C, &gUnk_0813AC70, + &gUnk_0813AC84, &gUnk_0813AC98, &gUnk_0813ACAC, &gUnk_0813ACC0, + &gUnk_0813ACD4, &gUnk_0813ACE8, &gUnk_0813AC5C, &gUnk_0813ACFC }; // param_2 for the call to sub_0808091C, same indices as gUnk_081141A4 const u8 gUnk_081141E4[] = { // - 0x02, 0x02, 0x04, 0x04, 0x02, 0x02, 0x09, 0x02, 0x02, 0x04, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02 + 0x02, 0x02, 0x04, 0x04, 0x02, 0x02, 0x09, 0x02, + 0x02, 0x04, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02 }; // tiles that are changed? diff --git a/src/npc/phonograph.c b/src/npc/phonograph.c index 0b26b4db..f2061b41 100644 --- a/src/npc/phonograph.c +++ b/src/npc/phonograph.c @@ -25,9 +25,15 @@ void Phonograph(Entity* this) { ASM_FUNC("asm/non_matching/phonograph/sub_0806E964.inc", void sub_0806E964(Entity* this, ScriptExecutionContext* context)) +#ifdef EU +NAKED void sub_0806EABC(Entity* this, u32 param) { + asm(".incbin \"baserom_eu.gba\", 0x06E4F8, 0x000003C"); // TODOg disassemble +} +#else void sub_0806EABC(Entity* this, u32 param) { sub_08050384(); sub_08057044(param, &gUnk_020227E8, 0x202020); sub_0805F46C(0x3302, &gUnk_081146B8); gScreen.bg.bg0Updated = 1; } +#endif diff --git a/src/npc/stockwell.c b/src/npc/stockwell.c index 17138947..3977a633 100644 --- a/src/npc/stockwell.c +++ b/src/npc/stockwell.c @@ -31,7 +31,9 @@ void sub_08065080(Entity* this) { sub_0805E3A0(this, 2); InitializeAnimation(this, 4); sub_08078778(this); +#ifndef EU sub_08078850(this, 0, 0, &gUnk_0810FDA0); +#endif context = StartCutscene(this, &script_080142B0); *(ScriptExecutionContext**)&this->cutsceneBeh = context; } diff --git a/src/object/fileScreenObjects.c b/src/object/fileScreenObjects.c index de79631a..bff3a5d8 100644 --- a/src/object/fileScreenObjects.c +++ b/src/object/fileScreenObjects.c @@ -139,7 +139,11 @@ static bool32 sub_0808E950(void) { void sub_0808E988(Entity* this) { if (this->action == 0) { this->action = 1; +#ifdef EU + this->spriteIndex = 0x141; +#else this->spriteIndex = 0x142; +#endif this->type2 = 0xFF; sub_080AE008(this, 1, 3); } diff --git a/src/object/itemOnGround.c b/src/object/itemOnGround.c index 493ed137..ee77e759 100644 --- a/src/object/itemOnGround.c +++ b/src/object/itemOnGround.c @@ -270,7 +270,11 @@ void sub_080812A8(Entity* this) { void sub_080812E8(Entity* this) { PlayerState* playerState = &gPlayerState; +#ifdef EU + if ((playerState->swimState & 0x80) && sub_080177A0(this, &gPlayerEntity)) { +#else if ((playerState->swimState & 0x80) && !(playerState->flags.all & 0x80) && sub_080177A0(this, &gPlayerEntity)) { +#endif sub_080810FC(this); } } diff --git a/src/object/objectA2.c b/src/object/objectA2.c index 701a12d5..2cc132fe 100644 --- a/src/object/objectA2.c +++ b/src/object/objectA2.c @@ -44,6 +44,7 @@ void sub_0809F318(Entity* this) { void sub_0809F374(Entity* this) { sub_0806F69C(this); +#ifndef EU if (gUnk_02000000->gameLanguage < 2) { if (sub_080044EC(this, 0x2000) < 2) { this->height.WORD = 0; @@ -54,6 +55,7 @@ void sub_0809F374(Entity* this) { this->actionDelay++; } } else { +#endif switch (sub_080044EC(this, 0x2000)) { default: this->actionDelay++; @@ -67,7 +69,9 @@ void sub_0809F374(Entity* this) { sub_0809F448(this); SoundReq(SFX_186); } +#ifndef EU } +#endif } void sub_0809F3E8(Entity* this) { diff --git a/src/player.c b/src/player.c index 4e634712..21b3c234 100644 --- a/src/player.c +++ b/src/player.c @@ -99,7 +99,9 @@ void PlayerInit(Entity* this) { this->damageType = 0x79; this->hitbox = &gUnk_08114F88; this->spriteIndex = 1; +#ifndef EU gPlayerState.field_0x8 = 0x100; +#endif sub_0806FDA0(this); sub_080AE008(this, 1, 2); InitAnimationForceUpdate(this, 2); diff --git a/src/projectile/projectile13.c b/src/projectile/projectile13.c index 434b3902..092a99bc 100644 --- a/src/projectile/projectile13.c +++ b/src/projectile/projectile13.c @@ -123,6 +123,11 @@ void sub_080A9FD0(Entity* this) { } } +#ifdef EU +NAKED void sub_080AA044(Entity* this) { + asm(".incbin \"baserom_eu.gba\", 0x0A983C, 0x00000C4"); // TODOg disassemble +} +#else void sub_080AA044(Entity* this) { u32 uVar1; s8* tmp; @@ -163,6 +168,7 @@ void sub_080AA044(Entity* this) { } } } +#endif void sub_080AA110(Entity* this) { s32 iVar1; diff --git a/src/projectile/projectile18.c b/src/projectile/projectile18.c index 373126a8..7efec1c5 100644 --- a/src/projectile/projectile18.c +++ b/src/projectile/projectile18.c @@ -154,6 +154,7 @@ void sub_080AAF10(Entity* this) { if (this->type != 0) { this->currentHealth = this->parent->currentHealth; } +#ifndef EU if (this->parent->action == 2) { if ((this->flags & 0x80) != 0) { this->flags &= 0x7f; @@ -163,6 +164,7 @@ void sub_080AAF10(Entity* this) { this->flags |= 0x80; } } +#endif } void sub_080AAF74(Entity* this) { diff --git a/src/projectile/projectile19.c b/src/projectile/projectile19.c index 6106a5d8..8c23bd65 100644 --- a/src/projectile/projectile19.c +++ b/src/projectile/projectile19.c @@ -68,7 +68,9 @@ void sub_080AB26C(Entity* this) { this->action = 1; this->actionDelay = 5; this->frameIndex = 0; +#ifndef EU this->spritePriority.b1 = 0; +#endif } if (--this->actionDelay == 0) { DeleteThisEntity(); diff --git a/src/room.c b/src/room.c index da1bc36d..1b9400e0 100644 --- a/src/room.c +++ b/src/room.c @@ -566,14 +566,18 @@ void sub_0804BAC0(void) { if (!CheckGlobalFlag(LV2_CLEAR)) { LoadRoomEntityList(&gUnk_080D7328); } - #ifdef JP +#ifdef JP if (CheckGlobalFlag(CASTLE_BGM) || CheckGlobalFlag(ENDING)) { - #else +#else +#ifdef EU + if (CheckGlobalFlag(ENDING)) { +#else if (CheckGlobalFlag(CASTLE_BGM)) { - + gArea.pMusicIndex = 0x1b; } else if (CheckGlobalFlag(ENDING)) { - #endif +#endif +#endif gArea.pMusicIndex = gArea.musicIndex; } } @@ -592,6 +596,18 @@ extern EntityData gUnk_080D73B0; extern EntityData gUnk_080D73E0; void sub_0804BB3C(void) { +#ifdef EU + if (CheckGlobalFlag(ENDING)) { + gArea.pMusicIndex = gArea.musicIndex; + } else { + if (!CheckGlobalFlag(LV2_CLEAR)) { + LoadRoomEntityList(&gUnk_080D73B0); + } + if (!CheckGlobalFlag(LV1_CLEAR) && CheckGlobalFlag(TABIDACHI)) { + LoadRoomEntityList(&gUnk_080D73E0); + } + } +#else if (!CheckGlobalFlag(ENDING)) { if (!CheckGlobalFlag(LV2_CLEAR)) { LoadRoomEntityList(&gUnk_080D73B0); @@ -605,6 +621,7 @@ void sub_0804BB3C(void) { } else { gArea.pMusicIndex = gArea.musicIndex; } +#endif } u32 sub_0804BB9C() { @@ -617,9 +634,11 @@ extern EntityData gUnk_080D75D8; extern EntityData gUnk_080D7618; void sub_0804BBA0(void) { +#ifndef EU if (CheckGlobalFlag(CASTLE_BGM)) { gArea.pMusicIndex = gArea.musicIndex; } +#endif if (CheckGlobalFlag(ENDING)) { LoadRoomEntityList(&gUnk_080D7618); @@ -641,21 +660,21 @@ u32 sub_0804BC34() { extern EntityData gUnk_080D7690; void sub_0804bc38(void) { - #ifdef JP +#if defined(JP) || defined(EU) if (CheckLocalFlag(0x9b)) { - #else +#else if (CheckLocalFlag(0x9c)) { - #endif +#endif LoadRoomEntityList(&gUnk_080D7690); } } u32 sub_0804BC50(void) { - #ifdef JP +#if defined(JP) || defined(EU) if (!CheckLocalFlag(0x9e)) { - #else +#else if (!CheckLocalFlag(0x9f)) { - #endif +#endif gScreenTransition.field_0xf = 5; ClearGlobalFlag(ZELDA_CHASE); } @@ -665,16 +684,22 @@ u32 sub_0804BC50(void) { extern u32 script_08009E88; void sub_0804BC70(void) { - #ifdef JP +#if defined(JP) || defined(EU) if (!CheckLocalFlag(0x9e)) { - #else +#else if (!CheckLocalFlag(0x9f)) { - #endif +#endif DoFade(5, 0x100); gPlayerEntity.x.HALF.HI = gRoomControls.roomOriginX + 0xb0; gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x40; sub_080751E8(0, 6, &script_08009E88); +#ifdef EU + SoundReq(0x80010000); + gArea.musicIndex = gArea.pMusicIndex; } +#else + } + if (!CheckGlobalFlag(TABIDACHI)) { sub_08052878(); #ifndef JP @@ -683,15 +708,16 @@ void sub_0804BC70(void) { } #endif if (CheckGlobalFlag(CASTLE_BGM)) { - #ifdef JP +#ifdef JP gArea.pMusicIndex = gArea.musicIndex; - #else - gArea.pMusicIndex = 0x1b; - #endif +#else + gArea.pMusicIndex = 0x1b; +#endif } #ifndef JP } #endif +#endif } extern ScreenTransitionData gUnk_0813AB80; @@ -1979,7 +2005,7 @@ void sub_0804CAA0(void) { if (CheckGlobalFlag(KUMOTATSUMAKI)) { sub_0809F814(0x6de); } -#ifdef JP +#if defined(JP) || defined(EU) if (CheckLocalFlag(0xf0)) { #else if (CheckLocalFlag(0xf3)) { @@ -1988,7 +2014,7 @@ void sub_0804CAA0(void) { } else { LoadRoomEntityList(&gUnk_080DD7E0); } -#ifdef JP +#if defined(JP) || defined(EU) if (CheckLocalFlag(0xf2)) { #else if (CheckLocalFlag(0xf5)) { @@ -2005,7 +2031,7 @@ u32 sub_0804CAF4() { void sub_0804CAF8() { sub_080300E8(); -#ifdef JP +#if defined(JP) || defined(EU) SetLocalFlag(0x25); #else SetLocalFlag(0x24); @@ -2033,7 +2059,7 @@ void sub_0804CB14(void) { } void sub_0804CB2C(void) { -#ifdef JP +#if defined(JP) || defined(EU) if (CheckLocalFlagByOffset(0x100, 0x28)) { #else if (CheckLocalFlagByOffset(0x100, 0x27)) { @@ -2073,14 +2099,14 @@ extern EntityData gUnk_080DE200; void sub_0804CB7C(void) { sub_080300E8(); -#ifdef JP +#if defined(JP) || defined(EU) if (!CheckLocalFlag(0x31)) { #else if (!CheckLocalFlag(0x30)) { #endif LoadRoomEntityList(&gUnk_080DE1E0); } -#ifdef JP +#if defined(JP) || defined(EU) if (!CheckLocalFlag(0x32)) { #else if (!CheckLocalFlag(0x31)) { @@ -2214,9 +2240,9 @@ u32 sub_0804CD0C() { #ifdef DEMO void nullsub_251() { if (gUnk_02000000->saveFileId != 0 && GetInventoryValue(0x40) == 0) { - SetTileType(0x365,0x349,1); - SetTileType(0x365,0x34a,1); - SetTileType(0x365,0x34b,1); + SetTileType(0x365, 0x349, 1); + SetTileType(0x365, 0x34a, 1); + SetTileType(0x365, 0x34b, 1); } } #else @@ -2351,9 +2377,9 @@ u32 sub_0804CE38() { #ifdef DEMO void nullsub_262() { if (GetInventoryValue(0x41) == 0) { - SetTileType(0x365,0x287,2); - SetTileType(0x365,0x288,2); - SetTileType(0x365,0x289,2); + SetTileType(0x365, 0x287, 2); + SetTileType(0x365, 0x288, 2); + SetTileType(0x365, 0x289, 2); } } #else @@ -4288,9 +4314,9 @@ void LoadHyruleTown(void) { sub_08054570(); TryLoadPrologueHyruleTown(); - #ifndef JP +#if defined(USA) || defined(DEMO) SetTileType(0x176, 0x66b, 1); - #endif +#endif if (gSave.unk8 == 1) { sub_0801D000(0); } else { @@ -4348,7 +4374,7 @@ void LoadHyruleTown(void) { LoadRoomEntityList(&gUnk_080EEA5C); } // rocs cape -#ifdef JP +#if defined(JP) || defined(EU) if (!CheckLocalFlag(0xcd) && GetInventoryValue(0x14)) { #else if (!CheckLocalFlag(0xd0) && GetInventoryValue(0x14)) { @@ -4490,18 +4516,22 @@ void sub_0804E27C(void) { if (!CheckGlobalFlag(TABIDACHI)) { LoadRoomEntityList(&gUnk_080F0650); +#ifdef EU + gArea.pMusicIndex = 0x10; +#else gArea.pMusicIndex = 0x13; SetGlobalFlag(CASTLE_BGM); } else { if (CheckGlobalFlag(CASTLE_BGM)) { - #ifdef JP - gArea.pMusicIndex = gArea.musicIndex; - #else - gArea.pMusicIndex = 0x1b; - #endif - } - } #ifdef JP + gArea.pMusicIndex = gArea.musicIndex; +#else + gArea.pMusicIndex = 0x1b; +#endif + } +#endif + } +#if defined(JP) || defined(EU) if (!CheckLocalFlag(0x9b)) { #else if (!CheckLocalFlag(0x9c)) { @@ -4528,13 +4558,13 @@ void sub_0804E27C(void) { } SetTileType(0x4072, 600, 1); SetTileType(0x4072, 0x298, 1); -#ifdef JP +#if defined(JP) || defined(EU) if (CheckLocalFlag(0x11)) { #else if (CheckLocalFlag(0x10)) { #endif LoadRoomEntityList(&gUnk_080F0920); -#ifdef JP +#if defined(JP) || defined(EU) ClearLocalFlag(0x11); #else ClearLocalFlag(0x10); @@ -5127,7 +5157,7 @@ void sub_0804EC00(void) { if (!CheckGlobalFlag(EZERO_1ST)) { LoadRoomEntityList(&gUnk_080F4D50); } -#ifdef JP +#if defined(JP) || defined(EU) if (!CheckLocalFlag(0x3d)) { if (!CheckLocalFlag(0x3a)) { #else @@ -5146,10 +5176,10 @@ void sub_0804EC00(void) { if ((s32)gSave.windcrests > -1) { LoadRoomEntityList(&gUnk_080F4E10); } - #ifdef DEMO - SetTileType(0x177,0x5b4,1); - SetTileType(0x177,0x5f4,1); - #endif +#ifdef DEMO + SetTileType(0x177, 0x5b4, 1); + SetTileType(0x177, 0x5f4, 1); +#endif } void sub_0804EC98(void) { @@ -5183,7 +5213,7 @@ void sub_0804ECEC(void) { // white sword if (GetInventoryValue(0x2)) { LoadRoomEntityList(&gUnk_080F5328); -#ifdef JP +#if defined(JP) || defined(EU) if (!CheckLocalFlag(0x15)) { #else if (!CheckLocalFlag(0x14)) { @@ -5302,10 +5332,12 @@ void sub_0804EEBC(void) { } if (!GetInventoryValue(0xb) && !GetInventoryValue(0xc)) { LoadRoomEntityList(&gUnk_080F5888); +#ifndef EU } else { if (!CheckLocalFlag(0xcd)) { LoadRoomEntityList(&gUnk_080F58A8); } +#endif } } if (GetInventoryValue(0x9) || CheckGlobalFlag(LV3_CLEAR)) { @@ -5335,9 +5367,11 @@ u32 sub_0804EFB8() { extern EntityData gUnk_080F5B3C; void sub_0804EFBC(void) { +#ifndef EU if (GetInventoryValue(0x38) == 1) { LoadRoomEntityList(&gUnk_080F5B3C); } +#endif } u32 sub_0804EFD4() { @@ -5372,7 +5406,7 @@ u32 sub_0804F02C() { extern EntityData gUnk_080F5E68; void sub_0804F030(void) { -#ifdef JP +#if defined(JP) || defined(EU) if (!CheckLocalFlagByOffset(0x100, 0xce)) { #else if (!CheckLocalFlagByOffset(0x100, 0xd1)) { @@ -5416,7 +5450,7 @@ void nullsub_400() { } u32 sub_0804F09C(void) { -#ifdef JP +#if defined(JP) || defined(EU) if (CheckGlobalFlag(KUMOTATSUMAKI) && CheckLocalFlagByOffset(0x100, 0xd9)) { #else if (CheckGlobalFlag(KUMOTATSUMAKI) && CheckLocalFlagByOffset(0x100, 0xdc)) { @@ -5429,7 +5463,7 @@ u32 sub_0804F09C(void) { extern EntityData gUnk_080F61BC; void sub_0804F0C0(void) { -#ifdef JP +#if defined(JP) || defined(EU) if (CheckLocalFlagByOffset(0x100, 0xd9)) { #else if (CheckLocalFlagByOffset(0x100, 0xdc)) { @@ -5498,7 +5532,9 @@ void sub_0804F190(void) { LoadRoomEntityList(&gUnk_080F66AC); } sub_08052CA4(8, 0, 0x1e8, 0x158); +#ifndef EU gArea.areaMetadata |= 0x80; +#endif } u32 sub_0804F1DC() { @@ -5580,7 +5616,7 @@ void sub_0804F230() { } u32 sub_0804F23C(void) { -#ifdef JP +#if defined(JP) || defined(EU) if (!CheckLocalFlag(0x6b)) { #else if (!CheckLocalFlag(0x6d)) { @@ -5597,7 +5633,7 @@ extern EntityData gUnk_080F7088; void sub_0804F25C(void) { sub_0805ADD8(0); -#ifdef JP +#if defined(JP) || defined(EU) if (!CheckLocalFlag(0x6b)) { #else if (!CheckLocalFlag(0x6d)) { @@ -5707,7 +5743,7 @@ u32 Vars_HyruleField_OutsideCastle(void) { gRoomVars.field_0x6c = &gUnk_080F7CD0; gRoomVars.field_0x88 = sub_0804F5E8; } -#ifdef JP +#if defined(JP) || defined(EU) if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(0x3) && !CheckLocalFlag(0x8a)) { #else if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(0x3) && !CheckLocalFlag(0x8c)) { @@ -5716,9 +5752,11 @@ u32 Vars_HyruleField_OutsideCastle(void) { gRoomVars.field_0x88 = sub_0804F4E4; gRoomVars.field_0x74 = NULL; } +#ifndef EU if (CheckGlobalFlag(TABIDACHI)) { ClearGlobalFlag(CASTLE_BGM); } +#endif return 1; } @@ -5731,7 +5769,7 @@ extern EntityData gUnk_080F7D70; void Load_HyruleField_OutsideCastle(void) { sub_0804F4E4(); -#ifdef JP +#if defined(JP) || defined(EU) if (!CheckLocalFlag(0x89)) { #else if (!CheckLocalFlag(0x8b)) { @@ -5744,14 +5782,18 @@ void Load_HyruleField_OutsideCastle(void) { SetTileType(0x174, 0x7a7, 1); } if (!CheckGlobalFlag(TABIDACHI)) { +#ifdef EU + gArea.pMusicIndex = 0x10; +#else gArea.pMusicIndex = 0x13; +#endif } } extern EntityData gUnk_080F7DC0; void sub_0804F578(void) { -#ifdef JP +#if defined(JP) || defined(EU) if (!CheckLocalFlag(0x8c)) { #else if (!CheckLocalFlag(0x8e)) { @@ -5923,7 +5965,7 @@ extern EntityData gUnk_080F82E0; void Load_HyruleField_TrilbyHighlands(void) { sub_0805ADD8(0); -#ifdef JP +#if defined(JP) || defined(EU) if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(0x3) && !CheckLocalFlag(0x9b)) { #else if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(0x3) && !CheckLocalFlag(0x9c)) { @@ -6579,9 +6621,9 @@ u32 sub_0804FED4() { } void sub_0804FED8(void) { - #ifndef JP +#if defined(USA) || defined(DEMO) SetTileType(0x176, 0x66f, 1); - #endif +#endif } u32 sub_0804FEEC() { diff --git a/src/save.c b/src/save.c index 0d20e003..04495ae3 100644 --- a/src/save.c +++ b/src/save.c @@ -46,17 +46,16 @@ const char gUnk_0811E470[4] = "LINK"; #ifdef DEMO const u8 unknown[] = { 0x0, 0x0f, 0x0a, 0x0a, 0x0f, 0x0f, 0x0f, 0x08, 0x05, 0x05, 0x00, 0x00 }; #else -const u8 padding[2] = {0,0}; +const u8 padding[2] = { 0, 0 }; #endif static SaveResult (*const sSaveHandlers[])(u32) = { HandleSaveInit, HandleSaveInProgress, HandleSaveDone }; - #ifdef DEMO -asm(".incbin \"baserom_demo.gba\", 0x11e010, 0xf0c"); // TODO +asm(".incbin \"baserom_demo.gba\", 0x11e010, 0xf0c"); // TODO disassemble #else -#ifdef JP +#if defined(JP) || defined(EU) static const char sSignatureLong[32] = "AGBZELDA:THE MINISH CAP:ZELDA 3"; #else static const char sSignatureLong[32] = "AGBZELDA:THE MINISH CAP:ZELDA 5"; @@ -137,11 +136,10 @@ SaveResult HandleSaveDone(u32 arg0) { return result; } - u32 InitSaveData(void) { #ifdef DEMO - CpuSet(NULL,&gSave,0x4b4); - return 1; + CpuSet(NULL, &gSave, 0x4b4); + return 1; #else const SaveFileEEPROMAddresses* eepromAddresses; u32 error; @@ -171,66 +169,63 @@ u32 InitSaveData(void) { } u32 WriteSaveFile(u32 index, SaveFile* saveFile) { - #ifdef DEMO +#ifdef DEMO return 1; - #else +#else return DataDoubleWriteWithStatus(index, saveFile); - #endif +#endif } u32 Write_02000000(struct_02000000* arg0) { - #ifdef DEMO +#ifdef DEMO return 1; - #else +#else return DataDoubleWriteWithStatus(3, arg0); - #endif +#endif } u32 sub_0807CF1C(u8* arg0) { - #ifdef DEMO +#ifdef DEMO return 1; - #else +#else return DataDoubleWriteWithStatus(5, arg0); - #endif +#endif } s32 ReadSaveFile(u32 index, SaveFile* saveFile) { - #ifdef DEMO +#ifdef DEMO return 1; - #else +#else return DataDoubleReadWithStatus(index, saveFile); - #endif +#endif } u32 Read_02000000(struct_02000000* arg0) { - #ifdef DEMO +#ifdef DEMO return 0; - #else +#else return DataDoubleReadWithStatus(3, arg0); - #endif +#endif } u32 sub_0807CF3C(u8* arg0) { - #ifdef DEMO +#ifdef DEMO return 0; - #else +#else return DataDoubleReadWithStatus(5, arg0); - #endif +#endif } - - void SetFileStatusDeleted(u32 index) { - #ifndef DEMO +#ifndef DEMO const SaveFileEEPROMAddresses* eepromAddresses; eepromAddresses = GetSaveFileEEPROMAddresses(index); WriteSaveFileStatus(eepromAddresses->checksum2, &sSaveDescDeleted); WriteSaveFileStatus(eepromAddresses->checksum1, &sSaveDescDeleted); - #endif +#endif } - #ifndef DEMO void SetFileStatusInit(u32 index) { const SaveFileEEPROMAddresses* eepromAddresses; @@ -457,4 +452,4 @@ bool32 DataCompare(u32 address, const void* data, u32 size) { } return TRUE; } -#endif \ No newline at end of file +#endif diff --git a/src/sub_080A3B84.c b/src/sub_080A3B84.c index af806c36..c20cc780 100644 --- a/src/sub_080A3B84.c +++ b/src/sub_080A3B84.c @@ -7,7 +7,7 @@ extern void (*const gUnk_081280C4[])(); void DrawKinstoneMenu(void) { - #ifndef DEMO +#ifndef DEMO gScreenTransition.field_0x24[8] = 2; FlushSprites(); gUnk_081280C4[gMenu.menuType](); @@ -19,7 +19,7 @@ void DrawKinstoneMenu(void) { sub_080AD9B0(); sub_080AD918(); gScreenTransition.field_0x24[8] = 0; - #endif +#endif } extern void gUnk_081280DC; diff --git a/src/textbox.c b/src/textbox.c index abbdc744..676d6857 100644 --- a/src/textbox.c +++ b/src/textbox.c @@ -475,6 +475,13 @@ void sub_080569C4(CurrentTextBox* ctb, u32 unk) { extern u8 gUnk_08107C14; extern u8 gUnk_08107C0F; + +#ifdef EU +NAKED void TextBoxHandlerQuestion(CurrentTextBox* ctb) { + asm(".incbin \"baserom_eu.gba\", 0x05654c, 0x138"); // TODO disassemble +} +#else + void TextBoxHandlerQuestion(CurrentTextBox* ctb) { s32 r1, r5, r6; u32 error; @@ -540,6 +547,8 @@ void sub_08056ABC(u32 unk_0, u32 unk_1) { gCurrentTextBox._9d = 1; } +#endif + void TextBoxHandlerNextBox(CurrentTextBox* ctb) { u32 t; u8* ptr; From 6f54607fbf58ccb5eae56329c4dd1226680adc88 Mon Sep 17 00:00:00 2001 From: Ibot02 Date: Tue, 22 Jun 2021 00:07:15 +0200 Subject: [PATCH 17/74] Make now preprocesses linker file --- Makefile | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 5ead5eee..18910b78 100644 --- a/Makefile +++ b/Makefile @@ -225,8 +225,11 @@ $(DATA_ASM_BUILDDIR)/%.o: $(DATA_ASM_SUBDIR)/%.s $$(data_dep) $(SONG_BUILDDIR)/%.o: $(SONG_SUBDIR)/%.s $(AS) $(ASFLAGS) -I sound -o $@ $< -$(ELF): $(OBJS) $(LINKER_FILE) - cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -n -T ../../$(LINKER_FILE) -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) @@ -235,4 +238,4 @@ $(ROM): $(ELF) usa: ; @$(MAKE) GAME_VERSION=USA demo: ; @$(MAKE) GAME_VERSION=DEMO jp: ; @$(MAKE) GAME_VERSION=JP -eu: ; @$(MAKE) GAME_VERSION=EU \ No newline at end of file +eu: ; @$(MAKE) GAME_VERSION=EU From cc4c42c54edb81784b2f2b3d03e54775236cefa3 Mon Sep 17 00:00:00 2001 From: octorock <79596758+octorock@users.noreply.github.com> Date: Tue, 22 Jun 2021 00:39:03 +0200 Subject: [PATCH 18/74] Use ifdefs in linker file --- Makefile | 3 - asm/bossDoor.s | 16 - asm/code_080AD90C.s | 4 - asm/intr.s | 4 - asm/object3A.s | 4 - linker.ld | 22 +- linker_EU.ld | 1731 --------------------------------- src/audio.c | 41 - src/code_0805F9A0.c | 30 - src/enemy/bombPeahat.c | 2 +- src/main.c | 8 - src/manager/manager4.c | 2 +- src/manager/manager7.c | 4 +- src/npc/phonograph.c | 2 +- src/projectile/projectile13.c | 2 +- 15 files changed, 23 insertions(+), 1852 deletions(-) delete mode 100644 linker_EU.ld diff --git a/Makefile b/Makefile index 18910b78..fbf922d0 100644 --- a/Makefile +++ b/Makefile @@ -12,8 +12,6 @@ GAME_LANGUAGE := ENGLISH TITLE := GBAZELDA MC MAKER_CODE := 01 -LINKER_FILE = linker.ld - ifeq ($(GAME_VERSION), USA) GAME_CODE := BZME BUILD_NAME := tmc @@ -30,7 +28,6 @@ else ifeq ($(GAME_VERSION), EU) GAME_CODE := BZMP BUILD_NAME := tmc_eu -LINKER_FILE := linker_EU.ld else $(error unknown version $(GAME_VERSION)) endif diff --git a/asm/bossDoor.s b/asm/bossDoor.s index 9e68f193..408d22b4 100644 --- a/asm/bossDoor.s +++ b/asm/bossDoor.s @@ -591,11 +591,7 @@ sub_0808C650: @ 0x0808C650 movs r0, #0 b _0808C674 .align 2, 0 -.ifdef DEMO -_0808C66C: .4byte gUnk_02036BB0 -.else _0808C66C: .4byte gUnk_02036BB8 -.endif _0808C670: ldr r1, _0808C678 @ =gUnk_02036BB8 movs r0, #1 @@ -603,11 +599,7 @@ _0808C674: str r0, [r1] pop {r4, pc} .align 2, 0 -.ifdef DEMO -_0808C678: .4byte gUnk_02036BB0 -.else _0808C678: .4byte gUnk_02036BB8 -.endif thumb_func_start sub_0808C67C sub_0808C67C: @ 0x0808C67C @@ -615,11 +607,7 @@ sub_0808C67C: @ 0x0808C67C ldr r0, [r0] bx lr .align 2, 0 -.ifdef DEMO -_0808C684: .4byte gUnk_02036BB0 -.else _0808C684: .4byte gUnk_02036BB8 -.endif thumb_func_start sub_0808C688 sub_0808C688: @ 0x0808C688 @@ -630,8 +618,4 @@ sub_0808C688: @ 0x0808C688 str r0, [r1] pop {pc} .align 2, 0 -.ifdef DEMO -_0808C698: .4byte gUnk_02036BB0 -.else _0808C698: .4byte gUnk_02036BB8 -.endif diff --git a/asm/code_080AD90C.s b/asm/code_080AD90C.s index cca9bf3e..2a3a1036 100644 --- a/asm/code_080AD90C.s +++ b/asm/code_080AD90C.s @@ -140,11 +140,7 @@ sub_080ADA04: @ 0x080ADA04 bl _call_via_r2 pop {pc} .align 2, 0 -.ifdef EU -_080ADA10: .4byte gUnk_030065C8 -.else _080ADA10: .4byte gUnk_0300659C -.endif thumb_func_start sub_080ADA14 sub_080ADA14: @ 0x080ADA14 diff --git a/asm/intr.s b/asm/intr.s index 3723ee2e..aea16317 100644 --- a/asm/intr.s +++ b/asm/intr.s @@ -590,11 +590,7 @@ _080B20E0: b _080B20E0 .align 2, 0 _080B20E4: .4byte 0x0000208C -.ifdef EU -_080B20E8: .4byte gUnk_030069AC -.else _080B20E8: .4byte gUnk_030067E4 -.endif arm_func_start sub_080B20EC sub_080B20EC: @ 0x080B20EC diff --git a/asm/object3A.s b/asm/object3A.s index 859edc8b..a884af27 100644 --- a/asm/object3A.s +++ b/asm/object3A.s @@ -223,11 +223,7 @@ _0808C828: bl sub_0801E49C pop {r4, r5, r6, pc} .align 2, 0 -.ifdef DEMO -_0808C83C: .4byte gUnk_02036BB0 -.else _0808C83C: .4byte gUnk_02036BB8 -.endif thumb_func_start sub_0808C840 sub_0808C840: @ 0x0808C840 diff --git a/linker.ld b/linker.ld index bdb25db7..7de90bc8 100644 --- a/linker.ld +++ b/linker.ld @@ -151,17 +151,20 @@ SECTIONS { . = 0x000369F0; gUnk_020369F0 = .; . = 0x00036A38; gCurrentWindow = .; . = 0x00036A40; gNewWindow = .; +#ifdef DEMO + . = 0x00036A50; gUnk_02036A58 = .; + . = 0x00036AD0; gUnk_02036AD8 = .; + . = 0x00036BB0; gUnk_02036BB8 = .; + . = 0x00036BB8; gMPlayTracks = .; + . = 0x00038558; gUnk_02038560 = .; +#else . = 0x00036A50; gEEPROMConfig = .; - . = 0x00036A50; gUnk_02036A50 = .; /* DEMO is 8 bytes earlier due to missing eeprom*/ . = 0x00036A58; gUnk_02036A58 = .; - . = 0x00036AD0; gUnk_02036AD0 = .; /* DEMO is 8 bytes earlier due to missing eeprom*/ . = 0x00036AD8; gUnk_02036AD8 = .; - . = 0x00036BB0; gUnk_02036BB0 = .; /* DEMO is 8 bytes earlier due to missing eeprom*/ . = 0x00036BB8; gUnk_02036BB8 = .; - . = 0x00036BB8; gMPlayTracksDEMO = .; /* DEMO is 8 bytes earlier due to missing eeprom*/ . = 0x00036BC0; gMPlayTracks = .; - . = 0x00038558; gUnk_02038558 = .; /* DEMO is 8 bytes earlier due to missing eeprom*/ . = 0x00038560; gUnk_02038560 = .; +#endif . = 0x00040000; } >ewram @@ -277,12 +280,21 @@ SECTIONS { . = 0x00005FF0; gUnk_03005FF0 = .; . = 0x000060F0; gUnk_030060F0 = .; . = 0x00006164; gUnk_03006164 = .; +#ifdef EU + . = 0x000065AC; gUnk_03006580 = .; + . = 0x000065C8; gUnk_0300659C = .; + . = 0x000069AC; gUnk_030067E4 = .; + . = 0x00006A94; gUnk_030068CC = .; + . = 0x00006B14; gUnk_0300694C = .; + . = 0x00006B24; gUnk_0300695C = .; +#else . = 0x00006580; gUnk_03006580 = .; . = 0x0000659C; gUnk_0300659C = .; . = 0x000067E4; gUnk_030067E4 = .; . = 0x000068CC; gUnk_030068CC = .; . = 0x0000694C; gUnk_0300694C = .; . = 0x0000695C; gUnk_0300695C = .; +#endif . = 0x00007F00; gUnk_03007F00 = .; . = 0x00007FA0; gUnk_03007FA0 = .; . = 0x00007FFA; gUnk_03007FFA = .; diff --git a/linker_EU.ld b/linker_EU.ld deleted file mode 100644 index 7a93664b..00000000 --- a/linker_EU.ld +++ /dev/null @@ -1,1731 +0,0 @@ -ENTRY(__start) - -gNumMusicPlayers = 0x20; -gMaxLines = 0; - -MEMORY { - ewram (w!x) : ORIGIN = 0x02000000, LENGTH = 256K - iwram (w!x) : ORIGIN = 0x03000000, LENGTH = 32K - rom (rx) : ORIGIN = 0x08000000, LENGTH = 32M -} - -SECTIONS { - ewram (NOLOAD) : ALIGN(4) { - . = 0x00000006; gUnk_02000006 = .; - . = 0x00000010; gUnk_02000010 = .; - . = 0x00000020; gUnk_02000020 = .; - . = 0x00000030; gUnk_02000030 = .; - . = 0x00000040; gUnk_02000040 = .; - . = 0x00000050; gTextBox = .; - . = 0x0000005C; gUnk_0200005C = .; - . = 0x00000070; gUnk_02000070 = .; - . = 0x00000080; gMenu = .; - . = 0x00000080; gIntroState = .; - . = 0x00000080; gChooseFileState = .; - . = 0x00000090; gUnk_02000090 = .; - . = 0x000000B0; gUnk_020000B0 = .; - . = 0x000000C0; gUnk_020000C0 = .; - . = 0x00000CC0; gUnk_02000CC0 = .; - . = 0x00000D00; gUnk_02000D00 = .; - . = 0x00001A00; gUnk_02001A00 = .; - . = 0x00001A3C; gUnk_02001A3C = .; - . = 0x00001A40; gBG3Buffer = .; - . = 0x00001B40; gUnk_02001B40 = .; - . = 0x00002A40; gSave = .; - . = 0x00002AA0; gUnk_02002AA0 = .; - . = 0x00002AC0; gUnk_02002AC0 = .; - . = 0x00002AC8; gUnk_02002AC8 = .; - . = 0x00002AE8; gStats = .; - . = 0x00002B0E; gUnk_02002B0E = .; - . = 0x00002B32; gUnk_02002B32 = .; - . = 0x00002B54; gUnk_02002B54 = .; - . = 0x00002B58; gUnk_02002B58 = .; - . = 0x00002B6B; gUnk_02002B6B = .; - . = 0x00002C01; gUnk_02002C01 = .; - . = 0x00002C81; gUnk_02002C81 = .; - . = 0x00002C8E; gUnk_02002C8E = .; - . = 0x00002C9C; gGlobalFlags = .; - . = 0x00002E9C; gUnk_02002E9C = .; - . = 0x00002ECC; gUnk_02002ECC = .; - . = 0x00002F00; gMapDataTopSpecial = .; - . = 0x00006F00; gUnk_02006F00 = .; - . = 0x0000AF00; gUnk_0200AF00 = .; - . = 0x0000AF13; gUnk_0200AF13 = .; - . = 0x0000AF34; gUnk_0200AF34 = .; - . = 0x0000B240; gUnk_0200B240 = .; - . = 0x0000B640; gUnk_0200B640 = .; - . = 0x0000B644; gUsedPalettes = .; - . = 0x0000B650; gUnk_0200B650 = .; - . = 0x0000B654; gMapDataTop = .; - . = 0x0000D654; gUnk_0200D654 = .; - . = 0x0000E654; gUnk_0200E654 = .; - . = 0x00010654; gMetatileTypesTop = .; - . = 0x00011654; gUnk_02011654 = .; - . = 0x00012654; gMetatilesTop = .; - . = 0x00016654; gUnk_02016654 = .; - . = 0x00017654; gUnk_02017654 = .; - . = 0x00017660; gUnk_02017660 = .; - . = 0x000176A0; gPaletteBuffer = .; - . = 0x000176E0; gUnk_020176E0 = .; - . = 0x00017700; gUnk_02017700 = .; - . = 0x00017830; gUnk_02017830 = .; - . = 0x000178E0; gUnk_020178E0 = .; - . = 0x00017AA0; gUnk_02017AA0 = .; - . = 0x00017BA0; gUnk_02017BA0 = .; - . = 0x00018EA0; gUnk_02018EA0 = .; - . = 0x00018EB0; gUnk_02018EB0 = .; - . = 0x00018EE0; gUnk_02018EE0 = .; - . = 0x00019EE0; gUnk_02019EE0 = .; - . = 0x00019F6C; gUnk_02019F6C = .; - . = 0x0001AEE0; gUnk_0201AEE0 = .; - . = 0x00021EE0; gSoundPlayingInfo = .; - . = 0x00021F00; gUnk_02021F00 = .; - . = 0x00021F20; gUnk_02021F20 = .; - . = 0x00021F30; gBG1Buffer = .; - . = 0x00021F70; gUnk_02021F70 = .; - . = 0x00022030; gUnk_02022030 = .; - . = 0x00022130; gUnk_02022130 = .; - . = 0x00022730; gUnk_02022730 = .; - . = 0x00022740; gUnk_02022740 = .; - . = 0x00022750; gPlayerScriptExecutionContext = .; - . = 0x00022780; gCurrentTextBox = .; - . = 0x000227DC; gUnk_020227DC = .; - . = 0x000227E8; gUnk_020227E8 = .; - . = 0x000227F0; gUnk_020227F0 = .; - . = 0x000227F8; gUnk_020227F8 = .; - . = 0x00022800; gUnk_02022800 = .; - . = 0x0002281E; gUnk_0202281E = .; - . = 0x00022830; gUnk_02022830 = .; - . = 0x00024030; gUnk_02024030 = .; - . = 0x00024048; gUnk_02024048 = .; - . = 0x00024050; gUnk_02024050 = .; - . = 0x00024090; gUnk_02024090 = .; - . = 0x00024490; gUnk_02024490 = .; - . = 0x00024494; gUnk_02024494 = .; - . = 0x000246B0; gUnk_020246B0 = .; - . = 0x00025EB0; gUnk_02025EB0 = .; - . = 0x00025EB4; gMapDataBottom = .; - . = 0x00027EB4; gUnk_02027EB4 = .; - . = 0x00028EB4; gUnk_02028EB4 = .; - . = 0x0002AEB4; gMetatileTypesBottom = .; - . = 0x0002BEB4; gUnk_0202BEB4 = .; - . = 0x0002CEB4; gMetatilesBottom = .; - . = 0x00030EB4; gUnk_02030EB4 = .; - . = 0x00031EC0; gUnk_02031EC0 = .; - . = 0x00032EC0; gUnk_02032EC0 = .; - . = 0x00032EDC; gUnk_02032EDC = .; - . = 0x00032F14; gUnk_02032F14 = .; - . = 0x00033280; gActiveScriptInfo = .; - . = 0x00033290; gUnk_02033290 = .; - . = 0x00033A90; gArea = .; - . = 0x00033AB8; gUnk_02033AB8 = .; - . = 0x00033ACC; gUnk_02033ACC = .; - . = 0x000342CC; gUnk_020342CC = .; - . = 0x000342F8; gUnk_020342F8 = .; - . = 0x00034330; gUnk_02034330 = .; - . = 0x00034350; gRoomVars = .; - . = 0x00034364; gRoomFlags = .; - . = 0x00034398; gUnk_02034398 = .; - . = 0x00034480; gUnk_02034480 = .; - . = 0x00034490; gUnk_02034490 = .; - . = 0x00034492; gUnk_02034492 = .; - . = 0x000344A0; gUnk_020344A0 = .; - . = 0x000344B0; gBG2Buffer = .; - . = 0x000344F0; gUnk_020344F0 = .; - . = 0x00034CB0; gBG0Buffer = .; - . = 0x00034CB2; gUnk_02034CB2 = .; - . = 0x00034CF0; gUnk_02034CF0 = .; - . = 0x00034D30; gUnk_02034D30 = .; - . = 0x00034DF0; gUnk_02034DF0 = .; - . = 0x000350E2; gUnk_020350E2 = .; - . = 0x000350F0; gUnk_020350F0 = .; - . = 0x00035160; gUnk_02035160 = .; - . = 0x000354B0; gUnk_020354B0 = .; - . = 0x000354B4; gManagerCount = .; - . = 0x000354C0; gUnk_020354C0 = .; - . = 0x0003553E; gUnk_0203553E = .; - . = 0x00035540; gzHeap = .; - . = 0x00035542; gUnk_02035542 = .; - . = 0x00036540; gUnk_02036540 = .; - . = 0x00036570; gScriptExecutionContextArray = .; - . = 0x000369F0; gUnk_020369F0 = .; - . = 0x00036A38; gCurrentWindow = .; - . = 0x00036A40; gNewWindow = .; - . = 0x00036A50; gEEPROMConfig = .; - . = 0x00036A50; gUnk_02036A50 = .; /* DEMO is 8 bytes earlier due to missing eeprom*/ - . = 0x00036A58; gUnk_02036A58 = .; - . = 0x00036AD0; gUnk_02036AD0 = .; /* DEMO is 8 bytes earlier due to missing eeprom*/ - . = 0x00036AD8; gUnk_02036AD8 = .; - . = 0x00036BB0; gUnk_02036BB0 = .; /* DEMO is 8 bytes earlier due to missing eeprom*/ - . = 0x00036BB8; gUnk_02036BB8 = .; - . = 0x00036BB8; gMPlayTracksDEMO = .; /* DEMO is 8 bytes earlier due to missing eeprom*/ - . = 0x00036BC0; gMPlayTracks = .; - . = 0x00038558; gUnk_02038558 = .; /* DEMO is 8 bytes earlier due to missing eeprom*/ - . = 0x00038560; gUnk_02038560 = .; - . = 0x00040000; - } >ewram - - iwram (NOLOAD) : ALIGN(4) { - . = 0x00000000; gUnk_03000000 = .; - . = 0x00000020; gUnk_03000020 = .; - . = 0x00000420; gUnk_03000420 = .; - . = 0x00000B80; gUnk_03000B80 = .; - . = 0x00000BD4; gUnk_03000BD4 = .; - . = 0x00000BF0; gRoomControls = .; - . = 0x00000BF6; gUnk_03000BF6 = .; - . = 0x00000BF8; gUnk_03000BF8 = .; - . = 0x00000C24; gUnk_03000C24 = .; - . = 0x00000C30; gUnk_03000C30 = .; - . = 0x00000E10; gUnk_03000E10 = .; - . = 0x00000F50; gScreen = .; - . = 0x00000F58; gBG0Settings = .; - . = 0x00000F64; gBG1Settings = .; - . = 0x00000F70; gBGAffSettings = .; - . = 0x00000F88; gBgControls = .; - . = 0x00000FBC; gUnk_03000FBC = .; - . = 0x00000FD0; gFadeControl = .; - . = 0x00000FF0; gInput = .; - . = 0x00001000; gMain = .; - . = 0x00001010; gOamCmd = .; - . = 0x00001020; gUnk_03001020 = .; - . = 0x000010A0; gScreenTransition = .; - . = 0x000010AC; gUnk_030010AC = .; - . = 0x000010EC; gUnk_030010EC = .; - . = 0x0000110C; gUnk_0300110C = .; - . = 0x00001150; gRand = .; - . = 0x00001160; gPlayerEntity = .; - . = 0x00001198; gUnk_03001198 = .; - . = 0x000011E8; gUnk_030011E8 = .; - . = 0x000015A0; gUnk_030015A0 = .; - . = 0x00003BE0; gUnk_03003BE0 = .; - . = 0x00003C70; gUnk_03003C70 = .; - . = 0x00003D68; gUnk_03003D68 = .; - . = 0x00003D70; gEntityLists = .; - . = 0x00003D80; gUnk_03003D80 = .; - . = 0x00003D90; gUnk_03003D90 = .; - . = 0x00003DA0; gUnk_03003DA0 = .; - . = 0x00003DA8; gUnk_03003DA8 = .; - . = 0x00003DB0; gUnk_03003DB0 = .; - . = 0x00003DB8; gHitboxCount = .; - . = 0x00003DBC; gEntCount = .; - . = 0x00003DC0; gUnk_03003DC0 = .; - . = 0x00003DD0; gUnk_03003DD0 = .; - . = 0x00003DE0; gUnk_03003DE0 = .; - . = 0x00003DE4; gUnk_03003DE4 = .; - . = 0x00003DF0; gUnk_03003DF0 = .; - . = 0x00003DF8; gUnk_03003DF8 = .; - . = 0x00003F80; gPlayerState = .; - . = 0x00003FC0; gUnk_03003FC0 = .; - . = 0x00004010; gUnk_03004010 = .; - . = 0x00004020; gUnk_03004020 = .; - . = 0x00004030; gUnk_03004030 = .; - . = 0x00004040; gUnk_03004040 = .; - . = 0x0000404C; SoundMainRAM_Buffer = .; - . = 0x0000404D; gUnk_0300404D = .; - . = 0x000043D0; gSoundInfo = .; - . = 0x00004D50; gMPlayJumpTable = .; - . = 0x00004D54; gUnk_03004D54 = .; - . = 0x00004DD8; gUnk_03004DD8 = .; - . = 0x00004DDC; gUnk_03004DDC = .; - . = 0x00004DE0; gCgbChans = .; - . = 0x00004EE0; gMPlayInfos = .; - . = 0x000055E0; gMPlayMemAccArea = .; - . = 0x000055F0; gMPlayInfos2 = .; - . = 0x000056F0; gUnk_030056F0 = .; - . = 0x000056F1; gUnk_030056F1 = .; - . = 0x00005740; gUnk_03005740 = .; - . = 0x0000574C; gUnk_0300574C = .; - . = 0x00005760; gUnk_03005760 = .; - . = 0x00005770; gUnk_03005770 = .; - . = 0x00005778; gUnk_03005778 = .; - . = 0x00005780; gUnk_03005780 = .; - . = 0x0000579C; gUnk_0300579C = .; - . = 0x000057A8; gUnk_030057A8 = .; - . = 0x000057BC; gUnk_030057BC = .; - . = 0x000057CC; gUnk_030057CC = .; - . = 0x000057D4; gUnk_030057D4 = .; - . = 0x00005800; gUnk_03005800 = .; - . = 0x0000581C; gUnk_0300581C = .; - . = 0x00005828; gUnk_03005828 = .; - . = 0x0000583C; gUnk_0300583C = .; - . = 0x0000584C; gUnk_0300584C = .; - . = 0x00005854; gUnk_03005854 = .; - . = 0x00005864; gUnk_03005864 = .; - . = 0x00005880; gUnk_03005880 = .; - . = 0x0000588C; gUnk_0300588C = .; - . = 0x000058A0; gUnk_030058A0 = .; - . = 0x000058B0; gUnk_030058B0 = .; - . = 0x000058B8; gUnk_030058B8 = .; - . = 0x000058C8; gUnk_030058C8 = .; - . = 0x000058DC; gUnk_030058DC = .; - . = 0x000058F8; gUnk_030058F8 = .; - . = 0x00005918; gUnk_03005918 = .; - . = 0x000059F0; gDoCollision = .; - . = 0x00005CA4; gUnk_03005CA4 = .; - . = 0x00005CD0; gUnk_03005CD0 = .; - . = 0x00005CFC; gUnk_03005CFC = .; - . = 0x00005D18; gUnk_03005D18 = .; - . = 0x00005D24; gUnk_03005D24 = .; - . = 0x00005D58; gUnk_03005D58 = .; - . = 0x00005D5C; gUnk_03005D5C = .; - . = 0x00005D90; IntrMain = .; - . = 0x00005E60; gUnk_03005E60 = .; - . = 0x00005E98; gUnk_03005E98 = .; - . = 0x00005F24; _EntUpdate = .; - . = 0x00005F40; gUnk_03005F40 = .; - . = 0x00005FBC; gUnk_03005FBC = .; - . = 0x00005FF0; gUnk_03005FF0 = .; - . = 0x000060F0; gUnk_030060F0 = .; - . = 0x00006164; gUnk_03006164 = .; - . = 0x0000659C; gUnk_0300659C = .; - . = 0x000065AC; gUnk_03006580 = .; - . = 0x000065C8; gUnk_030065C8 = .; /* TODO EU for gUnk_0300659C? */ - . = 0x000067E4; gUnk_030067E4 = .; - . = 0x000069AC; gUnk_030069AC = .;/* TODO EU for gUnk_030067E4*/ - . = 0x00006A94; gUnk_030068CC = .; - . = 0x00006B14; gUnk_0300694C = .; - . = 0x00006B24; gUnk_0300695C = .; - . = 0x00007F00; gUnk_03007F00 = .; - . = 0x00007FA0; gUnk_03007FA0 = .; - . = 0x00007FFA; gUnk_03007FFA = .; - . = 0x00008000; - } >iwram - - rom : ALIGN(2) { - - /* handwritten assembly */ - asm/crt0.o(.text); - asm/code_08000108.o(.text); - data/data_08000360.o(.rodata); - asm/code_08000E44.o(.text); - asm/libgcc.o(.text); - asm/code_08000F10.o(.text); - data/data_08000F54.o(.rodata); - asm/code_080011C4.o(.text); - data/data_080029B4.o(.rodata); - asm/code_08003FC4.o(.text); - asm/code_080043E8.o(.text); - data/data_08007DF4.o(.rodata); - asm/code_0800857C.o(.text); - /* scripts */ - data/scripts.o(.text); - asm/code_08016984.o(.text); - asm/sub_08016AE4.o(.text); - - - /* C source compiled with interworking */ - asm/code_08016B30.o(.text); - asm/updateBackgroundRegisters.o(.text); - src/arm_proxy.o(.text); - asm/code_08016DF8.o(.text); - /* C source compiled without interworking */ - asm/code_08018500.o(.text); - src/code_08018C58.o(.text); - src/playerItem/playerItem11.o(.text); - asm/playerItem11.o(.text); - src/playerItem/playerItemBow.o(.text); - asm/playerItem/playerItemBow.o(.text); - asm/playerItem/playerItemSwordBeam.o(.text); - asm/code_0801967C.o(.text); - asm/playerItem/playerItemBomb.o(.text); - asm/playerItem/playerItem3.o(.text); - asm/playerItem/playerItemC.o(.text); - asm/playerItem/playerItemSwordSpin.o(.text); - asm/playerItemCellOverwriteSet.o(.text); - asm/code_0801C1D4.o(.text); - asm/drawUI.o(.text); - asm/code_0801C370.o(.text); - asm/drawRupees.o(.text); - asm/code_0801C5E0.o(.text); - asm/drawHealth.o(.text); - asm/sub_0801C824.o(.text); - asm/code_0801C85C.o(.text); - src/ezloNag.o(.text); - asm/code_0801CEC0.o(.text); - src/utils.o(.text); - asm/code_0801D79C.o(.text); - /* enemies */ - src/enemy/octorok.o(.text); - src/enemy/chuchu.o(.text); - src/enemy/leever.o(.text); - src/enemy/peahat.o(.text); - src/enemy/rollobite.o(.text); - src/enemy/darkNut.o(.text); - src/enemy/hangingSeed.o(.text); - src/enemy/beetle.o(.text); - src/enemy/keese.o(.text); - src/enemy/doorMimic.o(.text); - src/enemy/rockChuchu.o(.text); - src/enemy/spinyChuchu.o(.text); - src/enemy/cuccoChickAggr.o(.text); - src/enemy/moldorm.o(.text); - src/enemy/enemyE.o(.text); - src/enemy/moldworm.o(.text); - src/enemy/sluggula.o(.text); - src/enemy/pesto.o(.text); - src/enemy/puffstool.o(.text); - src/enemy/chuchuBoss.o(.text); - asm/chuchuBoss.o(.text); - src/enemy/likeLike.o(.text); - src/enemy/spearMoblin.o(.text); - src/enemy/businessScrub.o(.text); - src/enemy/rupeeLike.o(.text); - src/enemy/madderpillar.o(.text); - src/enemy/waterDrop.o(.text); - src/enemy/wallMaster.o(.text); - src/enemy/bombPeahat.o(.text); - src/enemy/spark.o(.text); - src/enemy/chaser.o(.text); - src/enemy/spikedBeetle.o(.text); - src/enemy/sensorBladeTrap.o(.text); - src/enemy/helmasaur.o(.text); - src/enemy/fallingBoulder.o(.text); - src/enemy/bobomb.o(.text); - src/enemy/wallMaster2.o(.text); - asm/gleerok.o(.text); - asm/vaatiEyesMacro.o(.text); - src/enemy/tektite.o(.text); - asm/wizzrobeWind.o(.text); - asm/wizzrobeFire.o(.text); - asm/wizzrobeIce.o(.text); - src/code_080300AC.o(.text); /* ??? */ - asm/code_080300AC.o(.text); /* ??? */ - asm/armos.o(.text); - asm/eyegore.o(.text); - src/enemy/rope.o(.text); - src/enemy/smallPesto.o(.text); - src/enemy/acroBandits.o(.text); - src/enemy/bladeTrap.o(.text); - src/enemy/keaton.o(.text); - asm/crow.o(.text); - asm/mulldozer.o(.text); - asm/bombarossa.o(.text); - src/enemy/wisp.o(.text); - asm/spinyBeetle.o(.text); - src/enemy/mazaalHead.o(.text); - src/enemy/mazaalMacro.o(.text); - src/enemy/mazaalHand.o(.text); - asm/octorokBoss.o(.text); - asm/flyingPot.o(.text); - src/enemy/gibdo.o(.text); - asm/octorokGolden.o(.text); - src/enemy/tektiteGolden.o(.text); - src/enemy/ropeGolden.o(.text); - asm/cloudPiranha.o(.text); - asm/scissorsBeetle.o(.text); - asm/cuccoAggr.o(.text); - asm/stalfos.o(.text); - asm/flyingSkull.o(.text); - src/enemy/mazaalBracelet.o(.text); - asm/takkuri.o(.text); - src/enemy/bowMoblin.o(.text); - asm/bowMoblin.o(.text); - src/enemy/lakitu.o(.text); - src/enemy/lakituCloud.o(.text); - asm/enemy49.o(.text); - asm/vaatiRebornEnemy.o(.text); - asm/vaatiProjectile.o(.text); - asm/ballChainSoldier.o(.text); - src/enemy/enemy4D.o(.text); - asm/enemy4D.o(.text); - asm/ghini.o(.text); - asm/vaatiTransfigured.o(.text); - asm/enemy50.o(.text); - asm/vaatiWrath.o(.text); - asm/vaatiArm.o(.text); - asm/dust.o(.text); - src/enemy/vaatiBall.o(.text); - src/enemy/slime.o(.text); - asm/sub_080451CC.o(.text); - src/enemy/miniSlime.o(.text); - src/enemy/fireballGuy.o(.text); - src/enemy/miniFireballGuy.o(.text); - asm/enemy5A.o(.text); - asm/businessScrubPrologue.o(.text); - asm/gyorgFemale.o(.text); - src/enemy/gyorgMale.o(.text); - asm/curtain.o(.text); - asm/enemy5F.o(.text); - asm/gyorgChild.o(.text); - asm/gyorgFemaleEye.o(.text); - asm/enemy62.o(.text); - asm/gyorgFemaleMouth.o(.text); - asm/enemy64.o(.text); - src/enemy/treeItem.o(.text); - asm/enemy66.o(.text); - /* END enemies */ - src/code_08049CD4.o(.text); - asm/code_08049D30.o(.text); - asm/sub_0804AA30.o(.text); - src/createEnemy.o(.text); - src/code_0804AA84.o(.text); - asm/code_0804AA84.o(.text); - src/loadRoomEntityList.o(.text); - asm/loadRoomEntity.o(.text); - asm/code_0804AEB0.o(.text); - src/loadRoom.o(.text); - asm/code_0804B058.o(.text); - src/room.o(.text); - asm/code_0804B9F8.o(.text); - src/sub_08050008.o(.text); - src/fade.o(.text); - asm/code_08050038.o(.text); - src/fileScreen.o(.text); - asm/fileScreen.o(.text); - src/game.o(.text); - asm/code_080526F8.o(.text); - asm/modBombs.o(.text); - asm/modArrows.o(.text); - src/code_0805436C.o(.text); - asm/code_0805436C.o(.text); - asm/playerItem/playerItemLantern.o(.text); - asm/code_08054C04.o(.text); - src/sub_08055E08.o(.text); - src/main.o(.text); - src/textbox.o(.text); - asm/code_08056418.o(.text); - src/manager/manager1.o(.text); - asm/manager1.o(.text); - src/manager/manager2.o(.text); - asm/manager2.o(.text); - src/manager/manager3.o(.text); - src/manager/manager4.o(.text); - src/manager/manager5.o(.text); - src/manager/manager6.o(.text); - src/manager/manager7.o(.text); - src/manager/manager8.o(.text); - src/manager/manager9.o(.text); - src/manager/managerA.o(.text); - src/manager/managerB.o(.text); - src/manager/managerC.o(.text); - asm/managerD.o(.text); - src/manager/managerE.o(.text); - asm/managerF.o(.text); - asm/manager10.o(.text); - asm/manager11.o(.text); - asm/manager12.o(.text); - asm/manager13.o(.text); - asm/manager14.o(.text); - src/manager/manager15.o(.text); - asm/manager16.o(.text); - asm/manager17.o(.text); - asm/manager18.o(.text); - asm/manager19.o(.text); - src/manager/manager1A.o(.text); - asm/manager1B.o(.text); - asm/manager1C.o(.text); - asm/manager1D.o(.text); - src/manager/manager1E.o(.text); - asm/manager1F.o(.text); - src/manager/manager20.o(.text); - asm/manager21.o(.text); - asm/manager22.o(.text); - asm/manager23.o(.text); - asm/manager24.o(.text); - asm/manager25.o(.text); - src/manager/manager26.o(.text); - src/manager/manager27.o(.text); - src/manager/manager28.o(.text); - asm/manager29.o(.text); - asm/manager2A.o(.text); - asm/manager2B.o(.text); - asm/manager2C.o(.text); - asm/manager2D.o(.text); - src/manager/manager2E.o(.text); - asm/manager2E.o(.text); - asm/manager2F.o(.text); - src/manager/manager30.o(.text); - asm/manager31.o(.text); - asm/manager32.o(.text); - asm/manager33.o(.text); - asm/manager34.o(.text); - asm/manager35.o(.text); - asm/manager36.o(.text); - asm/manager37.o(.text); - asm/manager38.o(.text); - src/manager/manager39.o(.text); - asm/sub_0805E248.o(.text); - src/sub_0805E374.o(.text); - src/sub_0805E3A0.o(.text); - asm/code_0805E3B0.o(.text); - asm/getEmptyEntity.o(.text); - src/entity.o(.text); - src/code_0805EC04.o(.text); - asm/code_0805EC04.o(.text); - src/code_0805F9A0.o(.text); - src/debugScreen.o(.text); - src/playerItem/playerItem14.o(.text); - /* npcs */ - src/npc/gentari.o(.text); - src/npc/festari.o(.text); - src/npc/forestMinish.o(.text); - src/npc/postman.o(.text); - src/npc/npc5.o(.text); - src/npc/townsperson.o(.text); - src/npc/kid.o(.text); - src/npc/npc9.o(.text); - src/npc/stamp.o(.text); - src/npc/marcy.o(.text); - src/npc/wheaton.o(.text); - src/npc/pita.o(.text); - src/npc/minishEzlo.o(.text); - src/npc/mailbox.o(.text); - src/npc/beedle.o(.text); - src/npc/brocco.o(.text); - src/npc/sittingPerson.o(.text); - src/npc/pina.o(.text); - src/npc/guard.o(.text); - src/npc/guardWithSpear.o(.text); - src/npc/castleMaid.o(.text); - src/npc/din.o(.text); - src/npc/nayru.o(.text); - src/npc/farore.o(.text); - src/npc/sturgeon.o(.text); - src/npc/tingleSiblings.o(.text); - src/npc/stockwell.o(.text); - src/npc/talon.o(.text); - src/npc/malon.o(.text); - src/npc/epona.o(.text); - src/npc/milkCart.o(.text); - src/npc/ghostBrothers.o(.text); - src/npc/smith.o(.text); - src/npc/npc23.o(.text); - src/npc/kingDaltus.o(.text); - src/npc/ministerPotho.o(.text); - src/npc/npc26.o(.text); - asm/vaati.o(.text); - src/npc/zelda.o(.text); - src/npc/mutoh.o(.text); - src/npc/carpenter.o(.text); - src/npc/castorWildsStatue.o(.text); - src/npc/cat.o(.text); - src/npc/mountainMinish.o(.text); - src/npc/zeldaFollower.o(.text); - src/npc/melari.o(.text); - src/npc/bladeBrothers.o(.text); - src/npc/cow.o(.text); - src/npc/goron.o(.text); - src/npc/goronMerchant.o(.text); - src/npc/gorman.o(.text); - src/npc/dog.o(.text); - src/npc/syrup.o(.text); - src/npc/rem.o(.text); - src/npc/rem.o(.text); - src/npc/townMinish.o(.text); - src/npc/librari.o(.text); - src/npc/percy.o(.text); - asm/vaatiReborn.o(.text); - src/npc/moblinLady.o(.text); - src/npc/librarians.o(.text); - src/npc/farmers.o(.text); - src/npc/carlov.o(.text); - src/npc/dampe.o(.text); - src/npc/drLeft.o(.text); - src/npc/kingGustaf.o(.text); - src/npc/gina.o(.text); - src/npc/simon.o(.text); - src/npc/anju.o(.text); - src/npc/mama.o(.text); - src/npc/emma.o(.text); - src/npc/teachers.o(.text); - src/npc/windTribespeople.o(.text); - src/npc/gregal.o(.text); - src/npc/mayorHagen.o(.text); - src/npc/bigGoron.o(.text); - src/npc/ezloCap.o(.text); - src/npc/npc4E.o(.text); - src/npc/npc4F.o(.text); - src/npc/clothesRack.o(.text); - src/npc/picolyteBottle.o(.text); - src/npc/smallTownMinish.o(.text); - src/npc/hurdyGurdyMan.o(.text); - src/npc/cucco.o(.text); - src/npc/cuccoChick.o(.text); - src/npc/fusionMenuNPC.o(.text); - src/npc/phonograph.o(.text); - src/npc/npc58.o(.text); - /* END npcs */ - asm/code_0806EC20.o(.text); - src/createNPC.o(.text); - asm/code_0806ED78.o(.text); - src/coord.o(.text); - asm/code_0806FA6C.o(.text); - asm/playerItem/playerItem12.o(.text); - asm/playerItem/playerItemPacciCane.o(.text); - asm/code_0807059C.o(.text); - src/player.o(.text); - asm/stairsInteract.o(.text); - asm/code_080732D0.o(.text); - asm/item/itemDebug.o(.text); - asm/item/itemSword.o(.text); - asm/item/itemLantern.o(.text); - asm/item/itemBoomerang.o(.text); - asm/item/itemBow.o(.text); - asm/item/itemBomb.o(.text); - asm/item/itemTryPickupObject.o(.text); - asm/item/itemRocsCape.o(.text); - asm/item/itemPegasusBoots.o(.text); - asm/code_080732D0.o(.text); - asm/ocarina.o(.text); - src/item/itemPacciCane.o(.text); - src/item/itemShield.o(.text); - src/item/itemGustJar.o(.text); - asm/item/itemGustJar.o(.text); - asm/item/itemMoleMitts.o(.text); - asm/item/itemJarEmpty.o(.text); - asm/code_08077698.o(.text); - asm/respawnPlayer.o(.text); - src/code_08077B98.o(.text); - src/code_08077DF4.o(.text); - asm/code_08077B98.o(.text); - src/code_08078778.o(.text); - asm/code_08078778.o(.text); - src/sub_0807B820.o(.text); - asm/code_0807B9B8.o(.text); - src/sub_0807C998.o(.text); - asm/sub_0807CA18.o(.text); - asm/getInventoryValue.o(.text); - asm/code_0807CAA0.o(.text); - src/flags.o(.text); - src/save.o(.text); - src/code_0807CC3C.o(.text); - src/script.o(.text); - asm/code_0807F0D8.o(.text); - src/code_0808091C.o(.text); - asm/code_0808091C.o(.text); - /* objects */ - src/object/itemOnGround.o(.text); - asm/deathFx.o(.text); - asm/itemForSale.o(.text); - src/object/button.o(.text); - asm/object4.o(.text); - src/object/pot.o(.text); - asm/object6.o(.text); - asm/blockPushed.o(.text); - src/object/lockedDoor.o(.text); - asm/object9.o(.text); - src/object/objectA.o(.text); - asm/objectB.o(.text); - src/object/chestSpawner.o(.text); - asm/chestSpawner.o(.text); - asm/objectD.o(.text); - asm/objectE.o(.text); - asm/specialFx.o(.text); - asm/object10.o(.text); - asm/object11.o(.text); - asm/object12.o(.text); - src/object/railtrack.o(.text); - asm/lilypadLarge.o(.text); - asm/object15.o(.text); - asm/floatingPlatform.o(.text); - asm/object17.o(.text); - asm/evilSpirit.o(.text); - src/object/houseDoorExterior.o(.text); - src/object/object1A.o(.text); - src/object/greatFairy.o(.text); - src/object/object1C.o(.text); - src/object/object1D.o(.text); - asm/object1E.o(.text); - asm/object1F.o(.text); - asm/object20.o(.text); - asm/object21.o(.text); - asm/figurineDevice.o(.text); - asm/eyeSwitch.o(.text); - asm/object24.o(.text); - asm/bigBarrel.o(.text); - asm/object26.o(.text); - asm/pushableStatue.o(.text); - asm/object28.o(.text); - asm/object29.o(.text); - src/object/object2A.o(.text); - asm/object2A.o(.text); - asm/object2B.o(.text); - asm/beanstalk.o(.text); - src/object/smoke.o(.text); - asm/pushableRock.o(.text); - asm/hittableLever.o(.text); - asm/object30.o(.text); - asm/object31.o(.text); - asm/pullableMushroom.o(.text); - asm/bollard.o(.text); - asm/warpPoint.o(.text); - asm/object35.o(.text); - asm/object36.o(.text); - asm/object37.o(.text); - asm/jarPortal.o(.text); - asm/bossDoor.o(.text); - asm/object3A.o(.text); - asm/macroMushroomStalks.o(.text); - asm/object75.o(.text); /* 75 and 76 are mislocated in base game */ - asm/object76.o(.text); - asm/code_0808C964.o(.text); - asm/macroPlayer.o(.text); - asm/object3D.o(.text); - asm/object3E.o(.text); - src/object/giantLeaf.o(.text); - asm/fairy.o(.text); - asm/ladderUp.o(.text); - asm/object42.o(.text); - asm/object43.o(.text); - asm/object44.o(.text); - asm/object45.o(.text); - asm/giantBookLadder.o(.text); - src/object/heartContainer.o(.text); - src/object/fileScreenObjects.o(.text); - src/object/object49.o(.text); - src/object/backgroundCloud.o(.text); - asm/object4B.o(.text); - asm/pushableFurniture.o(.text); - asm/furniture.o(.text); - src/object/minishSizedEntrance.o(.text); - src/object/archway.o(.text); - asm/giantRock.o(.text); - asm/object51.o(.text); - asm/object52.o(.text); - asm/object53.o(.text); - asm/pullableLever.o(.text); - src/object/minecart.o(.text); - asm/minecart.o(.text); - src/object/thoughtBubble.o(.text); - src/object/hiddenLadderDown.o(.text); - asm/gentariCurtains.o(.text); - asm/lavaPlatform.o(.text); - asm/object5A.o(.text); - asm/object5B.o(.text); - src/object/mask.o(.text); - asm/houseDoorInterior.o(.text); - asm/whirlwind.o(.text); - asm/objectBlockingStairs.o(.text); - src/object/swordsmanNewsletter.o(.text); - asm/object61.o(.text); - asm/giantTwig.o(.text); - asm/object63.o(.text); - asm/object64.o(.text); - asm/ladderHoleInBookshelf.o(.text); - asm/object66.o(.text); - asm/object67.o(.text); - asm/object68.o(.text); - asm/object69.o(.text); - asm/object6A.o(.text); - asm/crenalBeanSprout.o(.text); - asm/minecartDoor.o(.text); - asm/objectOnPillar.o(.text); - src/object/mineralWaterSource.o(.text); - src/object/minishSizedArchway.o(.text); - asm/object70.o(.text); - asm/pushableGrave.o(.text); - asm/object72.o(.text); - src/object/lilypadSmall.o(.text); - asm/object74.o(.text); - src/object/bell.o(.text); - asm/macroDecorations.o(.text); - asm/object79.o(.text); - asm/steam.o(.text); - asm/pushableLever.o(.text); - asm/macroShoes.o(.text); - asm/objectOnSpinyBeetle.o(.text); - src/object/object7E.o(.text); - asm/picoBloom.o(.text); - asm/object80.o(.text); - asm/object81.o(.text); - src/object/bigVortex.o(.text); - asm/bigPushableLever.o(.text); - asm/smallIceBlock.o(.text); - asm/bigIceBlock.o(.text); - src/object/object86.o(.text); - asm/object87.o(.text); - asm/macroBook.o(.text); - asm/object89.o(.text); - asm/object8A.o(.text); - asm/object8B.o(.text); - asm/book.o(.text); - asm/fireplace.o(.text); - asm/object8E.o(.text); - asm/frozenWaterElement.o(.text); - asm/object90.o(.text); - asm/object91.o(.text); - src/object/bakerOven.o(.text); - asm/object93.o(.text); - src/object/windTribeFlag.o(.text); - src/object/bird.o(.text); - asm/bird.o(.text); - asm/object96.o(.text); - asm/object97.o(.text); - asm/object98.o(.text); - asm/object99.o(.text); - asm/macroAcorn.o(.text); - asm/object9B.o(.text); - src/object/treeHidingPortal.o(.text); - asm/treeHidingPortal.o(.text); - src/object/lightableSwitch.o(.text); - src/object/object9E.o(.text); - src/object/fan.o(.text); - asm/fan.o(.text); - asm/objectA0.o(.text); - src/object/palaceArchway.o(.text); - src/object/objectA2.o(.text); - src/object/cloud.o(.text); - src/object/minishLight.o(.text); - asm/objectA5.o(.text); - asm/objectA6.o(.text); - asm/objectA7.o(.text); - src/object/objectA8.o(.text); - asm/objectA8.o(.text); - asm/objectA9.o(.text); - asm/waterfallOpening.o(.text); - asm/objectAB.o(.text); - asm/fourElements.o(.text); - asm/objectAD.o(.text); - src/object/floatingBlock.o(.text); - src/object/objectAF.o(.text); - src/object/metalDoor.o(.text); - src/object/jailBars.o(.text); - src/object/objectB2.o(.text); - asm/objectB3.o(.text); - asm/objectB4.o(.text); - asm/objectB5.o(.text); - asm/objectB6.o(.text); - src/object/well.o(.text); - asm/windTribeTeleporter.o(.text); - asm/objectB9.o(.text); - asm/objectBA.o(.text); - src/object/windcrest.o(.text); - asm/litArea.o(.text); - asm/objectBD.o(.text); - src/object/pinwheel.o(.text); - asm/objectBF.o(.text); - asm/enemyItem.o(.text); - asm/objectC1.o(.text); - /* END objects */ - asm/sub_080A276C.o(.text); - asm/sub_080A2838.o(.text); - asm/sub_080A285C.o(.text); - src/createObject.o(.text); - asm/code_080A29BC.o(.text); - asm/playerItem/playerItemShield.o(.text); - asm/playerItem/playerItem15.o(.text); - src/audio.o(.text); - asm/code_080A3480.o(.text); - src/sub_080A3B84.o(.text); - asm/code_080A3BD0.o(.text); - src/sub_080A554C.o(.text); - asm/code_080A5574.o(.text); - asm/playerItem/playerItemSword.o(.text); - asm/code_080A7C00.o(.text); - src/projectile/projectile0.o(.text); - src/projectile/projectile1.o(.text); - src/projectile/projectile2.o(.text); - src/projectile/projectile3.o(.text); - src/projectile/projectile4.o(.text); - src/projectile/projectile5.o(.text); - src/projectile/projectile6.o(.text); - src/projectile/projectile7.o(.text); - src/projectile/projectile8.o(.text); - src/projectile/projectile9.o(.text); - src/projectile/projectileA.o(.text); - src/projectile/projectileB.o(.text); - src/projectile/projectileC.o(.text); - src/projectile/projectileD.o(.text); - src/projectile/projectileE.o(.text); - src/projectile/projectileF.o(.text); - src/projectile/projectile10.o(.text); - src/projectile/projectile11.o(.text); - src/projectile/projectile12.o(.text); - src/projectile/projectile13.o(.text); - src/projectile/projectile14.o(.text); - src/projectile/projectile15.o(.text); - src/projectile/projectile16.o(.text); - src/projectile/projectile17.o(.text); - src/projectile/projectile18.o(.text); - src/projectile/projectile19.o(.text); - src/projectile/projectile1A.o(.text); - src/projectile/projectile1B.o(.text); - src/projectile/projectile1C.o(.text); - src/projectile/projectile1D.o(.text); - src/projectile/projectile1E.o(.text); - src/projectile/projectile1F.o(.text); - src/projectile/projectile20.o(.text); - src/projectile/projectile21.o(.text); - src/projectile/projectile22.o(.text); - src/projectile/projectile23.o(.text); - src/projectile/projectile24.o(.text); - asm/playerItem/playerItem10.o(.text); - asm/playerItem/playerItem13.o(.text); - src/intro.o(.text); - asm/sub_080AD8F0.o(.text); - asm/code_080AD90C.o(.text); - asm/playerItem/playerItemGustJar.o(.text); - asm/code_080ADD30.o(.text); - /* library functions */ - asm/m4a_asm.o(.text); - src/gba/m4a.o(.text); - asm/libagbsyscall.o(.text); - src/eeprom.o(.text); - *libc.a:memcpy.o(.text); - - /* handwritten assembly in arm mode */ - asm/intr.o(.text); - /* data */ - data/data_080B2A70.o(.rodata); - src/playerItem.o(.rodata); - src/object.o(.rodata); - src/manager.o(.rodata); - src/npc.o(.rodata); - data/data_080B3740.o(.rodata); - data/const/playerItem/playerItem11.o(.rodata); - data/const/playerItem/playerItemBow.o(.rodata); - data/data_080B3E70.o(.rodata); - data/const/playerItem/playerItemSwordBeam.o(.rodata); - data/data_080B4410.o(.rodata); - data/const/playerItem/playerItemBomb.o(.rodata); - data/const/playerItem/playerItem3.o(.rodata); - data/const/playerItem/playerItemC.o(.rodata); - data/const/playerItem/playerItemSwordSpin.o(.rodata); - data/data_080B7910.o(.rodata); - data/const/playerItem/playerItemCellOverwriteSet.o(.rodata); - data/data_080B7B74.o(.rodata); - src/coord.o(.rodata); - data/data_080C93E0.o(.rodata); - src/enemy/octorok.o(.rodata); - data/animations/enemy/octorok.o(.rodata); - src/enemy/chuchu.o(.rodata); - data/animations/enemy/chuchu.o(.rodata); - src/enemy/leever.o(.rodata); - data/animations/enemy/leever.o(.rodata); - src/enemy/peahat.o(.rodata); - data/animations/enemy/peahat.o(.rodata); - src/enemy/rollobite.o(.rodata); - data/animations/enemy/rollobite.o(.rodata); - src/enemy/darkNut.o(.rodata); - data/animations/enemy/darkNut.o(.rodata); - src/enemy/hangingSeed.o(.rodata); - src/enemy/beetle.o(.rodata); - data/animations/enemy/beetle.o(.rodata); - src/enemy/keese.o(.rodata); - data/animations/enemy/keese.o(.rodata); - src/enemy/doorMimic.o(.rodata); - data/animations/enemy/doorMimic.o(.rodata); - src/enemy/rockChuchu.o(.rodata); - data/animations/enemy/rockChuchu.o(.rodata); - src/enemy/spinyChuchu.o(.rodata); - data/animations/enemy/spinyChuchu.o(.rodata); - src/enemy/cuccoChickAggr.o(.rodata); - src/enemy/moldorm.o(.rodata); - src/enemy/enemyE.o(.rodata); - data/animations/enemy/enemyE.o(.rodata); - src/enemy/moldworm.o(.rodata); - data/animations/enemy/moldworm.o(.rodata); - src/enemy/sluggula.o(.rodata); - data/animations/enemy/sluggula.o(.rodata); - src/enemy/pesto.o(.rodata); - data/animations/enemy/pesto.o(.rodata); - src/enemy/puffstool.o(.rodata); - data/animations/enemy/puffstool.o(.rodata); - src/enemy/chuchuBoss.o(.rodata); - data/animations/enemy/chuchuBoss.o(.rodata); - src/enemy/likeLike.o(.rodata); - data/animations/enemy/likeLike.o(.rodata); - src/enemy/spearMoblin.o(.rodata); - data/animations/enemy/spearMoblin.o(.rodata); - src/enemy/businessScrub.o(.rodata); - data/animations/enemy/businessScrub.o(.rodata); - src/enemy/rupeeLike.o(.rodata); - data/animations/enemy/rupeeLike.o(.rodata); - src/enemy/madderpillar.o(.rodata); - data/animations/enemy/madderpillar.o(.rodata); - src/enemy/waterDrop.o(.rodata); - data/animations/enemy/waterDrop.o(.rodata); - src/enemy/wallMaster.o(.rodata); - data/animations/enemy/wallMaster.o(.rodata); - src/enemy/bombPeahat.o(.rodata); - data/animations/enemy/bombPeahat.o(.rodata); - src/enemy/spark.o(.rodata); - data/animations/enemy/spark.o(.rodata); - src/enemy/chaser.o(.rodata); - data/animations/enemy/chaser.o(.rodata); - src/enemy/spikedBeetle.o(.rodata); - data/animations/enemy/spikedBeetle.o(.rodata); - src/enemy/sensorBladeTrap.o(.rodata); - src/enemy/helmasaur.o(.rodata); - data/animations/enemy/helmasaur.o(.rodata); - src/enemy/fallingBoulder.o(.rodata); - data/animations/enemy/fallingBoulder.o(.rodata); - src/enemy/bobomb.o(.rodata); - data/animations/enemy/bobomb.o(.rodata); - src/enemy/wallMaster2.o(.rodata); - data/const/enemy/gleerok.o(.rodata); - data/animations/enemy/gleerok.o(.rodata); - data/const/enemy/vaatiEyesMacro.o(.rodata); - data/animations/enemy/vaatiEyesMacro.o(.rodata); - data/const/enemy/tektite.o(.rodata); - data/animations/enemy/tektite.o(.rodata); - data/const/enemy/wizzrobeWind.o(.rodata); - data/animations/enemy/wizzrobeWind.o(.rodata); - data/const/enemy/wizzrobeFire.o(.rodata); - data/animations/enemy/wizzrobeFire.o(.rodata); - data/const/enemy/wizzrobeIce.o(.rodata); - data/animations/enemy/wizzrobeIce.o(.rodata); - data/const/enemy/armos.o(.rodata); - data/animations/enemy/armos.o(.rodata); - data/const/enemy/eyegore.o(.rodata); - data/animations/enemy/eyegore.o(.rodata); - data/const/enemy/rope.o(.rodata); - data/animations/enemy/rope.o(.rodata); - data/const/enemy/smallPesto.o(.rodata); - data/const/enemy/acroBandits.o(.rodata); - data/animations/enemy/acroBandits.o(.rodata); - data/const/enemy/keaton.o(.rodata); - data/animations/enemy/keaton.o(.rodata); - data/const/enemy/crow.o(.rodata); - data/animations/enemy/crow.o(.rodata); - data/const/enemy/mulldozer.o(.rodata); - data/animations/enemy/mulldozer.o(.rodata); - data/const/enemy/bombarossa.o(.rodata); - data/animations/enemy/bombarossa.o(.rodata); - data/const/enemy/wisp.o(.rodata); - data/animations/enemy/wisp.o(.rodata); - data/const/enemy/spinyBeetle.o(.rodata); - data/animations/enemy/spinyBeetle.o(.rodata); - src/enemy/mazaalHead.o(.rodata); - data/animations/enemy/mazaalHead.o(.rodata); - src/enemy/mazaalMacro.o(.rodata); - data/animations/enemy/mazaalMacro.o(.rodata); - src/enemy/mazaalHand.o(.rodata); - data/animations/enemy/mazaalHand.o(.rodata); - data/const/enemy/octorokBoss.o(.rodata); - data/animations/enemy/octorokBoss.o(.rodata); - data/const/enemy/flyingPot.o(.rodata); - data/const/enemy/gibdo.o(.rodata); - data/animations/enemy/gibdo.o(.rodata); - data/const/enemy/octorokGolden.o(.rodata); - data/const/enemy/tektiteGolden.o(.rodata); - data/const/enemy/ropeGolden.o(.rodata); - data/const/enemy/cloudPiranha.o(.rodata); - data/animations/enemy/cloudPiranha.o(.rodata); - data/const/enemy/scissorsBeetle.o(.rodata); - data/animations/enemy/scissorsBeetle.o(.rodata); - data/const/enemy/cuccoAggr.o(.rodata); - data/animations/enemy/cuccoAggr.o(.rodata); - data/const/enemy/stalfos.o(.rodata); - data/animations/enemy/stalfos.o(.rodata); - data/const/enemy/flyingSkull.o(.rodata); - data/animations/enemy/flyingSkull.o(.rodata); - src/enemy/mazaalBracelet.o(.rodata); - data/animations/enemy/mazaalBracelet.o(.rodata); - data/const/enemy/takkuri.o(.rodata); - data/const/enemy/bowMoblin.o(.rodata); - data/animations/enemy/bowMoblin.o(.rodata); src/enemy/lakitu.o(.rodata); - data/animations/enemy/lakitu.o(.rodata); - src/enemy/lakituCloud.o(.rodata); - data/const/enemy/enemy49.o(.rodata); - data/const/enemy/vaatiRebornEnemy.o(.rodata); - data/animations/enemy/vaatiRebornEnemy.o(.rodata); - data/const/enemy/vaatiProjectile.o(.rodata); - data/animations/enemy/vaatiProjectile.o(.rodata); - data/const/enemy/ballChainSoldier.o(.rodata); - data/animations/enemy/ballChainSoldier.o(.rodata); - data/const/enemy/enemy4D.o(.rodata); - data/const/enemy/ghini.o(.rodata); - data/animations/enemy/ghini.o(.rodata); - data/const/enemy/vaatiTransfigured.o(.rodata); - data/animations/enemy/vaatiTransfigured.o(.rodata); - data/const/enemy/enemy50.o(.rodata); - data/const/enemy/vaatiWrath.o(.rodata); - data/animations/enemy/vaatiWrath.o(.rodata); - data/const/enemy/vaatiArm.o(.rodata); - data/animations/enemy/vaatiArm.o(.rodata); - data/const/enemy/dust.o(.rodata); - data/const/enemy/vaatiBall.o(.rodata); - data/animations/enemy/vaatiBall.o(.rodata); - data/const/enemy/slime.o(.rodata); - data/animations/enemy/slime.o(.rodata); - data/const/enemy/miniSlime.o(.rodata); - data/const/enemy/fireballGuy.o(.rodata); - data/animations/enemy/fireballGuy.o(.rodata); - data/const/enemy/miniFireballGuy.o(.rodata); - data/const/enemy/enemy5A.o(.rodata); - data/animations/enemy/enemy5A.o(.rodata); - data/const/enemy/businessScrubPrologue.o(.rodata); - data/const/enemy/gyorgFemale.o(.rodata); - src/enemy/gyorgMale.o(.rodata); - data/animations/enemy/gyorgMale.o(.rodata); - data/const/enemy/curtain.o(.rodata); - data/animations/enemy/curtain.o(.rodata); - data/const/enemy/enemy5F.o(.rodata); - data/animations/enemy/enemy5F.o(.rodata); - data/const/enemy/gyorgChild.o(.rodata); - data/animations/enemy/gyorgChild.o(.rodata); - data/const/enemy/gyorgFemaleEye.o(.rodata); - data/animations/enemy/gyorgFemaleEye.o(.rodata); - data/const/enemy/enemy62.o(.rodata); - data/animations/enemy/enemy62.o(.rodata); - data/const/enemy/gyorgFemaleMouth.o(.rodata); - data/animations/enemy/gyorgFemaleMouth.o(.rodata); - data/const/enemy/enemy64.o(.rodata); - data/const/enemy/treeItem.o(.rodata); - data/const/enemy/enemy66.o(.rodata); - data/const/code_08049D30.o(.rodata); - src/enemy.o(.rodata); - data/data_080D3D94.o(.rodata); - data/entity_headers.o(.rodata); - data/data_080D5360.o(.rodata); - src/fileScreen.o(.rodata); - data/data_080FC8A4.o(.rodata); - data/const/playerItem/playerItemLantern.o(.rodata); - data/data_080FEEB8.o(.rodata); - src/main.o(.rodata); - data/tileset_headers.o(.rodata); - data/metatile_headers.o(.rodata); - data/map_headers.o(.rodata); - src/textbox.o(.rodata); - data/data_08107BC8.o(.rodata); - data/const/manager/manager1.o(.rodata); - data/const/manager/manager3.o(.rodata); - data/const/manager/manager4.o(.rodata); - src/manager/manager5.o(.rodata); - src/manager/manager7.o(.rodata); - . = ALIGN(4); - src/manager/manager9.o(.rodata); - src/manager/managerA.o(.rodata); - src/manager/managerB.o(.rodata); - src/manager/managerC.o(.rodata); - data/const/manager/managerD.o(.rodata); - data/const/manager/managerF.o(.rodata); - data/const/manager/manager10.o(.rodata); - data/const/manager/manager12.o(.rodata); - data/const/manager/manager13.o(.rodata); - data/const/manager/manager14.o(.rodata); - data/const/manager/manager15.o(.rodata); - data/const/manager/manager17.o(.rodata); - data/const/manager/manager18.o(.rodata); - data/const/manager/manager1A.o(.rodata); - data/const/manager/manager1B.o(.rodata); - data/const/manager/manager1C.o(.rodata); - data/const/manager/manager1D.o(.rodata); - src/manager/manager1E.o(.rodata); - data/const/manager/manager1F.o(.rodata); - data/const/manager/manager22.o(.rodata); - data/const/manager/manager23.o(.rodata); - data/const/manager/manager24.o(.rodata); - src/manager/manager26.o(.rodata); - src/manager/manager27.o(.rodata); - src/manager/manager28.o(.rodata); - data/const/manager/manager2B.o(.rodata); - data/const/manager/manager2E.o(.rodata); - data/const/manager/manager31.o(.rodata); - data/const/manager/manager32.o(.rodata); - data/const/manager/manager34.o(.rodata); - data/const/manager/manager35.o(.rodata); - data/const/manager/manager36.o(.rodata); - data/const/manager/manager37.o(.rodata); - data/const/manager/manager38.o(.rodata); - data/const/manager/manager39.o(.rodata); - data/data_08108E6C.o(.rodata); - data/const/playerItem/playerItem14.o(.rodata); - data/animations/npc/gentari.o(.rodata); - data/const/npc/festari.o(.rodata); - data/animations/npc/festari.o(.rodata); - data/const/npc/forestMinish.o(.rodata); - data/animations/npc/forestMinish.o(.rodata); - data/const/npc/postman.o(.rodata); - data/animations/npc/postman.o(.rodata); - data/const/npc/npc5.o(.rodata); - data/animations/npc/npc5.o(.rodata); - data/const/npc/townsperson.o(.rodata); - data/animations/npc/townsperson.o(.rodata); - data/const/npc/kid.o(.rodata); - data/animations/npc/kid.o(.rodata); - data/const/npc/npc9.o(.rodata); - data/animations/npc/npc9.o(.rodata); - data/const/npc/stamp.o(.rodata); - data/animations/npc/stamp.o(.rodata); - data/const/npc/marcy.o(.rodata); - data/animations/npc/marcy.o(.rodata); - data/const/npc/wheaton.o(.rodata); - data/animations/npc/wheaton.o(.rodata); - data/const/npc/pita.o(.rodata); - data/animations/npc/pita.o(.rodata); - data/const/npc/minishEzlo.o(.rodata); - data/animations/npc/minishEzlo.o(.rodata); - data/const/npc/mailbox.o(.rodata); - data/animations/npc/mailbox.o(.rodata); - data/const/npc/beedle.o(.rodata); - data/animations/npc/beedle.o(.rodata); - data/const/npc/brocco.o(.rodata); - data/animations/npc/brocco.o(.rodata); - data/const/npc/sittingPerson.o(.rodata); - data/animations/npc/sittingPerson.o(.rodata); - data/const/npc/pina.o(.rodata); - data/animations/npc/pina.o(.rodata); - data/const/npc/guard.o(.rodata); - data/animations/npc/guard.o(.rodata); - data/const/npc/guardWithSpear.o(.rodata); - data/animations/npc/guardWithSpear.o(.rodata); - data/const/npc/maid.o(.rodata); - data/animations/npc/maid.o(.rodata); - data/animations/npc/din.o(.rodata); - data/animations/npc/nayru.o(.rodata); - data/animations/npc/farore.o(.rodata); - data/const/npc/sturgeon.o(.rodata); - data/animations/npc/sturgeon.o(.rodata); - data/const/npc/tingleSiblings.o(.rodata); - data/animations/npc/tingleSiblings.o(.rodata); - data/const/npc/stockwell.o(.rodata); - data/animations/npc/stockwell.o(.rodata); - data/const/npc/talon.o(.rodata); - data/animations/npc/talon.o(.rodata); - data/const/npc/malon.o(.rodata); - data/animations/npc/malon.o(.rodata); - data/const/npc/epona.o(.rodata); - data/animations/npc/epona.o(.rodata); - data/const/npc/milkCart.o(.rodata); - data/animations/npc/milkCart.o(.rodata); - data/const/npc/ghostBrothers.o(.rodata); - data/animations/npc/ghostBrothers.o(.rodata); - data/const/npc/smith.o(.rodata); - data/animations/npc/smith.o(.rodata); - data/const/npc/npc23.o(.rodata); - data/const/npc/kingDaltus.o(.rodata); - data/animations/npc/kingDaltus.o(.rodata); - data/const/npc/ministerPotho.o(.rodata); - data/animations/npc/ministerPotho.o(.rodata); - src/npc/npc26.o(.rodata); - data/animations/npc/npc26.o(.rodata); - data/const/npc/vaati.o(.rodata); - data/animations/npc/vaati.o(.rodata); - data/const/npc/zelda.o(.rodata); - data/const/npc/mutoh.o(.rodata); - data/animations/npc/mutoh.o(.rodata); - data/const/npc/carpenter.o(.rodata); - data/animations/npc/carpenter.o(.rodata); - data/const/npc/castorWildsStatue.o(.rodata); - data/animations/npc/castorWildsStatue.o(.rodata); - data/const/npc/cat.o(.rodata); - data/animations/npc/cat.o(.rodata); - data/const/npc/mountainMinish.o(.rodata); - data/animations/npc/mountainMinish.o(.rodata); - data/const/npc/melari.o(.rodata); - data/animations/npc/melari.o(.rodata); - data/const/npc/bladeBrothers.o(.rodata); - data/animations/npc/bladeBrothers.o(.rodata); - data/const/npc/cow.o(.rodata); - data/animations/npc/cow.o(.rodata); - data/const/npc/goron.o(.rodata); - data/animations/npc/goron.o(.rodata); - src/npc/goronMerchant.o(.rodata); - data/animations/npc/goronMerchant.o(.rodata); - data/const/npc/gorman.o(.rodata); - data/animations/npc/gorman.o(.rodata); - data/const/npc/dog.o(.rodata); - data/animations/npc/dog.o(.rodata); - data/const/npc/syrup.o(.rodata); - data/animations/npc/syrup.o(.rodata); - data/const/npc/rem.o(.rodata); - data/animations/npc/rem.o(.rodata); - data/const/npc/townMinish.o(.rodata); - data/animations/npc/townMinish.o(.rodata); - data/const/npc/librari.o(.rodata); - data/animations/npc/librari.o(.rodata); - data/const/npc/percy.o(.rodata); - data/animations/npc/percy.o(.rodata); - data/const/npc/vaatiReborn.o(.rodata); - data/animations/npc/vaatiReborn.o(.rodata); - data/const/npc/moblinLady.o(.rodata); - data/animations/npc/moblinLady.o(.rodata); - data/const/npc/librarians.o(.rodata); - data/animations/npc/librarians.o(.rodata); - data/const/npc/farmers.o(.rodata); - data/animations/npc/farmers.o(.rodata); - data/animations/npc/carlov.o(.rodata); - data/const/npc/dampe.o(.rodata); - data/animations/npc/dampe.o(.rodata); - data/const/npc/drLeft.o(.rodata); - data/animations/npc/drLeft.o(.rodata); - data/animations/npc/kingGustaf.o(.rodata); - data/animations/npc/gina.o(.rodata); - data/animations/npc/simon.o(.rodata); - data/animations/npc/anju.o(.rodata); - data/const/npc/mama.o(.rodata); - data/animations/npc/mama.o(.rodata); - data/animations/npc/emma.o(.rodata); - data/const/npc/teachers.o(.rodata); - data/animations/npc/teachers.o(.rodata); - data/const/npc/windTribespeople.o(.rodata); - data/animations/npc/windTribespeople.o(.rodata); - data/const/npc/gregal.o(.rodata); - data/animations/npc/gregal.o(.rodata); - data/const/npc/mayorHagen.o(.rodata); - data/animations/npc/mayorHagen.o(.rodata); - data/const/npc/bigGoron.o(.rodata); - src/npc/ezloCap.o(.rodata); - src/npc/npc4E.o(.rodata); - src/npc/npc4F.o(.rodata); - data/animations/npc/npc4F.o(.rodata); - data/const/npc/clothesRack.o(.rodata); - data/animations/npc/clothesRack.o(.rodata); - data/const/npc/picolyteBottle.o(.rodata); - data/const/npc/smallTownMinish.o(.rodata); - data/animations/npc/smallTownMinish.o(.rodata); - data/const/npc/hurdyGurdyMan.o(.rodata); - data/animations/npc/hurdyGurdyMan.o(.rodata); - data/const/npc/cucco.o(.rodata); - data/const/npc/cuccoChick.o(.rodata); - data/const/npc/phonograph.o(.rodata); - data/const/npc/npc58.o(.rodata); - data/data_081146D0.o(.rodata); - data/const/playerItem/playerItem12.o(.rodata); - data/const/playerItem/playerItemPacciCane.o(.rodata); - src/player.o(.rodata); - data/data_0811B9E0.o(.rodata); - src/item.o(.rodata); - data/const/item/itemSword.o(.rodata); - data/const/item/itemLantern.o(.rodata); - data/const/item/itemBoomerang.o(.rodata); - data/const/item/itemBow.o(.rodata); - data/const/item/itemBomb.o(.rodata); - data/const/item/itemTryPickupObject.o(.rodata); - data/const/item/itemPegasusBoots.o(.rodata); - data/const/item/itemOcarina.o(.rodata); - data/const/item/itemPacciCane.o(.rodata); - data/const/item/itemShield.o(.rodata); - data/const/item/itemGustJar.o(.rodata); - data/const/item/itemMoleMitts.o(.rodata); - data/const/item/itemJarEmpty.o(.rodata); - data/data_0811BE38.o(.rodata); - data/room_headers.o(.rodata); - src/save.o(.rodata); - data/data_0811E454.o(.rodata); - src/script.o(.rodata); - data/data_0811E750.o(.rodata); - data/const/object/itemOnGround.o(.rodata); - data/const/object/deathFx.o(.rodata); - data/animations/object/deathFx.o(.rodata); - data/const/object/itemForSale.o(.rodata); - data/const/object/button.o(.rodata); - data/const/object/object4.o(.rodata); - data/animations/object/object4.o(.rodata); - data/const/object/pot.o(.rodata); - data/animations/object/pot.o(.rodata); - data/const/object/object6.o(.rodata); - data/animations/object/object6.o(.rodata); - data/const/object/blockPushed.o(.rodata); - src/object/lockedDoor.o(.rodata); - data/const/object/object9.o(.rodata); - data/animations/object/object9.o(.rodata); - data/const/object/objectB.o(.rodata); - data/const/object/chestSpawner.o(.rodata); - data/animations/object/chestSpawner.o(.rodata); - data/const/object/objectD.o(.rodata); - data/animations/object/objectD.o(.rodata); - data/const/object/specialFx.o(.rodata); - data/animations/object/specialFx.o(.rodata); - data/const/object/object10.o(.rodata); - data/const/object/object11.o(.rodata); - data/const/object/object12.o(.rodata); - data/const/object/railtrack.o(.rodata); - data/animations/object/railtrack.o(.rodata); - data/const/object/lilypadLarge.o(.rodata); - data/const/object/object15.o(.rodata); - data/const/object/floatingPlatform.o(.rodata); - data/const/object/object17.o(.rodata); - data/const/object/evilSpirit.o(.rodata); - data/const/object/houseDoorExterior.o(.rodata); - data/const/object/object1A.o(.rodata); - src/object/greatFairy.o(.rodata); - data/animations/npc/greatFairy.o(.rodata); -data/const/object/object1D.o(.rodata); - data/const/object/object1E.o(.rodata); - data/animations/object/object1E.o(.rodata); - data/const/object/object1F.o(.rodata); - data/const/object/object20.o(.rodata); - data/animations/object/object20.o(.rodata); - data/const/object/object21.o(.rodata); - data/const/object/figurineDevice.o(.rodata); - data/animations/object/figurineDevice.o(.rodata); - data/const/object/eyeSwitch.o(.rodata); - data/animations/object/eyeSwitch.o(.rodata); - data/const/object/object24.o(.rodata); - data/animations/object/object24.o(.rodata); - data/const/object/bigBarrel.o(.rodata); - data/animations/object/bigBarrel.o(.rodata); - data/const/object/object26.o(.rodata); - data/const/object/pushableStatue.o(.rodata); - data/animations/object/pushableStatue.o(.rodata); - data/const/object/object29.o(.rodata); - data/animations/object/object29.o(.rodata); - data/const/object/object2A.o(.rodata); - data/animations/object/object2A.o(.rodata); - data/const/object/beanstalk.o(.rodata); - data/animations/object/beanstalk.o(.rodata); - data/const/object/smoke.o(.rodata); - data/const/object/pushableRock.o(.rodata); - data/animations/object/pushableRock.o(.rodata); - data/const/object/hittableLever.o(.rodata); - data/const/object/object30.o(.rodata); - data/const/object/object31.o(.rodata); - data/const/object/pullableMushroom.o(.rodata); - data/animations/object/pullableMushroom.o(.rodata); - data/const/object/bollard.o(.rodata); - data/animations/object/bollard.o(.rodata); - data/const/object/warpPoint.o(.rodata); - data/animations/object/warpPoint.o(.rodata); - data/const/object/object35.o(.rodata); - data/animations/object/object35.o(.rodata); - data/const/object/object36.o(.rodata); - data/const/object/object37.o(.rodata); - data/const/object/jarPortal.o(.rodata); - data/animations/object/jarPortal.o(.rodata); - data/const/object/bossDoor.o(.rodata); - data/animations/object/bossDoor.o(.rodata); - data/const/object/object3A.o(.rodata); - data/const/object/macroMushroomStalks.o(.rodata); - data/const/object/object75.o(.rodata); - data/const/object/object76.o(.rodata); - data/const/object/macroPlayer.o(.rodata); - data/const/object/object3D.o(.rodata); - data/const/object/object3E.o(.rodata); - data/const/object/giantLeaf.o(.rodata); - data/const/object/fairy.o(.rodata); - data/const/object/object42.o(.rodata); - data/const/object/object43.o(.rodata); - data/animations/object/object43.o(.rodata); - data/const/object/object44.o(.rodata); - data/animations/object/object44.o(.rodata); - data/const/object/object45.o(.rodata); - data/animations/object/object45.o(.rodata); - data/const/object/giantBookLadder.o(.rodata); - src/object/heartContainer.o(.rodata); - data/const/object/heartContainer.o(.rodata); - data/const/object/fileScreenObjects.o(.rodata); - data/animations/object/fileScreenObjects.o(.rodata); - data/const/object/object49.o(.rodata); - data/const/object/backgroundCloud.o(.rodata); - data/const/object/object4B.o(.rodata); - data/const/object/pushableFurniture.o(.rodata); - data/const/object/furniture.o(.rodata); - data/animations/object/furniture.o(.rodata); - data/const/object/minishSizedEntrance.o(.rodata); - data/animations/object/minishSizedEntrance.o(.rodata); - data/const/object/object51.o(.rodata); - data/const/object/object53.o(.rodata); - data/const/object/pullableLever.o(.rodata); - data/animations/object/pullableLever.o(.rodata); - data/const/object/minecart.o(.rodata); - data/animations/object/minecart.o(.rodata); - data/const/object/thoughtBubble.o(.rodata); - data/animations/object/thoughtBubble.o(.rodata); - data/const/object/hiddenLadderDown.o(.rodata); - data/const/object/gentariCurtains.o(.rodata); - data/animations/object/gentariCurtains.o(.rodata); - data/const/object/lavaPlatform.o(.rodata); - data/animations/object/lavaPlatform.o(.rodata); - data/const/object/object5A.o(.rodata); - data/const/object/object5B.o(.rodata); - data/const/object/mask.o(.rodata); - data/const/object/houseDoorInterior.o(.rodata); - data/const/object/whirlwind.o(.rodata); - data/animations/object/whirlwind.o(.rodata); - data/const/object/objectBlockingStairs.o(.rodata); - data/const/object/swordsmanNewsletter.o(.rodata); - data/const/object/object61.o(.rodata); - data/const/object/giantTwig.o(.rodata); - data/const/object/object63.o(.rodata); - data/const/object/object64.o(.rodata); - data/animations/object/object64.o(.rodata); - data/const/object/ladderHoleInBookshelf.o(.rodata); - data/const/object/object67.o(.rodata); - data/const/object/object68.o(.rodata); - data/const/object/object6A.o(.rodata); - data/animations/object/object6A.o(.rodata); - data/const/object/crenalBeanSprout.o(.rodata); - data/animations/object/crenalBeanSprout.o(.rodata); - data/const/object/minecartDoor.o(.rodata); - data/const/object/objectOnPillar.o(.rodata); - data/const/object/mineralWaterSource.o(.rodata); - data/const/object/object70.o(.rodata); - data/const/object/pushableGrave.o(.rodata); - data/const/object/object72.o(.rodata); - data/const/object/lilypadSmall.o(.rodata); - data/const/object/object74.o(.rodata); - data/const/object/bell.o(.rodata); - data/const/object/macroDecorations.o(.rodata); - data/const/object/object79.o(.rodata); - data/animations/object/object79.o(.rodata); - data/const/object/steam.o(.rodata); - data/const/object/pushableLever.o(.rodata); - data/animations/object/pushableLever.o(.rodata); - data/const/object/macroShoes.o(.rodata); - data/const/object/objectOnSpinyBeetle.o(.rodata); - data/const/object/picoBloom.o(.rodata); - data/animations/object/picoBloom.o(.rodata); - data/const/object/object80.o(.rodata); - data/const/object/object81.o(.rodata); - data/const/object/bigVortex.o(.rodata); - data/animations/object/bigVortex.o(.rodata); - data/const/object/bigPushableLever.o(.rodata); - data/animations/object/bigPushableLever.o(.rodata); - data/const/object/smallIceBlock.o(.rodata); - data/animations/object/smallIceBlock.o(.rodata); - data/const/object/bigIceBlock.o(.rodata); - data/animations/object/bigIceBlock.o(.rodata); - data/const/object/object86.o(.rodata); - data/animations/object/object86.o(.rodata); - data/const/object/object87.o(.rodata); - data/const/object/macroBook.o(.rodata); - data/animations/object/macroBook.o(.rodata); - data/const/object/object89.o(.rodata); - data/const/object/object8A.o(.rodata); - data/const/object/object8B.o(.rodata); - data/const/object/books.o(.rodata); - data/const/object/fireplace.o(.rodata); - data/const/object/object8E.o(.rodata); - data/const/object/frozenWaterElement.o(.rodata); - data/const/object/object90.o(.rodata); - data/const/object/object91.o(.rodata); - data/const/object/bakerOven.o(.rodata); - data/animations/object/bakerOven.o(.rodata); - data/const/object/object93.o(.rodata); - data/const/object/bird.o(.rodata); - data/animations/object/bird.o(.rodata); - data/const/object/object96.o(.rodata); - data/const/object/object97.o(.rodata); - data/const/object/object98.o(.rodata); - data/animations/object/object98.o(.rodata); - data/const/object/macroAcorn.o(.rodata); - data/const/object/object9B.o(.rodata); - data/animations/object/object9B.o(.rodata); - data/const/object/treeHidingPortal.o(.rodata); - data/const/object/lightableSwitch.o(.rodata); - data/const/object/fan.o(.rodata); - data/animations/object/fan.o(.rodata); - data/const/object/objectA0.o(.rodata); - data/animations/object/objectA0.o(.rodata); - data/const/object/palaceArchway.o(.rodata); src/object/objectA2.o(.rodata); - data/animations/object/objectA2.o(.rodata); - data/const/object/cloud.o(.rodata); - data/const/object/minishLight.o(.rodata); - data/const/object/objectA6.o(.rodata); - data/animations/object/objectA6.o(.rodata); - data/const/object/objectA8.o(.rodata); - data/const/object/objectA9.o(.rodata); - data/const/object/waterfallOpening.o(.rodata); - data/const/object/objectAB.o(.rodata); - data/animations/object/objectAB.o(.rodata); - data/const/object/fourElements.o(.rodata); - data/const/object/objectAD.o(.rodata); - data/const/object/objectAF.o(.rodata); - data/animations/object/objectAF.o(.rodata); - data/const/object/metalDoor.o(.rodata); - data/const/object/jailBars.o(.rodata); - data/animations/object/jailBars.o(.rodata); - data/animations/object/objectB2.o(.rodata); - data/const/object/objectB3.o(.rodata); - data/animations/object/objectB3.o(.rodata); - data/const/object/objectB4.o(.rodata); - data/animations/object/objectB4.o(.rodata); - data/const/object/well.o(.rodata); - data/const/object/windTribeTeleporter.o(.rodata); - data/const/object/objectB9.o(.rodata); - data/const/object/objectBA.o(.rodata); - data/animations/object/objectBA.o(.rodata); - data/const/object/windcrest.o(.rodata); - data/const/object/objectBD.o(.rodata); - data/const/object/pinwheel.o(.rodata); - data/animations/object/pinwheel.o(.rodata); - data/const/object/objectC1.o(.rodata); - data/data_08125104.o(.rodata); - data/const/playerItem/playerItemShield.o(.rodata); - data/const/playerItem/playerItem15.o(.rodata); - data/data_08127280.o(.rodata); - data/const/playerItem/playerItemSword.o(.rodata); - data/data_08129320.o(.rodata); - data/const/projectile/projectile0.o(.rodata); - data/const/projectile/projectile1.o(.rodata); - data/animations/projectile/projectile1.o(.rodata); - data/const/projectile/projectile2.o(.rodata); - data/animations/projectile/projectile2.o(.rodata); - data/const/projectile/projectile3.o(.rodata); - data/const/projectile/projectile4.o(.rodata); - data/const/projectile/projectile5.o(.rodata); - data/const/projectile/projectile6.o(.rodata); - data/animations/projectile/projectile6.o(.rodata); - data/const/projectile/projectile7.o(.rodata); - data/animations/projectile/projectile7.o(.rodata); - data/const/projectile/projectile8.o(.rodata); - data/animations/projectile/projectile8.o(.rodata); - data/const/projectile/projectile9.o(.rodata); - data/animations/projectile/projectile9.o(.rodata); - data/const/projectile/projectileA.o(.rodata); - data/const/projectile/projectileB.o(.rodata); - data/const/projectile/projectileC.o(.rodata); - data/const/projectile/projectileD.o(.rodata); - data/animations/projectile/projectileD.o(.rodata); - data/const/projectile/projectileE.o(.rodata); - data/animations/projectile/projectileE.o(.rodata); - data/const/projectile/projectileF.o(.rodata); - data/const/projectile/projectile10.o(.rodata); - data/const/projectile/projectile11.o(.rodata); - data/animations/projectile/projectile11.o(.rodata); - data/const/projectile/projectile12.o(.rodata); - data/animations/projectile/projectile12.o(.rodata); - data/const/projectile/projectile13.o(.rodata); - data/animations/projectile/projectile13.o(.rodata); - data/const/projectile/projectile14.o(.rodata); - data/const/projectile/projectile15.o(.rodata); - data/animations/projectile/projectile15.o(.rodata); - data/const/projectile/projectile16.o(.rodata); - data/animations/projectile/projectile16.o(.rodata); - data/const/projectile/projectile18.o(.rodata); - data/animations/projectile/projectile18.o(.rodata); - data/const/projectile/projectile19.o(.rodata); - data/const/projectile/projectile1A.o(.rodata); - data/const/projectile/projectile1B.o(.rodata); - data/animations/projectile/projectile1B.o(.rodata); - data/const/projectile/projectile1C.o(.rodata); - data/animations/projectile/projectile1C.o(.rodata); - data/const/projectile/projectile1D.o(.rodata); - data/const/projectile/projectile1E.o(.rodata); - data/animations/projectile/projectile1E.o(.rodata); - data/const/projectile/projectile1F.o(.rodata); - data/animations/projectile/projectile1F.o(.rodata); - data/const/projectile/projectile20.o(.rodata); - data/animations/projectile/projectile20.o(.rodata); - data/const/projectile/projectile21.o(.rodata); - data/const/projectile/projectile22.o(.rodata); - data/const/projectile/projectile23.o(.rodata); - data/animations/projectile/projectile23.o(.rodata); - data/const/projectile/projectile24.o(.rodata); - data/const/playerItem/playerItem10.o(.rodata); - data/data_0812AA88.o(.rodata); - data/const/playerItem/playerItem13.o(.rodata); - src/intro.o(.rodata); - data/data_081320FC.o(.rodata); - data/const/playerItem/playerItemGustJar.o(.rodata); - data/data_08132B30.o(.rodata); - data/strings.o(.rodata); - data/sprite_table.o(.rodata); - src/gba/m4a.o(.rodata); - data/data_089FC6C4.o(.rodata); - src/audio.o(.rodata); - data/data_08A127A1.o(.rodata); - data/sounds.o(.rodata); - src/eeprom.o(.rodata); - } >rom - - /* DWARF 2 sections */ - .debug_aranges 0 : { *(.debug_aranges) } - .debug_pubnames 0 : { *(.debug_pubnames) } - .debug_info 0 : { *(.debug_info) } - .debug_abbrev 0 : { *(.debug_abbrev) } - .debug_line 0 : { *(.debug_line) } - .debug_frame 0 : { *(.debug_frame) } - .debug_str 0 : { *(.debug_str) } - .debug_loc 0 : { *(.debug_loc) } - .debug_macinfo 0 : { *(.debug_macinfo) } - - /* Discard everything not specifically mentioned above. */ - /DISCARD/ : - { - *(*); - } -} diff --git a/src/audio.c b/src/audio.c index b9de7665..e8301fd6 100644 --- a/src/audio.c +++ b/src/audio.c @@ -744,11 +744,7 @@ extern const SongHeader sfx21F; extern const SongHeader sfx220; extern const SongHeader sfx221; -#ifdef DEMO -extern MusicPlayerTrack gMPlayTracksDEMO[]; -#else extern MusicPlayerTrack gMPlayTracks[]; -#endif extern MusicPlayerInfo gMPlayInfos[0x1C]; extern u8 gMPlayMemAccArea[0x10]; @@ -789,42 +785,6 @@ typedef enum { MUSIC_PLAYER_BGM, } MusicPlayerE; -#ifdef DEMO -const MusicPlayer gMusicPlayers[] = { - [MUSIC_PLAYER_00] = { &gMPlayInfos[0x08], &gMPlayTracksDEMO[0x00], 2, 1 }, - [MUSIC_PLAYER_PLY_VO] = { &gMPlayInfos[0x12], &gMPlayTracksDEMO[0x02], 1, 1 }, - [MUSIC_PLAYER_02] = { &gMPlayInfos[0x13], &gMPlayTracksDEMO[0x03], 1, 1 }, - [MUSIC_PLAYER_03] = { &gMPlayInfos2[0x2], &gMPlayTracksDEMO[0x04], 2, 1 }, - [MUSIC_PLAYER_04] = { &gMPlayInfos[0x1B], &gMPlayTracksDEMO[0x06], 2, 1 }, - [MUSIC_PLAYER_05] = { &gMPlayInfos[0x03], &gMPlayTracksDEMO[0x08], 2, 1 }, - [MUSIC_PLAYER_06] = { &gMPlayInfos[0x07], &gMPlayTracksDEMO[0x0A], 2, 1 }, - [MUSIC_PLAYER_07] = { &gMPlayInfos[0x11], &gMPlayTracksDEMO[0x0C], 2, 1 }, - [MUSIC_PLAYER_08] = { &gMPlayInfos2[0x1], &gMPlayTracksDEMO[0x0E], 2, 1 }, - [MUSIC_PLAYER_09] = { &gMPlayInfos[0x06], &gMPlayTracksDEMO[0x10], 2, 1 }, - [MUSIC_PLAYER_0A] = { &gMPlayInfos[0x14], &gMPlayTracksDEMO[0x12], 2, 1 }, - [MUSIC_PLAYER_0B] = { &gMPlayInfos2[0x3], &gMPlayTracksDEMO[0x14], 2, 1 }, - [MUSIC_PLAYER_0C] = { &gMPlayInfos[0x19], &gMPlayTracksDEMO[0x16], 2, 1 }, - [MUSIC_PLAYER_0D] = { &gMPlayInfos[0x02], &gMPlayTracksDEMO[0x18], 2, 1 }, - [MUSIC_PLAYER_0E] = { &gMPlayInfos[0x0E], &gMPlayTracksDEMO[0x1A], 2, 1 }, - [MUSIC_PLAYER_0F] = { &gMPlayInfos[0x18], &gMPlayTracksDEMO[0x1C], 2, 1 }, - [MUSIC_PLAYER_10] = { &gMPlayInfos[0x05], &gMPlayTracksDEMO[0x1E], 2, 1 }, - [MUSIC_PLAYER_11] = { &gMPlayInfos[0x1A], &gMPlayTracksDEMO[0x20], 2, 1 }, - [MUSIC_PLAYER_12] = { &gMPlayInfos[0x0D], &gMPlayTracksDEMO[0x22], 2, 1 }, - [MUSIC_PLAYER_13] = { &gMPlayInfos[0x00], &gMPlayTracksDEMO[0x24], 2, 1 }, - [MUSIC_PLAYER_14] = { &gMPlayInfos[0x0A], &gMPlayTracksDEMO[0x26], 2, 1 }, - [MUSIC_PLAYER_15] = { &gMPlayInfos[0x0C], &gMPlayTracksDEMO[0x28], 2, 1 }, - [MUSIC_PLAYER_16] = { &gMPlayInfos[0x17], &gMPlayTracksDEMO[0x2A], 2, 1 }, - [MUSIC_PLAYER_17] = { &gMPlayInfos[0x01], &gMPlayTracksDEMO[0x2C], 2, 1 }, - [MUSIC_PLAYER_18] = { &gMPlayInfos[0x0B], &gMPlayTracksDEMO[0x2E], 2, 1 }, - [MUSIC_PLAYER_19] = { &gMPlayInfos[0x15], &gMPlayTracksDEMO[0x30], 2, 1 }, - [MUSIC_PLAYER_1A] = { &gMPlayInfos[0x09], &gMPlayTracksDEMO[0x32], 2, 1 }, - [MUSIC_PLAYER_1B] = { &gMPlayInfos2[0x0], &gMPlayTracksDEMO[0x34], 2, 1 }, - [MUSIC_PLAYER_1C] = { &gMPlayInfos[0x0F], &gMPlayTracksDEMO[0x36], 2, 1 }, - [MUSIC_PLAYER_1D] = { &gMPlayInfos[0x16], &gMPlayTracksDEMO[0x38], 2, 1 }, - [MUSIC_PLAYER_1E] = { &gMPlayInfos[0x04], &gMPlayTracksDEMO[0x3A], 0xc, 0 }, - [MUSIC_PLAYER_BGM] = { &gMPlayInfos[0x10], &gMPlayTracksDEMO[0x46], 0xc, 0 }, -}; -#else const MusicPlayer gMusicPlayers[] = { [MUSIC_PLAYER_00] = { &gMPlayInfos[0x08], &gMPlayTracks[0x00], 2, 1 }, [MUSIC_PLAYER_PLY_VO] = { &gMPlayInfos[0x12], &gMPlayTracks[0x02], 1, 1 }, @@ -859,7 +819,6 @@ const MusicPlayer gMusicPlayers[] = { [MUSIC_PLAYER_1E] = { &gMPlayInfos[0x04], &gMPlayTracks[0x3A], 0xc, 0 }, [MUSIC_PLAYER_BGM] = { &gMPlayInfos[0x10], &gMPlayTracks[0x46], 0xc, 0 }, }; -#endif const Song gSongTable[] = { [SFX_NONE] = { &sfxNone, MUSIC_PLAYER_BGM, MUSIC_PLAYER_BGM }, diff --git a/src/code_0805F9A0.c b/src/code_0805F9A0.c index 55c1545d..120a7625 100644 --- a/src/code_0805F9A0.c +++ b/src/code_0805F9A0.c @@ -5,13 +5,8 @@ extern u16 gUnk_081092D4; extern u8 gUnk_081094CE; -#ifdef DEMO -extern u8 gUnk_02036AD0; -extern u8 gUnk_02036A50; -#else extern u8 gUnk_02036AD8; extern u8 gUnk_02036A58; -#endif extern void* gUnk_081092AC[]; typedef struct { @@ -64,11 +59,7 @@ void sub_0805F820(WStruct* r0, u32* r1) { VStruct* temp3; if (r0->unk4 - r0->unk6 > 0) { -#ifdef DEMO - sub_08002724(r1, &gUnk_02036A50); -#else sub_08002724(r1, &gUnk_02036A58); -#endif if (r0->unk1 == 0) { u32 tmp = sub_0805F7A0(*r1); uVar6 = tmp & 0xf; @@ -86,11 +77,7 @@ void sub_0805F820(WStruct* r0, u32* r1) { uVar3 = uVar4; } -#ifdef DEMO - puVar8 = &gUnk_02036A50 + uVar6; -#else puVar8 = &gUnk_02036A58 + uVar6; -#endif temp2 = r0->unk8; temp = gUnk_0810942E[r0->unk3].filler0[r0->unk2 * 2]; uVar7 = r0->unk6; @@ -133,40 +120,23 @@ void sub_0805F918(u32 idx, u32 idx2, void* dest) { u8* temp; u8* temp2; -#ifdef DEMO - MemFill32(sub_0805F8F8(idx2), &gUnk_02036AD0, 0xe0); -#else MemFill32(sub_0805F8F8(idx2), &gUnk_02036AD8, 0xe0); -#endif puVar1 = gUnk_081092AC[idx]; temp = &gUnk_081094CE + idx2 * 0xc0; idx3 = 0; for (i = 0; i < 3; i++) { -#ifdef DEMO - puVar2 = &gUnk_02036A50; - sub_08002724(puVar1, &gUnk_02036A50); -#else puVar2 = &gUnk_02036A58; sub_08002724(puVar1, &gUnk_02036A58); -#endif puVar1 += 0x40; for (j = 0; j < 8; j++) { -#ifdef DEMO - sub_080026C4(puVar2, &gUnk_02036AD0, temp, idx3); -#else sub_080026C4(puVar2, &gUnk_02036AD8, temp, idx3); -#endif puVar2++; idx3++; } } -#ifdef DEMO - LoadResourceAsync((const void*)&gUnk_02036AD0, (u32)dest, 0xe0); -#else LoadResourceAsync((const void*)&gUnk_02036AD8, (u32)dest, 0xe0); -#endif } u32 sub_0805F9A0(u32 r0) { diff --git a/src/enemy/bombPeahat.c b/src/enemy/bombPeahat.c index f94035fc..4e7bbdad 100644 --- a/src/enemy/bombPeahat.c +++ b/src/enemy/bombPeahat.c @@ -365,7 +365,7 @@ void sub_0802AD54(Entity* this) { #ifdef EU // TODO regalloc in EU version NAKED void sub_0802ADDC(Entity* this) { - asm(".incbin \"baserom_eu.gba\", 0x02AD48, 0x000004C"); // TODOg disassemble + asm(".incbin \"baserom_eu.gba\", 0x02AD48, 0x000004C"); // TODO disassemble } #else void sub_0802ADDC(Entity* this) { diff --git a/src/main.c b/src/main.c index 286e128a..421fe0f1 100644 --- a/src/main.c +++ b/src/main.c @@ -92,11 +92,7 @@ void AgbMain(void) { // Interrupt handlers that are loaded into RAM. extern u8 sub_080B197C[]; extern u8 gUnk_030056F0[]; -#ifdef DEMO -extern u8 gUnk_02038558[]; -#else extern u8 gUnk_02038560[]; -#endif extern u8 gUnk_080B2CD8[]; extern u8 gUnk_080B2CD8_2[]; extern u8 gUnk_080B2CD8_3[]; @@ -118,11 +114,7 @@ static void sub_08055F70(void) { size = (u32)gUnk_080B2CD8_2 - (u32)gUnk_080B2CD8_3; if (size != 0) { -#ifdef DEMO - MemCopy(gUnk_080B2CD8_3, gUnk_02038558, size); -#else MemCopy(gUnk_080B2CD8_3, gUnk_02038560, size); -#endif } DispReset(0); diff --git a/src/manager/manager4.c b/src/manager/manager4.c index ccce7d47..99b61179 100644 --- a/src/manager/manager4.c +++ b/src/manager/manager4.c @@ -98,7 +98,7 @@ extern void sub_08080930(); #ifdef EU NAKED void sub_08057A18(Manager* this, DiggingCaveEntrance* entr) { - asm(".incbin \"baserom_eu.gba\", 0x057580, 0x0000078"); // TODOg disassemble + asm(".incbin \"baserom_eu.gba\", 0x057580, 0x0000078"); // TODO disassemble } #else void sub_08057A18(Manager* this, DiggingCaveEntrance* entr) { diff --git a/src/manager/manager7.c b/src/manager/manager7.c index b30beaf1..70af525c 100644 --- a/src/manager/manager7.c +++ b/src/manager/manager7.c @@ -57,7 +57,7 @@ const u8 gUnk_081081E4[] = { 0x16, 0x17, 0x17, 0x18, 0x18 }; #ifdef EU NAKED void Manager7_Main(Manager7* this) { - asm(".incbin \"baserom_eu.gba\", 0x0578A0, 0x00000CC"); // TODOg disassemble + asm(".incbin \"baserom_eu.gba\", 0x0578A0, 0x00000CC"); // TODO disassemble } #else void Manager7_Main(Manager7* this) { @@ -134,7 +134,7 @@ void sub_08057E64() { #ifdef EU NAKED void sub_08057E7C(u32 unk1) { - asm(".incbin \"baserom_eu.gba\", 0x0579B8, 0x0000050"); // TODOg disassemble + asm(".incbin \"baserom_eu.gba\", 0x0579B8, 0x0000050"); // TODO disassemble } #else void sub_08057E7C(u32 unk1) { diff --git a/src/npc/phonograph.c b/src/npc/phonograph.c index f2061b41..e6c23f1e 100644 --- a/src/npc/phonograph.c +++ b/src/npc/phonograph.c @@ -27,7 +27,7 @@ ASM_FUNC("asm/non_matching/phonograph/sub_0806E964.inc", #ifdef EU NAKED void sub_0806EABC(Entity* this, u32 param) { - asm(".incbin \"baserom_eu.gba\", 0x06E4F8, 0x000003C"); // TODOg disassemble + asm(".incbin \"baserom_eu.gba\", 0x06E4F8, 0x000003C"); // TODO disassemble } #else void sub_0806EABC(Entity* this, u32 param) { diff --git a/src/projectile/projectile13.c b/src/projectile/projectile13.c index 092a99bc..1397a72e 100644 --- a/src/projectile/projectile13.c +++ b/src/projectile/projectile13.c @@ -125,7 +125,7 @@ void sub_080A9FD0(Entity* this) { #ifdef EU NAKED void sub_080AA044(Entity* this) { - asm(".incbin \"baserom_eu.gba\", 0x0A983C, 0x00000C4"); // TODOg disassemble + asm(".incbin \"baserom_eu.gba\", 0x0A983C, 0x00000C4"); // TODO disassemble } #else void sub_080AA044(Entity* this) { From 78f88ccee2e193b939ba665e471e936a2ab0ab95 Mon Sep 17 00:00:00 2001 From: octorock <79596758+octorock@users.noreply.github.com> Date: Tue, 22 Jun 2021 12:34:17 +0200 Subject: [PATCH 19/74] Exclude baseroms as dependencies in scaninc --- INSTALL.md | 12 ++++++++++++ data/data_08125104.s | 8 ++++++++ tools/scaninc/scaninc.cpp | 5 ++++- 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/INSTALL.md b/INSTALL.md index 52053fd2..ca85d21c 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -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) diff --git a/data/data_08125104.s b/data/data_08125104.s index 878a558d..59eb64fa 100644 --- a/data/data_08125104.s +++ b/data/data_08125104.s @@ -636,7 +636,11 @@ gUnk_08126798:: @ 08126798 .incbin "baserom.gba", 0x126B60, 0x000001C .endif .4byte gUnk_08125F10 +.ifdef EU .incbin "baserom_eu.gba", 0x1262B8, 0x0000004 +.else + .incbin "baserom.gba", 0x126B80, 0x0000004 +.endif .4byte gUnk_08125F38 .incbin "baserom.gba", 0x126B88, 0x000000C .4byte gUnk_08125F48 @@ -701,7 +705,11 @@ gUnk_08126798:: @ 08126798 .incbin "baserom.gba", 0x126CC0, 0x000001C .endif .4byte gUnk_081263E8 +.ifdef EU .incbin "baserom_eu.gba", 0x126418, 0x0000004 +.else + .incbin "baserom.gba", 0x126CE0, 0x0000004 +.endif .4byte gUnk_081262B8 .incbin "baserom.gba", 0x126CE8, 0x0000004 .4byte gUnk_081262D0 diff --git a/tools/scaninc/scaninc.cpp b/tools/scaninc/scaninc.cpp index b95cbd03..4c4a5cc9 100755 --- a/tools/scaninc/scaninc.cpp +++ b/tools/scaninc/scaninc.cpp @@ -93,7 +93,10 @@ int main(int argc, char **argv) includeDirs.push_back(file.GetSrcDir()); for (auto incbin : file.GetIncbins()) { - dependencies.insert(incbin); + // Don't include incbins starting with baserom, as they might not be necessary if another variant is being built. + if (incbin.rfind("baserom", 0) != 0) { + dependencies.insert(incbin); + } } for (auto include : file.GetIncludes()) { From 5a301b97fa1c41df0ad88542097e013be5870ab7 Mon Sep 17 00:00:00 2001 From: octorock <79596758+octorock@users.noreply.github.com> Date: Tue, 22 Jun 2021 22:58:34 +0200 Subject: [PATCH 20/74] Disassemble functions --- asm/beanstalk.s | 248 +++- asm/chuchuBoss.s | 311 ++++- asm/code_08000108.s | 36 +- asm/code_0801D79C.s | 139 ++- asm/code_080A3BD0.s | 535 ++++++++- asm/code_080A5574.s | 1062 ++++++++++++++++- asm/code_080ADD30.s | 148 ++- asm/crt0.s | 2 +- asm/enemy50.s | 42 +- asm/figurineDevice.s | 672 ++++++++++- asm/fileScreen.s | 97 +- asm/gleerok.s | 86 +- asm/gyorgFemale.s | 181 ++- asm/gyorgFemaleEye.s | 66 +- asm/intr.s | 295 ++++- asm/item/itemLantern.s | 57 +- asm/item/itemSword.s | 180 ++- asm/ladderUp.s | 251 +++- asm/manager37.s | 59 +- asm/managerF.s | 3 +- asm/non_matching/eu/HandlePlayerLife.inc | 251 ++++ asm/non_matching/eu/Manager7_Main.inc | 95 ++ .../eu/TextBoxHandlerQuestion.inc | 153 +++ asm/non_matching/eu/sub_0801F428.inc | 47 + asm/non_matching/eu/sub_0802AAC0.inc | 101 ++ asm/non_matching/eu/sub_0802AB40.inc | 50 + asm/non_matching/eu/sub_0802AC40.inc | 43 + asm/non_matching/eu/sub_0802ADDC.inc | 38 + asm/non_matching/eu/sub_0802AE68.inc | 78 ++ asm/non_matching/eu/sub_0802B1BC.inc | 71 ++ asm/non_matching/eu/sub_0805457C.inc | 207 ++++ asm/non_matching/eu/sub_08057A18.inc | 56 + asm/non_matching/eu/sub_08057E7C.inc | 37 + asm/non_matching/eu/sub_0806EABC.inc | 24 + asm/non_matching/eu/sub_080AA044.inc | 98 ++ asm/non_matching/phonograph/sub_0806E964.inc | 149 ++- asm/non_matching/stockwell/sub_08065370.inc | 179 ++- asm/object29.s | 101 +- asm/object6A.s | 82 +- asm/objectBA.s | 140 ++- asm/octorokBoss.s | 494 +++++++- asm/playerItem/playerItem15.s | 443 ++++++- asm/playerItem/playerItem3.s | 102 +- asm/sub_0807CA18.s | 10 +- asm/vaatiArm.s | 36 +- asm/vaatiProjectile.s | 80 +- asm/vaatiWrath.s | 113 +- asm/waterfallOpening.s | 159 ++- asm/windTribeTeleporter.s | 225 +++- data/const/playerItem/playerItem15.s | 8 +- data/data_08108E6C.s | 2 +- data/data_0812AA88.s | 7 - data/map_headers.s | 2 - data/sounds.s | 99 +- data/sprite_table.s | 10 +- linker.ld | 6 + src/arm_proxy.c | 4 +- src/code_0805436C.c | 4 +- src/enemy/bombPeahat.c | 24 +- src/enemy/chuchu.c | 4 +- src/manager/manager4.c | 4 +- src/manager/manager7.c | 8 +- src/npc/phonograph.c | 4 +- src/projectile/projectile13.c | 4 +- src/save.c | 14 +- src/textbox.c | 4 +- 66 files changed, 8187 insertions(+), 153 deletions(-) create mode 100644 asm/non_matching/eu/HandlePlayerLife.inc create mode 100644 asm/non_matching/eu/Manager7_Main.inc create mode 100644 asm/non_matching/eu/TextBoxHandlerQuestion.inc create mode 100644 asm/non_matching/eu/sub_0801F428.inc create mode 100644 asm/non_matching/eu/sub_0802AAC0.inc create mode 100644 asm/non_matching/eu/sub_0802AB40.inc create mode 100644 asm/non_matching/eu/sub_0802AC40.inc create mode 100644 asm/non_matching/eu/sub_0802ADDC.inc create mode 100644 asm/non_matching/eu/sub_0802AE68.inc create mode 100644 asm/non_matching/eu/sub_0802B1BC.inc create mode 100644 asm/non_matching/eu/sub_0805457C.inc create mode 100644 asm/non_matching/eu/sub_08057A18.inc create mode 100644 asm/non_matching/eu/sub_08057E7C.inc create mode 100644 asm/non_matching/eu/sub_0806EABC.inc create mode 100644 asm/non_matching/eu/sub_080AA044.inc diff --git a/asm/beanstalk.s b/asm/beanstalk.s index 91857daf..1afe4276 100644 --- a/asm/beanstalk.s +++ b/asm/beanstalk.s @@ -23,7 +23,253 @@ _08089D18: .4byte gUnk_08120DF4 thumb_func_start sub_08089D1C sub_08089D1C: @ 0x08089D1C .ifdef EU - .incbin "baserom_eu.gba", 0x089620, 0x00001E0 @TODO disassemble + 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 diff --git a/asm/chuchuBoss.s b/asm/chuchuBoss.s index bbbc3632..8ec4ff2e 100644 --- a/asm/chuchuBoss.s +++ b/asm/chuchuBoss.s @@ -1728,7 +1728,279 @@ _080269C8: .4byte 0xFFFFFF00 thumb_func_start sub_080269CC sub_080269CC: @ 0x080269CC .ifdef EU - .incbin "baserom_eu.gba", 0x0269B0, 0x218 @ TODO disassemble + 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 @@ -4289,7 +4561,42 @@ _08027D1E: thumb_func_start sub_08027D20 sub_08027D20: @ 0x08027D20 .ifdef EU - .incbin "baserom_eu.gba", 0x027D00, 0x48 @TODO disassemble + 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 diff --git a/asm/code_08000108.s b/asm/code_08000108.s index 12ce1f80..c3f2ab5f 100644 --- a/asm/code_08000108.s +++ b/asm/code_08000108.s @@ -6,7 +6,41 @@ .text .ifdef EU - .incbin "baserom_eu.gba", 0x000118, 0x38 @TODO disassemble + 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 diff --git a/asm/code_0801D79C.s b/asm/code_0801D79C.s index b135154c..a4614d00 100644 --- a/asm/code_0801D79C.s +++ b/asm/code_0801D79C.s @@ -2191,10 +2191,145 @@ _0801E8D2: thumb_func_start sub_0801E8D4 sub_0801E8D4: @ 0x0801E8D4 .ifdef JP - .incbin "baserom_jp.gba", 0x01E8B8, 0x90 @TODO disassemble + 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 - .incbin "baserom_eu.gba", 0x01E90C, 0x90 @TODO probably the same as JP? + 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 diff --git a/asm/code_080A3BD0.s b/asm/code_080A3BD0.s index 041f3bc9..e32620f3 100644 --- a/asm/code_080A3BD0.s +++ b/asm/code_080A3BD0.s @@ -545,7 +545,99 @@ _080A407C: .4byte gUnk_02019EE0 thumb_func_start sub_080A4080 sub_080A4080: @ 0x080A4080 .ifdef EU - .incbin "baserom_eu.gba", 0x0A3898, 0x00000CC @TODO disassemble + 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 @@ -1712,7 +1804,224 @@ _080A4974: .4byte gSave thumb_func_start sub_080A4978 sub_080A4978: @ 0x080A4978 .ifdef EU - .incbin "baserom_eu.gba", 0x0A4190, 0x00001CC @TODO disassemble + 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 @@ -3007,7 +3316,227 @@ _080A5380: thumb_func_start sub_080A5384 sub_080A5384: @ 0x080A5384 .ifdef EU - .incbin "baserom_eu.gba", 0x0A4B98, 0x00001C8 @TODO disassemble + 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 diff --git a/asm/code_080A5574.s b/asm/code_080A5574.s index 8951bdc2..e7582e86 100644 --- a/asm/code_080A5574.s +++ b/asm/code_080A5574.s @@ -351,7 +351,211 @@ _080A57F0: thumb_func_start sub_080A57F4 sub_080A57F4: @ 0x080A57F4 .ifdef EU - .incbin "baserom_eu.gba", 0x0A5008, 0x000019C @TODO disassemble + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r2, _080A50A8 @ =gOamCmd + movs r1, #0 + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r2, #4] + strh r1, [r2, #6] + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + ldr r1, _080A50AC @ =gUnk_08128C94 + mov sb, r1 + cmp r0, #0 + bne _080A502E + ldr r3, _080A50B0 @ =gUnk_08128C14 + mov sb, r3 +_080A502E: + ldr r0, _080A50B4 @ =gChooseFileState + ldrb r0, [r0, #3] + lsls r0, r0, #3 + mov r1, sb + adds r3, r1, r0 + movs r0, #0x80 + lsls r0, r0, #4 + strh r0, [r2, #8] + ldrb r0, [r3, #6] + strh r0, [r2] + ldrb r0, [r3, #7] + strh r0, [r2, #2] + ldrb r2, [r3, #4] + ldr r0, _080A50B8 @ =gMain + ldrh r1, [r0, #0xc] + movs r0, #0x10 + ands r0, r1 + adds r1, r2, #0 + adds r1, #0xa + cmp r0, #0 + bne _080A505A + adds r1, #1 +_080A505A: + movs r0, #0xfd + lsls r0, r0, #1 + bl sub_080ADA14 + movs r3, #0 + mov r8, r3 + mov r7, sb + adds r7, #5 +_080A506A: + ldr r0, _080A50B4 @ =gChooseFileState + adds r0, #0x10 + mov r1, r8 + adds r6, r1, r0 + ldrb r1, [r6] + cmp r1, #0 + beq _080A50FA + mov r3, r8 + lsls r5, r3, #3 + mov r0, sb + adds r3, r0, r5 + ldr r4, _080A50A8 @ =gOamCmd + ldrb r0, [r7, #1] + strh r0, [r4] + ldrb r2, [r7, #2] + strh r2, [r4, #2] + movs r0, #0xe8 + lsls r0, r0, #8 + strh r0, [r4, #8] + cmp r1, #0x33 + bhi _080A50CA + mov r1, r8 + cmp r1, #2 + bne _080A50BC + ldrb r0, [r7] + adds r1, r0, #0 + adds r1, #0xa + movs r0, #0xfd + lsls r0, r0, #1 + b _080A50F6 + .align 2, 0 +_080A50A8: .4byte gOamCmd +_080A50AC: .4byte gUnk_08128C94 +_080A50B0: .4byte gUnk_08128C14 +_080A50B4: .4byte gChooseFileState +_080A50B8: .4byte gMain +_080A50BC: + ldrb r0, [r6] + adds r0, #9 + ldrb r3, [r3, #5] + adds r1, r0, r3 + movs r0, #0xfd + lsls r0, r0, #1 + b _080A50F6 +_080A50CA: + ldr r3, _080A50E0 @ =0x0000EB80 + adds r0, r5, r3 + strh r0, [r4, #8] + cmp r1, #0x3d + beq _080A50E4 + cmp r1, #0x3e + bne _080A50EA + adds r0, r2, #0 + adds r0, #8 + b _080A50E8 + .align 2, 0 +_080A50E0: .4byte 0x0000EB80 +_080A50E4: + adds r0, r2, #0 + adds r0, #0xd +_080A50E8: + strh r0, [r4, #2] +_080A50EA: + ldr r0, _080A5190 @ =gUnk_080FDFD8 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + ldrb r1, [r0] + ldr r0, _080A5194 @ =0x00000141 +_080A50F6: + bl sub_080ADA14 +_080A50FA: + adds r7, #8 + movs r0, #1 + add r8, r0 + mov r1, r8 + cmp r1, #0xf + bls _080A506A + ldr r4, _080A5198 @ =gChooseFileState + ldrb r0, [r4, #0x12] + cmp r0, #0 + beq _080A5132 + ldr r2, _080A519C @ =gOamCmd + movs r3, #0x80 + lsls r3, r3, #4 + adds r1, r3, #0 + adds r0, r0, r1 + strh r0, [r2, #8] + mov r3, sb + adds r3, #0x10 + ldrb r0, [r3, #6] + adds r0, #9 + strh r0, [r2] + ldrb r0, [r3, #7] + adds r0, #7 + strh r0, [r2, #2] + movs r0, #0 + movs r1, #1 + bl sub_080ADA14 +_080A5132: + ldrb r0, [r4, #0x13] + cmp r0, #0x3f + bne _080A5188 + mov r3, sb + adds r3, #0x18 + ldr r1, _080A519C @ =gOamCmd + ldrb r0, [r3, #6] + adds r0, #8 + strh r0, [r1] + ldrb r0, [r3, #7] + adds r0, #8 + strh r0, [r1, #2] + ldr r0, _080A51A0 @ =gSave + adds r0, #0xc2 + ldrh r4, [r0] + movs r0, #0 + mov r8, r0 + adds r5, r1, #0 +_080A5156: + adds r0, r4, #0 + movs r1, #0xa + bl __modsi3 + movs r1, #0x80 + lsls r1, r1, #4 + adds r0, r0, r1 + strh r0, [r5, #8] + movs r0, #0 + movs r1, #1 + bl sub_080ADA14 + adds r0, r4, #0 + movs r1, #0xa + bl __divsi3 + adds r4, r0, #0 + ldrh r0, [r5] + subs r0, #8 + strh r0, [r5] + movs r3, #1 + add r8, r3 + mov r0, r8 + cmp r0, #2 + bls _080A5156 +_080A5188: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A5190: .4byte gUnk_080FDFD8 +_080A5194: .4byte 0x00000141 +_080A5198: .4byte gChooseFileState +_080A519C: .4byte gOamCmd +_080A51A0: .4byte gSave + + .else push {r4, r5, r6, r7, lr} mov r7, sb @@ -1039,7 +1243,263 @@ _080A5D18: .4byte gUnk_02019EE0 thumb_func_start sub_080A5D1C sub_080A5D1C: @ 0x080A5D1C .ifdef EU - .incbin "baserom_eu.gba", 0x0A550C, 0x000020C @TODO disassemble + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _080A5690 @ =gArea + ldrb r0, [r0, #3] + lsls r0, r0, #2 + ldr r1, _080A5694 @ =gUnk_080C9C6C + adds r7, r0, r1 + ldr r1, _080A5698EU @ =gUnk_08128D3C + ldrb r0, [r7] + adds r0, r0, r1 + ldrb r6, [r0] + bl sub_0801DB94 + mov r8, r0 + ldr r5, _080A569CEU @ =gOamCmd + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r5, #4] + movs r0, #0 + strh r0, [r5, #6] + strh r0, [r5, #8] + movs r0, #0x34 + strh r0, [r5] + ldr r0, _080A56A0 @ =gChooseFileState + ldrb r1, [r0, #3] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r6, r0 + strh r0, [r5, #2] + ldr r1, _080A56A4 @ =gMain + mov sl, r1 + ldrh r1, [r1, #0xc] + movs r0, #0x10 + ands r0, r1 + movs r1, #0x74 + cmp r0, #0 + bne _080A5560 + movs r1, #0x75 +_080A5560: + movs r0, #0xfd + lsls r0, r0, #1 + bl sub_080ADA14 + movs r0, #0x20 + mov sb, r0 + mov r1, sb + strh r1, [r5] + mov r1, r8 + lsls r0, r1, #1 + add r0, r8 + lsls r0, r0, #2 + adds r0, r6, r0 + strh r0, [r5, #2] + mov r0, sl + ldrh r1, [r0, #0xc] + mov r0, sb + ands r0, r1 + movs r1, #0x79 + cmp r0, #0 + beq _080A558C + movs r1, #0x78 +_080A558C: + movs r0, #0xfd + lsls r0, r0, #1 + bl sub_080ADA14 + movs r0, #0x7e + strh r0, [r5, #2] + movs r0, #0x87 + lsls r0, r0, #7 + strh r0, [r5, #8] + bl sub_080527CC + cmp r0, #0 + beq _080A55BE + movs r0, #0x18 + strh r0, [r5] + ldr r0, _080A56A8 @ =gUnk_080FDFD8 + movs r1, #0xa0 + lsls r1, r1, #1 + adds r0, r0, r1 + ldr r0, [r0] + ldrb r4, [r0] + ldr r0, _080A56ACEU @ =0x00000143 + adds r1, r4, #0 + bl sub_080ADA14 +_080A55BE: + bl sub_08052764 + cmp r0, #0 + beq _080A55DE + movs r0, #0x2e + strh r0, [r5] + ldr r0, _080A56A8 @ =gUnk_080FDFD8 + movs r1, #0xa4 + lsls r1, r1, #1 + adds r0, r0, r1 + ldr r0, [r0] + ldrb r4, [r0] + ldr r0, _080A56ACEU @ =0x00000143 + adds r1, r4, #0 + bl sub_080ADA14 +_080A55DE: + bl sub_0805279C + cmp r0, #0 + beq _080A563CEU + movs r0, #0x45 + strh r0, [r5] + movs r0, #0xe0 + lsls r0, r0, #2 + strh r0, [r5, #8] + ldr r0, _080A56A8 @ =gUnk_080FDFD8 + movs r1, #0xa2 + lsls r1, r1, #1 + adds r0, r0, r1 + ldr r0, [r0] + ldrb r4, [r0] + ldr r0, _080A56ACEU @ =0x00000143 + adds r1, r4, #0 + bl sub_080ADA14 + bl sub_080A5F24 + cmp r0, #0 + beq _080A563CEU + movs r0, #0 + strh r0, [r5, #8] + movs r0, #0x46 + strh r0, [r5] + ldrb r1, [r7, #1] + ldrb r0, [r7, #2] + subs r1, r1, r0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r6, r0 + strh r0, [r5, #2] + mov r0, sl + ldrh r1, [r0, #0xc] + mov r0, sb + ands r0, r1 + movs r1, #0x7b + cmp r0, #0 + beq _080A5634EU + movs r1, #0x7a +_080A5634EU: + movs r0, #0xfd + lsls r0, r0, #1 + bl sub_080ADA14 +_080A563CEU: + ldr r1, _080A569CEU @ =gOamCmd + movs r0, #0 + strh r0, [r1, #8] + movs r0, #0x34 + strh r0, [r1] + strh r6, [r1, #2] + ldrb r0, [r7, #1] + adds r4, r0, #0 + adds r4, #0x82 + movs r5, #0 + ldrb r0, [r7] + cmp r5, r0 + bhs _080A5672 + adds r6, r1, #0 +_080A5658: + movs r0, #0xfd + lsls r0, r0, #1 + adds r1, r4, #0 + bl sub_080ADA14 + subs r4, #1 + ldrh r0, [r6, #2] + adds r0, #0xc + strh r0, [r6, #2] + adds r5, #1 + ldrb r1, [r7] + cmp r5, r1 + blo _080A5658 +_080A5672: + ldr r5, _080A56B0 @ =gUnk_02019EE0 + ldrb r0, [r5] + cmp r0, #0 + beq _080A570E + ldr r7, _080A569CEU @ =gOamCmd + ldr r6, _080A56B4 @ =gScreen +_080A567E: + ldrb r0, [r5] + cmp r0, #2 + beq _080A56D4EU + cmp r0, #2 + bgt _080A56B8 + cmp r0, #1 + beq _080A56C2 + b _080A56E6 + .align 2, 0 +_080A5690: .4byte gArea +_080A5694: .4byte gUnk_080C9C6C +_080A5698EU: .4byte gUnk_08128D3C +_080A569CEU: .4byte gOamCmd +_080A56A0: .4byte gChooseFileState +_080A56A4: .4byte gMain +_080A56A8: .4byte gUnk_080FDFD8 +_080A56ACEU: .4byte 0x00000143 +_080A56B0: .4byte gUnk_02019EE0 +_080A56B4: .4byte gScreen +_080A56B8: + cmp r0, #3 + beq _080A56D8EU + cmp r0, #4 + beq _080A56DCEU + b _080A56E6 +_080A56C2: + movs r4, #0x7d + ldr r0, _080A56D0EU @ =gChooseFileState + ldrb r0, [r0, #3] + cmp r8, r0 + beq _080A56E8 + movs r4, #0x7e + b _080A56E8 + .align 2, 0 +_080A56D0EU: .4byte gChooseFileState +_080A56D4EU: + movs r4, #0x80 + b _080A56E8 +_080A56D8EU: + movs r4, #0x81 + b _080A56E8 +_080A56DCEU: + bl sub_080A5F24 + movs r4, #0x7f + cmp r0, #0 + bne _080A56E8 +_080A56E6: + movs r4, #0xff +_080A56E8: + ldrb r0, [r5, #1] + adds r0, #0x50 + ldrh r1, [r6, #0x16] + subs r0, r0, r1 + strh r0, [r7] + ldrb r0, [r5, #2] + adds r0, #0x10 + ldrh r1, [r6, #0x18] + subs r0, r0, r1 + strh r0, [r7, #2] + movs r0, #0xfd + lsls r0, r0, #1 + adds r1, r4, #0 + bl sub_080ADA14 + adds r5, #3 + ldrb r0, [r5] + cmp r0, #0 + bne _080A567E +_080A570E: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + .else push {r4, r5, r6, r7, lr} mov r7, sl @@ -1597,7 +2057,121 @@ _080A6178: thumb_func_start sub_080A617C sub_080A617C: @ 0x080A617C .ifdef EU - .incbin "baserom_eu.gba", 0x0A5970, 0x00000F4 @TODO disassemble + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r6, _080A5A50 @ =gOamCmd + movs r0, #0 + strh r0, [r6, #4] + strh r0, [r6, #6] + movs r7, #0xc0 + lsls r7, r7, #4 + strh r7, [r6, #8] + movs r0, #0x2f + mov r8, r0 + mov r2, r8 + strh r2, [r6, #2] + ldr r4, _080A5A54 @ =gChooseFileState + ldrb r1, [r4, #3] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + subs r0, r0, r1 + adds r0, #0x1a + strh r0, [r6] + ldr r0, _080A5A58 @ =gMain + ldrh r1, [r0, #0xc] + movs r0, #0x20 + ands r0, r1 + movs r1, #9 + cmp r0, #0 + beq _080A59AC + movs r1, #8 +_080A59AC: + ldr r5, _080A5A5C @ =0x000001FB + adds r0, r5, #0 + bl sub_080ADA14 + ldrb r0, [r4, #3] + lsls r0, r0, #3 + ldr r1, _080A5A60 @ =gUnk_08128D70 + adds r4, r0, r1 + ldrb r0, [r4] + bl GetInventoryValue + cmp r0, #0 + beq _080A5A0E + strh r7, [r6, #8] + movs r0, #0xcc + strh r0, [r6] + movs r0, #0x88 + strh r0, [r6, #2] + adds r0, r5, #0 + movs r1, #0xb + bl sub_080ADA14 + movs r0, #0x30 + strh r0, [r6] + movs r0, #0x6c + strh r0, [r6, #2] + ldrb r0, [r4, #1] + lsls r0, r0, #0xc + movs r2, #0xd8 + lsls r2, r2, #4 + adds r1, r2, #0 + orrs r0, r1 + strh r0, [r6, #8] + ldrb r1, [r4, #2] + adds r0, r5, #0 + bl sub_080ADA14 + ldrb r0, [r4, #1] + lsls r0, r0, #0xc + orrs r0, r7 + strh r0, [r6, #8] + movs r0, #0x78 + strh r0, [r6] + movs r0, #0x68 + strh r0, [r6, #2] + adds r0, r5, #0 + movs r1, #0xc + bl sub_080ADA14 +_080A5A0E: + mov r0, r8 + strh r0, [r6, #2] + movs r5, #0 + adds r7, r6, #0 + movs r6, #0x18 +_080A5A18: + lsls r1, r5, #3 + ldr r0, _080A5A60 @ =gUnk_08128D70 + adds r4, r1, r0 + ldrb r0, [r4] + bl GetInventoryValue + cmp r0, #0 + beq _080A5A40 + ldrb r0, [r4, #1] + lsls r0, r0, #0xc + movs r2, #0xc0 + lsls r2, r2, #4 + adds r1, r2, #0 + orrs r0, r1 + strh r0, [r7, #8] + strh r6, [r7] + ldr r0, _080A5A5C @ =0x000001FB + movs r1, #0xa + bl sub_080ADA14 +_080A5A40: + adds r6, #0x1b + adds r5, #1 + cmp r5, #7 + bls _080A5A18 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A5A50: .4byte gOamCmd +_080A5A54: .4byte gChooseFileState +_080A5A58: .4byte gMain +_080A5A5C: .4byte 0x000001FB +_080A5A60: .4byte gUnk_08128D70 + .else push {r4, r5, r6, r7, lr} mov r7, r8 @@ -1850,7 +2424,95 @@ _080A6374: .4byte gMenu thumb_func_start sub_080A6378 sub_080A6378: @ 0x080A6378 .ifdef EU - .incbin "baserom_eu.gba", 0x0A5B6C, 0x00000C0 @TODO disassemble + push {r4, r5, r6, lr} + ldr r0, _080A5C18 @ =gChooseFileState + adds r4, r0, #0 + adds r4, #0x2c + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + movs r6, #0x20 + ands r0, r6 + cmp r0, #0 + beq _080A5B86 + bl sub_080A6438 +_080A5B86: + ldr r5, _080A5C1C @ =gOamCmd + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r5, #4] + movs r0, #0 + strh r0, [r5, #6] + movs r0, #0xe0 + lsls r0, r0, #7 + strh r0, [r5, #8] + ldrb r1, [r4] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + bne _080A5BE0 + ldr r4, _080A5C20 @ =gScreenTransition + ldrh r1, [r4, #0x20] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #5 + movs r1, #0xf9 + lsls r1, r1, #4 + bl __divsi3 + adds r0, #0x28 + strh r0, [r5] + ldrh r0, [r4, #0x22] + lsls r0, r0, #7 + movs r1, #0xc6 + lsls r1, r1, #4 + bl __divsi3 + adds r0, #0xc + strh r0, [r5, #2] + ldr r0, _080A5C24 @ =gPlayerState + ldr r0, [r0, #0x30] + movs r1, #8 + ands r0, r1 + movs r1, #0x59 + cmp r0, #0 + beq _080A5BD8 + movs r1, #0x5a +_080A5BD8: + movs r0, #0xfd + lsls r0, r0, #1 + bl sub_080ADA14 +_080A5BE0: + ldr r3, _080A5C18 @ =gChooseFileState + ldrb r0, [r3, #3] + lsls r0, r0, #3 + ldr r1, _080A5C28 @ =gUnk_08128DE8 + adds r0, r0, r1 + ldr r2, _080A5C1C @ =gOamCmd + ldrb r1, [r0, #6] + strh r1, [r2] + ldrb r0, [r0, #7] + strh r0, [r2, #2] + ldrb r0, [r3, #3] + lsls r2, r0, #1 + adds r2, r2, r0 + adds r2, #0x26 + adds r3, #0x2c + ldrb r1, [r3] + lsrs r1, r1, #4 + movs r0, #1 + bics r0, r1 + adds r1, r2, r0 + movs r0, #0xfd + lsls r0, r0, #1 + bl sub_080ADA14 + bl sub_080A6498 + pop {r4, r5, r6, pc} + .align 2, 0 +_080A5C18: .4byte gChooseFileState +_080A5C1C: .4byte gOamCmd +_080A5C20: .4byte gScreenTransition +_080A5C24: .4byte gPlayerState +_080A5C28: .4byte gUnk_08128DE8 + .else push {r4, r5, r6, lr} ldr r0, _080A6420 @ =gMenu @@ -1944,7 +2606,53 @@ _080A6434: .4byte gUnk_08128DE8 thumb_func_start sub_080A6438 sub_080A6438: @ 0x080A6438 .ifdef EU - .incbin "baserom_eu.gba", 0x0A5C2C, 0x0000060 @TODO disassemble + push {r4, r5, r6, r7, lr} + ldr r2, _080A5C7C @ =gOamCmd + movs r1, #0 + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r2, #4] + strh r1, [r2, #6] + strh r1, [r2, #8] + ldr r0, _080A5C80 @ =gSave + ldr r1, _080A5C84 @ =gChooseFileState + ldrh r0, [r0, #0x20] + ldrh r5, [r1, #0x10] + ands r5, r0 + ldr r4, _080A5C88EU @ =gUnk_08128F58 + movs r6, #0 + ldrb r0, [r4] + cmp r0, #0 + beq _080A5C78 + adds r7, r2, #0 +_080A5C52: + movs r0, #1 + lsls r0, r6 + ands r0, r5 + cmp r0, #0 + beq _080A5C6E + ldrb r0, [r4, #1] + strh r0, [r7] + ldrb r0, [r4, #2] + strh r0, [r7, #2] + ldrb r1, [r4] + movs r0, #0xfd + lsls r0, r0, #1 + bl sub_080ADA14 +_080A5C6E: + adds r6, #1 + adds r4, #8 + ldrb r0, [r4] + cmp r0, #0 + bne _080A5C52 +_080A5C78: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A5C7C: .4byte gOamCmd +_080A5C80: .4byte gSave +_080A5C84: .4byte gChooseFileState +_080A5C88EU: .4byte gUnk_08128F58 + .else push {r4, r5, r6, r7, lr} ldr r2, _080A6484 @ =gOamCmd @@ -1997,7 +2705,53 @@ _080A6494: .4byte 0x000001FB thumb_func_start sub_080A6498 sub_080A6498: @ 0x080A6498 .ifdef EU - .incbin "baserom_eu.gba", 0x0A5C8C, 0x0000064 @TODO disassemble + push {r4, r5, r6, r7, lr} + ldr r0, _080A5CDCEU @ =gOamCmd + movs r2, #0 + movs r1, #0x80 + lsls r1, r1, #4 + strh r1, [r0, #4] + strh r2, [r0, #6] + strh r2, [r0, #8] + movs r4, #0 + ldr r7, _080A5CE0 @ =gSave + adds r6, r0, #0 + movs r5, #0x28 +_080A5CA4: + movs r1, #1 + lsls r1, r4 + ldr r0, [r7, #0x40] + ands r0, r1 + cmp r0, #0 + bne _080A5CC8EU + lsls r1, r4, #3 + ldr r0, _080A5CE4 @ =gUnk_08128DE8 + adds r1, r1, r0 + ldrb r0, [r1, #6] + strh r0, [r6] + ldrb r0, [r1, #7] + strh r0, [r6, #2] + movs r0, #0xfd + lsls r0, r0, #1 + adds r1, r5, #0 + bl sub_080ADA14 +_080A5CC8EU: + adds r5, #3 + adds r4, #1 + cmp r4, #0x10 + bls _080A5CA4 + ldr r0, _080A5CE8 @ =gScreen + adds r0, #0x62 + ldr r1, _080A5CEC @ =0x00003D3F + strh r1, [r0] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A5CDCEU: .4byte gOamCmd +_080A5CE0: .4byte gSave +_080A5CE4: .4byte gUnk_08128DE8 +_080A5CE8: .4byte gScreen +_080A5CEC: .4byte 0x00003D3F + .else push {r4, r5, r6, r7, lr} ldr r0, _080A64E4 @ =gOamCmd @@ -2272,7 +3026,129 @@ _080A66C2: thumb_func_start sub_080A66D0 sub_080A66D0: @ 0x080A66D0 .ifdef EU - .incbin "baserom_eu.gba", 0x0A5EC4, 0x00000F4 @TODO disassemble + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r6, _080A5F74 @ =gOamCmd + movs r0, #0 + strh r0, [r6, #4] + strh r0, [r6, #6] + movs r0, #0x78 + strh r0, [r6] + ldr r4, _080A5F78 @ =gChooseFileState + ldrb r0, [r4, #3] + lsls r0, r0, #3 + ldr r1, _080A5F7C @ =gUnk_08128E94 + adds r5, r0, r1 + adds r1, r4, #0 + adds r1, #0x2c + ldrb r0, [r1] + adds r2, r0, #1 + strb r2, [r1] + adds r0, r4, #0 + adds r0, #0x2b + ldrb r0, [r0] + cmp r0, #1 + beq _080A5F30 + movs r0, #0x10 + ands r2, r0 + cmp r2, #0 + beq _080A5F30 + movs r0, #0x80 + lsls r0, r0, #4 + strh r0, [r6, #8] + ldrh r0, [r4, #0xa] + cmp r0, #0 + beq _080A5F1A + movs r0, #0xc + strh r0, [r6, #2] + movs r0, #0xfd + lsls r0, r0, #1 + movs r1, #0x71 + bl sub_080ADA14 +_080A5F1A: + ldrb r0, [r5, #2] + ldrh r4, [r4, #0xa] + cmp r0, r4 + bls _080A5F30 + movs r0, #0x84 + strh r0, [r6, #2] + movs r0, #0xfd + lsls r0, r0, #1 + movs r1, #0x72 + bl sub_080ADA14 +_080A5F30: + ldrb r0, [r5, #7] + mov sl, r0 + ldrb r5, [r5, #3] + mov sb, r5 + ldr r1, _080A5F78 @ =gChooseFileState + ldrh r0, [r1, #0xa] + mov r8, r0 + ldr r2, _080A5F74 @ =gOamCmd + movs r0, #0 + strh r0, [r2, #4] + strh r0, [r2, #6] + movs r0, #0xc0 + lsls r0, r0, #4 + strh r0, [r2, #8] + adds r1, #0x2c + ldrb r1, [r1] + movs r0, #0x20 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r4, _080A5F80 @ =gUnk_02019EE0 + ldrh r0, [r4, #2] + cmp r0, #0 + beq _080A5FAE + rsbs r5, r6, #0 + orrs r5, r6 + adds r7, r2, #0 +_080A5F66: + movs r1, #0 + ldrb r0, [r4] + cmp r0, #1 + bne _080A5F84 + lsrs r1, r5, #0x1f + b _080A5F8A + .align 2, 0 +_080A5F74: .4byte gOamCmd +_080A5F78: .4byte gChooseFileState +_080A5F7C: .4byte gUnk_08128E94 +_080A5F80: .4byte gUnk_02019EE0 +_080A5F84: + cmp r6, #0 + bne _080A5F8A + movs r1, #1 +_080A5F8A: + cmp r1, #0 + beq _080A5FA6 + ldrh r0, [r4, #4] + add r0, sl + strh r0, [r7] + ldrh r0, [r4, #6] + add r0, sb + mov r1, r8 + subs r0, r0, r1 + strh r0, [r7, #2] + ldrh r0, [r4, #2] + ldrb r1, [r4, #1] + bl sub_080ADA14 +_080A5FA6: + adds r4, #8 + ldrh r0, [r4, #2] + cmp r0, #0 + bne _080A5F66 +_080A5FAE: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .else push {r4, r5, r6, r7, lr} mov r7, sl @@ -2533,7 +3409,93 @@ _080A68D0: .4byte gUnk_02019EE0 thumb_func_start sub_080A68D4 sub_080A68D4: @ 0x080A68D4 .ifdef EU - .incbin "baserom_eu.gba", 0x0A60C8, 0x00000B4 @TODO disassemble + push {r4, r5, r6, lr} + ldr r0, _080A6100EU @ =gPlayerState + ldr r0, [r0, #0x30] + movs r1, #8 + ands r0, r1 + movs r4, #0x64 + cmp r0, #0 + beq _080A60DA + movs r4, #0x65 +_080A60DA: + ldr r1, _080A6104EU @ =gScreenTransition + ldrh r0, [r1, #0x20] + ldrh r1, [r1, #0x22] + movs r2, #0xfd + lsls r2, r2, #1 + movs r3, #0x80 + lsls r3, r3, #1 + adds r3, r4, r3 + bl sub_080A698C + bl sub_080A6F40 + adds r6, r0, #0 + ldr r0, _080A6108 @ =gSave + ldrh r0, [r0, #0x20] + ands r6, r0 + ldr r4, _080A610C @ =gUnk_08128F58 + movs r5, #0 + b _080A612C + .align 2, 0 +_080A6100EU: .4byte gPlayerState +_080A6104EU: .4byte gScreenTransition +_080A6108: .4byte gSave +_080A610C: .4byte gUnk_08128F58 +_080A6110: + movs r0, #1 + lsls r0, r5 + ands r0, r6 + cmp r0, #0 + beq _080A6128EU + ldrh r0, [r4, #4] + ldrh r1, [r4, #6] + ldrb r3, [r4, #3] + movs r2, #0xfd + lsls r2, r2, #1 + bl sub_080A698C +_080A6128EU: + adds r5, #1 + adds r4, #8 +_080A612C: + ldrb r0, [r4] + cmp r0, #0 + bne _080A6110 + movs r5, #0xa +_080A6134: + adds r0, r5, #0 + bl CheckKinstoneFused + cmp r0, #0 + beq _080A616A + adds r0, r5, #0 + bl sub_0801E810 + cmp r0, #0 + bne _080A616A + ldr r1, _080A6174 @ =gUnk_080C9CBC + lsls r0, r5, #3 + adds r0, r0, r1 + ldrb r3, [r0, #7] + ldrb r0, [r0, #4] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080A6178EU @ =gUnk_080FE320 + adds r1, r1, r0 + ldrh r0, [r1, #0xc] + ldrh r1, [r1, #0xe] + adds r3, #0x64 + movs r2, #0xfd + lsls r2, r2, #1 + bl sub_080A698C +_080A616A: + adds r5, #1 + cmp r5, #0x64 + bls _080A6134 + pop {r4, r5, r6, pc} + .align 2, 0 +_080A6174: .4byte gUnk_080C9CBC +_080A6178EU: .4byte gUnk_080FE320 + + .else push {r4, r5, r6, lr} ldr r0, _080A690C @ =gPlayerState @@ -3175,7 +4137,34 @@ _080A6DC6: thumb_func_start sub_080A6DD0 sub_080A6DD0: @ 0x080A6DD0 .ifdef EU - .incbin "baserom_eu.gba", 0x0A65BC, 0x0000034 @TODO disassemble + push {lr} + bl sub_08056338 + cmp r0, #0 + beq _080A65CC + cmp r0, #1 + beq _080A65D8 + b _080A65EA +_080A65CC: + ldr r1, _080A65D4 @ =gChooseFileState + movs r0, #2 + b _080A65DC + .align 2, 0 +_080A65D4: .4byte gChooseFileState +_080A65D8: + ldr r1, _080A65ECEU @ =gChooseFileState + movs r0, #3 +_080A65DC: + strb r0, [r1] + movs r0, #1 + cmp r0, #0 + beq _080A65EA + movs r0, #3 + bl sub_080A7114 +_080A65EA: + pop {pc} + .align 2, 0 +_080A65ECEU: .4byte gChooseFileState + .else push {lr} bl sub_08056338 @@ -3260,7 +4249,60 @@ _080A6E6C: .4byte gUnk_08128024 thumb_func_start sub_080A6E70 sub_080A6E70: @ 0x080A6E70 .ifdef EU - .incbin "baserom_eu.gba", 0x0A6668, 0x0000070 @TODO disassemble + push {r4, r5, lr} + ldr r1, _080A66CC @ =gOamCmd + movs r0, #0 + strh r0, [r1, #4] + strh r0, [r1, #6] + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r1, #8] + ldr r1, _080A66D0 @ =gChooseFileState + adds r4, r1, #0 + adds r4, #0x2c + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + ldrb r0, [r1, #3] + bl sub_080A6EE0 + ldrb r1, [r4] + movs r0, #0x10 + ands r0, r1 + movs r1, #0x5e + cmp r0, #0 + beq _080A6698 + movs r1, #0x5d +_080A6698: + movs r0, #0xfd + lsls r0, r0, #1 + bl sub_080ADA14 + movs r4, #0 + ldr r5, _080A66D4 @ =gSave +_080A66A4EU: + adds r0, r4, #0 + adds r0, #0x18 + movs r1, #1 + lsls r1, r0 + ldr r0, [r5, #0x40] + ands r0, r1 + cmp r0, #0 + beq _080A66C4 + adds r0, r4, #0 + bl sub_080A6EE0 + movs r0, #0xfd + lsls r0, r0, #1 + movs r1, #0x5c + bl sub_080ADA14 +_080A66C4: + adds r4, #1 + cmp r4, #7 + bls _080A66A4EU + pop {r4, r5, pc} + .align 2, 0 +_080A66CC: .4byte gOamCmd +_080A66D0: .4byte gChooseFileState +_080A66D4: .4byte gSave + .else push {r4, r5, lr} ldr r1, _080A6ED0 @ =gOamCmd diff --git a/asm/code_080ADD30.s b/asm/code_080ADD30.s index 3bf23ff7..2420ef4b 100644 --- a/asm/code_080ADD30.s +++ b/asm/code_080ADD30.s @@ -44,7 +44,53 @@ _080ADD6C: .4byte gUnk_02024490 thumb_func_start sub_080ADD70 sub_080ADD70: @ 0x080ADD70 .ifdef EU - .incbin "baserom_eu.gba", 0x0AD514, 0x0000058 @TODO disassemble + 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 @@ -322,7 +368,63 @@ _080ADF7C: thumb_func_start LoadFixedGFX LoadFixedGFX: @ 0x080ADF80 .ifdef EU - .incbin "baserom_eu.gba", 0x0AD714, 0x0000070 @TODO disassemble + 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 @@ -394,7 +496,47 @@ _080AE004: .4byte gUnk_08132B30 thumb_func_start sub_080AE008 sub_080AE008: @ 0x080AE008 .ifdef EU - .incbin "baserom_eu.gba", 0x0AD784, 0x0000050 @TODO disassemble + 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 diff --git a/asm/crt0.s b/asm/crt0.s index a0daf080..d72915b1 100644 --- a/asm/crt0.s +++ b/asm/crt0.s @@ -35,5 +35,5 @@ sp_usr: .4byte gUnk_03007F00 INTR_VECTOR_BUF: .4byte 0x03007FFC intr_main: .4byte IntrMain .ifdef EU -unk_function: .4byte 0x08000119 @ TODO ptr +unk_function: .4byte sub_08000118 .endif diff --git a/asm/enemy50.s b/asm/enemy50.s index 02c6683e..7b044061 100644 --- a/asm/enemy50.s +++ b/asm/enemy50.s @@ -10,7 +10,47 @@ thumb_func_start Enemy50 Enemy50: @ 0x08040B2C .ifdef EU - .incbin "baserom_eu.gba", 0x040a2c, 0x5c @TODO disassemble + 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 diff --git a/asm/figurineDevice.s b/asm/figurineDevice.s index c7767f27..5a4e395b 100644 --- a/asm/figurineDevice.s +++ b/asm/figurineDevice.s @@ -365,7 +365,118 @@ _08087E5A: thumb_func_start sub_08087E5C sub_08087E5C: @ 0x08087E5C .ifdef EU - .incbin "baserom_eu.gba", 0x087838, 0x00000E0 @TODO disassemble + 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 @@ -538,10 +649,181 @@ _08087F90: .4byte 0x00004022 thumb_func_start sub_08087F94 sub_08087F94: @ 0x08087F94 .ifdef JP - .incbin "baserom_jp.gba", 0x087dac, 0xb0 @TODO disassemble + 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 - .incbin "baserom_eu.gba", 0x087954, 0x000009C @TODO disassemble + 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 @@ -813,10 +1095,237 @@ _0808815C: .4byte gSave thumb_func_start sub_08088160 sub_08088160: @ 0x08088160 .ifdef JP - .incbin "baserom_jp.gba", 0x087f88, 0xe8 @TODO disassemble + 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 - .incbin "baserom_eu.gba", 0x087B1C, 0x00000E8 @ TODO same as JP + 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 @@ -1049,7 +1558,132 @@ _08088324: .4byte gScreen thumb_func_start sub_08088328 sub_08088328: @ 0x08088328 .ifdef EU - .incbin "baserom_eu.gba", 0x087CBC, 0x00000F8 @TODO disassemble + 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 @@ -1473,7 +2107,31 @@ _08088618: .4byte gSave thumb_func_start sub_0808861C sub_0808861C: @ 0x0808861C .ifdef JP - .incbin "baserom_jp.gba", 0x088420, 0x34 @TODO disassemble + 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 diff --git a/asm/fileScreen.s b/asm/fileScreen.s index a289b6f3..49177655 100755 --- a/asm/fileScreen.s +++ b/asm/fileScreen.s @@ -39,10 +39,10 @@ HandleGameplayScreen: @ 08051A28 _08051A64: pop {r4, pc} .byte 0x00, 0x00 -_08051A68: .4byte 0x030010A0 @TODO ptr -_08051A6C: .4byte 0x080FC55C @TODO ptr -_08051A70x: .4byte 0x03001000 @TODO ptr -_08051A74x: .4byte 0x02002A40 @TODO ptr +_08051A68: .4byte gUnk_030010A0 +_08051A6C: .4byte gUnk_080FC9D8 +_08051A70x: .4byte gMain +_08051A74x: .4byte gUnk_02002A40 .else thumb_func_start HandleGameplayScreen HandleGameplayScreen: @ 0x08051988 @@ -201,7 +201,83 @@ _08051AEC: .4byte gScreenTransition thumb_func_start sub_08051AF0 sub_08051AF0: @ 0x08051AF0 .ifdef EU - .incbin "baserom_eu.gba", 0x05172C, 0x00000D0 @TODO disassemble + 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 @@ -448,7 +524,16 @@ _08051D28: .4byte gScreenTransition thumb_func_start sub_08051D2C sub_08051D2C: @ 0x08051D2C .ifdef DEMO - .incbin "baserom_demo.gba", 0x051df4, 0x14 @TODO disassemble + 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 diff --git a/asm/gleerok.s b/asm/gleerok.s index 5367db12..b1e611bb 100644 --- a/asm/gleerok.s +++ b/asm/gleerok.s @@ -993,7 +993,91 @@ _0802D7B0: .4byte gScreenTransition thumb_func_start sub_0802D7B4 sub_0802D7B4: @ 0x0802D7B4 .ifdef EU - .incbin "baserom_eu.gba", 0x02d73c, 0xb0 @TODO disassemble + 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 diff --git a/asm/gyorgFemale.s b/asm/gyorgFemale.s index acb064ee..49dd9eda 100644 --- a/asm/gyorgFemale.s +++ b/asm/gyorgFemale.s @@ -472,7 +472,6 @@ _08046494: pop {r4, r5, r6, pc} .align 2, 0 -@ TODO move inside, if EU no longer references this function thumb_func_start sub_08046498 sub_08046498: @ 0x08046498 .ifndef EU @@ -708,7 +707,33 @@ _0804665A: thumb_func_start sub_08046668 sub_08046668: @ 0x08046668 .ifdef EU - .incbin "baserom_eu.gba", 0x046438, 0x38 @TODO disassemble + 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 @@ -745,7 +770,157 @@ _080466A4: .4byte gUnk_080D1AF8 thumb_func_start sub_080466A8 sub_080466A8: @ 0x080466A8 .ifdef EU - .incbin "baserom_eu.gba", 0x046470, 0x12c @TODO disassemble + 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 diff --git a/asm/gyorgFemaleEye.s b/asm/gyorgFemaleEye.s index 6e26f54c..0876c5fa 100644 --- a/asm/gyorgFemaleEye.s +++ b/asm/gyorgFemaleEye.s @@ -45,7 +45,71 @@ _080489C8: .4byte gUnk_080D1F7C thumb_func_start sub_080489CC sub_080489CC: @ 0x080489CC .ifdef EU - .incbin "baserom_eu.gba", 0x048788, 0x84 @TODO disassemble + 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 diff --git a/asm/intr.s b/asm/intr.s index aea16317..c8c67bea 100644 --- a/asm/intr.s +++ b/asm/intr.s @@ -815,7 +815,54 @@ _080B23EC: .4byte gUnk_0800464E arm_func_start sub_080B23F0 sub_080B23F0: @ 0x080B23F0 .ifdef EU - .incbin "baserom_eu.gba", 0x0B1950, 0x00000A8 @TODO disassemble + 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 @@ -932,7 +979,131 @@ _080B2540: arm_func_start sub_080B255C sub_080B255C: @ 0x080B255C .ifdef EU - .incbin "baserom_eu.gba", 0x0B1ADC, 0x00001C8 @TODO disassemble + 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 @@ -1057,6 +1228,8 @@ _080B26D0: bx lr .endif + + _080B2718: ldrsb r0, [r4, #0x28] cmp r0, #0 @@ -1282,12 +1455,124 @@ _080B2A0C: .align 2, 0 .ifdef EU - .incbin "baserom_eu.gba", 0x0B1FBC, 0x0000194 @TODO disassemble +_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 - .4byte 0x03006958 @TODO make pointer? +_080B2154: .4byte 0x03006958 @TODO make pointer? .endif _080B2A34: .4byte gUnk_081326EC _080B2A38: .4byte gUnk_081326EC @@ -1305,5 +1590,5 @@ _080B2A64: .4byte gUnk_03000000 _080B2A68: .4byte gUnk_0300695C _080B2A6C: .4byte 0x3E003F00 .ifdef EU - .4byte 0x03003DF8 @TODO pointer? +_080B2194: .4byte 0x03003DF8 @TODO pointer? .endif diff --git a/asm/item/itemLantern.s b/asm/item/itemLantern.s index 0c26709a..08f5e893 100644 --- a/asm/item/itemLantern.s +++ b/asm/item/itemLantern.s @@ -119,7 +119,62 @@ _08075AD8: .4byte gUnk_08126EEC thumb_func_start sub_08075ADC sub_08075ADC: @ 0x08075ADC .ifdef EU - .incbin "baserom_eu.gba", 0x07550C, 0x0000074 @TODO disassemble + 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 diff --git a/asm/item/itemSword.s b/asm/item/itemSword.s index d14add13..4e6af7b5 100644 --- a/asm/item/itemSword.s +++ b/asm/item/itemSword.s @@ -27,7 +27,185 @@ _08075334: .4byte gUnk_0811BD44 thumb_func_start sub_08075338 sub_08075338: @ 0x08075338 .ifdef EU - .incbin "baserom_eu.gba", 0x074D74, 0x0000174 @TODO disassemble + 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 diff --git a/asm/ladderUp.s b/asm/ladderUp.s index 6137f152..785c3f3b 100644 --- a/asm/ladderUp.s +++ b/asm/ladderUp.s @@ -10,7 +10,256 @@ thumb_func_start LadderUp LadderUp: @ 0x0808DB54 .ifdef EU - .incbin "baserom_eu.gba", 0x08D44C, 0x0000200 @TODO disassemble + 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 diff --git a/asm/manager37.s b/asm/manager37.s index 43657704..35b69824 100644 --- a/asm/manager37.s +++ b/asm/manager37.s @@ -35,10 +35,65 @@ _0805DE64: .4byte gUnk_08108DC4 thumb_func_start sub_0805DE68 sub_0805DE68: @ 0x0805DE68 .ifdef JP - .incbin "baserom_jp.gba", 0x05dcbc, 0x3c @TODO disassemble + 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 - .incbin "baserom_eu.gba", 0x05D904, 0x3c @TODO same as JP + 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 diff --git a/asm/managerF.s b/asm/managerF.s index 73263595..e8a21841 100644 --- a/asm/managerF.s +++ b/asm/managerF.s @@ -805,10 +805,9 @@ _080594D2: _080594D4: .4byte gUnk_08108380 _080594D8: .4byte gPlayerEntity -@TODO move down once EU pointers are fixed +.ifndef EU thumb_func_start sub_080594DC sub_080594DC: @ 0x080594DC -.ifndef EU push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] diff --git a/asm/non_matching/eu/HandlePlayerLife.inc b/asm/non_matching/eu/HandlePlayerLife.inc new file mode 100644 index 00000000..96134c53 --- /dev/null +++ b/asm/non_matching/eu/HandlePlayerLife.inc @@ -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 diff --git a/asm/non_matching/eu/Manager7_Main.inc b/asm/non_matching/eu/Manager7_Main.inc new file mode 100644 index 00000000..83617e4d --- /dev/null +++ b/asm/non_matching/eu/Manager7_Main.inc @@ -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 diff --git a/asm/non_matching/eu/TextBoxHandlerQuestion.inc b/asm/non_matching/eu/TextBoxHandlerQuestion.inc new file mode 100644 index 00000000..86aee30b --- /dev/null +++ b/asm/non_matching/eu/TextBoxHandlerQuestion.inc @@ -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 diff --git a/asm/non_matching/eu/sub_0801F428.inc b/asm/non_matching/eu/sub_0801F428.inc new file mode 100644 index 00000000..6c876322 --- /dev/null +++ b/asm/non_matching/eu/sub_0801F428.inc @@ -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 diff --git a/asm/non_matching/eu/sub_0802AAC0.inc b/asm/non_matching/eu/sub_0802AAC0.inc new file mode 100644 index 00000000..9004a523 --- /dev/null +++ b/asm/non_matching/eu/sub_0802AAC0.inc @@ -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 diff --git a/asm/non_matching/eu/sub_0802AB40.inc b/asm/non_matching/eu/sub_0802AB40.inc new file mode 100644 index 00000000..8e4b9440 --- /dev/null +++ b/asm/non_matching/eu/sub_0802AB40.inc @@ -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 diff --git a/asm/non_matching/eu/sub_0802AC40.inc b/asm/non_matching/eu/sub_0802AC40.inc new file mode 100644 index 00000000..80e3632d --- /dev/null +++ b/asm/non_matching/eu/sub_0802AC40.inc @@ -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 diff --git a/asm/non_matching/eu/sub_0802ADDC.inc b/asm/non_matching/eu/sub_0802ADDC.inc new file mode 100644 index 00000000..115c4495 --- /dev/null +++ b/asm/non_matching/eu/sub_0802ADDC.inc @@ -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 diff --git a/asm/non_matching/eu/sub_0802AE68.inc b/asm/non_matching/eu/sub_0802AE68.inc new file mode 100644 index 00000000..76996976 --- /dev/null +++ b/asm/non_matching/eu/sub_0802AE68.inc @@ -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 diff --git a/asm/non_matching/eu/sub_0802B1BC.inc b/asm/non_matching/eu/sub_0802B1BC.inc new file mode 100644 index 00000000..5e2f6265 --- /dev/null +++ b/asm/non_matching/eu/sub_0802B1BC.inc @@ -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 diff --git a/asm/non_matching/eu/sub_0805457C.inc b/asm/non_matching/eu/sub_0805457C.inc new file mode 100644 index 00000000..55d3bca5 --- /dev/null +++ b/asm/non_matching/eu/sub_0805457C.inc @@ -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 diff --git a/asm/non_matching/eu/sub_08057A18.inc b/asm/non_matching/eu/sub_08057A18.inc new file mode 100644 index 00000000..3ea092df --- /dev/null +++ b/asm/non_matching/eu/sub_08057A18.inc @@ -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 diff --git a/asm/non_matching/eu/sub_08057E7C.inc b/asm/non_matching/eu/sub_08057E7C.inc new file mode 100644 index 00000000..34c9421b --- /dev/null +++ b/asm/non_matching/eu/sub_08057E7C.inc @@ -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 diff --git a/asm/non_matching/eu/sub_0806EABC.inc b/asm/non_matching/eu/sub_0806EABC.inc new file mode 100644 index 00000000..623a31db --- /dev/null +++ b/asm/non_matching/eu/sub_0806EABC.inc @@ -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 diff --git a/asm/non_matching/eu/sub_080AA044.inc b/asm/non_matching/eu/sub_080AA044.inc new file mode 100644 index 00000000..bc193574 --- /dev/null +++ b/asm/non_matching/eu/sub_080AA044.inc @@ -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 diff --git a/asm/non_matching/phonograph/sub_0806E964.inc b/asm/non_matching/phonograph/sub_0806E964.inc index 63091404..6c6123f1 100644 --- a/asm/non_matching/phonograph/sub_0806E964.inc +++ b/asm/non_matching/phonograph/sub_0806E964.inc @@ -1,7 +1,154 @@ .syntax unified .ifdef EU - .incbin "baserom_eu.gba", 0x06E3DC, 0x000011C @TODO disassemble + 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 diff --git a/asm/non_matching/stockwell/sub_08065370.inc b/asm/non_matching/stockwell/sub_08065370.inc index 0c4e91c1..14d83cbc 100644 --- a/asm/non_matching/stockwell/sub_08065370.inc +++ b/asm/non_matching/stockwell/sub_08065370.inc @@ -1,7 +1,184 @@ .syntax unified .ifdef EU - .incbin "baserom_eu.gba", 0x064DE8, 0x0000164 @TODO disassemble + 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 diff --git a/asm/object29.s b/asm/object29.s index e973f20e..72e20190 100644 --- a/asm/object29.s +++ b/asm/object29.s @@ -31,7 +31,106 @@ _08089870: .4byte gUnk_08120D90 thumb_func_start sub_08089874 sub_08089874: @ 0x08089874 .ifdef EU - .incbin "baserom_eu.gba", 0x089184, 0x00000C4 @TODO disassemble + 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 diff --git a/asm/object6A.s b/asm/object6A.s index 54e443d7..8e01d30f 100644 --- a/asm/object6A.s +++ b/asm/object6A.s @@ -729,7 +729,87 @@ sub_08094F98: @ 0x08094F98 thumb_func_start sub_08094FA8 sub_08094FA8: @ 0x08094FA8 .ifdef EU - .incbin "baserom_eu.gba", 0x09487C, 0x000009C @TODO disassemble + 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 diff --git a/asm/objectBA.s b/asm/objectBA.s index 65210428..66229321 100644 --- a/asm/objectBA.s +++ b/asm/objectBA.s @@ -29,7 +29,145 @@ _080A1700: .4byte gUnk_08124ED0 thumb_func_start sub_080A1704 sub_080A1704: @ 0x080A1704 .ifdef EU - .incbin "baserom_eu.gba", 0x0A0F40, 0x0000128 @TODO disassemble + 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 diff --git a/asm/octorokBoss.s b/asm/octorokBoss.s index 5b9f204d..59ca7773 100644 --- a/asm/octorokBoss.s +++ b/asm/octorokBoss.s @@ -177,10 +177,500 @@ _080352FA: thumb_func_start sub_080352FC sub_080352FC: @ 0x080352FC .ifdef JP - .incbin "baserom_jp.gba", 0x0352a0, 0x1fc @TODO disassemble + 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 - .incbin "baserom_eu.gba", 0x03527C, 0x1fc @TODO disassemble same as 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 _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 diff --git a/asm/playerItem/playerItem15.s b/asm/playerItem/playerItem15.s index b2d26ba1..32384227 100644 --- a/asm/playerItem/playerItem15.s +++ b/asm/playerItem/playerItem15.s @@ -206,19 +206,448 @@ _080A3200: // DEMO only functions .ifdef DEMO -thumb_func_start HandleChooseDemoScreen + thumb_func_start HandleChooseDemoScreen HandleChooseDemoScreen: @ 0x080A2E18 -.incbin "baserom_demo.gba", 0x0a2e18, 0x28 @TODO disassemble + push {lr} + bl FlushSprites + ldr r1, _080A2E38 @ =demoFunctions + ldr r0, _080A2E3C @ =gMain + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + bl sub_080A30AC + bl sub_080AD918 + pop {pc} + .align 2, 0 +_080A2E38: .4byte demoFunctions +_080A2E3C: .4byte gMain thumb_func_start sub_080A2E40 sub_080A2E40: @ 0x080A2E40 -.incbin "baserom_demo.gba", 0x0a2e40, 0x14c @TODO disassemble + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + movs r0, #1 + bl DispReset + bl InitSoundPlayingInfo + movs r0, #0xc0 + lsls r0, r0, #0x13 + mov sb, r0 + movs r1, #0x80 + bl MemClear + bl MessageInitialize + bl EraseAllEntities + bl sub_080ADD30 + movs r0, #0 + bl sub_0801CFA8 + ldr r0, _080A2F4C @ =gUnk_02032EC0 + movs r1, #0xed + lsls r1, r1, #2 + bl MemClear + ldr r0, _080A2F50 @ =gChooseFileState + movs r1, #0x30 + bl MemClear + ldr r0, _080A2F54 @ =gBG0Buffer + movs r1, #0x80 + lsls r1, r1, #4 + mov r8, r1 + bl MemClear + bl sub_08053320 + movs r0, #0xb5 + bl LoadPaletteGroup + movs r0, #0x56 + bl LoadGfxGroup + ldr r5, _080A2F58 @ =0x089FD1B4 + ldr r4, _080A2F5C @ =0x02017760 + movs r6, #0x80 + lsls r6, r6, #1 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r6, #0 + bl MemCopy + movs r0, #0x80 + lsls r0, r0, #2 + adds r4, r4, r0 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r6, #0 + bl MemCopy + ldr r4, _080A2F60 @ =0x089FD2F4 + movs r5, #0x80 + lsls r5, r5, #8 + adds r0, r4, #0 + mov r1, sb + adds r2, r5, #0 + bl MemCopy + ldr r1, _080A2F64 @ =0x06010000 + adds r0, r4, #0 + adds r2, r5, #0 + bl MemCopy + ldr r4, _080A2F68 @ =0x08A05751 + ldr r1, _080A2F6C @ =gBG1Buffer + adds r0, r4, #0 + mov r2, r8 + bl MemCopy + movs r1, #0x80 + lsls r1, r1, #4 + adds r4, r4, r1 + ldr r1, _080A2F70 @ =gBG2Buffer + adds r0, r4, #0 + mov r2, r8 + bl MemCopy + ldr r1, _080A2F74 @ =gScreen + movs r2, #0 + movs r0, #0xf8 + lsls r0, r0, #5 + strh r0, [r1] + ldr r0, _080A2F78 @ =0x00001C81 + strh r0, [r1, #0x14] + ldr r0, _080A2F7C @ =0x00001D82 + strh r0, [r1, #0x20] + adds r0, #0x89 + strh r0, [r1, #0x2c] + movs r4, #1 + movs r0, #1 + strh r0, [r1, #0x1a] + strh r0, [r1, #0x26] + strh r0, [r1, #0x32] + adds r3, r1, #0 + adds r3, #0x66 + ldr r0, _080A2F80 @ =0x00001044 + strh r0, [r3] + adds r1, #0x68 + ldr r0, _080A2F84 @ =0x00000B04 + strh r0, [r1] + movs r0, #0x80 + lsls r0, r0, #0x12 + strb r2, [r0, #4] + movs r0, #0 + movs r1, #0 + bl sub_080A3198 + ldr r0, _080A2F88 @ =gMain + strb r4, [r0, #3] + movs r0, #7 + bl SoundReq + movs r0, #4 + movs r1, #8 + bl DoFade + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, pc} + .align 2, 0 +_080A2F4C: .4byte gUnk_02032EC0 +_080A2F50: .4byte gChooseFileState +_080A2F54: .4byte gBG0Buffer +_080A2F58: .4byte gUnk_089FD1B4 +_080A2F5C: .4byte 0x02017760 +_080A2F60: .4byte gUnk_089FD2F4 +_080A2F64: .4byte 0x06010000 +_080A2F68: .4byte gUnk_08A05751 +_080A2F6C: .4byte gBG1Buffer +_080A2F70: .4byte gBG2Buffer +_080A2F74: .4byte gScreen +_080A2F78: .4byte 0x00001C81 +_080A2F7C: .4byte 0x00001D82 +_080A2F80: .4byte 0x00001044 +_080A2F84: .4byte 0x00000B04 +_080A2F88: .4byte gMain -thumb_func_start sub_080A2F8C + + thumb_func_start sub_080A2F8C sub_080A2F8C: @ 0x080A2F8C -.incbin "baserom_demo.gba", 0x0A2F8C, 0x44 @TODO disassemble + push {lr} + ldr r0, _080A2FA4 @ =gFadeControl + ldrb r0, [r0] + cmp r0, #0 + bne _080A2FCC + ldr r2, _080A2FA8 @ =gMain + ldrb r0, [r2, #4] + cmp r0, #0 + beq _080A2FAC + cmp r0, #1 + beq _080A2FC6 + b _080A2FCC + .align 2, 0 +_080A2FA4: .4byte gFadeControl +_080A2FA8: .4byte gMain +_080A2FAC: + movs r0, #1 + strb r0, [r2, #4] + movs r1, #0x80 + lsls r1, r1, #0x12 + strb r0, [r1, #5] + strb r0, [r1, #6] + movs r0, #2 + strb r0, [r2, #3] + movs r0, #5 + movs r1, #8 + bl DoFade + b _080A2FCC +_080A2FC6: + movs r0, #2 + bl InitScreen +_080A2FCC: + pop {pc} + .align 2, 0 -thumb_func_start sub_080A2FD0 + + thumb_func_start sub_080A2FD0 sub_080A2FD0: @ 0x080A2FD0 -.incbin "baserom_demo.gba", 0x0A2FD0, 0x210 @TODO disassemble + 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 + + thumb_func_start sub_080A30AC +sub_080A30AC: @ 0x080A30AC + 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 + + thumb_func_start sub_080A3198 +sub_080A3198: @ 0x080A3198 + 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 + .endif diff --git a/asm/playerItem/playerItem3.s b/asm/playerItem/playerItem3.s index 09952ea8..6c16303d 100644 --- a/asm/playerItem/playerItem3.s +++ b/asm/playerItem/playerItem3.s @@ -67,7 +67,107 @@ _0801B4C4: .4byte 0xFFFFE000 thumb_func_start sub_0801B4C8 sub_0801B4C8: @ 0x0801B4C8 .ifdef EU - .incbin "baserom_eu.gba", 0x01B4F4, 0xc8 @ TODO disassemble + 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 diff --git a/asm/sub_0807CA18.s b/asm/sub_0807CA18.s index 34669d14..8db5f175 100644 --- a/asm/sub_0807CA18.s +++ b/asm/sub_0807CA18.s @@ -107,13 +107,13 @@ _0807CA04: str r0, [r2, #0x00] movs r0, #0x01 pop {r4, r5, r6, pc} -_0807CA38: .4byte 0x02002A40 @TODO ptr -_0807CA3C: .4byte 0x0811DFF4 @TODO ptr -_0807CA40: .4byte 0x0811EF10 @TODO ptr +_0807CA38: .4byte gSave +_0807CA3C: .4byte gUnk_0811E470 +_0807CA40: .4byte demoPointers _0807CA44: .4byte 0x000004B4 _0807CA48: .4byte 0xFFFFD8F1 -_0807CA4C: .4byte 0x02000010 @TODO ptr -_0807CA50: .4byte 0x0811DFF9 @TODO ptr +_0807CA4C: .4byte gUnk_02000010 +_0807CA50: .4byte demoUnknown1 .else thumb_func_start sub_0807CA18 sub_0807CA18: @ 0x0807CA18 diff --git a/asm/vaatiArm.s b/asm/vaatiArm.s index 39a63f98..e0bb1f35 100644 --- a/asm/vaatiArm.s +++ b/asm/vaatiArm.s @@ -3165,10 +3165,42 @@ _08043C8C: thumb_func_start sub_08043C98 sub_08043C98: @ 0x08043C98 .ifdef JP - .incbin "baserom_jp.gba", 0x043BB0, 0x20 @TODO disassemble + 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 - .incbin "baserom_eu.gba", 0x043AC4, 0x20 @TODO same as 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 _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 diff --git a/asm/vaatiProjectile.s b/asm/vaatiProjectile.s index 119c72e3..2b7617e5 100644 --- a/asm/vaatiProjectile.s +++ b/asm/vaatiProjectile.s @@ -52,7 +52,57 @@ _0803E0D8: .4byte gUnk_080D0660 thumb_func_start sub_0803E0DC sub_0803E0DC: @ 0x0803E0DC .ifdef EU - .incbin "baserom_eu.gba", 0x03E038, 0x68 @TODO disassemble + 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 @@ -560,7 +610,33 @@ _0803E49E: thumb_func_start sub_0803E4A0 sub_0803E4A0: @ 0x0803E4A0 .ifdef EU - .incbin "baserom_eu.gba", 0x03e3b8, 0x30 @TODO disassemble + 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 diff --git a/asm/vaatiWrath.s b/asm/vaatiWrath.s index e31fe4b3..5fb19bab 100644 --- a/asm/vaatiWrath.s +++ b/asm/vaatiWrath.s @@ -65,10 +65,28 @@ _0804139C: .4byte gUnk_080D0E1C thumb_func_start sub_080413A0 sub_080413A0: @ 0x080413A0 .ifdef JP - .incbin "baserom_jp.gba", 0x041344, 0x18 @TODO disassemble + 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 - .incbin "baserom_eu.gba", 0x041274, 0x18 @TODO same as JP + 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 @@ -1126,7 +1144,96 @@ _08041BE4: .4byte gUnk_080D0E68 thumb_func_start sub_08041BE8 sub_08041BE8: @ 0x08041BE8 .ifdef EU - .incbin "baserom_eu.gba", 0x041AB4, 0xCA @TODO disassemble + 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 diff --git a/asm/waterfallOpening.s b/asm/waterfallOpening.s index b2e767f9..b75c7cb1 100644 --- a/asm/waterfallOpening.s +++ b/asm/waterfallOpening.s @@ -10,7 +10,164 @@ thumb_func_start WaterfallOpening WaterfallOpening: @ 0x0809FF68 .ifdef EU - .incbin "baserom_eu.gba", 0x09F7C8, 0x000013C @TODO disassemble + 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 diff --git a/asm/windTribeTeleporter.s b/asm/windTribeTeleporter.s index 9349cf93..6a9d2e91 100644 --- a/asm/windTribeTeleporter.s +++ b/asm/windTribeTeleporter.s @@ -116,10 +116,231 @@ _080A0FFE: thumb_func_start sub_080A1000 sub_080A1000: @ 0x080A1000 .ifdef JP - .incbin "baserom_jp.gba", 0x0a0dc8, 0xd0 @TODO disassemble + 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 - .incbin "baserom_eu.gba", 0x0A084C, 0xd0 @TODO same as JP + 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 diff --git a/data/const/playerItem/playerItem15.s b/data/const/playerItem/playerItem15.s index c962fa97..66a8ff96 100644 --- a/data/const/playerItem/playerItem15.s +++ b/data/const/playerItem/playerItem15.s @@ -13,13 +13,15 @@ gUnk_08127278:: @ 08127278 .ifdef DEMO @ TODO choose demo screen -something: +demoFunctions:: .4byte sub_080A2E40 .4byte sub_080A2FD0 .4byte sub_080A2F8C -something2:: -.incbin "baserom_demo.gba", 0x127c98, 0x38 +gUnk_08127C98:: +.incbin "baserom_demo.gba", 0x127c98, 0x30 +gUnk_08127CC8:: +.incbin "baserom_demo.gba", 0x127CC8, 0x8 .endif diff --git a/data/data_08108E6C.s b/data/data_08108E6C.s index 625a6cea..ef668635 100644 --- a/data/data_08108E6C.s +++ b/data/data_08108E6C.s @@ -420,7 +420,7 @@ gUnk_08109230:: @ 08109230 gUnk_08109244:: @ 08109244 .incbin "baserom.gba", 0x109244, 0x0000004 -gUnk_08109248:: @ 08109248 TODO might be a pointer array? +gUnk_08109248:: @ 08109248 .4byte gUnk_08692F60 .4byte gUnk_08692F60 .4byte gUnk_086978E0 diff --git a/data/data_0812AA88.s b/data/data_0812AA88.s index bc3cc62a..88fb300c 100644 --- a/data/data_0812AA88.s +++ b/data/data_0812AA88.s @@ -2237,7 +2237,6 @@ ENUM_12AED0_LV1_CLEAR_MES: .4byte gUnk_0812AC84 .endif -.ifndef JP gUnk_0812B604:: @ 0812B604 .incbin "baserom.gba", 0x12B604, 0x0000008 @@ -2249,12 +2248,6 @@ gUnk_0812B614:: @ 0812B614 gUnk_0812B61C:: @ 0812B61C .incbin "baserom.gba", 0x12B61C, 0x0000008 -.else -gUnk_0812B61C:: -.space 0x3c -.endif - - gUnk_0812B624:: @ 0812B624 diff --git a/data/map_headers.s b/data/map_headers.s index 5cd95b2e..914e306f 100755 --- a/data/map_headers.s +++ b/data/map_headers.s @@ -3955,8 +3955,6 @@ gAreaRoomMap_TempleOfDroplets_31:: @ 08105EAC map_bottom 0x20A614+0x154, 0x1BA, 1 map_top 0x20A64C+0x1CC, 0x1BA, 1, 1 .else -@nocheckin map_bottom 0x20A614, 0x186, 1 - @nocheckin map_top 0x20A64C, 0x186, 1, 1 map_bottom 0x20A784, 0x1BA, 1 map_top 0x20A834, 0x1BA, 1, 1 .endif diff --git a/data/sounds.s b/data/sounds.s index 4833d395..670a54b2 100644 --- a/data/sounds.s +++ b/data/sounds.s @@ -3840,7 +3840,32 @@ bgmDarkHyruleCastle:: @ 08DD6BFC bgmSecretCastleEntrance_track0:: @ 08DD6C20 .ifdef EU - .incbin "baserom_eu.gba", 0xEE2278, 0x0000073 @TODO pointers inside + .incbin "baserom_eu.gba", 0xEE2278, 0x000000B +gUnk_08EE2283:: + .incbin "baserom_eu.gba", 0xEE2283, 0x000000D +gUnk_08EE2290:: + .incbin "baserom_eu.gba", 0xEE2290, 0x000000F + .4byte gUnk_08EE2290 + .byte 0xB3 + .4byte gUnk_08EE2290 + .byte 0xB3 + .4byte gUnk_08EE2290 + .byte 0xB3 + .4byte gUnk_08EE2290 + .incbin "baserom_eu.gba", 0xEE22B2, 0x0000010 + .4byte gUnk_08EE2290 +gUnk_08EE22C6:: + .incbin "baserom_eu.gba", 0xEE22C6, 0x000000F + .4byte gUnk_08EE22C6 + .byte 0xB3 + .4byte gUnk_08EE22C6 + .byte 0xB3 + .4byte gUnk_08EE22C6 + .byte 0xBB + .byte 0x3C + .byte 0xB2 + .4byte gUnk_08EE2283 + .byte 0xB1 .else .incbin "baserom.gba", 0xDD6C20, 0x000000B gUnk_08DD6C2B:: @ 08DD6C2B @@ -3865,7 +3890,32 @@ gUnk_08DD6C85:: @ 08DD6C85 bgmSecretCastleEntrance_track1:: @ 08DD6CB6 .ifdef EU - .incbin "baserom_eu.gba", 0xEE22EB, 0x0000063 @TODO pointers inside + .incbin "baserom_eu.gba", 0xEE22EB, 0x0000007 +gUnk_08EE22F2:: @ 08EE22F2 + .incbin "baserom_eu.gba", 0xEE22F2, 0x000000D +gUnk_08EE22FF:: @ 08EE22FF + .incbin "baserom_eu.gba", 0xEE22FF, 0x000000F + .4byte gUnk_08EE22FF + .incbin "baserom_eu.gba", 0xEE2312, 0x0000001 + .4byte gUnk_08EE22FF + .incbin "baserom_eu.gba", 0xEE2317, 0x0000001 + .4byte gUnk_08EE22FF + .incbin "baserom_eu.gba", 0xEE231C, 0x0000001 + .4byte gUnk_08EE22FF + .incbin "baserom_eu.gba", 0xEE2321, 0x0000001 + .4byte gUnk_08EE22FF + .incbin "baserom_eu.gba", 0xEE2326, 0x0000001 + .4byte gUnk_08EE22FF +gUnk_08EE232B:: @ 08EE232B + .incbin "baserom_eu.gba", 0xEE232B, 0x000000F + .4byte gUnk_08EE232B + .incbin "baserom_eu.gba", 0xEE233E, 0x0000001 + .4byte gUnk_08EE232B + .incbin "baserom_eu.gba", 0xEE2343, 0x0000001 + .4byte gUnk_08EE232B + .incbin "baserom_eu.gba", 0xEE2348, 0x0000001 + .4byte gUnk_08EE22F2 + .incbin "baserom_eu.gba", 0xEE234D, 0x0000001 .else .incbin "baserom.gba", 0xDD6CB6, 0x0000007 gUnk_08DD6CBD:: @ 08DD6CBD @@ -3980,7 +4030,11 @@ gUnk_08DD6ECD:: @ 08DD6ECD bgmSecretCastleEntrance_track7:: @ 08DD6F8A .ifdef EU - .incbin "baserom_eu.gba", 0xEE259D, 0x000003B @TODO pointers inside + .incbin "baserom_eu.gba", 0xEE259D, 0x0000003 +gUnk_08EE25A0:: @ 08EE25A0 + .incbin "baserom_eu.gba", 0xEE25A0, 0x0000030 + .4byte gUnk_08EE25A0 + .incbin "baserom_eu.gba", 0xEE25D4, 0x0000004 .else .incbin "baserom.gba", 0xDD6F8A, 0x0000003 gUnk_08DD6F8D:: @ 08DD6F8D @@ -6058,7 +6112,11 @@ bgmDiggingCave:: @ 08DDC394 bgmSwiftbladeDojo_track0:: @ 08DDC3B4 .ifdef EU - .incbin "baserom_eu.gba", 0xEE79C8, 0x000002B @TODO pointers inside + .incbin "baserom_eu.gba", 0xEE79C8, 0x000000B +gUnk_08EE79D3:: @ 08EE79D3 + .incbin "baserom_eu.gba", 0xEE79D3, 0x000001B + .4byte gUnk_08EE79D3 + .incbin "baserom_eu.gba", 0xEE79F2, 0x0000001 .else .incbin "baserom.gba", 0xDDC3B4, 0x000000B gUnk_08DDC3BF:: @ 08DDC3BF @@ -6068,7 +6126,12 @@ gUnk_08DDC3BF:: @ 08DDC3BF .endif .ifdef EU - .incbin "baserom_eu.gba", 0xEE79F3, 0x000009D @TODO pointers inside +gUnk_08EE79F3:: @ 08EE79F3 + .incbin "baserom_eu.gba", 0xEE79F3, 0x0000007 +gUnk_08EE79FA:: @ 08EE79FA + .incbin "baserom_eu.gba", 0xEE79FA, 0x000008E + .4byte gUnk_08EE79FA + .incbin "baserom_eu.gba", 0xEE7A8C, 0x0000004 .else bgmSwiftbladeDojo_track1:: @ 08DDC3E2 .incbin "baserom.gba", 0xDDC3E2, 0x0000007 @@ -6092,7 +6155,10 @@ gUnk_08DDC423:: @ 08DDC423 bgmSwiftbladeDojo:: @ 08DDC4B4 .ifdef EU - .incbin "baserom_eu.gba",0xEE7A90, 0x0000010 @TODO pointers inside + .incbin "baserom_eu.gba", 0xEE7A90, 0x0000004 + .4byte gUnk_08A0CF44 + .4byte bgmSwiftbladeDojo_track0 + .4byte gUnk_08EE79F3 .else sound_header 4 0 0 0x9e gUnk_08A0CF44 bgmSwiftbladeDojo_track0 bgmSwiftbladeDojo_track1 bgmSwiftbladeDojo_track2 bgmSwiftbladeDojo_track3 .endif @@ -7142,7 +7208,20 @@ bgmWindRuins:: @ 08DDEC38 sound_header 7 0 0 0xa8 gUnk_08A0F014 bgmWindRuins_track0 bgmWindRuins_track1 bgmWindRuins_track2 bgmWindRuins_track3 bgmWindRuins_track4 bgmWindRuins_track5 bgmWindRuins_track6 .ifdef EU - .incbin "baserom_eu.gba", 0xEEA230, 0x00000DC @TODO pointers inside +gUnk_08EEA230:: @ 08EEA230 + .incbin "baserom_eu.gba", 0xEEA230, 0x000000E +gUnk_08EEA23E:: @ 08EEA23E + .incbin "baserom_eu.gba", 0xEEA23E, 0x000001B + .4byte gUnk_08EEA23E + .incbin "baserom_eu.gba", 0xEEA25D, 0x0000001 +gUnk_08EEA25E:: @ 08EEA25E + .incbin "baserom_eu.gba", 0xEEA25E, 0x000000B +gUnk_08EEA269:: @ 08EEA269 + .incbin "baserom_eu.gba", 0xEEA269, 0x0000010 +gUnk_08EEA279:: @ 08EEA279 + .incbin "baserom_eu.gba", 0xEEA279, 0x000008E + .4byte gUnk_08EEA279 + .incbin "baserom_eu.gba", 0xEEA30B, 0x0000001 .else bgmLearnScroll_track0:: @ 08DDEC5C .incbin "baserom.gba", 0xDDEC5C, 0x000000C @@ -7174,7 +7253,11 @@ gUnk_08DDECDA:: @ 08DDECDA bgmLearnScroll:: @ 08DDED6C .ifdef EU - .incbin "baserom_eu.gba", 0xEEA30C, 0x0000014 @TODO pointers inside + .incbin "baserom_eu.gba", 0xEEA30C, 0x0000004 + .4byte gUnk_08A0CF44 + .4byte gUnk_08EEA230 + .4byte gUnk_08EEA25E + .4byte gUnk_08EEA269 .else sound_header 5 0 0 0x9e gUnk_08A0CF44 bgmLearnScroll_track0 bgmLearnScroll_track1 bgmLearnScroll_track2 bgmLearnScroll_track3 bgmLearnScroll_track4 .endif diff --git a/data/sprite_table.s b/data/sprite_table.s index 1b549c3d..0b04dede 100644 --- a/data/sprite_table.s +++ b/data/sprite_table.s @@ -15,5 +15,13 @@ gUnk_089FB780:: @ 089FB780 .endif @ More sprites in demo .ifdef DEMO - .incbin "baserom_demo.gba", 0x9FD0F4, 0x984c + .incbin "baserom_demo.gba", 0x9FD0F4, 0xC0 +gUnk_089FD1B4:: + .incbin "baserom_demo.gba", 0x9FD1B4, 0x140 +gUnk_089FD2F4:: + .incbin "baserom_demo.gba", 0x9FD2F4, 0x845D +gUnk_08A05751:: + .incbin "baserom_demo.gba", 0xA05751, 0x116e +gUnk_08A068BF:: + .incbin "baserom_demo.gba", 0xA068BF, 0x81 .endif diff --git a/linker.ld b/linker.ld index 7de90bc8..c4dbb416 100644 --- a/linker.ld +++ b/linker.ld @@ -32,6 +32,7 @@ SECTIONS { . = 0x00001A40; gBG3Buffer = .; . = 0x00001B40; gUnk_02001B40 = .; . = 0x00002A40; gSave = .; + . = 0x00002A40; gUnk_02002A40 = .; . = 0x00002AA0; gUnk_02002AA0 = .; . = 0x00002AC0; gUnk_02002AC0 = .; . = 0x00002AC8; gUnk_02002AC8 = .; @@ -192,6 +193,7 @@ SECTIONS { . = 0x00001010; gOamCmd = .; . = 0x00001020; gUnk_03001020 = .; . = 0x000010A0; gScreenTransition = .; + . = 0x000010A0; gUnk_030010A0 = .; . = 0x000010AC; gUnk_030010AC = .; . = 0x000010EC; gUnk_030010EC = .; . = 0x0000110C; gUnk_0300110C = .; @@ -283,10 +285,14 @@ SECTIONS { #ifdef EU . = 0x000065AC; gUnk_03006580 = .; . = 0x000065C8; gUnk_0300659C = .; + . = 0x0000689C; gUnk_0300689C = .; + . = 0x000068F0; gUnk_030068F0 = .; + . = 0x00006954; gUnk_03006954 = .; . = 0x000069AC; gUnk_030067E4 = .; . = 0x00006A94; gUnk_030068CC = .; . = 0x00006B14; gUnk_0300694C = .; . = 0x00006B24; gUnk_0300695C = .; + . = 0x00006C14; gUnk_03006C14 = .; #else . = 0x00006580; gUnk_03006580 = .; . = 0x0000659C; gUnk_0300659C = .; diff --git a/src/arm_proxy.c b/src/arm_proxy.c index b3b71deb..e1f13c74 100644 --- a/src/arm_proxy.c +++ b/src/arm_proxy.c @@ -158,9 +158,7 @@ void PlayerUpdate(Entity* this) { // Responsible for some life things like low health beep and initiating the death sequence #ifdef EU -NAKED void HandlePlayerLife(Entity* this) { - asm(".incbin \"baserom_eu.gba\", 0x017038, 0x1f0"); // TODO disassemble -} +ASM_FUNC("asm/non_matching/eu/HandlePlayerLife.inc", void HandlePlayerLife(Entity* this)); #else void HandlePlayerLife(Entity* this) { u32 temp; diff --git a/src/code_0805436C.c b/src/code_0805436C.c index 4793e016..5f8a1821 100644 --- a/src/code_0805436C.c +++ b/src/code_0805436C.c @@ -173,9 +173,7 @@ void sub_08054570(void) { } #ifdef EU -NAKED u32 sub_0805457C(u32 arg0, u32 arg1) { - asm(".incbin \"baserom_eu.gba\", 0x054114, 0x1c0"); // TODO disassemble -} +ASM_FUNC("asm/non_matching/eu/sub_0805457C.inc", u32 sub_0805457C(u32 arg0, u32 arg1)); #else ASM_FUNC("asm/non_matching/sub_0805457C.inc", u32 sub_0805457C(u32 arg0, u32 arg1)); #endif diff --git a/src/enemy/bombPeahat.c b/src/enemy/bombPeahat.c index 4e7bbdad..e096feda 100644 --- a/src/enemy/bombPeahat.c +++ b/src/enemy/bombPeahat.c @@ -189,9 +189,7 @@ void sub_0802AA40(Entity* this) { } #ifdef EU -NAKED void sub_0802AAC0(Entity* this) { - asm(".incbin \"baserom_eu.gba\", 0x02aa94, 0xc8"); // TODO disassemble -} +ASM_FUNC("asm/non_matching/eu/sub_0802AAC0.inc", void sub_0802AAC0(Entity* this)) #else void sub_0802AAC0(Entity* this) { sub_0802AC40(this); @@ -223,9 +221,7 @@ void sub_0802AAC0(Entity* this) { #endif #ifdef EU -NAKED void sub_0802AB40(Entity* this) { - asm(".incbin \"baserom_eu.gba\", 0x02ab5c, 0x60"); // TODO disassemble -} +ASM_FUNC("asm/non_matching/eu/sub_0802AB40.inc", void sub_0802AB40(Entity* this)); #else void sub_0802AB40(Entity* this) { sub_0802AC40(this); @@ -280,9 +276,7 @@ void sub_0802AC08(Entity* this) { } #ifdef EU -NAKED void sub_0802AC40(Entity* this) { - asm(".incbin \"baserom_eu.gba\", 0x02ABF4, 0x54"); // TODO disassemble -} +ASM_FUNC("asm/non_matching/eu/sub_0802AC40.inc", void sub_0802AC40(Entity* this)) #else void sub_0802AC40(Entity* this) { GetNextFrame(this); @@ -364,9 +358,7 @@ void sub_0802AD54(Entity* this) { #ifdef EU // TODO regalloc in EU version -NAKED void sub_0802ADDC(Entity* this) { - asm(".incbin \"baserom_eu.gba\", 0x02AD48, 0x000004C"); // TODO disassemble -} +ASM_FUNC("asm/non_matching/eu/sub_0802ADDC.inc", void sub_0802ADDC(Entity* this)) #else void sub_0802ADDC(Entity* this) { Entity* ent = CreateEnemy(BOMB_PEAHAT, this->type + 2); @@ -400,9 +392,7 @@ void sub_0802AE24(Entity* this) { } #ifdef EU -NAKED void sub_0802AE68(Entity* this) { - asm(".incbin \"baserom_eu.gba\", 0x02add8, 0x94"); // TODO disassemble -} +ASM_FUNC("asm/non_matching/eu/sub_0802AE68.inc", void sub_0802AE68(Entity* this)) #else void sub_0802AE68(Entity* this) { Entity* ent = sub_0802B250(this); @@ -579,9 +569,7 @@ void sub_0802B1A0(Entity* this) { } #ifdef EU -NAKED void sub_0802B1BC(Entity* this) { - asm(".incbin \"baserom_eu.gba\", 0x02b16c, 0x84"); // TODO disassemble -} +ASM_FUNC("asm/non_matching/eu/sub_0802B1BC.inc", void sub_0802B1BC(Entity* this)) #else void sub_0802B1BC(Entity* this) { Entity* ent; diff --git a/src/enemy/chuchu.c b/src/enemy/chuchu.c index 7ca16f40..7c891a9f 100644 --- a/src/enemy/chuchu.c +++ b/src/enemy/chuchu.c @@ -333,9 +333,7 @@ void sub_0801F3AC(Entity* this) { } #ifdef EU -NAKED void sub_0801F428(Entity* this) { - asm(".incbin \"baserom_eu.gba\", 0x01F428, 0x60"); // TODO disassemble -} +ASM_FUNC("asm/non_matching/eu/sub_0801F428.inc", void sub_0801F428(Entity* this)) #else void sub_0801F428(Entity* this) { sub_0804A720(this); diff --git a/src/manager/manager4.c b/src/manager/manager4.c index 99b61179..2fb5fd49 100644 --- a/src/manager/manager4.c +++ b/src/manager/manager4.c @@ -97,9 +97,7 @@ END_NONMATCH extern void sub_08080930(); #ifdef EU -NAKED void sub_08057A18(Manager* this, DiggingCaveEntrance* entr) { - asm(".incbin \"baserom_eu.gba\", 0x057580, 0x0000078"); // TODO disassemble -} +ASM_FUNC("asm/non_matching/eu/sub_08057A18.inc", void sub_08057A18(Manager* this, DiggingCaveEntrance* entr)) #else void sub_08057A18(Manager* this, DiggingCaveEntrance* entr) { u16 tmp; diff --git a/src/manager/manager7.c b/src/manager/manager7.c index 70af525c..85e49295 100644 --- a/src/manager/manager7.c +++ b/src/manager/manager7.c @@ -56,9 +56,7 @@ const u32 gUnk_081080A4[0x50] = { const u8 gUnk_081081E4[] = { 0x16, 0x17, 0x17, 0x18, 0x18 }; #ifdef EU -NAKED void Manager7_Main(Manager7* this) { - asm(".incbin \"baserom_eu.gba\", 0x0578A0, 0x00000CC"); // TODO disassemble -} +ASM_FUNC("asm/non_matching/eu/Manager7_Main.inc", void Manager7_Main(Manager7* this)) #else void Manager7_Main(Manager7* this) { u32 tmp; @@ -133,9 +131,7 @@ void sub_08057E64() { } #ifdef EU -NAKED void sub_08057E7C(u32 unk1) { - asm(".incbin \"baserom_eu.gba\", 0x0579B8, 0x0000050"); // TODO disassemble -} +ASM_FUNC("asm/non_matching/eu/sub_08057E7C.inc", void sub_08057E7C(u32 unk1)) #else void sub_08057E7C(u32 unk1) { u32 tmp; diff --git a/src/npc/phonograph.c b/src/npc/phonograph.c index e6c23f1e..38604490 100644 --- a/src/npc/phonograph.c +++ b/src/npc/phonograph.c @@ -26,9 +26,7 @@ ASM_FUNC("asm/non_matching/phonograph/sub_0806E964.inc", void sub_0806E964(Entity* this, ScriptExecutionContext* context)) #ifdef EU -NAKED void sub_0806EABC(Entity* this, u32 param) { - asm(".incbin \"baserom_eu.gba\", 0x06E4F8, 0x000003C"); // TODO disassemble -} +ASM_FUNC("asm/non_matching/eu/sub_0806EABC.inc", void sub_0806EABC(Entity* this, u32 param)) #else void sub_0806EABC(Entity* this, u32 param) { sub_08050384(); diff --git a/src/projectile/projectile13.c b/src/projectile/projectile13.c index 1397a72e..fc8e06a2 100644 --- a/src/projectile/projectile13.c +++ b/src/projectile/projectile13.c @@ -124,9 +124,7 @@ void sub_080A9FD0(Entity* this) { } #ifdef EU -NAKED void sub_080AA044(Entity* this) { - asm(".incbin \"baserom_eu.gba\", 0x0A983C, 0x00000C4"); // TODO disassemble -} +ASM_FUNC("asm/non_matching/eu/sub_080AA044.inc", void sub_080AA044(Entity* this)) #else void sub_080AA044(Entity* this) { u32 uVar1; diff --git a/src/save.c b/src/save.c index 04495ae3..7039ca5a 100644 --- a/src/save.c +++ b/src/save.c @@ -44,7 +44,8 @@ const u16 gUnk_0811E454[] = { 0x0, 0x0, 0x100, 0x200, 0x300, 0x400, 0x500, const char gUnk_0811E470[4] = "LINK"; #ifdef DEMO -const u8 unknown[] = { 0x0, 0x0f, 0x0a, 0x0a, 0x0f, 0x0f, 0x0f, 0x08, 0x05, 0x05, 0x00, 0x00 }; +const u8 demoUnknown0 = 0x0; +const u8 demoUnknown1[] = { 0x0f, 0x0a, 0x0a, 0x0f, 0x0f, 0x0f, 0x08, 0x05, 0x05, 0x00, 0x00 }; #else const u8 padding[2] = { 0, 0 }; #endif @@ -52,7 +53,16 @@ const u8 padding[2] = { 0, 0 }; static SaveResult (*const sSaveHandlers[])(u32) = { HandleSaveInit, HandleSaveInProgress, HandleSaveDone }; #ifdef DEMO -asm(".incbin \"baserom_demo.gba\", 0x11e010, 0xf0c"); // TODO disassemble +asm("demoPointer1: .incbin \"baserom_demo.gba\", 0x11e010, 0x500"); +asm("demoPointer2: .incbin \"baserom_demo.gba\", 0x11e510, 0x500"); +asm("demoPointer3: .incbin \"baserom_demo.gba\", 0x11ea10, 0x500"); + +extern const u32 demoPointer1; +extern const u32 demoPointer2; +extern const u32 demoPointer3; + +const u32 demoPointers[] = { (u32)&demoPointer1, (u32)&demoPointer2, (u32)&demoPointer3 }; + #else #if defined(JP) || defined(EU) diff --git a/src/textbox.c b/src/textbox.c index 676d6857..01b7bbae 100644 --- a/src/textbox.c +++ b/src/textbox.c @@ -477,9 +477,7 @@ extern u8 gUnk_08107C14; extern u8 gUnk_08107C0F; #ifdef EU -NAKED void TextBoxHandlerQuestion(CurrentTextBox* ctb) { - asm(".incbin \"baserom_eu.gba\", 0x05654c, 0x138"); // TODO disassemble -} +ASM_FUNC("asm/non_matching/eu/TextBoxHandlerQuestion.inc", void TextBoxHandlerQuestion(CurrentTextBox* ctb)) #else void TextBoxHandlerQuestion(CurrentTextBox* ctb) { From 68b65dfd9ab6eabc211c782b2bc1fb2fa993abcc Mon Sep 17 00:00:00 2001 From: octorock <79596758+octorock@users.noreply.github.com> Date: Tue, 22 Jun 2021 23:20:04 +0200 Subject: [PATCH 21/74] Detect necessary baseroms in Makefile without change in scaninc --- Makefile | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/Makefile b/Makefile index fbf922d0..e992a477 100644 --- a/Makefile +++ b/Makefile @@ -35,6 +35,43 @@ endif endif endif +# Check that the required baseroms are available. +ifeq ($(GAME_VERSION), USA) +baserom.gba: + $(error Missing 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 Missing baserom.gba) +baserom_demo.gba: + $(error Missing baserom_demo.gba) +.PHONY: baserom_jp.gba baserom_eu.gba +baserom_jp.gba: +baserom_eu.gba: +endif +ifeq ($(GAME_VERSION), JP) +baserom.gba: + $(error Missing baserom.gba) +baserom_jp.gba: + $(error Missing baserom_jp.gba) +.PHONY: baserom_demo.gba baserom_eu.gba +baserom_demo.gba: +baserom_eu.gba: +endif +ifeq ($(GAME_VERSION), EU) +baserom.gba: + $(error Missing baserom.gba) +baserom_jp.gba: + $(error Missing baserom_jp.gba) +baserom_eu.gba: + $(error Missing baserom_eu.gba) +.PHONY: baserom_demo.gba +baserom_demo.gba: +endif SHELL := /bin/bash -o pipefail From 300169514a70fcf01c0fab9b08fd50346bf4d8b6 Mon Sep 17 00:00:00 2001 From: Ibot02 Date: Wed, 23 Jun 2021 08:05:51 +0200 Subject: [PATCH 22/74] Cleaner baserom dependency handling Instead of scaninc ignoring everything starting with baserom, we tell make which baseroms are needed and which to ignore if they come up as dependencies, depending on the version used. --- Makefile | 80 ++++++++++++++++++++------------------- tools/scaninc/scaninc.cpp | 5 +-- 2 files changed, 42 insertions(+), 43 deletions(-) diff --git a/Makefile b/Makefile index e992a477..fde52c3b 100644 --- a/Makefile +++ b/Makefile @@ -35,44 +35,6 @@ endif endif endif -# Check that the required baseroms are available. -ifeq ($(GAME_VERSION), USA) -baserom.gba: - $(error Missing 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 Missing baserom.gba) -baserom_demo.gba: - $(error Missing baserom_demo.gba) -.PHONY: baserom_jp.gba baserom_eu.gba -baserom_jp.gba: -baserom_eu.gba: -endif -ifeq ($(GAME_VERSION), JP) -baserom.gba: - $(error Missing baserom.gba) -baserom_jp.gba: - $(error Missing baserom_jp.gba) -.PHONY: baserom_demo.gba baserom_eu.gba -baserom_demo.gba: -baserom_eu.gba: -endif -ifeq ($(GAME_VERSION), EU) -baserom.gba: - $(error Missing baserom.gba) -baserom_jp.gba: - $(error Missing baserom_jp.gba) -baserom_eu.gba: - $(error Missing baserom_eu.gba) -.PHONY: baserom_demo.gba -baserom_demo.gba: -endif - SHELL := /bin/bash -o pipefail @@ -203,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 @@ -273,3 +238,40 @@ 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 diff --git a/tools/scaninc/scaninc.cpp b/tools/scaninc/scaninc.cpp index 4c4a5cc9..b95cbd03 100755 --- a/tools/scaninc/scaninc.cpp +++ b/tools/scaninc/scaninc.cpp @@ -93,10 +93,7 @@ int main(int argc, char **argv) includeDirs.push_back(file.GetSrcDir()); for (auto incbin : file.GetIncbins()) { - // Don't include incbins starting with baserom, as they might not be necessary if another variant is being built. - if (incbin.rfind("baserom", 0) != 0) { - dependencies.insert(incbin); - } + dependencies.insert(incbin); } for (auto include : file.GetIncludes()) { From ae2d83a1aeab350088e4ecafdd45e457ae6aaf7c Mon Sep 17 00:00:00 2001 From: octorock <79596758+octorock@users.noreply.github.com> Date: Wed, 23 Jun 2021 17:35:03 +0200 Subject: [PATCH 23/74] Add EU translations using tmc_strings --- Makefile | 5 + data/data_08108E6C.s | 22 +- data/data_08132B30.s | 1 - data/strings.s | 20 +- translations/English.json | 3855 +++++++++++++++++++++++++++++++++++++ translations/French.json | 3855 +++++++++++++++++++++++++++++++++++++ translations/German.json | 3855 +++++++++++++++++++++++++++++++++++++ translations/Italian.json | 3855 +++++++++++++++++++++++++++++++++++++ translations/Spanish.json | 3855 +++++++++++++++++++++++++++++++++++++ 9 files changed, 19301 insertions(+), 22 deletions(-) create mode 100644 translations/English.json create mode 100644 translations/French.json create mode 100644 translations/German.json create mode 100644 translations/Italian.json create mode 100644 translations/Spanish.json diff --git a/Makefile b/Makefile index fde52c3b..5a7b00c4 100644 --- a/Makefile +++ b/Makefile @@ -190,6 +190,11 @@ sound/%.bin: sound/%.aif ; $(AIF) $< $@ sound/songs/%.s: sound/songs/%.mid cd $(@D) && ../../$(MID) $(