Use multi-value charmaps for all full-width character sets
Some checks are pending
CI / build (push) Waiting to run

and require rgbds v0.9.3
This commit is contained in:
dannye 2025-07-07 22:49:58 -05:00
parent 87f32ad617
commit 7b63ea5da7
13 changed files with 361 additions and 344 deletions

View File

@ -16,7 +16,7 @@ jobs:
uses: actions/checkout@master
with:
path: rgbds
ref: v0.9.0
ref: v0.9.3
repository: gbdev/rgbds
- name: Install rgbds

View File

@ -102,125 +102,31 @@
charmap "|", $7e
charmap "‾", $7f
MACRO fwcharmap
charmap STRCAT("FW{x:\1}_", \2), \3
ENDM
NEWCHARMAP katakana
NEWCHARMAP hiragana
NEWCHARMAP fullwidth
; TX_FULLWIDTH3
fwcharmap TX_FULLWIDTH3, "A", $30
fwcharmap TX_FULLWIDTH3, "B", $31
fwcharmap TX_FULLWIDTH3, "C", $32
fwcharmap TX_FULLWIDTH3, "D", $33
fwcharmap TX_FULLWIDTH3, "E", $34
fwcharmap TX_FULLWIDTH3, "F", $35
fwcharmap TX_FULLWIDTH3, "G", $36
fwcharmap TX_FULLWIDTH3, "H", $37
fwcharmap TX_FULLWIDTH3, "I", $38
fwcharmap TX_FULLWIDTH3, "J", $39
fwcharmap TX_FULLWIDTH3, "K", $3a
fwcharmap TX_FULLWIDTH3, "L", $3b
fwcharmap TX_FULLWIDTH3, "M", $3c
fwcharmap TX_FULLWIDTH3, "N", $3d
fwcharmap TX_FULLWIDTH3, "O", $3e
fwcharmap TX_FULLWIDTH3, "P", $3f
fwcharmap TX_FULLWIDTH3, "Q", $40
fwcharmap TX_FULLWIDTH3, "R", $41
fwcharmap TX_FULLWIDTH3, "S", $42
fwcharmap TX_FULLWIDTH3, "T", $43
fwcharmap TX_FULLWIDTH3, "U", $44
fwcharmap TX_FULLWIDTH3, "V", $45
fwcharmap TX_FULLWIDTH3, "W", $46
fwcharmap TX_FULLWIDTH3, "X", $47
fwcharmap TX_FULLWIDTH3, "Y", $48
fwcharmap TX_FULLWIDTH3, "Z", $49
fwcharmap TX_FULLWIDTH3, "g", $4a
fwcharmap TX_FULLWIDTH3, "c", $4b
fwcharmap TX_FULLWIDTH3, "m", $4c
fwcharmap TX_FULLWIDTH3, "r.", $4d
fwcharmap TX_FULLWIDTH3, "♀", $4e
fwcharmap TX_FULLWIDTH3, "♂", $4f
fwcharmap TX_FULLWIDTH3, "【", $50
fwcharmap TX_FULLWIDTH3, "】", $51
fwcharmap TX_FULLWIDTH3, "●", $52
fwcharmap TX_FULLWIDTH3, "◆", $53
fwcharmap TX_FULLWIDTH3, "★", $54
fwcharmap TX_FULLWIDTH3, "☆", $55
fwcharmap TX_FULLWIDTH3, "_", $56
fwcharmap TX_FULLWIDTH3, "▪", $57
fwcharmap TX_FULLWIDTH3, "℃", $58
fwcharmap TX_FULLWIDTH3, "゛", $59
fwcharmap TX_FULLWIDTH3, "°", $5a
fwcharmap TX_FULLWIDTH3, "゜", $5b
fwcharmap TX_FULLWIDTH3, "ˍ", $5c
fwcharmap TX_FULLWIDTH3, "&", $5d
fwcharmap TX_FULLWIDTH3, ":", $5e
fwcharmap TX_FULLWIDTH3, "○", $5f
fwcharmap TX_FULLWIDTH3, "※", $60
fwcharmap TX_FULLWIDTH3, "о", $61
fwcharmap TX_FULLWIDTH3, "^", $62
fwcharmap TX_FULLWIDTH3, "♪", $63
fwcharmap TX_FULLWIDTH3, "a", $64
fwcharmap TX_FULLWIDTH3, "b", $65
fwcharmap TX_FULLWIDTH3, "d", $66
fwcharmap TX_FULLWIDTH3, "e", $67
fwcharmap TX_FULLWIDTH3, "f", $68
fwcharmap TX_FULLWIDTH3, "h", $69
fwcharmap TX_FULLWIDTH3, "i", $6a
fwcharmap TX_FULLWIDTH3, "j", $6b
fwcharmap TX_FULLWIDTH3, "k", $6c
fwcharmap TX_FULLWIDTH3, "l", $6d
fwcharmap TX_FULLWIDTH3, "n", $6e
fwcharmap TX_FULLWIDTH3, "o", $6f
fwcharmap TX_FULLWIDTH3, "p", $70
fwcharmap TX_FULLWIDTH3, "q", $71
fwcharmap TX_FULLWIDTH3, "s", $72
fwcharmap TX_FULLWIDTH3, "t", $73
fwcharmap TX_FULLWIDTH3, "u", $74
fwcharmap TX_FULLWIDTH3, "v", $75
fwcharmap TX_FULLWIDTH3, "w", $76
fwcharmap TX_FULLWIDTH3, "x", $77
fwcharmap TX_FULLWIDTH3, "y", $78
fwcharmap TX_FULLWIDTH3, "z", $79
fwcharmap TX_FULLWIDTH3, "'", $7a
fwcharmap TX_FULLWIDTH3, "”", $7b
fwcharmap TX_FULLWIDTH3, "■", $7c
fwcharmap TX_FULLWIDTH3, "r", $8e
fwcharmap TX_FULLWIDTH3, "「", $97
fwcharmap TX_FULLWIDTH3, "", $98
fwcharmap TX_FULLWIDTH3, "」", $99
fwcharmap TX_FULLWIDTH3, "|", $9a
fwcharmap TX_FULLWIDTH3, "ˉ", $9b
fwcharmap TX_FULLWIDTH3, " ", $9c
fwcharmap TX_FULLWIDTH3, "!", $9d
fwcharmap TX_FULLWIDTH3, "#", $9f
fwcharmap TX_FULLWIDTH3, "$", $a0
fwcharmap TX_FULLWIDTH3, "%", $a1
fwcharmap TX_FULLWIDTH3, "(", $a4
fwcharmap TX_FULLWIDTH3, ")", $a5
fwcharmap TX_FULLWIDTH3, "*", $a6
fwcharmap TX_FULLWIDTH3, "+", $a7
fwcharmap TX_FULLWIDTH3, "、", $a8
fwcharmap TX_FULLWIDTH3, "-", $a9
fwcharmap TX_FULLWIDTH3, "/", $ab
fwcharmap TX_FULLWIDTH3, "0", $ac
fwcharmap TX_FULLWIDTH3, "1", $ad
fwcharmap TX_FULLWIDTH3, "2", $ae
fwcharmap TX_FULLWIDTH3, "3", $af
fwcharmap TX_FULLWIDTH3, "4", $b0
fwcharmap TX_FULLWIDTH3, "5", $b1
fwcharmap TX_FULLWIDTH3, "6", $b2
fwcharmap TX_FULLWIDTH3, "7", $b3
fwcharmap TX_FULLWIDTH3, "8", $b4
fwcharmap TX_FULLWIDTH3, "9", $b5
fwcharmap TX_FULLWIDTH3, ";", $b7
fwcharmap TX_FULLWIDTH3, "<", $b8
fwcharmap TX_FULLWIDTH3, "=", $b9
fwcharmap TX_FULLWIDTH3, ">", $ba
fwcharmap TX_FULLWIDTH3, "?", $bb
fwcharmap TX_FULLWIDTH3, "@", $bc
fwcharmap TX_FULLWIDTH3, "[", $d7
fwcharmap TX_FULLWIDTH3, "¥", $d8
fwcharmap TX_FULLWIDTH3, "]", $d9
charmap "<RAMNAME>", TX_RAM1
charmap "<RAMTEXT>", TX_RAM2
charmap "<RAMNUM>", TX_RAM3
MACRO fwcharmap
IF \1 == TX_KATAKANA
charmap \2, \3
PUSHC katakana
charmap \2, \3
POPC
ELIF \1 == TX_HIRAGANA
charmap \2, \3
PUSHC hiragana
charmap \2, \3
POPC
ELIF \1 == TX_FULLWIDTH0
charmap \2, \3
ELSE
charmap \2, \1, \3
ENDC
ENDM
; TX_KATAKANA
fwcharmap TX_KATAKANA, "ヲ", $10
@ -386,7 +292,7 @@ ENDM
fwcharmap TX_HIRAGANA, "ょ", $5e
fwcharmap TX_HIRAGANA, "っ", $5f
; TX_KATAKANA, TX_HIRAGANA, and default font
; TX_KATAKANA, TX_HIRAGANA, and TX_FULLWIDTH0
fwcharmap TX_FULLWIDTH0, "0", $60
fwcharmap TX_FULLWIDTH0, "1", $61
fwcharmap TX_FULLWIDTH0, "2", $62
@ -414,61 +320,160 @@ ENDM
fwcharmap TX_FULLWIDTH0, "ー", $78
fwcharmap TX_FULLWIDTH0, "~", $79
DEF FW_SPACE EQU $70
; TX_FULLWIDTH3
fwcharmap TX_FULLWIDTH3, "A", $30
fwcharmap TX_FULLWIDTH3, "B", $31
fwcharmap TX_FULLWIDTH3, "C", $32
fwcharmap TX_FULLWIDTH3, "D", $33
fwcharmap TX_FULLWIDTH3, "E", $34
fwcharmap TX_FULLWIDTH3, "F", $35
fwcharmap TX_FULLWIDTH3, "G", $36
fwcharmap TX_FULLWIDTH3, "H", $37
fwcharmap TX_FULLWIDTH3, "I", $38
fwcharmap TX_FULLWIDTH3, "J", $39
fwcharmap TX_FULLWIDTH3, "K", $3a
fwcharmap TX_FULLWIDTH3, "L", $3b
fwcharmap TX_FULLWIDTH3, "M", $3c
fwcharmap TX_FULLWIDTH3, "N", $3d
fwcharmap TX_FULLWIDTH3, "O", $3e
fwcharmap TX_FULLWIDTH3, "P", $3f
fwcharmap TX_FULLWIDTH3, "Q", $40
fwcharmap TX_FULLWIDTH3, "R", $41
fwcharmap TX_FULLWIDTH3, "S", $42
fwcharmap TX_FULLWIDTH3, "T", $43
fwcharmap TX_FULLWIDTH3, "U", $44
fwcharmap TX_FULLWIDTH3, "V", $45
fwcharmap TX_FULLWIDTH3, "W", $46
fwcharmap TX_FULLWIDTH3, "X", $47
fwcharmap TX_FULLWIDTH3, "Y", $48
fwcharmap TX_FULLWIDTH3, "Z", $49
fwcharmap TX_FULLWIDTH3, "g", $4a
fwcharmap TX_FULLWIDTH3, "c", $4b
fwcharmap TX_FULLWIDTH3, "m", $4c
fwcharmap TX_FULLWIDTH3, "r.", $4d
fwcharmap TX_FULLWIDTH3, "♀", $4e
fwcharmap TX_FULLWIDTH3, "♂", $4f
fwcharmap TX_FULLWIDTH3, "【", $50
fwcharmap TX_FULLWIDTH3, "】", $51
fwcharmap TX_FULLWIDTH3, "●", $52
fwcharmap TX_FULLWIDTH3, "◆", $53
fwcharmap TX_FULLWIDTH3, "★", $54
fwcharmap TX_FULLWIDTH3, "☆", $55
fwcharmap TX_FULLWIDTH3, "_", $56
fwcharmap TX_FULLWIDTH3, "▪", $57
fwcharmap TX_FULLWIDTH3, "℃", $58
fwcharmap TX_FULLWIDTH3, "゛", $59
fwcharmap TX_FULLWIDTH3, "°", $5a
fwcharmap TX_FULLWIDTH3, "゜", $5b
fwcharmap TX_FULLWIDTH3, "ˍ", $5c
fwcharmap TX_FULLWIDTH3, "&", $5d
fwcharmap TX_FULLWIDTH3, ":", $5e
fwcharmap TX_FULLWIDTH3, "○", $5f
fwcharmap TX_FULLWIDTH3, "※", $60
fwcharmap TX_FULLWIDTH3, "о", $61
fwcharmap TX_FULLWIDTH3, "^", $62
fwcharmap TX_FULLWIDTH3, "♪", $63
fwcharmap TX_FULLWIDTH3, "a", $64
fwcharmap TX_FULLWIDTH3, "b", $65
fwcharmap TX_FULLWIDTH3, "d", $66
fwcharmap TX_FULLWIDTH3, "e", $67
fwcharmap TX_FULLWIDTH3, "f", $68
fwcharmap TX_FULLWIDTH3, "h", $69
fwcharmap TX_FULLWIDTH3, "i", $6a
fwcharmap TX_FULLWIDTH3, "j", $6b
fwcharmap TX_FULLWIDTH3, "k", $6c
fwcharmap TX_FULLWIDTH3, "l", $6d
fwcharmap TX_FULLWIDTH3, "n", $6e
fwcharmap TX_FULLWIDTH3, "o", $6f
fwcharmap TX_FULLWIDTH3, "p", $70
fwcharmap TX_FULLWIDTH3, "q", $71
fwcharmap TX_FULLWIDTH3, "s", $72
fwcharmap TX_FULLWIDTH3, "t", $73
fwcharmap TX_FULLWIDTH3, "u", $74
fwcharmap TX_FULLWIDTH3, "v", $75
fwcharmap TX_FULLWIDTH3, "w", $76
fwcharmap TX_FULLWIDTH3, "x", $77
fwcharmap TX_FULLWIDTH3, "y", $78
fwcharmap TX_FULLWIDTH3, "z", $79
fwcharmap TX_FULLWIDTH3, "'", $7a
fwcharmap TX_FULLWIDTH3, "”", $7b
fwcharmap TX_FULLWIDTH3, "■", $7c
fwcharmap TX_FULLWIDTH3, "r", $8e
fwcharmap TX_FULLWIDTH3, "", $98
fwcharmap TX_FULLWIDTH3, "|", $9a
fwcharmap TX_FULLWIDTH3, "ˉ", $9b
fwcharmap TX_FULLWIDTH3, "#", $9f
fwcharmap TX_FULLWIDTH3, "$", $a0
fwcharmap TX_FULLWIDTH3, "%", $a1
fwcharmap TX_FULLWIDTH3, "*", $a6
fwcharmap TX_FULLWIDTH3, ";", $b7
fwcharmap TX_FULLWIDTH3, "<", $b8
fwcharmap TX_FULLWIDTH3, "=", $b9
fwcharmap TX_FULLWIDTH3, ">", $ba
fwcharmap TX_FULLWIDTH3, "@", $bc
fwcharmap TX_FULLWIDTH3, "[", $d7
fwcharmap TX_FULLWIDTH3, "¥", $d8
fwcharmap TX_FULLWIDTH3, "]", $d9
MACRO txsymbol
const SYM_\1
charmap "<\1>", TX_SYMBOL, const_value - 1
REDEF symbol EQUS \1
charmap "<{symbol}>", TX_SYMBOL, const_value
PUSHC main
charmap "<{symbol}>", TX_SYMBOL, const_value
POPC
const SYM_{symbol}
ENDM
; TX_SYMBOL
const_def
txsymbol SPACE ; $00
txsymbol FIRE ; $01
txsymbol GRASS ; $02
txsymbol LIGHTNING ; $03
txsymbol WATER ; $04
txsymbol FIGHTING ; $05
txsymbol PSYCHIC ; $06
txsymbol COLORLESS ; $07
txsymbol POISONED ; $08
txsymbol ASLEEP ; $09
txsymbol CONFUSED ; $0a
txsymbol PARALYZED ; $0b
txsymbol CURSOR_U ; $0c
txsymbol POKEMON ; $0d
txsymbol ATK_DESCR ; $0e
txsymbol CURSOR_R ; $0f
txsymbol HP ; $10
txsymbol Lv ; $11
txsymbol E ; $12
txsymbol No ; $13
txsymbol PLUSPOWER ; $14
txsymbol DEFENDER ; $15
txsymbol HP_OK ; $16
txsymbol HP_NOK ; $17
txsymbol BOX_TOP_L ; $18
txsymbol BOX_TOP_R ; $19
txsymbol BOX_BTM_L ; $1a
txsymbol BOX_BTM_R ; $1b
txsymbol BOX_TOP ; $1c
txsymbol BOX_BOTTOM ; $1d
txsymbol BOX_LEFT ; $1e
txsymbol BOX_RIGHT ; $1f
txsymbol 0 ; $20
txsymbol 1 ; $21
txsymbol 2 ; $22
txsymbol 3 ; $23
txsymbol 4 ; $24
txsymbol 5 ; $25
txsymbol 6 ; $26
txsymbol 7 ; $27
txsymbol 8 ; $28
txsymbol 9 ; $29
txsymbol DOT ; $2a
txsymbol PLUS ; $2b
txsymbol MINUS ; $2c
txsymbol CROSS ; $2d
txsymbol SLASH ; $2e
txsymbol CURSOR_D ; $2f
txsymbol PRIZE ; $30
txsymbol "SPACE" ; $00
txsymbol "FIRE" ; $01
txsymbol "GRASS" ; $02
txsymbol "LIGHTNING" ; $03
txsymbol "WATER" ; $04
txsymbol "FIGHTING" ; $05
txsymbol "PSYCHIC" ; $06
txsymbol "COLORLESS" ; $07
txsymbol "POISONED" ; $08
txsymbol "ASLEEP" ; $09
txsymbol "CONFUSED" ; $0a
txsymbol "PARALYZED" ; $0b
txsymbol "CURSOR_U" ; $0c
txsymbol "POKEMON" ; $0d
txsymbol "ATK_DESCR" ; $0e
txsymbol "CURSOR_R" ; $0f
txsymbol "HP" ; $10
txsymbol "Lv" ; $11
txsymbol "E" ; $12
txsymbol "No" ; $13
txsymbol "PLUSPOWER" ; $14
txsymbol "DEFENDER" ; $15
txsymbol "HP_OK" ; $16
txsymbol "HP_NOK" ; $17
txsymbol "BOX_TOP_L" ; $18
txsymbol "BOX_TOP_R" ; $19
txsymbol "BOX_BTM_L" ; $1a
txsymbol "BOX_BTM_R" ; $1b
txsymbol "BOX_TOP" ; $1c
txsymbol "BOX_BOTTOM" ; $1d
txsymbol "BOX_LEFT" ; $1e
txsymbol "BOX_RIGHT" ; $1f
txsymbol "0" ; $20
txsymbol "1" ; $21
txsymbol "2" ; $22
txsymbol "3" ; $23
txsymbol "4" ; $24
txsymbol "5" ; $25
txsymbol "6" ; $26
txsymbol "7" ; $27
txsymbol "8" ; $28
txsymbol "9" ; $29
txsymbol "DOT" ; $2a
txsymbol "PLUS" ; $2b
txsymbol "MINUS" ; $2c
txsymbol "CROSS" ; $2d
txsymbol "SLASH" ; $2e
txsymbol "CURSOR_D" ; $2f
txsymbol "PRIZE" ; $30
SETCHARMAP main

