diff options
-rwxr-xr-x | asm/field_select.s | 2 | ||||
-rwxr-xr-x | asm/high_scores.s | 14 | ||||
-rwxr-xr-x | asm/intro.s | 2 | ||||
-rwxr-xr-x | asm/options.s | 2 | ||||
-rwxr-xr-x | asm/pokedex.s | 2 | ||||
-rwxr-xr-x | asm/rom_11B9C.s | 10 | ||||
-rwxr-xr-x | asm/rom_24C.s | 2 | ||||
-rwxr-xr-x | asm/rom_25A4.s | 2 | ||||
-rwxr-xr-x | asm/rom_2C58.s | 2 | ||||
-rwxr-xr-x | asm/titlescreen.s | 1352 | ||||
-rwxr-xr-x | data/rom.s | 109 | ||||
-rwxr-xr-x | include/m4a.h | 6 | ||||
-rwxr-xr-x | include/main.h | 21 | ||||
-rwxr-xr-x | include/titlescreen.h | 34 | ||||
-rwxr-xr-x | src/main.c | 2 | ||||
-rwxr-xr-x | src/titlescreen.c | 582 | ||||
-rwxr-xr-x | sym_bss.txt | 2 | ||||
-rwxr-xr-x | sym_ewram.txt | 47 |
18 files changed, 810 insertions, 1383 deletions
diff --git a/asm/field_select.s b/asm/field_select.s index 3044199..d5e21d8 100755 --- a/asm/field_select.s +++ b/asm/field_select.s @@ -587,7 +587,7 @@ sub_8F64: @ 0x08008F64 strb r0, [r1] ldr r0, _08008F90 @ =0x02002838 ldrh r0, [r0, #0x16] - bl sub_23C + bl SetMainGameState pop {r0} bx r0 .align 2, 0 diff --git a/asm/high_scores.s b/asm/high_scores.s index bb9fc8b..cf320e2 100755 --- a/asm/high_scores.s +++ b/asm/high_scores.s @@ -127,7 +127,7 @@ sub_CE88: @ 0x0800CE88 str r0, [r4, #4] str r5, [r4, #8] ldr r0, [r4, #8] - ldr r4, _0800CFCC @ =0x0202C588 + ldr r4, _0800CFCC @ =gUnknown_0202C588 movs r1, #0 ldrsh r0, [r4, r1] cmp r0, #0 @@ -171,7 +171,7 @@ _0800CFBC: .4byte 0x80000080 _0800CFC0: .4byte 0x0809DFE0 _0800CFC4: .4byte 0x06010000 _0800CFC8: .4byte 0x80002210 -_0800CFCC: .4byte 0x0202C588 +_0800CFCC: .4byte gUnknown_0202C588 _0800CFD0: .4byte 0x02002858 thumb_func_start sub_CFD4 @@ -269,7 +269,7 @@ _0800D03A: strb r3, [r1] ldr r4, _0800D0D0 @ =0x02002885 strb r3, [r4] - ldr r1, _0800D0D4 @ =0x0202C588 + ldr r1, _0800D0D4 @ =gUnknown_0202C588 movs r4, #0 ldrsh r0, [r1, r4] cmp r0, #1 @@ -302,7 +302,7 @@ _0800D0C4: .4byte 0x0202BEBC _0800D0C8: .4byte 0x0201C18C _0800D0CC: .4byte 0x02002884 _0800D0D0: .4byte 0x02002885 -_0800D0D4: .4byte 0x0202C588 +_0800D0D4: .4byte gUnknown_0202C588 _0800D0D8: .4byte gMain _0800D0DC: .4byte 0x02002882 _0800D0E0: .4byte 0x02002880 @@ -1852,7 +1852,7 @@ sub_DD4C: @ 0x0800DD4C movs r0, #1 strb r0, [r1] movs r0, #1 - bl sub_23C + bl SetMainGameState pop {r0} bx r0 .align 2, 0 @@ -2271,7 +2271,7 @@ sub_E0C4: @ 0x0800E0C4 asrs r0, r0, #0x18 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 - bl sub_23C + bl SetMainGameState pop {r0} bx r0 .align 2, 0 @@ -2592,7 +2592,7 @@ sub_E390: @ 0x0800E390 bl m4aMPlayAllStop bl sub_D10 movs r0, #8 - bl sub_23C + bl SetMainGameState pop {r0} bx r0 diff --git a/asm/intro.s b/asm/intro.s index 1d6e22a..a43d2ae 100755 --- a/asm/intro.s +++ b/asm/intro.s @@ -174,7 +174,7 @@ sub_93D0: @ 0x080093D0 movs r0, #0 strb r0, [r1] movs r0, #1 - bl sub_23C + bl SetMainGameState pop {r0} bx r0 .align 2, 0 diff --git a/asm/options.s b/asm/options.s index a7bb86a..044ad2e 100755 --- a/asm/options.s +++ b/asm/options.s @@ -1278,7 +1278,7 @@ sub_51C60: @ 0x08051C60 movs r0, #1 strb r0, [r1] movs r0, #1 - bl sub_23C + bl SetMainGameState pop {r0} bx r0 .align 2, 0 diff --git a/asm/pokedex.s b/asm/pokedex.s index ff9bfbd..df6f920 100755 --- a/asm/pokedex.s +++ b/asm/pokedex.s @@ -1813,7 +1813,7 @@ sub_4D50: @ 0x08004D50 movs r0, #1 strb r0, [r1] movs r0, #1 - bl sub_23C + bl SetMainGameState pop {r0} bx r0 .align 2, 0 diff --git a/asm/rom_11B9C.s b/asm/rom_11B9C.s index 6aff0d3..7597f34 100755 --- a/asm/rom_11B9C.s +++ b/asm/rom_11B9C.s @@ -14885,7 +14885,7 @@ _080192A4: cmp r0, r1 bhs _080192EC movs r0, #1 - bl sub_23C + bl SetMainGameState b _080192F2 .align 2, 0 _080192E0: .4byte gMain @@ -14893,7 +14893,7 @@ _080192E4: .4byte 0x02031520 _080192E8: .4byte 0x00000141 _080192EC: movs r0, #9 - bl sub_23C + bl SetMainGameState _080192F2: ldr r1, _08019300 @ =gMain movs r0, #0 @@ -113123,7 +113123,7 @@ _0804B23A: cmp r0, #1 bls _0804B258 movs r0, #0xb - bl sub_23C + bl SetMainGameState b _0804B276 .align 2, 0 _0804B250: .4byte gMain @@ -113136,13 +113136,13 @@ _0804B258: beq _0804B270 _0804B262: movs r0, #0 - bl sub_23C + bl SetMainGameState b _0804B276 .align 2, 0 _0804B26C: .4byte 0x00FFFF00 _0804B270: movs r0, #8 - bl sub_23C + bl SetMainGameState _0804B276: pop {r4} pop {r0} diff --git a/asm/rom_24C.s b/asm/rom_24C.s index 27f1457..a58c023 100755 --- a/asm/rom_24C.s +++ b/asm/rom_24C.s @@ -981,7 +981,7 @@ sub_9BC_Main: @ 0x080009BC bl sub_2B4 bl sub_D10 movs r0, #1 - bl sub_23C + bl SetMainGameState b _080009FC .align 2, 0 _080009DC: .4byte gMain diff --git a/asm/rom_25A4.s b/asm/rom_25A4.s index 83eebac..33d7883 100755 --- a/asm/rom_25A4.s +++ b/asm/rom_25A4.s @@ -478,7 +478,7 @@ sub_2990: @ 0x08002990 asrs r0, r0, #0x18 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 - bl sub_23C + bl SetMainGameState pop {r0} bx r0 .align 2, 0 diff --git a/asm/rom_2C58.s b/asm/rom_2C58.s index 8163675..d46aceb 100755 --- a/asm/rom_2C58.s +++ b/asm/rom_2C58.s @@ -1278,7 +1278,7 @@ sub_374C: @ 0x0800374C asrs r0, r0, #0x18 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 - bl sub_23C + bl SetMainGameState pop {r0} bx r0 .align 2, 0 diff --git a/asm/titlescreen.s b/asm/titlescreen.s index 50c88c7..fde0f64 100755 --- a/asm/titlescreen.s +++ b/asm/titlescreen.s @@ -4,1330 +4,6 @@ .text - thumb_func_start sub_10AC0 -sub_10AC0: @ 0x08010AC0 - push {r4, r5, r6, r7, lr} - ldr r1, _08010B28 @ =gUnknown_2002888 - movs r2, #0 - movs r0, #0 - strh r0, [r1, #4] - strh r0, [r1, #2] - strb r2, [r1, #6] - strb r2, [r1, #8] - movs r0, #4 - strb r0, [r1, #0x10] - movs r3, #1 - strb r3, [r1, #9] - strb r2, [r1, #0x11] - movs r0, #6 - strb r0, [r1, #0xa] - strb r2, [r1, #0xc] - movs r0, #3 - strb r0, [r1, #0xe] - strb r2, [r1, #0xb] - strb r2, [r1, #0xd] - strb r2, [r1, #0xf] - ldr r0, _08010B2C @ =0x0202C588 - strh r3, [r0] - ldr r0, _08010B30 @ =0x020028A0 - strb r2, [r0] - ldr r0, _08010B34 @ =0x020028A1 - strb r2, [r0] - ldr r0, _08010B38 @ =0x020028A2 - strb r2, [r0] - ldr r0, _08010B3C @ =0x020028A3 - strb r2, [r0] - ldr r0, _08010B40 @ =gMain - ldr r2, [r0, #0x40] - adds r6, r0, #0 - cmp r2, #1 - bne _08010B58 - ldr r7, _08010B44 @ =0x020028A4 - ldr r5, _08010B48 @ =0x020028A5 - ldr r0, _08010B4C @ =gUnknown_202BE24 - mov ip, r0 - ldr r4, _08010B50 @ =0x086A975C - ldr r3, _08010B54 @ =0x0202BE00 - movs r2, #6 -_08010B16: - ldm r4!, {r0} - stm r3!, {r0} - subs r2, #1 - cmp r2, #0 - bge _08010B16 - movs r0, #1 - strb r0, [r1] - strb r0, [r1, #7] - b _08010B78 - .align 2, 0 -_08010B28: .4byte gUnknown_2002888 -_08010B2C: .4byte 0x0202C588 -_08010B30: .4byte 0x020028A0 -_08010B34: .4byte 0x020028A1 -_08010B38: .4byte 0x020028A2 -_08010B3C: .4byte 0x020028A3 -_08010B40: .4byte gMain -_08010B44: .4byte 0x020028A4 -_08010B48: .4byte 0x020028A5 -_08010B4C: .4byte gUnknown_202BE24 -_08010B50: .4byte 0x086A975C -_08010B54: .4byte 0x0202BE00 -_08010B58: - ldr r7, _08010B94 @ =0x020028A4 - ldr r5, _08010B98 @ =0x020028A5 - ldr r0, _08010B9C @ =gUnknown_202BE24 - mov ip, r0 - ldr r4, _08010BA0 @ =0x086A96F8 - ldr r3, _08010BA4 @ =0x0201C190 - movs r2, #6 -_08010B66: - ldm r4!, {r0} - stm r3!, {r0} - subs r2, #1 - cmp r2, #0 - bge _08010B66 - movs r0, #0 - strb r0, [r1] - strb r0, [r1, #7] - strb r0, [r6, #0xd] -_08010B78: - movs r2, #0 - movs r0, #0 - strh r0, [r1, #0x14] - movs r0, #1 - strh r0, [r1, #0x12] - strb r2, [r7] - ldrh r1, [r6, #0x1c] - movs r0, #0xf - ands r0, r1 - cmp r0, #0xf - bne _08010BA8 - movs r0, #1 - strb r0, [r5] - b _08010BAA - .align 2, 0 -_08010B94: .4byte 0x020028A4 -_08010B98: .4byte 0x020028A5 -_08010B9C: .4byte gUnknown_202BE24 -_08010BA0: .4byte 0x086A96F8 -_08010BA4: .4byte 0x0201C190 -_08010BA8: - strb r2, [r5] -_08010BAA: - movs r0, #0 - mov r1, ip - strb r0, [r1] - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - - thumb_func_start sub_10BB8 -sub_10BB8: @ 0x08010BB8 - push {r4, r5, r6, r7, lr} - ldr r2, _08010BE8 @ =gMain - ldrh r1, [r2, #0x1c] - movs r0, #0xf - ands r0, r1 - adds r7, r2, #0 - cmp r0, #0xf - bne _08010BF8 - ldr r0, _08010BEC @ =0x020028A5 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldr r2, _08010BF0 @ =0x020028A4 - cmp r0, #0 - bne _08010C00 - movs r0, #1 - strb r0, [r2] - ldr r1, _08010BF4 @ =gUnknown_2002888 - movs r0, #9 - strb r0, [r1, #6] - movs r0, #0xb - strb r0, [r7, #3] - b _08010C00 - .align 2, 0 -_08010BE8: .4byte gMain -_08010BEC: .4byte 0x020028A5 -_08010BF0: .4byte 0x020028A4 -_08010BF4: .4byte gUnknown_2002888 -_08010BF8: - ldr r1, _08010CD4 @ =0x020028A5 - movs r0, #0 - strb r0, [r1] - ldr r2, _08010CD8 @ =0x020028A4 -_08010C00: - movs r4, #0 - ldrsb r4, [r2, r4] - cmp r4, #0 - bne _08010CC8 - ldr r2, _08010CDC @ =gUnknown_2002888 - ldrh r0, [r2, #4] - adds r0, #1 - strh r0, [r2, #4] - ldr r3, _08010CE0 @ =0x086A9662 - movs r1, #8 - ldrsb r1, [r2, r1] - adds r1, r1, r3 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - cmp r0, r1 - blt _08010C3A - strh r4, [r2, #4] - ldrb r0, [r2, #8] - adds r0, #1 - strb r0, [r2, #8] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #3 - ble _08010C3A - movs r0, #0 - strb r0, [r2, #8] -_08010C3A: - adds r4, r7, #0 - ldrh r1, [r4, #0x1c] - ldr r0, _08010CE4 @ =0x000003FF - ands r0, r1 - cmp r0, #0 - beq _08010C4A - movs r0, #0 - strh r0, [r2, #0x14] -_08010C4A: - ldrh r1, [r4, #0x18] - movs r0, #9 - ands r0, r1 - cmp r0, #0 - beq _08010C66 - movs r0, #0x65 - bl m4aSongNumStart - ldr r1, _08010CDC @ =gUnknown_2002888 - movs r0, #0 - strh r0, [r1, #4] - strh r0, [r1, #2] - movs r0, #2 - strb r0, [r4, #3] -_08010C66: - bl sub_114FC - bl sub_1157C - ldr r6, _08010CDC @ =gUnknown_2002888 - ldrh r0, [r6, #0x14] - adds r0, #1 - strh r0, [r6, #0x14] - lsls r0, r0, #0x10 - movs r1, #0xe1 - lsls r1, r1, #0x13 - cmp r0, r1 - ble _08010CC8 - movs r1, #0x14 - ldrsh r0, [r6, r1] - movs r1, #0xa - bl __modsi3 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08010CB4 - ldrh r0, [r6, #0x12] - adds r0, #1 - strh r0, [r6, #0x12] - ldr r4, _08010CE8 @ =0x02032EE0 - ldr r5, _08010CEC @ =0x0000FFFF - movs r0, #0x12 - ldrsh r1, [r6, r0] - movs r0, #0x80 - lsls r0, r0, #1 - bl __divsi3 - adds r2, r0, #0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - bl m4aMPlayVolumeControl -_08010CB4: - movs r1, #0x12 - ldrsh r0, [r6, r1] - cmp r0, #9 - ble _08010CC8 - movs r0, #0 - strh r0, [r6, #0x14] - movs r0, #7 - strb r0, [r6, #6] - movs r0, #0xb - strb r0, [r7, #3] -_08010CC8: - bl sub_11640 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08010CD4: .4byte 0x020028A5 -_08010CD8: .4byte 0x020028A4 -_08010CDC: .4byte gUnknown_2002888 -_08010CE0: .4byte 0x086A9662 -_08010CE4: .4byte 0x000003FF -_08010CE8: .4byte 0x02032EE0 -_08010CEC: .4byte 0x0000FFFF - - thumb_func_start sub_10CF0 -sub_10CF0: @ 0x08010CF0 - push {r4, r5, r6, r7, lr} - ldr r6, _08010D70 @ =gMain - ldrh r1, [r6, #0x1c] - movs r0, #0xf - ands r0, r1 - ldr r2, _08010D74 @ =0x020028A4 - cmp r0, #0xf - bne _08010D0E - movs r0, #1 - strb r0, [r2] - ldr r1, _08010D78 @ =gUnknown_2002888 - movs r0, #9 - strb r0, [r1, #6] - movs r0, #0xb - strb r0, [r6, #3] -_08010D0E: - movs r4, #0 - ldrsb r4, [r2, r4] - cmp r4, #0 - bne _08010D66 - ldr r3, _08010D78 @ =gUnknown_2002888 - ldrh r0, [r3, #4] - adds r0, #1 - movs r7, #0 - strh r0, [r3, #4] - ldr r5, _08010D7C @ =0x086A9666 - movs r2, #2 - ldrsh r1, [r3, r2] - lsls r1, r1, #1 - adds r2, r5, #1 - adds r1, r1, r2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - cmp r0, r1 - blt _08010D66 - strh r4, [r3, #4] - movs r1, #2 - ldrsh r0, [r3, r1] - lsls r0, r0, #1 - adds r0, r0, r5 - ldrb r0, [r0] - strb r0, [r3, #8] - ldrh r0, [r3, #2] - adds r0, #1 - strh r0, [r3, #2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #5 - ble _08010D66 - strh r4, [r3, #2] - ldr r0, _08010D80 @ =gUnknown_202BE24 - strb r7, [r0] - strb r7, [r3, #9] - movs r0, #1 - strb r0, [r3, #0xb] - movs r0, #3 - strb r0, [r6, #3] -_08010D66: - bl sub_11640 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08010D70: .4byte gMain -_08010D74: .4byte 0x020028A4 -_08010D78: .4byte gUnknown_2002888 -_08010D7C: .4byte 0x086A9666 -_08010D80: .4byte gUnknown_202BE24 - - thumb_func_start sub_10D84 -sub_10D84: @ 0x08010D84 - push {r4, r5, r6, lr} - ldr r6, _08010DD0 @ =gMain - ldrh r1, [r6, #0x1c] - movs r0, #0xf - ands r0, r1 - ldr r2, _08010DD4 @ =0x020028A4 - cmp r0, #0xf - bne _08010DA2 - movs r0, #1 - strb r0, [r2] - ldr r1, _08010DD8 @ =gUnknown_2002888 - movs r0, #9 - strb r0, [r1, #6] - movs r0, #0xa - strb r0, [r6, #3] -_08010DA2: - movs r5, #0 - ldrsb r5, [r2, r5] - cmp r5, #0 - bne _08010DF2 - ldrh r1, [r6, #0x18] - movs r4, #1 - ands r4, r1 - cmp r4, #0 - beq _08010DDC - movs r0, #0x65 - bl m4aSongNumStart - bl sub_11B74 - bl sub_2B4 - bl m4aMPlayAllStop - bl sub_D10 - strb r5, [r6, #3] - b _08010DF2 - .align 2, 0 -_08010DD0: .4byte gMain -_08010DD4: .4byte 0x020028A4 -_08010DD8: .4byte gUnknown_2002888 -_08010DDC: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08010DF2 - movs r0, #0x66 - bl m4aSongNumStart - ldr r0, _08010DFC @ =gUnknown_2002888 - strb r4, [r0, #0x11] - movs r0, #1 - strb r0, [r6, #3] -_08010DF2: - bl sub_11640 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08010DFC: .4byte gUnknown_2002888 - - thumb_func_start sub_10E00 -sub_10E00: @ 0x08010E00 - push {r4, r5, r6, lr} - ldr r5, _08010E7C @ =gMain - ldrh r1, [r5, #0x1c] - movs r0, #0xf - ands r0, r1 - ldr r2, _08010E80 @ =0x020028A4 - cmp r0, #0xf - bne _08010E1E - movs r0, #1 - strb r0, [r2] - ldr r1, _08010E84 @ =gUnknown_2002888 - movs r0, #9 - strb r0, [r1, #6] - movs r0, #0xb - strb r0, [r5, #3] -_08010E1E: - movs r4, #0 - ldrsb r4, [r2, r4] - cmp r4, #0 - bne _08010EE0 - ldr r3, _08010E84 @ =gUnknown_2002888 - ldrb r0, [r3, #7] - cmp r0, #0 - bne _08010E94 - ldrh r0, [r3, #4] - adds r0, #1 - strh r0, [r3, #4] - ldr r2, _08010E88 @ =0x086A9748 - movs r6, #2 - ldrsh r1, [r3, r6] - adds r1, r1, r2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - cmp r0, r1 - blt _08010E76 - strh r4, [r3, #4] - ldr r2, _08010E8C @ =0x0201C190 - ldr r1, _08010E90 @ =0x086A9714 - movs r6, #2 - ldrsh r0, [r3, r6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r2, #0x18] - ldrh r0, [r3, #2] - adds r0, #1 - strh r0, [r3, #2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xb - ble _08010E76 - strh r4, [r3, #2] - movs r0, #1 - strb r0, [r3, #0xd] - strb r0, [r3, #0xf] - movs r0, #4 - strb r0, [r5, #3] -_08010E76: - bl sub_1175C - b _08010EE0 - .align 2, 0 -_08010E7C: .4byte gMain -_08010E80: .4byte 0x020028A4 -_08010E84: .4byte gUnknown_2002888 -_08010E88: .4byte 0x086A9748 -_08010E8C: .4byte 0x0201C190 -_08010E90: .4byte 0x086A9714 -_08010E94: - ldrh r0, [r3, #4] - adds r0, #1 - strh r0, [r3, #4] - ldr r2, _08010EE8 @ =0x086A9748 - movs r6, #2 - ldrsh r1, [r3, r6] - adds r1, r1, r2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - cmp r0, r1 - blt _08010EDC - strh r4, [r3, #4] - ldr r2, _08010EEC @ =0x0202BE00 - ldr r1, _08010EF0 @ =0x086A9778 - movs r6, #2 - ldrsh r0, [r3, r6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r2, #0x18] - ldrh r0, [r3, #2] - adds r0, #1 - strh r0, [r3, #2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xb - ble _08010EDC - strh r4, [r3, #2] - movs r0, #1 - strb r0, [r3, #0xd] - strb r0, [r3, #0xf] - movs r0, #5 - strb r0, [r5, #3] -_08010EDC: - bl sub_11968 -_08010EE0: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08010EE8: .4byte 0x086A9748 -_08010EEC: .4byte 0x0202BE00 -_08010EF0: .4byte 0x086A9778 - - thumb_func_start sub_10EF4 -sub_10EF4: @ 0x08010EF4 - push {r4, r5, lr} - ldr r3, _08010F94 @ =gMain - ldrh r1, [r3, #0x1c] - movs r0, #0xf - ands r0, r1 - ldr r2, _08010F98 @ =0x020028A4 - cmp r0, #0xf - bne _08010F12 - movs r0, #1 - strb r0, [r2] - ldr r1, _08010F9C @ =gUnknown_2002888 - movs r0, #9 - strb r0, [r1, #6] - movs r0, #0xa - strb r0, [r3, #3] -_08010F12: - movs r4, #0 - ldrsb r4, [r2, r4] - cmp r4, #0 - bne _08011010 - ldr r3, _08010F9C @ =gUnknown_2002888 - ldrh r0, [r3, #4] - adds r0, #1 - strh r0, [r3, #4] - ldr r5, _08010FA0 @ =0x086A9672 - movs r2, #2 - ldrsh r1, [r3, r2] - lsls r1, r1, #1 - adds r2, r5, #1 - adds r1, r1, r2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - cmp r0, r1 - blt _08010F68 - strh r4, [r3, #4] - ldrh r0, [r3, #2] - adds r0, #1 - strh r0, [r3, #2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #6 - ble _08010F4E - strh r4, [r3, #2] -_08010F4E: - movs r1, #2 - ldrsh r0, [r3, r1] - lsls r0, r0, #1 - adds r0, r0, r5 - ldrb r0, [r0] - strb r0, [r3, #0xc] - movs r2, #2 - ldrsh r0, [r3, r2] - lsls r0, r0, #1 - adds r0, r0, r5 - ldrb r0, [r0] - adds r0, #3 - strb r0, [r3, #0xe] -_08010F68: - ldr r0, _08010F94 @ =gMain - ldrh r1, [r0, #0x18] - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0 - beq _08010FA4 - movs r0, #0x67 - bl m4aSongNumStart - ldr r1, _08010F9C @ =gUnknown_2002888 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bge _08010FC4 - movs r0, #3 - strb r0, [r1] - b _08010FC4 - .align 2, 0 -_08010F94: .4byte gMain -_08010F98: .4byte 0x020028A4 -_08010F9C: .4byte gUnknown_2002888 -_08010FA0: .4byte 0x086A9672 -_08010FA4: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08010FC4 - movs r0, #0x67 - bl m4aSongNumStart - ldr r1, _08010FE4 @ =gUnknown_2002888 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #3 - ble _08010FC4 - strb r4, [r1] -_08010FC4: - ldr r5, _08010FE8 @ =gMain - ldrh r1, [r5, #0x18] - movs r4, #9 - ands r4, r1 - cmp r4, #0 - beq _08010FEC - movs r0, #0x65 - bl m4aSongNumStart - ldr r1, _08010FE4 @ =gUnknown_2002888 - movs r0, #0 - strh r0, [r1, #4] - strh r0, [r1, #2] - movs r0, #7 - b _0801100A - .align 2, 0 -_08010FE4: .4byte gUnknown_2002888 -_08010FE8: .4byte gMain -_08010FEC: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0801100C - movs r0, #0x66 - bl m4aSongNumStart - ldr r1, _0801101C @ =gUnknown_2002888 - movs r2, #0 - strh r4, [r1, #4] - movs r0, #0xc - strh r0, [r1, #2] - strb r2, [r1, #0xd] - strb r2, [r1, #0xf] - movs r0, #6 -_0801100A: - strb r0, [r5, #3] -_0801100C: - bl sub_1157C -_08011010: - bl sub_1175C - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0801101C: .4byte gUnknown_2002888 - - thumb_func_start sub_11020 -sub_11020: @ 0x08011020 - push {r4, r5, lr} - ldr r3, _08011088 @ =gMain - ldrh r1, [r3, #0x1c] - movs r0, #0xf - ands r0, r1 - ldr r2, _0801108C @ =0x020028A4 - cmp r0, #0xf - bne _0801103E - movs r0, #1 - strb r0, [r2] - ldr r1, _08011090 @ =gUnknown_2002888 - movs r0, #9 - strb r0, [r1, #6] - movs r0, #0xb - strb r0, [r3, #3] -_0801103E: - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0 - bne _080110DE - ldr r5, _08011090 @ =gUnknown_2002888 - ldrh r1, [r5, #4] - movs r0, #3 - ands r1, r0 - cmp r1, #0 - bne _080110B6 - movs r2, #2 - ldrsh r0, [r5, r2] - cmp r0, #0 - bne _080110A0 - movs r0, #1 - strh r0, [r5, #2] - movs r0, #0 - ldrsb r0, [r5, r0] - lsls r0, r0, #0xb - ldr r4, _08011094 @ =0x060101E0 - adds r0, r0, r4 - ldr r1, _08011098 @ =0x03000000 - movs r2, #8 - movs r3, #2 - bl sub_10708 - ldr r0, _0801109C @ =0x060161E0 - movs r1, #0 - ldrsb r1, [r5, r1] - lsls r1, r1, #0xb - adds r1, r1, r4 - movs r2, #8 - movs r3, #2 - bl sub_10708 - b _080110B6 - .align 2, 0 -_08011088: .4byte gMain -_0801108C: .4byte 0x020028A4 -_08011090: .4byte gUnknown_2002888 -_08011094: .4byte 0x060101E0 -_08011098: .4byte 0x03000000 -_0801109C: .4byte 0x060161E0 -_080110A0: - strh r1, [r5, #2] - ldr r0, _080110E8 @ =0x03000000 - movs r1, #0 - ldrsb r1, [r5, r1] - lsls r1, r1, #0xb - ldr r2, _080110EC @ =0x060101E0 - adds r1, r1, r2 - movs r2, #8 - movs r3, #2 - bl sub_10708 -_080110B6: - ldr r3, _080110F0 @ =gUnknown_2002888 - movs r1, #4 - ldrsh r0, [r3, r1] - cmp r0, #0x14 - ble _080110D8 - ldr r2, _080110F4 @ =gMain - movs r0, #0 - strb r0, [r2, #0xd] - ldr r1, _080110F8 @ =0x086A96A4 - movs r0, #0 - ldrsb r0, [r3, r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strb r0, [r3, #6] - movs r0, #0xa - strb r0, [r2, #3] -_080110D8: - ldrh r0, [r3, #4] - adds r0, #1 - strh r0, [r3, #4] -_080110DE: - bl sub_1175C - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080110E8: .4byte 0x03000000 -_080110EC: .4byte 0x060101E0 -_080110F0: .4byte gUnknown_2002888 -_080110F4: .4byte gMain -_080110F8: .4byte 0x086A96A4 - - thumb_func_start sub_110FC -sub_110FC: @ 0x080110FC - push {r4, r5, lr} - ldr r3, _0801119C @ =gMain - ldrh r1, [r3, #0x1c] - movs r0, #0xf - ands r0, r1 - ldr r2, _080111A0 @ =0x020028A4 - cmp r0, #0xf - bne _0801111A - movs r0, #1 - strb r0, [r2] - ldr r1, _080111A4 @ =gUnknown_2002888 - movs r0, #9 - strb r0, [r1, #6] - movs r0, #0xa - strb r0, [r3, #3] -_0801111A: - movs r4, #0 - ldrsb r4, [r2, r4] - cmp r4, #0 - bne _08011218 - ldr r3, _080111A4 @ =gUnknown_2002888 - ldrh r0, [r3, #4] - adds r0, #1 - strh r0, [r3, #4] - ldr r5, _080111A8 @ =0x086A9672 - movs r2, #2 - ldrsh r1, [r3, r2] - lsls r1, r1, #1 - adds r2, r5, #1 - adds r1, r1, r2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - cmp r0, r1 - blt _08011170 - strh r4, [r3, #4] - ldrh r0, [r3, #2] - adds r0, #1 - strh r0, [r3, #2] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #6 - ble _08011156 - strh r4, [r3, #2] -_08011156: - movs r1, #2 - ldrsh r0, [r3, r1] - lsls r0, r0, #1 - adds r0, r0, r5 - ldrb r0, [r0] - strb r0, [r3, #0xc] - movs r2, #2 - ldrsh r0, [r3, r2] - lsls r0, r0, #1 - adds r0, r0, r5 - ldrb r0, [r0] - adds r0, #3 - strb r0, [r3, #0xe] -_08011170: - ldr r0, _0801119C @ =gMain - ldrh r1, [r0, #0x18] - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0 - beq _080111AC - movs r0, #0x67 - bl m4aSongNumStart - ldr r1, _080111A4 @ =gUnknown_2002888 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bge _080111CC - movs r0, #4 - strb r0, [r1] - b _080111CC - .align 2, 0 -_0801119C: .4byte gMain -_080111A0: .4byte 0x020028A4 -_080111A4: .4byte gUnknown_2002888 -_080111A8: .4byte 0x086A9672 -_080111AC: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080111CC - movs r0, #0x67 - bl m4aSongNumStart - ldr r1, _080111EC @ =gUnknown_2002888 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #4 - ble _080111CC - strb r4, [r1] -_080111CC: - ldr r5, _080111F0 @ =gMain - ldrh r1, [r5, #0x18] - movs r4, #9 - ands r4, r1 - cmp r4, #0 - beq _080111F4 - movs r0, #0x65 - bl m4aSongNumStart - ldr r1, _080111EC @ =gUnknown_2002888 - movs r0, #0 - strh r0, [r1, #4] - strh r0, [r1, #2] - movs r0, #8 - b _08011212 - .align 2, 0 -_080111EC: .4byte gUnknown_2002888 -_080111F0: .4byte gMain -_080111F4: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08011214 - movs r0, #0x66 - bl m4aSongNumStart - ldr r1, _08011224 @ =gUnknown_2002888 - movs r2, #0 - strh r4, [r1, #4] - movs r0, #0xc - strh r0, [r1, #2] - strb r2, [r1, #0xd] - strb r2, [r1, #0xf] - movs r0, #6 -_08011212: - strb r0, [r5, #3] -_08011214: - bl sub_1157C -_08011218: - bl sub_11968 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08011224: .4byte gUnknown_2002888 - - thumb_func_start sub_11228 -sub_11228: @ 0x08011228 - push {r4, r5, lr} - ldr r3, _08011290 @ =gMain - ldrh r1, [r3, #0x1c] - movs r0, #0xf - ands r0, r1 - ldr r2, _08011294 @ =0x020028A4 - cmp r0, #0xf - bne _08011246 - movs r0, #1 - strb r0, [r2] - ldr r1, _08011298 @ =gUnknown_2002888 - movs r0, #9 - strb r0, [r1, #6] - movs r0, #0xb - strb r0, [r3, #3] -_08011246: - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0 - bne _0801130C - ldr r5, _08011298 @ =gUnknown_2002888 - ldrh r1, [r5, #4] - movs r0, #3 - ands r1, r0 - cmp r1, #0 - bne _080112BE - movs r2, #2 - ldrsh r0, [r5, r2] - cmp r0, #0 - bne _080112A8 - movs r0, #1 - strh r0, [r5, #2] - movs r0, #0 - ldrsb r0, [r5, r0] - lsls r0, r0, #0xb - ldr r4, _0801129C @ =0x060101E0 - adds r0, r0, r4 - ldr r1, _080112A0 @ =0x03000000 - movs r2, #8 - movs r3, #2 - bl sub_10708 - ldr r0, _080112A4 @ =0x060161E0 - movs r1, #0 - ldrsb r1, [r5, r1] - lsls r1, r1, #0xb - adds r1, r1, r4 - movs r2, #8 - movs r3, #2 - bl sub_10708 - b _080112BE - .align 2, 0 -_08011290: .4byte gMain -_08011294: .4byte 0x020028A4 -_08011298: .4byte gUnknown_2002888 -_0801129C: .4byte 0x060101E0 -_080112A0: .4byte 0x03000000 -_080112A4: .4byte 0x060161E0 -_080112A8: - strh r1, [r5, #2] - ldr r0, _080112DC @ =0x03000000 - movs r1, #0 - ldrsb r1, [r5, r1] - lsls r1, r1, #0xb - ldr r2, _080112E0 @ =0x060101E0 - adds r1, r1, r2 - movs r2, #8 - movs r3, #2 - bl sub_10708 -_080112BE: - ldr r0, _080112E4 @ =gUnknown_2002888 - movs r2, #4 - ldrsh r1, [r0, r2] - adds r3, r0, #0 - cmp r1, #0x14 - ble _08011306 - movs r2, #0 - ldrsb r2, [r3, r2] - cmp r2, #1 - bne _080112EC - ldr r0, _080112E8 @ =gMain - strb r2, [r0, #0xd] - adds r2, r0, #0 - b _080112F4 - .align 2, 0 -_080112DC: .4byte 0x03000000 -_080112E0: .4byte 0x060101E0 -_080112E4: .4byte gUnknown_2002888 -_080112E8: .4byte gMain -_080112EC: - ldr r1, _08011318 @ =gMain - movs r0, #0 - strb r0, [r1, #0xd] - adds r2, r1, #0 -_080112F4: - ldr r1, _0801131C @ =0x086A96D4 - movs r0, #0 - ldrsb r0, [r3, r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strb r0, [r3, #6] - movs r0, #0xa - strb r0, [r2, #3] -_08011306: - ldrh r0, [r3, #4] - adds r0, #1 - strh r0, [r3, #4] -_0801130C: - bl sub_11968 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_08011318: .4byte gMain -_0801131C: .4byte 0x086A96D4 - - thumb_func_start sub_11320 -sub_11320: @ 0x08011320 - push {r4, r5, r6, r7, lr} - ldr r5, _080113A4 @ =gMain - ldrh r1, [r5, #0x1c] - movs r0, #0xf - ands r0, r1 - ldr r2, _080113A8 @ =0x020028A4 - cmp r0, #0xf - bne _0801133E - movs r0, #1 - strb r0, [r2] - ldr r1, _080113AC @ =gUnknown_2002888 - movs r0, #9 - strb r0, [r1, #6] - movs r0, #0xb - strb r0, [r5, #3] -_0801133E: - movs r4, #0 - ldrsb r4, [r2, r4] - cmp r4, #0 - bne _08011410 - ldr r3, _080113AC @ =gUnknown_2002888 - ldrb r0, [r3, #7] - cmp r0, #0 - bne _080113C0 - ldrh r0, [r3, #4] - adds r0, #1 - movs r6, #0 - strh r0, [r3, #4] - ldr r2, _080113B0 @ =0x086A9748 - movs r7, #2 - ldrsh r1, [r3, r7] - adds r1, r1, r2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - cmp r0, r1 - blt _0801139C - strh r4, [r3, #4] - ldrh r0, [r3, #2] - subs r0, #1 - strh r0, [r3, #2] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _0801138C - strh r4, [r3, #2] - strb r6, [r3] - ldr r0, _080113B4 @ =gUnknown_202BE24 - movs r1, #1 - strb r1, [r0] - movs r0, #1 - strb r0, [r3, #9] - strb r6, [r3, #0xb] - strb r0, [r5, #3] -_0801138C: - ldr r2, _080113B8 @ =0x0201C190 - ldr r1, _080113BC @ =0x086A9714 - movs r4, #2 - ldrsh r0, [r3, r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r2, #0x18] -_0801139C: - bl sub_1175C - b _08011410 - .align 2, 0 -_080113A4: .4byte gMain -_080113A8: .4byte 0x020028A4 -_080113AC: .4byte gUnknown_2002888 -_080113B0: .4byte 0x086A9748 -_080113B4: .4byte gUnknown_202BE24 -_080113B8: .4byte 0x0201C190 -_080113BC: .4byte 0x086A9714 -_080113C0: - ldrh r0, [r3, #4] - adds r0, #1 - strh r0, [r3, #4] - ldr r2, _08011418 @ =0x086A9748 - movs r6, #2 - ldrsh r1, [r3, r6] - adds r1, r1, r2 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - cmp r0, r1 - blt _0801140C - strh r4, [r3, #4] - ldrh r0, [r3, #2] - subs r0, #1 - strh r0, [r3, #2] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _080113FC - strh r4, [r3, #2] - movs r0, #1 - strb r0, [r3] - ldr r1, _0801141C @ =gUnknown_202BE24 - strb r0, [r1] - strb r0, [r3, #9] - movs r1, #0 - strb r1, [r3, #0xb] - strb r0, [r5, #3] -_080113FC: - ldr r2, _08011420 @ =0x0202BE00 - ldr r1, _08011424 @ =0x086A9778 - movs r7, #2 - ldrsh r0, [r3, r7] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r2, #0x18] -_0801140C: - bl sub_11968 -_08011410: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08011418: .4byte 0x086A9748 -_0801141C: .4byte gUnknown_202BE24 -_08011420: .4byte 0x0202BE00 -_08011424: .4byte 0x086A9778 - - thumb_func_start sub_11428 -sub_11428: @ 0x08011428 - push {lr} - ldr r0, _0801143C @ =gUnknown_2002888 - ldrb r0, [r0, #7] - cmp r0, #0 - bne _08011444 - ldr r0, _08011440 @ =sub_1175C + 1 - bl sub_FE04 - b _0801144A - .align 2, 0 -_0801143C: .4byte gUnknown_2002888 -_08011440: .4byte sub_1175C + 1 -_08011444: - ldr r0, _08011470 @ =sub_11968 + 1 - bl sub_FE04 -_0801144A: - bl m4aMPlayAllStop - bl sub_D10 - ldr r1, _08011474 @ =0x086A964C - ldr r0, _08011478 @ =gUnknown_2002888 - ldrb r0, [r0, #6] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #1 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #8 - bne _08011480 - ldr r1, _0801147C @ =0x0202C588 - movs r0, #0 - b _08011484 - .align 2, 0 -_08011470: .4byte sub_11968 + 1 -_08011474: .4byte 0x086A964C -_08011478: .4byte gUnknown_2002888 -_0801147C: .4byte 0x0202C588 -_08011480: - ldr r1, _080114A4 @ =0x0202C588 - movs r0, #1 -_08011484: - strh r0, [r1] - ldr r1, _080114A8 @ =gAutoDisplayTitlescreenMenu - movs r0, #0 - strb r0, [r1] - ldr r1, _080114AC @ =0x086A964C - ldr r0, _080114B0 @ =gUnknown_2002888 - ldrb r0, [r0, #6] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - bl sub_23C - pop {r0} - bx r0 - .align 2, 0 -_080114A4: .4byte 0x0202C588 -_080114A8: .4byte gAutoDisplayTitlescreenMenu -_080114AC: .4byte 0x086A964C -_080114B0: .4byte gUnknown_2002888 - - thumb_func_start sub_114B4 -sub_114B4: @ 0x080114B4 - push {lr} - ldr r0, _080114E8 @ =sub_11640 + 1 - bl sub_FE04 - bl m4aMPlayAllStop - bl sub_D10 - ldr r1, _080114EC @ =0x0202C588 - movs r0, #1 - strh r0, [r1] - ldr r1, _080114F0 @ =gAutoDisplayTitlescreenMenu - movs r0, #0 - strb r0, [r1] - ldr r1, _080114F4 @ =0x086A964C - ldr r0, _080114F8 @ =gUnknown_2002888 - ldrb r0, [r0, #6] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - bl sub_23C - pop {r0} - bx r0 - .align 2, 0 -_080114E8: .4byte sub_11640 + 1 -_080114EC: .4byte 0x0202C588 -_080114F0: .4byte gAutoDisplayTitlescreenMenu -_080114F4: .4byte 0x086A964C -_080114F8: .4byte gUnknown_2002888 - - thumb_func_start sub_114FC -sub_114FC: @ 0x080114FC - push {r4, lr} - ldr r4, _0801156C @ =gMain - ldrh r2, [r4, #0x1c] - movs r1, #0x88 - lsls r1, r1, #2 - adds r0, r1, #0 - ands r0, r2 - cmp r0, r1 - bne _08011546 - ldrh r1, [r4, #0x18] - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08011546 - ldr r2, _08011570 @ =0x020028A1 - movs r0, #0x28 - strb r0, [r2] - ldr r1, _08011574 @ =0x020028A0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #3 - bne _08011546 - movs r0, #0 - strb r0, [r1] - strb r0, [r2] - movs r0, #0x68 - bl m4aSongNumStart - ldr r1, _08011578 @ =gUnknown_2002888 - movs r0, #1 - strb r0, [r1, #0x11] - movs r0, #9 - strb r0, [r4, #3] -_08011546: - ldr r2, _08011570 @ =0x020028A1 - ldrb r1, [r2] - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0 - ble _08011564 - subs r0, r1, #1 - strb r0, [r2] - lsls r0, r0, #0x18 - cmp r0, #0 - bgt _08011564 - movs r1, #0 - strb r1, [r2] - ldr r0, _08011574 @ =0x020028A0 - strb r1, [r0] -_08011564: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801156C: .4byte gMain -_08011570: .4byte 0x020028A1 -_08011574: .4byte 0x020028A0 -_08011578: .4byte gUnknown_2002888 - thumb_func_start sub_1157C sub_1157C: @ 0x0801157C push {r4, r5, r6, r7, lr} @@ -1372,7 +48,7 @@ sub_1157C: @ 0x0801157C strb r0, [r7] movs r0, #0x65 bl m4aSongNumStart - ldr r1, _080115F4 @ =gUnknown_2002888 + ldr r1, _080115F4 @ =gTitlescreen movs r0, #5 strb r0, [r1, #6] ldrb r0, [r4, #3] @@ -1385,7 +61,7 @@ _080115E4: .4byte 0x086A97AC _080115E8: .4byte 0x020028A2 _080115EC: .4byte gMain _080115F0: .4byte 0x020028A3 -_080115F4: .4byte gUnknown_2002888 +_080115F4: .4byte gTitlescreen _080115F8: movs r0, #0xa _080115FA: @@ -1432,7 +108,7 @@ sub_11640: @ 0x08011640 mov r7, sb mov r6, r8 push {r6, r7} - ldr r4, _08011744 @ =gUnknown_2002888 + ldr r4, _08011744 @ =gTitlescreen movs r0, #8 ldrsb r0, [r4, r0] movs r1, #0xb8 @@ -1561,7 +237,7 @@ _08011730: pop {r0} bx r0 .align 2, 0 -_08011744: .4byte gUnknown_2002888 +_08011744: .4byte gTitlescreen _08011748: .4byte 0x0200B3B8 _0801174C: .4byte 0x086A96E4 _08011750: .4byte 0x03005000 @@ -1590,7 +266,7 @@ sub_1175C: @ 0x0801175C adds r1, #2 ldrh r0, [r2, #0x3a] strh r0, [r1] - ldr r3, _0801181C @ =gUnknown_2002888 + ldr r3, _0801181C @ =gTitlescreen movs r0, #0xa ldrsb r0, [r3, r0] movs r1, #0xb8 @@ -1663,7 +339,7 @@ _080117F2: _08011810: .4byte gMain _08011814: .4byte 0x00000808 _08011818: .4byte 0x04000050 -_0801181C: .4byte gUnknown_2002888 +_0801181C: .4byte gTitlescreen _08011820: .4byte 0x0201C190 _08011824: .4byte 0x03005000 _08011828: @@ -1716,7 +392,7 @@ _0801187C: cmp r0, #1 bne _080118D8 ldr r2, _08011958 @ =0x086A9684 - ldr r1, _0801195C @ =gUnknown_2002888 + ldr r1, _0801195C @ =gTitlescreen movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #2 @@ -1763,7 +439,7 @@ _080118D8: cmp r0, #1 bne _08011930 ldr r2, _08011964 @ =0x086A9694 - ldr r1, _0801195C @ =gUnknown_2002888 + ldr r1, _0801195C @ =gTitlescreen movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #2 @@ -1822,7 +498,7 @@ _08011930: _08011950: .4byte 0x000001FF _08011954: .4byte 0xFFFFFE00 _08011958: .4byte 0x086A9684 -_0801195C: .4byte gUnknown_2002888 +_0801195C: .4byte gTitlescreen _08011960: .4byte 0x03005000 _08011964: .4byte 0x086A9694 @@ -1848,7 +524,7 @@ sub_11968: @ 0x08011968 adds r1, #2 ldrh r0, [r2, #0x3a] strh r0, [r1] - ldr r3, _08011A28 @ =gUnknown_2002888 + ldr r3, _08011A28 @ =gTitlescreen movs r0, #0xa ldrsb r0, [r3, r0] movs r1, #0xb8 @@ -1921,7 +597,7 @@ _080119FE: _08011A1C: .4byte gMain _08011A20: .4byte 0x00000808 _08011A24: .4byte 0x04000050 -_08011A28: .4byte gUnknown_2002888 +_08011A28: .4byte gTitlescreen _08011A2C: .4byte 0x0202BE00 _08011A30: .4byte 0x03005000 _08011A34: @@ -1974,7 +650,7 @@ _08011A88: cmp r0, #1 bne _08011AE4 ldr r2, _08011B64 @ =0x086A96AC - ldr r1, _08011B68 @ =gUnknown_2002888 + ldr r1, _08011B68 @ =gTitlescreen movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #2 @@ -2021,7 +697,7 @@ _08011AE4: cmp r0, #1 bne _08011B3C ldr r2, _08011B70 @ =0x086A96C0 - ldr r1, _08011B68 @ =gUnknown_2002888 + ldr r1, _08011B68 @ =gTitlescreen movs r0, #0 ldrsb r0, [r1, r0] lsls r0, r0, #2 @@ -2080,7 +756,7 @@ _08011B3C: _08011B5C: .4byte 0x000001FF _08011B60: .4byte 0xFFFFFE00 _08011B64: .4byte 0x086A96AC -_08011B68: .4byte gUnknown_2002888 +_08011B68: .4byte gTitlescreen _08011B6C: .4byte 0x03005000 _08011B70: .4byte 0x086A96C0 @@ -85,7 +85,114 @@ gMainFuncs:: @ 0x086A4AD8 .4byte FieldSelectMain .4byte sub_25A4_Main -.incbin "baserom.gba", 0x6A4B08, 0x6B159C - 0x6A4B08 +.incbin "baserom.gba", 0x6A4B08, 0x6A964C - 0x6A4B08 + +gUnknown_086A964C:: @ 0x086A964C + .2byte 0x0002 + .2byte 0x000A + .2byte 0x0005 + .2byte 0x0004 + .2byte 0x0008 + .2byte 0x0007 + .2byte 0x0001 + .2byte 0x0003 + .2byte 0x0009 + .2byte 0x0000 + .2byte 0x000B + +gUnknown_086A9662:: @ 0x086A9662 + .byte 0x14, 0x05, 0x14, 0x05 + +gUnknown_086A9666:: @ 0x086A9666 + .byte 0x01, 0x05 + .byte 0x03, 0x05 + .byte 0x01, 0x05 + .byte 0x03, 0x05 + .byte 0x01, 0x05 + .byte 0x03, 0x05 + +gUnknown_086A9672:: @ 0x086A9672 + .byte 0x00, 0x10 + .byte 0x01, 0x04 + .byte 0x02, 0x10 + .byte 0x01, 0x04 + .byte 0x00, 0x10 + .byte 0x01, 0x04 + .byte 0x02, 0x10 + .byte 0x01, 0x04 + .byte 0x00, 0x00 + +.incbin "baserom.gba", 0x6A9684, 0x6A96A4 - 0x6A9684 + +gUnknown_086A96A4:: @ 0x086A96A4 + .2byte 0x0001 + .2byte 0x0002 + .2byte 0x0003 + .2byte 0x0004 + +.incbin "baserom.gba", 0x6A96AC, 0x6A96D4 - 0x6A96AC + +gUnknown_086A96D4:: @ 0x086A96D4 + .2byte 0x0001 + .2byte 0x0000 + .2byte 0x0002 + .2byte 0x0003 + .2byte 0x0004 + +.incbin "baserom.gba", 0x6A96DE, 0x6A96F8 - 0x6A96DE + +gUnknown_086A96F8:: @ 0x086A96F8 + .4byte 0x086A8AC0 + .4byte 0x086A8ACA + .4byte 0x086A8AD4 + .4byte 0x086A8ADE + .4byte 0x086A8AE8 + .4byte 0x086A8AF2 + .4byte 0x086A80A8 + +gUnknown_086A9714:: @ 0x086A9714 + .4byte 0x086A80A8 + .4byte 0x086A8122 + .4byte 0x086A81B4 + .4byte 0x086A823E + .4byte 0x086A8308 + .4byte 0x086A83E2 + .4byte 0x086A84CC + .4byte 0x086A85C6 + .4byte 0x086A86C8 + .4byte 0x086A87BA + .4byte 0x086A88B4 + .4byte 0x086A89AE + .4byte 0x00000000 + +gUnknown_086A9748:: @ 0x086A9748 + .byte 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0 + +gUnknown_086A975C:: @ 0x086A975C + .4byte 0x086A95FE + .4byte 0x086A9608 + .4byte 0x086A9612 + .4byte 0x086A961C + .4byte 0x086A9626 + .4byte 0x086A9630 + .4byte 0x086A8BB6 + +gUnknown_086A9778:: @ 0x086A9778 + .4byte 0x086A8BB6 + .4byte 0x086A8C30 + .4byte 0x086A8CC2 + .4byte 0x086A8D4C + .4byte 0x086A8E16 + .4byte 0x086A8EF0 + .4byte 0x086A8FDA + .4byte 0x086A90D4 + .4byte 0x086A91DE + .4byte 0x086A92E8 + .4byte 0x086A93EA + .4byte 0x086A94F4 + .4byte 0x00000000 + +.incbin "baserom.gba", 0x6A97AC, 0x6B159C - 0x6A97AC gMonHatchSpriteGroupPals:: @ 0x086B159C .4byte gMonHatchSpriteGroup0_Pals diff --git a/include/m4a.h b/include/m4a.h index 5953794..1a68f8c 100755 --- a/include/m4a.h +++ b/include/m4a.h @@ -12,15 +12,13 @@ void m4aSongNumStart(u16); void m4aSongNumStop(u16 n); void m4aMPlayAllStop(void); void m4aMPlayContinue(struct MusicPlayerInfo *mplayInfo); +void m4aMPlayVolumeControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 volume); void m4aMPlayFadeOut(struct MusicPlayerInfo *mplayInfo, u16 speed); void m4aMPlayFadeOutTemporarily(struct MusicPlayerInfo *mplayInfo, u16 speed); void m4aMPlayFadeIn(struct MusicPlayerInfo *mplayInfo, u16 speed); void m4aMPlayImmInit(struct MusicPlayerInfo *mplayInfo); -extern struct MusicPlayerInfo gMPlayInfo_BGM; -extern struct MusicPlayerInfo gMPlayInfo_SE1; -extern struct MusicPlayerInfo gMPlayInfo_SE2; -extern struct MusicPlayerInfo gMPlayInfo_SE3; +extern struct MusicPlayerInfo gMPlayInfo_02032EE0; extern struct SoundInfo gSoundInfo; #endif //GUARD_M4A_H diff --git a/include/main.h b/include/main.h index 6cc29c5..0d4de6f 100755 --- a/include/main.h +++ b/include/main.h @@ -7,16 +7,23 @@ typedef void (*StateFunc)(void); struct Main { - /*0x00*/u8 filler0[0x2]; - /*0x02*/u8 mainState; - /*0x03*/u8 subState; - /*0x04*/u8 filler4[0x12]; - /*0x16*/u16 unk16; - /*0x18*/u8 filler18[0x28]; - /*0x40*/int unk40; + /*0x00*/ u8 filler0[0x2]; + /*0x02*/ u8 mainState; + /*0x03*/ u8 subState; + /*0x04*/ u8 filler4[0x9]; + /*0x0D*/ u8 unkD; + /*0x0E*/ u8 fillerE[0x8]; + /*0x16*/ u16 unk16; + /*0x18*/ u16 newKeys; + /*0x1A*/ u16 releasedKeys; + /*0x1C*/ u16 heldKeys; + /*0x1E*/ u8 filler1E[0x22]; + /*0x40*/ int unk40; }; extern struct Main gMain; extern StateFunc gMainFuncs[]; +void SetMainGameState(u16); + #endif // GUARD_MAIN_H diff --git a/include/titlescreen.h b/include/titlescreen.h index 0fcbe8d..65d790e 100755 --- a/include/titlescreen.h +++ b/include/titlescreen.h @@ -1,16 +1,38 @@ #ifndef GUARD_TITLESCREEN_H #define GUARD_TITLESCREEN_H -struct UnkStruct2002888 +struct TitlescreenStruct { - /*0x00*/u8 filler0[0x9]; - /*0x09*/u8 unk9; - /*0x0A*/u8 fillerA[0x1]; - /*0x0B*/u8 unkB; + /*0x00*/ s8 menuCursorIndex; + /*0x02*/ s16 unk2; + /*0x04*/ s16 unk4; + /*0x06*/ s8 unk6; + /*0x07*/ u8 unk7; + /*0x08*/ s8 unk8; + /*0x09*/ u8 unk9; + /*0x0A*/ u8 unkA; + /*0x0B*/ u8 unkB; + /*0x0C*/ u8 unkC; + /*0x0D*/ u8 unkD; + /*0x0E*/ u8 unkE; + /*0x0F*/ u8 unkF; + /*0x10*/ u8 unk10; + /*0x11*/ u8 unk11; + /*0x12*/ s16 idleFadeoutCounter; + /*0x14*/ s16 idleFramesCounter; }; -extern struct UnkStruct2002888 gUnknown_2002888; +extern struct TitlescreenStruct gTitlescreen; extern s8 gAutoDisplayTitlescreenMenu; extern u8 gUnknown_202BE24; +extern u16 gUnknown_0202C588; +extern s8 gUnknown_020028A0; +extern s8 gUnknown_020028A1; +extern u8 gUnknown_020028A2; +extern u8 gUnknown_020028A3; +extern s8 gUnknown_020028A4; +extern s8 gUnknown_020028A5; +extern const u8 *gUnknown_0201C190[]; +extern const u8 *gUnknown_0202BE00[]; #endif // GUARD_TITLESCREEN_H @@ -1,7 +1,7 @@ #include "global.h" #include "main.h" -void sub_23C(u8 mainState) +void SetMainGameState(u16 mainState) { gMain.mainState = mainState; gMain.subState = 0; diff --git a/src/titlescreen.c b/src/titlescreen.c index 9de231d..c3e51a1 100755 --- a/src/titlescreen.c +++ b/src/titlescreen.c @@ -3,6 +3,9 @@ #include "m4a.h" #include "main.h" +extern u8 gUnknown_03000000[]; + + extern StateFunc gTitlescreenStateFuncs[]; extern const u8 gTitlescreenBg_Gfx[]; extern const u16 gTitlescreenBg_Pals[]; @@ -12,14 +15,39 @@ extern const u8 gTitlescreenSpritesSavedGame_Gfx[]; extern const u8 gTitlescreenSpritesNoSavedGame_Gfx[]; extern const u8 gGBAButtonIcons_Pals[]; extern const u8 gOptionsSprites_Gfx[]; +extern const u8 *const gUnknown_086A975C[7]; +extern const u8 *const gUnknown_086A96F8[7]; +extern const s16 gUnknown_086A964C[]; +extern const s8 gUnknown_086A9662[]; +extern const s8 gUnknown_086A9666[6][2]; +extern const s8 gUnknown_086A9748[]; +extern const u8 *const gUnknown_086A9714[]; +extern const u8 *const gUnknown_086A9778[]; +extern const s8 gUnknown_086A9672[9][2]; +extern const u16 gUnknown_086A96A4[]; +extern const u16 gUnknown_086A96D4[]; +extern void sub_2B4(void); extern void sub_438(void); extern void sub_CBC(void); +extern void sub_D10(void); +extern void sub_FE04(void (*func)(void)); extern void sub_FD5C(void (*func)(void)); +extern void sub_10708(void*, void*, u16, s16); extern void sub_11640(void); extern void sub_52C44(void); extern void sub_10AC0(void); +extern void sub_1157C(void); +extern void sub_1175C(void); +extern void sub_11968(void); +extern void sub_11B74(void); + +static void sub_114FC(void); + +// If the user doesn't press any buttons at the title screen, +// it will transition to a demo gameplay experience. +#define NUM_IDLE_FRAMES 1800 void TitlescreenMain(void) @@ -63,8 +91,8 @@ void LoadTitlescreenGraphics(void) if (autoDisplayMenu == 1) { gUnknown_202BE24 = 0; - gUnknown_2002888.unk9 = 0; - gUnknown_2002888.unkB = autoDisplayMenu; + gTitlescreen.unk9 = 0; + gTitlescreen.unkB = autoDisplayMenu; gMain.subState = 3; sub_CBC(); sub_FD5C(NULL); @@ -78,3 +106,553 @@ void LoadTitlescreenGraphics(void) m4aSongNumStart(1); } + +void sub_10AC0(void) +{ + int i; + + gTitlescreen.unk4 = 0; + gTitlescreen.unk2 = 0; + gTitlescreen.unk6 = 0; + gTitlescreen.unk8 = 0; + gTitlescreen.unk10 = 4; + gTitlescreen.unk9 = 1; + gTitlescreen.unk11 = 0; + gTitlescreen.unkA = 6; + gTitlescreen.unkC = 0; + gTitlescreen.unkE = 3; + gTitlescreen.unkB = 0; + gTitlescreen.unkD = 0; + gTitlescreen.unkF = 0; + gUnknown_0202C588 = 1; + gUnknown_020028A0 = 0; + gUnknown_020028A1 = 0; + gUnknown_020028A2 = 0; + gUnknown_020028A3 = 0; + + if (gMain.unk40 == 1) + { + for (i = 0; i < 7; i++) + gUnknown_0202BE00[i] = gUnknown_086A975C[i]; + + gTitlescreen.menuCursorIndex = 1; + gTitlescreen.unk7 = 1; + } + else + { + for (i = 0; i < 7; i++) + gUnknown_0201C190[i] = gUnknown_086A96F8[i]; + + gTitlescreen.menuCursorIndex = 0; + gTitlescreen.unk7 = 0; + gMain.unkD = 0; + } + + gTitlescreen.idleFramesCounter = 0; + gTitlescreen.idleFadeoutCounter = 1; + gUnknown_020028A4 = 0; + if ((gMain.heldKeys & (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON)) + == (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON)) + gUnknown_020028A5 = 1; + else + gUnknown_020028A5 = 0; + + gUnknown_202BE24 = 0; +} + +void sub_10BB8(void) +{ + if ((gMain.heldKeys & (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON)) + == (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON)) + { + if (!gUnknown_020028A5) + { + gUnknown_020028A4 = 1; + gTitlescreen.unk6 = 9; + gMain.subState = 11; + } + } + else + { + gUnknown_020028A5 = 0; + } + + if (!gUnknown_020028A4) + { + gTitlescreen.unk4++; + if (gTitlescreen.unk4 >= gUnknown_086A9662[gTitlescreen.unk8]) + { + gTitlescreen.unk4 = 0; + if (++gTitlescreen.unk8 > 3) + gTitlescreen.unk8 = 0; + } + + if (gMain.heldKeys & KEYS_MASK) + gTitlescreen.idleFramesCounter = 0; + + if (gMain.newKeys & (A_BUTTON | START_BUTTON)) + { + m4aSongNumStart(0x65); + gTitlescreen.unk4 = 0; + gTitlescreen.unk2 = 0; + gMain.subState = 2; + } + + sub_114FC(); + sub_1157C(); + + gTitlescreen.idleFramesCounter++; + if (gTitlescreen.idleFramesCounter > NUM_IDLE_FRAMES) + { + if (gTitlescreen.idleFramesCounter % 10 == 0) + { + gTitlescreen.idleFadeoutCounter++; + m4aMPlayVolumeControl(&gMPlayInfo_02032EE0, 0xFFFF, 0x100 / gTitlescreen.idleFadeoutCounter); + } + + if (gTitlescreen.idleFadeoutCounter > 9) + { + gTitlescreen.idleFramesCounter = 0; + gTitlescreen.unk6 = 7; + gMain.subState = 11; + } + } + } + + sub_11640(); +} + +void sub_10CF0(void) +{ + if ((gMain.heldKeys & (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON)) + == (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON)) + { + gUnknown_020028A4 = 1; + gTitlescreen.unk6 = 9; + gMain.subState = 11; + } + + if (!gUnknown_020028A4) + { + gTitlescreen.unk4++; + if (gTitlescreen.unk4 >= gUnknown_086A9666[gTitlescreen.unk2][1]) + { + gTitlescreen.unk4 = 0; + gTitlescreen.unk8 = gUnknown_086A9666[gTitlescreen.unk2][0]; + if (++gTitlescreen.unk2 > 5) + { + gTitlescreen.unk2 = 0; + gUnknown_202BE24 = 0; + gTitlescreen.unk9 = 0; + gTitlescreen.unkB = 1; + gMain.subState = 3; + } + } + } + + sub_11640(); +} + +void sub_10D84(void) +{ + if ((gMain.heldKeys & (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON)) + == (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON)) + { + gUnknown_020028A4 = 1; + gTitlescreen.unk6 = 9; + gMain.subState = 10; + } + + if (!gUnknown_020028A4) + { + if (gMain.newKeys & A_BUTTON) + { + m4aSongNumStart(0x65); + sub_11B74(); + sub_2B4(); + m4aMPlayAllStop(); + sub_D10(); + gMain.subState = 0; + } + else if (gMain.newKeys & B_BUTTON) + { + m4aSongNumStart(0x66); + gTitlescreen.unk11 = 0; + gMain.subState = 1; + } + } + + sub_11640(); +} + +void sub_10E00(void) +{ + if ((gMain.heldKeys & (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON)) + == (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON)) + { + gUnknown_020028A4 = 1; + gTitlescreen.unk6 = 9; + gMain.subState = 11; + } + + if (!gUnknown_020028A4) + { + if (!gTitlescreen.unk7) + { + gTitlescreen.unk4++; + if (gTitlescreen.unk4 >= gUnknown_086A9748[gTitlescreen.unk2]) + { + gTitlescreen.unk4 = 0; + gUnknown_0201C190[6] = gUnknown_086A9714[gTitlescreen.unk2]; + if (++gTitlescreen.unk2 > 11) + { + gTitlescreen.unk2 = 0; + gTitlescreen.unkD = 1; + gTitlescreen.unkF = 1; + gMain.subState = 4; + } + } + + sub_1175C(); + } + else + { + gTitlescreen.unk4++; + if (gTitlescreen.unk4 >= gUnknown_086A9748[gTitlescreen.unk2]) + { + gTitlescreen.unk4 = 0; + gUnknown_0202BE00[6] = gUnknown_086A9778[gTitlescreen.unk2]; + if (++gTitlescreen.unk2 > 11) + { + gTitlescreen.unk2 = 0; + gTitlescreen.unkD = 1; + gTitlescreen.unkF = 1; + gMain.subState = 5; + } + } + + sub_11968(); + } + } +} + +void sub_10EF4(void) +{ + if ((gMain.heldKeys & (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON)) + == (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON)) + { + gUnknown_020028A4 = 1; + gTitlescreen.unk6 = 9; + gMain.subState = 10; + } + + if (!gUnknown_020028A4) + { + gTitlescreen.unk4++; + if (gTitlescreen.unk4 >= gUnknown_086A9672[gTitlescreen.unk2][1]) + { + gTitlescreen.unk4 = 0; + if (++gTitlescreen.unk2 > 6) + gTitlescreen.unk2 = 0; + + gTitlescreen.unkC = gUnknown_086A9672[gTitlescreen.unk2][0]; + gTitlescreen.unkE = gUnknown_086A9672[gTitlescreen.unk2][0] + 3; + } + + if (gMain.newKeys & DPAD_UP) + { + m4aSongNumStart(0x67); + if (--gTitlescreen.menuCursorIndex < 0) + gTitlescreen.menuCursorIndex = 3; + } + else if (gMain.newKeys & DPAD_DOWN) + { + m4aSongNumStart(0x67); + if (++gTitlescreen.menuCursorIndex > 3) + gTitlescreen.menuCursorIndex = 0; + } + + if (gMain.newKeys & (A_BUTTON | START_BUTTON)) + { + m4aSongNumStart(0x65); + gTitlescreen.unk4 = 0; + gTitlescreen.unk2 = 0; + gMain.subState = 7; + } + else if (gMain.newKeys & B_BUTTON) + { + m4aSongNumStart(0x66); + gTitlescreen.unk4 = 0; + gTitlescreen.unk2 = 12; + gTitlescreen.unkD = 0; + gTitlescreen.unkF = 0; + gMain.subState = 6; + } + + sub_1157C(); + } + + sub_1175C(); +} + +void sub_11020(void) +{ + if ((gMain.heldKeys & (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON)) + == (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON)) + { + gUnknown_020028A4 = 1; + gTitlescreen.unk6 = 9; + gMain.subState = 11; + } + + if (!gUnknown_020028A4) + { + u16 unk4 = gTitlescreen.unk4; + u16 mask = 0x3; + if (!(unk4 & mask)) + { + if (!gTitlescreen.unk2) + { + gTitlescreen.unk2 = 1; + sub_10708((void *)(OBJ_VRAM0 + 0x1E0 + gTitlescreen.menuCursorIndex * 0x800), gUnknown_03000000, 8, 2); + sub_10708((void *)(OBJ_VRAM0 + 0x61E0), (void *)(OBJ_VRAM0 + 0x1E0 + gTitlescreen.menuCursorIndex * 0x800), 8, 2); + } + else + { + gTitlescreen.unk2 = 0; + sub_10708(gUnknown_03000000, (void *)(OBJ_VRAM0 + 0x1E0 + gTitlescreen.menuCursorIndex * 0x800), 8, 2); + } + } + + if (gTitlescreen.unk4 > 20) + { + gMain.unkD = 0; + gTitlescreen.unk6 = gUnknown_086A96A4[gTitlescreen.menuCursorIndex]; + gMain.subState = 10; + } + + gTitlescreen.unk4++; + } + + sub_1175C(); +} + +void sub_110FC(void) +{ + if ((gMain.heldKeys & (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON)) + == (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON)) + { + gUnknown_020028A4 = 1; + gTitlescreen.unk6 = 9; + gMain.subState = 10; + } + + if (!gUnknown_020028A4) + { + gTitlescreen.unk4++; + if (gTitlescreen.unk4 >= gUnknown_086A9672[gTitlescreen.unk2][1]) + { + gTitlescreen.unk4 = 0; + if (++gTitlescreen.unk2 > 6) + gTitlescreen.unk2 = 0; + + gTitlescreen.unkC = gUnknown_086A9672[gTitlescreen.unk2][0]; + gTitlescreen.unkE = gUnknown_086A9672[gTitlescreen.unk2][0] + 3; + } + + if (gMain.newKeys & DPAD_UP) + { + m4aSongNumStart(0x67); + if (--gTitlescreen.menuCursorIndex < 0) + gTitlescreen.menuCursorIndex = 4; + } + else if (gMain.newKeys & DPAD_DOWN) + { + m4aSongNumStart(0x67); + if (++gTitlescreen.menuCursorIndex > 4) + gTitlescreen.menuCursorIndex = 0; + } + + if (gMain.newKeys & (A_BUTTON | START_BUTTON)) + { + m4aSongNumStart(0x65); + gTitlescreen.unk4 = 0; + gTitlescreen.unk2 = 0; + gMain.subState = 8; + } + else if (gMain.newKeys & B_BUTTON) + { + m4aSongNumStart(0x66); + gTitlescreen.unk4 = 0; + gTitlescreen.unk2 = 12; + gTitlescreen.unkD = 0; + gTitlescreen.unkF = 0; + gMain.subState = 6; + } + + sub_1157C(); + } + + sub_11968(); +} + +void sub_11228(void) +{ + if ((gMain.heldKeys & (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON)) + == (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON)) + { + gUnknown_020028A4 = 1; + gTitlescreen.unk6 = 9; + gMain.subState = 11; + } + + if (!gUnknown_020028A4) + { + u16 unk4 = gTitlescreen.unk4; + u16 mask = 0x3; + if (!(unk4 & mask)) + { + if (!gTitlescreen.unk2) + { + gTitlescreen.unk2 = 1; + sub_10708((void *)(OBJ_VRAM0 + 0x1E0 + gTitlescreen.menuCursorIndex * 0x800), gUnknown_03000000, 8, 2); + sub_10708((void *)(OBJ_VRAM0 + 0x61E0), (void *)(OBJ_VRAM0 + 0x1E0 + gTitlescreen.menuCursorIndex * 0x800), 8, 2); + } + else + { + gTitlescreen.unk2 = 0; + sub_10708(gUnknown_03000000, (void *)(OBJ_VRAM0 + 0x1E0 + gTitlescreen.menuCursorIndex * 0x800), 8, 2); + } + } + + if (gTitlescreen.unk4 > 20) + { + if (gTitlescreen.menuCursorIndex == 1) + gMain.unkD = 1; + else + gMain.unkD = 0; + + gTitlescreen.unk6 = gUnknown_086A96D4[gTitlescreen.menuCursorIndex]; + gMain.subState = 10; + } + + gTitlescreen.unk4++; + } + + sub_11968(); +} + +void sub_11320(void) +{ + if ((gMain.heldKeys & (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON)) + == (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON)) + { + gUnknown_020028A4 = 1; + gTitlescreen.unk6 = 9; + gMain.subState = 11; + } + + if (!gUnknown_020028A4) + { + if (!gTitlescreen.unk7) + { + gTitlescreen.unk4++; + if (gTitlescreen.unk4 >= gUnknown_086A9748[gTitlescreen.unk2]) + { + gTitlescreen.unk4 = 0; + if (--gTitlescreen.unk2 < 0) + { + gTitlescreen.unk2 = 0; + gTitlescreen.menuCursorIndex = 0; + gUnknown_202BE24 = 1; + gTitlescreen.unk9 = 1; + gTitlescreen.unkB = 0; + gMain.subState = 1; + } + + gUnknown_0201C190[6] = gUnknown_086A9714[gTitlescreen.unk2]; + } + + sub_1175C(); + } + else + { + gTitlescreen.unk4++; + if (gTitlescreen.unk4 >= gUnknown_086A9748[gTitlescreen.unk2]) + { + gTitlescreen.unk4 = 0; + if (--gTitlescreen.unk2 < 0) + { + gTitlescreen.unk2 = 0; + gTitlescreen.menuCursorIndex = 1; + gUnknown_202BE24 = 1; + gTitlescreen.unk9 = 1; + gTitlescreen.unkB = 0; + gMain.subState = 1; + } + + gUnknown_0202BE00[6] = gUnknown_086A9778[gTitlescreen.unk2]; + } + + sub_11968(); + } + } +} + +void sub_11428(void) +{ + if (!gTitlescreen.unk7) + sub_FE04(sub_1175C); + else + sub_FE04(sub_11968); + + m4aMPlayAllStop(); + sub_D10(); + + if (gUnknown_086A964C[gTitlescreen.unk6] == 8) + gUnknown_0202C588 = 0; + else + gUnknown_0202C588 = 1; + + gAutoDisplayTitlescreenMenu = 0; + SetMainGameState(gUnknown_086A964C[gTitlescreen.unk6]); +} + +void sub_114B4(void) +{ + sub_FE04(sub_11640); + m4aMPlayAllStop(); + sub_D10(); + gUnknown_0202C588 = 1; + gAutoDisplayTitlescreenMenu = 0; + SetMainGameState(gUnknown_086A964C[gTitlescreen.unk6]); +} + +static void sub_114FC(void) +{ + // To delete save file, press R_BUTTON 3 times while holding L_BUTTON And DPAD_LEFT. + if ((gMain.heldKeys & (L_BUTTON | DPAD_LEFT)) == (L_BUTTON | DPAD_LEFT)) + { + if (gMain.newKeys & R_BUTTON) + { + gUnknown_020028A1 = 40; + if (++gUnknown_020028A0 == 3) + { + gUnknown_020028A0 = 0; + gUnknown_020028A1 = 0; + m4aSongNumStart(0x68); + gTitlescreen.unk11 = 1; + gMain.subState = 9; + } + } + } + + if (gUnknown_020028A1 > 0) + { + if (--gUnknown_020028A1 <= 0) + { + gUnknown_020028A1 = 0; + gUnknown_020028A0 = 0; + } + } +} diff --git a/sym_bss.txt b/sym_bss.txt index aab8938..529aaaa 100755 --- a/sym_bss.txt +++ b/sym_bss.txt @@ -1,3 +1,5 @@ +gUnknown_03000000: @ 0x3000000 + .space 0x7400 SoundMainRAM_Buffer: @ 0x3007400 diff --git a/sym_ewram.txt b/sym_ewram.txt index c4d83ec..9e3af70 100755 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1,8 +1,27 @@ .space 0x2888 -gUnknown_2002888: @ 0x2002888 +gTitlescreen: @ 0x2002888 + .space 0x18 - .space 0xD0 +gUnknown_020028A0: @ 0x20028A0 + .space 0x1 + +gUnknown_020028A1: @ 0x20028A1 + .space 0x1 + +gUnknown_020028A2: @ 0x20028A2 + .space 0x1 + +gUnknown_020028A3: @ 0x20028A3 + .space 0x1 + +gUnknown_020028A4: @ 0x20028A4 + .space 0x1 + +gUnknown_020028A5: @ 0x20028A5 + .space 0x1 + + .space 0xB2 gUnknown_02002958: @ 0x2002958 @@ -19,12 +38,26 @@ gMain: @ 0x200B0C0 gAutoDisplayTitlescreenMenu: @ 0x201A4B4 .space 4 - .space 0x1196C + .space 0x1CD8 + +gUnknown_0201C190: @ 0x201C190 + .space 0x1C + + .space 0xFC54 + +gUnknown_0202BE00: @ 0x202BE00 + .space 0x1C + + .space 0x8 gUnknown_202BE24: @ 0x202BE24 .space 4 - .space 0x5D08 + .space 0x760 + +gUnknown_0202C588: @ 0x202C588 + + .space 0x55A8 gSoundInfo: @ 0x2031B30 @@ -48,6 +81,10 @@ gPokemonCryTracks: @ 0x2032D60 gPokemonCrySong: @ 0x2032EA0 - .space 0x100 + .space 0x40 + +gMPlayInfo_02032EE0: @ 0x2032EE0 + + .space 0xC0 gMPlayMemAccArea: @ 0x2032FA0 |