summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorscnorton <scnorton@biociphers.org>2017-08-31 13:56:08 -0400
committerscnorton <scnorton@biociphers.org>2017-08-31 13:56:08 -0400
commitea13e41fba35a8caf9e6a1657fdd63d04a1108e6 (patch)
tree8035690b1266fb3c338039acac82bac156171144
parentd3dca02924bc19bff355feb74a667707751bcc8f (diff)
nonmatching sub_8047E44
-rw-r--r--asm/trade.s65
-rw-r--r--src/trade.c89
2 files changed, 87 insertions, 67 deletions
diff --git a/asm/trade.s b/asm/trade.s
index 8faba39dd..490f838f5 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -10,71 +10,6 @@
.set sub_804A96C_alt, sub_804A96C
.endif
- thumb_func_start sub_8047E44
-sub_8047E44: @ 8047E44
- push {r4-r7,lr}
- sub sp, 0x18
- movs r4, 0
- mov r5, sp
- movs r6, 0xD6
- lsls r6, 16
-_08047E50:
- mov r1, sp
- ldr r0, _08047EBC @ =gSpriteTemplate_820C0EC
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- adds r0, r4, 0x6
- ldrh r1, [r5]
- adds r0, r1
- strh r0, [r5]
- asrs r1, r6, 16
- mov r0, sp
- movs r2, 0x98
- movs r3, 0x1
- bl CreateSprite
- movs r2, 0x80
- lsls r2, 14
- adds r6, r2
- adds r4, 0x1
- cmp r4, 0x1
- ble _08047E50
- movs r4, 0
- mov r5, sp
- movs r6, 0xC0
- lsls r6, 13
-_08047E84:
- mov r1, sp
- ldr r0, _08047EBC @ =gSpriteTemplate_820C0EC
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- ldm r0!, {r2,r3,r7}
- stm r1!, {r2,r3,r7}
- adds r0, r4, 0
- adds r0, 0x8
- ldrh r3, [r5]
- adds r0, r3
- strh r0, [r5]
- asrs r1, r6, 16
- mov r0, sp
- movs r2, 0x96
- movs r3, 0x1
- bl CreateSprite
- movs r7, 0x80
- lsls r7, 14
- adds r6, r7
- adds r4, 0x1
- cmp r4, 0x4
- ble _08047E84
- add sp, 0x18
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08047EBC: .4byte gSpriteTemplate_820C0EC
- thumb_func_end sub_8047E44
-
thumb_func_start sub_8047EC0
sub_8047EC0: @ 8047EC0
push {r4-r7,lr}
diff --git a/src/trade.c b/src/trade.c
index 392ab881a..a624dc861 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -478,9 +478,29 @@ void sub_8047D58(void)
}
nullsub_5(5, 0);
}
+
+void sub_8047E44(void)
+{
+ struct SpriteTemplate spriteTemplate;
+ int i;
+ s16 x;
+
+ for (i = 0, x = 0xd6; i < 2; x += 32, i ++)
+ {
+ spriteTemplate = gSpriteTemplate_820C0EC;
+ spriteTemplate.tileTag += i + 6;
+ CreateSprite(&spriteTemplate, x, 0x98, 1);
+ }
+
+ for (i = 0, x = 0x18; i < 5; x += 32, i ++)
+ {
+ spriteTemplate = gSpriteTemplate_820C0EC;
+ spriteTemplate.tileTag += i + 8;
+ CreateSprite(&spriteTemplate, x, 0x96, 1);
+ }
+}
#else
-__attribute__((naked))
-void sub_8047D58(void)
+__attribute__((naked)) void sub_8047D58(void)
{
asm_unified("\tpush {r4-r7,lr}\n"
"\tmov r7, r8\n"
@@ -595,6 +615,71 @@ void sub_8047D58(void)
"_08047E3C: .4byte gLinkPlayers + 0x8\n"
"_08047E40: .4byte gTradeUnknownSpriteCoords + 0x3");
}
+
+__attribute__((naked)) void sub_8047E44(void)
+{
+ asm_unified("\tpush {r4-r7,lr}\n"
+ "\tsub sp, 0x18\n"
+ "\tmovs r4, 0\n"
+ "\tmov r5, sp\n"
+ "\tmovs r6, 0xD6\n"
+ "\tlsls r6, 16\n"
+ "_08047E50:\n"
+ "\tmov r1, sp\n"
+ "\tldr r0, _08047EBC @ =gSpriteTemplate_820C0EC\n"
+ "\tldm r0!, {r2,r3,r7}\n"
+ "\tstm r1!, {r2,r3,r7}\n"
+ "\tldm r0!, {r2,r3,r7}\n"
+ "\tstm r1!, {r2,r3,r7}\n"
+ "\tadds r0, r4, 0x6\n"
+ "\tldrh r1, [r5]\n"
+ "\tadds r0, r1\n"
+ "\tstrh r0, [r5]\n"
+ "\tasrs r1, r6, 16\n"
+ "\tmov r0, sp\n"
+ "\tmovs r2, 0x98\n"
+ "\tmovs r3, 0x1\n"
+ "\tbl CreateSprite\n"
+ "\tmovs r2, 0x80\n"
+ "\tlsls r2, 14\n"
+ "\tadds r6, r2\n"
+ "\tadds r4, 0x1\n"
+ "\tcmp r4, 0x1\n"
+ "\tble _08047E50\n"
+ "\tmovs r4, 0\n"
+ "\tmov r5, sp\n"
+ "\tmovs r6, 0xC0\n"
+ "\tlsls r6, 13\n"
+ "_08047E84:\n"
+ "\tmov r1, sp\n"
+ "\tldr r0, _08047EBC @ =gSpriteTemplate_820C0EC\n"
+ "\tldm r0!, {r2,r3,r7}\n"
+ "\tstm r1!, {r2,r3,r7}\n"
+ "\tldm r0!, {r2,r3,r7}\n"
+ "\tstm r1!, {r2,r3,r7}\n"
+ "\tadds r0, r4, 0\n"
+ "\tadds r0, 0x8\n"
+ "\tldrh r3, [r5]\n"
+ "\tadds r0, r3\n"
+ "\tstrh r0, [r5]\n"
+ "\tasrs r1, r6, 16\n"
+ "\tmov r0, sp\n"
+ "\tmovs r2, 0x96\n"
+ "\tmovs r3, 0x1\n"
+ "\tbl CreateSprite\n"
+ "\tmovs r7, 0x80\n"
+ "\tlsls r7, 14\n"
+ "\tadds r6, r7\n"
+ "\tadds r4, 0x1\n"
+ "\tcmp r4, 0x4\n"
+ "\tble _08047E84\n"
+ "\tadd sp, 0x18\n"
+ "\tpop {r4-r7}\n"
+ "\tpop {r0}\n"
+ "\tbx r0\n"
+ "\t.align 2, 0\n"
+ "_08047EBC: .4byte gSpriteTemplate_820C0EC");
+}
#endif
asm(".section .text.sub_804A96C");