View File

@ -281,9 +281,7 @@ PrintPlayerNameFromInput:
.char_underbar
db $56
REPT 10
textfw "_"
ENDR
textfw "__________"
done
; checks if any buttons were pressed and handles the input.
@ -630,7 +628,7 @@ PlayerNamingScreen_ProcessInput:
ld a, [wd009]
cp $02
jr z, .read_char
lb bc, TX_FULLWIDTH3, "FW3_゛"
ldfw bc, "゛"
ld a, d
cp b
jr nz, .asm_6af4
@ -645,7 +643,7 @@ PlayerNamingScreen_ProcessInput:
jr .asm_6b09
.asm_6af4
lb bc, TX_FULLWIDTH3, "FW3_゜"
ldfw bc, "゜"
ld a, d
cp b
jr nz, .asm_6b1d
@ -840,81 +838,86 @@ PlayerNamingScreen_GetCharInfoFromPos:
; unused data contains its character code as zero.
MACRO kbitem
db \1, \2, \3, \4
IF (_NARG == 5)
dw \5
ELIF (\5 == TX_FULLWIDTH0)
dw (\5 << 8) | STRCAT("FW0_", \6)
ELIF (\5 == TX_FULLWIDTH3)
dw (\5 << 8) | STRCAT("FW3_", \6)
PUSHC fullwidth
IF (_NARG > 4)
dwfw \5
ELSE
dw (\5 << 8) | \6
dw 0
ENDC
POPC
ENDM
PlayerNamingScreen_KeyboardData:
kbitem $04, $02, $11, $00, TX_FULLWIDTH3, "A"
kbitem $06, $02, $12, $00, TX_FULLWIDTH3, "J"
kbitem $08, $02, $13, $00, TX_FULLWIDTH3, "S"
kbitem $0a, $02, $14, $00, TX_FULLWIDTH0, "?"
kbitem $0c, $02, $15, $00, TX_FULLWIDTH0, "4"
kbitem $10, $0f, $01, $09, $0000
kbitem $04, $02, $11, $00, "A"
kbitem $06, $02, $12, $00, "J"
kbitem $08, $02, $13, $00, "S"
kbitem $0a, $02, $14, $00, "?"
kbitem $0c, $02, $15, $00, "4"
kbitem $10, $0f, $01, $09
kbitem $04, $04, $16, $00, TX_FULLWIDTH3, "B"
kbitem $06, $04, $17, $00, TX_FULLWIDTH3, "K"
kbitem $08, $04, $18, $00, TX_FULLWIDTH3, "T"
kbitem $0a, $04, $19, $00, TX_FULLWIDTH3, "&"
kbitem $0c, $04, $1a, $00, TX_FULLWIDTH0, "5"
kbitem $10, $0f, $01, $09, $0000
kbitem $04, $04, $16, $00, "B"
kbitem $06, $04, $17, $00, "K"
kbitem $08, $04, $18, $00, "T"
kbitem $0a, $04, $19, $00, "&"
kbitem $0c, $04, $1a, $00, "5"
kbitem $10, $0f, $01, $09
kbitem $04, $06, $1b, $00, TX_FULLWIDTH3, "C"
kbitem $06, $06, $1c, $00, TX_FULLWIDTH3, "L"
kbitem $08, $06, $1d, $00, TX_FULLWIDTH3, "U"
kbitem $0a, $06, $1e, $00, TX_FULLWIDTH0, "+"
kbitem $0c, $06, $1f, $00, TX_FULLWIDTH0, "6"
kbitem $10, $0f, $01, $09, $0000
kbitem $04, $06, $1b, $00, "C"
kbitem $06, $06, $1c, $00, "L"
kbitem $08, $06, $1d, $00, "U"
kbitem $0a, $06, $1e, $00, "+"
kbitem $0c, $06, $1f, $00, "6"
kbitem $10, $0f, $01, $09
kbitem $04, $08, $20, $00, TX_FULLWIDTH3, "D"
kbitem $06, $08, $21, $00, TX_FULLWIDTH3, "M"
kbitem $08, $08, $22, $00, TX_FULLWIDTH3, "V"
kbitem $0a, $08, $23, $00, TX_FULLWIDTH0, "-"
kbitem $0c, $08, $24, $00, TX_FULLWIDTH0, "7"
kbitem $10, $0f, $01, $09, $0000
kbitem $04, $08, $20, $00, "D"
kbitem $06, $08, $21, $00, "M"
kbitem $08, $08, $22, $00, "V"
kbitem $0a, $08, $23, $00, "-"
kbitem $0c, $08, $24, $00, "7"
kbitem $10, $0f, $01, $09
kbitem $04, $0a, $25, $00, TX_FULLWIDTH3, "E"
kbitem $06, $0a, $26, $00, TX_FULLWIDTH3, "N"
kbitem $08, $0a, $27, $00, TX_FULLWIDTH3, "W"
kbitem $0a, $0a, $28, $00, TX_FULLWIDTH0, "・"
kbitem $0c, $0a, $29, $00, TX_FULLWIDTH0, "8"
kbitem $10, $0f, $01, $09, $0000
kbitem $04, $0a, $25, $00, "E"
kbitem $06, $0a, $26, $00, "N"
kbitem $08, $0a, $27, $00, "W"
kbitem $0a, $0a, $28, $00, "・"
kbitem $0c, $0a, $29, $00, "8"
kbitem $10, $0f, $01, $09
kbitem $04, $0c, $2a, $00, TX_FULLWIDTH3, "F"
kbitem $06, $0c, $2b, $00, TX_FULLWIDTH3, "O"
kbitem $08, $0c, $2c, $00, TX_FULLWIDTH3, "X"
kbitem $0a, $0c, $2d, $00, TX_FULLWIDTH0, "0"
kbitem $0c, $0c, $2e, $00, TX_FULLWIDTH0, "9"
kbitem $10, $0f, $01, $09, $0000
kbitem $04, $0c, $2a, $00, "F"
kbitem $06, $0c, $2b, $00, "O"
kbitem $08, $0c, $2c, $00, "X"
kbitem $0a, $0c, $2d, $00, "0"
kbitem $0c, $0c, $2e, $00, "9"
kbitem $10, $0f, $01, $09
kbitem $04, $0e, $2f, $00, TX_FULLWIDTH3, "G"
kbitem $06, $0e, $30, $00, TX_FULLWIDTH3, "P"
kbitem $08, $0e, $31, $00, TX_FULLWIDTH3, "Y"
kbitem $0a, $0e, $32, $00, TX_FULLWIDTH0, "1"
kbitem $0c, $0e, $33, $00, TX_SYMBOL, SYM_No
kbitem $10, $0f, $01, $09, $0000
kbitem $04, $0e, $2f, $00, "G"
kbitem $06, $0e, $30, $00, "P"
kbitem $08, $0e, $31, $00, "Y"
kbitem $0a, $0e, $32, $00, "1"
kbitem $0c, $0e, $33, $00, "<No>"
kbitem $10, $0f, $01, $09
kbitem $04, $10, $34, $00, TX_FULLWIDTH3, "H"
kbitem $06, $10, $35, $00, TX_FULLWIDTH3, "Q"
kbitem $08, $10, $36, $00, TX_FULLWIDTH3, "Z"
kbitem $0a, $10, $3c, $00, TX_FULLWIDTH0, "2"
kbitem $0c, $10, $3d, $00, TX_SYMBOL, SYM_Lv
kbitem $10, $0f, $01, $09, $0000
kbitem $04, $10, $34, $00, "H"
kbitem $06, $10, $35, $00, "Q"
kbitem $08, $10, $36, $00, "Z"
kbitem $0a, $10, $3c, $00, "2"
kbitem $0c, $10, $3d, $00, "<Lv>"
kbitem $10, $0f, $01, $09
kbitem $04, $12, $37, $00, TX_FULLWIDTH3, "I"
kbitem $06, $12, $38, $00, TX_FULLWIDTH3, "R"
kbitem $08, $12, $39, $00, TX_FULLWIDTH0, "!"
kbitem $0a, $12, $3a, $00, TX_FULLWIDTH0, "3"
kbitem $0c, $12, $3b, $00, TX_FULLWIDTH0, " "
kbitem $10, $0f, $01, $09, $0000
kbitem $00, $00, $00, $00, $0000
kbitem $04, $12, $37, $00, "I"
kbitem $06, $12, $38, $00, "R"
kbitem $08, $12, $39, $00, "!"
kbitem $0a, $12, $3a, $00, "3"
kbitem $0c, $12, $3b, $00, " "
kbitem $10, $0f, $01, $09
kbitem $00, $00, $00, $00
MACRO diacritic
PUSHC hiragana
db \1, TX_HIRAGANA
db \2, 0
POPC
ENDM
; a set of transition datum use to apply dakuten to katakana characters.
; unit: 4 bytes.
@ -923,47 +926,47 @@ PlayerNamingScreen_KeyboardData:
; - the former char. code contains 0x0e in high byte.
; - the latter char. code contains only low byte.
TransitionTable1:
dw $0e16, $003e ; ka -> ga
dw $0e17, $003f ; ki -> gi
dw $0e18, $0040 ; ku -> gu
dw $0e19, $0041 ; ke -> ge
dw $0e1a, $0042 ; ko -> go
dw $0e1b, $0043 ; sa -> za
dw $0e1c, $0044 ; shi -> ji
dw $0e1d, $0045 ; su -> zu
dw $0e1e, $0046 ; se -> ze
dw $0e1f, $0047 ; so -> zo
dw $0e20, $0048 ; ta -> da
dw $0e21, $0049 ; chi -> dji
dw $0e22, $004a ; tsu -> dzu
dw $0e23, $004b ; te -> de
dw $0e24, $004c ; to -> do
dw $0e2a, $004d ; ha -> ba
dw $0e2b, $004e ; hi -> bi
dw $0e2c, $004f ; fu -> bu
dw $0e2d, $0050 ; he -> be
dw $0e2e, $0051 ; ho -> bo
dw $0e52, $004d ; pa -> ba
dw $0e53, $004e ; pi -> bi
dw $0e54, $004f ; pu -> bu
dw $0e55, $0050 ; pe -> be
dw $0e56, $0051 ; po -> bo
dw $0000
diacritic "か", "が" ; katakana カ, ガ
diacritic "き", "ぎ" ; katakana キ, ギ
diacritic "く", "ぐ" ; katakana ク, グ
diacritic "け", "げ" ; katakana ケ, ゲ
diacritic "こ", "ご" ; katakana コ, ゴ
diacritic "さ", "ざ" ; katakana サ, ザ
diacritic "し", "じ" ; katakana シ, ジ
diacritic "す", "ず" ; katakana ス, ズ
diacritic "せ", "ぜ" ; katakana セ, ゼ
diacritic "そ", "ぞ" ; katakana ソ, ゾ
diacritic "た", "だ" ; katakana タ, ダ
diacritic "ち", "ぢ" ; katakana チ, ヂ
diacritic "つ", "づ" ; katakana ツ, ヅ
diacritic "て", "で" ; katakana テ, デ
diacritic "と", "ど" ; katakana ト, ド
diacritic "は", "ば" ; katakana ハ, バ
diacritic "ひ", "び" ; katakana ヒ, ビ
diacritic "ふ", "ぶ" ; katakana フ, ブ
diacritic "へ", "べ" ; katakana ヘ, ベ
diacritic "ほ", "ぼ" ; katakana ホ, ボ
diacritic "ぱ", "ば" ; katakana パ, バ
diacritic "ぴ", "び" ; katakana ピ, ビ
diacritic "ぷ", "ぶ" ; katakana プ, ブ
diacritic "ぺ", "べ" ; katakana ペ, ベ
diacritic "ぽ", "ぼ" ; katakana ポ, ボ
dw 0 ; end
; a set of transition datum use to apply handakuten to katakana characters.
; it has the same unit size and structure as TransitionTable1.
TransitionTable2:
dw $0e2a, $0052 ; ha -> pa
dw $0e2b, $0053 ; hi -> pi
dw $0e2c, $0054 ; fu -> pu
dw $0e2d, $0055 ; he -> pe
dw $0e2e, $0056 ; ho -> po
dw $0e4d, $0052 ; ba -> pa
dw $0e4e, $0053 ; bi -> pi
dw $0e4f, $0054 ; bu -> pu
dw $0e50, $0055 ; be -> pe
dw $0e51, $0056 ; bo -> po
dw $0000
diacritic "は", "ぱ" ; katakana ハ, パ
diacritic "ひ", "ぴ" ; katakana ヒ, ピ
diacritic "ふ", "ぷ" ; katakana フ, プ
diacritic "へ", "ぺ" ; katakana ヘ, ペ
diacritic "ほ", "ぽ" ; katakana ホ, ポ
diacritic "ば", "ぱ" ; katakana バ, パ
diacritic "び", "ぴ" ; katakana ビ, ピ
diacritic "ぶ", "ぷ" ; katakana ブ, プ
diacritic "べ", "ぺ" ; katakana ベ, ペ
diacritic "ぼ", "ぽ" ; katakana ボ, ポ
dw 0 ; end
; gets a deck name from user input and stores it in [de].
; this function is similar to 'InputPlayerName'.
@ -1147,11 +1150,8 @@ PrintDeckNameFromInput:
ret
.underbar_data
db TX_HALFWIDTH
REPT MAX_DECK_NAME_LENGTH
db "_"
ENDR
db TX_END
text "____________________"
done
; draws the deck naming keyboard and prints the question, if it exists.
; this function is very similar to 'DrawPlayerNamingScreenBG'.

