From 8604daff6ace1d5289a6f03463451b6fe90e68c9 Mon Sep 17 00:00:00 2001 From: theo3 Date: Mon, 15 Jun 2020 00:11:43 -0700 Subject: [PATCH] smallPesto --- asm/acroBandits.s | 2 +- asm/bird.s | 2 +- asm/bombPeahat.s | 2 +- asm/bombarossa.s | 2 +- asm/book.s | 2 +- asm/businessScrub.s | 6 +- asm/chaser.s | 2 +- asm/chestSpawner.s | 2 +- asm/chuchu.s | 2 +- asm/chuchuBoss.s | 2 +- asm/code_080011C4.s | 6 +- asm/code_080A5574.s | 62 +++++++++---------- asm/crow.s | 2 +- asm/cuccoAggr.s | 2 +- asm/cuccoChickAggr.s | 2 +- asm/doorMimic.s | 2 +- asm/dust.s | 2 +- asm/enemy50.s | 2 +- asm/enemy62.s | 2 +- asm/figurineDevice.s | 2 +- asm/flyingPot.s | 2 +- asm/flyingSkull.s | 2 +- asm/ghini.s | 2 +- asm/gleerok.s | 2 +- asm/gyorgChild.s | 2 +- asm/gyorgFemaleEye.s | 2 +- asm/heartContainer.s | 2 +- asm/itemOnGround.s | 2 +- asm/keese.s | 2 +- asm/lakituCloud.s | 2 +- asm/madderpillar.s | 2 +- asm/mazaalBracelet.s | 2 +- asm/mazaalHead.s | 2 +- asm/mazaalMacro.s | 2 +- asm/object1C.s | 43 ------------- asm/object1D.s | 32 ---------- asm/object30.s | 2 +- asm/object6A.s | 4 +- asm/object96.s | 2 +- asm/objectA8.s | 80 ------------------------- asm/octorokBoss.s | 2 +- asm/octorokGolden.s | 2 +- asm/pesto.s | 2 +- asm/ropeGolden.s | 2 +- asm/rupeeLike.s | 2 +- asm/sluggula.s | 2 +- asm/smallPesto.s | 103 -------------------------------- asm/spark.s | 2 +- asm/stockwell.s | 2 +- asm/sub_0804AA30.s | 2 +- asm/takkuri.s | 2 +- asm/vaatiArm.s | 2 +- asm/vaatiEyesMacro.s | 2 +- asm/vaatiProjectile.s | 2 +- asm/wallMaster.s | 2 +- asm/wallMaster2.s | 2 +- asm/wizzrobeFire.s | 2 +- asm/wizzrobeIce.s | 2 +- asm/wizzrobeWind.s | 2 +- data/ddump | Bin 0 -> 92908 bytes data/gfx.ddscript | 2 + data/ptr_array.ddscript | 2 + linker.ld | 6 +- src/object1C.c | 19 ++++++ src/object1D.c | 18 ++++++ src/objectA8.c | 36 +++++++++++ src/smallPesto.c | 69 +++++++++++++++++++++ tools/aif2pcm/.gitignore | 0 tools/aif2pcm/LICENSE | 0 tools/aif2pcm/Makefile | 0 tools/aif2pcm/extended.c | 0 tools/aif2pcm/main.c | 0 tools/bin2c/.gitignore | 0 tools/bin2c/LICENSE | 0 tools/bin2c/Makefile | 0 tools/bin2c/bin2c.c | 0 tools/gbafix/.gitignore | 0 tools/gbafix/COPYING | 0 tools/gbafix/Makefile | 0 tools/gbafix/elf.h | 0 tools/gbafix/gbafix.c | 0 tools/gbagfx/.gitignore | 0 tools/gbagfx/LICENSE | 0 tools/gbagfx/Makefile | 0 tools/gbagfx/convert_png.c | 0 tools/gbagfx/convert_png.h | 0 tools/gbagfx/font.c | 0 tools/gbagfx/font.h | 0 tools/gbagfx/gfx.c | 0 tools/gbagfx/gfx.h | 0 tools/gbagfx/global.h | 0 tools/gbagfx/huff.c | 0 tools/gbagfx/huff.h | 0 tools/gbagfx/jasc_pal.c | 0 tools/gbagfx/jasc_pal.h | 0 tools/gbagfx/lz.c | 0 tools/gbagfx/lz.h | 0 tools/gbagfx/main.c | 0 tools/gbagfx/options.h | 0 tools/gbagfx/rl.c | 0 tools/gbagfx/rl.h | 0 tools/gbagfx/util.c | 0 tools/gbagfx/util.h | 0 tools/mid2agb/.gitignore | 0 tools/mid2agb/LICENSE | 0 tools/mid2agb/Makefile | 0 tools/mid2agb/agb.cpp | 0 tools/mid2agb/agb.h | 0 tools/mid2agb/error.cpp | 0 tools/mid2agb/error.h | 0 tools/mid2agb/main.cpp | 0 tools/mid2agb/main.h | 0 tools/mid2agb/midi.cpp | 0 tools/mid2agb/midi.h | 0 tools/mid2agb/tables.cpp | 0 tools/mid2agb/tables.h | 0 tools/preproc/.gitignore | 0 tools/preproc/LICENSE | 0 tools/preproc/Makefile | 0 tools/preproc/asm_file.cpp | 0 tools/preproc/asm_file.h | 0 tools/preproc/c_file.cpp | 0 tools/preproc/c_file.h | 0 tools/preproc/char_util.h | 0 tools/preproc/charmap.cpp | 0 tools/preproc/charmap.h | 0 tools/preproc/preproc.cpp | 0 tools/preproc/preproc.h | 0 tools/preproc/string_parser.cpp | 0 tools/preproc/string_parser.h | 0 tools/preproc/utf8.cpp | 0 tools/preproc/utf8.h | 0 tools/scaninc/.gitignore | 0 tools/scaninc/LICENSE | 0 tools/scaninc/Makefile | 0 tools/scaninc/asm_file.cpp | 0 tools/scaninc/asm_file.h | 0 tools/scaninc/c_file.cpp | 0 tools/scaninc/c_file.h | 0 tools/scaninc/scaninc.cpp | 0 tools/scaninc/scaninc.h | 0 tools/scaninc/source_file.cpp | 0 tools/scaninc/source_file.h | 0 143 files changed, 240 insertions(+), 350 deletions(-) delete mode 100644 asm/object1C.s delete mode 100644 asm/object1D.s create mode 100755 data/ddump create mode 100644 data/gfx.ddscript create mode 100755 data/ptr_array.ddscript create mode 100644 src/object1C.c create mode 100644 src/object1D.c create mode 100644 src/objectA8.c create mode 100644 src/smallPesto.c mode change 100644 => 100755 tools/aif2pcm/.gitignore mode change 100644 => 100755 tools/aif2pcm/LICENSE mode change 100644 => 100755 tools/aif2pcm/Makefile mode change 100644 => 100755 tools/aif2pcm/extended.c mode change 100644 => 100755 tools/aif2pcm/main.c mode change 100644 => 100755 tools/bin2c/.gitignore mode change 100644 => 100755 tools/bin2c/LICENSE mode change 100644 => 100755 tools/bin2c/Makefile mode change 100644 => 100755 tools/bin2c/bin2c.c mode change 100644 => 100755 tools/gbafix/.gitignore mode change 100644 => 100755 tools/gbafix/COPYING mode change 100644 => 100755 tools/gbafix/Makefile mode change 100644 => 100755 tools/gbafix/elf.h mode change 100644 => 100755 tools/gbafix/gbafix.c mode change 100644 => 100755 tools/gbagfx/.gitignore mode change 100644 => 100755 tools/gbagfx/LICENSE mode change 100644 => 100755 tools/gbagfx/Makefile mode change 100644 => 100755 tools/gbagfx/convert_png.c mode change 100644 => 100755 tools/gbagfx/convert_png.h mode change 100644 => 100755 tools/gbagfx/font.c mode change 100644 => 100755 tools/gbagfx/font.h mode change 100644 => 100755 tools/gbagfx/gfx.c mode change 100644 => 100755 tools/gbagfx/gfx.h mode change 100644 => 100755 tools/gbagfx/global.h mode change 100644 => 100755 tools/gbagfx/huff.c mode change 100644 => 100755 tools/gbagfx/huff.h mode change 100644 => 100755 tools/gbagfx/jasc_pal.c mode change 100644 => 100755 tools/gbagfx/jasc_pal.h mode change 100644 => 100755 tools/gbagfx/lz.c mode change 100644 => 100755 tools/gbagfx/lz.h mode change 100644 => 100755 tools/gbagfx/main.c mode change 100644 => 100755 tools/gbagfx/options.h mode change 100644 => 100755 tools/gbagfx/rl.c mode change 100644 => 100755 tools/gbagfx/rl.h mode change 100644 => 100755 tools/gbagfx/util.c mode change 100644 => 100755 tools/gbagfx/util.h mode change 100644 => 100755 tools/mid2agb/.gitignore mode change 100644 => 100755 tools/mid2agb/LICENSE mode change 100644 => 100755 tools/mid2agb/Makefile mode change 100644 => 100755 tools/mid2agb/agb.cpp mode change 100644 => 100755 tools/mid2agb/agb.h mode change 100644 => 100755 tools/mid2agb/error.cpp mode change 100644 => 100755 tools/mid2agb/error.h mode change 100644 => 100755 tools/mid2agb/main.cpp mode change 100644 => 100755 tools/mid2agb/main.h mode change 100644 => 100755 tools/mid2agb/midi.cpp mode change 100644 => 100755 tools/mid2agb/midi.h mode change 100644 => 100755 tools/mid2agb/tables.cpp mode change 100644 => 100755 tools/mid2agb/tables.h mode change 100644 => 100755 tools/preproc/.gitignore mode change 100644 => 100755 tools/preproc/LICENSE mode change 100644 => 100755 tools/preproc/Makefile mode change 100644 => 100755 tools/preproc/asm_file.cpp mode change 100644 => 100755 tools/preproc/asm_file.h mode change 100644 => 100755 tools/preproc/c_file.cpp mode change 100644 => 100755 tools/preproc/c_file.h mode change 100644 => 100755 tools/preproc/char_util.h mode change 100644 => 100755 tools/preproc/charmap.cpp mode change 100644 => 100755 tools/preproc/charmap.h mode change 100644 => 100755 tools/preproc/preproc.cpp mode change 100644 => 100755 tools/preproc/preproc.h mode change 100644 => 100755 tools/preproc/string_parser.cpp mode change 100644 => 100755 tools/preproc/string_parser.h mode change 100644 => 100755 tools/preproc/utf8.cpp mode change 100644 => 100755 tools/preproc/utf8.h mode change 100644 => 100755 tools/scaninc/.gitignore mode change 100644 => 100755 tools/scaninc/LICENSE mode change 100644 => 100755 tools/scaninc/Makefile mode change 100644 => 100755 tools/scaninc/asm_file.cpp mode change 100644 => 100755 tools/scaninc/asm_file.h mode change 100644 => 100755 tools/scaninc/c_file.cpp mode change 100644 => 100755 tools/scaninc/c_file.h mode change 100644 => 100755 tools/scaninc/scaninc.cpp mode change 100644 => 100755 tools/scaninc/scaninc.h mode change 100644 => 100755 tools/scaninc/source_file.cpp mode change 100644 => 100755 tools/scaninc/source_file.h diff --git a/asm/acroBandits.s b/asm/acroBandits.s index 7fe1413e..10da8314 100644 --- a/asm/acroBandits.s +++ b/asm/acroBandits.s @@ -37,7 +37,7 @@ _08031898: .4byte gUnk_080012C8 _0803189C: ldr r4, _080318C0 @ =gUnk_080CE56C adds r0, r5, #0 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] diff --git a/asm/bird.s b/asm/bird.s index 3216e5e7..9b6e916e 100644 --- a/asm/bird.s +++ b/asm/bird.s @@ -296,7 +296,7 @@ _0809D14C: movs r0, #0x17 movs r1, #0 movs r2, #0 - bl sub_080A7C00 + bl CreateItemEntity ldr r0, _0809D174 @ =gUnk_02002A40 ldr r1, [r0, #0x40] movs r2, #0x80 diff --git a/asm/bombPeahat.s b/asm/bombPeahat.s index 47f175d6..f7d116d5 100644 --- a/asm/bombPeahat.s +++ b/asm/bombPeahat.s @@ -31,7 +31,7 @@ _0802A82C: .4byte gUnk_080012C8 _0802A830: ldr r4, _0802A848 @ =gUnk_080CD0F0 adds r0, r5, #0 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] diff --git a/asm/bombarossa.s b/asm/bombarossa.s index 3e36c481..b45ef759 100644 --- a/asm/bombarossa.s +++ b/asm/bombarossa.s @@ -12,7 +12,7 @@ Bombarossa: @ 0x080333B8 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080333D0 @ =gUnk_080CEB38 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] diff --git a/asm/book.s b/asm/book.s index d8c32947..74ed9443 100644 --- a/asm/book.s +++ b/asm/book.s @@ -303,7 +303,7 @@ _0809B5D0: adds r0, #0x39 movs r1, #0 movs r2, #0 - bl sub_080A7C00 + bl CreateItemEntity bl DeleteThisEntity _0809B5EA: pop {r4, pc} diff --git a/asm/businessScrub.s b/asm/businessScrub.s index 2f5b40d8..f928082b 100644 --- a/asm/businessScrub.s +++ b/asm/businessScrub.s @@ -573,7 +573,7 @@ _08028D5C: _08028D70: ldrb r0, [r6, #8] movs r2, #0 - bl sub_080A7C00 + bl CreateItemEntity movs r0, #6 strb r0, [r5, #0xc] movs r0, #4 @@ -593,14 +593,14 @@ _08028D9C: ldrb r0, [r6, #8] ldrb r1, [r6, #9] movs r2, #0 - bl sub_080A7C00 + bl CreateItemEntity movs r0, #4 b _08028DB6 _08028DAA: ldrb r0, [r6, #8] ldrb r1, [r6, #9] movs r2, #0 - bl sub_080A7C00 + bl CreateItemEntity movs r0, #8 _08028DB6: strb r0, [r5, #0xe] diff --git a/asm/chaser.s b/asm/chaser.s index a8148d16..d038cae7 100644 --- a/asm/chaser.s +++ b/asm/chaser.s @@ -27,7 +27,7 @@ _0802B4F8: .4byte gUnk_080012C8 _0802B4FC: ldr r4, _0802B514 @ =gUnk_080CD27C adds r0, r5, #0 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] diff --git a/asm/chestSpawner.s b/asm/chestSpawner.s index f9081c59..74c804fe 100644 --- a/asm/chestSpawner.s +++ b/asm/chestSpawner.s @@ -368,7 +368,7 @@ _08084086: ldrb r0, [r1, #2] ldrb r1, [r1, #3] movs r2, #0 - bl sub_080A7C00 + bl CreateItemEntity b _080840A4 _0808409C: adds r1, #8 diff --git a/asm/chuchu.s b/asm/chuchu.s index 4259141f..bb425f76 100644 --- a/asm/chuchu.s +++ b/asm/chuchu.s @@ -81,7 +81,7 @@ _0801EE9E: strb r4, [r0] ldr r4, _0801EED0 @ =gUnk_080CA21C adds r0, r5, #0 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] diff --git a/asm/chuchuBoss.s b/asm/chuchuBoss.s index 1912cf16..8313d95f 100644 --- a/asm/chuchuBoss.s +++ b/asm/chuchuBoss.s @@ -12,7 +12,7 @@ ChuchuBoss: @ 0x08025CA0 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _08025CB8 @ =gUnk_080CC19C - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] diff --git a/asm/code_080011C4.s b/asm/code_080011C4.s index 7d437caf..d2bba212 100644 --- a/asm/code_080011C4.s +++ b/asm/code_080011C4.s @@ -139,7 +139,7 @@ EnemyFunctionHandler: @ 0x0800129E b _080012BA _080012B2: adds r0, r4, #0 - bl sub_0800279C + bl GetNextFunction adds r1, r5, #0 _080012BA: lsls r0, r0, #2 @@ -1153,8 +1153,8 @@ gUnk_0800275C:: .byte 0x60, 0x06, 0x60, 0x06, 0x60, 0x06, 0x60, 0x06, 0x60, 0x06, 0x60, 0x06, 0x00, 0x06, 0x06, 0x06 .byte 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06 - thumb_func_start sub_0800279C -sub_0800279C: @ 0x0800279C + thumb_func_start GetNextFunction +GetNextFunction: @ 0x0800279C movs r1, #0x3a ldrb r3, [r0, r1] movs r2, #4 diff --git a/asm/code_080A5574.s b/asm/code_080A5574.s index a6015e72..d735a6b2 100644 --- a/asm/code_080A5574.s +++ b/asm/code_080A5574.s @@ -4886,8 +4886,8 @@ _080A7BCE: .align 2, 0 _080A7BFC: .4byte gLinkState - thumb_func_start sub_080A7C00 -sub_080A7C00: @ 0x080A7C00 + thumb_func_start CreateItemEntity +CreateItemEntity: @ 0x080A7C00 push {r4, lr} bl GiveItemWithCutscene adds r4, r0, #0 @@ -4999,13 +4999,13 @@ _080A7CB0: ldrb r0, [r4, #2] ldrb r1, [r4, #3] movs r2, #0 - bl sub_080A7C00 + bl CreateItemEntity b _080A7CDC _080A7CD2: movs r0, #0x60 movs r1, #0 movs r2, #0 - bl sub_080A7C00 + bl CreateItemEntity _080A7CDC: movs r0, #0x74 adds r1, r5, #0 @@ -5484,7 +5484,7 @@ sub_080A8030: @ 0x080A8030 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080A8048 @ =gUnk_081295D0 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] @@ -5670,7 +5670,7 @@ sub_080A8190: @ 0x080A8190 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080A81A8 @ =gUnk_0812960C - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] @@ -5860,7 +5860,7 @@ sub_080A82F8: @ 0x080A82F8 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080A8310 @ =gUnk_08129650 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] @@ -6039,7 +6039,7 @@ sub_080A843C: @ 0x080A843C push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080A8454 @ =gUnk_081296F0 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] @@ -6368,7 +6368,7 @@ sub_080A86BC: @ 0x080A86BC push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080A86D4 @ =gUnk_08129718 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] @@ -6508,7 +6508,7 @@ sub_080A87C8: @ 0x080A87C8 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080A87E0 @ =gUnk_08129740 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] @@ -6869,7 +6869,7 @@ _080A8A64: sub_080A8A68: @ 0x080A8A68 push {r4, lr} adds r4, r0, #0 - bl sub_0800279C + bl GetNextFunction cmp r0, #0 beq _080A8A78 bl DeleteThisEntity @@ -7028,7 +7028,7 @@ _080A8B94: sub_080A8B98: @ 0x080A8B98 push {r4, lr} adds r4, r0, #0 - bl sub_0800279C + bl GetNextFunction cmp r0, #0 beq _080A8BA8 bl DeleteThisEntity @@ -7173,7 +7173,7 @@ _080A8CA8: sub_080A8CAC: @ 0x080A8CAC push {r4, lr} adds r4, r0, #0 - bl sub_0800279C + bl GetNextFunction cmp r0, #0 beq _080A8CBC bl DeleteThisEntity @@ -7319,7 +7319,7 @@ sub_080A8DC0: @ 0x080A8DC0 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080A8DD8 @ =gUnk_08129954 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] @@ -7988,7 +7988,7 @@ sub_080A9300: @ 0x080A9300 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080A9318 @ =gUnk_081299D0 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] @@ -8378,7 +8378,7 @@ sub_080A95DC: @ 0x080A95DC push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080A95F4 @ =gUnk_08129ABC - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] @@ -8909,7 +8909,7 @@ sub_080A9A00: @ 0x080A9A00 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080A9A18 @ =gUnk_08129AE0 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] @@ -9311,7 +9311,7 @@ sub_080A9CA8: @ 0x080A9CA8 _080A9CB8: ldr r4, _080A9CD0 @ =gUnk_08129B58 adds r0, r5, #0 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] @@ -9440,7 +9440,7 @@ sub_080A9DA4: @ 0x080A9DA4 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080A9DBC @ =gUnk_08129BEC - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] @@ -9554,7 +9554,7 @@ _080A9E60: _080A9E78: ldr r4, _080A9E90 @ =gUnk_08129C7C adds r0, r5, #0 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] @@ -10276,7 +10276,7 @@ sub_080AA400: @ 0x080AA400 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080AA418 @ =gUnk_08129FB8 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] @@ -10612,7 +10612,7 @@ sub_080AA68C: @ 0x080AA68C push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080AA6A4 @ =gUnk_0812A014 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] @@ -11188,7 +11188,7 @@ sub_080AAAE8: @ 0x080AAAE8 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080AAB00 @ =gUnk_0812A3C0 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] @@ -11331,7 +11331,7 @@ sub_080AABF0: @ 0x080AABF0 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080AAC08 @ =gUnk_0812A418 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] @@ -12236,7 +12236,7 @@ sub_080AB2A8: @ 0x080AB2A8 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080AB2C0 @ =gUnk_0812A4C8 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] @@ -12548,7 +12548,7 @@ sub_080AB510: @ 0x080AB510 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080AB528 @ =gUnk_0812A58C - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] @@ -13437,7 +13437,7 @@ sub_080ABB8C: @ 0x080ABB8C push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080ABBA4 @ =gUnk_0812A7D4 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] @@ -13903,7 +13903,7 @@ sub_080ABF24: @ 0x080ABF24 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080ABF3C @ =gUnk_0812A84C - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] @@ -13973,7 +13973,7 @@ sub_080ABFB0: @ 0x080ABFB0 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080ABFC8 @ =gUnk_0812A954 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] @@ -15180,7 +15180,7 @@ sub_080AC8A8: @ 0x080AC8A8 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080AC8C0 @ =gUnk_0812A9D8 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] @@ -15382,7 +15382,7 @@ sub_080ACA34: @ 0x080ACA34 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080ACA4C @ =gUnk_0812AA5C - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] diff --git a/asm/crow.s b/asm/crow.s index 0001b378..1175197f 100644 --- a/asm/crow.s +++ b/asm/crow.s @@ -12,7 +12,7 @@ Crow: @ 0x080327F4 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _0803280C @ =gUnk_080CE978 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] diff --git a/asm/cuccoAggr.s b/asm/cuccoAggr.s index d2683c94..e6bb9f84 100644 --- a/asm/cuccoAggr.s +++ b/asm/cuccoAggr.s @@ -27,7 +27,7 @@ _08038CC4: .4byte gUnk_080012C8 _08038CC8: ldr r4, _08038CF4 @ =gUnk_080CF778 adds r0, r5, #0 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] diff --git a/asm/cuccoChickAggr.s b/asm/cuccoChickAggr.s index c32f8704..5755667c 100644 --- a/asm/cuccoChickAggr.s +++ b/asm/cuccoChickAggr.s @@ -12,7 +12,7 @@ CuccoChickAggr: @ 0x08022918 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _08022930 @ =gUnk_080CBB64 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] diff --git a/asm/doorMimic.s b/asm/doorMimic.s index c2fc2c79..210e6853 100644 --- a/asm/doorMimic.s +++ b/asm/doorMimic.s @@ -12,7 +12,7 @@ DoorMimic: @ 0x08021FA8 push {r4, r5, lr} adds r4, r0, #0 ldr r5, _08021FD4 @ =gUnk_080CB734 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r5 ldr r1, [r0] diff --git a/asm/dust.s b/asm/dust.s index aedf1019..9ca3ee56 100644 --- a/asm/dust.s +++ b/asm/dust.s @@ -12,7 +12,7 @@ Dust: @ 0x08044118 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _08044130 @ =gUnk_080D1588 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] diff --git a/asm/enemy50.s b/asm/enemy50.s index ea313bbc..e3eba6bf 100644 --- a/asm/enemy50.s +++ b/asm/enemy50.s @@ -33,7 +33,7 @@ _08040B4E: _08040B5C: ldr r4, _08040B80 @ =gUnk_080D0DC4 adds r0, r5, #0 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] diff --git a/asm/enemy62.s b/asm/enemy62.s index 4df37992..29d3f30b 100644 --- a/asm/enemy62.s +++ b/asm/enemy62.s @@ -19,7 +19,7 @@ Enemy62: @ 0x08048D98 _08048DA8: ldr r4, _08048E00 @ =gUnk_080D22D8 adds r0, r5, #0 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] diff --git a/asm/figurineDevice.s b/asm/figurineDevice.s index 93dbc017..cc17c5a3 100644 --- a/asm/figurineDevice.s +++ b/asm/figurineDevice.s @@ -1352,7 +1352,7 @@ _080885E8: movs r0, #0x3e movs r1, #0 movs r2, #0 - bl sub_080A7C00 + bl CreateItemEntity movs r0, #0x59 bl SetGlobalFlag _0808860A: diff --git a/asm/flyingPot.s b/asm/flyingPot.s index 9a313860..ebe75329 100644 --- a/asm/flyingPot.s +++ b/asm/flyingPot.s @@ -27,7 +27,7 @@ _0803706C: .4byte gUnk_080012C8 _08037070: ldr r4, _08037088 @ =gUnk_080CF244 adds r0, r5, #0 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] diff --git a/asm/flyingSkull.s b/asm/flyingSkull.s index 12ff421f..0c0f04d8 100644 --- a/asm/flyingSkull.s +++ b/asm/flyingSkull.s @@ -27,7 +27,7 @@ _08039BC0: .4byte gUnk_080012C8 _08039BC4: ldr r4, _08039BDC @ =gUnk_080CFB84 adds r0, r5, #0 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] diff --git a/asm/ghini.s b/asm/ghini.s index 3c96a7e7..d28047dd 100644 --- a/asm/ghini.s +++ b/asm/ghini.s @@ -12,7 +12,7 @@ Ghini: @ 0x0803EFDC push {r4, r5, lr} adds r4, r0, #0 ldr r5, _0803F004 @ =gUnk_080D0924 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r5 ldr r1, [r0] diff --git a/asm/gleerok.s b/asm/gleerok.s index 21b19d00..5c977940 100644 --- a/asm/gleerok.s +++ b/asm/gleerok.s @@ -12,7 +12,7 @@ Gleerok: @ 0x0802D018 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _0802D030 @ =gUnk_080CD748 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] diff --git a/asm/gyorgChild.s b/asm/gyorgChild.s index 37ab7824..3bd94177 100644 --- a/asm/gyorgChild.s +++ b/asm/gyorgChild.s @@ -30,7 +30,7 @@ GyorgChild: @ 0x08048640 _08048664: ldr r4, _08048680 @ =gUnk_080D1E6C adds r0, r5, #0 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] diff --git a/asm/gyorgFemaleEye.s b/asm/gyorgFemaleEye.s index 9b3ebc72..294cd90b 100644 --- a/asm/gyorgFemaleEye.s +++ b/asm/gyorgFemaleEye.s @@ -19,7 +19,7 @@ GyorgFemaleEye: @ 0x08048988 _08048998: ldr r4, _080489B0 @ =gUnk_080D1F64 adds r0, r5, #0 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] diff --git a/asm/heartContainer.s b/asm/heartContainer.s index 8e6cecef..747f1932 100644 --- a/asm/heartContainer.s +++ b/asm/heartContainer.s @@ -143,7 +143,7 @@ sub_0808E764: @ 0x0808E764 movs r0, #0x62 movs r1, #0 movs r2, #0 - bl sub_080A7C00 + bl CreateItemEntity bl DeleteThisEntity _0808E79A: pop {r4, pc} diff --git a/asm/itemOnGround.s b/asm/itemOnGround.s index a661c914..b48bbb9f 100644 --- a/asm/itemOnGround.s +++ b/asm/itemOnGround.s @@ -1337,7 +1337,7 @@ _08081438: ldrb r0, [r4, #0xa] ldrb r1, [r4, #0xb] movs r2, #0 - bl sub_080A7C00 + bl CreateItemEntity movs r0, #1 _0808144C: pop {r4, pc} diff --git a/asm/keese.s b/asm/keese.s index 51dcdfcc..0fd55b50 100644 --- a/asm/keese.s +++ b/asm/keese.s @@ -12,7 +12,7 @@ Keese: @ 0x08021D64 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _08021D7C @ =gUnk_080CB69C - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] diff --git a/asm/lakituCloud.s b/asm/lakituCloud.s index e6cb8f9c..69a60a52 100644 --- a/asm/lakituCloud.s +++ b/asm/lakituCloud.s @@ -12,7 +12,7 @@ LakituCloud: @ 0x0803CCB8 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _0803CCD0 @ =gUnk_080D0418 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] diff --git a/asm/madderpillar.s b/asm/madderpillar.s index 8afb6739..77093d9d 100644 --- a/asm/madderpillar.s +++ b/asm/madderpillar.s @@ -25,7 +25,7 @@ sub_08029870: @ 0x08029870 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _08029888 @ =gUnk_080CCD60 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] diff --git a/asm/mazaalBracelet.s b/asm/mazaalBracelet.s index 691f7bbb..ac265753 100644 --- a/asm/mazaalBracelet.s +++ b/asm/mazaalBracelet.s @@ -12,7 +12,7 @@ MazaalBracelet: @ 0x0803A154 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _0803A16C @ =gUnk_080CFC14 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] diff --git a/asm/mazaalHead.s b/asm/mazaalHead.s index 77bd1540..ab086909 100644 --- a/asm/mazaalHead.s +++ b/asm/mazaalHead.s @@ -12,7 +12,7 @@ MazaalHead: @ 0x08033ED4 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _08033EEC @ =gUnk_080CEC88 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] diff --git a/asm/mazaalMacro.s b/asm/mazaalMacro.s index 7e49f777..518c8047 100644 --- a/asm/mazaalMacro.s +++ b/asm/mazaalMacro.s @@ -12,7 +12,7 @@ MazaalMacro: @ 0x08034C60 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _08034C78 @ =gUnk_080CEE90 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] diff --git a/asm/object1C.s b/asm/object1C.s deleted file mode 100644 index 59ea0ca7..00000000 --- a/asm/object1C.s +++ /dev/null @@ -1,43 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Object1C -Object1C: @ 0x080874A0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080874AE - movs r0, #1 - strb r0, [r4, #0xc] -_080874AE: - adds r0, r4, #0 - adds r0, #0x80 - movs r1, #0 - ldrsh r0, [r0, r1] - adds r1, r4, #0 - adds r1, #0x82 - movs r2, #0 - ldrsh r1, [r1, r2] - movs r2, #0x10 - movs r3, #0x10 - bl CheckRectOnScreen - cmp r0, #0 - bne _080874DC - ldr r2, [r4, #0x50] - movs r1, #1 - ldrb r4, [r4, #0xb] - lsls r1, r4 - ldr r0, [r2, #0x20] - bics r0, r1 - str r0, [r2, #0x20] - bl DeleteThisEntity -_080874DC: - pop {r4, pc} - .align 2, 0 diff --git a/asm/object1D.s b/asm/object1D.s deleted file mode 100644 index 7dc93cd3..00000000 --- a/asm/object1D.s +++ /dev/null @@ -1,32 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start Object1D -Object1D: @ 0x080874E0 - push {lr} - ldr r2, _080874F4 @ =gUnk_081208A0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080874F4: .4byte gUnk_081208A0 - - thumb_func_start sub_080874F8 -sub_080874F8: @ 0x080874F8 - push {lr} - bl DeleteThisEntity - pop {pc} - - thumb_func_start nullsub_117 -nullsub_117: @ 0x08087500 - bx lr - .align 2, 0 diff --git a/asm/object30.s b/asm/object30.s index 2316dc9d..c89903a3 100644 --- a/asm/object30.s +++ b/asm/object30.s @@ -151,7 +151,7 @@ _0808A954: ldrb r1, [r4, #0xb] movs r0, #0x5c movs r2, #0 - bl sub_080A7C00 + bl CreateItemEntity bl DeleteThisEntity _0808A962: pop {r4, pc} diff --git a/asm/object6A.s b/asm/object6A.s index 205d1840..f9105e1a 100644 --- a/asm/object6A.s +++ b/asm/object6A.s @@ -812,7 +812,7 @@ _08095040: movs r0, #0x1c movs r1, #0 movs r2, #0 - bl sub_080A7C00 + bl CreateItemEntity movs r0, #0x5b bl SetGlobalFlag movs r0, #0x3c @@ -897,7 +897,7 @@ _080950F0: movs r0, #0x5b movs r1, #0 movs r2, #0 - bl sub_080A7C00 + bl CreateItemEntity bl DeleteThisEntity _0809510A: ldrb r4, [r5, #0xa] diff --git a/asm/object96.s b/asm/object96.s index 6e13a445..dab90295 100644 --- a/asm/object96.s +++ b/asm/object96.s @@ -195,7 +195,7 @@ _0809D8E8: ldrb r0, [r6, #0xd] ldrb r1, [r5, #0xb] movs r2, #0 - bl sub_080A7C00 + bl CreateItemEntity ldrh r0, [r6, #0x1c] cmp r0, #0 beq _0809D906 diff --git a/asm/objectA8.s b/asm/objectA8.s index 9849694e..39a853be 100644 --- a/asm/objectA8.s +++ b/asm/objectA8.s @@ -6,86 +6,6 @@ .text - - thumb_func_start ObjectA8 -ObjectA8: @ 0x0809F9DC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0809FA9A - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x1f - bhi _0809FA9A - lsls r0, r0, #2 - ldr r1, _0809FA00 @ =_0809FA04 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809FA00: .4byte _0809FA04 -_0809FA04: @ jump table - .4byte _0809FA84 @ case 0 - .4byte _0809FA84 @ case 1 - .4byte _0809FA9A @ case 2 - .4byte _0809FA9A @ case 3 - .4byte _0809FA84 @ case 4 - .4byte _0809FA84 @ case 5 - .4byte _0809FA84 @ case 6 - .4byte _0809FA9A @ case 7 - .4byte _0809FA84 @ case 8 - .4byte _0809FA84 @ case 9 - .4byte _0809FA84 @ case 10 - .4byte _0809FA84 @ case 11 - .4byte _0809FA84 @ case 12 - .4byte _0809FA9A @ case 13 - .4byte _0809FA9A @ case 14 - .4byte _0809FA9A @ case 15 - .4byte _0809FA9A @ case 16 - .4byte _0809FA9A @ case 17 - .4byte _0809FA9A @ case 18 - .4byte _0809FA9A @ case 19 - .4byte _0809FA9A @ case 20 - .4byte _0809FA9A @ case 21 - .4byte _0809FA9A @ case 22 - .4byte _0809FA9A @ case 23 - .4byte _0809FA9A @ case 24 - .4byte _0809FA9A @ case 25 - .4byte _0809FA9A @ case 26 - .4byte _0809FA9A @ case 27 - .4byte _0809FA9A @ case 28 - .4byte _0809FA9A @ case 29 - .4byte _0809FA84 @ case 30 - .4byte _0809FA84 @ case 31 -_0809FA84: - movs r0, #5 - strb r0, [r4, #0xc] - ldr r0, _0809FAB4 @ =gLinkEntity - str r0, [r4, #0x54] - ldrb r0, [r4, #0xa] - movs r1, #0 - movs r2, #0 - bl sub_080A7C00 - bl DeleteThisEntity -_0809FA9A: - ldr r0, _0809FAB8 @ =gUnk_08124824 - 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_08080CB4 - pop {r4, pc} - .align 2, 0 -_0809FAB4: .4byte gLinkEntity -_0809FAB8: .4byte gUnk_08124824 - thumb_func_start sub_0809FABC sub_0809FABC: @ 0x0809FABC push {lr} diff --git a/asm/octorokBoss.s b/asm/octorokBoss.s index e2fb8a96..75068ea8 100644 --- a/asm/octorokBoss.s +++ b/asm/octorokBoss.s @@ -12,7 +12,7 @@ OctorokBoss: @ 0x080351BC push {r4, r5, lr} adds r5, r0, #0 ldr r4, _080351D4 @ =gUnk_080CF040 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] diff --git a/asm/octorokGolden.s b/asm/octorokGolden.s index 05713658..4908da57 100644 --- a/asm/octorokGolden.s +++ b/asm/octorokGolden.s @@ -26,7 +26,7 @@ _08037C58: .4byte gUnk_080012C8 _08037C5C: ldr r4, _08037C80 @ =gUnk_080CF46C adds r0, r5, #0 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] diff --git a/asm/pesto.s b/asm/pesto.s index e4fa8202..92aaa8c8 100644 --- a/asm/pesto.s +++ b/asm/pesto.s @@ -12,7 +12,7 @@ Pesto: @ 0x08023F28 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _08023F40 @ =gUnk_080CBEC4 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] diff --git a/asm/ropeGolden.s b/asm/ropeGolden.s index 6f75451b..33e71afb 100644 --- a/asm/ropeGolden.s +++ b/asm/ropeGolden.s @@ -27,7 +27,7 @@ _080381CC: .4byte gUnk_080012C8 _080381D0: ldr r4, _080381F4 @ =gUnk_080CF4C8 adds r0, r5, #0 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] diff --git a/asm/rupeeLike.s b/asm/rupeeLike.s index 74b1e2f9..8794d88d 100644 --- a/asm/rupeeLike.s +++ b/asm/rupeeLike.s @@ -33,7 +33,7 @@ _080292C4: _080292CE: ldr r4, _080292F4 @ =gUnk_080CCC00 adds r0, r5, #0 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] diff --git a/asm/sluggula.s b/asm/sluggula.s index 8a4f7baf..5727894a 100644 --- a/asm/sluggula.s +++ b/asm/sluggula.s @@ -44,7 +44,7 @@ _08023BD4: .4byte gUnk_080012C8 _08023BD8: ldr r4, _08023BFC @ =gUnk_080CBDD4 adds r0, r5, #0 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] diff --git a/asm/smallPesto.s b/asm/smallPesto.s index eaada49e..5a9c1156 100644 --- a/asm/smallPesto.s +++ b/asm/smallPesto.s @@ -6,109 +6,6 @@ .text - - thumb_func_start SmallPesto -SmallPesto: @ 0x08031664 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0803167C @ =gUnk_080CE530 - bl sub_0800279C - 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 -_0803167C: .4byte gUnk_080CE530 - - thumb_func_start sub_08031680 -sub_08031680: @ 0x08031680 - push {lr} - ldr r2, _08031694 @ =gUnk_080CE548 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08031694: .4byte gUnk_080CE548 - - thumb_func_start nullsub_152 -nullsub_152: @ 0x08031698 - bx lr - .align 2, 0 - - thumb_func_start sub_0803169C -sub_0803169C: @ 0x0803169C - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0806F520 - cmp r0, #0 - bne _080316C4 - movs r2, #1 - strb r2, [r4, #0xc] - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - movs r0, #0x40 - strh r0, [r4, #0x24] - strb r2, [r4, #0xf] - b _080316D4 -_080316C4: - ldr r0, _080316D8 @ =gUnk_080CE554 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_080316D4: - pop {r4, pc} - .align 2, 0 -_080316D8: .4byte gUnk_080CE554 - - thumb_func_start sub_080316DC -sub_080316DC: @ 0x080316DC - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x3c - strb r1, [r0, #0x1d] - bx lr - .align 2, 0 - - thumb_func_start sub_080316E8 -sub_080316E8: @ 0x080316E8 - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_080316F0 -sub_080316F0: @ 0x080316F0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _08031702 - adds r0, r4, #0 - bl sub_0804A7D4 -_08031702: - pop {r4, pc} - - thumb_func_start sub_08031704 -sub_08031704: @ 0x08031704 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - adds r0, r4, #0 - bl sub_080317F8 - pop {r4, pc} - thumb_func_start sub_08031714 sub_08031714: @ 0x08031714 push {r4, lr} diff --git a/asm/spark.s b/asm/spark.s index feff0898..d914dd9d 100644 --- a/asm/spark.s +++ b/asm/spark.s @@ -12,7 +12,7 @@ Spark: @ 0x0802B2AC push {r4, r5, lr} adds r5, r0, #0 ldr r4, _0802B2C4 @ =gUnk_080CD234 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] diff --git a/asm/stockwell.s b/asm/stockwell.s index ad2b1fa7..44d43e42 100644 --- a/asm/stockwell.s +++ b/asm/stockwell.s @@ -334,7 +334,7 @@ sub_080652B0: @ 0x080652B0 movs r0, #0x36 movs r1, #0 movs r2, #0 - bl sub_080A7C00 + bl CreateItemEntity _080652DA: pop {pc} .align 2, 0 diff --git a/asm/sub_0804AA30.s b/asm/sub_0804AA30.s index 0182681d..9360eece 100644 --- a/asm/sub_0804AA30.s +++ b/asm/sub_0804AA30.s @@ -17,7 +17,7 @@ sub_0804AA30: @ 0x0804AA30 ands r0, r1 strb r0, [r6] adds r0, r4, #0 - bl sub_0800279C + bl GetNextFunction ldrb r2, [r6] movs r1, #0x80 orrs r1, r2 diff --git a/asm/takkuri.s b/asm/takkuri.s index 0208a37a..0ceec3a5 100644 --- a/asm/takkuri.s +++ b/asm/takkuri.s @@ -12,7 +12,7 @@ Takkuri: @ 0x0803BB7C push {r4, r5, lr} adds r5, r0, #0 ldr r4, _0803BB94 @ =gUnk_080CFF3C - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] diff --git a/asm/vaatiArm.s b/asm/vaatiArm.s index 9c1dd320..4bf6ef42 100644 --- a/asm/vaatiArm.s +++ b/asm/vaatiArm.s @@ -12,7 +12,7 @@ VaatiArm: @ 0x08042554 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _0804256C @ =gUnk_080D1230 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] diff --git a/asm/vaatiEyesMacro.s b/asm/vaatiEyesMacro.s index 517d704c..dc8f3005 100644 --- a/asm/vaatiEyesMacro.s +++ b/asm/vaatiEyesMacro.s @@ -12,7 +12,7 @@ VaatiEyesMacro: @ 0x0802EC6C push {r4, r5, lr} adds r4, r0, #0 ldr r5, _0802EC94 @ =gUnk_080CDE34 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r5 ldr r1, [r0] diff --git a/asm/vaatiProjectile.s b/asm/vaatiProjectile.s index b97a1adf..46cd8c40 100644 --- a/asm/vaatiProjectile.s +++ b/asm/vaatiProjectile.s @@ -26,7 +26,7 @@ VaatiProjectile: @ 0x0803E08C _0803E0AA: ldr r4, _0803E0C0 @ =gUnk_080D0648 adds r0, r5, #0 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] diff --git a/asm/wallMaster.s b/asm/wallMaster.s index 34d06403..8afe932c 100644 --- a/asm/wallMaster.s +++ b/asm/wallMaster.s @@ -12,7 +12,7 @@ WallMaster: @ 0x0802A408 push {r4, r5, lr} adds r4, r0, #0 ldr r5, _0802A430 @ =gUnk_080CD07C - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r5 ldr r1, [r0] diff --git a/asm/wallMaster2.s b/asm/wallMaster2.s index 4504a130..bf87a4e4 100644 --- a/asm/wallMaster2.s +++ b/asm/wallMaster2.s @@ -12,7 +12,7 @@ WallMaster2: @ 0x0802CC3C push {r4, r5, lr} adds r4, r0, #0 ldr r5, _0802CC64 @ =gUnk_080CD6FC - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r5 ldr r1, [r0] diff --git a/asm/wizzrobeFire.s b/asm/wizzrobeFire.s index 1b2ddc3c..f1f59e33 100644 --- a/asm/wizzrobeFire.s +++ b/asm/wizzrobeFire.s @@ -12,7 +12,7 @@ WizzrobeFire: @ 0x0802FB30 push {r4, r5, lr} adds r4, r0, #0 ldr r5, _0802FB58 @ =gUnk_080CDFC4 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r5 ldr r1, [r0] diff --git a/asm/wizzrobeIce.s b/asm/wizzrobeIce.s index 24ed7713..82fc0f89 100644 --- a/asm/wizzrobeIce.s +++ b/asm/wizzrobeIce.s @@ -12,7 +12,7 @@ WizzrobeIce: @ 0x0802FDD4 push {r4, r5, lr} adds r4, r0, #0 ldr r5, _0802FDFC @ =gUnk_080CE074 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r5 ldr r1, [r0] diff --git a/asm/wizzrobeWind.s b/asm/wizzrobeWind.s index 42840110..50a0edde 100644 --- a/asm/wizzrobeWind.s +++ b/asm/wizzrobeWind.s @@ -12,7 +12,7 @@ WizzrobeWind: @ 0x0802F4A0 push {r4, r5, lr} adds r4, r0, #0 ldr r5, _0802F4C8 @ =gUnk_080CDF50 - bl sub_0800279C + bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r5 ldr r1, [r0] diff --git a/data/ddump b/data/ddump new file mode 100755 index 0000000000000000000000000000000000000000..453db07538f9a3b3fc1bcba9f587e98446102b23 GIT binary patch literal 92908 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 literal 0 HcmV?d00001 diff --git a/data/gfx.ddscript b/data/gfx.ddscript new file mode 100644 index 00000000..2a633998 --- /dev/null +++ b/data/gfx.ddscript @@ -0,0 +1,2 @@ +$data : +.data $data \ No newline at end of file diff --git a/data/ptr_array.ddscript b/data/ptr_array.ddscript new file mode 100755 index 00000000..336e382d --- /dev/null +++ b/data/ptr_array.ddscript @@ -0,0 +1,2 @@ +$ptr :4 int:4 checkptr:1 +.4byte $*ptr \ No newline at end of file diff --git a/linker.ld b/linker.ld index 59d907ed..3127916e 100644 --- a/linker.ld +++ b/linker.ld @@ -364,6 +364,7 @@ SECTIONS { asm/armos.o(.text); asm/eyegore.o(.text); asm/rope.o(.text); + src/smallPesto.o(.text); asm/smallPesto.o(.text); asm/acroBandits.o(.text); src/bladeTrap.o(.text); @@ -613,8 +614,8 @@ SECTIONS { src/object1A.o(.text); src/greatFairy.o(.text); asm/greatFairy.o(.text); - asm/object1C.o(.text); - asm/object1D.o(.text); + src/object1C.o(.text); + src/object1D.o(.text); asm/object1E.o(.text); asm/object1F.o(.text); asm/object20.o(.text); @@ -754,6 +755,7 @@ SECTIONS { asm/objectA5.o(.text); asm/objectA6.o(.text); asm/objectA7.o(.text); + src/objectA8.o(.text); asm/objectA8.o(.text); asm/objectA9.o(.text); asm/waterfallOpening.o(.text); diff --git a/src/object1C.c b/src/object1C.c new file mode 100644 index 00000000..333420b6 --- /dev/null +++ b/src/object1C.c @@ -0,0 +1,19 @@ +#include "global.h" +#include "entity.h" + +extern u32 CheckRectOnScreen(s16, s16, u32, u32); +extern void DeleteThisEntity(); + +void Object1C(Entity *this) +{ + s32 iVar1; + + if (this->action == 0) { + this->action = 1; + } + iVar1 = CheckRectOnScreen(this->field_0x80, this->field_0x82, 0x10, 0x10); + if (iVar1 == 0) { + this->parent->field_0x20 &= ~(1 << this->entityType.parameter2); + DeleteThisEntity(); + } +} \ No newline at end of file diff --git a/src/object1D.c b/src/object1D.c new file mode 100644 index 00000000..a31c355a --- /dev/null +++ b/src/object1D.c @@ -0,0 +1,18 @@ +#include "global.h" +#include "entity.h" + +void DeleteThisEntity(); + +extern void (*gUnk_081208A0[])(Entity*); + +void Object1D(Entity *this) +{ + gUnk_081208A0[this->action](this); +} + +void sub_080874F8(Entity* this) +{ + DeleteThisEntity(); +} + +void nullsub_117(){} \ No newline at end of file diff --git a/src/objectA8.c b/src/objectA8.c new file mode 100644 index 00000000..b1fdc6a7 --- /dev/null +++ b/src/objectA8.c @@ -0,0 +1,36 @@ +#include "global.h" +#include "entity.h" + +extern void CreateItemEntity(u32, u32, u32); +extern void DeleteThisEntity(); +extern void sub_08080CB4(Entity*); + +extern void (*gUnk_08124824[])(Entity*); + +extern Entity gLinkEntity; + +void ObjectA8(Entity *this) +{ + if ((this->bitfield & 0x80) != 0) { + switch(this->bitfield & 0x7f) { + case 0: + case 1: + case 4: + case 5: + case 6: + case 8: + case 9: + case 10: + case 0xb: + case 0xc: + case 0x1e: + case 0x1f: + this->action = 5; + this->attachedEntity = &gLinkEntity; + CreateItemEntity((this->entityType).parameter1, 0, 0); + DeleteThisEntity(); + } + } + gUnk_08124824[this->action](this); + sub_08080CB4(this); +} \ No newline at end of file diff --git a/src/smallPesto.c b/src/smallPesto.c new file mode 100644 index 00000000..0fe534a2 --- /dev/null +++ b/src/smallPesto.c @@ -0,0 +1,69 @@ +#include "global.h" +#include "entity.h" + +extern u32 GetNextFunction(Entity*); +extern u32 sub_08004274(Entity*); +extern u32 sub_0806F520(Entity*); +extern void sub_0806F4E8(Entity*); +extern u32 sub_0806F3E4(); +extern void sub_0804A7D4(Entity*); +extern void sub_0804A720(Entity*); +extern void sub_080317F8(Entity*); + +extern void (*gUnk_080CE530[])(Entity*); +extern void (*gUnk_080CE548[])(Entity*); +extern void (*gUnk_080CE554[])(Entity*); + +void SmallPesto(Entity *this) +{ + gUnk_080CE530[GetNextFunction(this)](this); +} + +void sub_08031680(Entity *this) +{ + gUnk_080CE548[this->action](this); +} + +void nullsub_152(){} + +void sub_0803169C(Entity *this) +{ + s32 iVar1; + + sub_08004274(this); + iVar1 = sub_0806F520(this); + if (iVar1 == 0) { + this->action = 1; + this->previousActionFlag = 0; + this->flags = this->flags | 0x80; + this->nonPlanarMovement = 0x40; + this->field_0xf = 1; + } + else { + gUnk_080CE554[this->previousActionFlag](this); + } +} + +void sub_080316DC(Entity *this) +{ + this->previousActionFlag = 1; + this->filler[1] = 0x3c; +} + +void sub_080316E8(Entity *this) +{ + sub_0806F4E8(this); +} + +void sub_080316F0(Entity *this) +{ + if (sub_0806F3E4()) { + sub_0804A7D4(this); + } +} + +void sub_08031704(Entity *this) +{ + sub_0804A720(this); + sub_080317F8(this); +} \ No newline at end of file diff --git a/tools/aif2pcm/.gitignore b/tools/aif2pcm/.gitignore old mode 100644 new mode 100755 diff --git a/tools/aif2pcm/LICENSE b/tools/aif2pcm/LICENSE old mode 100644 new mode 100755 diff --git a/tools/aif2pcm/Makefile b/tools/aif2pcm/Makefile old mode 100644 new mode 100755 diff --git a/tools/aif2pcm/extended.c b/tools/aif2pcm/extended.c old mode 100644 new mode 100755 diff --git a/tools/aif2pcm/main.c b/tools/aif2pcm/main.c old mode 100644 new mode 100755 diff --git a/tools/bin2c/.gitignore b/tools/bin2c/.gitignore old mode 100644 new mode 100755 diff --git a/tools/bin2c/LICENSE b/tools/bin2c/LICENSE old mode 100644 new mode 100755 diff --git a/tools/bin2c/Makefile b/tools/bin2c/Makefile old mode 100644 new mode 100755 diff --git a/tools/bin2c/bin2c.c b/tools/bin2c/bin2c.c old mode 100644 new mode 100755 diff --git a/tools/gbafix/.gitignore b/tools/gbafix/.gitignore old mode 100644 new mode 100755 diff --git a/tools/gbafix/COPYING b/tools/gbafix/COPYING old mode 100644 new mode 100755 diff --git a/tools/gbafix/Makefile b/tools/gbafix/Makefile old mode 100644 new mode 100755 diff --git a/tools/gbafix/elf.h b/tools/gbafix/elf.h old mode 100644 new mode 100755 diff --git a/tools/gbafix/gbafix.c b/tools/gbafix/gbafix.c old mode 100644 new mode 100755 diff --git a/tools/gbagfx/.gitignore b/tools/gbagfx/.gitignore old mode 100644 new mode 100755 diff --git a/tools/gbagfx/LICENSE b/tools/gbagfx/LICENSE old mode 100644 new mode 100755 diff --git a/tools/gbagfx/Makefile b/tools/gbagfx/Makefile old mode 100644 new mode 100755 diff --git a/tools/gbagfx/convert_png.c b/tools/gbagfx/convert_png.c old mode 100644 new mode 100755 diff --git a/tools/gbagfx/convert_png.h b/tools/gbagfx/convert_png.h old mode 100644 new mode 100755 diff --git a/tools/gbagfx/font.c b/tools/gbagfx/font.c old mode 100644 new mode 100755 diff --git a/tools/gbagfx/font.h b/tools/gbagfx/font.h old mode 100644 new mode 100755 diff --git a/tools/gbagfx/gfx.c b/tools/gbagfx/gfx.c old mode 100644 new mode 100755 diff --git a/tools/gbagfx/gfx.h b/tools/gbagfx/gfx.h old mode 100644 new mode 100755 diff --git a/tools/gbagfx/global.h b/tools/gbagfx/global.h old mode 100644 new mode 100755 diff --git a/tools/gbagfx/huff.c b/tools/gbagfx/huff.c old mode 100644 new mode 100755 diff --git a/tools/gbagfx/huff.h b/tools/gbagfx/huff.h old mode 100644 new mode 100755 diff --git a/tools/gbagfx/jasc_pal.c b/tools/gbagfx/jasc_pal.c old mode 100644 new mode 100755 diff --git a/tools/gbagfx/jasc_pal.h b/tools/gbagfx/jasc_pal.h old mode 100644 new mode 100755 diff --git a/tools/gbagfx/lz.c b/tools/gbagfx/lz.c old mode 100644 new mode 100755 diff --git a/tools/gbagfx/lz.h b/tools/gbagfx/lz.h old mode 100644 new mode 100755 diff --git a/tools/gbagfx/main.c b/tools/gbagfx/main.c old mode 100644 new mode 100755 diff --git a/tools/gbagfx/options.h b/tools/gbagfx/options.h old mode 100644 new mode 100755 diff --git a/tools/gbagfx/rl.c b/tools/gbagfx/rl.c old mode 100644 new mode 100755 diff --git a/tools/gbagfx/rl.h b/tools/gbagfx/rl.h old mode 100644 new mode 100755 diff --git a/tools/gbagfx/util.c b/tools/gbagfx/util.c old mode 100644 new mode 100755 diff --git a/tools/gbagfx/util.h b/tools/gbagfx/util.h old mode 100644 new mode 100755 diff --git a/tools/mid2agb/.gitignore b/tools/mid2agb/.gitignore old mode 100644 new mode 100755 diff --git a/tools/mid2agb/LICENSE b/tools/mid2agb/LICENSE old mode 100644 new mode 100755 diff --git a/tools/mid2agb/Makefile b/tools/mid2agb/Makefile old mode 100644 new mode 100755 diff --git a/tools/mid2agb/agb.cpp b/tools/mid2agb/agb.cpp old mode 100644 new mode 100755 diff --git a/tools/mid2agb/agb.h b/tools/mid2agb/agb.h old mode 100644 new mode 100755 diff --git a/tools/mid2agb/error.cpp b/tools/mid2agb/error.cpp old mode 100644 new mode 100755 diff --git a/tools/mid2agb/error.h b/tools/mid2agb/error.h old mode 100644 new mode 100755 diff --git a/tools/mid2agb/main.cpp b/tools/mid2agb/main.cpp old mode 100644 new mode 100755 diff --git a/tools/mid2agb/main.h b/tools/mid2agb/main.h old mode 100644 new mode 100755 diff --git a/tools/mid2agb/midi.cpp b/tools/mid2agb/midi.cpp old mode 100644 new mode 100755 diff --git a/tools/mid2agb/midi.h b/tools/mid2agb/midi.h old mode 100644 new mode 100755 diff --git a/tools/mid2agb/tables.cpp b/tools/mid2agb/tables.cpp old mode 100644 new mode 100755 diff --git a/tools/mid2agb/tables.h b/tools/mid2agb/tables.h old mode 100644 new mode 100755 diff --git a/tools/preproc/.gitignore b/tools/preproc/.gitignore old mode 100644 new mode 100755 diff --git a/tools/preproc/LICENSE b/tools/preproc/LICENSE old mode 100644 new mode 100755 diff --git a/tools/preproc/Makefile b/tools/preproc/Makefile old mode 100644 new mode 100755 diff --git a/tools/preproc/asm_file.cpp b/tools/preproc/asm_file.cpp old mode 100644 new mode 100755 diff --git a/tools/preproc/asm_file.h b/tools/preproc/asm_file.h old mode 100644 new mode 100755 diff --git a/tools/preproc/c_file.cpp b/tools/preproc/c_file.cpp old mode 100644 new mode 100755 diff --git a/tools/preproc/c_file.h b/tools/preproc/c_file.h old mode 100644 new mode 100755 diff --git a/tools/preproc/char_util.h b/tools/preproc/char_util.h old mode 100644 new mode 100755 diff --git a/tools/preproc/charmap.cpp b/tools/preproc/charmap.cpp old mode 100644 new mode 100755 diff --git a/tools/preproc/charmap.h b/tools/preproc/charmap.h old mode 100644 new mode 100755 diff --git a/tools/preproc/preproc.cpp b/tools/preproc/preproc.cpp old mode 100644 new mode 100755 diff --git a/tools/preproc/preproc.h b/tools/preproc/preproc.h old mode 100644 new mode 100755 diff --git a/tools/preproc/string_parser.cpp b/tools/preproc/string_parser.cpp old mode 100644 new mode 100755 diff --git a/tools/preproc/string_parser.h b/tools/preproc/string_parser.h old mode 100644 new mode 100755 diff --git a/tools/preproc/utf8.cpp b/tools/preproc/utf8.cpp old mode 100644 new mode 100755 diff --git a/tools/preproc/utf8.h b/tools/preproc/utf8.h old mode 100644 new mode 100755 diff --git a/tools/scaninc/.gitignore b/tools/scaninc/.gitignore old mode 100644 new mode 100755 diff --git a/tools/scaninc/LICENSE b/tools/scaninc/LICENSE old mode 100644 new mode 100755 diff --git a/tools/scaninc/Makefile b/tools/scaninc/Makefile old mode 100644 new mode 100755 diff --git a/tools/scaninc/asm_file.cpp b/tools/scaninc/asm_file.cpp old mode 100644 new mode 100755 diff --git a/tools/scaninc/asm_file.h b/tools/scaninc/asm_file.h old mode 100644 new mode 100755 diff --git a/tools/scaninc/c_file.cpp b/tools/scaninc/c_file.cpp old mode 100644 new mode 100755 diff --git a/tools/scaninc/c_file.h b/tools/scaninc/c_file.h old mode 100644 new mode 100755 diff --git a/tools/scaninc/scaninc.cpp b/tools/scaninc/scaninc.cpp old mode 100644 new mode 100755 diff --git a/tools/scaninc/scaninc.h b/tools/scaninc/scaninc.h old mode 100644 new mode 100755 diff --git a/tools/scaninc/source_file.cpp b/tools/scaninc/source_file.cpp old mode 100644 new mode 100755 diff --git a/tools/scaninc/source_file.h b/tools/scaninc/source_file.h old mode 100644 new mode 100755