sub_815DD44; some more decomp

This commit is contained in:
scnorton
2019-01-02 17:10:26 -05:00
parent fa05cd911c
commit 9dd48895b7
4 changed files with 155 additions and 57 deletions
-53
View File
@@ -5,59 +5,6 @@
.text
thumb_func_start sub_815DD44
sub_815DD44: @ 815DD44
push {r4,lr}
ldr r0, _0815DD68 @ =gMapHeader
ldrh r0, [r0, 0x12]
ldr r1, _0815DD6C @ =0xfffffed7
adds r0, r1
ldr r1, _0815DD70 @ =gUnknown_203F458
ldr r4, [r1]
ldrb r1, [r4, 0x4]
cmp r0, r1
ble _0815DD78
ldr r0, _0815DD74 @ =gSpecialVar_Result
movs r1, 0x3
strh r1, [r0]
movs r0, 0x99
lsls r0, 1
bl sub_8055D40
b _0815DDA2
.align 2, 0
_0815DD68: .4byte gMapHeader
_0815DD6C: .4byte 0xfffffed7
_0815DD70: .4byte gUnknown_203F458
_0815DD74: .4byte gSpecialVar_Result
_0815DD78:
ldr r3, _0815DDA8 @ =gSpecialVar_Result
ldrb r1, [r4]
lsls r0, r1, 5
subs r0, r1
lsls r0, 5
adds r0, r4, r0
ldrb r0, [r0, 0xE]
strh r0, [r3]
ldr r2, _0815DDAC @ =gUnknown_847A284
ldrb r1, [r4]
lsls r0, r1, 1
adds r0, r1
ldrh r3, [r3]
adds r0, r3
lsls r0, 1
adds r0, r2
ldrh r0, [r0]
bl sub_8055D40
bl sub_815DDB0
_0815DDA2:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0815DDA8: .4byte gSpecialVar_Result
_0815DDAC: .4byte gUnknown_847A284
thumb_func_end sub_815DD44
thumb_func_start sub_815DDB0
sub_815DDB0: @ 815DDB0
push {r4-r6,lr}
+135 -4
View File
@@ -267,15 +267,138 @@ gUnknown_8479D24:: @ 8479D24
// trainer_tower
gUnknown_8479D34:: @ 8479D34
.incbin "baserom.gba", 0x479D34, 0x1A4
.align 2
gUnknown_8479D34::
.byte 0x03, 0x26
.align 2
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.byte 0x99, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.align 2
.byte 0x03, 0x27
.align 2
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.byte 0x9a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.align 2
.byte 0x01, 0x1f
.align 2
.byte 0x4c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.byte 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0xff, 0xff
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.align 2
.byte 0x01, 0x22
.align 2
.byte 0x53, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.byte 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0xff, 0xff
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.align 2
.byte 0x03, 0x41
.align 2
.byte 0x40, 0x41, 0x42, 0x43, 0xff, 0xff, 0xff, 0xff
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.align 2
.byte 0x01, 0x02
.align 2
.byte 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0xff, 0xff
.byte 0x54, 0x55, 0x56, 0xff, 0xff, 0xff, 0xff, 0xff
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.align 2
.byte 0x01, 0x6d
.align 2
.byte 0x5b, 0x5d, 0x5e, 0x5f, 0x63, 0x64, 0x65, 0x66
.byte 0x5b, 0x5d, 0x5e, 0x5f, 0x63, 0x64, 0x65, 0xff
.byte 0x5a, 0x5c, 0x60, 0x61, 0x62, 0xff, 0xff, 0xff
.align 2
.byte 0x03, 0x2e
.align 2
.byte 0x6b, 0x6c, 0x6d, 0x6e, 0xff, 0xff, 0xff, 0xff
.byte 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0xff, 0xff
.byte 0x6b, 0x6c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.align 2
.byte 0x03, 0x30
.align 2
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.byte 0xa6, 0xa7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.align 2
.byte 0x03, 0x0f
.align 2
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.byte 0xa8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.byte 0xa9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.align 2
.byte 0x03, 0x39
.align 2
.byte 0xaa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.align 2
.byte 0x03, 0x36
.align 2
.byte 0xae, 0xb0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.byte 0xaf, 0xb1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.align 2
.byte 0x03, 0x3a
.align 2
.byte 0xb2, 0xb3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.align 2
.byte 0x03, 0x3b
.align 2
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.byte 0xb4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.align 2
.byte 0x03, 0x3e
.align 2
.byte 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.byte 0xba, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
gUnknown_8479ED8:: @ 8479ED8
.incbin "baserom.gba", 0x479ED8, 0x14C
.align 2
gUnknown_847A024:: @ 847A024
.incbin "baserom.gba", 0x47A024, 0x50
.byte 0x1d, 0x17, 0x1f, 0x01, 0x01
.align 2
.byte 0x11, 0x11, 0x34, 0x01, 0x01
.align 2
.byte 0x1d, 0x19, 0x4a, 0x01, 0x00
.align 2
.byte 0x20, 0x23, 0x4b, 0x00, 0x01
.align 2
.byte 0x26, 0x2e, 0x4c, 0x00, 0x01
.align 2
.byte 0x11, 0x11, 0x7e, 0x01, 0x01
.align 2
.byte 0x29, 0x2a, 0x7f, 0x00, 0x01
.align 2
.byte 0x1d, 0x19, 0x80, 0x01, 0x00
.align 2
.byte 0x18, 0x36, 0x81, 0x01, 0x00
.align 2
.byte 0x2e, 0x26, 0x82, 0x01, 0x00
.align 2
gUnknown_847A074:: @ 847A074
.incbin "baserom.gba", 0x47A074, 0x1A4
@@ -285,6 +408,7 @@ gUnknown_847A218:: @ 847A218
gUnknown_847A22C:: @ 847A22C
.incbin "baserom.gba", 0x47A22C, 0x4
.align 2
gUnknown_847A230:: @ 847A230
.4byte sub_815DD44
.4byte sub_815DF54
@@ -309,7 +433,14 @@ gUnknown_847A230:: @ 847A230
.4byte sub_815E9C8
gUnknown_847A284:: @ 847A284
.incbin "baserom.gba", 0x47A284, 0x30
.2byte 0x012a, 0x016e, 0x0176
.2byte 0x012b, 0x016f, 0x0177
.2byte 0x012c, 0x0170, 0x0178
.2byte 0x012d, 0x0171, 0x0179
.2byte 0x012e, 0x0172, 0x017a
.2byte 0x012f, 0x0173, 0x017b
.2byte 0x0130, 0x0174, 0x017c
.2byte 0x0131, 0x0175, 0x017d
gUnknown_847A2B4:: @ 847A2B4
.incbin "baserom.gba", 0x47A2B4, 0x1E
+2
View File
@@ -81,6 +81,8 @@ void sub_8055DC4(void);
u8 sav1_map_get_name(void);
void sub_8055D40(u16 mapDataId);
extern u8 gUnknown_2031DD8;
extern u8 gUnknown_2036E28;
+18
View File
@@ -9,6 +9,7 @@
#include "event_data.h"
#include "random.h"
#include "cereader_tool.h"
#include "overworld.h"
struct UnkStruct_8479D34
{
@@ -78,6 +79,7 @@ void sub_815D96C(void);
void sub_815DC8C(void); // setup
void sub_815DD2C(void); // teardown
void sub_815DD44(void);
void sub_815DDB0(void);
void sub_815DEFC(u16 * ecWords, u8 * dest);
void sub_815DF54(void);
void sub_815E068(u8 battleType, u8 facilityClass);
@@ -106,6 +108,7 @@ extern const struct UnkStruct_8479D34 gUnknown_8479D34[15];
extern void (*const gUnknown_847A230[])(void);
extern const struct Unk_203F458_Header gUnknown_84827AC;
extern const struct UnkSubstruct_203F458_000C *const gUnknown_84827B4[][8];
extern const u16 gUnknown_847A284[8][3];
bool32 sub_815D7BC(void * dest, void * buffer)
{
@@ -399,3 +402,18 @@ void sub_815DD2C(void)
Free(gUnknown_203F458);
gUnknown_203F458 = NULL;
}
void sub_815DD44(void)
{
if (gMapHeader.mapDataId - 0x129 > gUnknown_203F458->unk_0004.unk_0000.unk0)
{
gSpecialVar_Result = 3;
sub_8055D40(0x132);
}
else
{
gSpecialVar_Result = gUnknown_203F458->unk_0004.unk_0008[gUnknown_203F458->unk_0000].unk_002;
sub_8055D40(gUnknown_847A284[gUnknown_203F458->unk_0000][gSpecialVar_Result]);
sub_815DDB0();
}
}