pokeyellow/engine/printer.asm
2016-05-24 15:19:03 -04:00

1575 lines
21 KiB
NASM
Executable File

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, wPrinterTileBuffer
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, [wUnknownSerialFlag_d49b]
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)
coord hl, 0, 0
coord de, 0, 0, wPrinterTileBuffer
ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
call CopyData
ret
Func_e8f09: ; e8f09 (3a:4f09)
coord hl, 0, 0, wPrinterTileBuffer
coord de, 0, 0
ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
call CopyData
ret
Func_e8f16: ; e8f16 (3a:4f16)
xor a
ld [hJoyLast], a
ld [hJoyReleased], a
ld [hJoyPressed], a
ld [hJoyHeld], a
ld [hJoy5], a
ld [hJoy6], a
ret
Func_e8f24: ; e8f24 (3a:4f24)
call Func_e8f42
ld a, [wAudioROMBank]
ld [wAudioSavedROMBank], a
ld a, BANK(Music_GBPrinter)
ld [wAudioROMBank], a
ld a, MUSIC_GB_PRINTER
ld [wNewSoundID], a
call PlaySound
ret
Func_e8f3b: ; e8f3b (3a:4f3b)
call Func_e8f42
call PlayDefaultMusic
ret
Func_e8f42: ; e8f42 (3a:4f42)
ld a, $4
ld [wAudioFadeOutControl], a
call StopAllMusic
.asm_e8f4a
ld a, [wAudioFadeOutControl]
and a
jr nz, .asm_e8f4a
ret
Func_e8f51: ; e8f51 (3a:4f51)
ld a, [$c970]
cp $81
jr z, .asm_e8f62
ld a, [$c971]
cp $ff
jr z, .asm_e8f7c
xor a
jr .asm_e8f7e
.asm_e8f62
ld a, [$c971]
and $e0
ret z
bit 7, a
jr nz, .asm_e8f78
bit 6, a
jr nz, .asm_e8f74
ld a, 6
jr .asm_e8f7e
.asm_e8f74
ld a, 7
jr .asm_e8f7e
.asm_e8f78
ld a, 4
jr .asm_e8f7e
.asm_e8f7c
ld a, 5
.asm_e8f7e
ld [wcae0], a
ret
Func_e8f82: ; e8f82 (3a:4f82)
dr $e8f82,$e8fb8
String_e8fb8:
db "Press B to Cancel@"
Table_e8fca:
dw String_e8fdc
dw String_e8fdd
dw String_e8ff0
dw String_e9003
dw String_e9014
dw String_e9049
dw String_e907e
dw String_e90b3
dw String_e90e8
String_e8fdc:
db "@"
String_e8fdd:
db ""
next " CHECKING LINK...@"
String_e8ff0:
db ""
next " TRANSMITTING...@"
String_e9003:
db ""
next " PRINTING...@"
String_e9014:
db " Printer Error 1"
next ""
next "Check the Game Boy"
next "Printer Manual.@"
String_e9049:
db " Printer Error 2"
next ""
next "Check the Game Boy"
next "Printer Manual.@"
String_e907e:
db " Printer Error 3"
next ""
next "Check the Game Boy"
next "Printer Manual.@"
String_e90b3:
db " Printer Error 4"
next ""
next "Check the Game Boy"
next "Printer Manual.@"
String_e90e8:
db "This is not the"
next "Game Boy Printer!@"
Func_e910a:
call GBPalWhiteOutWithDelay3
call ClearScreen
ld de, SurfingPikachu2Graphics
ld hl, vChars2
lb bc, BANK(SurfingPikachu2Graphics), (SurfingPikachu2GraphicsEnd - SurfingPikachu2Graphics) / $10
call CopyVideoData
coord hl, 0, 0
call Func_e91a9
coord hl, 0, 17
call Func_e91a9
coord hl, 0, 0
call Func_e91b5
coord hl, 19, 0
call Func_e91b5
ld a, $04
coord hl, 0, 0
ld [hl], a
coord hl, 0, 17
ld [hl], a
coord hl, 19, 0
ld [hl], a
coord hl, 19, 17
ld [hl], a
ld de, Data_e91c4
coord hl, 10, 8
lb bc, 3, 8
call Func_e925d
ld de, Data_e91dc
coord hl, 2, 11
lb bc, 6, 16
call Func_e925d
ld de, String_e923c
coord hl, 3, 2
call PlaceString
ld de, String_e924b
coord hl, 9, 4
call PlaceString
ld de, String_e9256
coord hl, 12, 6
call PlaceString
ld de, wPlayerName
ld hl, wPlayerName
ld bc, 0
.asm_e9182
ld a, [hli]
inc c
cp "@"
jr nz, .asm_e9182
ld a, 8
sub c
jr nc, .asm_e918e
xor a
.asm_e918e
ld c, a
coord hl, 2, 4
add hl, bc
call PlaceString
call Func_e926f
ld b, 8
call RunPaletteCommand
ld a, $1
ld [H_AUTOBGTRANSFERENABLED], a
call Delay3
call GBPalNormal
ret
Func_e91a9:
ld c, SCREEN_WIDTH / 2
.asm_e91ab
ld [hl], $00
inc hl
ld [hl], $01
inc hl
dec c
jr nz, .asm_e91ab
ret
Func_e91b5:
ld c, SCREEN_HEIGHT / 2
ld de, SCREEN_WIDTH
.asm_e91ba
ld [hl], $02
add hl, de
ld [hl], $03
add hl, de
dec c
jr nz, .asm_e91ba
ret
Data_e91c4:
db $7f, $7f, $10, $11, $12, $13, $14, $15
db $0f, $3c, $3d, $3e, $20, $21, $30, $31
db $4c, $4d, $4e, $50, $34, $1a, $51, $2d
Data_e91dc:
db $7f, $7f, $7f, $7f, $7f, $7f, $16, $17, $18, $19, $7f, $1b, $1c, $1d, $1e, $1f
db $7f, $7f, $22, $23, $24, $25, $26, $27, $28, $29, $2a, $2b, $2c, $7f, $2e, $2f
db $7f, $7f, $32, $33, $33, $35, $36, $37, $38, $39, $3a, $3b, $7f, $7f, $7f, $3f
db $40, $41, $42, $43, $44, $45, $46, $47, $48, $49, $4a, $4b, $40, $40, $40, $4f
db $52, $52, $52, $53, $54, $55, $56, $57, $58, $59, $5a, $5b, $5c, $5d, $5d, $5e
db $7f, $7f, $7f, $05, $06, $07, $08, $09, $0a, $0b, $0c, $0d, $0e, $7f, $7f, $7f
String_e923c:
db "Pikachu's Beach@"
String_e924b:
db "'s Hi-Score@"
String_e9256:
db "Points@"
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"
SurfingPikachu2GraphicsEnd:
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 [wd11e], 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 "----------@"