View File

@ -237,25 +237,25 @@ CreateCardSetListAndInitListCoords:
push af
cp CARD_SET_PROMOTIONAL
jr nz, .laboratory
lb de, 3, "FW3_P"
ldfw de, "P"
jr .got_prefix
.laboratory
cp CARD_SET_LABORATORY
jr nz, .mystery
lb de, 3, "FW3_D"
ldfw de, "D"
jr .got_prefix
.mystery
cp CARD_SET_MYSTERY
jr nz, .evolution
lb de, 3, "FW3_C"
ldfw de, "C"
jr .got_prefix
.evolution
cp CARD_SET_EVOLUTION
jr nz, .colosseum
lb de, 3, "FW3_B"
ldfw de, "B"
jr .got_prefix
.colosseum
lb de, 3, "FW3_A"
ldfw de, "A"
.got_prefix
ld hl, wCurDeckName
@ -432,7 +432,7 @@ PrintCardSetListEntries:
ld a, [hli]
ld b, a
ld hl, wCurDeckName + 2
lb de, 3, "FW3_E"
ldfw de, "E"
ld [hl], d
inc hl
ld [hl], e
@ -458,9 +458,9 @@ PrintCardSetListEntries:
.phantom_card
; phantom cards get only "××" in their index number
ld hl, wCurDeckName + 2
ld [hl], "FW0_×"
ldfw [hl], "×"
inc hl
ld [hl], "FW0_×"
ldfw [hl], "×"
inc hl
ld [hl], TX_SYMBOL
inc hl

