diff options
-rw-r--r-- | asm/mevent_8145654.s | 84 | ||||
-rw-r--r-- | data/data_8466FB8.s | 18 | ||||
-rw-r--r-- | include/global.h | 3 | ||||
-rw-r--r-- | src/mevent_8145654.c | 35 |
4 files changed, 33 insertions, 107 deletions
diff --git a/asm/mevent_8145654.s b/asm/mevent_8145654.s index c76fd8260..0d232dcc2 100644 --- a/asm/mevent_8145654.s +++ b/asm/mevent_8145654.s @@ -5,90 +5,6 @@ .text - thumb_func_start sub_8146980 -sub_8146980: @ 8146980 - push {r4-r6,lr} - movs r5, 0 - ldr r4, =gUnknown_203F3CC - ldr r1, [r4] - movs r2, 0xE7 - lsls r2, 1 - adds r0, r1, r2 - adds r1, 0x4 - movs r2, 0x28 - bl memcpy - ldr r0, [r4] - movs r3, 0xFB - lsls r3, 1 - adds r1, r0, r3 - movs r0, 0xFF - strb r0, [r1] - adds r6, r4, 0 -_081469A4: - ldr r2, [r6] - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r4, r1, r5 - adds r0, r4, r2 - ldr r3, =0x000001f7 - adds r0, r3 - adds r1, r2 - adds r1, 0x2C - movs r2, 0x28 - bl memcpy - ldr r0, [r6] - ldr r1, =0x0000021f - adds r0, r1 - adds r0, r4 - movs r1, 0xFF - strb r1, [r0] - cmp r5, 0x7 - bls _081469E8 - ldr r1, [r6] - ldr r2, =0x000001f7 - adds r0, r1, r2 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0xFF - beq _081469E8 - movs r3, 0xE2 - lsls r3, 1 - adds r1, r3 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_081469E8: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x9 - bls _081469A4 - ldr r2, =gUnknown_203F3CC - ldr r1, [r2] - movs r4, 0xE5 - lsls r4, 2 - adds r1, r4 - ldr r0, =gUnknown_8468050 - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - ldr r0, [r0] - str r0, [r1] - ldr r2, [r2] - movs r5, 0xE2 - lsls r5, 1 - adds r0, r2, r5 - ldrh r1, [r0] - movs r3, 0xE7 - lsls r3, 2 - adds r0, r2, r3 - strh r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8146980 - thumb_func_start sub_8146A30 sub_8146A30: @ 8146A30 push {r4-r7,lr} diff --git a/data/data_8466FB8.s b/data/data_8466FB8.s index 389b0d584..276658b7a 100644 --- a/data/data_8466FB8.s +++ b/data/data_8466FB8.s @@ -3,25 +3,7 @@ .section .rodata - .macro window_template bg, left, top, width, height, pal, baseTile - .byte \bg, \left, \top, \width, \height, \pal - .2byte \baseTile - .endm - -gUnknown_8468038:: @ 8468038 - .byte 0x00, 0x02, 0x03 - .byte 0x00, 0x01, 0x02 - .align 2 -gUnknown_8468040:: @ 8468040 - window_template 0x00, 0x01, 0x00, 0x1c, 0x03, 0x0f, 0x0000 - window_template 0x02, 0x01, 0x03, 0x1c, 0x14, 0x0f, 0x0000 - - .align 2 -gUnknown_8468050:: @ 8468050 - .byte 0x02, 0xe8, 0x18, 0x03, 0xe8, 0x98 - .2byte 0x0000, 0x0002, 0x1000, 0x1000, 0x0000 - gUnknown_8468060:: .incbin "baserom.gba", 0x468060, 0x20 diff --git a/include/global.h b/include/global.h index 840c90725..775b3115e 100644 --- a/include/global.h +++ b/include/global.h @@ -600,7 +600,8 @@ struct MEventBuffer_3120_Sub u16 unk_00; u8 unk_02; u8 unk_03; - u8 filler_04[440]; + u8 unk_04[40]; + u8 unk_2C[10][40]; }; struct MEventBuffer_3120 diff --git a/src/mevent_8145654.c b/src/mevent_8145654.c index 443aa0b76..0be18ad8f 100644 --- a/src/mevent_8145654.c +++ b/src/mevent_8145654.c @@ -465,7 +465,9 @@ struct UnkStruct_203F3CC /*01c4*/ u16 unk_01C4; /*01c6*/ u16 unk_01C6; /*01c8*/ u16 unk_01C8[2]; - /*01cc*/ u8 filler_01CC[0x1C8]; + /*01cc*/ u8 filler_01CC[2]; + /*01ce*/ u8 unk_01CE[41]; + /*01f7*/ u8 unk_01F7[10][41]; /*0394*/ struct ScrollIndicatorArrowPairTemplate unk_0394; /*03a4*/ u8 buffer_03A4[0x1000]; }; @@ -476,10 +478,19 @@ void sub_8146980(void); void sub_8146A30(void); void sub_8146B58(void); -extern const struct TextColor gUnknown_8468038[2]; -extern const struct WindowTemplate gUnknown_8468040[2]; +const struct TextColor gUnknown_8468038[] = { + {0, 2, 3}, + {0, 1, 2} +}; +const struct WindowTemplate gUnknown_8468040[] = { + {0, 1, 0, 28, 3, 15, 0x000}, + {2, 1, 3, 28, 20, 15, 0x000} +}; +const struct ScrollIndicatorArrowPairTemplate gUnknown_8468050 = { + 0x02, 0xe8, 0x18, 0x03, 0xe8, 0x98, + 0x0000, 0x0002, 0x1000, 0x1000, 0x0, 0x000 +}; extern const struct UnkStruct_8468720 gUnknown_8468720[8]; -extern const struct ScrollIndicatorArrowPairTemplate gUnknown_8468050; bool32 sub_8146288(const struct MEventBuffer_3120_Sub * a0) { @@ -702,3 +713,19 @@ u8 sub_8146884(u16 input) else return 3; } + +void sub_8146980(void) +{ + u8 i = 0; + memcpy(gUnknown_203F3CC->unk_01CE, gUnknown_203F3CC->unk_0000.unk_04, 40); + gUnknown_203F3CC->unk_01CE[40] = EOS; + for (i = 0; i < 10; ++i) + { + memcpy(gUnknown_203F3CC->unk_01F7[i], gUnknown_203F3CC->unk_0000.unk_2C[i], 40); + gUnknown_203F3CC->unk_01F7[i][40] = EOS; + if (i > 7 && gUnknown_203F3CC->unk_01F7[i][0] != EOS) + ++gUnknown_203F3CC->unk_01C4; + } + gUnknown_203F3CC->unk_0394 = gUnknown_8468050; + gUnknown_203F3CC->unk_0394.unk_08 = gUnknown_203F3CC->unk_01C4; +} |