Merge branch 'master' into vs_seeker
@@ -89,6 +89,8 @@ tidy:
|
||||
rm -f $(ROM) $(ELF) $(MAP)
|
||||
rm -r build/*
|
||||
|
||||
include graphics_file_rules.mk
|
||||
|
||||
%.s: ;
|
||||
%.png: ;
|
||||
%.pal: ;
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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.
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
After Width: | Height: | Size: 162 B |
|
After Width: | Height: | Size: 150 B |
|
After Width: | Height: | Size: 159 B |
|
After Width: | Height: | Size: 160 B |
|
After Width: | Height: | Size: 163 B |
|
After Width: | Height: | Size: 150 B |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 297 B |
@@ -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
|
||||
@@ -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) $< $@
|
||||
@@ -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
|
||||
|
||||
@@ -69,5 +69,6 @@
|
||||
#define WIN_RANGE(a, b) (((a) << 8) | (b))
|
||||
|
||||
#define NAKED __attribute__((naked))
|
||||
#define UNUSED __attribute__((unused))
|
||||
|
||||
#endif // GUARD_GBA_DEFINES
|
||||
|
||||
@@ -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];
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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}
|
||||
};
|
||||
|
||||
extern const struct FontInfo gFontInfos[];
|
||||
const struct SpritePalette gUnknown_81EA6A4[] =
|
||||
{
|
||||
{gUnknown_841F408, 0x8000},
|
||||
{NULL}
|
||||
};
|
||||
|
||||
extern const u8 gMenuCursorDimensions[][2];
|
||||
const struct SpriteTemplate gUnknown_81EA6B4 =
|
||||
{
|
||||
.tileTag = 0x8000,
|
||||
.paletteTag = 0x8000,
|
||||
.oam = &gUnknown_83AC9D0,
|
||||
.anims = gDummySpriteAnimTable,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = sub_80062B0,
|
||||
};
|
||||
|
||||
extern const u16 gFont9JapaneseGlyphs[];
|
||||
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 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[];
|
||||
const u8 gKeypadIconTiles[] = INCBIN_U8("data/graphics/fonts/keypad_icons.4bpp");
|
||||
|
||||
// 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;
|
||||
}
|
||||
|
||||