View File

@ -2638,7 +2638,7 @@ PrintCurDeckNumberAndName:
.got_deck_numeral
ld hl, wDefaultText
call ConvertToNumericalDigits
ld [hl], "FW0_・"
ldfw [hl], "・"
inc hl
ld [hl], TX_END
ld hl, wDefaultText

View File

@ -140,7 +140,7 @@ HandleDeckMissingCardsList:
inc a
ld hl, wDefaultText
call ConvertToNumericalDigits
ld [hl], "FW0_・"
ldfw [hl], "・"
inc hl
ld [hl], TX_END
ld hl, wDefaultText
@ -900,7 +900,7 @@ PrintDeckMachineEntry:
ld hl, wDefaultText
inc a
call ConvertToNumericalDigits
ld [hl], "FW0_・"
ldfw [hl], "・"
inc hl
ld [hl], TX_END
call InitTextPrinting
@ -954,7 +954,7 @@ PrintDeckMachineEntry:
pop bc
ld hl, wDefaultText
jr c, .cannot_build
lb de, TX_FULLWIDTH3, "FW3_○" ; can build
ldfw de, "○" ; can build
jr .asm_b4c2
.cannot_build
push bc
@ -962,11 +962,11 @@ PrintDeckMachineEntry:
call CheckIfCanBuildSavedDeck
jr c, .cannot_build_at_all
pop bc
lb de, TX_FULLWIDTH3, "FW3_※" ; can build by dismantling
ldfw de, "※" ; can build by dismantling
jr .asm_b4c2
.cannot_build_at_all
lb de, TX_FULLWIDTH0, "FW0_×" ; cannot build even by dismantling
ldfw de, "×" ; cannot build even by dismantling
call Func_22ca
pop bc
pop de

