diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/engine/bank01.asm | 4 | ||||
-rw-r--r-- | src/engine/bank06.asm | 583 | ||||
-rw-r--r-- | src/engine/home.asm | 6 | ||||
-rw-r--r-- | src/macros/text.asm | 4 | ||||
-rw-r--r-- | src/text/text3.asm | 4 | ||||
-rw-r--r-- | src/text/text_offsets.asm | 4 | ||||
-rw-r--r-- | src/wram.asm | 27 |
7 files changed, 452 insertions, 180 deletions
diff --git a/src/engine/bank01.asm b/src/engine/bank01.asm index df61f37..e81f95d 100644 --- a/src/engine/bank01.asm +++ b/src/engine/bank01.asm @@ -7682,7 +7682,7 @@ Func_741a: ; 741a (1:741a) xor a ld [wd4b0], a push hl - farcall $6, $4f9c + farcall Func_006_4f9c pop hl jr .loop .done @@ -7770,7 +7770,7 @@ Func_7571: ; 7571 (1:7571) INCROM $7571, $7576 Func_7576: ; 7576 (1:7576) - farcall $6, $591f + farcall Func_006_591f ret ; 0x757b diff --git a/src/engine/bank06.asm b/src/engine/bank06.asm index 9b1e54d..e6793d5 100644 --- a/src/engine/bank06.asm +++ b/src/engine/bank06.asm @@ -152,89 +152,115 @@ _CopyCardNameAndLevel_HalfwidthText: ret ; 0x180d5 -Func_180d5: ; 180d5 (6:40d5) +; this function is called when the player +; is shown the appearance of the play area. +; it can be called in the command window +; from either pressing select button +; or selecting check command. +HandlePlayAreaView: ; 180d5 (6:40d5) ld a, $05 - ld [$ce52], a -.asm_006_40da + ld [wPlayAreaCursorPosition], a +.start xor a ld [wcea3], a farcall $2, $42ce call EnableLCD call IsClairvoyanceActive - jr c, .asm_006_40ef - ld de, $42db - jr .asm_006_40f2 -.asm_006_40ef - ld de, $434b -.asm_006_40f2 - ld hl, $ce53 + jr c, .clairvoyance_on + + ld de, Data_006_42db + jr .clairvoyance_off + +.clairvoyance_on + ld de, Data_006_434b +.clairvoyance_off + ld hl, wPlayAreaInputTablePointer ld [hl], e inc hl ld [hl], d - ld a, [$ce52] - call .asm_006_4171 -.asm_006_40fe + ld a, [wPlayAreaCursorPosition] + call PrintCardName_HandlePlayAreaView +.on_frame ld a, $01 ld [wVBlankOAMCopyToggle], a call DoFrame + ldh a, [hDPadHeld] - and $08 - jr nz, .asm_006_4153 - ld a, [wce60] + and START + jr nz, .selection + + ; if this function's been called from 'select' button, + ; wIsFromSelectButton is on. + ld a, [wIsFromSelectButton] or a - jr z, .asm_006_4118 + jr z, .handle_input ; if it's from the check command, jump. + ldh a, [hDPadHeld] - and $04 - jr nz, .asm_006_4148 -.asm_006_4118 - ld a, [$ce52] - ld [$ce58], a - call Func_006_43bb - jr c, .asm_006_4139 - ld a, [$ce52] - cp $10 - jp z, .asm_006_41f8 - cp $11 - jp z, .asm_006_4210 - ld hl, $ce58 + and SELECT + jr nz, .toggle_view + +.handle_input + ld a, [wPlayAreaCursorPosition] + ld [wPlayAreaPreservedPosition_2], a + call HandleInput_PlayArea + jr c, .pressed + + ld a, [wPlayAreaCursorPosition] + cp $10 ; player's hand + jp z, ShowPlayerHand_HandlePlayAreaView + cp $11 ; opponent's hand + jp z, ShowOpponentHand_HandlePlayAreaView + + ; check if the cursor moved. + ld hl, wPlayAreaPreservedPosition_2 cp [hl] - call nz, .asm_006_4171 - jr .asm_006_40fe -.asm_006_4139 - cp $ff - jr nz, .asm_006_4153 + call nz, PrintCardName_HandlePlayAreaView + + jr .on_frame + +.pressed + cp -1 + jr nz, .selection + + ; pressed b button. call Func_006_44bf lb de, $38, $9f call SetupText scf ret -.asm_006_4148 + +.toggle_view call Func_006_44bf lb de, $38, $9f call SetupText or a ret -.asm_006_4153 + +.selection ; pressed a button or start button. call Func_006_44bf lb de, $38, $9f call SetupText - ld a, [$ce52] - ld [$ce57], a - ld hl, .jump_table + ld a, [wPlayAreaCursorPosition] + ld [wPlayAreaPreservedPosition], a + ld hl, JumpTable_HandlePlayAreaView call JumpToFunctionInTable - ld a, [$ce57] - ld [$ce52], a - jp .asm_006_40da -.asm_006_4171 ; 18171 (6:4171) + ld a, [wPlayAreaPreservedPosition] + ld [wPlayAreaCursorPosition], a + + jp .start + +PrintCardName_HandlePlayAreaView: ; 18171 (6:4171) push af lb de, 1, 17 call InitTextPrinting ldtx hl, EmptyLineText call ProcessTextFromID + ld hl, hffb0 ld [hl], $01 ldtx hl, HandText_2 call ProcessTextFromID + ld hl, hffb0 ld [hl], $00 lb de, 1, 17 @@ -244,33 +270,40 @@ Func_180d5: ; 180d5 (6:40d5) ld b, 0 sla a ld c, a - add hl, bc + add hl, bc ; hl = 0x42bb + 2 * (wPlayAreaCursorPostion) + ld a, [hli] ld h, [hl] ld l, a ld a, h or a jr nz, .asm_006_41e3 + ld a, l cp $06 jr nc, .asm_006_41e3 - ld a, [$ce52] + + ld a, [wPlayAreaCursorPosition] cp $06 jr nc, .asm_006_41c2 + ld a, l add DUELVARS_ARENA_CARD call GetTurnDuelistVariable cp -1 ret z + call GetCardIDFromDeckIndex call LoadCardDataToBuffer1_FromCardID jr .asm_006_41d7 + .asm_006_41c2 ld a, l add DUELVARS_ARENA_CARD call GetNonTurnDuelistVariable cp -1 ret z + call SwapTurn call GetCardIDFromDeckIndex call LoadCardDataToBuffer1_FromCardID @@ -281,18 +314,21 @@ Func_180d5: ; 180d5 (6:40d5) ld hl, wDefaultText call ProcessText ret + .asm_006_41e3 - ld a, [$ce52] + ld a, [wPlayAreaCursorPosition] cp $08 jr nc, .asm_006_41ee call PrintTextNoDelay ret + .asm_006_41ee call SwapTurn call PrintTextNoDelay call SwapTurn ret -.asm_006_41f8 + +ShowPlayerHand_HandlePlayAreaView: lb de, $38, $9f call SetupText ldh a, [hWhoseTurn] @@ -300,10 +336,11 @@ Func_180d5: ; 180d5 (6:40d5) bank1call OpenTurnHolderPlayAreaScreen pop af ldh [hWhoseTurn], a - ld a, [$ce57] - ld [$ce52], a - jp .asm_006_40da -.asm_006_4210 + ld a, [wPlayAreaPreservedPosition] + ld [wPlayAreaCursorPosition], a + jp HandlePlayAreaView.start + +ShowOpponentHand_HandlePlayAreaView: lb de, $38, $9f call SetupText ldh a, [hWhoseTurn] @@ -311,10 +348,11 @@ Func_180d5: ; 180d5 (6:40d5) bank1call OpenNonTurnHolderPlayAreaScreen pop af ldh [hWhoseTurn], a - ld a, [$ce57] - ld [$ce52], a - jp .asm_006_40da -.jump_table ; (6:4228) + ld a, [wPlayAreaPreservedPosition] + ld [wPlayAreaCursorPosition], a + jp HandlePlayAreaView.start + +JumpTable_HandlePlayAreaView ; (6:4228) dw Func_006_4248 dw Func_006_4248 dw Func_006_4248 @@ -333,7 +371,7 @@ Func_180d5: ; 180d5 (6:40d5) dw Func_006_426a Func_006_4248: - ld a, [$ce52] + ld a, [wPlayAreaCursorPosition] inc a cp PLAY_AREA_BENCH_5 + $01 jr nz, .asm_006_4251 @@ -352,7 +390,7 @@ Func_006_4248: ret Func_006_426a: - ld a, [$ce52] + ld a, [wPlayAreaCursorPosition] sub $08 or a jr z, .asm_006_4274 @@ -422,154 +460,222 @@ TextIDTable_182bb: tx PKMNPowerText tx DoneText - INCROM $182db, $183bb - -Func_006_43bb: ; 183bb (6:43bb) +Data_006_42db: +; transitions[] + db $18, $8c, $00, $05, $10, $01, $04 + db $30, $8c, $00, $05, $10, $02, $00 + db $48, $8c, $00, $05, $10, $03, $01 + db $60, $8c, $00, $05, $10, $04, $02 + db $78, $8c, $00, $05, $10, $00, $03 + db $30, $6c, $00, $08, $00, $07, $07 + db $78, $80, $00, $07, $00, $05, $05 + db $78, $70, $00, $08, $06, $05, $05 + db $78, $34, $20, $0b, $05, $0a, $0a + db $30, $20, $20, $0b, $0a, $08, $08 + db $30, $38, $20, $0b, $05, $08, $08 + db $90, $14, $20, $11, $08, $0f, $0c + db $78, $14, $20, $11, $08, $0b, $0d + db $60, $14, $20, $11, $08, $0c, $0e + db $48, $14, $20, $11, $08, $0d, $0f + db $30, $14, $20, $11, $08, $0e, $0b + +Data_006_434b: +; transitions[] + db $18, $8c, $00, $05, $10, $01, $04 + db $30, $8c, $00, $05, $10, $02, $00 + db $48, $8c, $00, $05, $10, $03, $01 + db $60, $8c, $00, $05, $10, $04, $02 + db $78, $8c, $00, $05, $10, $00, $03 + db $30, $6c, $00, $08, $00, $07, $07 + db $78, $80, $00, $07, $00, $05, $05 + db $78, $70, $00, $08, $06, $05, $05 + db $78, $34, $20, $0b, $05, $0a, $0a + db $30, $20, $20, $0b, $0a, $08, $08 + db $30, $38, $20, $09, $05, $08, $08 + db $90, $14, $20, $11, $08, $0f, $0c + db $78, $14, $20, $11, $08, $0b, $0d + db $60, $14, $20, $11, $08, $0c, $0e + db $48, $14, $20, $11, $08, $0d, $0f + db $30, $14, $20, $11, $08, $0e, $0b + +HandleInput_PlayArea: ; 183bb (6:43bb) xor a ld [wcfe3], a - ld hl, $ce53 -.asm_006_43c2 + ld hl, wPlayAreaInputTablePointer ld e, [hl] inc hl ld d, [hl] - ld a, [$ce52] + ld a, [wPlayAreaCursorPosition] ld l, a -.asm_006_43c9 ld h, $07 call HtimesL add hl, de + ldh a, [hDPadHeld] or a - jp z, .asm_006_446b + jp z, .check_button + inc hl inc hl inc hl + + ; check d-pad bit D_UP_F, a - jr z, .asm_006_43df -.asm_006_43dc + jr z, .else_if_down + + ; up ld a, [hl] - jr .asm_006_43f5 -.asm_006_43df + jr .process_dpad + +.else_if_down inc hl bit D_DOWN_F, a - jr z, .asm_006_43e7 + jr z, .else_if_right + + ; down ld a, [hl] - jr .asm_006_43f5 -.asm_006_43e7 + jr .process_dpad + +.else_if_right inc hl bit D_RIGHT_F, a - jr z, .asm_006_43ef + jr z, .else_if_left + + ; right ld a, [hl] - jr .asm_006_43f5 -.asm_006_43ef + jr .process_dpad + +.else_if_left inc hl bit D_LEFT_F, a - jr z, .asm_006_446b + jr z, .check_button + + ; left ld a, [hl] -.asm_006_43f5 +.process_dpad push af - ld a, [$ce52] - ld [$ce57], a + ld a, [wPlayAreaCursorPosition] + ld [wPlayAreaPreservedPosition], a pop af - ld [$ce52], a + ld [wPlayAreaCursorPosition], a + cp $05 jr c, .asm_006_440e cp $0b jr c, .asm_006_4462 cp $10 jr c, .asm_006_4437 + jr .asm_006_4462 + .asm_006_440e ld a, DUELVARS_NUMBER_OF_POKEMON_IN_PLAY_AREA call GetTurnDuelistVariable dec a jr nz, .asm_006_441d + ld a, $10 - ld [$ce52], a + ld [wPlayAreaCursorPosition], a jr .asm_006_4462 + .asm_006_441d ld b, a - ld a, [$ce52] + ld a, [wPlayAreaCursorPosition] cp b jr c, .asm_006_4462 + ldh a, [hDPadHeld] bit D_RIGHT_F, a jr z, .asm_006_4430 + xor a - ld [$ce52], a + ld [wPlayAreaCursorPosition], a jr .asm_006_4462 -.asm_006_4430: + +.asm_006_4430 ld a, b dec a - ld [$ce52], a + ld [wPlayAreaCursorPosition], a jr .asm_006_4462 -.asm_006_4437: + +.asm_006_4437 ld a, DUELVARS_NUMBER_OF_POKEMON_IN_PLAY_AREA call GetNonTurnDuelistVariable dec a jr nz, .asm_006_4446 + ld a, $11 - ld [$ce52], a + ld [wPlayAreaCursorPosition], a jr .asm_006_4462 + .asm_006_4446 ld b, a - ld a, [$ce52] + ld a, [wPlayAreaCursorPosition] sub $0b cp b jr c, .asm_006_4462 + ldh a, [hDPadHeld] bit D_LEFT_F, a jr z, .asm_006_445c + ld a, $0b - ld [$ce52], a + ld [wPlayAreaCursorPosition], a jr .asm_006_4462 + .asm_006_445c ld a, b add $0a - ld [$ce52], a + ld [wPlayAreaCursorPosition], a .asm_006_4462 ld a, $01 ld [wcfe3], a xor a ld [wcea3], a -.asm_006_446b +.check_button ldh a, [hKeysPressed] - and $03 - jr z, .asm_006_448b - and $01 - jr nz, .asm_006_447d - ld a, $ff + and A_BUTTON | B_BUTTON + jr z, .return + + and A_BUTTON + jr nz, .a_button + + ; pressed b button + ld a, -1 farcall Func_90fb scf ret -.asm_006_447d + +.a_button call Func_006_44a0 ld a, $01 farcall Func_90fb - ld a, [$ce52] + ld a, [wPlayAreaCursorPosition] scf ret -.asm_006_448b + +.return ld a, [wcfe3] or a - jr z, .asm_006_4494 + jr z, .skip_sfx call PlaySFX -.asm_006_4494 +.skip_sfx ld hl, wcea3 ld a, [hl] inc [hl] and $0f ret nz + bit D_RIGHT_F, [hl] jr nz, Func_006_44bf Func_006_44a0: ; 184a0 (6:44a0) call ZeroObjectPositions - ld hl, $ce53 + ld hl, wPlayAreaInputTablePointer ld e, [hl] inc hl ld d, [hl] - ld a, [$ce52] + ld a, [wPlayAreaCursorPosition] ld l, a ld h, $07 call HtimesL @@ -593,10 +699,11 @@ Func_006_44bf: ; 184bf (6:44bf) xor a ld [wGlossaryPageNo], a call Func_006_452b + xor a - ld [$ce52], a + ld [wPlayAreaCursorPosition], a ld de, $4c8e - ld hl, $ce53 + ld hl, wPlayAreaInputTablePointer ld [hl], e inc hl ld [hl], d @@ -609,26 +716,29 @@ Func_006_44bf: ; 184bf (6:44bf) ld [wVBlankOAMCopyToggle], a call DoFrame ldh a, [hKeysPressed] - and $04 - jr nz, .asm_006_4518 + and SELECT + jr nz, .on_select farcall $2, $49ae jr nc, .asm_006_44e5 - cp $ff + cp -1 jr nz, .asm_006_4502 farcall $2, $4aa1 ret + .asm_006_4502 push af farcall $2, $4aa1 pop af cp $09 jr z, .asm_006_451e + call Func_006_4598 call Func_006_452b xor a ld [wcea3], a jr .asm_006_44e5 -.asm_006_4518 + +.on_select ld a, $01 farcall Func_90fb .asm_006_451e @@ -650,10 +760,10 @@ Func_006_452b: ; 1852b (6:452b) farcall $2, $4992 lb de, 5, 0 call InitTextPrinting - ldtx hl, Text02f6 + ldtx hl, GlossaryText call ProcessTextFromID call Func_006_455a - ldtx hl, Text02f9 + ldtx hl, ChooseWordInGlossaryText call DrawWideTextBox_PrintText ret @@ -701,10 +811,10 @@ Func_006_4598: ; 18598 (6:4598) call EmptyScreen lb de, 5, 0 call InitTextPrinting - ldtx hl, Text02f6 + ldtx hl, GlossaryText call ProcessTextFromID - ld de, $0004 - ld bc, $140e + lb de, 0, 4 + lb bc, 20, 14 call DrawRegularTextBox ld a, [wGlossaryPageNo] or a @@ -1196,8 +1306,56 @@ Func_006_5168: ; 19168 (6:5168) bank1call DrawDuelHUDs ret - INCROM $191a3, $1996e + INCROM $191a3, $1991f + +Func_006_591f: + add a + ld e, a + ld d, 0 + ld hl, .data + add hl, de + ld a, PLAYER_TURN + ldh [hWhoseTurn], a + ld a, [hli] + add $02 + push hl + ld hl, sDeck1Name + call Func_199e0 + pop hl + call SwapTurn + ld a, [hli] + add $02 + call LoadDeck + call SwapTurn + call EnableSRAM + ld h, $a1 + ld de, wPlayerDeck + ld c, $3c +.asm_006_594c + ld a, [de] + inc de + ld l, a + res 7, [hl] + dec c + jr nz, .asm_006_594c + + ld h, $a1 + ld de, wOpponentDeck + ld c, $1e +.asm_006_595b + ld a, [de] + inc de + ld l, a + res 7, [hl] + inc [hl] + dec c + jr nz, .asm_006_595b + call DisableSRAM + ret +.data + db $03, $04, $05, $06, $07, $08 + Func_1996e: ; 1996e (6:596e) call EnableSRAM ld a, PLAYER_TURN @@ -1393,8 +1551,8 @@ Func_006_668d: lb de, $38, $9f call SetupText bank1call InitAndDrawCardListScreenLayout - ld hl, $0056 - ld de, $0196 + ldtx hl, ChooseTheCardYouWishToExamineText + ldtx de, Text0196 bank1call SetCardListHeaderText ld a, A_BUTTON | START ld [wNoItemSelectionMenuKeys], a @@ -1737,7 +1895,7 @@ PrintPlayerNameFromInput: sub e inc a ld e, a - ld d, $00 + ld d, 0 ; print the underbars ; before print the input. ld hl, .char_underbar @@ -2082,7 +2240,7 @@ NamingScreen_ProcessInput: ld a, [wd009] cp $02 jr z, .read_char - ld bc, $0359 ; “ + ldfw3 bc, "“" ld a, d cp b jr nz, .asm_006_6af4 @@ -2096,7 +2254,7 @@ NamingScreen_ProcessInput: jr c, .nothing jr .asm_006_6b09 .asm_006_6af4 - ld bc, $035b ; º + ldfw3 bc, "º(2)" ld a, d cp b jr nz, .asm_006_6b1d @@ -2276,62 +2434,76 @@ GetCharInfoFromPos_Player: ; - unused data contains its character code as zero. kbitem: MACRO db \1, \2, \3, \4 +if (_NARG == 5) dw \5 +elif (\5 == TX_FULLWIDTH3) + dw (\5 << 8) | STRCAT("FW3_", \6) +else + dw (\5 << 8) | \6 +endc ENDM KeyboardData_Player: ; (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 $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, "o" + kbitem $0c, $02, $15, $00, "d" 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 $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, "e" 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 $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, "j" + kbitem $0c, $06, $1f, $00, "f" 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 $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, "k" + kbitem $0c, $08, $24, $00, "g" 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 $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, "w" + kbitem $0c, $0a, $29, $00, "h" 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 $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, "`" + kbitem $0c, $0c, $2e, $00, "i" 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 $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, "a" + kbitem $0c, $0e, $33, $00, TX_SYMBOL, SYM_No 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 $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, "b" + kbitem $0c, $10, $3d, $00, TX_SYMBOL, SYM_Lv 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 $04, $12, $37, $00, TX_FULLWIDTH3, "I" + kbitem $06, $12, $38, $00, TX_FULLWIDTH3, "R" + kbitem $08, $12, $39, $00, "n" + kbitem $0a, $12, $3a, $00, "c" + kbitem $0c, $12, $3b, $00, "p" kbitem $10, $0f, $01, $09, $0000 kbitem $00, $00, $00, $00, $0000 ; a set of transition datum. @@ -2816,10 +2988,83 @@ GetCharInfoFromPos_Deck: jr nz, .loop ret -; a bunch of data KeyboardData_Deck: ; (6:7019) - INCROM $1b019, $1b8e8 - INCROM $1b8e8, $1ba12 + db $04, $02, "A" + db $06, $02, "J" + db $08, $02, "S" + db $0a, $02, "?" + db $0c, $02, "4" + db $0e, $02, $02 + db $10, $0f, $01 + + db $04, $04, "B" + db $06, $04, "K" + db $08, $04, "T" + db $0a, $04, "&" + db $0c, $04, "5" + db $0e, $04, $02 + db $10, $0f, $01 + + db $04, $06, "C" + db $06, $06, "L" + db $08, $06, "U" + db $0a, $06, "+" + db $0c, $06, "6" + db $0e, $06, $02 + db $10, $0f, $01 + + db $04, $08, "D" + db $06, $08, "M" + db $08, $08, "V" + db $0a, $08, "-" + db $0c, $08, "7" + db $0e, $08, $02 + db $10, $0f, $01 + + db $04, $0a, "E" + db $06, $0a, "N" + db $08, $0a, "W" + db $0a, $0a, "'" + db $0c, $0a, "8" + db $0e, $0a, $02 + db $10, $0f, $01 + + db $04, $0c, "F" + db $06, $0c, "O" + db $08, $0c, "X" + db $0a, $0c, "0" + db $0c, $0c, "9" + db $0e, $0c, $02 + db $10, $0f, $01 + + db $04, $0e, "G" + db $06, $0e, "P" + db $08, $0e, "Y" + db $0a, $0e, "1" + db $0c, $0e, " " + db $0e, $0e, $02 + db $10, $0f, $01 + + db $04, $10, "H" + db $06, $10, "Q" + db $08, $10, "Z" + db $0a, $10, "2" + db $0c, $10, " " + db $0e, $10, $02 + db $10, $0f, $01 + + db $04, $12, "I" + db $06, $12, "R" + db $08, $12, "!" + db $0a, $12, "3" + db $0c, $12, " " + db $0e, $12, $02 + db $10, $0f, $01 + +; unknown data. +; needs analyze. +; (6:70d6) + INCROM $1b0d6, $1ba12 Func_006_7a12: ; (6:7a12) push af diff --git a/src/engine/home.asm b/src/engine/home.asm index c4507ef..7739545 100644 --- a/src/engine/home.asm +++ b/src/engine/home.asm @@ -9289,11 +9289,11 @@ Func_3096: ; 3096 (0:3096) Func_30a6: ; 30a6 (0:30a6) ldh a, [hBankROM] push af - ld a, BANK(Func_180d5) + ld a, BANK(HandlePlayAreaView) call BankswitchROM ld a, $1 - ld [wce60], a - call Func_180d5 + ld [wIsFromSelectButton], a + call HandlePlayAreaView pop bc ld a, b call BankswitchROM diff --git a/src/macros/text.asm b/src/macros/text.asm index dd47c02..8ad94e8 100644 --- a/src/macros/text.asm +++ b/src/macros/text.asm @@ -82,3 +82,7 @@ endc shift endr ENDM + +ldfw3: MACRO + ld \1, (TX_FULLWIDTH3 << 8) | STRCAT("FW3_", \2) +ENDM
\ No newline at end of file diff --git a/src/text/text3.asm b/src/text/text3.asm index 04d0b05..5d72609 100644 --- a/src/text/text3.asm +++ b/src/text/text3.asm @@ -619,7 +619,7 @@ Text02f5: ; 3d2e6 (f:52e6) line "very rare Pokémon cards!" done -Text02f6: ; 3d31c (f:531c) +GlossaryText: ; 3d31c (f:531c) text "Pokémon Card Glossary" done @@ -639,7 +639,7 @@ Text02f8: ; 3d3e0 (f:53e0) line "Attack To previous page" done -Text02f9: ; 3d48f (f:548f) +ChooseWordInGlossaryText: ; 3d48f (f:548f) text "Choose a word and press the" line "A button." done diff --git a/src/text/text_offsets.asm b/src/text/text_offsets.asm index 2f56aaa..8421f29 100644 --- a/src/text/text_offsets.asm +++ b/src/text/text_offsets.asm @@ -759,10 +759,10 @@ TextOffsets:: ; 34000 (d:4000) textpointer Text02f3 ; 0x02f3 textpointer Text02f4 ; 0x02f4 textpointer Text02f5 ; 0x02f5 - textpointer Text02f6 ; 0x02f6 + textpointer GlossaryText ; 0x02f6 textpointer Text02f7 ; 0x02f7 textpointer Text02f8 ; 0x02f8 - textpointer Text02f9 ; 0x02f9 + textpointer ChooseWordInGlossaryText ; 0x02f9 textpointer Text02fa ; 0x02fa textpointer Text02fb ; 0x02fb textpointer Text02fc ; 0x02fc diff --git a/src/wram.asm b/src/wram.asm index 3af5361..7a7f0ad 100644 --- a/src/wram.asm +++ b/src/wram.asm @@ -1289,7 +1289,30 @@ wce50:: ; ce50 wce51:: ; ce51 ds $1 - ds $7 +; the position of cursor +; in the display of play area. +; note that it's used in neither +; player's nor opponent's alone. +wPlayAreaCursorPosition:: ; ce52 + ds $1 + +; pointer to the table which contains +; information for each key-press. +wPlayAreaInputTablePointer:: ; ce53 + ds $2 + + ds $2 + +; it's used for restore the position of cursor +; when going into another view, and returning to +; the previous view. +wPlayAreaPreservedPosition:: ; ce57 + ds $1 + +; it's used for checking if the player changed +; the cursor in the play area view. +wPlayAreaPreservedPosition_2:: ; ce58 + ds $1 wce59:: ; ce59 ds $1 @@ -1301,7 +1324,7 @@ wce5e:: ; ce5e ds $1 -wce60:: ; ce60 +wIsFromSelectButton:: ; ce60 ds $1 wce61:: ; ce61 |