diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-10-08 19:00:01 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-10-08 19:00:01 -0400 |
commit | 2e0259fceb54edb68df7e7956418f3bbbe8c08da (patch) | |
tree | 3598721e4aea16456820b3ef189ccd6f94607c46 | |
parent | 0335914719ef86def6999d50eefd8a342d696a6e (diff) | |
parent | 10fff9c6f2d29899952d1751d3de827e7e98bb60 (diff) |
Merge branch 'master' into vs_seeker
35 files changed, 1041 insertions, 1564 deletions
@@ -89,6 +89,8 @@ tidy: rm -f $(ROM) $(ELF) $(MAP) rm -r build/* +include graphics_file_rules.mk + %.s: ; %.png: ; %.pal: ; diff --git a/asm/help_system.s b/asm/help_system.s index 9a447ebbe..21ae494aa 100644 --- a/asm/help_system.s +++ b/asm/help_system.s @@ -1322,7 +1322,7 @@ _0813C2D4: bl GetKeypadIconTileOffset lsls r0, 24 lsrs r0, 19 - ldr r1, _0813C344 @ =gUnknown_81EA700 + ldr r1, _0813C344 @ =gKeypadIconTiles adds r0, r1 str r0, [sp, 0x14] add r1, sp, 0x14 @@ -1365,7 +1365,7 @@ _0813C2D4: bl GetKeypadIconWidth b _0813C38E .align 2, 0 -_0813C344: .4byte gUnknown_81EA700 +_0813C344: .4byte gKeypadIconTiles _0813C348: mov r0, r9 ldrb r1, [r0] diff --git a/asm/menews_jisan.s b/asm/menews_jisan.s deleted file mode 100644 index abd5e44f4..000000000 --- a/asm/menews_jisan.s +++ /dev/null @@ -1,326 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_8146C30 -sub_8146C30: @ 8146C30 - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_8143D94 - adds r5, r0, 0 - movs r0, 0x3 - adds r1, r4, 0 - ands r1, r0 - ldrb r2, [r5] - movs r0, 0x4 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5] - cmp r4, 0x2 - bhi _08146C56 - cmp r4, 0x1 - bcs _08146C5C - b _08146C80 -_08146C56: - cmp r4, 0x3 - beq _08146C6E - b _08146C80 -_08146C5C: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xF - bl __umodsi3 - adds r0, 0x10 - b _08146C7E -_08146C6E: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xF - bl __umodsi3 - adds r0, 0x1 -_08146C7E: - strb r0, [r5, 0x1] -_08146C80: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8146C30 - - thumb_func_start sub_8146C88 -sub_8146C88: @ 8146C88 - push {lr} - bl sub_8143D94 - movs r1, 0 - strb r1, [r0] - strb r1, [r0, 0x1] - ldr r0, _08146CA0 @ =0x00004028 - bl VarSet - pop {r0} - bx r0 - .align 2, 0 -_08146CA0: .4byte 0x00004028 - thumb_func_end sub_8146C88 - - thumb_func_start sub_8146CA4 -sub_8146CA4: @ 8146CA4 - push {r4,lr} - ldr r0, _08146CE0 @ =0x00004028 - bl sub_806E454 - adds r4, r0, 0 - bl sub_8143D94 - adds r2, r0, 0 - ldr r0, [r2] - lsls r0, 24 - lsrs r0, 29 - cmp r0, 0x4 - bls _08146CD8 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - lsls r0, 16 - ldr r1, _08146CE4 @ =0x01f30000 - cmp r0, r1 - bls _08146CD8 - ldrb r0, [r2] - movs r1, 0x1F - ands r1, r0 - strb r1, [r2] - movs r0, 0 - strh r0, [r4] -_08146CD8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08146CE0: .4byte 0x00004028 -_08146CE4: .4byte 0x01f30000 - thumb_func_end sub_8146CA4 - - thumb_func_start sub_8146CE8 -sub_8146CE8: @ 8146CE8 - push {r4-r6,lr} - ldr r6, _08146D08 @ =gUnknown_20370D0 - bl sub_8143D94 - adds r4, r0, 0 - bl sub_806E2BC - cmp r0, 0 - beq _08146D02 - bl sub_8143E1C - cmp r0, 0 - bne _08146D0C -_08146D02: - movs r0, 0 - b _08146D6E - .align 2, 0 -_08146D08: .4byte gUnknown_20370D0 -_08146D0C: - adds r0, r4, 0 - bl sub_8146E0C - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x6 - bhi _08146D6C - lsls r0, r5, 2 - ldr r1, _08146D24 @ =_08146D28 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08146D24: .4byte _08146D28 - .align 2, 0 -_08146D28: - .4byte _08146D6C - .4byte _08146D44 - .4byte _08146D44 - .4byte _08146D6C - .4byte _08146D4E - .4byte _08146D5E - .4byte _08146D6C -_08146D44: - adds r0, r4, 0 - bl sub_8146D74 - strh r0, [r6] - b _08146D6C -_08146D4E: - adds r0, r4, 0 - bl sub_8146D74 - strh r0, [r6] - adds r0, r4, 0 - bl sub_8146DA0 - b _08146D6C -_08146D5E: - adds r0, r4, 0 - bl sub_8146D74 - strh r0, [r6] - adds r0, r4, 0 - bl sub_8146D94 -_08146D6C: - adds r0, r5, 0 -_08146D6E: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8146CE8 - - thumb_func_start sub_8146D74 -sub_8146D74: @ 8146D74 - push {r4,lr} - ldrb r2, [r0] - movs r1, 0x4 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldrb r4, [r0, 0x1] - adds r4, 0x84 - movs r1, 0 - strb r1, [r0, 0x1] - bl sub_8146DD8 - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8146D74 - - thumb_func_start sub_8146D94 -sub_8146D94: @ 8146D94 - ldrb r2, [r0] - movs r1, 0x1D - negs r1, r1 - ands r1, r2 - strb r1, [r0] - bx lr - thumb_func_end sub_8146D94 - - thumb_func_start sub_8146DA0 -sub_8146DA0: @ 8146DA0 - push {r4,lr} - adds r3, r0, 0 - ldr r0, [r3] - lsls r0, 27 - lsrs r0, 29 - adds r0, 0x1 - movs r1, 0x7 - ands r0, r1 - lsls r0, 2 - ldrb r1, [r3] - movs r4, 0x1D - negs r4, r4 - adds r2, r4, 0 - ands r2, r1 - orrs r2, r0 - strb r2, [r3] - ldr r0, [r3] - lsls r0, 27 - lsrs r0, 29 - cmp r0, 0x4 - bls _08146DD2 - ands r2, r4 - movs r0, 0x10 - orrs r2, r0 - strb r2, [r3] -_08146DD2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8146DA0 - - thumb_func_start sub_8146DD8 -sub_8146DD8: @ 8146DD8 - push {r4,lr} - adds r3, r0, 0 - ldr r0, [r3] - lsls r0, 24 - lsrs r0, 29 - adds r0, 0x1 - lsls r0, 5 - ldrb r1, [r3] - movs r4, 0x1F - adds r2, r4, 0 - ands r2, r1 - orrs r2, r0 - strb r2, [r3] - ldr r0, [r3] - lsls r0, 24 - lsrs r0, 29 - cmp r0, 0x5 - bls _08146E04 - ands r2, r4 - movs r0, 0xA0 - orrs r2, r0 - strb r2, [r3] -_08146E04: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8146DD8 - - thumb_func_start sub_8146E0C -sub_8146E0C: @ 8146E0C - push {lr} - adds r2, r0, 0 - ldrb r1, [r2] - movs r0, 0xE0 - ands r0, r1 - cmp r0, 0xA0 - bne _08146E1E - movs r0, 0x6 - b _08146E66 -_08146E1E: - ldr r1, [r2] - lsls r0, r1, 30 - lsrs r0, 30 - cmp r0, 0x1 - beq _08146E40 - cmp r0, 0x1 - bgt _08146E32 - cmp r0, 0 - beq _08146E3C - b _08146E58 -_08146E32: - cmp r0, 0x2 - beq _08146E44 - cmp r0, 0x3 - beq _08146E48 - b _08146E58 -_08146E3C: - movs r0, 0x3 - b _08146E66 -_08146E40: - movs r0, 0x1 - b _08146E66 -_08146E44: - movs r0, 0x2 - b _08146E66 -_08146E48: - lsls r0, r1, 27 - lsrs r0, 29 - cmp r0, 0x2 - bhi _08146E54 - movs r0, 0x4 - b _08146E66 -_08146E54: - movs r0, 0x5 - b _08146E66 -_08146E58: - ldr r0, _08146E6C @ =gUnknown_8468C5C "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/menews_jisan.c" - ldr r1, _08146E70 @ =0x0000017f - ldr r2, _08146E74 @ =gUnknown_8468C94 "0" - movs r3, 0x1 - bl AGBAssert - movs r0, 0 -_08146E66: - pop {r1} - bx r1 - .align 2, 0 -_08146E6C: .4byte gUnknown_8468C5C -_08146E70: .4byte 0x0000017f -_08146E74: .4byte gUnknown_8468C94 - thumb_func_end sub_8146E0C - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/text.s b/asm/text.s deleted file mode 100644 index 4c554ae88..000000000 --- a/asm/text.s +++ /dev/null @@ -1,1108 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_80062B0 -sub_80062B0: @ 80062B0 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x2E] - movs r3, 0x2E - ldrsh r2, [r1, r3] - cmp r2, 0 - beq _080062C4 - subs r0, 0x1 - strh r0, [r1, 0x2E] - b _080062FA -_080062C4: - movs r0, 0x8 - strh r0, [r1, 0x2E] - movs r3, 0x30 - ldrsh r0, [r1, r3] - cmp r0, 0x1 - beq _080062E8 - cmp r0, 0x1 - bgt _080062DA - cmp r0, 0 - beq _080062E4 - b _080062F4 -_080062DA: - cmp r0, 0x2 - beq _080062E8 - cmp r0, 0x3 - beq _080062EC - b _080062F4 -_080062E4: - strh r2, [r1, 0x26] - b _080062F4 -_080062E8: - strh r0, [r1, 0x26] - b _080062F4 -_080062EC: - movs r0, 0x1 - strh r0, [r1, 0x26] - strh r2, [r1, 0x30] - b _080062FA -_080062F4: - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] -_080062FA: - pop {r0} - bx r0 - thumb_func_end sub_80062B0 - - thumb_func_start sub_8006300 -sub_8006300: @ 8006300 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r4, r1, 0 - adds r5, r2, 0 - adds r6, r3, 0 - ldr r1, [sp, 0x14] - lsls r0, 24 - lsrs r0, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 24 - lsrs r6, 24 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - movs r1, 0x1 - ands r0, r1 - lsls r0, 3 - ldr r1, _08006388 @ =gUnknown_81EA68C - adds r0, r1 - bl LoadSpriteSheet - ldr r0, _0800638C @ =gUnknown_81EA6A4 - bl LoadSpritePalette - ldr r0, _08006390 @ =gUnknown_81EA6B4 - adds r4, 0x3 - lsls r4, 16 - asrs r4, 16 - adds r5, 0x4 - lsls r5, 16 - asrs r5, 16 - adds r1, r4, 0 - adds r2, r5, 0 - mov r3, r8 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08006394 @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - movs r1, 0x3 - ands r6, r1 - lsls r6, 2 - ldrb r3, [r2, 0x5] - subs r1, 0x10 - ands r1, r3 - orrs r1, r6 - strb r1, [r2, 0x5] - ldrb r3, [r2, 0x3] - movs r1, 0x3F - negs r1, r1 - ands r1, r3 - strb r1, [r2, 0x3] - movs r1, 0x8 - strh r1, [r2, 0x2E] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08006388: .4byte gUnknown_81EA68C -_0800638C: .4byte gUnknown_81EA6A4 -_08006390: .4byte gUnknown_81EA6B4 -_08006394: .4byte gSprites - thumb_func_end sub_8006300 - - thumb_func_start sub_8006398 -sub_8006398: @ 8006398 - push {r4,lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080063C4 @ =gSprites - adds r0, r1 - bl DestroySprite - movs r4, 0x80 - lsls r4, 8 - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080063C4: .4byte gSprites - thumb_func_end sub_8006398 - - thumb_func_start DrawKeypadIcon -DrawKeypadIcon: @ 80063C8 - push {r4,r5,lr} - sub sp, 0x18 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsls r2, 16 - lsrs r2, 16 - lsls r3, 16 - lsrs r3, 16 - ldr r4, _08006410 @ =gUnknown_81EA6CC - lsrs r1, 22 - adds r1, r4 - ldrh r5, [r1] - lsls r5, 5 - ldr r4, _08006414 @ =gUnknown_81EA700 - adds r5, r4 - movs r4, 0x80 - str r4, [sp] - str r4, [sp, 0x4] - str r2, [sp, 0x8] - str r3, [sp, 0xC] - ldrb r4, [r1, 0x2] - str r4, [sp, 0x10] - ldrb r1, [r1, 0x3] - str r1, [sp, 0x14] - adds r1, r5, 0 - movs r2, 0 - movs r3, 0 - bl BlitBitmapRectToWindow - adds r0, r4, 0 - add sp, 0x18 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08006410: .4byte gUnknown_81EA6CC -_08006414: .4byte gUnknown_81EA700 - thumb_func_end DrawKeypadIcon - - thumb_func_start GetKeypadIconTileOffset -GetKeypadIconTileOffset: @ 8006418 - lsls r0, 24 - ldr r1, _08006424 @ =gUnknown_81EA6CC - lsrs r0, 22 - adds r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08006424: .4byte gUnknown_81EA6CC - thumb_func_end GetKeypadIconTileOffset - - thumb_func_start GetKeypadIconWidth -GetKeypadIconWidth: @ 8006428 - lsls r0, 24 - ldr r1, _08006434 @ =gUnknown_81EA6CC - lsrs r0, 22 - adds r0, r1 - ldrb r0, [r0, 0x2] - bx lr - .align 2, 0 -_08006434: .4byte gUnknown_81EA6CC - thumb_func_end GetKeypadIconWidth - - thumb_func_start GetKeypadIconHeight -GetKeypadIconHeight: @ 8006438 - lsls r0, 24 - ldr r1, _08006444 @ =gUnknown_81EA6CC - lsrs r0, 22 - adds r0, r1 - ldrb r0, [r0, 0x3] - bx lr - .align 2, 0 -_08006444: .4byte gUnknown_81EA6CC - thumb_func_end GetKeypadIconHeight - - thumb_func_start DecompressGlyphFont0 -DecompressGlyphFont0: @ 8006448 - push {r4-r6,lr} - lsls r0, 16 - lsrs r6, r0, 16 - cmp r1, 0x1 - bne _08006490 - lsrs r2, r0, 20 - lsls r2, 9 - movs r0, 0xF - ands r0, r6 - lsls r0, 4 - ldr r1, _08006488 @ =gUnknown_81EF100 - adds r0, r1 - adds r5, r2, r0 - ldr r4, _0800648C @ =gGlyphInfo - adds r0, r5, 0 - adds r1, r4, 0 - bl DecompressGlyphTile - movs r1, 0x80 - lsls r1, 1 - adds r0, r5, r1 - adds r1, r4, 0 - adds r1, 0x40 - bl DecompressGlyphTile - adds r1, r4, 0 - adds r1, 0x80 - movs r0, 0x8 - strb r0, [r1] - adds r4, 0x81 - movs r0, 0xC - b _080064BC - .align 2, 0 -_08006488: .4byte gUnknown_81EF100 -_0800648C: .4byte gGlyphInfo -_08006490: - lsls r1, r6, 5 - ldr r0, _080064C4 @ =gUnknown_81EAF00 - adds r5, r1, r0 - ldr r4, _080064C8 @ =gGlyphInfo - adds r0, r5, 0 - adds r1, r4, 0 - bl DecompressGlyphTile - adds r0, r5, 0 - adds r0, 0x10 - adds r1, r4, 0 - adds r1, 0x40 - bl DecompressGlyphTile - ldr r0, _080064CC @ =gUnknown_81EEF00 - adds r0, r6, r0 - ldrb r1, [r0] - adds r0, r4, 0 - adds r0, 0x80 - strb r1, [r0] - adds r4, 0x81 - movs r0, 0xD -_080064BC: - strb r0, [r4] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080064C4: .4byte gUnknown_81EAF00 -_080064C8: .4byte gGlyphInfo -_080064CC: .4byte gUnknown_81EEF00 - thumb_func_end DecompressGlyphFont0 - - thumb_func_start GetGlyphWidthFont0 -GetGlyphWidthFont0: @ 80064D0 - push {lr} - lsls r0, 16 - lsrs r2, r0, 16 - cmp r1, 0x1 - beq _080064E8 - ldr r0, _080064E4 @ =gUnknown_81EEF00 - adds r0, r2, r0 - ldrb r0, [r0] - b _080064EA - .align 2, 0 -_080064E4: .4byte gUnknown_81EEF00 -_080064E8: - movs r0, 0x8 -_080064EA: - pop {r1} - bx r1 - thumb_func_end GetGlyphWidthFont0 - - thumb_func_start DecompressGlyphFont1 -DecompressGlyphFont1: @ 80064F0 - push {r4-r6,lr} - lsls r0, 16 - lsrs r6, r0, 16 - cmp r1, 0x1 - bne _0800653C - lsrs r2, r0, 20 - lsls r2, 9 - movs r0, 0xF - ands r0, r6 - lsls r0, 4 - ldr r1, _08006534 @ =gUnknown_81FB300 - adds r0, r1 - adds r5, r2, r0 - ldr r4, _08006538 @ =gGlyphInfo - adds r0, r5, 0 - adds r1, r4, 0 - bl DecompressGlyphTile - movs r1, 0x80 - lsls r1, 1 - adds r0, r5, r1 - adds r1, r4, 0 - adds r1, 0x40 - bl DecompressGlyphTile - adds r1, r4, 0 - adds r1, 0x80 - movs r0, 0x8 - strb r0, [r1] - adds r4, 0x81 - movs r0, 0x10 - strb r0, [r4] - b _08006584 - .align 2, 0 -_08006534: .4byte gUnknown_81FB300 -_08006538: .4byte gGlyphInfo -_0800653C: - lsls r1, r6, 6 - ldr r0, _0800658C @ =gUnknown_81F3100 - adds r5, r1, r0 - ldr r4, _08006590 @ =gGlyphInfo - adds r0, r5, 0 - adds r1, r4, 0 - bl DecompressGlyphTile - adds r0, r5, 0 - adds r0, 0x10 - adds r1, r4, 0 - adds r1, 0x20 - bl DecompressGlyphTile - adds r0, r5, 0 - adds r0, 0x20 - adds r1, r4, 0 - adds r1, 0x40 - bl DecompressGlyphTile - adds r0, r5, 0 - adds r0, 0x30 - adds r1, r4, 0 - adds r1, 0x60 - bl DecompressGlyphTile - ldr r0, _08006594 @ =gUnknown_81FB100 - adds r0, r6, r0 - ldrb r1, [r0] - adds r0, r4, 0 - adds r0, 0x80 - strb r1, [r0] - adds r1, r4, 0 - adds r1, 0x81 - movs r0, 0xE - strb r0, [r1] -_08006584: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0800658C: .4byte gUnknown_81F3100 -_08006590: .4byte gGlyphInfo -_08006594: .4byte gUnknown_81FB100 - thumb_func_end DecompressGlyphFont1 - - thumb_func_start GetGlyphWidthFont1 -GetGlyphWidthFont1: @ 8006598 - push {lr} - lsls r0, 16 - lsrs r2, r0, 16 - cmp r1, 0x1 - beq _080065B0 - ldr r0, _080065AC @ =gUnknown_81FB100 - adds r0, r2, r0 - ldrb r0, [r0] - b _080065B2 - .align 2, 0 -_080065AC: .4byte gUnknown_81FB100 -_080065B0: - movs r0, 0x8 -_080065B2: - pop {r1} - bx r1 - thumb_func_end GetGlyphWidthFont1 - - thumb_func_start DecompressGlyphFont2 -DecompressGlyphFont2: @ 80065B8 - push {r4-r7,lr} - lsls r0, 16 - lsrs r6, r0, 16 - cmp r1, 0x1 - bne _0800665C - cmp r6, 0 - bne _080065F8 - movs r0, 0x2 - bl GetLastTextColor - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - ldr r3, _080065F4 @ =gGlyphInfo - lsls r2, r0, 4 - orrs r2, r0 - adds r7, r3, 0 - adds r7, 0x80 - movs r6, 0xA - adds r5, r3, 0 - adds r5, 0x81 - movs r4, 0xC -_080065E4: - adds r0, r1, r3 - strb r2, [r0] - strb r6, [r7] - strb r4, [r5] - adds r1, 0x1 - cmp r1, 0x7F - ble _080065E4 - b _080066E4 - .align 2, 0 -_080065F4: .4byte gGlyphInfo -_080065F8: - lsrs r2, r0, 19 - lsls r2, 9 - movs r0, 0x7 - ands r0, r6 - lsls r0, 5 - ldr r1, _08006650 @ =gUnknown_8207500 - adds r0, r1 - adds r4, r2, r0 - ldr r5, _08006654 @ =gGlyphInfo - adds r0, r4, 0 - adds r1, r5, 0 - bl DecompressGlyphTile - adds r0, r4, 0 - adds r0, 0x10 - adds r1, r5, 0 - adds r1, 0x20 - bl DecompressGlyphTile - movs r1, 0x80 - lsls r1, 1 - adds r0, r4, r1 - adds r1, r5, 0 - adds r1, 0x40 - bl DecompressGlyphTile - movs r1, 0x88 - lsls r1, 1 - adds r0, r4, r1 - adds r1, r5, 0 - adds r1, 0x60 - bl DecompressGlyphTile - ldr r0, _08006658 @ =gUnknown_820F500 - adds r0, r6, r0 - ldrb r1, [r0] - adds r0, r5, 0 - adds r0, 0x80 - strb r1, [r0] - adds r1, r5, 0 - adds r1, 0x81 - movs r0, 0xC - b _080066E2 - .align 2, 0 -_08006650: .4byte gUnknown_8207500 -_08006654: .4byte gGlyphInfo -_08006658: .4byte gUnknown_820F500 -_0800665C: - cmp r6, 0 - bne _0800669C - movs r0, 0x2 - bl GetLastTextColor - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - ldr r3, _08006694 @ =gGlyphInfo - lsls r2, r0, 4 - orrs r2, r0 - ldr r0, _08006698 @ =gUnknown_8207300 - ldrb r4, [r0] - movs r0, 0x81 - adds r0, r3 - mov r12, r0 - adds r6, r3, 0 - adds r6, 0x80 - movs r5, 0xE -_08006682: - adds r0, r1, r3 - strb r2, [r0] - strb r4, [r6] - mov r0, r12 - strb r5, [r0] - adds r1, 0x1 - cmp r1, 0x7F - ble _08006682 - b _080066E4 - .align 2, 0 -_08006694: .4byte gGlyphInfo -_08006698: .4byte gUnknown_8207300 -_0800669C: - lsls r1, r6, 6 - ldr r0, _080066EC @ =gUnknown_81FF300 - adds r4, r1, r0 - ldr r5, _080066F0 @ =gGlyphInfo - adds r0, r4, 0 - adds r1, r5, 0 - bl DecompressGlyphTile - adds r0, r4, 0 - adds r0, 0x10 - adds r1, r5, 0 - adds r1, 0x20 - bl DecompressGlyphTile - adds r0, r4, 0 - adds r0, 0x20 - adds r1, r5, 0 - adds r1, 0x40 - bl DecompressGlyphTile - adds r0, r4, 0 - adds r0, 0x30 - adds r1, r5, 0 - adds r1, 0x60 - bl DecompressGlyphTile - ldr r0, _080066F4 @ =gUnknown_8207300 - adds r0, r6, r0 - ldrb r1, [r0] - adds r0, r5, 0 - adds r0, 0x80 - strb r1, [r0] - adds r1, r5, 0 - adds r1, 0x81 - movs r0, 0xE -_080066E2: - strb r0, [r1] -_080066E4: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080066EC: .4byte gUnknown_81FF300 -_080066F0: .4byte gGlyphInfo -_080066F4: .4byte gUnknown_8207300 - thumb_func_end DecompressGlyphFont2 - - thumb_func_start GetGlyphWidthFont2 -GetGlyphWidthFont2: @ 80066F8 - push {lr} - lsls r0, 16 - lsrs r2, r0, 16 - cmp r1, 0x1 - bne _08006714 - cmp r2, 0 - bne _0800670A - movs r0, 0xA - b _0800671A -_0800670A: - ldr r0, _08006710 @ =gUnknown_820F500 - b _08006716 - .align 2, 0 -_08006710: .4byte gUnknown_820F500 -_08006714: - ldr r0, _08006720 @ =gUnknown_8207300 -_08006716: - adds r0, r2, r0 - ldrb r0, [r0] -_0800671A: - pop {r1} - bx r1 - .align 2, 0 -_08006720: .4byte gUnknown_8207300 - thumb_func_end GetGlyphWidthFont2 - - thumb_func_start DecompressGlyphFont3 -DecompressGlyphFont3: @ 8006724 - push {r4-r7,lr} - lsls r0, 16 - lsrs r3, r0, 16 - cmp r1, 0x1 - bne _080067C0 - cmp r3, 0 - bne _08006764 - movs r0, 0x2 - bl GetLastTextColor - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - ldr r3, _08006760 @ =gGlyphInfo - lsls r2, r0, 4 - orrs r2, r0 - adds r7, r3, 0 - adds r7, 0x80 - movs r6, 0xA - adds r5, r3, 0 - adds r5, 0x81 - movs r4, 0xC -_08006750: - adds r0, r1, r3 - strb r2, [r0] - strb r6, [r7] - strb r4, [r5] - adds r1, 0x1 - cmp r1, 0x7F - ble _08006750 - b _080067C6 - .align 2, 0 -_08006760: .4byte gGlyphInfo -_08006764: - lsrs r2, r0, 19 - lsls r2, 9 - movs r0, 0x7 - ands r0, r3 - lsls r0, 5 - ldr r1, _080067B8 @ =gUnknown_8207500 - adds r0, r1 - adds r5, r2, r0 - ldr r4, _080067BC @ =gGlyphInfo - adds r0, r5, 0 - adds r1, r4, 0 - bl DecompressGlyphTile - adds r0, r5, 0 - adds r0, 0x10 - adds r1, r4, 0 - adds r1, 0x20 - bl DecompressGlyphTile - movs r1, 0x80 - lsls r1, 1 - adds r0, r5, r1 - adds r1, r4, 0 - adds r1, 0x40 - bl DecompressGlyphTile - movs r1, 0x88 - lsls r1, 1 - adds r0, r5, r1 - adds r1, r4, 0 - adds r1, 0x60 - bl DecompressGlyphTile - adds r1, r4, 0 - adds r1, 0x80 - movs r0, 0xA - strb r0, [r1] - adds r1, 0x1 - movs r0, 0xC - strb r0, [r1] - b _080067C6 - .align 2, 0 -_080067B8: .4byte gUnknown_8207500 -_080067BC: .4byte gGlyphInfo -_080067C0: - adds r0, r3, 0 - bl DecompressGlyphFont2 -_080067C6: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end DecompressGlyphFont3 - - thumb_func_start GetGlyphWidthFont3 -GetGlyphWidthFont3: @ 80067CC - push {lr} - lsls r0, 16 - lsrs r2, r0, 16 - cmp r1, 0x1 - beq _080067E4 - ldr r0, _080067E0 @ =gUnknown_8207300 - adds r0, r2, r0 - ldrb r0, [r0] - b _080067E6 - .align 2, 0 -_080067E0: .4byte gUnknown_8207300 -_080067E4: - movs r0, 0xA -_080067E6: - pop {r1} - bx r1 - thumb_func_end GetGlyphWidthFont3 - - thumb_func_start DecompressGlyphFont4 -DecompressGlyphFont4: @ 80067EC - push {r4-r7,lr} - lsls r0, 16 - lsrs r6, r0, 16 - cmp r1, 0x1 - bne _08006890 - cmp r6, 0 - bne _0800682C - movs r0, 0x2 - bl GetLastTextColor - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - ldr r3, _08006828 @ =gGlyphInfo - lsls r2, r0, 4 - orrs r2, r0 - adds r7, r3, 0 - adds r7, 0x80 - movs r6, 0xA - adds r5, r3, 0 - adds r5, 0x81 - movs r4, 0xC -_08006818: - adds r0, r1, r3 - strb r2, [r0] - strb r6, [r7] - strb r4, [r5] - adds r1, 0x1 - cmp r1, 0x7F - ble _08006818 - b _08006918 - .align 2, 0 -_08006828: .4byte gGlyphInfo -_0800682C: - lsrs r2, r0, 19 - lsls r2, 9 - movs r0, 0x7 - ands r0, r6 - lsls r0, 5 - ldr r1, _08006884 @ =gUnknown_8217818 - adds r0, r1 - adds r4, r2, r0 - ldr r5, _08006888 @ =gGlyphInfo - adds r0, r4, 0 - adds r1, r5, 0 - bl DecompressGlyphTile - adds r0, r4, 0 - adds r0, 0x10 - adds r1, r5, 0 - adds r1, 0x20 - bl DecompressGlyphTile - movs r1, 0x80 - lsls r1, 1 - adds r0, r4, r1 - adds r1, r5, 0 - adds r1, 0x40 - bl DecompressGlyphTile - movs r1, 0x88 - lsls r1, 1 - adds r0, r4, r1 - adds r1, r5, 0 - adds r1, 0x60 - bl DecompressGlyphTile - ldr r0, _0800688C @ =gUnknown_821F818 - adds r0, r6, r0 - ldrb r1, [r0] - adds r0, r5, 0 - adds r0, 0x80 - strb r1, [r0] - adds r1, r5, 0 - adds r1, 0x81 - movs r0, 0xC - b _08006916 - .align 2, 0 -_08006884: .4byte gUnknown_8217818 -_08006888: .4byte gGlyphInfo -_0800688C: .4byte gUnknown_821F818 -_08006890: - cmp r6, 0 - bne _080068D0 - movs r0, 0x2 - bl GetLastTextColor - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - ldr r3, _080068C8 @ =gGlyphInfo - lsls r2, r0, 4 - orrs r2, r0 - ldr r0, _080068CC @ =gUnknown_8217618 - ldrb r4, [r0] - movs r0, 0x81 - adds r0, r3 - mov r12, r0 - adds r6, r3, 0 - adds r6, 0x80 - movs r5, 0xE -_080068B6: - adds r0, r1, r3 - strb r2, [r0] - strb r4, [r6] - mov r0, r12 - strb r5, [r0] - adds r1, 0x1 - cmp r1, 0x7F - ble _080068B6 - b _08006918 - .align 2, 0 -_080068C8: .4byte gGlyphInfo -_080068CC: .4byte gUnknown_8217618 -_080068D0: - lsls r1, r6, 6 - ldr r0, _08006920 @ =gUnknown_820F618 - adds r4, r1, r0 - ldr r5, _08006924 @ =gGlyphInfo - adds r0, r4, 0 - adds r1, r5, 0 - bl DecompressGlyphTile - adds r0, r4, 0 - adds r0, 0x10 - adds r1, r5, 0 - adds r1, 0x20 - bl DecompressGlyphTile - adds r0, r4, 0 - adds r0, 0x20 - adds r1, r5, 0 - adds r1, 0x40 - bl DecompressGlyphTile - adds r0, r4, 0 - adds r0, 0x30 - adds r1, r5, 0 - adds r1, 0x60 - bl DecompressGlyphTile - ldr r0, _08006928 @ =gUnknown_8217618 - adds r0, r6, r0 - ldrb r1, [r0] - adds r0, r5, 0 - adds r0, 0x80 - strb r1, [r0] - adds r1, r5, 0 - adds r1, 0x81 - movs r0, 0xE -_08006916: - strb r0, [r1] -_08006918: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08006920: .4byte gUnknown_820F618 -_08006924: .4byte gGlyphInfo -_08006928: .4byte gUnknown_8217618 - thumb_func_end DecompressGlyphFont4 - - thumb_func_start GetGlyphWidthFont4 -GetGlyphWidthFont4: @ 800692C - push {lr} - lsls r0, 16 - lsrs r2, r0, 16 - cmp r1, 0x1 - bne _08006948 - cmp r2, 0 - bne _0800693E - movs r0, 0xA - b _0800694E -_0800693E: - ldr r0, _08006944 @ =gUnknown_821F818 - b _0800694A - .align 2, 0 -_08006944: .4byte gUnknown_821F818 -_08006948: - ldr r0, _08006954 @ =gUnknown_8217618 -_0800694A: - adds r0, r2, r0 - ldrb r0, [r0] -_0800694E: - pop {r1} - bx r1 - .align 2, 0 -_08006954: .4byte gUnknown_8217618 - thumb_func_end GetGlyphWidthFont4 - - thumb_func_start DecompressGlyphFont5 -DecompressGlyphFont5: @ 8006958 - push {r4-r7,lr} - lsls r0, 16 - lsrs r6, r0, 16 - cmp r1, 0x1 - bne _080069FC - cmp r6, 0 - bne _08006998 - movs r0, 0x2 - bl GetLastTextColor - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - ldr r3, _08006994 @ =gGlyphInfo - lsls r2, r0, 4 - orrs r2, r0 - adds r7, r3, 0 - adds r7, 0x80 - movs r6, 0xA - adds r5, r3, 0 - adds r5, 0x81 - movs r4, 0xC -_08006984: - adds r0, r1, r3 - strb r2, [r0] - strb r6, [r7] - strb r4, [r5] - adds r1, 0x1 - cmp r1, 0x7F - ble _08006984 - b _08006A84 - .align 2, 0 -_08006994: .4byte gGlyphInfo -_08006998: - lsrs r2, r0, 19 - lsls r2, 9 - movs r0, 0x7 - ands r0, r6 - lsls r0, 5 - ldr r1, _080069F0 @ =gUnknown_8227B30 - adds r0, r1 - adds r4, r2, r0 - ldr r5, _080069F4 @ =gGlyphInfo - adds r0, r4, 0 - adds r1, r5, 0 - bl DecompressGlyphTile - adds r0, r4, 0 - adds r0, 0x10 - adds r1, r5, 0 - adds r1, 0x20 - bl DecompressGlyphTile - movs r1, 0x80 - lsls r1, 1 - adds r0, r4, r1 - adds r1, r5, 0 - adds r1, 0x40 - bl DecompressGlyphTile - movs r1, 0x88 - lsls r1, 1 - adds r0, r4, r1 - adds r1, r5, 0 - adds r1, 0x60 - bl DecompressGlyphTile - ldr r0, _080069F8 @ =gUnknown_822FB30 - adds r0, r6, r0 - ldrb r1, [r0] - adds r0, r5, 0 - adds r0, 0x80 - strb r1, [r0] - adds r1, r5, 0 - adds r1, 0x81 - movs r0, 0xC - b _08006A82 - .align 2, 0 -_080069F0: .4byte gUnknown_8227B30 -_080069F4: .4byte gGlyphInfo -_080069F8: .4byte gUnknown_822FB30 -_080069FC: - cmp r6, 0 - bne _08006A3C - movs r0, 0x2 - bl GetLastTextColor - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - ldr r3, _08006A34 @ =gGlyphInfo - lsls r2, r0, 4 - orrs r2, r0 - ldr r0, _08006A38 @ =gUnknown_8227930 - ldrb r4, [r0] - movs r0, 0x81 - adds r0, r3 - mov r12, r0 - adds r6, r3, 0 - adds r6, 0x80 - movs r5, 0xE -_08006A22: - adds r0, r1, r3 - strb r2, [r0] - strb r4, [r6] - mov r0, r12 - strb r5, [r0] - adds r1, 0x1 - cmp r1, 0x7F - ble _08006A22 - b _08006A84 - .align 2, 0 -_08006A34: .4byte gGlyphInfo -_08006A38: .4byte gUnknown_8227930 -_08006A3C: - lsls r1, r6, 6 - ldr r0, _08006A8C @ =gUnknown_821F930 - adds r4, r1, r0 - ldr r5, _08006A90 @ =gGlyphInfo - adds r0, r4, 0 - adds r1, r5, 0 - bl DecompressGlyphTile - adds r0, r4, 0 - adds r0, 0x10 - adds r1, r5, 0 - adds r1, 0x20 - bl DecompressGlyphTile - adds r0, r4, 0 - adds r0, 0x20 - adds r1, r5, 0 - adds r1, 0x40 - bl DecompressGlyphTile - adds r0, r4, 0 - adds r0, 0x30 - adds r1, r5, 0 - adds r1, 0x60 - bl DecompressGlyphTile - ldr r0, _08006A94 @ =gUnknown_8227930 - adds r0, r6, r0 - ldrb r1, [r0] - adds r0, r5, 0 - adds r0, 0x80 - strb r1, [r0] - adds r1, r5, 0 - adds r1, 0x81 - movs r0, 0xE -_08006A82: - strb r0, [r1] -_08006A84: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08006A8C: .4byte gUnknown_821F930 -_08006A90: .4byte gGlyphInfo -_08006A94: .4byte gUnknown_8227930 - thumb_func_end DecompressGlyphFont5 - - thumb_func_start GetGlyphWidthFont5 -GetGlyphWidthFont5: @ 8006A98 - push {lr} - lsls r0, 16 - lsrs r2, r0, 16 - cmp r1, 0x1 - bne _08006AB4 - cmp r2, 0 - bne _08006AAA - movs r0, 0xA - b _08006ABA -_08006AAA: - ldr r0, _08006AB0 @ =gUnknown_822FB30 - b _08006AB6 - .align 2, 0 -_08006AB0: .4byte gUnknown_822FB30 -_08006AB4: - ldr r0, _08006AC0 @ =gUnknown_8227930 -_08006AB6: - adds r0, r2, r0 - ldrb r0, [r0] -_08006ABA: - pop {r1} - bx r1 - .align 2, 0 -_08006AC0: .4byte gUnknown_8227930 - thumb_func_end GetGlyphWidthFont5 - - thumb_func_start DecompressGlyphFont9 -DecompressGlyphFont9: @ 8006AC4 - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 20 - lsls r4, 9 - movs r1, 0xF0 - lsls r1, 12 - ands r1, r0 - lsrs r1, 12 - ldr r0, _08006B08 @ =gUnknown_822FC48 - adds r1, r0 - adds r4, r1 - ldr r5, _08006B0C @ =gGlyphInfo - adds r0, r4, 0 - adds r1, r5, 0 - bl DecompressGlyphTile - movs r0, 0x80 - lsls r0, 1 - adds r4, r0 - adds r1, r5, 0 - adds r1, 0x40 - adds r0, r4, 0 - bl DecompressGlyphTile - adds r1, r5, 0 - adds r1, 0x80 - movs r0, 0x8 - strb r0, [r1] - adds r5, 0x81 - movs r0, 0xC - strb r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08006B08: .4byte gUnknown_822FC48 -_08006B0C: .4byte gGlyphInfo - thumb_func_end DecompressGlyphFont9 - - .align 2, 0 @ Don't pad with nop. diff --git a/data/data.s b/data/data.s index d1598bfbc..7f2b474aa 100644 --- a/data/data.s +++ b/data/data.s @@ -1554,7 +1554,10 @@ gUnknown_83AC970:: @ 83AC970 .incbin "baserom.gba", 0x3AC970, 0x20 sFanfares:: @ 83AC990 - .incbin "baserom.gba", 0x3AC990, 0x278 + .incbin "baserom.gba", 0x3AC990, 0x40 + +gUnknown_83AC9D0:: @ 83AC9D0 + .incbin "baserom.gba", 0x3AC9D0, 0x238 gUnknown_83ACC08:: @ 83ACC08 .incbin "baserom.gba", 0x3ACC08, 0x440 diff --git a/data/data_84827AC.s b/data/data_84827AC.s index e10ced7ea..4f794c658 100644 --- a/data/data_84827AC.s +++ b/data/data_84827AC.s @@ -4999,14 +4999,9 @@ gUnknown_8468B6C:: @ 8468B6C gUnknown_8468BCC:: @ 8468BCC .incbin "baserom.gba", 0x468BCC, 0x90 - .align 2 -gUnknown_8468C5C:: @ 8468C5C - .asciz "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/menews_jisan.c" - - .align 2 -gUnknown_8468C94:: @ 8468C94 - .asciz "0" + .section .rodata.8468C98 +// seagallop.o .align 2 gUnknown_8468C98:: @ 8468C98 .incbin "baserom.gba", 0x468C98, 0x520 diff --git a/data/graphics/fonts/down_arrow.png b/data/graphics/fonts/down_arrow.png Binary files differnew file mode 100644 index 000000000..e74ed47ef --- /dev/null +++ b/data/graphics/fonts/down_arrow.png diff --git a/data/graphics/fonts/down_arrow_2.png b/data/graphics/fonts/down_arrow_2.png Binary files differnew file mode 100644 index 000000000..aefcf4f08 --- /dev/null +++ b/data/graphics/fonts/down_arrow_2.png diff --git a/data/graphics/fonts/down_arrow_3.png b/data/graphics/fonts/down_arrow_3.png Binary files differnew file mode 100644 index 000000000..6345eacfb --- /dev/null +++ b/data/graphics/fonts/down_arrow_3.png diff --git a/data/graphics/fonts/down_arrow_4.png b/data/graphics/fonts/down_arrow_4.png Binary files differnew file mode 100644 index 000000000..b6cba25f3 --- /dev/null +++ b/data/graphics/fonts/down_arrow_4.png diff --git a/data/graphics/fonts/down_arrow_RS.png b/data/graphics/fonts/down_arrow_RS.png Binary files differnew file mode 100644 index 000000000..c0aae894f --- /dev/null +++ b/data/graphics/fonts/down_arrow_RS.png diff --git a/data/graphics/fonts/down_arrow_RS_2.png b/data/graphics/fonts/down_arrow_RS_2.png Binary files differnew file mode 100644 index 000000000..de9d9cf47 --- /dev/null +++ b/data/graphics/fonts/down_arrow_RS_2.png diff --git a/data/graphics/fonts/font0_jap.png b/data/graphics/fonts/font0_jap.png Binary files differnew file mode 100644 index 000000000..23903f343 --- /dev/null +++ b/data/graphics/fonts/font0_jap.png diff --git a/data/graphics/fonts/font0_latin.png b/data/graphics/fonts/font0_latin.png Binary files differnew file mode 100644 index 000000000..7a79f2389 --- /dev/null +++ b/data/graphics/fonts/font0_latin.png diff --git a/data/graphics/fonts/font1_jap.png b/data/graphics/fonts/font1_jap.png Binary files differnew file mode 100644 index 000000000..0041b477a --- /dev/null +++ b/data/graphics/fonts/font1_jap.png diff --git a/data/graphics/fonts/font1_latin.png b/data/graphics/fonts/font1_latin.png Binary files differnew file mode 100644 index 000000000..42e847faf --- /dev/null +++ b/data/graphics/fonts/font1_latin.png diff --git a/data/graphics/fonts/font2_jap.png b/data/graphics/fonts/font2_jap.png Binary files differnew file mode 100644 index 000000000..efdb4b77e --- /dev/null +++ b/data/graphics/fonts/font2_jap.png diff --git a/data/graphics/fonts/font2_latin.png b/data/graphics/fonts/font2_latin.png Binary files differnew file mode 100644 index 000000000..42e847faf --- /dev/null +++ b/data/graphics/fonts/font2_latin.png diff --git a/data/graphics/fonts/font4_jap.png b/data/graphics/fonts/font4_jap.png Binary files differnew file mode 100644 index 000000000..da4f2beac --- /dev/null +++ b/data/graphics/fonts/font4_jap.png diff --git a/data/graphics/fonts/font4_latin.png b/data/graphics/fonts/font4_latin.png Binary files differnew file mode 100644 index 000000000..42e847faf --- /dev/null +++ b/data/graphics/fonts/font4_latin.png diff --git a/data/graphics/fonts/font5_jap.png b/data/graphics/fonts/font5_jap.png Binary files differnew file mode 100644 index 000000000..7da59c0eb --- /dev/null +++ b/data/graphics/fonts/font5_jap.png diff --git a/data/graphics/fonts/font5_latin.png b/data/graphics/fonts/font5_latin.png Binary files differnew file mode 100644 index 000000000..42e847faf --- /dev/null +++ b/data/graphics/fonts/font5_latin.png diff --git a/data/graphics/fonts/font9_jap.png b/data/graphics/fonts/font9_jap.png Binary files differnew file mode 100644 index 000000000..14cf6c042 --- /dev/null +++ b/data/graphics/fonts/font9_jap.png diff --git a/data/graphics/fonts/keypad_icons.png b/data/graphics/fonts/keypad_icons.png Binary files differnew file mode 100644 index 000000000..f8c162bb9 --- /dev/null +++ b/data/graphics/fonts/keypad_icons.png diff --git a/data/text.s b/data/text.s deleted file mode 100644 index c9948aef5..000000000 --- a/data/text.s +++ /dev/null @@ -1,88 +0,0 @@ - .section .rodata - -gDownArrowTiles:: @ 81EA14C - .incbin "baserom.gba", 0x1EA14C, 0x100 - -gDarkDownArrowTiles:: @ 81EA24C - .incbin "baserom.gba", 0x1EA24C, 0x400 - -gDownArrowYCoords:: @ 81EA64C - .incbin "baserom.gba", 0x1EA64C, 0x4 - -gUnknown_81EA650:: @ 81EA650 - .incbin "baserom.gba", 0x1EA650, 0x4 - -gGlyphWidthFuncs:: @ 81EA654 - .incbin "baserom.gba", 0x1EA654, 0x38 - -gUnknown_81EA68C:: @ 81EA68C - .incbin "baserom.gba", 0x1EA68C, 0x18 - -gUnknown_81EA6A4:: @ 81EA6A4 - .incbin "baserom.gba", 0x1EA6A4, 0x10 - -gUnknown_81EA6B4:: @ 81EA6B4 - .incbin "baserom.gba", 0x1EA6B4, 0x18 - -gUnknown_81EA6CC:: @ 81EA6CC - .incbin "baserom.gba", 0x1EA6CC, 0x34 - -gUnknown_81EA700:: @ 81EA700 - .incbin "baserom.gba", 0x1EA700, 0x800 - -gUnknown_81EAF00:: @ 81EAF00 - .incbin "baserom.gba", 0x1EAF00, 0x4000 - -gUnknown_81EEF00:: @ 81EEF00 - .incbin "baserom.gba", 0x1EEF00, 0x200 - -gUnknown_81EF100:: @ 81EF100 - .incbin "baserom.gba", 0x1EF100, 0x4000 - -gUnknown_81F3100:: @ 81F3100 - .incbin "baserom.gba", 0x1F3100, 0x8000 - -gUnknown_81FB100:: @ 81FB100 - .incbin "baserom.gba", 0x1FB100, 0x200 - -gUnknown_81FB300:: @ 81FB300 - .incbin "baserom.gba", 0x1FB300, 0x4000 - -gUnknown_81FF300:: @ 81FF300 - .incbin "baserom.gba", 0x1FF300, 0x8000 - -gUnknown_8207300:: @ 8207300 - .incbin "baserom.gba", 0x207300, 0x200 - -gUnknown_8207500:: @ 8207500 - .incbin "baserom.gba", 0x207500, 0x8000 - -gUnknown_820F500:: @ 820F500 - .incbin "baserom.gba", 0x20F500, 0x118 - -gUnknown_820F618:: @ 820F618 - .incbin "baserom.gba", 0x20F618, 0x8000 - -gUnknown_8217618:: @ 8217618 - .incbin "baserom.gba", 0x217618, 0x200 - -gUnknown_8217818:: @ 8217818 - .incbin "baserom.gba", 0x217818, 0x8000 - -gUnknown_821F818:: @ 821F818 - .incbin "baserom.gba", 0x21F818, 0x118 - -gUnknown_821F930:: @ 821F930 - .incbin "baserom.gba", 0x21F930, 0x8000 - -gUnknown_8227930:: @ 8227930 - .incbin "baserom.gba", 0x227930, 0x200 - -gUnknown_8227B30:: @ 8227B30 - .incbin "baserom.gba", 0x227B30, 0x8000 - -gUnknown_822FB30:: @ 822FB30 - .incbin "baserom.gba", 0x22FB30, 0x118 - -gUnknown_822FC48:: @ 822FC48 - .incbin "baserom.gba", 0x22FC48, 0x2000 diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk new file mode 100644 index 000000000..876262eb2 --- /dev/null +++ b/graphics_file_rules.mk @@ -0,0 +1,34 @@ +FONTGFXDIR := data/graphics/fonts + +$(FONTGFXDIR)/font0_latin.latfont: $(FONTGFXDIR)/font0_latin.png + $(GFX) $< $@ + +$(FONTGFXDIR)/font0_jap.fwjpnfont: $(FONTGFXDIR)/font0_jap.png + $(GFX) $< $@ + +$(FONTGFXDIR)/font1_latin.latfont: $(FONTGFXDIR)/font1_latin.png + $(GFX) $< $@ + +$(FONTGFXDIR)/font1_jap.fwjpnfont: $(FONTGFXDIR)/font1_jap.png + $(GFX) $< $@ + +$(FONTGFXDIR)/font2_latin.latfont: $(FONTGFXDIR)/font2_latin.png + $(GFX) $< $@ + +$(FONTGFXDIR)/font2_jap.fwjpnfont: $(FONTGFXDIR)/font2_jap.png + $(GFX) $< $@ + +$(FONTGFXDIR)/font4_latin.latfont: $(FONTGFXDIR)/font4_latin.png + $(GFX) $< $@ + +$(FONTGFXDIR)/font4_jap.fwjpnfont: $(FONTGFXDIR)/font4_jap.png + $(GFX) $< $@ + +$(FONTGFXDIR)/font5_latin.latfont: $(FONTGFXDIR)/font5_latin.png + $(GFX) $< $@ + +$(FONTGFXDIR)/font5_jap.fwjpnfont: $(FONTGFXDIR)/font5_jap.png + $(GFX) $< $@ + +$(FONTGFXDIR)/font9_jap.fwjpnfont: $(FONTGFXDIR)/font9_jap.png + $(GFX) $< $@ diff --git a/include/event_data.h b/include/event_data.h index f829d3b87..f28ed4f75 100644 --- a/include/event_data.h +++ b/include/event_data.h @@ -29,6 +29,8 @@ u8 *GetFlagPointer(u16 id); u8 FlagSet(u16 id); u8 FlagClear(u16 id); bool8 FlagGet(u16 id); +u16 * sub_806E454(u16 id); +bool32 sub_806E2BC(void); extern u16 gSpecialVar_0x8000; extern u16 gSpecialVar_0x8001; @@ -49,4 +51,6 @@ extern u16 gSpecialVar_MonBoxId; extern u16 gSpecialVar_MonBoxPos; extern u16 gSpecialVar_0x8014; +extern u16 gUnknown_20370D0; + #endif // GUARD_EVENT_DATA_H diff --git a/include/gba/defines.h b/include/gba/defines.h index fe81770e3..a0ef506dd 100644 --- a/include/gba/defines.h +++ b/include/gba/defines.h @@ -69,5 +69,6 @@ #define WIN_RANGE(a, b) (((a) << 8) | (b)) #define NAKED __attribute__((naked)) +#define UNUSED __attribute__((unused)) #endif // GUARD_GBA_DEFINES diff --git a/include/global.h b/include/global.h index f1a5fbc18..11a79ebe8 100644 --- a/include/global.h +++ b/include/global.h @@ -466,6 +466,14 @@ struct RecordMixingDayCareMail bool16 holdsItem[DAYCARE_MON_COUNT]; }; +struct MysteryEventStruct +{ + u8 unk_0_0:2; + u8 unk_0_2:3; + u8 unk_0_5:3; + u8 unk_1; +}; + #define MAP_OBJECTS_COUNT 16 #define BERRY_TREES_COUNT 128 #define FLAGS_COUNT 300 @@ -486,7 +494,9 @@ struct SaveBlock1 /*0x63a*/ u8 trainerRematches[100]; /*0x06A0*/ struct MapObject mapObjects[MAP_OBJECTS_COUNT]; /*0x08E0*/ struct MapObjectTemplate mapObjectTemplates[64]; - /*0x0EE0*/ u8 fillerEE0[0x273C]; + /*0x0EE0*/ u8 fillerEE0[0x2580]; + /*0x3460*/ struct MysteryEventStruct unk_3460; + /*0x3464*/ u8 filler_3464[0x1b8]; /*0x361C*/ struct RamScript ramScript; /*0x3A08*/ u8 filler3A08[0x44]; /*0x3A4C*/ u8 rivalName[PLAYER_NAME_LENGTH]; diff --git a/include/menews_jisan.h b/include/menews_jisan.h new file mode 100644 index 000000000..8dc1d0a99 --- /dev/null +++ b/include/menews_jisan.h @@ -0,0 +1,8 @@ +#ifndef GUARD_MENEWS_JISAN_H +#define GUARD_MENEWS_JISAN_H + +void sub_8146C30(u32 a0); +void sub_8146C88(void); +void sub_8146CA4(void); + +#endif //GUARD_MENEWS_JISAN_H diff --git a/include/mevent.h b/include/mevent.h new file mode 100644 index 000000000..a611a98a8 --- /dev/null +++ b/include/mevent.h @@ -0,0 +1,7 @@ +#ifndef GUARD_MEVENT_H +#define GUARD_MEVENT_H + +struct MysteryEventStruct * sub_8143D94(void); +bool32 sub_8143E1C(void); + +#endif //GUARD_MEVENT_H diff --git a/include/text.h b/include/text.h index 81e1d03f2..61ab8cecd 100644 --- a/include/text.h +++ b/include/text.h @@ -244,5 +244,9 @@ u32 GetGlyphWidthFont2(u16 glyphId, bool32 isJapanese); void DecompressGlyphFont1(u16 glyphId, bool32 isJapanese); u32 GetGlyphWidthFont1(u16 glyphId, bool32 isJapanese); void DecompressGlyphFont9(u16 glyphId); +u32 GetGlyphWidthFont3(u16 glyphId, bool32 isJapanese); +u32 GetGlyphWidthFont4(u16 glyphId, bool32 isJapanese); +u32 GetGlyphWidthFont5(u16 glyphId, bool32 isJapanese); +void sub_80062B0(struct Sprite *sprite); #endif // GUARD_TEXT_H diff --git a/ld_script.txt b/ld_script.txt index 4c922d3a0..e1afe8856 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -58,7 +58,6 @@ SECTIONS { asm/blit.o(.text); src/window_8bpp.o(.text); src/text.o(.text); - asm/text.o(.text); src/sprite.o(.text); src/string_util.o(.text); asm/link.o(.text); @@ -251,7 +250,7 @@ SECTIONS { asm/mevent.o(.text); asm/mevent_server.o(.text); asm/mevent_8145654.o(.text); - asm/menews_jisan.o(.text); + src/menews_jisan.o(.text); asm/seagallop.o(.text); asm/unk_8147500.o(.text); asm/unk_8147AA8.o(.text); @@ -365,7 +364,6 @@ SECTIONS { src/text_printer.o(.rodata); src/window.o(.rodata); src/text.o(.rodata); - data/text.o(.rodata); src/sprite.o(.rodata); src/bg_regs.o(.rodata); src/string_util.o(.rodata); @@ -374,6 +372,8 @@ SECTIONS { data/data_84827AC.o(.rodata); src/vs_seeker.o(.rodata); data/data_84827AC.o(.rodata.8453F6C); + src/menews_jisan.o(.rodata); + data/data_84827AC.o(.rodata.8468C98); src/m4a_tables.o(.rodata); data/sound_data.o(.rodata); } =0 diff --git a/src/menews_jisan.c b/src/menews_jisan.c new file mode 100644 index 000000000..7dfcee939 --- /dev/null +++ b/src/menews_jisan.c @@ -0,0 +1,199 @@ +#include "global.h" +#include "mevent.h" +#include "random.h" +#include "event_data.h" +#include "menews_jisan.h" + +static u32 sub_8146D74(struct MysteryEventStruct *); +static void sub_8146DD8(struct MysteryEventStruct *); +static u32 sub_8146E0C(struct MysteryEventStruct *); +static void sub_8146DA0(struct MysteryEventStruct *); +static void sub_8146D94(struct MysteryEventStruct *); + +#ifdef NONMATCHING +void sub_8146C30(u32 a0) +{ + struct MysteryEventStruct *r5 = sub_8143D94(); + + r5->unk_0_0 = a0; + asm_comment("The switch logic does not match. Specifically, the \"bhi\" is replaced with a \"bls\" and the comparisons with 1 and 3 are swapped chronologically."); + switch (a0) + { + case 0: + r5->unk_1 = (Random() % 15) + 16; + break; + case 1: + break; + case 2: + break; + case 3: + r5->unk_1 = (Random() % 15) + 1; + break; + } +} +#else +NAKED +void sub_8146C30(u32 a0) +{ + asm_unified("\tpush {r4,r5,lr}\n" + "\tadds r4, r0, 0\n" + "\tbl sub_8143D94\n" + "\tadds r5, r0, 0\n" + "\tmovs r0, 0x3\n" + "\tadds r1, r4, 0\n" + "\tands r1, r0\n" + "\tldrb r2, [r5]\n" + "\tmovs r0, 0x4\n" + "\tnegs r0, r0\n" + "\tands r0, r2\n" + "\torrs r0, r1\n" + "\tstrb r0, [r5]\n" + "\tcmp r4, 0x2\n" + "\tbhi _08146C56\n" + "\tcmp r4, 0x1\n" + "\tbcs _08146C5C\n" + "\tb _08146C80\n" + "_08146C56:\n" + "\tcmp r4, 0x3\n" + "\tbeq _08146C6E\n" + "\tb _08146C80\n" + "_08146C5C:\n" + "\tbl Random\n" + "\tlsls r0, 16\n" + "\tlsrs r0, 16\n" + "\tmovs r1, 0xF\n" + "\tbl __umodsi3\n" + "\tadds r0, 0x10\n" + "\tb _08146C7E\n" + "_08146C6E:\n" + "\tbl Random\n" + "\tlsls r0, 16\n" + "\tlsrs r0, 16\n" + "\tmovs r1, 0xF\n" + "\tbl __umodsi3\n" + "\tadds r0, 0x1\n" + "_08146C7E:\n" + "\tstrb r0, [r5, 0x1]\n" + "_08146C80:\n" + "\tpop {r4,r5}\n" + "\tpop {r0}\n" + "\tbx r0"); +} +#endif + +void sub_8146C88(void) +{ + struct MysteryEventStruct *r5 = sub_8143D94(); + + r5->unk_0_0 = 0; + r5->unk_0_2 = 0; + r5->unk_0_5 = 0; + r5->unk_1 = 0; + VarSet(0x4028, 0); +} + +void sub_8146CA4(void) +{ + u16 *r4 = sub_806E454(0x4028); + struct MysteryEventStruct *r2 = sub_8143D94(); + struct MysteryEventStruct r0 = *r2; + + if ((u8)r0.unk_0_5 > 4 && ++(*r4) > 0x1f3) + { + r2->unk_0_5 = 0; + *r4 = 0; + } +} + +u16 sub_8146CE8(void) +{ + u16 *r6 = &gUnknown_20370D0; + struct MysteryEventStruct *r4 = sub_8143D94(); + u16 r5; + + if (!sub_806E2BC() || !sub_8143E1C()) + return 0; + + r5 = sub_8146E0C(r4); + + switch (r5) + { + case 0: + break; + case 1: + *r6 = sub_8146D74(r4); + break; + case 2: + *r6 = sub_8146D74(r4); + break; + case 3: + break; + case 4: + *r6 = sub_8146D74(r4); + sub_8146DA0(r4); + break; + case 5: + *r6 = sub_8146D74(r4); + sub_8146D94(r4); + break; + case 6: + break; + } + + return r5; +} + +static u32 sub_8146D74(struct MysteryEventStruct *a0) +{ + u32 r4; + + a0->unk_0_0 = 0; + r4 = a0->unk_1 + 0x84; + a0->unk_1 = 0; + sub_8146DD8(a0); + return r4; +} + +static void sub_8146D94(struct MysteryEventStruct *a0) +{ + a0->unk_0_2 = 0; +} + +static void sub_8146DA0(struct MysteryEventStruct *a0) +{ + a0->unk_0_2++; + if ((u8)a0->unk_0_2 > 4) + a0->unk_0_2 = 4; +} + +static void sub_8146DD8(struct MysteryEventStruct *a0) +{ + a0->unk_0_5++; + if ((u8)a0->unk_0_5 > 5) + a0->unk_0_5 = 5; +} + +static u32 sub_8146E0C(struct MysteryEventStruct *a0) +{ + struct MysteryEventStruct r0; + if ((u8)a0->unk_0_5 == 5) + return 6; + + r0 = *a0; + switch (r0.unk_0_0) + { + case 0: + return 3; + case 1: + return 1; + case 2: + return 2; + case 3: + if ((u8)r0.unk_0_2 < 3) + return 4; + return 5; + default: + AGB_ASSERT_EX(0, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/menews_jisan.c", 383); + return 0; + } +} diff --git a/src/text.c b/src/text.c index 7832d86f3..7fb0ab034 100644 --- a/src/text.c +++ b/src/text.c @@ -4,9 +4,12 @@ #include "string_util.h" #include "window.h" #include "text.h" +#include "sprite.h" extern u8 gGlyphInfo[0x90]; extern u8 gUnknown_203ADFA; +extern u16 gUnknown_841F408[]; +extern const struct OamData gUnknown_83AC9D0; extern void FillBitmapRect4Bit(struct Bitmap *surface, u16 x, u16 y, u16 width, u16 height, u8 fillValue); extern void FillWindowPixelRect(u8 windowId, u8 fillValue, u16 x, u16 y, u16 width, u16 height); @@ -20,39 +23,359 @@ extern u8* UnkTextUtil_GetPtrI(u8 a1); TextFlags gTextFlags; -extern const u8 gDownArrowTiles[]; -extern const u8 gDarkDownArrowTiles[]; -extern const u8 gUnusedFRLGBlankedDownArrow[]; -extern const u8 gUnusedFRLGDownArrow[]; -extern const u8 gDownArrowYCoords[]; -extern const u8 gWindowVerticalScrollSpeeds[]; +const u8 gDownArrowTiles[] = INCBIN_U8("data/graphics/fonts/down_arrow.4bpp"); +const u8 gDarkDownArrowTiles[] = INCBIN_U8("data/graphics/fonts/down_arrow_RS.4bpp"); +const u8 gTinyArrowTiles[] = INCBIN_U8("data/graphics/fonts/down_arrow_2.4bpp"); +const u8 gTinyDarkDownArrowTiles[] = INCBIN_U8("data/graphics/fonts/down_arrow_RS_2.4bpp"); +const u8 gDoubleArrowTiles1[] = INCBIN_U8("data/graphics/fonts/down_arrow_3.4bpp"); +const u8 gDoubleArrowTiles2[] = INCBIN_U8("data/graphics/fonts/down_arrow_4.4bpp"); -extern const struct GlyphWidthFunc gGlyphWidthFuncs[]; +const u8 gDownArrowYCoords[] = { 0x0, 0x10, 0x20, 0x10 }; +const u8 gWindowVerticalScrollSpeeds[] = { 0x1, 0x2 , 0x4 , 0x0 }; -extern const struct KeypadIcon gKeypadIcons[]; +const struct GlyphWidthFunc gGlyphWidthFuncs[] = { + { 0x0, GetGlyphWidthFont0 }, + { 0x1, GetGlyphWidthFont1 }, + { 0x2, GetGlyphWidthFont2 }, + { 0x3, GetGlyphWidthFont3 }, + { 0x4, GetGlyphWidthFont4 }, + { 0x5, GetGlyphWidthFont5 }, + { 0x6, GetGlyphWidthFont6 } +}; -extern const u8 gKeypadIconTiles[]; +const struct SpriteSheet gUnknown_81EA68C[] = +{ + {gDoubleArrowTiles1, sizeof(gDoubleArrowTiles1), 0x8000}, + {gDoubleArrowTiles2, sizeof(gDoubleArrowTiles2), 0x8000}, + {NULL} +}; + +const struct SpritePalette gUnknown_81EA6A4[] = +{ + {gUnknown_841F408, 0x8000}, + {NULL} +}; -extern const struct FontInfo gFontInfos[]; +const struct SpriteTemplate gUnknown_81EA6B4 = +{ + .tileTag = 0x8000, + .paletteTag = 0x8000, + .oam = &gUnknown_83AC9D0, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80062B0, +}; -extern const u8 gMenuCursorDimensions[][2]; +const struct KeypadIcon gKeypadIcons[] = { + { 0x0, 0x8, 0xC }, + { 0x1, 0x8, 0xC }, + { 0x2, 0x10, 0xC }, + { 0x4, 0x10, 0xC }, + { 0x6, 0x18, 0xC }, + { 0x9, 0x18, 0xC }, + { 0xC, 0x8, 0xC }, + { 0xD, 0x8, 0xC }, + { 0xE, 0x8, 0xC }, + { 0xF, 0x8, 0xC }, + { 0x20, 0x8, 0xC }, + { 0x21, 0x8, 0xC }, + { 0x22, 0x8, 0xC }, +}; -extern const u16 gFont9JapaneseGlyphs[]; +const u8 gKeypadIconTiles[] = INCBIN_U8("data/graphics/fonts/keypad_icons.4bpp"); -extern const u16 gFont8LatinGlyphs[]; -extern const u8 gFont8LatinGlyphWidths[]; -extern const u16 gFont0LatinGlyphs[]; -extern const u8 gFont0LatinGlyphWidths[]; -extern const u16 gFont7LatinGlyphs[]; -extern const u8 gFont7LatinGlyphWidths[]; -extern const u16 gFont2LatinGlyphs[]; -extern const u8 gFont2LatinGlyphWidths[]; -extern const u16 gFont1LatinGlyphs[]; -extern const u8 gFont1LatinGlyphWidths[]; -extern const u16 gFont0JapaneseGlyphs[]; -extern const u16 gFont1JapaneseGlyphs[]; -extern const u16 gFont2JapaneseGlyphs[]; -extern const u8 gFont2JapaneseGlyphWidths[]; +// Font 0 +const u16 gFont0LatinGlyphs[] = INCBIN_U16("data/graphics/fonts/font0_latin.latfont"); +const u8 gFont0LatinGlyphWidths[] = +{ + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x04, 0x05, 0x04, 0x04, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x04, 0x05, 0x04, 0x04, 0x05, 0x05, 0x05, 0x06, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x08, 0x07, 0x08, 0x05, 0x05, 0x05, 0x05, 0x05, 0x08, 0x08, 0x07, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x04, 0x07, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x04, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x08, 0x08, 0x08, 0x08, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x07, 0x07, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x08, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x04, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x08, 0x05, 0x08, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x04, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x04, 0x05, 0x05, 0x05, + 0x05, 0x04, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x04, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x08, 0x07, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x05 +}; +const u16 gFont0JapaneseGlyphs[] = INCBIN_U16("data/graphics/fonts/font0_jap.fwjpnfont"); + +// Font 1 +const u16 gFont1LatinGlyphs[] = INCBIN_U16("data/graphics/fonts/font1_latin.latfont"); +const u8 gFont1LatinGlyphWidths[] = +{ + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x08, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x08, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x09, 0x08, 0x08, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0A, 0x08, 0x05, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x04, 0x06, 0x08, 0x05, 0x05, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0C, 0x0C, 0x0C, 0x0C, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x08, 0x08, 0x08, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x08, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x05, 0x06, 0x05, 0x06, 0x06, 0x06, 0x03, 0x03, 0x06, + 0x06, 0x08, 0x05, 0x09, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x05, 0x06, 0x06, 0x04, 0x06, 0x05, + 0x05, 0x06, 0x05, 0x06, 0x06, 0x06, 0x05, 0x05, 0x05, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x08, 0x05, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x0C, 0x0C, 0x0C, 0x0C, 0x08, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x06 +}; +const u16 gFont1JapaneseGlyphs[] = INCBIN_U16("data/graphics/fonts/font1_jap.fwjpnfont"); + +// Font 2 +const u16 gFont2LatinGlyphs[] = INCBIN_U16("data/graphics/fonts/font2_latin.latfont"); +const u8 gFont2LatinGlyphWidths[] = +{ + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x08, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x08, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x09, 0x08, 0x08, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0A, 0x08, 0x05, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x04, 0x06, 0x08, 0x05, 0x05, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0C, 0x0C, 0x0C, 0x0C, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x08, 0x08, 0x08, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x08, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x05, 0x06, 0x05, 0x06, 0x06, 0x06, 0x03, 0x03, 0x06, + 0x06, 0x08, 0x05, 0x09, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x05, 0x06, 0x06, 0x04, 0x06, 0x05, + 0x05, 0x06, 0x05, 0x06, 0x06, 0x06, 0x05, 0x05, 0x05, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x08, 0x05, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x0C, 0x0C, 0x0C, 0x0C, 0x08, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x06 +}; +const u16 gFont2JapaneseGlyphs[] = INCBIN_U16("data/graphics/fonts/font2_jap.fwjpnfont"); +const u8 gFont2JapaneseGlyphWidths[] = +{ + 0x00, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x09, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x09, 0x08, 0x07, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x05, 0x09, 0x0A, 0x0A, 0x0A, 0x08, 0x0A, 0x0A, 0x0A, 0x0A, 0x08, + 0x08, 0x08, 0x0A, 0x0A, 0x08, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x05, 0x06, 0x06, 0x02, 0x04, 0x06, + 0x03, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x05, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x00 +}; + +// Font 4 +const u16 gFont4LatinGlyphs[] = INCBIN_U16("data/graphics/fonts/font4_latin.latfont"); +const u8 gFont4LatinGlyphWidths[] = +{ + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x08, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x08, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x09, 0x08, 0x08, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0A, 0x08, 0x05, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x04, 0x06, 0x08, 0x05, 0x05, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0C, 0x0C, 0x0C, 0x0C, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x08, 0x08, 0x08, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x08, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x05, 0x06, 0x05, 0x06, 0x06, 0x06, 0x03, 0x03, 0x06, + 0x06, 0x08, 0x05, 0x09, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x05, 0x06, 0x06, 0x04, 0x06, 0x05, + 0x05, 0x06, 0x05, 0x06, 0x06, 0x06, 0x05, 0x05, 0x05, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x08, 0x05, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x0C, 0x0C, 0x0C, 0x0C, 0x08, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x06 +}; +const u16 gFont4JapaneseGlyphs[] = INCBIN_U16("data/graphics/fonts/font4_jap.fwjpnfont"); +const u8 gFont4JapaneseGlyphWidths[] = +{ + 0x00, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x09, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x09, 0x08, 0x07, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x05, 0x09, 0x0A, 0x0A, 0x0A, 0x08, 0x0A, 0x0A, 0x0A, 0x0A, 0x08, + 0x08, 0x08, 0x0A, 0x0A, 0x08, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x05, 0x06, 0x06, 0x02, 0x04, 0x06, + 0x03, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x05, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x00 +}; + +// Font 5 +const u16 gFont5LatinGlyphs[] = INCBIN_U16("data/graphics/fonts/font5_latin.latfont"); +const u8 gFont5LatinGlyphWidths[] = +{ + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x08, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x08, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x09, 0x08, 0x08, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0A, 0x08, 0x05, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x04, 0x06, 0x08, 0x05, 0x05, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0C, 0x0C, 0x0C, 0x0C, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x08, 0x08, 0x08, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x08, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x05, 0x06, 0x05, 0x06, 0x06, 0x06, 0x03, 0x03, 0x06, + 0x06, 0x08, 0x05, 0x09, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x05, 0x06, 0x06, 0x04, 0x06, 0x05, + 0x05, 0x06, 0x05, 0x06, 0x06, 0x06, 0x05, 0x05, 0x05, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x08, 0x05, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x0C, 0x0C, 0x0C, 0x0C, 0x08, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x06 +}; +const u16 gFont5JapaneseGlyphs[] = INCBIN_U16("data/graphics/fonts/font5_jap.fwjpnfont"); +const u8 gFont5JapaneseGlyphWidths[] = +{ + 0x00, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x09, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x08, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x09, 0x08, 0x07, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x05, 0x09, 0x0A, 0x0A, 0x0A, 0x08, 0x0A, 0x0A, 0x0A, 0x0A, 0x08, + 0x08, 0x08, 0x0A, 0x0A, 0x08, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x05, 0x06, 0x06, 0x02, 0x04, 0x06, + 0x03, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x05, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x00 +}; + +// Font 9 +const u16 gFont9JapaneseGlyphs[] = INCBIN_U16("data/graphics/fonts/font9_jap.fwjpnfont"); u16 Font0Func(struct TextPrinter *textPrinter) { @@ -982,7 +1305,7 @@ _08005CD0:\n\ ldrb r2, [r6, 0x1F]\n\ cmp r2, 0\n\ beq _08005D40\n\ - ldr r4, _08005D04 @ =gUnknown_81EA650\n\ + ldr r4, _08005D04 @ =gWindowVerticalScrollSpeeds\n\ ldr r5, _08005D08 @ =gSaveBlock2Ptr\n\ ldr r0, [r5]\n\ ldrb r0, [r0, 0x14]\n\ @@ -1004,7 +1327,7 @@ _08005CD0:\n\ strb r0, [r6, 0x1F]\n\ b _08005D36\n\ .align 2, 0\n\ -_08005D04: .4byte gUnknown_81EA650\n\ +_08005D04: .4byte gWindowVerticalScrollSpeeds\n\ _08005D08: .4byte gSaveBlock2Ptr\n\ _08005D0C:\n\ ldrb r0, [r6, 0x4]\n\ @@ -1438,3 +1761,412 @@ u8 RenderTextFont9(u8 *pixels, u8 fontId, u8 *str) RestoreTextColors(&colorBackup[0], &colorBackup[1], &colorBackup[2]); return 1; } + +void sub_80062B0(struct Sprite *sprite) +{ + if(sprite->data[0]) + { + sprite->data[0]--; + } + else + { + sprite->data[0] = 8; + switch(sprite->data[1]) + { + case 0: + sprite->pos2.y = 0; + break; + case 1: + sprite->pos2.y = 1; + break; + case 2: + sprite->pos2.y = 2; + break; + case 3: + sprite->pos2.y = 1; + sprite->data[1] = 0; + return; + } + sprite->data[1]++; + } +} + +u8 sub_8006300(u8 sheetId, u16 x, u16 y, u8 priority, u8 subpriority) +{ + u8 spriteId; + LoadSpriteSheet(&gUnknown_81EA68C[sheetId & 1]); + LoadSpritePalette(gUnknown_81EA6A4); + spriteId = CreateSprite(&gUnknown_81EA6B4, x + 3, y + 4, subpriority); + gSprites[spriteId].oam.priority = (priority & 3); + gSprites[spriteId].oam.matrixNum = 0; + gSprites[spriteId].data[0] = 8; + return spriteId; +} + +void sub_8006398(u8 spriteId) +{ + DestroySprite(&gSprites[spriteId]); + FreeSpriteTilesByTag(0x8000); + FreeSpritePaletteByTag(0x8000); +} + +u8 DrawKeypadIcon(u8 windowId, u8 keypadIconId, u16 x, u16 y) +{ + BlitBitmapRectToWindow( + windowId, + gKeypadIconTiles + (gKeypadIcons[keypadIconId].tile_offset * 0x20), + 0, + 0, + 0x80, + 0x80, + x, + y, + gKeypadIcons[keypadIconId].width, + gKeypadIcons[keypadIconId].height); + return gKeypadIcons[keypadIconId].width; +} + +u8 GetKeypadIconTileOffset(u8 keypadIconId) +{ + return gKeypadIcons[keypadIconId].tile_offset; +} + +u8 GetKeypadIconWidth(u8 keypadIconId) +{ + return gKeypadIcons[keypadIconId].width; +} + +u8 GetKeypadIconHeight(u8 keypadIconId) +{ + return gKeypadIcons[keypadIconId].height; +} + +void DecompressGlyphFont0(u16 glyphId, bool32 isJapanese) +{ + const u16* glyphs; + + if (isJapanese == 1) + { + glyphs = gFont0JapaneseGlyphs + (0x100 * (glyphId >> 0x4)) + (0x8 * (glyphId & 0xF)); + DecompressGlyphTile(glyphs, (u16 *)gGlyphInfo); + DecompressGlyphTile(glyphs + 0x80, (u16 *)(gGlyphInfo + 0x40)); + gGlyphInfo[0x80] = 8; + gGlyphInfo[0x81] = 12; + } + else + { + glyphs = gFont0LatinGlyphs + (0x10 * glyphId); + DecompressGlyphTile(glyphs, (u16 *)gGlyphInfo); + DecompressGlyphTile(glyphs + 0x8, (u16 *)(gGlyphInfo + 0x40)); + gGlyphInfo[0x80] = gFont0LatinGlyphWidths[glyphId]; + gGlyphInfo[0x81] = 13; + } +} + +u32 GetGlyphWidthFont0(u16 glyphId, bool32 isJapanese) +{ + if (isJapanese == TRUE) + return 8; + else + return gFont0LatinGlyphWidths[glyphId]; +} + +void DecompressGlyphFont1(u16 glyphId, bool32 isJapanese) +{ + const u16* glyphs; + + if (isJapanese == TRUE) + { + int eff; + glyphs = gFont1JapaneseGlyphs + (0x100 * (glyphId >> 0x4)) + (0x8 * (glyphId & (eff = 0xF))); // shh, no questions, only matching now + DecompressGlyphTile(glyphs, (u16 *)gGlyphInfo); + DecompressGlyphTile(glyphs + 0x80, (u16 *)(gGlyphInfo + 0x40)); + gGlyphInfo[0x80] = 8; + gGlyphInfo[0x81] = 16; + } + else + { + glyphs = gFont1LatinGlyphs + (0x20 * glyphId); + DecompressGlyphTile(glyphs, (u16 *)gGlyphInfo); + DecompressGlyphTile(glyphs + 0x8, (u16 *)(gGlyphInfo + 0x20)); + DecompressGlyphTile(glyphs + 0x10, (u16 *)(gGlyphInfo + 0x40)); + DecompressGlyphTile(glyphs + 0x18, (u16 *)(gGlyphInfo + 0x60)); + gGlyphInfo[0x80] = gFont1LatinGlyphWidths[glyphId]; + gGlyphInfo[0x81] = 14; + } +} + +u32 GetGlyphWidthFont1(u16 glyphId, bool32 isJapanese) +{ + if (isJapanese == TRUE) + return 8; + else + return gFont1LatinGlyphWidths[glyphId]; +} + +void DecompressGlyphFont2(u16 glyphId, bool32 isJapanese) +{ + const u16* glyphs; + int i; + u8 lastColor; + + if(isJapanese == TRUE) + { + if(glyphId == 0) + { + lastColor = GetLastTextColor(2); + + for(i = 0; i < 0x80; i++) + { + gGlyphInfo[i] = lastColor | lastColor << 4; + // Game Freak, please. writing the same values over and over... + gGlyphInfo[0x80] = 10; + gGlyphInfo[0x81] = 12; + } + } + else + { + glyphs = gFont2JapaneseGlyphs + (0x100 * (glyphId >> 0x3)) + (0x10 * (glyphId & 0x7)); + DecompressGlyphTile(glyphs, (u16 *)gGlyphInfo); + DecompressGlyphTile(glyphs + 0x8, (u16 *)(gGlyphInfo + 0x20)); + DecompressGlyphTile(glyphs + 0x80, (u16 *)(gGlyphInfo + 0x40)); + DecompressGlyphTile(glyphs + 0x88, (u16 *)(gGlyphInfo + 0x60)); + gGlyphInfo[0x80] = gFont2JapaneseGlyphWidths[glyphId]; + gGlyphInfo[0x81] = 12; + } + } + else + { + if(glyphId == 0) + { + lastColor = GetLastTextColor(2); + + for(i = 0; i < 0x80; i++) + { + gGlyphInfo[i] = lastColor | lastColor << 4; + // but why + gGlyphInfo[0x80] = gFont2LatinGlyphWidths[0]; + gGlyphInfo[0x81] = 14; + } + } + else + { + glyphs = gFont2LatinGlyphs + (0x20 * glyphId); + DecompressGlyphTile(glyphs, (u16 *)gGlyphInfo); + DecompressGlyphTile(glyphs + 0x8, (u16 *)(gGlyphInfo + 0x20)); + DecompressGlyphTile(glyphs + 0x10, (u16 *)(gGlyphInfo + 0x40)); + DecompressGlyphTile(glyphs + 0x18, (u16 *)(gGlyphInfo + 0x60)); + gGlyphInfo[0x80] = gFont2LatinGlyphWidths[glyphId]; + gGlyphInfo[0x81] = 14; + } + } +} + +u32 GetGlyphWidthFont2(u16 glyphId, bool32 isJapanese) +{ + if (isJapanese == TRUE) + { + if(glyphId == 0) + return 10; + + return gFont2JapaneseGlyphWidths[glyphId]; + } + else + { + return gFont2LatinGlyphWidths[glyphId]; + } +} + +void DecompressGlyphFont3(u16 glyphId, bool32 isJapanese) +{ + const u16* glyphs; + int i; + u8 lastColor; + + if(isJapanese == TRUE) + { + if(glyphId == 0) + { + lastColor = GetLastTextColor(2); + + for(i = 0; i < 0x80; i++) + { + gGlyphInfo[i] = lastColor | lastColor << 4; + // Game Freak, please. writing the same values over and over... + gGlyphInfo[0x80] = 10; + gGlyphInfo[0x81] = 12; + } + } + else + { + glyphs = gFont2JapaneseGlyphs + (0x100 * (glyphId >> 0x3)) + (0x10 * (glyphId & 0x7)); + DecompressGlyphTile(glyphs, (u16 *)gGlyphInfo); + DecompressGlyphTile(glyphs + 0x8, (u16 *)(gGlyphInfo + 0x20)); + DecompressGlyphTile(glyphs + 0x80, (u16 *)(gGlyphInfo + 0x40)); + DecompressGlyphTile(glyphs + 0x88, (u16 *)(gGlyphInfo + 0x60)); + gGlyphInfo[0x80] = 10; + gGlyphInfo[0x81] = 12; + } + } + else + DecompressGlyphFont2(glyphId, isJapanese); +} + +u32 GetGlyphWidthFont3(u16 glyphId, bool32 isJapanese) +{ + if(isJapanese == TRUE) + return 10; + else + return gFont2LatinGlyphWidths[glyphId]; +} + +void DecompressGlyphFont4(u16 glyphId, bool32 isJapanese) +{ + const u16* glyphs; + int i; + u8 lastColor; + + if(isJapanese == TRUE) + { + if(glyphId == 0) + { + lastColor = GetLastTextColor(2); + + for(i = 0; i < 0x80; i++) + { + gGlyphInfo[i] = lastColor | lastColor << 4; + // Game Freak, please. writing the same values over and over... + gGlyphInfo[0x80] = 10; + gGlyphInfo[0x81] = 12; + } + } + else + { + glyphs = gFont4JapaneseGlyphs + (0x100 * (glyphId >> 0x3)) + (0x10 * (glyphId & 0x7)); + DecompressGlyphTile(glyphs, (u16 *)gGlyphInfo); + DecompressGlyphTile(glyphs + 0x8, (u16 *)(gGlyphInfo + 0x20)); + DecompressGlyphTile(glyphs + 0x80, (u16 *)(gGlyphInfo + 0x40)); + DecompressGlyphTile(glyphs + 0x88, (u16 *)(gGlyphInfo + 0x60)); + gGlyphInfo[0x80] = gFont4JapaneseGlyphWidths[glyphId]; + gGlyphInfo[0x81] = 12; + } + } + else + { + if(glyphId == 0) + { + lastColor = GetLastTextColor(2); + + for(i = 0; i < 0x80; i++) + { + gGlyphInfo[i] = lastColor | lastColor << 4; + // but why + gGlyphInfo[0x80] = gFont4LatinGlyphWidths[0]; + gGlyphInfo[0x81] = 14; + } + } + else + { + glyphs = gFont4LatinGlyphs + (0x20 * glyphId); + DecompressGlyphTile(glyphs, (u16 *)gGlyphInfo); + DecompressGlyphTile(glyphs + 0x8, (u16 *)(gGlyphInfo + 0x20)); + DecompressGlyphTile(glyphs + 0x10, (u16 *)(gGlyphInfo + 0x40)); + DecompressGlyphTile(glyphs + 0x18, (u16 *)(gGlyphInfo + 0x60)); + gGlyphInfo[0x80] = gFont4LatinGlyphWidths[glyphId]; + gGlyphInfo[0x81] = 14; + } + } +} + +u32 GetGlyphWidthFont4(u16 glyphId, bool32 isJapanese) +{ + if(isJapanese == TRUE) + { + if(glyphId == 0) + return 10; + + return gFont4JapaneseGlyphWidths[glyphId]; + } + else + return gFont4LatinGlyphWidths[glyphId]; +} + +void DecompressGlyphFont5(u16 glyphId, bool32 isJapanese) +{ + const u16* glyphs; + int i; + u8 lastColor; + + if(isJapanese == TRUE) + { + if(glyphId == 0) + { + lastColor = GetLastTextColor(2); + + for(i = 0; i < 0x80; i++) + { + gGlyphInfo[i] = lastColor | lastColor << 4; + // Game Freak, please. writing the same values over and over... + gGlyphInfo[0x80] = 10; + gGlyphInfo[0x81] = 12; + } + } + else + { + glyphs = gFont5JapaneseGlyphs + (0x100 * (glyphId >> 0x3)) + (0x10 * (glyphId & 0x7)); + DecompressGlyphTile(glyphs, (u16 *)gGlyphInfo); + DecompressGlyphTile(glyphs + 0x8, (u16 *)(gGlyphInfo + 0x20)); + DecompressGlyphTile(glyphs + 0x80, (u16 *)(gGlyphInfo + 0x40)); + DecompressGlyphTile(glyphs + 0x88, (u16 *)(gGlyphInfo + 0x60)); + gGlyphInfo[0x80] = gFont5JapaneseGlyphWidths[glyphId]; + gGlyphInfo[0x81] = 12; + } + } + else + { + if(glyphId == 0) + { + lastColor = GetLastTextColor(2); + + for(i = 0; i < 0x80; i++) + { + gGlyphInfo[i] = lastColor | lastColor << 4; + // but why + gGlyphInfo[0x80] = gFont5LatinGlyphWidths[0]; + gGlyphInfo[0x81] = 14; + } + } + else + { + glyphs = gFont5LatinGlyphs + (0x20 * glyphId); + DecompressGlyphTile(glyphs, (u16 *)gGlyphInfo); + DecompressGlyphTile(glyphs + 0x8, (u16 *)(gGlyphInfo + 0x20)); + DecompressGlyphTile(glyphs + 0x10, (u16 *)(gGlyphInfo + 0x40)); + DecompressGlyphTile(glyphs + 0x18, (u16 *)(gGlyphInfo + 0x60)); + gGlyphInfo[0x80] = gFont5LatinGlyphWidths[glyphId]; + gGlyphInfo[0x81] = 14; + } + } +} + +u32 GetGlyphWidthFont5(u16 glyphId, bool32 isJapanese) +{ + if(isJapanese == TRUE) + { + if(glyphId == 0) + return 10; + + return gFont5JapaneseGlyphWidths[glyphId]; + } + else + return gFont5LatinGlyphWidths[glyphId]; +} + +void DecompressGlyphFont9(u16 glyphId) +{ + const u16* glyphs = gFont9JapaneseGlyphs + (0x100 * (glyphId >> 0x4)) + (0x8 * (glyphId & 0xF)); + DecompressGlyphTile(glyphs, (u16 *)gGlyphInfo); + DecompressGlyphTile(glyphs + 0x80, (u16 *)(gGlyphInfo + 0x40)); + gGlyphInfo[0x80] = 8; + gGlyphInfo[0x81] = 12; +} |