View File

@ -482,7 +482,7 @@ CopyTextData::
jr c, .fw_text_done
push hl
.fill_fw_loop
ld a, FW_SPACE
ldfw a, " "
ld [hli], a
dec d
jr nz, .fill_fw_loop

View File

@ -83,7 +83,7 @@ DrawLabeledTextBox::
ld a, SYM_BOX_TOP_L
ld [hli], a
; white tile before the text
ld a, FW_SPACE
ldfw a, " "
ld [hli], a
; text label
ld e, l
@ -97,7 +97,7 @@ DrawLabeledTextBox::
; white tile after the text
ld a, TX_HALF2FULL
ld [hli], a
ld a, FW_SPACE
ldfw a, " "
ld [hli], a
pop de
push de

View File

@ -4,44 +4,36 @@ DEF done EQUS "db TX_END"
DEF half2full EQUS "db TX_HALF2FULL"
MACRO _textfw
REPT _NARG
IF STRLEN(\1) > 0
IF !STRCMP(STRSUB(\1, 1, 1), "<") && STRLEN(\1) > 1
db \1
ELSE
FOR i, 1, STRLEN(\1) + 1
REDEF char EQUS STRSUB(\1, i, 1)
IF INCHARMAP("FW{x:TX_KATAKANA}_{char}")
IF cur_set != TX_KATAKANA
DEF cur_set = TX_KATAKANA
db cur_set
ENDC
db "FW{x:TX_KATAKANA}_{char}"
ELIF INCHARMAP("FW{x:TX_HIRAGANA}_{char}")
IF cur_set != TX_HIRAGANA
DEF cur_set = TX_HIRAGANA
db cur_set
ENDC
db "FW{x:TX_HIRAGANA}_{char}"
ELIF INCHARMAP("FW0_{char}")
db "FW0_{char}"
ELIF INCHARMAP("FW1_{char}")
db TX_FULLWIDTH1, "FW1_{char}"
ELIF INCHARMAP("FW2_{char}")
db TX_FULLWIDTH2, "FW2_{char}"
ELIF INCHARMAP("FW3_{char}")
db TX_FULLWIDTH3, "FW3_{char}"
ELIF INCHARMAP("FW4_{char}")
db TX_FULLWIDTH4, "FW4_{char}"
ELSE
FAIL "Unmapped fullwidth character: {char}"
ENDC
ENDR
ENDC
MACRO get_charset
PUSHC katakana
IF INCHARMAP(\1)
DEF charset = TX_KATAKANA
ELSE
SETCHARMAP hiragana
IF INCHARMAP(\1)
DEF charset = TX_HIRAGANA
ELSE
DEF charset = 0
ENDC
ENDC
POPC
ENDM
MACRO _textfw
PUSHC fullwidth
REPT _NARG
FOR i, CHARLEN(\1)
REDEF char EQUS STRCHAR(\1, i)
get_charset "{char}"
IF charset != 0 && charset != cur_set
DEF cur_set = charset
db charset
ENDC
db "{char}"
ENDR
SHIFT
ENDR
POPC
ENDM
MACRO textfw
@ -65,3 +57,23 @@ MACRO hiragana
db TX_HIRAGANA
_textfw \#
ENDM
MACRO dwfw
PUSHC fullwidth
IF CHARSIZE(\1) > 1
dw CHARVAL(\1, 0) << 8 + CHARVAL(\1, 1)
ELSE
dw \1
ENDC
POPC
ENDM
MACRO ldfw
PUSHC fullwidth
IF CHARSIZE(\2) > 1
ld \1, CHARVAL(\2, 0) << 8 + CHARVAL(\2, 1)
ELSE
ld \1, \2
ENDC
POPC
ENDM

