diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/engine/bank01.asm | 2 | ||||
-rw-r--r-- | src/engine/bank06.asm | 1084 |
2 files changed, 1064 insertions, 22 deletions
diff --git a/src/engine/bank01.asm b/src/engine/bank01.asm index 2df1e9d..fb96bd0 100644 --- a/src/engine/bank01.asm +++ b/src/engine/bank01.asm @@ -7749,7 +7749,7 @@ Func_7494: ; 7494 (1:7494) ld a, $02 ld [wLoadedMoveAnimation], a .asm_74d1 - farcall $6, $4f9c + farcall Func_006_49fc pop bc pop de pop hl diff --git a/src/engine/bank06.asm b/src/engine/bank06.asm index 74f8140..7a89465 100644 --- a/src/engine/bank06.asm +++ b/src/engine/bank06.asm @@ -148,11 +148,1051 @@ Func_18086: ; 18086 (6:4086) ; 0x180d5 Func_180d5: ; 180d5 (6:40d5) - INCROM $180d5, $186f7 + ld a, $05 + ld [$ce52], a +.asm_006_40da + xor a + ld [wcea3], a + rst $28 + ld [bc], a + adc $42 + 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 + ld [hl], e + inc hl + ld [hl], d + ld a, [$ce52] + call .asm_006_4171 +.asm_006_40fe + ld a, $01 + ld [wVBlankOAMCopyToggle], a + call DoFrame + ldh a, [hDPadHeld] + and $08 + jr nz, .asm_006_4153 + ld a, [wce60] + or a + jr z, .asm_006_4118 + 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 + cp [hl] + call nz, .asm_006_4171 + jr .asm_006_40fe +.asm_006_4139 + cp $ff + jr nz, .asm_006_4153 + call Func_006_44bf + ld de, $389f + call SetupText + scf + ret +.asm_006_4148 + call Func_006_44bf + ld de, $389f + call SetupText + or a + ret +.asm_006_4153 + call Func_006_44bf + ld de, $389f + call SetupText + ld a, [$ce52] + ld [$ce57], a + ld hl, .jump_table + call JumpToFunctionInTable + ld a, [$ce57] + ld [$ce52], a + jp .asm_006_40da +.asm_006_4171 ; 18171 (6:4171) + push af + ld de, $0111 + call InitTextPrinting + ldtx hl, Text0251 + call ProcessTextFromID + ld hl, hffb0 + ld [hl], $01 + ldtx hl, Text024e + call ProcessTextFromID + ld hl, hffb0 + ld [hl], $00 + ld de, $0111 + call InitTextPrinting + pop af + ld hl, Data_006_42bb + ld b, $00 + sla a + ld c, a + add hl, bc + 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] + cp $06 + jr nc, .asm_006_41c2 + ld a, l + add $bb + call GetTurnDuelistVariable + cp $ff + ret z + call GetCardIDFromDeckIndex + call LoadCardDataToBuffer1_FromCardID + jr .asm_006_41d7 +.asm_006_41c2 + ld a, l + add $bb + call GetNonTurnDuelistVariable + cp $ff + ret z + call SwapTurn + call GetCardIDFromDeckIndex + call LoadCardDataToBuffer1_FromCardID + call SwapTurn +.asm_006_41d7 + ld a, $12 + call CopyCardNameAndLevel + ld hl, wDefaultText + call ProcessText + ret +.asm_006_41e3 + ld a, [$ce52] + cp $08 + jr nc, .asm_006_41ee + call PrintTextNoDelay + ret +.asm_006_41ee + call SwapTurn + call PrintTextNoDelay + call SwapTurn + ret +.asm_006_41f8 + ld de, $389f + call SetupText + ldh a, [hWhoseTurn] + push af + rst $18 + inc sp + ld b, e + pop af + ldh [hWhoseTurn], a + ld a, [$ce57] + ld [$ce52], a + jp .asm_006_40da +.asm_006_4210 + ld de, $389f + call SetupText + ldh a, [hWhoseTurn] + push af + rst $18 + add hl, hl + ld b, e + pop af + ldh [hWhoseTurn], a + ld a, [$ce57] + ld [$ce52], a + jp .asm_006_40da + +.jump_table ; (6:4228) + dw Func_006_4248 + dw Func_006_4248 + dw Func_006_4248 + dw Func_006_4248 + dw Func_006_4248 + dw Func_006_4248 + dw Func_006_4293 + dw Func_006_42a7 + dw Func_006_426a + dw Func_006_429d + dw Func_006_42b1 + dw Func_006_426a + dw Func_006_426a + dw Func_006_426a + dw Func_006_426a + dw Func_006_426a + +Func_006_4248: + ld a, [$ce52] + inc a + cp $06 + jr nz, .asm_006_4251 + xor a +.asm_006_4251 + ld [wHUDEnergyAndHPBarsX], a + add $bb + call GetTurnDuelistVariable + cp $ff + ret z + call GetCardIDFromDeckIndex + call LoadCardDataToBuffer1_FromCardID + xor a + ld [wHUDEnergyAndHPBarsY], a + rst $18 + ld l, d + ld d, a + ret + +Func_006_426a: + ld a, [$ce52] + sub $08 + or a + jr z, .asm_006_4274 + sub $02 +.asm_006_4274 + ld [wHUDEnergyAndHPBarsX], a + add $bb + call GetNonTurnDuelistVariable + cp $ff + ret z + call SwapTurn + call GetCardIDFromDeckIndex + call LoadCardDataToBuffer1_FromCardID + xor a + ld [wHUDEnergyAndHPBarsY], a + rst $18 + ld l, d + ld d, a + call SwapTurn + ret +Func_006_4293: + ldh a, [hWhoseTurn] + push af + rst $18 + ld c, [hl] + ld b, e + pop af + ldh [hWhoseTurn], a + ret + +Func_006_429d: + ldh a, [hWhoseTurn] + push af + rst $18 + ld b, l + ld b, e + pop af + ldh [hWhoseTurn], a + ret + +Func_006_42a7: + ldh a, [hWhoseTurn] + push af + rst $18 + ld b, d + ld b, e + pop af + ldh [hWhoseTurn], a + ret + +Func_006_42b1: + ldh a, [hWhoseTurn] + push af + rst $18 + add hl, sp + ld b, e + pop af + ldh [hWhoseTurn], a + ret + +Data_006_42bb: + INCROM $182bb, $183bb + +Func_006_43bb: ; 183bb (6:43bb) + xor a + ld [wcfe3], a + ld hl, $ce53 +.asm_006_43c2 + ld e, [hl] + inc hl + ld d, [hl] + ld a, [$ce52] + ld l, a +.asm_006_43c9 + ld h, $07 + call HtimesL + add hl, de + ldh a, [hDPadHeld] + or a + jp z, .asm_006_446b + inc hl + inc hl + inc hl + bit 6, a + jr z, .asm_006_43df +.asm_006_43dc + ld a, [hl] + jr .asm_006_43f5 +.asm_006_43df + inc hl + bit 7, a + jr z, .asm_006_43e7 + ld a, [hl] + jr .asm_006_43f5 +.asm_006_43e7 + inc hl + bit 4, a + jr z, .asm_006_43ef + ld a, [hl] + jr .asm_006_43f5 +.asm_006_43ef + inc hl + bit 5, a + jr z, .asm_006_446b + ld a, [hl] +.asm_006_43f5 + push af + ld a, [$ce52] + ld [$ce57], a + pop af + ld [$ce52], 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, $ef + call GetTurnDuelistVariable + dec a + jr nz, .asm_006_441d + ld a, $10 + ld [$ce52], a + jr .asm_006_4462 +.asm_006_441d + ld b, a + ld a, [$ce52] + cp b + jr c, .asm_006_4462 + ldh a, [hDPadHeld] + bit 4, a + jr z, .asm_006_4430 + xor a + ld [$ce52], a + jr .asm_006_4462 +.asm_006_4430: + ld a, b + dec a + ld [$ce52], a + jr .asm_006_4462 +.asm_006_4437: + ld a, $ef + call GetNonTurnDuelistVariable + dec a + jr nz, .asm_006_4446 + ld a, $11 + ld [$ce52], a + jr .asm_006_4462 +.asm_006_4446 + ld b, a + ld a, [$ce52] + sub $0b + cp b + jr c, .asm_006_4462 + ldh a, [hDPadHeld] + bit 5, a + jr z, .asm_006_445c + ld a, $0b + ld [$ce52], a + jr .asm_006_4462 +.asm_006_445c + ld a, b + add $0a + ld [$ce52], a +.asm_006_4462 + ld a, $01 + ld [wcfe3], a + xor a + ld [wcea3], a +.asm_006_446b + ldh a, [hKeysPressed] + and $03 + jr z, .asm_006_448b + and $01 + jr nz, .asm_006_447d + ld a, $ff + rst $28 + ld [bc], a + ei + ld d, b + scf + ret +.asm_006_447d + call Func_006_44a0 + ld a, $01 + rst $28 + ld [bc], a + ei + ld d, b + ld a, [$ce52] + scf + ret +.asm_006_448b + ld a, [wcfe3] + or a + jr z, .asm_006_4494 + call PlaySFX +.asm_006_4494 + ld hl, wcea3 + ld a, [hl] + inc [hl] + and $0f + ret nz + bit 4, [hl] + jr nz, Func_006_44bf + +Func_006_44a0: ; 184a0 (6:44a0) + call ZeroObjectPositions + ld hl, $ce53 + ld e, [hl] + inc hl + ld d, [hl] + ld a, [$ce52] + ld l, a + ld h, $07 + call HtimesL + add hl, de + ld d, [hl] + inc hl + ld e, [hl] + inc hl + ld b, [hl] + ld c, $00 + call SetOneObjectAttributes + or a + ret + +Func_006_44bf: ; 184bf (6:44bf) + call ZeroObjectPositions + ld a, $01 + ld [wVBlankOAMCopyToggle], a + ret + + xor a + ld [$ce62], a + call Func_006_452b + xor a + ld [$ce52], a + ld de, $4c8e + ld hl, $ce53 + ld [hl], e + inc hl + ld [hl], d + ld a, $ff + ld [$ce55], a + xor a + ld [wcea3], a + +.asm_006_44e5 + ld a, $01 + ld [wVBlankOAMCopyToggle], a + call DoFrame + ldh a, [hKeysPressed] + and $04 + jr nz, .asm_006_4518 + rst $28 + ld [bc], a + xor [hl] + ld c, c + jr nc, .asm_006_44e5 + cp $ff + jr nz, .asm_006_4502 + rst $28 + ld [bc], a + and c + ld c, d + ret +.asm_006_4502 + push af + rst $28 + ld [bc], a + and c + ld c, d + 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 + ld a, $01 + rst $28 + ld [bc], a + ei + ld d, b +.asm_006_451e + ld a, [$ce62] + xor $01 + ld [$ce62], a + call Func_006_455a + jr .asm_006_44e5 + +Func_006_452b: ; 1852b (6:452b) + xor a + ld [wTileMapFill], a + call ZeroObjectPositions + ld a, $01 + ld [wVBlankOAMCopyToggle], a + call DoFrame + call EmptyScreen + call Set_OBJ_8x8 + rst $28 + ld [bc], a + sub d + ld c, c + ld de, $0500 + call InitTextPrinting + ld hl, $02f6 + call ProcessTextFromID + call Func_006_455a + ld hl, $02f9 + call DrawWideTextBox_PrintText + ret + +Func_006_455a: ; 1855a (6:455a) + ld hl, wDefaultText + ld a, $05 + ld [hli], a + ld a, [$ce62] + add $21 + ld [hli], a + ld a, $05 + ld [hli], a + ld a, $2e + ld [hli], a + ld a, $05 + ld [hli], a + ld a, $22 + ld [hli], a + ld [hl], $00 + ld de, $1001 + call InitTextPrinting + ld hl, wDefaultText + call ProcessText + ld de, $0103 + call InitTextPrinting + ld a, [$ce62] + or a + jr nz, .asm_006_4591 + ld hl, $02f7 + jr .asm_006_4594 +.asm_006_4591 + ldtx hl, Text02f8 +.asm_006_4594 + call ProcessTextFromID + ret + +Func_006_4598: ; 18598 (6:4598) + push af + xor a + ld [wTileMapFill], a + call EmptyScreen + ld de, $0500 + call InitTextPrinting + ldtx hl, Text02f6 + call ProcessTextFromID + ld de, $0004 + ld bc, $140e + call DrawRegularTextBox + ld a, [$ce62] + or a + jr nz, .asm_006_45c0 + ld hl, Data_006_4607 + jr .asm_006_45c3 +.asm_006_45c0 + ld hl, Data_006_4634 +.asm_006_45c3 + pop af + ld c, a + ld b, $00 + add hl, bc + sla a + sla a + ld c, a + add hl, bc + ld a, [hli] + push hl + ld d, a + ld e, $02 + call InitTextPrinting + ld a, [hli] + ld h, [hl] + ld l, a + call ProcessTextFromID + pop hl + ld de, $0105 + call InitTextPrinting + inc hl + inc hl + ld a, [hli] + ld h, [hl] + ld l, a + ld a, $01 + ld [wLineSeparation], a + call ProcessTextFromID + xor a + ld [wLineSeparation], a + call EnableLCD +.asm_006_45f7 + call DoFrame + ldh a, [hKeysPressed] + and $02 + jr z, .asm_006_45f7 + ld a, $ff + rst $28 + ld [bc], a + ei + ld d, b + ret + +Data_006_4607: + INCROM $18607, $18634 + +Data_006_4634: + INCROM $18634, $18661 + +; (6:4661) + xor a + ld [wcfe3], a + ld a, [wceaf] + ld d, a + ld a, [wceb0] + ld e, a + ldh a, [hDPadHeld] + or a + jr z, .asm_006_46a2 + bit 5, a + jr nz, .asm_006_467a + bit 4, a + jr z, .asm_006_4680 +.asm_006_467a + ld a, d + xor $01 + ld d, a + jr .asm_006_468c +.asm_006_4680 + bit 6, a + jr nz, .asm_006_4688 + bit 7, a + jr z, .asm_006_46a2 +.asm_006_4688 + ld a, e + xor $01 + ld e, a +.asm_006_468c + ld a, $01 + ld [wcfe3], a + push de + call .asm_006_46d4 + pop de + ld a, d + ld [wceaf], a + ld a, e + ld [wceb0], a + xor a + ld [wcea3], a +.asm_006_46a2 + ldh a, [hKeysPressed] + and $03 + jr z, .asm_006_46bd + and $01 + jr nz, .asm_006_46b3 + ld a, $ff + call Func_006_50fb + scf + ret +.asm_006_46b3 + call .asm_006_46f3 + ld a, $01 + call Func_006_50fb + scf + ret +.asm_006_46bd + ld a, [wcfe3] + or a + jr z, .asm_006_46c6 + call PlaySFX +.asm_006_46c6 + ld hl, wcea3 + ld a, [hl] + inc [hl] + and $0f + ret nz + ld a, $0f + bit 4, [hl] + jr z, .asm_006_46d6 +.asm_006_46d4 ; 186d4 (6:46d4) + ld a, $00 +.asm_006_46d6 + ld e, a + ld a, $0a + ld l, a + ld a, [wceaf] + ld h, a + call HtimesL + ld a, l + add $01 + ld b, a + ld a, [wceb0] + sla a + add $0e + ld c, a + ld a, e + call WriteByteToBGMap0 + or a + ret +.asm_006_46f3: ; 186f3 (6:46f3) + ld a, $0f + jr .asm_006_46d6 + +; (6:46f7) INCLUDE "data/effect_commands.asm" - INCROM $18f9c, $1996e +Func_006_49fc: ; 18f9c (6:4f9c) + ld a, [wLoadedMoveAnimation] + or a + ret z + ld l, a + ld h, $00 + add hl, hl + ld de, $51a4 +.asm_006_4fa8 + add hl, de + ld e, [hl] + inc hl + ld d, [hl] + push de + ld hl, wce7e + ld a, [hl] + or a + jr nz, .asm_006_4fd3 + ld [hl], $01 + call Func_3b21 + pop de + push de + ld a, $00 + ld [wd4ae], a + ld a, $01 + ld [$d4b3], a + xor a + ld [wd4b0], a + ld a, [de] + cp $04 + jr z, .asm_006_4fd3 + ld a, $96 + call Func_3b6a +.asm_006_4fd3 + pop de +.asm_006_4fd4 + ld a, [de] + inc de + ld hl, PointerTable_006_508f + jp JumpToFunctionInTable + +Func_006_4fdc: + ret + +Func_006_4fdd: + ldh a, [hWhoseTurn] + ld [wd4af], a + ld a, [wDuelType] + cp $00 + jr nz, Func_006_5014 + ld a, $c2 + ld [wd4af], a + jr Func_006_5014 + +Func_006_4ff0: + call SwapTurn + ldh a, [hWhoseTurn] + ld [wd4af], a + call SwapTurn + ld a, [wDuelType] + cp $00 + jr nz, Func_006_5014 + ld a, $c3 + ld [wd4af], a + jr Func_006_5014 + +Func_006_5009: + ld a, [wce82] + and $7f + ld [wd4b0], a + jr Func_006_5014 + +Func_006_5013: + ret + +Func_006_5014: + ld a, [de] + inc de + cp $09 + jr z, .asm_006_502b + cp $fa + jr z, .asm_006_5057 + cp $fb + jr z, .asm_006_505d + cp $fc + jr z, .asm_006_5063 +.asm_006_5026 + call Func_3b6a + jr Func_006_49fc.asm_006_4fd4 +.asm_006_502b + ld a, $97 + call Func_3b6a + ld a, [wce81] + ld [$d4b3], a + push de + ld hl, wce7f + ld de, $d4b1 + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + pop de + ld a, $8c + call Func_3b6a + ld a, [wDuelDisplayedScreen] + cp $01 + jr nz, .asm_006_5054 + ld a, $98 + call Func_3b6a +.asm_006_5054 + jp Func_006_49fc.asm_006_4fd4 +.asm_006_5057 + ld c, $61 + ld b, $63 + jr .asm_006_5067 +.asm_006_505d + ld c, $62 + ld b, $64 + jr .asm_006_5067 +.asm_006_5063 + ld c, $63 + ld b, $61 +.asm_006_5067 + ldh a, [hWhoseTurn] + cp $c2 + ld a, c + jr z, .asm_006_5026 + ld a, [wDuelType] + cp $00 + ld a, c + jr z, .asm_006_5026 + ld a, b + jr .asm_006_5026 + +Func_006_5079: + ld a, [de] + inc de + ld [$d4b3], a + ld a, [wce82] + ld [wd4b0], a + call Func_006_509d + ld a, $96 + call Func_3b6a + jp Func_006_49fc.asm_006_4fd4 + +PointerTable_006_508f: ; (6:508f) + dw Func_006_4fdc + dw Func_006_5014 + dw Func_006_4fdd + dw Func_006_4ff0 + dw Func_006_5079 + dw Func_006_5009 + dw Func_006_5013 + +Func_006_509d: ; 1909d (6:509d) + ld a, [$d4b3] + cp $04 + jr z, .asm_006_50ad + cp $01 + ret nz + ld a, $00 + ld [wd4ae], a + ret +.asm_006_50ad + ld a, [wd4b0] + ld l, a + ld a, [wWhoseTurn] + ld h, a + cp $c2 + jr z, .asm_006_50cc + ld a, [wDuelType] + cp $00 + jr z, .asm_006_50c6 + bit 7, l + jr z, .asm_006_50e2 + jr .asm_006_50d2 +.asm_006_50c6 + bit 7, l + jr z, .asm_006_50da + jr .asm_006_50ea +.asm_006_50cc + bit 7, l + jr z, .asm_006_50d2 + jr .asm_006_50e2 +.asm_006_50d2 + ld l, $04 + ld h, $c2 + ld a, $01 + jr .asm_006_50f0 +.asm_006_50da + ld l, $04 + ld h, $c3 + ld a, $01 + jr .asm_006_50f0 +.asm_006_50e2 + ld l, $05 + ld h, $c3 + ld a, $02 + jr .asm_006_50f0 +.asm_006_50ea + ld l, $05 + ld h, $c2 + ld a, $02 +.asm_006_50f0: + ld [wd4ae], a + ret + +; this part is not perfectly analyzed. +; needs some fix. + ld a, [$d4b3] + cp $04 + jr z, Func_006_50fb.asm_006_510f +Func_006_50fb: ; 190fb (6:50fb) + cp $01 + jr nz, .asm_006_510e + ld a, $00 + ld [wd4ae], a + ld a, [wDuelDisplayedScreen] + cp $01 + jr z, .asm_006_510e + rst $18 + sbc l + ld c, a +.asm_006_510e + ret +.asm_006_510f + call Func_006_509d + ld a, [wDuelDisplayedScreen] + cp l + jr z, .asm_006_512e + ld a, l + push af + ld l, $c2 + ld a, [wDuelType] + cp $00 + jr nz, .asm_006_5127 + ld a, [wWhoseTurn] + ld l, a +.asm_006_5127 + call $30bc + pop af + ld [wDuelDisplayedScreen], a +.asm_006_512e + call DrawWideTextBox + ret + +; needs analyze. + push hl + push bc + push de + ld a, [wLoadedMoveAnimation] + cp $79 + jr z, .asm_006_5164 + cp $86 + jr z, .asm_006_5164 + ld a, [wTempNonTurnDuelistCardID] + ld e, a + ld d, $00 + call LoadCardDataToBuffer1_FromCardID + ld a, $12 + call CopyCardNameAndLevel + ld [hl], $00 + ld hl, wTxRam2 + xor a + ld [hli], a + ld [hl], a + ld hl, wce7f + ld a, [hli] + ld h, [hl] + ld l, a + call Func_006_5168 + ld a, l + or h + call nz, DrawWideTextBox_PrintText +.asm_006_5164 + pop de + pop bc + pop hl + ret + +Func_006_5168: ; 19168 (6:5168) + ld a, l + or h + jr z, .asm_006_5188 + call LoadTxRam3 + ld a, [wce81] + ld hl, $003a + and $06 + ret z + ld hl, $0038 + cp $06 + ret z + and $02 + ld hl, $0037 + ret nz + ld hl, $0036 + ret +.asm_006_5188 + call CheckNoDamageOrEffect + ret c + ld hl, $003b + ld a, [wce81] + and $04 + ret z + ld hl, $0039 + ret + +; needs analyze. + ld a, [wDuelDisplayedScreen] + cp $01 + ret nz + rst $18 + ld a, [hld] + ld d, b + ret + + INCROM $191a3, $1996e Func_1996e: ; 1996e (6:596e) call EnableSRAM @@ -450,7 +1490,7 @@ WhatIsYourNameData: ; (6:675e) textitem 1, 1, WhatIsYourNameText db $ff ; [Deck1Data ~ Deck4Data] -; These are directed from (2:4f05), +; These are directed from around (2:4f05), ; without any bank description. ; That is, the developers hard-coded it. -_-;; Deck1Data: ; (6:6763) @@ -470,7 +1510,7 @@ Deck4Data: ; (6:677e) textitem 14, 1, Text0219 db $ff -; set each byte zero from hl for b bytes +; set each byte zero from hl for b bytes. ClearMemory: ; (6:6787) push af push bc @@ -487,15 +1527,17 @@ ClearMemory: ; (6:6787) ret ; play different sfx by a. +; if a is 0xff play sfx with 0x03, +; else with 0x02. PlaySFXByA: ; (6:6794) push af inc a - jr z, .asm_006_679c + jr z, .on_three ld a, $02 - jr .asm_006_679e -.asm_006_679c + jr .on_two +.on_three ld a, $03 -.asm_006_679e +.on_two call PlaySFX pop af ret @@ -565,10 +1607,10 @@ InputPlayerName: ; (6:67a3) call FinalizeInputName ret .on_b_button - ; erase one character. ld a, [wNamingScreenBufferLength] or a - jr z, .loop + jr z, .loop ; empty string? + ; erase one character. ld e, a ld d, $00 ld hl, wNamingScreenBuffer @@ -576,14 +1618,14 @@ InputPlayerName: ; (6:67a3) dec hl dec hl ld [hl], $00 - ld hl, wNamingScreenBufferLength + ld hl, wNamingScreenBufferLength ; note that its unit is byte, not word. dec [hl] dec [hl] call PrintPlayerNameFromInput jr .loop ; it's called when naming(either player's or deck's) starts. -; a: maximum length of name. +; a: maximum length of name(depending on whether player's or deck's). ; de: dest. pointer. ; hl: pointer to text item of the question. InitializeInputName: @@ -1214,7 +2256,7 @@ GetCharacterInfoFromCursorPos: ; a set of keyboard datum. ; unit: 6 bytes. ; structure: -; unk 1 (1) / unk 2 (1) / type 1 (1) / type 2 (1) / character (2) +; abs. y pos. (1) / abs. x pos. (1) / type 1 (1) / type 2 (1) / char. code (2) ; - some of one byte characters have 0x0e in their high byte. ; - unused data contains its character code as zero. KeyboardData: ; (6:6baf) @@ -1384,7 +2426,7 @@ InputDeckName: ; 1ad89 (6:6d89) ld [hl], $00 ld hl, wNamingScreenBufferLength dec [hl] - call Func_006_6e59 + call ProcessTextWithUnderbar jp .asm_006_6dd6 ; fill v0Tiles0 for 0x10 tiles @@ -1407,13 +2449,13 @@ rept $10 db $f0 endr -Func_006_6e59: +ProcessTextWithUnderbar: ld hl, wd007 ld d, [hl] inc hl ld e, [hl] call InitTextPrinting - ld hl, .data + ld hl, .underbar_data ld de, wDefaultText .asm_006_6e68 ld a, [hli] @@ -1434,16 +2476,16 @@ Func_006_6e59: ld hl, wDefaultText call ProcessText ret -.data +.underbar_data db $06 rept $14 - db $5f + db "_" endr db $00 Func_006_6e99: call DrawTextboxForKeyboard - call Func_006_6e59 + call ProcessTextWithUnderbar ld hl, wNamingScreenQuestionPointer ld c, [hl] inc hl @@ -1501,7 +2543,7 @@ Func_006_6ec3: ld [hl], d inc hl ld [hl], $00 - call Func_006_6e59 + call ProcessTextWithUnderbar or a ret @@ -1811,7 +2853,7 @@ Func_006_7a7d: inc hl ret -; pointed from 0xb87e: [06|9A|7A] +; farcall from 0xb87e(2:787d): [EF|06|9A|7A] Func_006_7a9a: ; (6:7a9a) xor a ld [wd0a6], a |