summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjidoc01 <jidoc01@naver.com>2019-06-27 22:49:08 +0900
committerjidoc01 <jidoc01@naver.com>2019-06-27 22:49:08 +0900
commite9febd5e485ca6efd6d5a2dd7f97a6df0dadd22f (patch)
tree2d068a637173d9c6943d5a7d12cc2f47adf0414b /src
parent1b3be55e0cbcda15bb7f2a1cebb72b56d9967fb8 (diff)
[Bank 6] Analyze Keyboard Data & Add Macro.
Diffstat (limited to 'src')
-rw-r--r--src/engine/bank02.asm4
-rw-r--r--src/engine/bank04.asm6
-rw-r--r--src/engine/bank06.asm360
-rw-r--r--src/macros/data.asm5
-rw-r--r--src/wram.asm14
5 files changed, 255 insertions, 134 deletions
diff --git a/src/engine/bank02.asm b/src/engine/bank02.asm
index 509a1e9..9c92b52 100644
--- a/src/engine/bank02.asm
+++ b/src/engine/bank02.asm
@@ -272,7 +272,7 @@ Func_8f05: ; 8f05 (2:4f05)
ld a, $14
ld bc, $0401
ld de, wcfb9
- farcall Func_1ad89
+ farcall InputDeckName
ld a, [wcfb9]
or a
ret nz
@@ -935,7 +935,7 @@ Func_ba04: ; ba04 (2:7a04)
ldtx hl, PleaseSelectDeckText
call DrawWideTextBox_PrintText
ld a, $5
- ld [wcea9], a
+ ld [wNamingScreenKeyboardHeight], a
ld hl, $73fe
ld d, h
ld a, l
diff --git a/src/engine/bank04.asm b/src/engine/bank04.asm
index 9907b97..2c417cc 100644
--- a/src/engine/bank04.asm
+++ b/src/engine/bank04.asm
@@ -1110,7 +1110,7 @@ MainMenuFunctionTable:
MainMenu_NewGame: ; 12704 (4:6704)
farcall Func_c1b1
- call InputPlayerName
+ call OnPlayerNamingScreen
farcall Func_1996e
call EnableSRAM
ld a, [s0a007]
@@ -1180,7 +1180,7 @@ Func_12871: ; 12871 (4:6871)
Func_1288c: ; 1288c (4:688c)
INCROM $1288c, $128a9
-InputPlayerName:: ; 128a9 (4:68a9)
+OnPlayerNamingScreen:: ; 128a9 (4:68a9)
; clear name buffer.
ld hl, wc500 ; c500: name buffer.
ld bc, $0010
@@ -1190,7 +1190,7 @@ InputPlayerName:: ; 128a9 (4:68a9)
; get player's name
; from the user into hl.
ld hl, wc500
- farcall OnNamingScreen
+ farcall InputPlayerName
farcall Func_c1a4
call DoFrameIfLCDEnabled
diff --git a/src/engine/bank06.asm b/src/engine/bank06.asm
index d834732..05dff85 100644
--- a/src/engine/bank06.asm
+++ b/src/engine/bank06.asm
@@ -446,7 +446,7 @@ Func_006_673a: ; (6:673a)
pop hl
ret
-Unknown_1a75e: ; data
+WhatIsYourNameData: ; data
textitem 1, 1, WhatIsYourNameText
db $ff
@@ -482,7 +482,8 @@ ClearMemory: ; (6:6787)
pop af
ret
-Func_006_6794: ; (6:6794)
+; play different sfx by a.
+PlaySFXByA: ; (6:6794)
push af
inc a
jr z, .asm_006_679c
@@ -495,17 +496,15 @@ Func_006_6794: ; (6:6794)
pop af
ret
-; enter when naming starts,
-; leave when naming ends.
-; [input]
-; hl: dest. buffer.
-OnNamingScreen: ; (6:67a3)
+; get player name from the user
+; into hl
+InputPlayerName: ; (6:67a3)
ld e, l
ld d, h
ld a, $0c
- ld hl, Unknown_1a75e
- ld bc, $0c01
- call Func_006_6846
+ ld hl, WhatIsYourNameData
+ lb bc, $0c, $01
+ call InitializeInputName
call Set_OBJ_8x8
xor a
ld [wTileMapFill], a
@@ -519,48 +518,53 @@ OnNamingScreen: ; (6:67a3)
call SetVram0xFF
ld a, $02
ld [wd009], a
- call Func_006_6892
+ call DrawNamingScreenBG
xor a
- ld [wd006], a
- ld [wcea4], a
+ ld [wNamingScreenCursorX], a
+ ld [wNamingScreenCursorY], a
ld a, $09
ld [wd005], a
ld a, $06
- ld [wcea9], a
+ ld [wNamingScreenKeyboardHeight], a
ld a, $0f
ld [wceaa], a
ld a, $00
ld [wceab], a
-.asm_006_67f1
+.loop
ld a, $01
ld [wVBlankOAMCopyToggle], a
call DoFrame
call UpdateRNGSources
ldh a, [hDPadHeld]
and START
- jr z, .on_start
+ jr z, .else
+ ; if pressed start button.
ld a, $01
- call Func_006_6794
+ call PlaySFXByA
call Func_006_6a07
ld a, $06
- ld [wd006], a
+ ld [wNamingScreenCursorX], a
ld a, $05
- ld [wcea4], a
+ ld [wNamingScreenCursorY], a
call Func_006_6a23
- jr .asm_006_67f1
-.on_start
- call Func_006_6908
- jr nc, .asm_006_67f1
+ jr .loop
+.else
+ call NamingScreen_CheckButtonState
+ jr nc, .loop ; if not pressed, go back to the loop.
cp $ff
- jr z, .asm_006_682b
- call Func_006_6a87
- jr nc, .asm_006_67f1
- call Func_006_6880
+ jr z, .on_b_button
+ ; on A button.
+ call NamingScreen_ProcessInput
+ jr nc, .loop
+ ; if the player selected the end button,
+ ; end its naming.
+ call FinalizeInputName
ret
-.asm_006_682b
+.on_b_button
+ ; erase one character.
ld a, [wNamingScreenBufferLength]
or a
- jr z, .asm_006_67f1
+ jr z, .loop
ld e, a
ld d, $00
ld hl, wNamingScreenBuffer
@@ -572,13 +576,14 @@ OnNamingScreen: ; (6:67a3)
dec [hl]
dec [hl]
call PrintPlayerNameFromInput
- jr .asm_006_67f1
+ jr .loop
-; a: length
-; de: dest. pointer
-; hl: data pointer
-Func_006_6846:
- ld [wd004], a
+; it's called when naming(either player's or deck's) starts.
+; a: maximum length of name.
+; de: dest. pointer.
+; hl: pointer to text item of the question.
+InitializeInputName:
+ ld [wNamingScreenBufferMaxLength], a
push hl
ld hl, wd007
ld [hl], b
@@ -587,23 +592,27 @@ Func_006_6846:
pop hl
ld b, h
ld c, l
- ld hl, wd002
+ ; set the question string.
+ ld hl, wNamingScreenQuestionPointer
ld [hl], c
inc hl
ld [hl], b
- ld hl, wd000
+ ; set the destination buffer.
+ ld hl, wNamingScreenDestPointer
ld [hl], e
inc hl
ld [hl], d
+ ; clear the name buffer.
ld a, $18
ld hl, wNamingScreenBuffer
call ClearMemory
ld hl, wNamingScreenBuffer
- ld a, [wd004]
+ ld a, [wNamingScreenBufferMaxLength]
ld b, a
inc b
.loop
- ; copy data from de to hl.
+ ; copy data from de to hl
+ ; for b bytes.
ld a, [de]
inc de
ld [hli], a
@@ -615,32 +624,37 @@ Func_006_6846:
ld [wNamingScreenBufferLength], a
ret
-Func_006_6880:
- ld hl, wd000
+FinalizeInputName:
+ ld hl, wNamingScreenDestPointer
ld e, [hl]
inc hl
ld d, [hl]
ld l, e
ld h, d
ld de, wNamingScreenBuffer
- ld a, [wd004]
+ ld a, [wNamingScreenBufferMaxLength]
ld b, a
inc b
- jr Func_006_6846.loop
+ jr InitializeInputName.loop
-Func_006_6892:
+; draws the keyboard frame
+; and the question if it exists.
+DrawNamingScreenBG:
call DrawTextboxForKeyboard
call PrintPlayerNameFromInput
- ld hl, wd002
+ ld hl, wNamingScreenQuestionPointer
ld c, [hl]
inc hl
ld a, [hl]
ld h, a
or c
jr z, .put_text_end
+ ; print the question string.
+ ; ex) "What is your name?"
ld l, c
call PlaceTextItems
.put_text_end
+ ; print "End".
ld hl, .data
call PlaceTextItems
ld hl, $0221
@@ -666,7 +680,7 @@ PrintPlayerNameFromInput:
ld e, [hl]
push de
call InitTextPrinting
- ld a, [wd004]
+ ld a, [wNamingScreenBufferMaxLength]
ld e, a
ld a, $14
sub e
@@ -691,30 +705,35 @@ rept 10
endr
db $00 ; null
-Func_006_6908:
+; check if button pressed.
+; if pressed, set the carry bit on.
+NamingScreen_CheckButtonState:
xor a
ld [wcfe3], a
ldh a, [hDPadHeld]
or a
- jp z, .asm_006_69d9
+ jp z, .no_press
+ ; detected any button press.
ld b, a
- ld a, [wcea9]
+ ld a, [wNamingScreenKeyboardHeight]
ld c, a
- ld a, [wd006]
+ ld a, [wNamingScreenCursorX]
ld h, a
- ld a, [wcea4]
+ ld a, [wNamingScreenCursorY]
ld l, a
- bit 6, b
+ bit D_UP_F, b
jr z, .asm_006_692c
+ ; up
dec a
- bit 7, a
+ bit D_DOWN_F, a
jr z, .asm_006_69a7
ld a, c
dec a
jr .asm_006_69a7
.asm_006_692c
- bit 7, b
+ bit D_DOWN_F, b
jr z, .asm_006_6937
+ ; down
inc a
cp c
jr c, .asm_006_69a7
@@ -724,8 +743,9 @@ Func_006_6908:
ld a, [wd005]
ld c, a
ld a, h
- bit 5, b
+ bit D_LEFT_F, b
jr z, .asm_006_6974
+ ; left
ld d, a
ld a, $06
cp l
@@ -734,7 +754,7 @@ Func_006_6908:
push hl
push bc
push af
- call Func_006_6b93
+ call GetCharacterInfoFromCursorPos
inc hl
inc hl
inc hl
@@ -760,14 +780,14 @@ Func_006_6908:
jr .asm_006_69aa
.asm_006_696b
dec a
- bit 7, a
+ bit D_DOWN_F, a
jr z, .asm_006_69aa
ld a, c
dec a
jr .asm_006_69aa
.asm_006_6974
- bit 4, b
- jr z, .asm_006_69d9
+ bit D_RIGHT_F, b
+ jr z, .no_press
ld d, a
ld a, $06
cp l
@@ -776,7 +796,7 @@ Func_006_6908:
push hl
push bc
push af
- call Func_006_6b93
+ call GetCharacterInfoFromCursorPos
inc hl
inc hl
inc hl
@@ -813,7 +833,7 @@ Func_006_6908:
ld h, a
.asm_006_69ab
push hl
- call Func_006_6b93
+ call GetCharacterInfoFromCursorPos
inc hl
inc hl
inc hl
@@ -829,25 +849,25 @@ Func_006_6908:
pop de
pop hl
ld a, l
- ld [wcea4], a
+ ld [wNamingScreenCursorY], a
ld a, h
- ld [wd006], a
+ ld [wNamingScreenCursorX], a
xor a
ld [wcea3], a
ld a, $06
cp d
- jp z, Func_006_6908
+ jp z, NamingScreen_CheckButtonState
ld a, $01
ld [wcfe3], a
-.asm_006_69d9
+.no_press
ldh a, [hKeysPressed]
- and $03
+ and A_BUTTON | B_BUTTON
jr z, .asm_006_69ef
- and $01
+ and A_BUTTON
jr nz, .asm_006_69e5
ld a, $ff
.asm_006_69e5
- call Func_006_6794
+ call PlaySFXByA
push af
call Func_006_6a23
pop af
@@ -872,11 +892,11 @@ Func_006_6a07:
ld a, [wceab]
.asm_006_6a0a
ld e, a
- ld a, [wd006]
+ ld a, [wNamingScreenCursorX]
ld h, a
- ld a, [wcea4]
+ ld a, [wNamingScreenCursorY]
ld l, a
- call Func_006_6b93
+ call GetCharacterInfoFromCursorPos
ld a, [hli]
ld c, a
ld b, [hl]
@@ -906,7 +926,7 @@ Func_006_6a28:
ld a, [wNamingScreenBufferLength]
srl a
ld d, a
- ld a, [wd004]
+ ld a, [wNamingScreenBufferMaxLength]
srl a
ld e, a
ld a, d
@@ -955,15 +975,13 @@ rept $6a87-$6a77
db $ff
endr
-; bc = xy coordinate(by each tile) in the naming screen
-; hl = the pointer to its character information(by 6bytes)
-; info. structure: (1) / (1) / (1) / character code(2) / (1)
-Func_006_6a87:
- ld a, [wd006]
+; set the carry bit on if "End" was selected.
+NamingScreen_ProcessInput:
+ ld a, [wNamingScreenCursorX]
ld h, a
- ld a, [wcea4]
+ ld a, [wNamingScreenCursorY]
ld l, a
- call Func_006_6b93
+ call GetCharacterInfoFromCursorPos
inc hl
inc hl
ld e, [hl]
@@ -971,7 +989,7 @@ Func_006_6a87:
ld a, [hli]
ld d, a
cp $09
- jp z, .asm_006_6b5f
+ jp z, .on_end
cp $07
jr nz, .asm_006_6ab8
ld a, [wd009]
@@ -1004,7 +1022,7 @@ Func_006_6a87:
ld a, $01
.asm_006_6ace
ld [wd009], a
- call Func_006_6892
+ call DrawNamingScreenBG
or a
ret
.asm_006_6ad6
@@ -1019,7 +1037,7 @@ Func_006_6a87:
cp c
jr nz, .asm_006_6af4
push hl
- ld hl, $6cf9
+ ld hl, KeyboardData + ($6cf9 - $6baf)
call Func_006_6b61
pop hl
jr c, .asm_006_6b5d
@@ -1033,16 +1051,16 @@ Func_006_6a87:
cp c
jr nz, .asm_006_6b1d
push hl
- ld hl, $6d5f
+ ld hl, KeyboardData + ($6d5f - $6baf)
call Func_006_6b61
pop hl
jr c, .asm_006_6b5d
.asm_006_6b09
- ld a, [wNamingScreenBufferLength] ; cfff: current player name length(by byte).
+ ld a, [wNamingScreenBufferLength]
dec a
dec a
ld [wNamingScreenBufferLength], a
- ld hl, wNamingScreenBuffer ; cfe7: temporary buffer for player name.
+ ld hl, wNamingScreenBuffer
push de
ld d, $00
ld e, a
@@ -1081,7 +1099,7 @@ Func_006_6a87:
ld a, [hl]
ld c, a
push hl
- ld hl, wd004
+ ld hl, wNamingScreenBufferMaxLength
cp [hl]
pop hl
jr nz, .asm_006_6b4c
@@ -1111,7 +1129,7 @@ Func_006_6a87:
.asm_006_6b5d
or a
ret
-.asm_006_6b5f
+.on_end
scf
ret
@@ -1159,20 +1177,26 @@ Func_006_6b61:
scf
ret
-Func_006_6b93:
+; given the position of the current cursor,
+; it returns the pointer to the proper information.
+; h: position x.
+; l: position y.
+GetCharacterInfoFromCursorPos:
push de
+ ; (information index) = (x) * (height) + (y)
+ ; (height) = 0x05(Deck) or 0x06(Player)
ld e, l
ld d, h
- ld a, [wcea9]
+ ld a, [wNamingScreenKeyboardHeight]
ld l, a
call HtimesL
ld a, l
add e
- ld hl, .data
+ ld hl, KeyboardData
pop de
or a
ret z
-.asm_006_6ba5
+.loop
inc hl
inc hl
inc hl
@@ -1180,12 +1204,99 @@ Func_006_6b93:
inc hl
inc hl
dec a
- jr nz, .asm_006_6ba5
+ jr nz, .loop
ret
-.data
- INCROM $1abaf, $1ad89
-Func_1ad89: ; 1ad89 (6:6d89)
+; a set of keyboard datum.
+; unit: 6 bytes.
+; structure:
+; unk 1 (1) / unk 2 (1) / type 1 (1) / type 2 (1) / character code(2)
+; - some of one byte characters have 0x0e in their high byte.
+; - unused data contains its character code as zero.
+KeyboardData: ; (6:6baf)
+ kbitem $04, $02, $11, $00, $0330
+ kbitem $06, $02, $12, $00, $0339
+ kbitem $08, $02, $13, $00, $0342
+ kbitem $0a, $02, $14, $00, $006f
+ kbitem $0c, $02, $15, $00, $0064
+ kbitem $10, $0f, $01, $09, $0000
+ kbitem $04, $04, $16, $00, $0331
+ kbitem $06, $04, $17, $00, $033a
+ kbitem $08, $04, $18, $00, $0343
+ kbitem $0a, $04, $19, $00, $035d
+ kbitem $0c, $04, $1a, $00, $0065
+ kbitem $10, $0f, $01, $09, $0000
+ kbitem $04, $06, $1b, $00, $0332
+ kbitem $06, $06, $1c, $00, $033b
+ kbitem $08, $06, $1d, $00, $0344
+ kbitem $0a, $06, $1e, $00, $006a
+ kbitem $0c, $06, $1f, $00, $0066
+ kbitem $10, $0f, $01, $09, $0000
+ kbitem $04, $08, $20, $00, $0333
+ kbitem $06, $08, $21, $00, $033c
+ kbitem $08, $08, $22, $00, $0345
+ kbitem $0a, $08, $23, $00, $006b
+ kbitem $0c, $08, $24, $00, $0067
+ kbitem $10, $0f, $01, $09, $0000
+ kbitem $04, $0a, $25, $00, $0334
+ kbitem $06, $0a, $26, $00, $033d
+ kbitem $08, $0a, $27, $00, $0346
+ kbitem $0a, $0a, $28, $00, $0077
+ kbitem $0c, $0a, $29, $00, $0068
+ kbitem $10, $0f, $01, $09, $0000
+ kbitem $04, $0c, $2a, $00, $0335
+ kbitem $06, $0c, $2b, $00, $033e
+ kbitem $08, $0c, $2c, $00, $0347
+ kbitem $0a, $0c, $2d, $00, $0060
+ kbitem $0c, $0c, $2e, $00, $0069
+ kbitem $10, $0f, $01, $09, $0000
+ kbitem $04, $0e, $2f, $00, $0336
+ kbitem $06, $0e, $30, $00, $033f
+ kbitem $08, $0e, $31, $00, $0348
+ kbitem $0a, $0e, $32, $00, $0061
+ kbitem $0c, $0e, $33, $00, $0513
+ kbitem $10, $0f, $01, $09, $0000
+ kbitem $04, $10, $34, $00, $0337
+ kbitem $06, $10, $35, $00, $0340
+ kbitem $08, $10, $36, $00, $0349
+ kbitem $0a, $10, $3c, $00, $0062
+ kbitem $0c, $10, $3d, $00, $0511
+ kbitem $10, $0f, $01, $09, $0000
+ kbitem $04, $12, $37, $00, $0338
+ kbitem $06, $12, $38, $00, $0341
+ kbitem $08, $12, $39, $00, $006e
+ kbitem $0a, $12, $3a, $00, $0063
+ kbitem $0c, $12, $3b, $00, $0070
+ kbitem $10, $0f, $01, $09, $0000
+ kbitem $00, $00, $00, $00, $0000
+ kbitem $16, $0e, $3e, $00, $0e17
+ kbitem $3f, $00, $18, $0e, $0040
+ kbitem $19, $0e, $41, $00, $0e1a
+ kbitem $42, $00, $1b, $0e, $0043
+ kbitem $1c, $0e, $44, $00, $0e1d
+ kbitem $45, $00, $1e, $0e, $0046
+ kbitem $1f, $0e, $47, $00, $0e20
+ kbitem $48, $00, $21, $0e, $0049
+ kbitem $22, $0e, $4a, $00, $0e23
+ kbitem $4b, $00, $24, $0e, $004c
+ kbitem $2a, $0e, $4d, $00, $0e2b
+ kbitem $4e, $00, $2c, $0e, $004f
+ kbitem $2d, $0e, $50, $00, $0e2e
+ kbitem $51, $00, $52, $0e, $004d
+ kbitem $53, $0e, $4e, $00, $0e54
+ kbitem $4f, $00, $55, $0e, $0050
+ kbitem $56, $0e, $51, $00, $0000
+ kbitem $2a, $0e, $52, $00, $0e2b
+ kbitem $53, $00, $2c, $0e, $0054
+ kbitem $2d, $0e, $55, $00, $0e2e
+ kbitem $56, $00, $4d, $0e, $0052
+ kbitem $4e, $0e, $53, $00, $0e4f
+ kbitem $54, $00, $50, $0e, $0055
+ kbitem $51, $0e, $56, $00, $0000
+
+; get deck name from the user
+; into de.
+InputDeckName: ; 1ad89 (6:6d89)
push af
ld a, [de]
or a
@@ -1195,7 +1306,7 @@ Func_1ad89: ; 1ad89 (6:6d89)
.asm_006_6d91
pop af
inc a
- call Func_006_6846
+ call InitializeInputName
call Set_OBJ_8x8
xor a
ld [wTileMapFill], a
@@ -1206,17 +1317,17 @@ Func_1ad89: ; 1ad89 (6:6d89)
call LoadSymbolsFont
lb de, $38, $bf
call SetupText
- call FillVramWithF0
+ call FillVramWith0xF0
xor a
ld [wd009], a
call Func_006_6e99
xor a
- ld [wd006], a
- ld [wcea4], a
+ ld [wNamingScreenCursorX], a
+ ld [wNamingScreenCursorY], a
ld a, $09
ld [wd005], a
ld a, $07
- ld [wcea9], a
+ ld [wNamingScreenKeyboardHeight], a
ld a, $0f
ld [wceaa], a
ld a, $00
@@ -1230,11 +1341,11 @@ Func_1ad89: ; 1ad89 (6:6d89)
and START
jr z, .on_start
ld a, $01
- call Func_006_6794
+ call PlaySFXByA
call Func_006_6fa1
ld a, $06
- ld [wd006], a
- ld [wcea4], a
+ ld [wNamingScreenCursorX], a
+ ld [wNamingScreenCursorY], a
call Func_006_6fbd
jr .asm_006_6dd6
.on_start
@@ -1244,8 +1355,8 @@ Func_1ad89: ; 1ad89 (6:6d89)
jr z, .asm_006_6e1c
call Func_006_6ec3
jr nc, .asm_006_6dd6
- call Func_006_6880
- ld hl, wd000
+ call FinalizeInputName
+ ld hl, wNamingScreenDestPointer
ld a, [hli]
ld h, [hl]
ld l, a
@@ -1274,7 +1385,7 @@ Func_1ad89: ; 1ad89 (6:6d89)
; fill v0Tiles0 for 0x10 tiles
; with 0xF0.
-FillVramWithF0:
+FillVramWith0xF0:
ld hl, v0Tiles0
ld de, .data
ld b, $00
@@ -1329,18 +1440,21 @@ endr
Func_006_6e99:
call DrawTextboxForKeyboard
call Func_006_6e59
- ld hl, wd002
+ ld hl, wNamingScreenQuestionPointer
ld c, [hl]
inc hl
ld a, [hl]
ld h, a
or c
- jr z, .asm_006_6ead
+ jr z, .print
+ ; print the question string.
ld l, c
call PlaceTextItems
-.asm_006_6ead
- ld hl, Func_006_6892.data
+.print
+ ; print "End"
+ ld hl, DrawNamingScreenBG.data
call PlaceTextItems
+ ; print the keyboard characters.
ldtx hl, NamingScreenKeyboardText ; "A B C D..."
ld de, $0204
call InitTextPrinting
@@ -1349,9 +1463,9 @@ Func_006_6e99:
ret
Func_006_6ec3:
- ld a, [wd006]
+ ld a, [wNamingScreenCursorX]
ld h, a
- ld a, [wcea4]
+ ld a, [wNamingScreenCursorY]
ld l, a
call Func_006_7000
inc hl
@@ -1367,7 +1481,7 @@ Func_006_6ec3:
ld a, [hl]
ld c, a
push hl
- ld hl, wd004
+ ld hl, wNamingScreenBufferMaxLength
cp [hl]
pop hl
jr nz, .asm_006_6eeb
@@ -1394,11 +1508,11 @@ Func_006_6efb:
or a
jp z, .asm_006_6f73
ld b, a
- ld a, [wcea9]
+ ld a, [wNamingScreenKeyboardHeight]
ld c, a
- ld a, [wd006]
+ ld a, [wNamingScreenCursorX]
ld h, a
- ld a, [wcea4]
+ ld a, [wNamingScreenCursorY]
ld l, a
bit 6, b
jr z, .asm_006_6f1f
@@ -1454,9 +1568,9 @@ Func_006_6efb:
pop de
pop hl
ld a, l
- ld [wcea4], a
+ ld [wNamingScreenCursorY], a
ld a, h
- ld [wd006], a
+ ld [wNamingScreenCursorX], a
xor a
ld [wcea3], a
ld a, $02
@@ -1472,7 +1586,7 @@ Func_006_6efb:
jr nz, .asm_006_6f7f
ld a, $ff
.asm_006_6f7f
- call Func_006_6794
+ call PlaySFXByA
push af
call Func_006_6fbd
pop af
@@ -1497,9 +1611,9 @@ Func_006_6fa1:
ld a, [wceab]
.asm_006_6fa4
ld e, a
- ld a, [wd006]
+ ld a, [wNamingScreenCursorX]
ld h, a
- ld a, [wcea4]
+ ld a, [wNamingScreenCursorY]
ld l, a
call Func_006_7000
ld a, [hli]
@@ -1530,7 +1644,7 @@ Func_006_6fc2:
jr z, .asm_006_6ffb
ld a, [wNamingScreenBufferLength]
ld d, a
- ld a, [wd004]
+ ld a, [wNamingScreenBufferMaxLength]
ld e, a
ld a, d
cp e
@@ -1564,7 +1678,7 @@ Func_006_7000:
push de
ld e, l
ld d, h
- ld a, [wcea9]
+ ld a, [wNamingScreenKeyboardHeight]
ld l, a
call HtimesL
ld a, l
diff --git a/src/macros/data.asm b/src/macros/data.asm
index 53926da..e059b28 100644
--- a/src/macros/data.asm
+++ b/src/macros/data.asm
@@ -89,3 +89,8 @@ textitem: MACRO
db \1, \2
tx \3
ENDM
+
+kbitem: MACRO
+ db \1, \2, \3, \4
+ dw \5
+ENDM \ No newline at end of file
diff --git a/src/wram.asm b/src/wram.asm
index c765831..3901be0 100644
--- a/src/wram.asm
+++ b/src/wram.asm
@@ -1386,13 +1386,13 @@ wcea1:: ; cea1
wcea3:: ; cea3
ds $1
-wcea4:: ; cea4
+wNamingScreenCursorY:: ; cea4
ds $1
wcea5:: ; cea5
ds $4
-wcea9:: ; cea9
+wNamingScreenKeyboardHeight:: ; cea9
ds $1
wceaa:: ; ceaa
@@ -1478,19 +1478,21 @@ wNamingScreenBufferLength:: ; cfff
ds $1
SECTION "WRAM1", WRAMX
-wd000:: ; d000
+wNamingScreenDestPointer:: ; d000
ds $2
-wd002:: ; d002
+wNamingScreenQuestionPointer:: ; d002
ds $2
-wd004:: ; d004
+; max length of name buffer.
+; it's given for limiting the player's input.
+wNamingScreenBufferMaxLength:: ; d004
ds $1
wd005:: ; d005
ds $1
-wd006:: ; d006
+wNamingScreenCursorX:: ; d006
ds $1
wd007:: ; d007