View File

@ -1,6 +1,6 @@
IF !DEF(__RGBDS_MAJOR__) || !DEF(__RGBDS_MINOR__) || !DEF(__RGBDS_PATCH__)
fail "poketcg requires rgbds v0.9.0 or newer."
fail "poketcg requires rgbds v0.9.3 or newer."
ENDC
IF __RGBDS_MAJOR__ == 0 && __RGBDS_MINOR__ < 9
fail "poketcg requires rgbds v0.9.0 or newer."
IF __RGBDS_MAJOR__ == 0 && (__RGBDS_MINOR__ < 9 || (__RGBDS_MINOR__ == 9 && __RGBDS_PATCH__ < 3))
fail "poketcg requires rgbds v0.9.3 or newer."
ENDC

View File

@ -602,7 +602,7 @@ SelectCheckText:
done
UnusedText0087: ; Unused
textfw "B", "<RAMNUM>", "S", "<RAMNUM>"
textfw "B<RAMNUM>S<RAMNUM>"
done
DuelistIsThinkingText:

View File

@ -1554,7 +1554,7 @@ PlayerNameKeyboardText:
linefw "J K L M N O P Q R"
linefw "S T U V W X Y Z !"
linefw "? & + - ・ 0 1 2 3"
linefw "4 5 6 7 8 9 ", "<No>", " ", "<Lv>", " "
linefw "4 5 6 7 8 9 <No> <Lv> "
linefw " "
done

View File

@ -1155,27 +1155,27 @@ ChallengeMachineDuelLostIconText:
done
ChallengeMachineFireIconText:
textfw "【", "<FIRE>", "】"
textfw "【<FIRE>】"
done
ChallengeMachineLightningIconText:
textfw "【", "<LIGHTNING>", "】"
textfw "【<LIGHTNING>】"
done
ChallengeMachineWaterIconText:
textfw "【", "<WATER>", "】"
textfw "【<WATER>】"
done
ChallengeMachineFightingIconText:
textfw "【", "<FIGHTING>", "】"
textfw "【<FIGHTING>】"
done
ChallengeMachinePsychicIconText:
textfw "【", "<PSYCHIC>", "】"
textfw "【<PSYCHIC>】"
done
ChallengeMachineGrassIconText:
textfw "【", "<GRASS>", "】"
textfw "【<GRASS>】"
done
GrassEnergyName: