diff options
Diffstat (limited to 'engine/printer.asm')
-rwxr-xr-x | engine/printer.asm | 1342 |
1 files changed, 1342 insertions, 0 deletions
diff --git a/engine/printer.asm b/engine/printer.asm new file mode 100755 index 00000000..7e6ae637 --- /dev/null +++ b/engine/printer.asm @@ -0,0 +1,1342 @@ +Func_e8783: ; e8783 (3a:4783) + ld a, 9 +Func_e8785: + push af + ld hl, wOverworldMap + lb bc, 4, 13 + xor a + call Func_e8a2e + xor a + ld [rSB], a + ld [rSC], a + ld [wUnknownSerialFlag_d49b], a + ld hl, wUnknownSerialFlag_d49a + set 0, [hl] + ld a, [wd498] + ld [$cae3], a + pop af + ld [$caf4], a + ret + +; e87a8 +Func_e87a8: ; e87a8 (3a:47a8) + ld a, [wOverworldMap] + ld e, a + ld d, 0 + ld hl, Jumptable_e87b7 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +Jumptable_e87b7: + dw Func_e87fd + dw Func_e88c9 + dw Func_e88a6 + dw Func_e881f + dw Func_e8906 + dw Func_e88b4 + dw Func_e884b + dw Func_e8906 + dw Func_e88a6 + dw Func_e8864 + dw Func_e8906 + dw Func_e88a6 + dw Func_e8927 + dw Func_e87e9 + dw Func_e87f3 + dw Func_e88a6 + dw Func_e8889 + dw Func_e87f7 + dw Func_e8936 + dw Func_e8939 + +Func_e87df: + ld hl, wOverworldMap + inc [hl] + ret + +Func_e87e4: + ld hl, wOverworldMap + dec [hl] + ret + +Func_e87e9: + xor a + ld [$c971], a + ld hl, wOverworldMap + set 7, [hl] + ret + +Func_e87f3: + call Func_e87df + ret + +Func_e87f7: + ld a, $01 + ld [wOverworldMap], a + ret + +Func_e87fd: + call Func_e8981 + ld hl, Data_e8a3a + call Func_e8968 + xor a + ld [$c976], a + ld [$c977], a + ld a, [$caf4] + ld [$c6e9], a + call Func_e87df + call Func_e8949 + ld a, $01 + ld [$cae0], a + ret + +Func_e881f: + call Func_e8981 + ld hl, $c6e9 + ld a, [hl] + and a + jr z, Func_e884b + ld hl, Data_e8a46 + call Func_e8968 + call Func_e89e6 + ld a, $80 + ld [$c976], a + ld a, $02 + ld [$c977], a + call Func_e899f + call Func_e87df + call Func_e8949 + ld a, $02 + ld [$cae0], a + ret + +Func_e884b: + ld a, $06 + ld [wOverworldMap], a + ld hl, Data_e8a4c + call Func_e8968 + xor a + ld [$c976], a + ld [$c977], a + call Func_e87df + call Func_e8949 + ret + +Func_e8864: + call Func_e8981 + ld hl, Data_e8a40 + call Func_e8968 + call Func_e89cf + ld a, $04 + ld [$c976], a + ld a, $00 + ld [$c977], a + call Func_e899f + call Func_e87df + call Func_e8949 + ld a, $03 + ld [$cae0], a + ret + +Func_e8889: + call Func_e8981 + ld hl, Data_e8a3a + call Func_e8968 + xor a + ld [$c976], a + ld [$c977], a + ld a, [$caf4] + ld [$c6e9], a + call Func_e87df + call Func_e8949 + ret + +Func_e88a6: + ld hl, $c973 + inc [hl] + ld a, [hl] + cp a, $06 + ret c + xor a + ld [hl], a + call Func_e87df + ret + +Func_e88b4: + ld hl, $c973 + inc [hl] + ld a, [hl] + cp a, $06 + ret c + xor a + ld [hl], a + ld hl, $c6e9 + dec [hl] + call Func_e87e4 + call Func_e87e4 + ret + +Func_e88c9: + ld a, [wUnknownSerialFlag_d49b] + and a + ret nz + ld a, [$c970] + cp a, $ff + jr nz, .asm_e88dc + ld a, [$c971] + cp a, $ff + jr z, .asm_e88f8 +.asm_e88dc + ld a, [$c970] + cp a, $81 + jr nz, .asm_e88f8 + ld a, [$c971] + cp a, $00 + jr nz, .asm_e88f8 + ld hl, wUnknownSerialFlag_d49a + set 1, [hl] + ld a, $05 + ld [$c972], a + call Func_e87df + ret + +.asm_e88f8 + ld a, $ff + ld [$c970], a + ld [$c971], a + ld a, $0e + ld [wOverworldMap], a + ret + +Func_e8906: + ld a, [wUnknownSerialFlag_d49b] + and a + ret nz + ld a, [$c971] + and a, $f0 + jr nz, .asm_e8921 + ld a, [$c971] + and a, $01 + jr nz, .asm_e891d + call Func_e87df + ret + +.asm_e891d + call Func_e87e4 + ret + +.asm_e8921 + ld a, $12 + ld [wOverworldMap], a + ret + +Func_e8927: + ld a, [wUnknownSerialFlag_d49b] + and a + ret nz + ld a, [$c971] + and a, $f3 + ret nz + call Func_e87df + ret + +Func_e8936: + call Func_e87df +Func_e8939: + ld a, [wUnknownSerialFlag_d49b] + and a + ret nz + ld a, [$c971] + and a, $f0 + ret nz + xor a + ld [wOverworldMap], a + ret + +Func_e8949: +.asm_e8949 + ld a, [wUnknownSerialFlag_d49b] + and a + jr nz, .asm_e8949 + xor a + ld [$c974], a + ld [$c975], a + ld a, $01 + ld [wUnknownSerialFlag_d49b], a + ld a, $88 + ld [rSB], a + ld a, $01 + ld [rSC], a + ld a, $81 + ld [rSC], a + ret + +Func_e8968: + ld a, [hli] + ld [$c6ea], a + ld a, [hli] + ld [$c6eb], a + ld a, [hli] + ld [$c6ec], a + ld a, [hli] + ld [$c6ed], a + ld a, [hli] + ld [$c6ee], a + ld a, [hl] + ld [$c6ef], a + ret + +Func_e8981: + xor a + ld hl, $c6ea + ld [hli], a + ld [hli], a + ld [hli], a + ld [hl], a + ld hl, $c6ee + ld [hli], a + ld [hl], a + xor a + ld [$c976], a + ld [$c977], a + ld hl, $c6f0 + ld bc, $0280 + call Func_e8a2e + ret + +Func_e899f: + ld hl, $0000 + ld bc, $0004 + ld de, $c6ea + call Func_e89c2 + ld a, [$c976] + ld c, a + ld a, [$c977] + ld b, a + ld de, $c6f0 + call Func_e89c2 + ld a, l + ld [$c6ee], a + ld a, h + ld [$c6ef], a + ret + +Func_e89c2: +.asm_e89c2 + ld a, [de] + inc de + add l + jr nc, .asm_e89c8 + inc h +.asm_e89c8 + ld l, a + dec bc + ld a, c + or b + jr nz, .asm_e89c2 + ret + +Func_e89cf: + ld a, $01 + ld [$c6f0], a + ld a, [$cae2] + ld [$c6f1], a + ld a, $e4 + ld [$c6f2], a + ld a, [$cae3] + ld [$c6f3], a + ret + +Func_e89e6: + ld a, [$c6e9] + ld b, a + ld a, [$caf4] + sub b + ld hl, $c978 + ld de, $0028 +.asm_e89f4 + and a + jr z, .asm_e89fb + add hl, de + dec a + jr .asm_e89f4 + +.asm_e89fb + ld e, l + ld d, h + ld hl, $c6f0 + ld c, $28 +.asm_e8a02 + ld a, [de] + inc de + push bc + push de + push hl + swap a + ld d, a + and a, $f0 + ld e, a + ld a, d + and a, $0f + ld d, a + and a, $08 + ld a, d + jr nz, .asm_e8a1a + or a, $90 + jr .asm_e8a1c + +.asm_e8a1a + or a, $80 +.asm_e8a1c + ld d, a + ld bc, $3a01 + call CopyVideoData + pop hl + ld de, $0010 + add hl, de + pop de + pop bc + dec c + jr nz, .asm_e8a02 + ret + +Func_e8a2e: ; e8a2e (3a:4a2e) + push de + ld e, a +.asm_e8a30 + ld [hl], e + inc hl + dec bc + ld a, c + or b + jr nz, .asm_e8a30 + ld a, e + pop de + ret + +Data_e8a3a: + db $01, $00, $00, $00, $01, $00 +Data_e8a40: + db $02, $00, $04, $00, $00, $00 +Data_e8a46: + db $04, $00, $80, $02, $00, $00 +Data_e8a4c: + db $04, $00, $00, $00, $04, $00 +Data_e8a52: + db $08, $00, $00, $00, $08, $00 +Data_e8a58: + db $0f, $00, $00, $00, $0f, $00 + +Func_e8a5e: ; e8a5e (3a:4a5e) + ld a, [$d49a] + ld e, a + ld d, 0 + ld hl, Jumptable_e8a6d + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +Jumptable_e8a6d: + dw Func_e8ab2 + dw Func_e8ab3 + dw Func_e8abc + dw Func_e8ac6 + dw Func_e8ad0 + dw Func_e8ada + dw Func_e8ae4 + dw Func_e8b0f + dw Func_e8b19 + dw Func_e8b23 + dw Func_e8b2c + dw Func_e8b3a + dw Func_e8ab3 + dw Func_e8b44 + dw Func_e8b4d + dw Func_e8b4d + dw Func_e8b4d + dw Func_e8b44 + dw Func_e8b4d + dw Func_e8b23 + dw Func_e8b2c + dw Func_e8b6a + dw Func_e8ab3 + dw Func_e8b56 + dw Func_e8b4d + dw Func_e8b4d + dw Func_e8b4d + dw Func_e8b56 + dw Func_e8b4d + dw Func_e8b23 + dw Func_e8b2c + dw Func_e8b3a + +Func_e8aad: + ld hl, wUnknownSerialFlag_d49b + inc [hl] + ret + +Func_e8ab2: + ret + +Func_e8ab3: + ld a, $33 + call Func_e8b5f + call Func_e8aad + ret + +Func_e8abc: + ld a, [$c6ea] + call Func_e8b5f + call Func_e8aad + ret + +Func_e8ac6: + ld a, [$c6eb] + call Func_e8b5f + call Func_e8aad + ret + +Func_e8ad0: + ld a, [$c6ec] + call Func_e8b5f + call Func_e8aad + ret + +Func_e8ada: + ld a, [$c6ed] + call Func_e8b5f + call Func_e8aad + ret + +Func_e8ae4: + ld hl, $c976 + ld e, [hl] + inc hl + ld d, [hl] + ld a, e + or d + jr z, .asm_e8b0c + dec de + ld [hl], d + dec hl + ld [hl], e + ld a, [$c974] + ld e, a + ld a, [$c975] + ld d, a + ld hl, $c6f0 + add hl, de + inc de + ld a, e + ld [$c974], a + ld a, d + ld [$c975], a + ld a, [hl] + call Func_e8b5f + ret + +.asm_e8b0c + call Func_e8aad +Func_e8b0f: + ld a, [$c6ee] + call Func_e8b5f + call Func_e8aad + ret + +Func_e8b19: + ld a, [$c6ef] + call Func_e8b5f + call Func_e8aad + ret + +Func_e8b23: + ld a, $00 + call Func_e8b5f + call Func_e8aad + ret + +Func_e8b2c: + ld a, [rSB] + ld [$c970], a + ld a, $00 + call Func_e8b5f + call Func_e8aad + ret + +Func_e8b3a: + ld a, [rSB] + ld [$c971], a + xor a + ld [wUnknownSerialFlag_d49b], a + ret + +Func_e8b44: + ld a, $0f + call Func_e8b5f + call Func_e8aad + ret + +Func_e8b4d: + ld a, $00 + call Func_e8b5f + call Func_e8aad + ret + +Func_e8b56: + ld a, $08 + call Func_e8b5f + call Func_e8aad + ret + +Func_e8b5f: + ld [rSB], a + ld a, $01 + ld [rSC], a + ld a, $81 + ld [rSC], a + ret + +Func_e8b6a: + ld a, [rSB] + ld [$c971], a + xor a + ld [wUnknownSerialFlag_d49b], a + ret + +Func_e8b74: ; e8b74 (3a:4b74) + ld a, [$cfca] + push af + xor a + ld [$cfca], a + ld [$ffdb], a + call Func_e8f24 + ld a, [rIE] + push af + xor a + ld [rIF], a + ld a, $09 + ld [rIE], a + xor a + ld [$ffba], a + call Func_e8c30 + call Func_e8785 + ld a, [$caf9] + and a + jr z, .asm_e8b9e + ld a, $10 + jr .asm_e8ba0 + +.asm_e8b9e + ld a, $13 +.asm_e8ba0 + ld [$cae2], a + call Func_e8efc + call ClearScreen + callab Func_401c2 + callab Func_4027c + ld a, $01 + ld [$ffba], a + call Func_e8c0c + jr c, .asm_e8bf4 + ld a, [$caf9] + and a + jr z, .asm_e8bf4 + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + ld c, $0c + call DelayFrames + call SaveScreenTilesToBuffer1 + xor a + ld [$ffba], a + call Func_e8c50 + ld a, $07 + call Func_e8785 + ld a, $03 + ld [$cae2], a + call Func_e8efc + call LoadScreenTilesFromBuffer1 + ld a, $01 + ld [$ffba], a + call Func_e8c0c +.asm_e8bf4 + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + xor a + ld [rIF], a + pop af + ld [rIE], a + call Func_0f3d + call Func_e8f3b + pop af + ld [$cfca], a + ret + +Func_e8c0c: + call Func_e8f16 +.asm_e8c0f + call JoypadLowSensitivity + call Func_e8eca + jr c, .asm_e8c2e + ld a, [$c6e8] + bit 7, a + jr nz, .asm_e8c2c + call Func_e87a8 + call Func_e8f51 + call Func_e8f82 + call DelayFrame + jr .asm_e8c0f + +.asm_e8c2c + and a + ret + +.asm_e8c2e + scf + ret + +Func_e8c30: + callab Func_4039c + ld a, l + ld [$caf5], a + ld a, h + ld [$caf6], a + ld a, $00 + rla + ld [$caf9], a + and a + jr z, .asm_e8c4d + ld a, $05 + jr .asm_e8c4f + +.asm_e8c4d + ld a, $09 +.asm_e8c4f + ret + +Func_e8c50: + call ClearScreen + callab Func_404bc + ret + +Func_e8c5c: + xor a + ld [$ffdb], a + call Func_e8f24 + call Func_e910a + ld a, [rIE] + push af + xor a + ld [rIF], a + ld a, $09 + ld [rIE], a + call Func_e8783 + ld a, $13 + ld [$cae2], a + call Func_e8efc + call Func_e8f16 +.asm_e8c7d + call JoypadLowSensitivity + call Func_e8eca + jr c, .asm_e8c9a + ld a, [$c6e8] + bit 7, a + jr nz, .asm_e8c9a + call Func_e87a8 + call Func_e8f51 + call Func_e8f82 + call DelayFrame + jr .asm_e8c7d + +.asm_e8c9a + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + call Func_e8f09 + xor a + ld [rIF], a + pop af + ld [rIE], a + call Func_0f3d + call Func_e8f3b + ret + +Func_e8cb1: + xor a + ld [$ffdb], a + call Func_e8f24 + call _DisplayDiploma + ld a, [rIE] + push af + xor a + ld [rIF], a + ld a, $09 + ld [rIE], a + call Func_e8783 + ld a, $10 + ld [$cae2], a + call Func_e8efc + call Func_e8d11 + jr c, .asm_e8cfa + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + ld c, $0c + call DelayFrames + call SaveScreenTilesToBuffer1 + xor a + ld [$ffba], a + call Func_e9ad3 + call Func_e8783 + ld a, $03 + ld [$cae2], a + call Func_e8efc + call LoadScreenTilesFromBuffer1 + call Func_e8d11 +.asm_e8cfa + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + call Func_e8f09 + xor a + ld [rIF], a + pop af + ld [rIE], a + call Func_0f3d + call Func_e8f3b + ret + +Func_e8d11: + call Func_e8f16 +.asm_e8d14 + call JoypadLowSensitivity + call Func_e8eca + jr c, .asm_e8d33 + ld a, [$c6e8] + bit 7, a + jr nz, .asm_e8d31 + call Func_e87a8 + call Func_e8f51 + call Func_e8f82 + call DelayFrame + jr .asm_e8d14 + +.asm_e8d31 + and a + ret + +.asm_e8d33 + scf + ret + + + +Func_e8d35:: ; e8d35 (3a:4e79) + ld a, [wBoxDataStart] + and a + jp z, Func_e8df4 + ld a, [wUpdateSpritesEnabled] + push af + xor a + ld [wUpdateSpritesEnabled], a + ld [hItemCounter], a + call Func_e8f24 + ld a, [rIE] + push af + xor a + ld [rIF], a + ld a, $09 + ld [rIE], a + call SaveScreenTilesToBuffer1 + xor a + ld [H_AUTOBGTRANSFERENABLED], a + call Func_e988a + call Func_e8783 + ld a, $10 + ld [$cae2], a + call Func_e8efc + call LoadScreenTilesFromBuffer1 + call Func_e8dfb + jr c, .asm_e8ddc + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + ld c, 12 + call DelayFrames + xor a + ld [H_AUTOBGTRANSFERENABLED], a + call Func_e98ec + call Func_e8783 + ld a, $00 + ld [$cae2], a + call Func_e8efc + call LoadScreenTilesFromBuffer1 + call Func_e8dfb + jr c, .asm_e8ddc + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + ld c, 12 + call DelayFrames + xor a + ld [H_AUTOBGTRANSFERENABLED], a + call Func_e9907 + call Func_e8783 + ld a, $00 + ld [$cae2], a + call Func_e8efc + call LoadScreenTilesFromBuffer1 + call Func_e8dfb + jr c, .asm_e8ddc + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + ld c, 12 + call DelayFrames + xor a + ld [H_AUTOBGTRANSFERENABLED], a + call Func_e9922 + call Func_e8783 + ld a, $03 + ld [$cae2], a + call Func_e8efc + call LoadScreenTilesFromBuffer1 + call Func_e8dfb +.asm_e8ddc + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + xor a + ld [rIF], a + pop af + ld [rIE], a + call Func_0f3d + call Func_e8f3b + pop af + ld [wUpdateSpritesEnabled], a + ret + +Func_e8df4: ; e8df4 + ld hl, String_e8e1f + call PrintText + ret + +Func_e8dfb: ; e8dfb + call Func_e8f16 +.asm_e8dfe + call JoypadLowSensitivity + call Func_e8eca + jr c, .asm_e8e1d + ld a, [wOverworldMap] + bit 7, a + jr nz, .asm_e8e1b + call Func_e87a8 + call Func_e8f51 + call Func_e8f82 + call DelayFrame + jr .asm_e8dfe + +.asm_e8e1b + and a + ret + +.asm_e8e1d + scf + ret + +String_e8e1f: ; e8e1f + TX_FAR _NoPokemonText + db "@" + +Func_e8e24: ; e8e24 + xor a + ld [hItemCounter], a + call Func_e8f24 + call Func_ea3ea + ld a, [rIE] + push af + xor a + ld [rIF], a + ld a, $09 + ld [rIE], a + call Func_e8783 + ld a, $13 + ld [$cae2], a + call Func_e8efc + call Func_e8f16 +.asm_e8e45 + call JoypadLowSensitivity + call Func_e8eca + jr c, .asm_e8e62 + ld a, [wOverworldMap] + bit 7, a + jr nz, .asm_e8e62 + call Func_e87a8 + call Func_e8f51 + call Func_e8f82 + call DelayFrame + jr .asm_e8e45 + +.asm_e8e62 + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + call Func_e8f09 + xor a + ld [rIF], a + pop af + ld [rIE], a + call Func_0f3d + call Func_e8f3b + ret + +Func_e8e79: ; e8e79 (3a:4e79) + push af + push bc + push de + push hl + call StopAllMusic + ld a, [rIE] + push af + xor a + ld [rIF], a + ld a, $09 + ld [rIE], a + call Func_e8783 + ld a, $13 + ld [$cae2], a + ld a, $1 + ld [H_AUTOBGTRANSFERENABLED], a + call Func_e8efc + call Func_ea573 +.asm_e8e9c + ld a, [wOverworldMap] + bit 7, a + jr nz, .asm_e8eae + call Func_ea5d1 + call Func_ea5b7 + call DelayFrame + jr .asm_e8e9c + +.asm_e8eae + xor a + ld [wUnknownSerialFlag_d49a], a + ld [wUnknownSerialFlag_d49b], a + ld hl, wOAMBuffer + 32 * 4 + ld bc, $0020 + xor a + call FillMemory + xor a + ld [rIF], a + pop af + ld [rIE], a + pop hl + pop de + pop bc + pop af + ret + +Func_e8eca: ; e8eca (3a:4eca) + ld a, [hJoyHeld] + and B_BUTTON + jr nz, .asm_e8ed2 + and a + ret + +.asm_e8ed2 + ld a, [wOverworldMap] + cp $0c + jr nz, .asm_e8ef6 +.asm_e8ed9 + ld a, [wUnknownSerialFlag_d49b] + and a + jr nz, .asm_e8ed9 + ld a, $16 + ld [wUnknownSerialFlag_d49b], a + ld a, $88 + ld [rSB], a + ld a, $01 + ld [rSC], a + ld a, $81 + ld [rSC], a +.asm_e8ef0 + ld a, [wUnknownSerialFlag_d49b] + and a + jr nz, .asm_e8ef0 +.asm_e8ef6 + ld a, $01 + ld [hItemCounter], a + scf + ret + +Func_e8efc: ; e8efc (3a:4efc) + dr $e8efc,$e8f09 +Func_e8f09: ; e8f09 (3a:4f09) + dr $e8f09,$e8f16 +Func_e8f16: ; e8f16 (3a:4f16) + dr $e8f16,$e8f24 +Func_e8f24: ; e8f24 (3a:4f24) + dr $e8f24,$e8f3b +Func_e8f3b: ; e8f3b (3a:4f3b) + dr $e8f3b,$e8f51 +Func_e8f51: ; e8f51 (3a:4f51) + dr $e8f51,$e8f82 +Func_e8f82: ; e8f82 (3a:4f82) + dr $e8f82,$e910a +Func_e910a: + dr $e910a,$e925d + +Func_e925d: +.asm_e925d + push bc + push hl +.asm_e925f + ld a, [de] + inc de + ld [hli], a + dec c + jr nz, .asm_e925f + pop hl + ld bc, SCREEN_WIDTH + add hl, bc + pop bc + dec b + jr nz, .asm_e925d + ret + +Func_e926f: + ld de, wd496 + coord hl, 7, 6 + ld a, [de] + call Func_e927a + ld a, [de] +Func_e927a: + ld c, a + swap a + and $f + add -10 + ld [hli], a + ld a, c + and $f + add -10 + ld [hli], a + dec de + ret + +SurfingPikachu2Graphics: INCBIN "gfx/surfing_pikachu_2.2bpp" + +Func_e988a: + xor a + ld [wBoxNumString], a + call ClearScreen + call Func_e99de + coord hl, 0, 0 + ld bc, 11 * SCREEN_WIDTH + ld a, " " + call FillMemory + call Func_e99b9 + call Func_e99a7 + coord hl, 4, 4 + ld de, String_e98db + call PlaceString + coord hl, 7, 6 + ld de, String_e98e8 + call PlaceString + coord hl, 11, 6 + ld a, [wCurrentBoxNum] + and $7f + cp 9 + jr c, .asm_e98cc + sub 9 + ld [hl], "1" + inc hl + add "0" + jr .asm_e98ce + +.asm_e98cc + add "1" +.asm_e98ce + ld [hl], a + coord hl, 4, 9 + ld de, wBoxSpecies + ld c, $03 + call Func_e994e + ret + + +String_e98db: db "POKéMON LIST@" +String_e98e8: db "BOX@" + +Func_e98ec: + call ClearScreen + call Func_e99de + call Func_e99b9 + ld a, [wBoxDataStart] + cp 4 + ret c + coord hl, 4, 0 + ld de, wBoxSpecies + 3 + ld c, 6 + call Func_e994e + ret + +Func_e9907: + call ClearScreen + call Func_e99de + call Func_e99b9 + ld a, [wBoxDataStart] + cp 10 + ret c + coord hl, 4, 0 + ld de, wBoxSpecies + 9 + ld c, 6 + call Func_e994e + ret + +Func_e9922: + call ClearScreen + call Func_e99de + call Func_e99b9 + coord hl, 0, 15 + call Func_e99cf + coord hl, 0, 16 + ld bc, 2 * SCREEN_WIDTH + ld a, " " + call FillMemory + ld a, [wBoxDataStart] + cp 16 + ret c + coord hl, 4, 0 + ld de, wBoxSpecies + 15 + ld c, 5 + call Func_e994e + ret + +Func_e994e: +.asm_e994e + ld a, c + and a + jr z, .asm_e99a6 + dec c + ld a, [de] + cp $ff + jr z, .asm_e99a6 + ld [$d11d], a + push bc + push hl + push de + push hl + ld bc, 12 + ld a, " " + call FillMemory + pop hl + push hl + ld de, SCREEN_WIDTH + add hl, de + ld bc, 12 + ld a, " " + call FillMemory + pop hl + push hl + call GetMonName + pop hl + call PlaceString + push hl + ld hl, wBoxMonNicks + ld bc, NAME_LENGTH + ld a, [wBoxNumString] + call AddNTimes + ld e, l + ld d, h + pop hl + ld bc, SCREEN_WIDTH + 1 + add hl, bc + ld [hl], " " + inc hl + call PlaceString + ld hl, wBoxNumString + inc [hl] + pop de + pop hl + ld bc, 3 * SCREEN_WIDTH + add hl, bc + pop bc + inc de + jr .asm_e994e + +.asm_e99a6 + ret + +Func_e99a7: + coord hl, 0, 0 + ld a, $79 + ld [hli], a + ld a, $7a + ld c, SCREEN_WIDTH - 2 +.asm_e99b1 + ld [hli], a + dec c + jr nz, .asm_e99b1 + ld a, $7b + ld [hl], a + ret + +Func_e99b9: + coord hl, 0, 0 + ld de, SCREEN_WIDTH - 1 + ld c, SCREEN_HEIGHT +.asm_e99c1 + ld a, $7c + ld [hl], a + add hl, de + ld a, $7c + ld [hli], a + dec c + jr nz, .asm_e99c1 + ret + +Func_e99cc: + coord hl, 0, 17 +Func_e99cf: + ld a, $7d + ld [hli], a + ld a, $7a + ld c, SCREEN_WIDTH - 2 +.asm_e99b1 + ld [hli], a + dec c + jr nz, .asm_e99b1 + ld a, $7e + ld [hl], a + ret + +Func_e99de: + coord hl, 4, 0 + ld c, 6 + call Func_e99eb + coord hl, 6, 1 + ld c, 6 +Func_e99eb: +.asm_e99eb + push bc + push hl + ld de, String_e99fd + call PlaceString + pop hl + ld bc, 3 * SCREEN_WIDTH + add hl, bc + pop bc + dec c + jr nz, .asm_e99eb + ret + +String_e99fd: + db "----------@" |