diff options
author | Marcus Huderle <huderlem@gmail.com> | 2018-10-22 18:51:20 -0500 |
---|---|---|
committer | Marcus Huderle <huderlem@gmail.com> | 2018-10-22 18:51:20 -0500 |
commit | bd344c1390ee9e0bbcfdb4aac5250a37e574a05f (patch) | |
tree | b388f99a256d0f73108ddf715a82bf6473c11415 | |
parent | 0d8c76cf7a6d3e44d128e17c800c4e97d8b73ee0 (diff) |
Decompile more of main
-rwxr-xr-x | asm/high_scores.s | 22 | ||||
-rwxr-xr-x | asm/rom_11B9C.s | 112 | ||||
-rwxr-xr-x | asm/rom_9BC.s | 449 | ||||
-rwxr-xr-x | data/rom.s | 533 | ||||
-rwxr-xr-x | include/main.h | 15 | ||||
-rwxr-xr-x | src/main.c | 289 | ||||
-rwxr-xr-x | src/rom_850.c | 16 | ||||
-rwxr-xr-x | src/util.c | 2 | ||||
-rwxr-xr-x | sym_ewram.txt | 13 |
9 files changed, 918 insertions, 533 deletions
diff --git a/asm/high_scores.s b/asm/high_scores.s index b85c26b..95fc366 100755 --- a/asm/high_scores.s +++ b/asm/high_scores.s @@ -5114,7 +5114,7 @@ sub_F74C: @ 0x0800F74C ldr r1, _0800F85C @ =0x0200B134 str r1, [sp] _0800F760: - bl sub_C00 + bl Random movs r1, #0x2a bl __umodsi3 lsls r0, r0, #0x18 @@ -5136,14 +5136,14 @@ _0800F760: adds r6, #0xe8 movs r5, #2 _0800F78E: - bl sub_C00 + bl Random movs r1, #0xa bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #7 bhi _0800F7AE - bl sub_C00 + bl Random movs r1, #0x2a bl __umodsi3 lsls r0, r0, #0x18 @@ -5153,9 +5153,9 @@ _0800F7AE: subs r5, #1 cmp r5, #0 bge _0800F78E - bl sub_C00 + bl Random adds r7, r0, #0 - bl sub_C00 + bl Random adds r6, r0, #0 mov r0, sb add r0, r8 @@ -5173,7 +5173,7 @@ _0800F7AE: str r2, [sp, #4] mov sl, r0 _0800F7E0: - bl sub_C00 + bl Random movs r1, #0x2a bl __umodsi3 lsls r0, r0, #0x18 @@ -5198,14 +5198,14 @@ _0800F7E0: adds r1, r1, r0 mov sb, r1 _0800F814: - bl sub_C00 + bl Random movs r1, #0xa bl __umodsi3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #7 bhi _0800F834 - bl sub_C00 + bl Random movs r1, #0x2a bl __umodsi3 lsls r0, r0, #0x18 @@ -5219,20 +5219,20 @@ _0800F834: subs r5, #1 cmp r5, #0 bge _0800F814 - bl sub_C00 + bl Random adds r1, r7, #0 bl __umodsi3 adds r7, r0, #0 cmp r7, #0 beq _0800F868 - bl sub_C00 + bl Random b _0800F872 .align 2, 0 _0800F85C: .4byte 0x0200B134 _0800F860: .4byte 0x0200B218 _0800F864: .4byte 0x0200B22C _0800F868: - bl sub_C00 + bl Random adds r1, r6, #0 bl __umodsi3 _0800F872: diff --git a/asm/rom_11B9C.s b/asm/rom_11B9C.s index 7252b58..ab35f66 100755 --- a/asm/rom_11B9C.s +++ b/asm/rom_11B9C.s @@ -14593,7 +14593,7 @@ _0801905E: ldrh r0, [r4, #0x30] cmp r0, #0 bne _0801908E - bl sub_C00 + bl Random ldr r1, [r4, #0x4c] adds r0, r0, r1 movs r1, #0x1e @@ -16316,7 +16316,7 @@ sub_19E10: @ 0x08019E10 lsls r0, r0, #0x10 cmp r0, #0 bne _08019E4E - bl sub_C00 + bl Random ldr r4, [r4] ldr r1, _08019EA8 @ =gMain ldr r1, [r1, #0x4c] @@ -25879,7 +25879,7 @@ _0801EB00: ldr r0, _0801EBF8 @ =0x000009C3 cmp r8, r0 bgt _0801EBCA - bl sub_C00 + bl Random mov r5, sl ldr r2, [r5] movs r1, #3 @@ -40206,7 +40206,7 @@ sub_25F64: @ 0x08025F64 ldr r0, [r5] adds r0, #0x36 strb r3, [r0] - bl sub_C00 + bl Random ldr r4, [r5] ldr r6, _08026084 @ =gMain ldr r1, [r6, #0x4c] @@ -42384,7 +42384,7 @@ _0802712C: asrs r0, r0, #0x10 cmp r0, #7 ble _0802712C - bl sub_C00 + bl Random ldr r1, _080271F8 @ =gMain ldr r1, [r1, #0x4c] adds r0, r0, r1 @@ -42421,7 +42421,7 @@ _08027176: cmp r0, #6 ble _08027176 _0802718E: - bl sub_C00 + bl Random ldr r1, _080271F8 @ =gMain ldr r1, [r1, #0x4c] adds r2, r0, r1 @@ -42453,7 +42453,7 @@ _080271B4: cmp r0, #5 ble _080271B4 _080271CC: - bl sub_C00 + bl Random ldr r1, _080271F8 @ =gMain ldr r1, [r1, #0x4c] adds r0, r0, r1 @@ -42494,7 +42494,7 @@ _0802720E: asrs r0, r0, #0x10 cmp r0, #7 ble _0802720E - bl sub_C00 + bl Random ldr r1, _0802737C @ =gMain ldr r1, [r1, #0x4c] adds r0, r0, r1 @@ -42531,7 +42531,7 @@ _08027258: cmp r0, #6 ble _08027258 _08027270: - bl sub_C00 + bl Random ldr r1, _0802737C @ =gMain ldr r1, [r1, #0x4c] adds r0, r0, r1 @@ -42567,7 +42567,7 @@ _080272A0: cmp r0, #5 ble _080272A0 _080272B8: - bl sub_C00 + bl Random ldr r1, _0802737C @ =gMain ldr r1, [r1, #0x4c] adds r0, r0, r1 @@ -42629,7 +42629,7 @@ _0802731A: asrs r0, r0, #0x18 cmp r0, #5 bne _08027356 - bl sub_C00 + bl Random ldr r1, _0802737C @ =gMain ldr r1, [r1, #0x4c] adds r0, r0, r1 @@ -47003,7 +47003,7 @@ _08029670: ldr r0, _08029704 @ =0x000005C2 adds r1, r1, r0 strh r2, [r1] - bl sub_C00 + bl Random ldr r4, [r7] adds r4, r4, r6 movs r1, #0xc8 @@ -47015,7 +47015,7 @@ _08029670: lsls r2, r2, #3 adds r4, r4, r2 strh r1, [r4] - bl sub_C00 + bl Random ldr r4, [r7] adds r4, r4, r6 ldr r1, _08029708 @ =0x00000226 @@ -47025,7 +47025,7 @@ _08029670: ldr r0, _0802970C @ =0x000005DA adds r4, r4, r0 strh r1, [r4] - bl sub_C00 + bl Random ldr r4, [r7] ldr r1, _08029710 @ =0x000005B9 adds r4, r4, r1 @@ -47357,7 +47357,7 @@ _0802993A: ldr r2, _08029A3C @ =0x000005C2 adds r4, r4, r2 strh r0, [r4] - bl sub_C00 + bl Random ldr r4, [r7] adds r4, r4, r6 adds r1, r6, #0 @@ -47373,7 +47373,7 @@ _0802993A: lsls r0, r0, #3 adds r4, r4, r0 strh r1, [r4] - bl sub_C00 + bl Random ldr r4, [r7] adds r4, r4, r6 ldr r1, _08029A40 @ =0x086AE2F6 @@ -47386,7 +47386,7 @@ _0802993A: ldr r2, _08029A44 @ =0x000005DA adds r4, r4, r2 strh r1, [r4] - bl sub_C00 + bl Random ldr r1, [r7] ldr r2, _08029A48 @ =0x000005B9 adds r1, r1, r2 @@ -48357,7 +48357,7 @@ _0802A170: cmp r0, #0 beq _0802A1CA _0802A182: - bl sub_C00 + bl Random mov r1, sb ldr r4, [r1] movs r1, #0xc8 @@ -64178,7 +64178,7 @@ sub_3219C: @ 0x0803219C beq _08032208 movs r0, #0 strb r0, [r4, #7] - bl sub_C00 + bl Random ldr r1, [r4, #0x4c] ldr r2, [r4, #0x50] adds r1, r1, r2 @@ -64225,7 +64225,7 @@ _080321EA: .align 2, 0 _08032204: .4byte 0x020314E0 _08032208: - bl sub_C00 + bl Random ldr r1, [r4, #0x4c] ldr r2, [r4, #0x50] adds r1, r1, r2 @@ -64422,7 +64422,7 @@ _08032378: ldrh r0, [r0] cmp r0, #0 bne _08032454 - bl sub_C00 + bl Random ldr r2, _080323BC @ =gMain ldr r1, [r2, #0x4c] ldr r2, [r2, #0x50] @@ -64457,7 +64457,7 @@ _080323C0: bne _080323D2 movs r6, #1 _080323D2: - bl sub_C00 + bl Random ldr r2, _08032474 @ =gMain ldr r1, [r2, #0x4c] ldr r2, [r2, #0x50] @@ -64725,7 +64725,7 @@ _080325DC: .4byte 0x0000059E thumb_func_start sub_325E0 sub_325E0: @ 0x080325E0 push {r4, r5, r6, lr} - bl sub_C00 + bl Random ldr r3, _08032600 @ =gMain ldr r1, [r3, #0x4c] ldr r2, [r3, #0x50] @@ -64785,7 +64785,7 @@ _08032640: _08032650: .4byte 0x020314E0 _08032654: .4byte 0x0000059E _08032658: - bl sub_C00 + bl Random ldr r2, _080326E4 @ =gMain ldr r1, [r2, #0x4c] ldr r2, [r2, #0x50] @@ -66982,7 +66982,7 @@ _080337E0: movs r7, #0 mov r5, sl strh r5, [r0] - bl sub_C00 + bl Random ldr r1, _080338E0 @ =0x020314E0 ldr r4, [r1] lsls r5, r6, #2 @@ -66996,7 +66996,7 @@ _080337E0: lsls r3, r3, #2 adds r4, r4, r3 strh r0, [r4] - bl sub_C00 + bl Random ldr r1, _080338E0 @ =0x020314E0 ldr r4, [r1] adds r4, r4, r5 @@ -67009,7 +67009,7 @@ _080337E0: mov sb, r2 add r4, sb strh r1, [r4] - bl sub_C00 + bl Random ldr r3, _080338E0 @ =0x020314E0 ldr r4, [r3] movs r1, #0xef @@ -67109,7 +67109,7 @@ _08033910: adds r2, r2, r0 adds r2, r2, r4 strb r5, [r2] - bl sub_C00 + bl Random b _08033FD8 .align 2, 0 _08033940: .4byte 0x020314E0 @@ -71612,7 +71612,7 @@ _08035DCC: movs r0, #0xb4 lsls r0, r0, #1 strh r0, [r1] - bl sub_C00 + bl Random mov r1, r8 ldr r3, [r1] ldr r2, _08035E2C @ =0x086AE9E4 @@ -71793,7 +71793,7 @@ _08035F5E: adds r0, r0, r1 movs r1, #5 strb r1, [r0] - bl sub_C00 + bl Random ldr r1, _08035FEC @ =gMain ldr r1, [r1, #0x4c] adds r0, r0, r1 @@ -72575,7 +72575,7 @@ _080365CE: movs r1, #5 strb r1, [r0] _080365DC: - bl sub_C00 + bl Random ldr r1, _08036618 @ =gMain ldr r1, [r1, #0x4c] adds r0, r0, r1 @@ -72693,7 +72693,7 @@ _080366BE: movs r1, #5 strb r1, [r0] _080366CC: - bl sub_C00 + bl Random ldr r1, _08036708 @ =gMain ldr r1, [r1, #0x4c] adds r0, r0, r1 @@ -73147,7 +73147,7 @@ _08036A56: adds r0, r0, r4 movs r1, #0x14 strh r1, [r0] - bl sub_C00 + bl Random mov r5, r8 ldr r2, [r5] ldr r1, _08036A94 @ =gMain @@ -73211,7 +73211,7 @@ _08036ADA: adds r0, r0, r5 movs r1, #0x14 strh r1, [r0] - bl sub_C00 + bl Random mov r1, r8 ldr r2, [r1] ldr r1, _08036B14 @ =gMain @@ -74205,7 +74205,7 @@ _080372E0: ldrh r5, [r0] cmp r5, #0 bne _08037318 - bl sub_C00 + bl Random mov r1, sb ldr r4, [r1] ldr r1, _08037488 @ =0xFFFFEBC8 @@ -78200,7 +78200,7 @@ _08039350: adds r1, r2, r0 movs r0, #0 strh r0, [r1] - bl sub_C00 + bl Random ldr r4, [r5] movs r1, #0x64 bl __umodsi3 @@ -78215,7 +78215,7 @@ _08039350: lsls r3, r3, #2 adds r4, r4, r3 strh r0, [r4] - bl sub_C00 + bl Random ldr r4, [r5] movs r1, #0x64 bl __umodsi3 @@ -80010,7 +80010,7 @@ _0803A24C: adds r0, r0, r7 movs r1, #2 strb r1, [r0] - bl sub_C00 + bl Random mov r4, r8 ldr r5, [r4] ldr r6, _0803A2C8 @ =0x00000443 @@ -80838,7 +80838,7 @@ _0803A8A2: ldr r0, _0803AA40 @ =0x000009C3 cmp r8, r0 bgt _0803A9A6 - bl sub_C00 + bl Random ldr r5, [r4] subs r6, #0x1b adds r5, r5, r6 @@ -83297,7 +83297,7 @@ _0803BD30: ldrsb r0, [r1, r0] cmp r0, #0 beq _0803BDE0 - bl sub_C00 + bl Random ldr r4, [r5] mov r2, sl ldr r1, [r2, #0x4c] @@ -85980,7 +85980,7 @@ _0803D354: adds r0, r0, r2 ldrh r0, [r0] strb r0, [r1] - bl sub_C00 + bl Random ldr r4, [r6] lsls r1, r5, #2 adds r4, r4, r1 @@ -86000,7 +86000,7 @@ _0803D354: ldr r2, _0803D4C0 @ =0x000004EC adds r4, r4, r2 strh r1, [r4] - bl sub_C00 + bl Random ldr r2, [r6] ldr r3, _0803D4C4 @ =0x000004CC adds r2, r2, r3 @@ -88452,7 +88452,7 @@ sub_3E79C: @ 0x0803E79C bge _0803E7C8 adds r5, r0, #0 _0803E7B4: - bl sub_C00 + bl Random lsls r0, r4, #0x10 movs r1, #0x80 lsls r1, r1, #9 @@ -92168,7 +92168,7 @@ _08040610: asrs r0, r0, #0x18 cmp r0, #0 beq _08040670 - bl sub_C00 + bl Random ldr r4, [r5] movs r1, #0xa0 bl __umodsi3 @@ -92177,7 +92177,7 @@ _08040610: ldr r2, _08040660 @ =0x0000051C adds r4, r4, r2 strh r1, [r4] - bl sub_C00 + bl Random ldr r5, [r5] ldr r3, _08040664 @ =0x0000132C adds r1, r5, r3 @@ -95482,7 +95482,7 @@ _080420CC: lsls r5, r5, #4 adds r0, r4, r5 strh r1, [r0] - bl sub_C00 + bl Random adds r5, r0, #0 movs r0, #7 ands r5, r0 @@ -95565,7 +95565,7 @@ _08042184: ldr r5, _080422BC @ =0x00000E78 adds r0, r4, r5 strh r1, [r0] - bl sub_C00 + bl Random movs r1, #7 ands r1, r0 adds r1, #8 @@ -97135,7 +97135,7 @@ sub_42E48: @ 0x08042E48 bge _08042E72 adds r4, r1, #0 _08042E5E: - bl sub_C00 + bl Random lsls r0, r5, #0x10 movs r1, #0x80 lsls r1, r1, #9 @@ -98507,7 +98507,7 @@ _08043980: _080439A4: .4byte 0x020314E0 _080439A8: .4byte 0x00000562 _080439AC: - bl sub_C00 + bl Random adds r1, r0, #0 ldr r6, _08043A34 @ =gMain ldr r0, [r6, #0x4c] @@ -98621,7 +98621,7 @@ _08043A94: .4byte 0x020314E0 _08043A98: .4byte 0x0000055B _08043A9C: .4byte 0x00000553 _08043AA0: - bl sub_C00 + bl Random ldr r1, _08043AF8 @ =0x020314E0 ldr r2, [r1] ldr r3, _08043AFC @ =0x00000551 @@ -98647,7 +98647,7 @@ _08043AA0: asrs r0, r0, #0x18 cmp r0, #5 bne _08043B00 - bl sub_C00 + bl Random ldr r3, _08043AF8 @ =0x020314E0 ldr r4, [r3] lsls r1, r5, #3 @@ -98665,7 +98665,7 @@ _08043AA0: _08043AF8: .4byte 0x020314E0 _08043AFC: .4byte 0x00000551 _08043B00: - bl sub_C00 + bl Random ldr r6, _08043B20 @ =0x020314E0 ldr r4, [r6] lsls r1, r5, #3 @@ -98688,7 +98688,7 @@ _08043B24: asrs r0, r0, #0x18 cmp r0, #5 bne _08043B58 - bl sub_C00 + bl Random ldr r1, _08043B54 @ =0x020314E0 ldr r4, [r1] lsls r1, r5, #3 @@ -98704,7 +98704,7 @@ _08043B24: .align 2, 0 _08043B54: .4byte 0x020314E0 _08043B58: - bl sub_C00 + bl Random ldr r3, _08043BE0 @ =0x020314E0 ldr r4, [r3] lsls r1, r5, #3 @@ -105738,7 +105738,7 @@ _080475D2: adds r0, r4, r0 mov r1, r8 strh r1, [r0] - bl sub_C00 + bl Random ldr r1, _0804764C @ =0x02030750 adds r4, r4, r1 movs r1, #0x1e @@ -110784,7 +110784,7 @@ sub_49ED4: @ 0x08049ED4 bge _08049EFA adds r4, r1, #0 _08049EE6: - bl sub_C00 + bl Random lsls r0, r5, #0x10 movs r1, #0x80 lsls r1, r1, #9 diff --git a/asm/rom_9BC.s b/asm/rom_9BC.s index 60f2560..fde21ba 100755 --- a/asm/rom_9BC.s +++ b/asm/rom_9BC.s @@ -4,447 +4,6 @@ .text - thumb_func_start sub_B38 -sub_B38: @ 0x08000B38 - push {lr} - bl sub_1F5C - pop {r0} - bx r0 - - thumb_func_start sub_B44 -sub_B44: @ 0x08000B44 - push {lr} - bl sub_1F4C - pop {r0} - bx r0 - - thumb_func_start sub_B50 -sub_B50: @ 0x08000B50 - bx lr - - thumb_func_start sub_B54 -sub_B54: @ 0x08000B54 - push {lr} - ldr r1, _08000B84 @ =0x04000204 - ldr r2, _08000B88 @ =0x000045B6 - adds r0, r2, #0 - strh r0, [r1] - subs r1, #4 - movs r2, #0x80 - lsls r2, r2, #6 - adds r0, r2, #0 - strh r0, [r1] - adds r1, #8 - movs r0, #1 - strh r0, [r1] - bl sub_B8C - bl m4aSoundInit - bl m4aSoundVSyncOff - bl sub_52A18 - pop {r0} - bx r0 - .align 2, 0 -_08000B84: .4byte 0x04000204 -_08000B88: .4byte 0x000045B6 - - thumb_func_start sub_B8C -sub_B8C: @ 0x08000B8C - push {lr} - ldr r0, _08000BB8 @ =gMain - movs r1, #0 - strb r1, [r0, #2] - strb r1, [r0, #3] - strh r1, [r0, #0x16] - strh r1, [r0, #0x1c] - strh r1, [r0, #0x18] - strh r1, [r0, #0x20] - str r1, [r0, #0x48] - str r1, [r0, #0x4c] - strh r1, [r0, #0x30] - movs r2, #0x90 - strh r2, [r0, #0x26] - strh r1, [r0, #0x2c] - bl sub_1090C - bl sub_438 - pop {r0} - bx r0 - .align 2, 0 -_08000BB8: .4byte gMain - - thumb_func_start sub_BBC -sub_BBC: @ 0x08000BBC - push {r4, r5, r6, lr} - ldr r5, _08000BF0 @ =0x0200FB98 - ldr r2, _08000BF4 @ =0x02003068 - ldr r6, _08000BF8 @ =0x02019BE0 - ldr r4, _08000BFC @ =0x086A4AA0 - adds r3, r2, #0 - subs r3, #8 - movs r1, #0xd -_08000BCC: - ldm r4!, {r0} - stm r3!, {r0} - subs r1, #1 - cmp r1, #0 - bge _08000BCC - str r2, [r5] - adds r0, r2, #0 - adds r0, #8 - str r0, [r6] - bl sub_8BC - bl sub_8FC - bl sub_940 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08000BF0: .4byte 0x0200FB98 -_08000BF4: .4byte 0x02003068 -_08000BF8: .4byte 0x02019BE0 -_08000BFC: .4byte 0x086A4AA0 - - thumb_func_start sub_C00 -sub_C00: @ 0x08000C00 - ldr r2, _08000C14 @ =gMain - ldr r1, [r2, #0x48] - ldr r0, _08000C18 @ =0x41C64E6D - muls r0, r1, r0 - ldr r1, _08000C1C @ =0x00003039 - adds r0, r0, r1 - str r0, [r2, #0x48] - ldr r1, _08000C20 @ =0x0000FFFF - ands r0, r1 - bx lr - .align 2, 0 -_08000C14: .4byte gMain -_08000C18: .4byte 0x41C64E6D -_08000C1C: .4byte 0x00003039 -_08000C20: .4byte 0x0000FFFF - - thumb_func_start sub_C24 -sub_C24: @ 0x08000C24 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x12 - movs r3, #1 - ldr r0, _08000C60 @ =0x00001FFF - cmp r2, r0 - bls _08000C3A - ldr r1, _08000C64 @ =0xFFFFE000 - adds r0, r2, r1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r3, _08000C68 @ =0x0000FFFF -_08000C3A: - ldr r0, _08000C6C @ =0x00000FFF - cmp r2, r0 - bls _08000C4C - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r1, #0 - subs r0, r0, r2 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 -_08000C4C: - ldr r1, _08000C70 @ =0x08055C44 - lsls r0, r2, #1 - adds r0, r0, r1 - ldrh r1, [r0] - lsls r0, r3, #0x10 - asrs r0, r0, #0x10 - muls r0, r1, r0 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - bx lr - .align 2, 0 -_08000C60: .4byte 0x00001FFF -_08000C64: .4byte 0xFFFFE000 -_08000C68: .4byte 0x0000FFFF -_08000C6C: .4byte 0x00000FFF -_08000C70: .4byte 0x08055C44 - - thumb_func_start sub_C74 -sub_C74: @ 0x08000C74 - push {lr} - lsls r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #0x17 - adds r0, r0, r1 - lsrs r0, r0, #0x10 - bl sub_C24 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - pop {r1} - bx r1 - - thumb_func_start ReadKeys -ReadKeys: @ 0x08000C8C - push {r4, lr} - ldr r0, _08000CB4 @ =0x04000130 - ldrh r2, [r0] - mvns r2, r2 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - ldr r3, _08000CB8 @ =gMain - ldrh r4, [r3, #0x1c] - adds r1, r2, #0 - eors r1, r4 - adds r0, r2, #0 - ands r0, r1 - strh r0, [r3, #0x18] - ands r1, r4 - strh r1, [r3, #0x1a] - strh r2, [r3, #0x1c] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08000CB4: .4byte 0x04000130 -_08000CB8: .4byte gMain - - thumb_func_start sub_CBC -sub_CBC: @ 0x08000CBC - push {r4, lr} - ldr r3, _08000CFC @ =0x04000200 - ldrh r1, [r3] - movs r4, #1 - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - bne _08000CF6 - ldr r1, _08000D00 @ =0x04000202 - ldrh r0, [r1] - movs r2, #5 - orrs r0, r2 - strh r0, [r1] - ldrh r1, [r3] - ldr r0, _08000D04 @ =0x00003FFF - ands r0, r1 - strh r0, [r3] - ldr r0, _08000D08 @ =0x04000208 - strh r4, [r0] - ldrh r0, [r3] - orrs r0, r2 - strh r0, [r3] - ldr r2, _08000D0C @ =0x04000004 - ldrh r0, [r2] - movs r1, #8 - orrs r0, r1 - strh r0, [r2] - bl m4aSoundVSyncOn -_08000CF6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08000CFC: .4byte 0x04000200 -_08000D00: .4byte 0x04000202 -_08000D04: .4byte 0x00003FFF -_08000D08: .4byte 0x04000208 -_08000D0C: .4byte 0x04000004 - - thumb_func_start sub_D10 -sub_D10: @ 0x08000D10 - push {lr} - ldr r1, _08000D54 @ =0x04000004 - ldrh r2, [r1] - ldr r0, _08000D58 @ =0x0000FFF7 - ands r0, r2 - strh r0, [r1] - ldrh r2, [r1] - ldr r0, _08000D5C @ =0x0000FFDF - ands r0, r2 - strh r0, [r1] - ldr r1, _08000D60 @ =0x04000200 - ldrh r2, [r1] - ldr r0, _08000D64 @ =0x00003FFF - ands r0, r2 - strh r0, [r1] - ldrh r2, [r1] - ldr r0, _08000D68 @ =0x00003FFE - ands r0, r2 - strh r0, [r1] - ldrh r0, [r1] - adds r1, r0, #0 - cmp r1, #0 - bne _08000D42 - ldr r0, _08000D6C @ =0x04000208 - strh r1, [r0] -_08000D42: - ldr r0, _08000D70 @ =0x04000202 - ldrh r1, [r0] - movs r2, #1 - orrs r1, r2 - strh r1, [r0] - bl m4aSoundVSyncOff - pop {r0} - bx r0 - .align 2, 0 -_08000D54: .4byte 0x04000004 -_08000D58: .4byte 0x0000FFF7 -_08000D5C: .4byte 0x0000FFDF -_08000D60: .4byte 0x04000200 -_08000D64: .4byte 0x00003FFF -_08000D68: .4byte 0x00003FFE -_08000D6C: .4byte 0x04000208 -_08000D70: .4byte 0x04000202 - - thumb_func_start sub_D74 -sub_D74: @ 0x08000D74 - push {lr} - ldr r2, _08000DA8 @ =0x0200FB9C - ldr r0, _08000DAC @ =0x02017BD4 - ldr r0, [r0] - str r0, [r2] - ldr r0, _08000DB0 @ =0x0200FB98 - ldr r1, [r0] - ldr r0, _08000DB4 @ =0x02017BD0 - ldr r0, [r0] - str r0, [r1] - ldr r0, _08000DB8 @ =0x02019BE0 - ldr r1, [r0] - ldr r0, _08000DBC @ =0x0200FBA0 - ldr r0, [r0] - str r0, [r1] - ldr r2, [r2] - cmp r2, #0 - beq _08000D9C - bl _call_via_r2 -_08000D9C: - ldr r1, _08000DC0 @ =gMain - ldr r0, [r1, #0x4c] - adds r0, #1 - str r0, [r1, #0x4c] - pop {r0} - bx r0 - .align 2, 0 -_08000DA8: .4byte 0x0200FB9C -_08000DAC: .4byte 0x02017BD4 -_08000DB0: .4byte 0x0200FB98 -_08000DB4: .4byte 0x02017BD0 -_08000DB8: .4byte 0x02019BE0 -_08000DBC: .4byte 0x0200FBA0 -_08000DC0: .4byte gMain - - thumb_func_start sub_DC4 -sub_DC4: @ 0x08000DC4 - push {r4, lr} - ldr r4, _08000E7C @ =0x04000004 - ldrh r1, [r4] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08000E76 - bl VBlankIntrWait - ldr r1, _08000E80 @ =0x040000D4 - ldr r0, _08000E84 @ =gOamBuffer - str r0, [r1] - movs r0, #0xe0 - lsls r0, r0, #0x13 - str r0, [r1, #4] - ldr r0, _08000E88 @ =0x84000100 - str r0, [r1, #8] - ldr r0, [r1, #8] - subs r1, #0xd4 - ldr r2, _08000E8C @ =gMain - ldrh r0, [r2, #0x16] - strh r0, [r1] - adds r1, #0x10 - movs r3, #0xba - lsls r3, r3, #2 - adds r0, r2, r3 - ldrh r0, [r0] - strh r0, [r1] - adds r1, #2 - adds r3, #2 - adds r0, r2, r3 - ldrh r0, [r0] - strh r0, [r1] - adds r1, #2 - adds r3, #2 - adds r0, r2, r3 - ldrh r0, [r0] - strh r0, [r1] - adds r1, #2 - adds r3, #2 - adds r0, r2, r3 - ldrh r0, [r0] - strh r0, [r1] - adds r1, #2 - adds r3, #2 - adds r0, r2, r3 - ldrh r0, [r0] - strh r0, [r1] - adds r1, #2 - adds r3, #2 - adds r0, r2, r3 - ldrh r0, [r0] - strh r0, [r1] - adds r1, #2 - adds r3, #2 - adds r0, r2, r3 - ldrh r0, [r0] - strh r0, [r1] - adds r1, #2 - adds r3, #2 - adds r0, r2, r3 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, #0 - adds r0, #0x36 - ldrb r0, [r0] - cmp r0, #0 - beq _08000E5E - adds r1, #0x32 - ldrh r0, [r2, #0x38] - strh r0, [r1] - adds r1, #2 - ldrh r0, [r2, #0x3a] - strh r0, [r1] - adds r1, #2 - ldrh r0, [r2, #0x3c] - strh r0, [r1] -_08000E5E: - ldrh r1, [r4] - movs r0, #0xff - ands r0, r1 - strh r0, [r4] - ldrh r0, [r2, #0x26] - lsls r0, r0, #8 - adds r0, #0x20 - ldrh r1, [r4] - orrs r0, r1 - strh r0, [r4] - bl m4aSoundMain -_08000E76: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08000E7C: .4byte 0x04000004 -_08000E80: .4byte 0x040000D4 -_08000E84: .4byte gOamBuffer -_08000E88: .4byte 0x84000100 -_08000E8C: .4byte gMain - - thumb_func_start sub_E90 -sub_E90: @ 0x08000E90 - ldr r0, _08000EA8 @ =0x04000130 - ldrh r0, [r0] - ldr r2, _08000EAC @ =0x000003FF - adds r1, r2, #0 - eors r1, r0 - ldr r3, _08000EB0 @ =0x02002002 - ldr r2, _08000EB4 @ =0x02002000 - ldrh r0, [r2] - strh r0, [r3] - strh r1, [r2] - bx lr - .align 2, 0 -_08000EA8: .4byte 0x04000130 -_08000EAC: .4byte 0x000003FF -_08000EB0: .4byte 0x02002002 -_08000EB4: .4byte 0x02002000 - thumb_func_start sub_EB8 sub_EB8: @ 0x08000EB8 push {r4, r5, r6, r7, lr} @@ -784,15 +343,15 @@ _08001196: thumb_func_start sub_1198 sub_1198: @ 0x08001198 ldr r0, _080011A4 @ =0x02003060 - ldr r1, _080011A8 @ =sub_B38 + 1 + ldr r1, _080011A8 @ =SerialIntr + 1 str r1, [r0] - ldr r1, _080011AC @ =sub_B44 + 1 + ldr r1, _080011AC @ =Timer3Intr + 1 str r1, [r0, #4] bx lr .align 2, 0 _080011A4: .4byte 0x02003060 -_080011A8: .4byte sub_B38 + 1 -_080011AC: .4byte sub_B44 + 1 +_080011A8: .4byte SerialIntr + 1 +_080011AC: .4byte Timer3Intr + 1 thumb_func_start sub_11B0 sub_11B0: @ 0x080011B0 @@ -7,7 +7,520 @@ .include "data/mon_locations.inc" -.incbin "baserom.gba", 0x55C44, 0x57C46 - 0x55C44 +gUnknown_08055C44:: @ 0x08055C44 + .2byte 0x0000, 0x0007, 0x000F, 0x0017, 0x001E, 0x0026, 0x002E, 0x0035 + .2byte 0x003D, 0x0045, 0x004C, 0x0054, 0x005C, 0x0063, 0x006B, 0x0073 + .2byte 0x007A, 0x0082, 0x008A, 0x0091, 0x0099, 0x00A1, 0x00A8, 0x00B0 + .2byte 0x00B8, 0x00BF, 0x00C7, 0x00CF, 0x00D6, 0x00DE, 0x00E6, 0x00ED + .2byte 0x00F5, 0x00FD, 0x0104, 0x010C, 0x0114, 0x011B, 0x0123, 0x012B + .2byte 0x0132, 0x013A, 0x0142, 0x0149, 0x0151, 0x0159, 0x0160, 0x0168 + .2byte 0x0170, 0x0177, 0x017F, 0x0187, 0x018E, 0x0196, 0x019E, 0x01A5 + .2byte 0x01AD, 0x01B5, 0x01BC, 0x01C4, 0x01CC, 0x01D3, 0x01DB, 0x01E3 + .2byte 0x01EA, 0x01F2, 0x01FA, 0x0201, 0x0209, 0x0211, 0x0218, 0x0220 + .2byte 0x0228, 0x022F, 0x0237, 0x023F, 0x0246, 0x024E, 0x0256, 0x025D + .2byte 0x0265, 0x026D, 0x0274, 0x027C, 0x0284, 0x028B, 0x0293, 0x029B + .2byte 0x02A2, 0x02AA, 0x02B2, 0x02B9, 0x02C1, 0x02C9, 0x02D0, 0x02D8 + .2byte 0x02E0, 0x02E7, 0x02EF, 0x02F7, 0x02FE, 0x0306, 0x030E, 0x0315 + .2byte 0x031D, 0x0325, 0x032C, 0x0334, 0x033C, 0x0343, 0x034B, 0x0353 + .2byte 0x035A, 0x0362, 0x036A, 0x0371, 0x0379, 0x0381, 0x0388, 0x0390 + .2byte 0x0398, 0x039F, 0x03A7, 0x03AF, 0x03B6, 0x03BE, 0x03C6, 0x03CD + .2byte 0x03D5, 0x03DD, 0x03E4, 0x03EC, 0x03F3, 0x03FB, 0x0403, 0x040A + .2byte 0x0412, 0x041A, 0x0421, 0x0429, 0x0431, 0x0438, 0x0440, 0x0448 + .2byte 0x044F, 0x0457, 0x045F, 0x0466, 0x046E, 0x0476, 0x047D, 0x0485 + .2byte 0x048D, 0x0494, 0x049C, 0x04A4, 0x04AB, 0x04B3, 0x04BB, 0x04C2 + .2byte 0x04CA, 0x04D2, 0x04D9, 0x04E1, 0x04E9, 0x04F0, 0x04F8, 0x04FF + .2byte 0x0507, 0x050F, 0x0516, 0x051E, 0x0526, 0x052D, 0x0535, 0x053D + .2byte 0x0544, 0x054C, 0x0554, 0x055B, 0x0563, 0x056B, 0x0572, 0x057A + .2byte 0x0582, 0x0589, 0x0591, 0x0599, 0x05A0, 0x05A8, 0x05AF, 0x05B7 + .2byte 0x05BF, 0x05C6, 0x05CE, 0x05D6, 0x05DD, 0x05E5, 0x05ED, 0x05F4 + .2byte 0x05FC, 0x0604, 0x060B, 0x0613, 0x061B, 0x0622, 0x062A, 0x0632 + .2byte 0x0639, 0x0641, 0x0648, 0x0650, 0x0658, 0x065F, 0x0667, 0x066F + .2byte 0x0676, 0x067E, 0x0686, 0x068D, 0x0695, 0x069D, 0x06A4, 0x06AC + .2byte 0x06B3, 0x06BB, 0x06C3, 0x06CA, 0x06D2, 0x06DA, 0x06E1, 0x06E9 + .2byte 0x06F1, 0x06F8, 0x0700, 0x0707, 0x070F, 0x0717, 0x071E, 0x0726 + .2byte 0x072E, 0x0735, 0x073D, 0x0745, 0x074C, 0x0754, 0x075B, 0x0763 + .2byte 0x076B, 0x0772, 0x077A, 0x0782, 0x0789, 0x0791, 0x0799, 0x07A0 + .2byte 0x07A8, 0x07AF, 0x07B7, 0x07BF, 0x07C6, 0x07CE, 0x07D6, 0x07DD + .2byte 0x07E5, 0x07ED, 0x07F4, 0x07FC, 0x0803, 0x080B, 0x0813, 0x081A + .2byte 0x0822, 0x082A, 0x0831, 0x0839, 0x0840, 0x0848, 0x0850, 0x0857 + .2byte 0x085F, 0x0867, 0x086E, 0x0876, 0x087D, 0x0885, 0x088D, 0x0894 + .2byte 0x089C, 0x08A4, 0x08AB, 0x08B3, 0x08BA, 0x08C2, 0x08CA, 0x08D1 + .2byte 0x08D9, 0x08E1, 0x08E8, 0x08F0, 0x08F7, 0x08FF, 0x0907, 0x090E + .2byte 0x0916, 0x091D, 0x0925, 0x092D, 0x0934, 0x093C, 0x0944, 0x094B + .2byte 0x0953, 0x095A, 0x0962, 0x096A, 0x0971, 0x0979, 0x0980, 0x0988 + .2byte 0x0990, 0x0997, 0x099F, 0x09A7, 0x09AE, 0x09B6, 0x09BD, 0x09C5 + .2byte 0x09CD, 0x09D4, 0x09DC, 0x09E3, 0x09EB, 0x09F3, 0x09FA, 0x0A02 + .2byte 0x0A09, 0x0A11, 0x0A19, 0x0A20, 0x0A28, 0x0A2F, 0x0A37, 0x0A3F + .2byte 0x0A46, 0x0A4E, 0x0A56, 0x0A5D, 0x0A65, 0x0A6C, 0x0A74, 0x0A7C + .2byte 0x0A83, 0x0A8B, 0x0A92, 0x0A9A, 0x0AA2, 0x0AA9, 0x0AB1, 0x0AB8 + .2byte 0x0AC0, 0x0AC7, 0x0ACF, 0x0AD7, 0x0ADE, 0x0AE6, 0x0AED, 0x0AF5 + .2byte 0x0AFD, 0x0B04, 0x0B0C, 0x0B13, 0x0B1B, 0x0B23, 0x0B2A, 0x0B32 + .2byte 0x0B39, 0x0B41, 0x0B49, 0x0B50, 0x0B58, 0x0B5F, 0x0B67, 0x0B6F + .2byte 0x0B76, 0x0B7E, 0x0B85, 0x0B8D, 0x0B94, 0x0B9C, 0x0BA4, 0x0BAB + .2byte 0x0BB3, 0x0BBA, 0x0BC2, 0x0BCA, 0x0BD1, 0x0BD9, 0x0BE0, 0x0BE8 + .2byte 0x0BEF, 0x0BF7, 0x0BFF, 0x0C06, 0x0C0E, 0x0C15, 0x0C1D, 0x0C24 + .2byte 0x0C2C, 0x0C34, 0x0C3B, 0x0C43, 0x0C4A, 0x0C52, 0x0C5A, 0x0C61 + .2byte 0x0C69, 0x0C70, 0x0C78, 0x0C7F, 0x0C87, 0x0C8F, 0x0C96, 0x0C9E + .2byte 0x0CA5, 0x0CAD, 0x0CB4, 0x0CBC, 0x0CC3, 0x0CCB, 0x0CD3, 0x0CDA + .2byte 0x0CE2, 0x0CE9, 0x0CF1, 0x0CF8, 0x0D00, 0x0D08, 0x0D0F, 0x0D17 + .2byte 0x0D1E, 0x0D26, 0x0D2D, 0x0D35, 0x0D3D, 0x0D44, 0x0D4C, 0x0D53 + .2byte 0x0D5B, 0x0D62, 0x0D6A, 0x0D71, 0x0D79, 0x0D81, 0x0D88, 0x0D90 + .2byte 0x0D97, 0x0D9F, 0x0DA6, 0x0DAE, 0x0DB5, 0x0DBD, 0x0DC4, 0x0DCC + .2byte 0x0DD4, 0x0DDB, 0x0DE3, 0x0DEA, 0x0DF2, 0x0DF9, 0x0E01, 0x0E08 + .2byte 0x0E10, 0x0E18, 0x0E1F, 0x0E27, 0x0E2E, 0x0E36, 0x0E3D, 0x0E45 + .2byte 0x0E4C, 0x0E54, 0x0E5B, 0x0E63, 0x0E6A, 0x0E72, 0x0E7A, 0x0E81 + .2byte 0x0E89, 0x0E90, 0x0E98, 0x0E9F, 0x0EA7, 0x0EAE, 0x0EB6, 0x0EBD + .2byte 0x0EC5, 0x0ECC, 0x0ED4, 0x0EDB, 0x0EE3, 0x0EEB, 0x0EF2, 0x0EFA + .2byte 0x0F01, 0x0F09, 0x0F10, 0x0F18, 0x0F1F, 0x0F27, 0x0F2E, 0x0F36 + .2byte 0x0F3D, 0x0F45, 0x0F4C, 0x0F54, 0x0F5B, 0x0F63, 0x0F6A, 0x0F72 + .2byte 0x0F79, 0x0F81, 0x0F89, 0x0F90, 0x0F98, 0x0F9F, 0x0FA7, 0x0FAE + .2byte 0x0FB6, 0x0FBD, 0x0FC5, 0x0FCC, 0x0FD4, 0x0FDB, 0x0FE3, 0x0FEA + .2byte 0x0FF2, 0x0FF9, 0x1001, 0x1008, 0x1010, 0x1017, 0x101F, 0x1026 + .2byte 0x102E, 0x1035, 0x103D, 0x1044, 0x104C, 0x1053, 0x105B, 0x1062 + .2byte 0x106A, 0x1071, 0x1079, 0x1080, 0x1088, 0x108F, 0x1097, 0x109E + .2byte 0x10A6, 0x10AD, 0x10B5, 0x10BC, 0x10C4, 0x10CB, 0x10D3, 0x10DA + .2byte 0x10E2, 0x10E9, 0x10F1, 0x10F8, 0x1100, 0x1107, 0x110F, 0x1116 + .2byte 0x111E, 0x1125, 0x112C, 0x1134, 0x113B, 0x1143, 0x114A, 0x1152 + .2byte 0x1159, 0x1161, 0x1168, 0x1170, 0x1177, 0x117F, 0x1186, 0x118E + .2byte 0x1195, 0x119D, 0x11A4, 0x11AC, 0x11B3, 0x11BB, 0x11C2, 0x11C9 + .2byte 0x11D1, 0x11D8, 0x11E0, 0x11E7, 0x11EF, 0x11F6, 0x11FE, 0x1205 + .2byte 0x120D, 0x1214, 0x121C, 0x1223, 0x122B, 0x1232, 0x1239, 0x1241 + .2byte 0x1248, 0x1250, 0x1257, 0x125F, 0x1266, 0x126E, 0x1275, 0x127D + .2byte 0x1284, 0x128B, 0x1293, 0x129A, 0x12A2, 0x12A9, 0x12B1, 0x12B8 + .2byte 0x12C0, 0x12C7, 0x12CE, 0x12D6, 0x12DD, 0x12E5, 0x12EC, 0x12F4 + .2byte 0x12FB, 0x1303, 0x130A, 0x1311, 0x1319, 0x1320, 0x1328, 0x132F + .2byte 0x1337, 0x133E, 0x1345, 0x134D, 0x1354, 0x135C, 0x1363, 0x136B + .2byte 0x1372, 0x1379, 0x1381, 0x1388, 0x1390, 0x1397, 0x139F, 0x13A6 + .2byte 0x13AD, 0x13B5, 0x13BC, 0x13C4, 0x13CB, 0x13D3, 0x13DA, 0x13E1 + .2byte 0x13E9, 0x13F0, 0x13F8, 0x13FF, 0x1406, 0x140E, 0x1415, 0x141D + .2byte 0x1424, 0x142C, 0x1433, 0x143A, 0x1442, 0x1449, 0x1451, 0x1458 + .2byte 0x145F, 0x1467, 0x146E, 0x1476, 0x147D, 0x1484, 0x148C, 0x1493 + .2byte 0x149B, 0x14A2, 0x14A9, 0x14B1, 0x14B8, 0x14C0, 0x14C7, 0x14CE + .2byte 0x14D6, 0x14DD, 0x14E5, 0x14EC, 0x14F3, 0x14FB, 0x1502, 0x1509 + .2byte 0x1511, 0x1518, 0x1520, 0x1527, 0x152E, 0x1536, 0x153D, 0x1545 + .2byte 0x154C, 0x1553, 0x155B, 0x1562, 0x1569, 0x1571, 0x1578, 0x1580 + .2byte 0x1587, 0x158E, 0x1596, 0x159D, 0x15A4, 0x15AC, 0x15B3, 0x15BB + .2byte 0x15C2, 0x15C9, 0x15D1, 0x15D8, 0x15DF, 0x15E7, 0x15EE, 0x15F5 + .2byte 0x15FD, 0x1604, 0x160C, 0x1613, 0x161A, 0x1622, 0x1629, 0x1630 + .2byte 0x1638, 0x163F, 0x1646, 0x164E, 0x1655, 0x165C, 0x1664, 0x166B + .2byte 0x1672, 0x167A, 0x1681, 0x1688, 0x1690, 0x1697, 0x169F, 0x16A6 + .2byte 0x16AD, 0x16B5, 0x16BC, 0x16C3, 0x16CB, 0x16D2, 0x16D9, 0x16E1 + .2byte 0x16E8, 0x16EF, 0x16F7, 0x16FE, 0x1705, 0x170D, 0x1714, 0x171B + .2byte 0x1723, 0x172A, 0x1731, 0x1738, 0x1740, 0x1747, 0x174E, 0x1756 + .2byte 0x175D, 0x1764, 0x176C, 0x1773, 0x177A, 0x1782, 0x1789, 0x1790 + .2byte 0x1798, 0x179F, 0x17A6, 0x17AE, 0x17B5, 0x17BC, 0x17C3, 0x17CB + .2byte 0x17D2, 0x17D9, 0x17E1, 0x17E8, 0x17EF, 0x17F7, 0x17FE, 0x1805 + .2byte 0x180C, 0x1814, 0x181B, 0x1822, 0x182A, 0x1831, 0x1838, 0x1840 + .2byte 0x1847, 0x184E, 0x1855, 0x185D, 0x1864, 0x186B, 0x1873, 0x187A + .2byte 0x1881, 0x1888, 0x1890, 0x1897, 0x189E, 0x18A6, 0x18AD, 0x18B4 + .2byte 0x18BB, 0x18C3, 0x18CA, 0x18D1, 0x18D8, 0x18E0, 0x18E7, 0x18EE + .2byte 0x18F6, 0x18FD, 0x1904, 0x190B, 0x1913, 0x191A, 0x1921, 0x1928 + .2byte 0x1930, 0x1937, 0x193E, 0x1945, 0x194D, 0x1954, 0x195B, 0x1962 + .2byte 0x196A, 0x1971, 0x1978, 0x197F, 0x1987, 0x198E, 0x1995, 0x199C + .2byte 0x19A4, 0x19AB, 0x19B2, 0x19B9, 0x19C1, 0x19C8, 0x19CF, 0x19D6 + .2byte 0x19DE, 0x19E5, 0x19EC, 0x19F3, 0x19FB, 0x1A02, 0x1A09, 0x1A10 + .2byte 0x1A17, 0x1A1F, 0x1A26, 0x1A2D, 0x1A34, 0x1A3C, 0x1A43, 0x1A4A + .2byte 0x1A51, 0x1A59, 0x1A60, 0x1A67, 0x1A6E, 0x1A75, 0x1A7D, 0x1A84 + .2byte 0x1A8B, 0x1A92, 0x1A99, 0x1AA1, 0x1AA8, 0x1AAF, 0x1AB6, 0x1ABE + .2byte 0x1AC5, 0x1ACC, 0x1AD3, 0x1ADA, 0x1AE2, 0x1AE9, 0x1AF0, 0x1AF7 + .2byte 0x1AFE, 0x1B06, 0x1B0D, 0x1B14, 0x1B1B, 0x1B22, 0x1B29, 0x1B31 + .2byte 0x1B38, 0x1B3F, 0x1B46, 0x1B4D, 0x1B55, 0x1B5C, 0x1B63, 0x1B6A + .2byte 0x1B71, 0x1B79, 0x1B80, 0x1B87, 0x1B8E, 0x1B95, 0x1B9C, 0x1BA4 + .2byte 0x1BAB, 0x1BB2, 0x1BB9, 0x1BC0, 0x1BC7, 0x1BCF, 0x1BD6, 0x1BDD + .2byte 0x1BE4, 0x1BEB, 0x1BF2, 0x1BFA, 0x1C01, 0x1C08, 0x1C0F, 0x1C16 + .2byte 0x1C1D, 0x1C25, 0x1C2C, 0x1C33, 0x1C3A, 0x1C41, 0x1C48, 0x1C4F + .2byte 0x1C57, 0x1C5E, 0x1C65, 0x1C6C, 0x1C73, 0x1C7A, 0x1C81, 0x1C89 + .2byte 0x1C90, 0x1C97, 0x1C9E, 0x1CA5, 0x1CAC, 0x1CB3, 0x1CBB, 0x1CC2 + .2byte 0x1CC9, 0x1CD0, 0x1CD7, 0x1CDE, 0x1CE5, 0x1CEC, 0x1CF4, 0x1CFB + .2byte 0x1D02, 0x1D09, 0x1D10, 0x1D17, 0x1D1E, 0x1D25, 0x1D2D, 0x1D34 + .2byte 0x1D3B, 0x1D42, 0x1D49, 0x1D50, 0x1D57, 0x1D5E, 0x1D65, 0x1D6D + .2byte 0x1D74, 0x1D7B, 0x1D82, 0x1D89, 0x1D90, 0x1D97, 0x1D9E, 0x1DA5 + .2byte 0x1DAC, 0x1DB4, 0x1DBB, 0x1DC2, 0x1DC9, 0x1DD0, 0x1DD7, 0x1DDE + .2byte 0x1DE5, 0x1DEC, 0x1DF3, 0x1DFA, 0x1E02, 0x1E09, 0x1E10, 0x1E17 + .2byte 0x1E1E, 0x1E25, 0x1E2C, 0x1E33, 0x1E3A, 0x1E41, 0x1E48, 0x1E4F + .2byte 0x1E56, 0x1E5D, 0x1E65, 0x1E6C, 0x1E73, 0x1E7A, 0x1E81, 0x1E88 + .2byte 0x1E8F, 0x1E96, 0x1E9D, 0x1EA4, 0x1EAB, 0x1EB2, 0x1EB9, 0x1EC0 + .2byte 0x1EC7, 0x1ECE, 0x1ED5, 0x1EDC, 0x1EE4, 0x1EEB, 0x1EF2, 0x1EF9 + .2byte 0x1F00, 0x1F07, 0x1F0E, 0x1F15, 0x1F1C, 0x1F23, 0x1F2A, 0x1F31 + .2byte 0x1F38, 0x1F3F, 0x1F46, 0x1F4D, 0x1F54, 0x1F5B, 0x1F62, 0x1F69 + .2byte 0x1F70, 0x1F77, 0x1F7E, 0x1F85, 0x1F8C, 0x1F93, 0x1F9A, 0x1FA1 + .2byte 0x1FA8, 0x1FAF, 0x1FB6, 0x1FBD, 0x1FC4, 0x1FCB, 0x1FD2, 0x1FD9 + .2byte 0x1FE0, 0x1FE7, 0x1FEE, 0x1FF5, 0x1FFC, 0x2003, 0x200A, 0x2011 + .2byte 0x2018, 0x201F, 0x2026, 0x202D, 0x2034, 0x203B, 0x2042, 0x2049 + .2byte 0x2050, 0x2057, 0x205E, 0x2065, 0x206C, 0x2073, 0x207A, 0x2081 + .2byte 0x2088, 0x208F, 0x2096, 0x209D, 0x20A4, 0x20AB, 0x20B2, 0x20B9 + .2byte 0x20C0, 0x20C7, 0x20CE, 0x20D5, 0x20DC, 0x20E3, 0x20EA, 0x20F1 + .2byte 0x20F8, 0x20FE, 0x2105, 0x210C, 0x2113, 0x211A, 0x2121, 0x2128 + .2byte 0x212F, 0x2136, 0x213D, 0x2144, 0x214B, 0x2152, 0x2159, 0x2160 + .2byte 0x2167, 0x216E, 0x2174, 0x217B, 0x2182, 0x2189, 0x2190, 0x2197 + .2byte 0x219E, 0x21A5, 0x21AC, 0x21B3, 0x21BA, 0x21C1, 0x21C8, 0x21CE + .2byte 0x21D5, 0x21DC, 0x21E3, 0x21EA, 0x21F1, 0x21F8, 0x21FF, 0x2206 + .2byte 0x220D, 0x2214, 0x221A, 0x2221, 0x2228, 0x222F, 0x2236, 0x223D + .2byte 0x2244, 0x224B, 0x2252, 0x2258, 0x225F, 0x2266, 0x226D, 0x2274 + .2byte 0x227B, 0x2282, 0x2289, 0x2290, 0x2296, 0x229D, 0x22A4, 0x22AB + .2byte 0x22B2, 0x22B9, 0x22C0, 0x22C7, 0x22CD, 0x22D4, 0x22DB, 0x22E2 + .2byte 0x22E9, 0x22F0, 0x22F7, 0x22FD, 0x2304, 0x230B, 0x2312, 0x2319 + .2byte 0x2320, 0x2327, 0x232D, 0x2334, 0x233B, 0x2342, 0x2349, 0x2350 + .2byte 0x2356, 0x235D, 0x2364, 0x236B, 0x2372, 0x2379, 0x2380, 0x2386 + .2byte 0x238D, 0x2394, 0x239B, 0x23A2, 0x23A8, 0x23AF, 0x23B6, 0x23BD + .2byte 0x23C4, 0x23CB, 0x23D1, 0x23D8, 0x23DF, 0x23E6, 0x23ED, 0x23F3 + .2byte 0x23FA, 0x2401, 0x2408, 0x240F, 0x2415, 0x241C, 0x2423, 0x242A + .2byte 0x2431, 0x2437, 0x243E, 0x2445, 0x244C, 0x2453, 0x2459, 0x2460 + .2byte 0x2467, 0x246E, 0x2475, 0x247B, 0x2482, 0x2489, 0x2490, 0x2497 + .2byte 0x249D, 0x24A4, 0x24AB, 0x24B2, 0x24B8, 0x24BF, 0x24C6, 0x24CD + .2byte 0x24D3, 0x24DA, 0x24E1, 0x24E8, 0x24EE, 0x24F5, 0x24FC, 0x2503 + .2byte 0x250A, 0x2510, 0x2517, 0x251E, 0x2525, 0x252B, 0x2532, 0x2539 + .2byte 0x253F, 0x2546, 0x254D, 0x2554, 0x255A, 0x2561, 0x2568, 0x256F + .2byte 0x2575, 0x257C, 0x2583, 0x258A, 0x2590, 0x2597, 0x259E, 0x25A4 + .2byte 0x25AB, 0x25B2, 0x25B9, 0x25BF, 0x25C6, 0x25CD, 0x25D3, 0x25DA + .2byte 0x25E1, 0x25E8, 0x25EE, 0x25F5, 0x25FC, 0x2602, 0x2609, 0x2610 + .2byte 0x2617, 0x261D, 0x2624, 0x262B, 0x2631, 0x2638, 0x263F, 0x2645 + .2byte 0x264C, 0x2653, 0x2659, 0x2660, 0x2667, 0x266D, 0x2674, 0x267B + .2byte 0x2681, 0x2688, 0x268F, 0x2695, 0x269C, 0x26A3, 0x26A9, 0x26B0 + .2byte 0x26B7, 0x26BD, 0x26C4, 0x26CB, 0x26D1, 0x26D8, 0x26DF, 0x26E5 + .2byte 0x26EC, 0x26F3, 0x26F9, 0x2700, 0x2707, 0x270D, 0x2714, 0x271B + .2byte 0x2721, 0x2728, 0x272E, 0x2735, 0x273C, 0x2742, 0x2749, 0x2750 + .2byte 0x2756, 0x275D, 0x2764, 0x276A, 0x2771, 0x2777, 0x277E, 0x2785 + .2byte 0x278B, 0x2792, 0x2798, 0x279F, 0x27A6, 0x27AC, 0x27B3, 0x27B9 + .2byte 0x27C0, 0x27C7, 0x27CD, 0x27D4, 0x27DB, 0x27E1, 0x27E8, 0x27EE + .2byte 0x27F5, 0x27FB, 0x2802, 0x2809, 0x280F, 0x2816, 0x281C, 0x2823 + .2byte 0x282A, 0x2830, 0x2837, 0x283D, 0x2844, 0x284A, 0x2851, 0x2858 + .2byte 0x285E, 0x2865, 0x286B, 0x2872, 0x2878, 0x287F, 0x2886, 0x288C + .2byte 0x2893, 0x2899, 0x28A0, 0x28A6, 0x28AD, 0x28B3, 0x28BA, 0x28C0 + .2byte 0x28C7, 0x28CE, 0x28D4, 0x28DB, 0x28E1, 0x28E8, 0x28EE, 0x28F5 + .2byte 0x28FB, 0x2902, 0x2908, 0x290F, 0x2915, 0x291C, 0x2922, 0x2929 + .2byte 0x292F, 0x2936, 0x293D, 0x2943, 0x294A, 0x2950, 0x2957, 0x295D + .2byte 0x2964, 0x296A, 0x2971, 0x2977, 0x297E, 0x2984, 0x298B, 0x2991 + .2byte 0x2998, 0x299E, 0x29A5, 0x29AB, 0x29B2, 0x29B8, 0x29BE, 0x29C5 + .2byte 0x29CB, 0x29D2, 0x29D8, 0x29DF, 0x29E5, 0x29EC, 0x29F2, 0x29F9 + .2byte 0x29FF, 0x2A06, 0x2A0C, 0x2A13, 0x2A19, 0x2A20, 0x2A26, 0x2A2C + .2byte 0x2A33, 0x2A39, 0x2A40, 0x2A46, 0x2A4D, 0x2A53, 0x2A5A, 0x2A60 + .2byte 0x2A67, 0x2A6D, 0x2A73, 0x2A7A, 0x2A80, 0x2A87, 0x2A8D, 0x2A94 + .2byte 0x2A9A, 0x2AA0, 0x2AA7, 0x2AAD, 0x2AB4, 0x2ABA, 0x2AC1, 0x2AC7 + .2byte 0x2ACD, 0x2AD4, 0x2ADA, 0x2AE1, 0x2AE7, 0x2AED, 0x2AF4, 0x2AFA + .2byte 0x2B01, 0x2B07, 0x2B0D, 0x2B14, 0x2B1A, 0x2B21, 0x2B27, 0x2B2D + .2byte 0x2B34, 0x2B3A, 0x2B41, 0x2B47, 0x2B4D, 0x2B54, 0x2B5A, 0x2B61 + .2byte 0x2B67, 0x2B6D, 0x2B74, 0x2B7A, 0x2B80, 0x2B87, 0x2B8D, 0x2B94 + .2byte 0x2B9A, 0x2BA0, 0x2BA7, 0x2BAD, 0x2BB3, 0x2BBA, 0x2BC0, 0x2BC6 + .2byte 0x2BCD, 0x2BD3, 0x2BD9, 0x2BE0, 0x2BE6, 0x2BEC, 0x2BF3, 0x2BF9 + .2byte 0x2BFF, 0x2C06, 0x2C0C, 0x2C12, 0x2C19, 0x2C1F, 0x2C25, 0x2C2C + .2byte 0x2C32, 0x2C38, 0x2C3F, 0x2C45, 0x2C4B, 0x2C52, 0x2C58, 0x2C5E + .2byte 0x2C65, 0x2C6B, 0x2C71, 0x2C78, 0x2C7E, 0x2C84, 0x2C8B, 0x2C91 + .2byte 0x2C97, 0x2C9D, 0x2CA4, 0x2CAA, 0x2CB0, 0x2CB7, 0x2CBD, 0x2CC3 + .2byte 0x2CC9, 0x2CD0, 0x2CD6, 0x2CDC, 0x2CE3, 0x2CE9, 0x2CEF, 0x2CF5 + .2byte 0x2CFC, 0x2D02, 0x2D08, 0x2D0E, 0x2D15, 0x2D1B, 0x2D21, 0x2D28 + .2byte 0x2D2E, 0x2D34, 0x2D3A, 0x2D41, 0x2D47, 0x2D4D, 0x2D53, 0x2D5A + .2byte 0x2D60, 0x2D66, 0x2D6C, 0x2D73, 0x2D79, 0x2D7F, 0x2D85, 0x2D8B + .2byte 0x2D92, 0x2D98, 0x2D9E, 0x2DA4, 0x2DAB, 0x2DB1, 0x2DB7, 0x2DBD + .2byte 0x2DC3, 0x2DCA, 0x2DD0, 0x2DD6, 0x2DDC, 0x2DE3, 0x2DE9, 0x2DEF + .2byte 0x2DF5, 0x2DFB, 0x2E02, 0x2E08, 0x2E0E, 0x2E14, 0x2E1A, 0x2E21 + .2byte 0x2E27, 0x2E2D, 0x2E33, 0x2E39, 0x2E3F, 0x2E46, 0x2E4C, 0x2E52 + .2byte 0x2E58, 0x2E5E, 0x2E64, 0x2E6B, 0x2E71, 0x2E77, 0x2E7D, 0x2E83 + .2byte 0x2E89, 0x2E90, 0x2E96, 0x2E9C, 0x2EA2, 0x2EA8, 0x2EAE, 0x2EB5 + .2byte 0x2EBB, 0x2EC1, 0x2EC7, 0x2ECD, 0x2ED3, 0x2ED9, 0x2EE0, 0x2EE6 + .2byte 0x2EEC, 0x2EF2, 0x2EF8, 0x2EFE, 0x2F04, 0x2F0A, 0x2F11, 0x2F17 + .2byte 0x2F1D, 0x2F23, 0x2F29, 0x2F2F, 0x2F35, 0x2F3B, 0x2F42, 0x2F48 + .2byte 0x2F4E, 0x2F54, 0x2F5A, 0x2F60, 0x2F66, 0x2F6C, 0x2F72, 0x2F78 + .2byte 0x2F7E, 0x2F85, 0x2F8B, 0x2F91, 0x2F97, 0x2F9D, 0x2FA3, 0x2FA9 + .2byte 0x2FAF, 0x2FB5, 0x2FBB, 0x2FC1, 0x2FC7, 0x2FCE, 0x2FD4, 0x2FDA + .2byte 0x2FE0, 0x2FE6, 0x2FEC, 0x2FF2, 0x2FF8, 0x2FFE, 0x3004, 0x300A + .2byte 0x3010, 0x3016, 0x301C, 0x3022, 0x3028, 0x302E, 0x3034, 0x303A + .2byte 0x3040, 0x3046, 0x304D, 0x3053, 0x3059, 0x305F, 0x3065, 0x306B + .2byte 0x3071, 0x3077, 0x307D, 0x3083, 0x3089, 0x308F, 0x3095, 0x309B + .2byte 0x30A1, 0x30A7, 0x30AD, 0x30B3, 0x30B9, 0x30BF, 0x30C5, 0x30CB + .2byte 0x30D1, 0x30D7, 0x30DD, 0x30E3, 0x30E9, 0x30EF, 0x30F5, 0x30FB + .2byte 0x3101, 0x3107, 0x310C, 0x3112, 0x3118, 0x311E, 0x3124, 0x312A + .2byte 0x3130, 0x3136, 0x313C, 0x3142, 0x3148, 0x314E, 0x3154, 0x315A + .2byte 0x3160, 0x3166, 0x316C, 0x3172, 0x3178, 0x317E, 0x3184, 0x3189 + .2byte 0x318F, 0x3195, 0x319B, 0x31A1, 0x31A7, 0x31AD, 0x31B3, 0x31B9 + .2byte 0x31BF, 0x31C5, 0x31CB, 0x31D0, 0x31D6, 0x31DC, 0x31E2, 0x31E8 + .2byte 0x31EE, 0x31F4, 0x31FA, 0x3200, 0x3206, 0x320B, 0x3211, 0x3217 + .2byte 0x321D, 0x3223, 0x3229, 0x322F, 0x3235, 0x323B, 0x3240, 0x3246 + .2byte 0x324C, 0x3252, 0x3258, 0x325E, 0x3264, 0x3269, 0x326F, 0x3275 + .2byte 0x327B, 0x3281, 0x3287, 0x328D, 0x3292, 0x3298, 0x329E, 0x32A4 + .2byte 0x32AA, 0x32B0, 0x32B5, 0x32BB, 0x32C1, 0x32C7, 0x32CD, 0x32D3 + .2byte 0x32D8, 0x32DE, 0x32E4, 0x32EA, 0x32F0, 0x32F6, 0x32FB, 0x3301 + .2byte 0x3307, 0x330D, 0x3313, 0x3318, 0x331E, 0x3324, 0x332A, 0x3330 + .2byte 0x3335, 0x333B, 0x3341, 0x3347, 0x334D, 0x3352, 0x3358, 0x335E + .2byte 0x3364, 0x3369, 0x336F, 0x3375, 0x337B, 0x3380, 0x3386, 0x338C + .2byte 0x3392, 0x3398, 0x339D, 0x33A3, 0x33A9, 0x33AF, 0x33B4, 0x33BA + .2byte 0x33C0, 0x33C6, 0x33CB, 0x33D1, 0x33D7, 0x33DD, 0x33E2, 0x33E8 + .2byte 0x33EE, 0x33F3, 0x33F9, 0x33FF, 0x3405, 0x340A, 0x3410, 0x3416 + .2byte 0x341B, 0x3421, 0x3427, 0x342D, 0x3432, 0x3438, 0x343E, 0x3443 + .2byte 0x3449, 0x344F, 0x3455, 0x345A, 0x3460, 0x3466, 0x346B, 0x3471 + .2byte 0x3477, 0x347C, 0x3482, 0x3488, 0x348D, 0x3493, 0x3499, 0x349E + .2byte 0x34A4, 0x34AA, 0x34AF, 0x34B5, 0x34BB, 0x34C0, 0x34C6, 0x34CC + .2byte 0x34D1, 0x34D7, 0x34DD, 0x34E2, 0x34E8, 0x34EE, 0x34F3, 0x34F9 + .2byte 0x34FF, 0x3504, 0x350A, 0x350F, 0x3515, 0x351B, 0x3520, 0x3526 + .2byte 0x352C, 0x3531, 0x3537, 0x353C, 0x3542, 0x3548, 0x354D, 0x3553 + .2byte 0x3558, 0x355E, 0x3564, 0x3569, 0x356F, 0x3574, 0x357A, 0x3580 + .2byte 0x3585, 0x358B, 0x3590, 0x3596, 0x359C, 0x35A1, 0x35A7, 0x35AC + .2byte 0x35B2, 0x35B7, 0x35BD, 0x35C3, 0x35C8, 0x35CE, 0x35D3, 0x35D9 + .2byte 0x35DE, 0x35E4, 0x35E9, 0x35EF, 0x35F5, 0x35FA, 0x3600, 0x3605 + .2byte 0x360B, 0x3610, 0x3616, 0x361B, 0x3621, 0x3626, 0x362C, 0x3631 + .2byte 0x3637, 0x363C, 0x3642, 0x3647, 0x364D, 0x3653, 0x3658, 0x365E + .2byte 0x3663, 0x3669, 0x366E, 0x3674, 0x3679, 0x367F, 0x3684, 0x368A + .2byte 0x368F, 0x3695, 0x369A, 0x369F, 0x36A5, 0x36AA, 0x36B0, 0x36B5 + .2byte 0x36BB, 0x36C0, 0x36C6, 0x36CB, 0x36D1, 0x36D6, 0x36DC, 0x36E1 + .2byte 0x36E7, 0x36EC, 0x36F2, 0x36F7, 0x36FC, 0x3702, 0x3707, 0x370D + .2byte 0x3712, 0x3718, 0x371D, 0x3722, 0x3728, 0x372D, 0x3733, 0x3738 + .2byte 0x373E, 0x3743, 0x3748, 0x374E, 0x3753, 0x3759, 0x375E, 0x3764 + .2byte 0x3769, 0x376E, 0x3774, 0x3779, 0x377F, 0x3784, 0x3789, 0x378F + .2byte 0x3794, 0x379A, 0x379F, 0x37A4, 0x37AA, 0x37AF, 0x37B4, 0x37BA + .2byte 0x37BF, 0x37C5, 0x37CA, 0x37CF, 0x37D5, 0x37DA, 0x37DF, 0x37E5 + .2byte 0x37EA, 0x37EF, 0x37F5, 0x37FA, 0x3800, 0x3805, 0x380A, 0x3810 + .2byte 0x3815, 0x381A, 0x3820, 0x3825, 0x382A, 0x3830, 0x3835, 0x383A + .2byte 0x3840, 0x3845, 0x384A, 0x3850, 0x3855, 0x385A, 0x385F, 0x3865 + .2byte 0x386A, 0x386F, 0x3875, 0x387A, 0x387F, 0x3885, 0x388A, 0x388F + .2byte 0x3894, 0x389A, 0x389F, 0x38A4, 0x38AA, 0x38AF, 0x38B4, 0x38B9 + .2byte 0x38BF, 0x38C4, 0x38C9, 0x38CE, 0x38D4, 0x38D9, 0x38DE, 0x38E4 + .2byte 0x38E9, 0x38EE, 0x38F3, 0x38F9, 0x38FE, 0x3903, 0x3908, 0x390E + .2byte 0x3913, 0x3918, 0x391D, 0x3922, 0x3928, 0x392D, 0x3932, 0x3937 + .2byte 0x393D, 0x3942, 0x3947, 0x394C, 0x3951, 0x3957, 0x395C, 0x3961 + .2byte 0x3966, 0x396B, 0x3971, 0x3976, 0x397B, 0x3980, 0x3985, 0x398B + .2byte 0x3990, 0x3995, 0x399A, 0x399F, 0x39A5, 0x39AA, 0x39AF, 0x39B4 + .2byte 0x39B9, 0x39BE, 0x39C4, 0x39C9, 0x39CE, 0x39D3, 0x39D8, 0x39DD + .2byte 0x39E3, 0x39E8, 0x39ED, 0x39F2, 0x39F7, 0x39FC, 0x3A01, 0x3A07 + .2byte 0x3A0C, 0x3A11, 0x3A16, 0x3A1B, 0x3A20, 0x3A25, 0x3A2A, 0x3A30 + .2byte 0x3A35, 0x3A3A, 0x3A3F, 0x3A44, 0x3A49, 0x3A4E, 0x3A53, 0x3A58 + .2byte 0x3A5E, 0x3A63, 0x3A68, 0x3A6D, 0x3A72, 0x3A77, 0x3A7C, 0x3A81 + .2byte 0x3A86, 0x3A8B, 0x3A90, 0x3A95, 0x3A9B, 0x3AA0, 0x3AA5, 0x3AAA + .2byte 0x3AAF, 0x3AB4, 0x3AB9, 0x3ABE, 0x3AC3, 0x3AC8, 0x3ACD, 0x3AD2 + .2byte 0x3AD7, 0x3ADC, 0x3AE1, 0x3AE6, 0x3AEB, 0x3AF0, 0x3AF5, 0x3AFA + .2byte 0x3B00, 0x3B05, 0x3B0A, 0x3B0F, 0x3B14, 0x3B19, 0x3B1E, 0x3B23 + .2byte 0x3B28, 0x3B2D, 0x3B32, 0x3B37, 0x3B3C, 0x3B41, 0x3B46, 0x3B4B + .2byte 0x3B50, 0x3B55, 0x3B5A, 0x3B5F, 0x3B64, 0x3B69, 0x3B6E, 0x3B73 + .2byte 0x3B78, 0x3B7D, 0x3B81, 0x3B86, 0x3B8B, 0x3B90, 0x3B95, 0x3B9A + .2byte 0x3B9F, 0x3BA4, 0x3BA9, 0x3BAE, 0x3BB3, 0x3BB8, 0x3BBD, 0x3BC2 + .2byte 0x3BC7, 0x3BCC, 0x3BD1, 0x3BD6, 0x3BDB, 0x3BE0, 0x3BE4, 0x3BE9 + .2byte 0x3BEE, 0x3BF3, 0x3BF8, 0x3BFD, 0x3C02, 0x3C07, 0x3C0C, 0x3C11 + .2byte 0x3C16, 0x3C1A, 0x3C1F, 0x3C24, 0x3C29, 0x3C2E, 0x3C33, 0x3C38 + .2byte 0x3C3D, 0x3C42, 0x3C46, 0x3C4B, 0x3C50, 0x3C55, 0x3C5A, 0x3C5F + .2byte 0x3C64, 0x3C69, 0x3C6D, 0x3C72, 0x3C77, 0x3C7C, 0x3C81, 0x3C86 + .2byte 0x3C8B, 0x3C8F, 0x3C94, 0x3C99, 0x3C9E, 0x3CA3, 0x3CA8, 0x3CAC + .2byte 0x3CB1, 0x3CB6, 0x3CBB, 0x3CC0, 0x3CC5, 0x3CC9, 0x3CCE, 0x3CD3 + .2byte 0x3CD8, 0x3CDD, 0x3CE1, 0x3CE6, 0x3CEB, 0x3CF0, 0x3CF5, 0x3CF9 + .2byte 0x3CFE, 0x3D03, 0x3D08, 0x3D0D, 0x3D11, 0x3D16, 0x3D1B, 0x3D20 + .2byte 0x3D25, 0x3D29, 0x3D2E, 0x3D33, 0x3D38, 0x3D3C, 0x3D41, 0x3D46 + .2byte 0x3D4B, 0x3D4F, 0x3D54, 0x3D59, 0x3D5E, 0x3D62, 0x3D67, 0x3D6C + .2byte 0x3D71, 0x3D75, 0x3D7A, 0x3D7F, 0x3D84, 0x3D88, 0x3D8D, 0x3D92 + .2byte 0x3D96, 0x3D9B, 0x3DA0, 0x3DA5, 0x3DA9, 0x3DAE, 0x3DB3, 0x3DB7 + .2byte 0x3DBC, 0x3DC1, 0x3DC6, 0x3DCA, 0x3DCF, 0x3DD4, 0x3DD8, 0x3DDD + .2byte 0x3DE2, 0x3DE6, 0x3DEB, 0x3DF0, 0x3DF4, 0x3DF9, 0x3DFE, 0x3E02 + .2byte 0x3E07, 0x3E0C, 0x3E10, 0x3E15, 0x3E1A, 0x3E1E, 0x3E23, 0x3E28 + .2byte 0x3E2C, 0x3E31, 0x3E36, 0x3E3A, 0x3E3F, 0x3E43, 0x3E48, 0x3E4D + .2byte 0x3E51, 0x3E56, 0x3E5B, 0x3E5F, 0x3E64, 0x3E68, 0x3E6D, 0x3E72 + .2byte 0x3E76, 0x3E7B, 0x3E7F, 0x3E84, 0x3E89, 0x3E8D, 0x3E92, 0x3E96 + .2byte 0x3E9B, 0x3EA0, 0x3EA4, 0x3EA9, 0x3EAD, 0x3EB2, 0x3EB7, 0x3EBB + .2byte 0x3EC0, 0x3EC4, 0x3EC9, 0x3ECD, 0x3ED2, 0x3ED6, 0x3EDB, 0x3EE0 + .2byte 0x3EE4, 0x3EE9, 0x3EED, 0x3EF2, 0x3EF6, 0x3EFB, 0x3EFF, 0x3F04 + .2byte 0x3F08, 0x3F0D, 0x3F12, 0x3F16, 0x3F1B, 0x3F1F, 0x3F24, 0x3F28 + .2byte 0x3F2D, 0x3F31, 0x3F36, 0x3F3A, 0x3F3F, 0x3F43, 0x3F48, 0x3F4C + .2byte 0x3F51, 0x3F55, 0x3F5A, 0x3F5E, 0x3F63, 0x3F67, 0x3F6C, 0x3F70 + .2byte 0x3F75, 0x3F79, 0x3F7D, 0x3F82, 0x3F86, 0x3F8B, 0x3F8F, 0x3F94 + .2byte 0x3F98, 0x3F9D, 0x3FA1, 0x3FA6, 0x3FAA, 0x3FAE, 0x3FB3, 0x3FB7 + .2byte 0x3FBC, 0x3FC0, 0x3FC5, 0x3FC9, 0x3FCE, 0x3FD2, 0x3FD6, 0x3FDB + .2byte 0x3FDF, 0x3FE4, 0x3FE8, 0x3FEC, 0x3FF1, 0x3FF5, 0x3FFA, 0x3FFE + .2byte 0x4002, 0x4007, 0x400B, 0x4010, 0x4014, 0x4018, 0x401D, 0x4021 + .2byte 0x4026, 0x402A, 0x402E, 0x4033, 0x4037, 0x403B, 0x4040, 0x4044 + .2byte 0x4048, 0x404D, 0x4051, 0x4056, 0x405A, 0x405E, 0x4063, 0x4067 + .2byte 0x406B, 0x4070, 0x4074, 0x4078, 0x407D, 0x4081, 0x4085, 0x408A + .2byte 0x408E, 0x4092, 0x4097, 0x409B, 0x409F, 0x40A3, 0x40A8, 0x40AC + .2byte 0x40B0, 0x40B5, 0x40B9, 0x40BD, 0x40C2, 0x40C6, 0x40CA, 0x40CE + .2byte 0x40D3, 0x40D7, 0x40DB, 0x40E0, 0x40E4, 0x40E8, 0x40EC, 0x40F1 + .2byte 0x40F5, 0x40F9, 0x40FD, 0x4102, 0x4106, 0x410A, 0x410E, 0x4113 + .2byte 0x4117, 0x411B, 0x411F, 0x4124, 0x4128, 0x412C, 0x4130, 0x4135 + .2byte 0x4139, 0x413D, 0x4141, 0x4145, 0x414A, 0x414E, 0x4152, 0x4156 + .2byte 0x415A, 0x415F, 0x4163, 0x4167, 0x416B, 0x416F, 0x4174, 0x4178 + .2byte 0x417C, 0x4180, 0x4184, 0x4189, 0x418D, 0x4191, 0x4195, 0x4199 + .2byte 0x419D, 0x41A2, 0x41A6, 0x41AA, 0x41AE, 0x41B2, 0x41B6, 0x41BA + .2byte 0x41BF, 0x41C3, 0x41C7, 0x41CB, 0x41CF, 0x41D3, 0x41D7, 0x41DC + .2byte 0x41E0, 0x41E4, 0x41E8, 0x41EC, 0x41F0, 0x41F4, 0x41F8, 0x41FC + .2byte 0x4201, 0x4205, 0x4209, 0x420D, 0x4211, 0x4215, 0x4219, 0x421D + .2byte 0x4221, 0x4225, 0x4229, 0x422E, 0x4232, 0x4236, 0x423A, 0x423E + .2byte 0x4242, 0x4246, 0x424A, 0x424E, 0x4252, 0x4256, 0x425A, 0x425E + .2byte 0x4262, 0x4266, 0x426A, 0x426E, 0x4272, 0x4277, 0x427B, 0x427F + .2byte 0x4283, 0x4287, 0x428B, 0x428F, 0x4293, 0x4297, 0x429B, 0x429F + .2byte 0x42A3, 0x42A7, 0x42AB, 0x42AF, 0x42B3, 0x42B7, 0x42BB, 0x42BF + .2byte 0x42C3, 0x42C7, 0x42CB, 0x42CF, 0x42D3, 0x42D7, 0x42DB, 0x42DE + .2byte 0x42E2, 0x42E6, 0x42EA, 0x42EE, 0x42F2, 0x42F6, 0x42FA, 0x42FE + .2byte 0x4302, 0x4306, 0x430A, 0x430E, 0x4312, 0x4316, 0x431A, 0x431E + .2byte 0x4322, 0x4325, 0x4329, 0x432D, 0x4331, 0x4335, 0x4339, 0x433D + .2byte 0x4341, 0x4345, 0x4349, 0x434D, 0x4350, 0x4354, 0x4358, 0x435C + .2byte 0x4360, 0x4364, 0x4368, 0x436C, 0x436F, 0x4373, 0x4377, 0x437B + .2byte 0x437F, 0x4383, 0x4387, 0x438B, 0x438E, 0x4392, 0x4396, 0x439A + .2byte 0x439E, 0x43A2, 0x43A5, 0x43A9, 0x43AD, 0x43B1, 0x43B5, 0x43B9 + .2byte 0x43BC, 0x43C0, 0x43C4, 0x43C8, 0x43CC, 0x43CF, 0x43D3, 0x43D7 + .2byte 0x43DB, 0x43DF, 0x43E3, 0x43E6, 0x43EA, 0x43EE, 0x43F2, 0x43F5 + .2byte 0x43F9, 0x43FD, 0x4401, 0x4405, 0x4408, 0x440C, 0x4410, 0x4414 + .2byte 0x4417, 0x441B, 0x441F, 0x4423, 0x4426, 0x442A, 0x442E, 0x4432 + .2byte 0x4435, 0x4439, 0x443D, 0x4441, 0x4444, 0x4448, 0x444C, 0x4450 + .2byte 0x4453, 0x4457, 0x445B, 0x445E, 0x4462, 0x4466, 0x446A, 0x446D + .2byte 0x4471, 0x4475, 0x4478, 0x447C, 0x4480, 0x4483, 0x4487, 0x448B + .2byte 0x448E, 0x4492, 0x4496, 0x4499, 0x449D, 0x44A1, 0x44A4, 0x44A8 + .2byte 0x44AC, 0x44AF, 0x44B3, 0x44B7, 0x44BA, 0x44BE, 0x44C2, 0x44C5 + .2byte 0x44C9, 0x44CD, 0x44D0, 0x44D4, 0x44D7, 0x44DB, 0x44DF, 0x44E2 + .2byte 0x44E6, 0x44EA, 0x44ED, 0x44F1, 0x44F4, 0x44F8, 0x44FC, 0x44FF + .2byte 0x4503, 0x4506, 0x450A, 0x450E, 0x4511, 0x4515, 0x4518, 0x451C + .2byte 0x451F, 0x4523, 0x4527, 0x452A, 0x452E, 0x4531, 0x4535, 0x4538 + .2byte 0x453C, 0x4540, 0x4543, 0x4547, 0x454A, 0x454E, 0x4551, 0x4555 + .2byte 0x4558, 0x455C, 0x455F, 0x4563, 0x4566, 0x456A, 0x456D, 0x4571 + .2byte 0x4574, 0x4578, 0x457B, 0x457F, 0x4582, 0x4586, 0x4589, 0x458D + .2byte 0x4590, 0x4594, 0x4597, 0x459B, 0x459E, 0x45A2, 0x45A5, 0x45A9 + .2byte 0x45AC, 0x45B0, 0x45B3, 0x45B7, 0x45BA, 0x45BE, 0x45C1, 0x45C5 + .2byte 0x45C8, 0x45CB, 0x45CF, 0x45D2, 0x45D6, 0x45D9, 0x45DD, 0x45E0 + .2byte 0x45E3, 0x45E7, 0x45EA, 0x45EE, 0x45F1, 0x45F5, 0x45F8, 0x45FB + .2byte 0x45FF, 0x4602, 0x4606, 0x4609, 0x460C, 0x4610, 0x4613, 0x4617 + .2byte 0x461A, 0x461D, 0x4621, 0x4624, 0x4628, 0x462B, 0x462E, 0x4632 + .2byte 0x4635, 0x4638, 0x463C, 0x463F, 0x4642, 0x4646, 0x4649, 0x464C + .2byte 0x4650, 0x4653, 0x4656, 0x465A, 0x465D, 0x4660, 0x4664, 0x4667 + .2byte 0x466A, 0x466E, 0x4671, 0x4674, 0x4678, 0x467B, 0x467E, 0x4682 + .2byte 0x4685, 0x4688, 0x468C, 0x468F, 0x4692, 0x4695, 0x4699, 0x469C + .2byte 0x469F, 0x46A3, 0x46A6, 0x46A9, 0x46AC, 0x46B0, 0x46B3, 0x46B6 + .2byte 0x46B9, 0x46BD, 0x46C0, 0x46C3, 0x46C6, 0x46CA, 0x46CD, 0x46D0 + .2byte 0x46D3, 0x46D7, 0x46DA, 0x46DD, 0x46E0, 0x46E4, 0x46E7, 0x46EA + .2byte 0x46ED, 0x46F0, 0x46F4, 0x46F7, 0x46FA, 0x46FD, 0x4700, 0x4704 + .2byte 0x4707, 0x470A, 0x470D, 0x4710, 0x4714, 0x4717, 0x471A, 0x471D + .2byte 0x4720, 0x4723, 0x4727, 0x472A, 0x472D, 0x4730, 0x4733, 0x4736 + .2byte 0x473A, 0x473D, 0x4740, 0x4743, 0x4746, 0x4749, 0x474C, 0x4750 + .2byte 0x4753, 0x4756, 0x4759, 0x475C, 0x475F, 0x4762, 0x4765, 0x4769 + .2byte 0x476C, 0x476F, 0x4772, 0x4775, 0x4778, 0x477B, 0x477E, 0x4781 + .2byte 0x4784, 0x4788, 0x478B, 0x478E, 0x4791, 0x4794, 0x4797, 0x479A + .2byte 0x479D, 0x47A0, 0x47A3, 0x47A6, 0x47A9, 0x47AC, 0x47AF, 0x47B2 + .2byte 0x47B6, 0x47B9, 0x47BC, 0x47BF, 0x47C2, 0x47C5, 0x47C8, 0x47CB + .2byte 0x47CE, 0x47D1, 0x47D4, 0x47D7, 0x47DA, 0x47DD, 0x47E0, 0x47E3 + .2byte 0x47E6, 0x47E9, 0x47EC, 0x47EF, 0x47F2, 0x47F5, 0x47F8, 0x47FB + .2byte 0x47FE, 0x4801, 0x4804, 0x4807, 0x480A, 0x480D, 0x4810, 0x4813 + .2byte 0x4816, 0x4818, 0x481B, 0x481E, 0x4821, 0x4824, 0x4827, 0x482A + .2byte 0x482D, 0x4830, 0x4833, 0x4836, 0x4839, 0x483C, 0x483F, 0x4842 + .2byte 0x4844, 0x4847, 0x484A, 0x484D, 0x4850, 0x4853, 0x4856, 0x4859 + .2byte 0x485C, 0x485F, 0x4861, 0x4864, 0x4867, 0x486A, 0x486D, 0x4870 + .2byte 0x4873, 0x4876, 0x4878, 0x487B, 0x487E, 0x4881, 0x4884, 0x4887 + .2byte 0x488A, 0x488C, 0x488F, 0x4892, 0x4895, 0x4898, 0x489B, 0x489D + .2byte 0x48A0, 0x48A3, 0x48A6, 0x48A9, 0x48AC, 0x48AE, 0x48B1, 0x48B4 + .2byte 0x48B7, 0x48BA, 0x48BC, 0x48BF, 0x48C2, 0x48C5, 0x48C8, 0x48CA + .2byte 0x48CD, 0x48D0, 0x48D3, 0x48D6, 0x48D8, 0x48DB, 0x48DE, 0x48E1 + .2byte 0x48E3, 0x48E6, 0x48E9, 0x48EC, 0x48EE, 0x48F1, 0x48F4, 0x48F7 + .2byte 0x48F9, 0x48FC, 0x48FF, 0x4902, 0x4904, 0x4907, 0x490A, 0x490C + .2byte 0x490F, 0x4912, 0x4915, 0x4917, 0x491A, 0x491D, 0x491F, 0x4922 + .2byte 0x4925, 0x4928, 0x492A, 0x492D, 0x4930, 0x4932, 0x4935, 0x4938 + .2byte 0x493A, 0x493D, 0x4940, 0x4942, 0x4945, 0x4948, 0x494A, 0x494D + .2byte 0x4950, 0x4952, 0x4955, 0x4958, 0x495A, 0x495D, 0x495F, 0x4962 + .2byte 0x4965, 0x4967, 0x496A, 0x496D, 0x496F, 0x4972, 0x4974, 0x4977 + .2byte 0x497A, 0x497C, 0x497F, 0x4981, 0x4984, 0x4987, 0x4989, 0x498C + .2byte 0x498E, 0x4991, 0x4994, 0x4996, 0x4999, 0x499B, 0x499E, 0x49A0 + .2byte 0x49A3, 0x49A6, 0x49A8, 0x49AB, 0x49AD, 0x49B0, 0x49B2, 0x49B5 + .2byte 0x49B7, 0x49BA, 0x49BC, 0x49BF, 0x49C2, 0x49C4, 0x49C7, 0x49C9 + .2byte 0x49CC, 0x49CE, 0x49D1, 0x49D3, 0x49D6, 0x49D8, 0x49DB, 0x49DD + .2byte 0x49E0, 0x49E2, 0x49E5, 0x49E7, 0x49EA, 0x49EC, 0x49EF, 0x49F1 + .2byte 0x49F4, 0x49F6, 0x49F8, 0x49FB, 0x49FD, 0x4A00, 0x4A02, 0x4A05 + .2byte 0x4A07, 0x4A0A, 0x4A0C, 0x4A0F, 0x4A11, 0x4A13, 0x4A16, 0x4A18 + .2byte 0x4A1B, 0x4A1D, 0x4A20, 0x4A22, 0x4A24, 0x4A27, 0x4A29, 0x4A2C + .2byte 0x4A2E, 0x4A30, 0x4A33, 0x4A35, 0x4A38, 0x4A3A, 0x4A3C, 0x4A3F + .2byte 0x4A41, 0x4A44, 0x4A46, 0x4A48, 0x4A4B, 0x4A4D, 0x4A4F, 0x4A52 + .2byte 0x4A54, 0x4A57, 0x4A59, 0x4A5B, 0x4A5E, 0x4A60, 0x4A62, 0x4A65 + .2byte 0x4A67, 0x4A69, 0x4A6C, 0x4A6E, 0x4A70, 0x4A73, 0x4A75, 0x4A77 + .2byte 0x4A7A, 0x4A7C, 0x4A7E, 0x4A81, 0x4A83, 0x4A85, 0x4A87, 0x4A8A + .2byte 0x4A8C, 0x4A8E, 0x4A91, 0x4A93, 0x4A95, 0x4A97, 0x4A9A, 0x4A9C + .2byte 0x4A9E, 0x4AA1, 0x4AA3, 0x4AA5, 0x4AA7, 0x4AAA, 0x4AAC, 0x4AAE + .2byte 0x4AB0, 0x4AB3, 0x4AB5, 0x4AB7, 0x4AB9, 0x4ABC, 0x4ABE, 0x4AC0 + .2byte 0x4AC2, 0x4AC5, 0x4AC7, 0x4AC9, 0x4ACB, 0x4ACD, 0x4AD0, 0x4AD2 + .2byte 0x4AD4, 0x4AD6, 0x4AD8, 0x4ADB, 0x4ADD, 0x4ADF, 0x4AE1, 0x4AE3 + .2byte 0x4AE6, 0x4AE8, 0x4AEA, 0x4AEC, 0x4AEE, 0x4AF0, 0x4AF3, 0x4AF5 + .2byte 0x4AF7, 0x4AF9, 0x4AFB, 0x4AFD, 0x4B00, 0x4B02, 0x4B04, 0x4B06 + .2byte 0x4B08, 0x4B0A, 0x4B0C, 0x4B0F, 0x4B11, 0x4B13, 0x4B15, 0x4B17 + .2byte 0x4B19, 0x4B1B, 0x4B1D, 0x4B1F, 0x4B22, 0x4B24, 0x4B26, 0x4B28 + .2byte 0x4B2A, 0x4B2C, 0x4B2E, 0x4B30, 0x4B32, 0x4B34, 0x4B36, 0x4B38 + .2byte 0x4B3B, 0x4B3D, 0x4B3F, 0x4B41, 0x4B43, 0x4B45, 0x4B47, 0x4B49 + .2byte 0x4B4B, 0x4B4D, 0x4B4F, 0x4B51, 0x4B53, 0x4B55, 0x4B57, 0x4B59 + .2byte 0x4B5B, 0x4B5D, 0x4B5F, 0x4B61, 0x4B63, 0x4B65, 0x4B67, 0x4B69 + .2byte 0x4B6B, 0x4B6D, 0x4B6F, 0x4B71, 0x4B73, 0x4B75, 0x4B77, 0x4B79 + .2byte 0x4B7B, 0x4B7D, 0x4B7F, 0x4B81, 0x4B83, 0x4B85, 0x4B87, 0x4B89 + .2byte 0x4B8B, 0x4B8D, 0x4B8F, 0x4B91, 0x4B93, 0x4B95, 0x4B97, 0x4B99 + .2byte 0x4B9B, 0x4B9D, 0x4B9E, 0x4BA0, 0x4BA2, 0x4BA4, 0x4BA6, 0x4BA8 + .2byte 0x4BAA, 0x4BAC, 0x4BAE, 0x4BB0, 0x4BB2, 0x4BB3, 0x4BB5, 0x4BB7 + .2byte 0x4BB9, 0x4BBB, 0x4BBD, 0x4BBF, 0x4BC1, 0x4BC3, 0x4BC4, 0x4BC6 + .2byte 0x4BC8, 0x4BCA, 0x4BCC, 0x4BCE, 0x4BD0, 0x4BD1, 0x4BD3, 0x4BD5 + .2byte 0x4BD7, 0x4BD9, 0x4BDB, 0x4BDC, 0x4BDE, 0x4BE0, 0x4BE2, 0x4BE4 + .2byte 0x4BE6, 0x4BE7, 0x4BE9, 0x4BEB, 0x4BED, 0x4BEF, 0x4BF0, 0x4BF2 + .2byte 0x4BF4, 0x4BF6, 0x4BF8, 0x4BF9, 0x4BFB, 0x4BFD, 0x4BFF, 0x4C01 + .2byte 0x4C02, 0x4C04, 0x4C06, 0x4C08, 0x4C09, 0x4C0B, 0x4C0D, 0x4C0F + .2byte 0x4C10, 0x4C12, 0x4C14, 0x4C16, 0x4C17, 0x4C19, 0x4C1B, 0x4C1D + .2byte 0x4C1E, 0x4C20, 0x4C22, 0x4C23, 0x4C25, 0x4C27, 0x4C29, 0x4C2A + .2byte 0x4C2C, 0x4C2E, 0x4C2F, 0x4C31, 0x4C33, 0x4C34, 0x4C36, 0x4C38 + .2byte 0x4C3A, 0x4C3B, 0x4C3D, 0x4C3F, 0x4C40, 0x4C42, 0x4C44, 0x4C45 + .2byte 0x4C47, 0x4C49, 0x4C4A, 0x4C4C, 0x4C4E, 0x4C4F, 0x4C51, 0x4C52 + .2byte 0x4C54, 0x4C56, 0x4C57, 0x4C59, 0x4C5B, 0x4C5C, 0x4C5E, 0x4C5F + .2byte 0x4C61, 0x4C63, 0x4C64, 0x4C66, 0x4C67, 0x4C69, 0x4C6B, 0x4C6C + .2byte 0x4C6E, 0x4C6F, 0x4C71, 0x4C73, 0x4C74, 0x4C76, 0x4C77, 0x4C79 + .2byte 0x4C7A, 0x4C7C, 0x4C7E, 0x4C7F, 0x4C81, 0x4C82, 0x4C84, 0x4C85 + .2byte 0x4C87, 0x4C88, 0x4C8A, 0x4C8C, 0x4C8D, 0x4C8F, 0x4C90, 0x4C92 + .2byte 0x4C93, 0x4C95, 0x4C96, 0x4C98, 0x4C99, 0x4C9B, 0x4C9C, 0x4C9E + .2byte 0x4C9F, 0x4CA1, 0x4CA2, 0x4CA4, 0x4CA5, 0x4CA7, 0x4CA8, 0x4CAA + .2byte 0x4CAB, 0x4CAD, 0x4CAE, 0x4CAF, 0x4CB1, 0x4CB2, 0x4CB4, 0x4CB5 + .2byte 0x4CB7, 0x4CB8, 0x4CBA, 0x4CBB, 0x4CBD, 0x4CBE, 0x4CBF, 0x4CC1 + .2byte 0x4CC2, 0x4CC4, 0x4CC5, 0x4CC7, 0x4CC8, 0x4CC9, 0x4CCB, 0x4CCC + .2byte 0x4CCE, 0x4CCF, 0x4CD0, 0x4CD2, 0x4CD3, 0x4CD5, 0x4CD6, 0x4CD7 + .2byte 0x4CD9, 0x4CDA, 0x4CDC, 0x4CDD, 0x4CDE, 0x4CE0, 0x4CE1, 0x4CE2 + .2byte 0x4CE4, 0x4CE5, 0x4CE6, 0x4CE8, 0x4CE9, 0x4CEA, 0x4CEC, 0x4CED + .2byte 0x4CEE, 0x4CF0, 0x4CF1, 0x4CF2, 0x4CF4, 0x4CF5, 0x4CF6, 0x4CF8 + .2byte 0x4CF9, 0x4CFA, 0x4CFC, 0x4CFD, 0x4CFE, 0x4D00, 0x4D01, 0x4D02 + .2byte 0x4D03, 0x4D05, 0x4D06, 0x4D07, 0x4D09, 0x4D0A, 0x4D0B, 0x4D0C + .2byte 0x4D0E, 0x4D0F, 0x4D10, 0x4D11, 0x4D13, 0x4D14, 0x4D15, 0x4D16 + .2byte 0x4D18, 0x4D19, 0x4D1A, 0x4D1B, 0x4D1D, 0x4D1E, 0x4D1F, 0x4D20 + .2byte 0x4D22, 0x4D23, 0x4D24, 0x4D25, 0x4D26, 0x4D28, 0x4D29, 0x4D2A + .2byte 0x4D2B, 0x4D2C, 0x4D2E, 0x4D2F, 0x4D30, 0x4D31, 0x4D32, 0x4D33 + .2byte 0x4D35, 0x4D36, 0x4D37, 0x4D38, 0x4D39, 0x4D3A, 0x4D3C, 0x4D3D + .2byte 0x4D3E, 0x4D3F, 0x4D40, 0x4D41, 0x4D43, 0x4D44, 0x4D45, 0x4D46 + .2byte 0x4D47, 0x4D48, 0x4D49, 0x4D4A, 0x4D4C, 0x4D4D, 0x4D4E, 0x4D4F + .2byte 0x4D50, 0x4D51, 0x4D52, 0x4D53, 0x4D54, 0x4D55, 0x4D57, 0x4D58 + .2byte 0x4D59, 0x4D5A, 0x4D5B, 0x4D5C, 0x4D5D, 0x4D5E, 0x4D5F, 0x4D60 + .2byte 0x4D61, 0x4D62, 0x4D63, 0x4D64, 0x4D65, 0x4D66, 0x4D67, 0x4D69 + .2byte 0x4D6A, 0x4D6B, 0x4D6C, 0x4D6D, 0x4D6E, 0x4D6F, 0x4D70, 0x4D71 + .2byte 0x4D72, 0x4D73, 0x4D74, 0x4D75, 0x4D76, 0x4D77, 0x4D78, 0x4D79 + .2byte 0x4D7A, 0x4D7B, 0x4D7C, 0x4D7D, 0x4D7E, 0x4D7F, 0x4D80, 0x4D81 + .2byte 0x4D81, 0x4D82, 0x4D83, 0x4D84, 0x4D85, 0x4D86, 0x4D87, 0x4D88 + .2byte 0x4D89, 0x4D8A, 0x4D8B, 0x4D8C, 0x4D8D, 0x4D8E, 0x4D8F, 0x4D90 + .2byte 0x4D91, 0x4D91, 0x4D92, 0x4D93, 0x4D94, 0x4D95, 0x4D96, 0x4D97 + .2byte 0x4D98, 0x4D99, 0x4D9A, 0x4D9A, 0x4D9B, 0x4D9C, 0x4D9D, 0x4D9E + .2byte 0x4D9F, 0x4DA0, 0x4DA1, 0x4DA1, 0x4DA2, 0x4DA3, 0x4DA4, 0x4DA5 + .2byte 0x4DA6, 0x4DA6, 0x4DA7, 0x4DA8, 0x4DA9, 0x4DAA, 0x4DAB, 0x4DAB + .2byte 0x4DAC, 0x4DAD, 0x4DAE, 0x4DAF, 0x4DB0, 0x4DB0, 0x4DB1, 0x4DB2 + .2byte 0x4DB3, 0x4DB4, 0x4DB4, 0x4DB5, 0x4DB6, 0x4DB7, 0x4DB8, 0x4DB8 + .2byte 0x4DB9, 0x4DBA, 0x4DBB, 0x4DBB, 0x4DBC, 0x4DBD, 0x4DBE, 0x4DBE + .2byte 0x4DBF, 0x4DC0, 0x4DC1, 0x4DC1, 0x4DC2, 0x4DC3, 0x4DC4, 0x4DC4 + .2byte 0x4DC5, 0x4DC6, 0x4DC7, 0x4DC7, 0x4DC8, 0x4DC9, 0x4DC9, 0x4DCA + .2byte 0x4DCB, 0x4DCC, 0x4DCC, 0x4DCD, 0x4DCE, 0x4DCE, 0x4DCF, 0x4DD0 + .2byte 0x4DD0, 0x4DD1, 0x4DD2, 0x4DD2, 0x4DD3, 0x4DD4, 0x4DD4, 0x4DD5 + .2byte 0x4DD6, 0x4DD6, 0x4DD7, 0x4DD8, 0x4DD8, 0x4DD9, 0x4DDA, 0x4DDA + .2byte 0x4DDB, 0x4DDC, 0x4DDC, 0x4DDD, 0x4DDD, 0x4DDE, 0x4DDF, 0x4DDF + .2byte 0x4DE0, 0x4DE1, 0x4DE1, 0x4DE2, 0x4DE2, 0x4DE3, 0x4DE4, 0x4DE4 + .2byte 0x4DE5, 0x4DE5, 0x4DE6, 0x4DE6, 0x4DE7, 0x4DE8, 0x4DE8, 0x4DE9 + .2byte 0x4DE9, 0x4DEA, 0x4DEA, 0x4DEB, 0x4DEC, 0x4DEC, 0x4DED, 0x4DED + .2byte 0x4DEE, 0x4DEE, 0x4DEF, 0x4DEF, 0x4DF0, 0x4DF0, 0x4DF1, 0x4DF1 + .2byte 0x4DF2, 0x4DF2, 0x4DF3, 0x4DF3, 0x4DF4, 0x4DF5, 0x4DF5, 0x4DF6 + .2byte 0x4DF6, 0x4DF6, 0x4DF7, 0x4DF7, 0x4DF8, 0x4DF8, 0x4DF9, 0x4DF9 + .2byte 0x4DFA, 0x4DFA, 0x4DFB, 0x4DFB, 0x4DFC, 0x4DFC, 0x4DFD, 0x4DFD + .2byte 0x4DFE, 0x4DFE, 0x4DFE, 0x4DFF, 0x4DFF, 0x4E00, 0x4E00, 0x4E01 + .2byte 0x4E01, 0x4E01, 0x4E02, 0x4E02, 0x4E03, 0x4E03, 0x4E03, 0x4E04 + .2byte 0x4E04, 0x4E05, 0x4E05, 0x4E05, 0x4E06, 0x4E06, 0x4E07, 0x4E07 + .2byte 0x4E07, 0x4E08, 0x4E08, 0x4E09, 0x4E09, 0x4E09, 0x4E0A, 0x4E0A + .2byte 0x4E0A, 0x4E0B, 0x4E0B, 0x4E0B, 0x4E0C, 0x4E0C, 0x4E0C, 0x4E0D + .2byte 0x4E0D, 0x4E0D, 0x4E0E, 0x4E0E, 0x4E0E, 0x4E0F, 0x4E0F, 0x4E0F + .2byte 0x4E10, 0x4E10, 0x4E10, 0x4E10, 0x4E11, 0x4E11, 0x4E11, 0x4E12 + .2byte 0x4E12, 0x4E12, 0x4E13, 0x4E13, 0x4E13, 0x4E13, 0x4E14, 0x4E14 + .2byte 0x4E14, 0x4E14, 0x4E15, 0x4E15, 0x4E15, 0x4E15, 0x4E16, 0x4E16 + .2byte 0x4E16, 0x4E16, 0x4E17, 0x4E17, 0x4E17, 0x4E17, 0x4E17, 0x4E18 + .2byte 0x4E18, 0x4E18, 0x4E18, 0x4E18, 0x4E19, 0x4E19, 0x4E19, 0x4E19 + .2byte 0x4E19, 0x4E1A, 0x4E1A, 0x4E1A, 0x4E1A, 0x4E1A, 0x4E1B, 0x4E1B + .2byte 0x4E1B, 0x4E1B, 0x4E1B, 0x4E1B, 0x4E1C, 0x4E1C, 0x4E1C, 0x4E1C + .2byte 0x4E1C, 0x4E1C, 0x4E1C, 0x4E1D, 0x4E1D, 0x4E1D, 0x4E1D, 0x4E1D + .2byte 0x4E1D, 0x4E1D, 0x4E1D, 0x4E1D, 0x4E1E, 0x4E1E, 0x4E1E, 0x4E1E + .2byte 0x4E1E, 0x4E1E, 0x4E1E, 0x4E1E, 0x4E1E, 0x4E1E, 0x4E1F, 0x4E1F + .2byte 0x4E1F, 0x4E1F, 0x4E1F, 0x4E1F, 0x4E1F, 0x4E1F, 0x4E1F, 0x4E1F + .2byte 0x4E1F, 0x4E1F, 0x4E1F, 0x4E1F, 0x4E1F, 0x4E1F, 0x4E1F, 0x4E1F + .2byte 0x4E1F, 0x4E1F, 0x4E1F, 0x4E1F, 0x4E1F, 0x4E1F, 0x4E1F, 0x4E1F + .2byte 0x4E20 gEmptyOamData:: @ 0x08057C46 .4byte 0x00F000F4, 0x00000000 @@ -207,7 +720,23 @@ gGBAButtonIcons_Pals:: @ 0x0852B668 gOptionsSprites_Gfx:: @ 0x0852B868 .incbin "graphics/options/sprites.4bpp" -.incbin "baserom.gba", 0x52D888, 0x6A4AD8 - 0x52D888 +.incbin "baserom.gba", 0x52D888, 0x6A4AA0 - 0x52D888 + +gIntrTableTemplate:: @ 0x086A4AA0 + .4byte SerialIntr + .4byte Timer3Intr + .4byte HBlankIntr + .4byte IntrDummy + .4byte VCountIntr + .4byte IntrDummy + .4byte IntrDummy + .4byte IntrDummy + .4byte IntrDummy + .4byte IntrDummy + .4byte IntrDummy + .4byte IntrDummy + .4byte IntrDummy + .4byte IntrDummy gMainFuncs:: @ 0x086A4AD8 .4byte IntroMain diff --git a/include/main.h b/include/main.h index a25afdb..a0162b7 100755 --- a/include/main.h +++ b/include/main.h @@ -7,6 +7,7 @@ #define MAX_SPRITES_IN_GROUP 22 typedef void (*StateFunc)(void); +typedef void (*IntrFunc)(void); struct MainUnk2E8 { @@ -53,18 +54,24 @@ struct Main /*0x18*/ u16 newKeys; /*0x1A*/ u16 releasedKeys; /*0x1C*/ u16 heldKeys; - /*0x1E*/ u8 filler1E[0x8]; + /*0x1E*/ u8 filler1E[0x2]; + /*0x20*/ u16 unk20; + /*0x22*/ u8 filler22[0x4]; /*0x26*/ s16 vCount; /*0x28*/ s16 unk28; /*0x2A*/ s16 unk2A; /*0x2C*/ s16 unk2C; - /*0x2E*/ u8 filler2E[0x8]; + /*0x2E*/ u8 filler2E[0x2]; + /*0x30*/ u16 unk30; + /*0x32*/ u8 filler32[0x4]; /*0x36*/ u8 unk36; /*0x38*/ volatile u16 blendControl; /*0x3A*/ volatile u16 blendAlpha; - /*0x3C*/ volatile u16 unk3C; + /*0x3C*/ volatile u16 blendBrightness; /*0x40*/ int unk40; - /*0x44*/ u8 filler44[0xC]; + /*0x44*/ u8 filler44[0x4]; + /*0x48*/ int rngValue; + /*0x4C*/ int unk4C; /*0x50*/ int unk50; /*0x54*/ u8 filler54[0x294]; /*0x2E8*/ struct MainUnk2E8 unk2E8[4]; @@ -2,20 +2,43 @@ #include "m4a.h" #include "main.h" +extern void sub_438(void); +extern void sub_8BC(void); +extern void sub_8FC(void); +extern void sub_940(void); extern void sub_B54(void); -extern void sub_BBC(void); +extern void sub_B8C(void); +static void InitIntrHandlers(void); extern void sub_CBC(void); extern void sub_D10(void); extern void sub_D74(void); extern void sub_FE8(void); extern void ReadKeys(void); +extern void sub_1F4C(void); +extern void sub_1F5C(void); +extern void sub_1090C(void); +extern void sub_52A18(void); extern u32 IntrMain_Buffer[0x200]; extern u32 IntrMain[]; +extern IntrFunc *gUnknown_0200FB98; +extern IntrFunc *gUnknown_02019BE0; + +extern const IntrFunc gIntrTableTemplate[14]; +#define INTR_COUNT ((int)(sizeof(gIntrTableTemplate)/sizeof(IntrFunc))) +extern IntrFunc gIntrTable[INTR_COUNT]; +extern void (*gUnknown_0200FB9C)(void); +extern void (*gUnknown_0200FBA0)(void); +extern void (*gUnknown_02017BD0)(void); +extern void (*gUnknown_02017BD4)(void); +extern u16 gUnknown_02002000; +extern u16 gUnknown_02002002; + +extern s16 gUnknown_08055C44[]; void AgbMain(void) { RegisterRamReset(0xFF); - sub_BBC(); + InitIntrHandlers(); DmaCopy32(3, IntrMain, IntrMain_Buffer, sizeof(IntrMain_Buffer)); INTR_VECTOR = IntrMain_Buffer; sub_B54(); @@ -49,13 +72,13 @@ void sub_9BC_Main(void) } } -void sub_A08(void) +void HBlankIntr(void) { m4aSoundVSync(); INTR_CHECK |= INTR_FLAG_VBLANK; } -void sub_A20(void) +void VCountIntr(void) { INTR_CHECK |= INTR_FLAG_VCOUNT; while (!(REG_DISPSTAT & DISPSTAT_HBLANK)); @@ -111,3 +134,261 @@ void sub_A20(void) } } } + +void SerialIntr(void) +{ + sub_1F5C(); +} + +void Timer3Intr(void) +{ + sub_1F4C(); +} + +void IntrDummy(void) +{ +} + +void sub_B54(void) +{ + REG_WAITCNT = WAITCNT_AGB + | WAITCNT_PREFETCH_ENABLE + | WAITCNT_PHI_OUT_NONE + | WAITCNT_WS2_S_1 + | WAITCNT_WS2_N_3 + | WAITCNT_WS1_S_1 + | WAITCNT_WS1_N_3 + | WAITCNT_WS0_S_1 + | WAITCNT_WS0_N_3 + | WAITCNT_SRAM_2; + REG_IE = INTR_FLAG_GAMEPAK; + REG_IME = INTR_FLAG_VBLANK; + sub_B8C(); + m4aSoundInit(); + m4aSoundVSyncOff(); + sub_52A18(); +} + +void sub_B8C(void) +{ + gMain.mainState = 0; + gMain.subState = 0; + gMain.unk16 = 0; + gMain.heldKeys = 0; + gMain.newKeys = 0; + gMain.unk20 = 0; + gMain.rngValue = 0; + gMain.unk4C = 0; + gMain.unk30 = 0; + gMain.vCount = 144; + gMain.unk2C = 0; + sub_1090C(); + sub_438(); +} + +static void InitIntrHandlers(void) +{ + int i; + + for (i = 0; i < INTR_COUNT; i++) + gIntrTable[i] = gIntrTableTemplate[i]; + + gUnknown_0200FB98 = &gIntrTable[2]; + gUnknown_02019BE0 = &gIntrTable[4]; + sub_8BC(); + sub_8FC(); + sub_940(); +} + +// The number 1103515245 comes from the example implementation of rand and srand +// in the ISO C standard. +int Random(void) +{ + gMain.rngValue = 1103515245 * gMain.rngValue + 12345; + return gMain.rngValue & 0xFFFF; +} + +#ifdef NONMATCHING +s16 sub_C24(u16 arg0) +{ + u16 index = arg0 / 4; + s16 var0 = 1; + if (index > 0x1FFF) + { + index -= 0x2000; + var0 = -1; + } + + if (index > 0xFFF) + index = 0x2000 - index; + + return gUnknown_08055C44[index] * var0; +} +#else +NAKED +s16 sub_C24(u16 arg0) +{ + asm_unified("\n\ + lsls r0, r0, #0x10\n\ + lsrs r2, r0, #0x12\n\ + movs r3, #1\n\ + ldr r0, _08000C60 @ =0x00001FFF\n\ + cmp r2, r0\n\ + bls _08000C3A\n\ + ldr r1, _08000C64 @ =0xFFFFE000\n\ + adds r0, r2, r1\n\ + lsls r0, r0, #0x10\n\ + lsrs r2, r0, #0x10\n\ + ldr r3, _08000C68 @ =0x0000FFFF\n\ +_08000C3A:\n\ + ldr r0, _08000C6C @ =0x00000FFF\n\ + cmp r2, r0\n\ + bls _08000C4C\n\ + movs r1, #0x80\n\ + lsls r1, r1, #6\n\ + adds r0, r1, #0\n\ + subs r0, r0, r2\n\ + lsls r0, r0, #0x10\n\ + lsrs r2, r0, #0x10\n\ +_08000C4C:\n\ + ldr r1, _08000C70 @ =0x08055C44\n\ + lsls r0, r2, #1\n\ + adds r0, r0, r1\n\ + ldrh r1, [r0]\n\ + lsls r0, r3, #0x10\n\ + asrs r0, r0, #0x10\n\ + muls r0, r1, r0\n\ + lsls r0, r0, #0x10\n\ + asrs r0, r0, #0x10\n\ + bx lr\n\ + .align 2, 0\n\ +_08000C60: .4byte 0x00001FFF\n\ +_08000C64: .4byte 0xFFFFE000\n\ +_08000C68: .4byte 0x0000FFFF\n\ +_08000C6C: .4byte 0x00000FFF\n\ +_08000C70: .4byte 0x08055C44"); +} +#endif // NONMATCHING + +s16 sub_C74(u16 arg0) +{ + return sub_C24(arg0 + 0x4000); +} + +void ReadKeys(void) +{ + u16 keyInput = ~REG_KEYINPUT; + gMain.newKeys = keyInput & (keyInput ^ gMain.heldKeys); + gMain.releasedKeys = gMain.heldKeys & (keyInput ^ gMain.heldKeys); + gMain.heldKeys = keyInput; +} + +void sub_CBC(void) +{ + if (!(REG_IE & INTR_FLAG_VBLANK)) + { + REG_IF |= INTR_FLAG_VCOUNT | INTR_FLAG_VBLANK; + REG_IE &= INTR_FLAG_VBLANK + | INTR_FLAG_HBLANK + | INTR_FLAG_VCOUNT + | INTR_FLAG_TIMER0 + | INTR_FLAG_TIMER1 + | INTR_FLAG_TIMER2 + | INTR_FLAG_TIMER3 + | INTR_FLAG_SERIAL + | INTR_FLAG_DMA0 + | INTR_FLAG_DMA1 + | INTR_FLAG_DMA2 + | INTR_FLAG_DMA3 + | INTR_FLAG_KEYPAD + | INTR_FLAG_GAMEPAK; + REG_IME = INTR_FLAG_VBLANK; + REG_IE |= INTR_FLAG_VCOUNT | INTR_FLAG_VBLANK; + REG_DISPSTAT |= DISPSTAT_VBLANK_INTR; + m4aSoundVSyncOn(); + } +} + +void sub_D10(void) +{ + REG_DISPSTAT &= ~DISPSTAT_VBLANK_INTR; + REG_DISPSTAT &= ~DISPSTAT_VCOUNT_INTR; + REG_IE &= INTR_FLAG_VBLANK + | INTR_FLAG_HBLANK + | INTR_FLAG_VCOUNT + | INTR_FLAG_TIMER0 + | INTR_FLAG_TIMER1 + | INTR_FLAG_TIMER2 + | INTR_FLAG_TIMER3 + | INTR_FLAG_SERIAL + | INTR_FLAG_DMA0 + | INTR_FLAG_DMA1 + | INTR_FLAG_DMA2 + | INTR_FLAG_DMA3 + | INTR_FLAG_KEYPAD + | INTR_FLAG_GAMEPAK; + REG_IE &= INTR_FLAG_HBLANK + | INTR_FLAG_VCOUNT + | INTR_FLAG_TIMER0 + | INTR_FLAG_TIMER1 + | INTR_FLAG_TIMER2 + | INTR_FLAG_TIMER3 + | INTR_FLAG_SERIAL + | INTR_FLAG_DMA0 + | INTR_FLAG_DMA1 + | INTR_FLAG_DMA2 + | INTR_FLAG_DMA3 + | INTR_FLAG_KEYPAD + | INTR_FLAG_GAMEPAK; + if (!REG_IE) + REG_IME = 0; + + REG_IF |= INTR_FLAG_VBLANK; + m4aSoundVSyncOff(); +} + +void sub_D74(void) +{ + gUnknown_0200FB9C = gUnknown_02017BD4; + *gUnknown_0200FB98 = gUnknown_02017BD0; + *gUnknown_02019BE0 = gUnknown_0200FBA0; + if (gUnknown_0200FB9C) + gUnknown_0200FB9C(); + + gMain.unk4C++; +} + +void sub_DC4(void) +{ + if (REG_DISPSTAT & DISPSTAT_VBLANK_INTR) + { + VBlankIntrWait(); + DmaCopy32(3, gOamBuffer, (void *)OAM, OAM_SIZE); + REG_DISPCNT = gMain.unk16; + REG_BG0HOFS = gMain.unk2E8[0].unk0; + REG_BG0VOFS = gMain.unk2E8[0].unk2; + REG_BG1HOFS = gMain.unk2E8[1].unk0; + REG_BG1VOFS = gMain.unk2E8[1].unk2; + REG_BG2HOFS = gMain.unk2E8[2].unk0; + REG_BG2VOFS = gMain.unk2E8[2].unk2; + REG_BG3HOFS = gMain.unk2E8[3].unk0; + REG_BG3VOFS = gMain.unk2E8[3].unk2; + if (gMain.unk36) + { + REG_BLDCNT = gMain.blendControl; + REG_BLDALPHA = gMain.blendAlpha; + REG_BLDY = gMain.blendBrightness; + } + + REG_DISPSTAT &= 0xFF; + REG_DISPSTAT |= (gMain.vCount << 8) + DISPSTAT_VCOUNT_INTR; + m4aSoundMain(); + } +} + +void sub_E90(void) +{ + u16 keyInput = REG_KEYINPUT ^ KEYS_MASK; + gUnknown_02002002 = gUnknown_02002000; + gUnknown_02002000 = keyInput; +} diff --git a/src/rom_850.c b/src/rom_850.c index 8d49a60..97fed1f 100755 --- a/src/rom_850.c +++ b/src/rom_850.c @@ -1,14 +1,14 @@ #include "global.h" #include "main.h" -extern void (**gUnknown_0200FB98)(void); -extern void (**gUnknown_02019BE0)(void); +extern IntrFunc *gUnknown_0200FB98; +extern IntrFunc *gUnknown_02019BE0; extern void (*gUnknown_0200FB9C)(void); extern void (*gUnknown_0200FBA0)(void); extern void (*gUnknown_02017BD0)(void); extern void (*gUnknown_02017BD4)(void); -extern void sub_A08(void); -extern void sub_A20(void); +extern void HBlankIntr(void); +extern void VCountIntr(void); extern void sub_DC4(void); u16 sub_850(void) @@ -48,8 +48,8 @@ void sub_8D4(void (*func)(void)) void sub_8FC(void) { - *gUnknown_0200FB98 = sub_A08; - gUnknown_02017BD0 = sub_A08; + *gUnknown_0200FB98 = HBlankIntr; + gUnknown_02017BD0 = HBlankIntr; } void sub_918(void (*func)(void)) @@ -61,7 +61,7 @@ void sub_918(void (*func)(void)) void sub_940(void) { - *gUnknown_02019BE0 = sub_A20; - gUnknown_0200FBA0 = sub_A20; + *gUnknown_02019BE0 = VCountIntr; + gUnknown_0200FBA0 = VCountIntr; } @@ -114,7 +114,7 @@ void sub_438(void) gMain.unk36 = 0; gMain.blendControl = 0; gMain.blendAlpha = 0; - gMain.unk3C = 0; + gMain.blendBrightness = 0; gMain.unk2C = 0; } diff --git a/sym_ewram.txt b/sym_ewram.txt index a185175..4433922 100755 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1,4 +1,12 @@ - .space 0x2888 + .space 0x2000 + +gUnknown_02002000: @ 0x2002000 + .space 2 + +gUnknown_02002002: @ 0x2002002 + .space 2 + + .space 0x884 gTitlescreen: @ 0x2002888 .space 0x18 @@ -28,8 +36,9 @@ gUnknown_02002958: @ 0x2002958 .space 0x708 gIntrTable: @ 0x2003060 + .space 0x38 - .space 0x8060 + .space 0x8028 gMain: @ 0x200B0C0 |