summaryrefslogtreecommitdiff
path: root/engine/printer.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/printer.asm')
-rwxr-xr-xengine/printer.asm254
1 files changed, 243 insertions, 11 deletions
diff --git a/engine/printer.asm b/engine/printer.asm
index 7e6ae637..95f70087 100755
--- a/engine/printer.asm
+++ b/engine/printer.asm
@@ -356,7 +356,7 @@ Func_e89e6:
ld b, a
ld a, [$caf4]
sub b
- ld hl, $c978
+ ld hl, wPrinterTileBuffer
ld de, $0028
.asm_e89f4
and a
@@ -432,7 +432,7 @@ Data_e8a58:
db $0f, $00, $00, $00, $0f, $00
Func_e8a5e: ; e8a5e (3a:4a5e)
- ld a, [$d49a]
+ ld a, [wUnknownSerialFlag_d49b]
ld e, a
ld d, 0
ld hl, Jumptable_e8a6d
@@ -1078,21 +1078,252 @@ Func_e8eca: ; e8eca (3a:4eca)
ret
Func_e8efc: ; e8efc (3a:4efc)
- dr $e8efc,$e8f09
+ coord hl, 0, 0
+ coord de, 0, 0, wPrinterTileBuffer
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+ call CopyData
+ ret
+
Func_e8f09: ; e8f09 (3a:4f09)
- dr $e8f09,$e8f16
+ coord hl, 0, 0, wPrinterTileBuffer
+ coord de, 0, 0
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+ call CopyData
+ ret
+
Func_e8f16: ; e8f16 (3a:4f16)
- dr $e8f16,$e8f24
+ 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)
- dr $e8f24,$e8f3b
+ 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)
- dr $e8f3b,$e8f51
+ 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)
- dr $e8f51,$e8f82
+ 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,$e910a
+ 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:
- dr $e910a,$e925d
+ 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
@@ -1132,6 +1363,7 @@ Func_e927a:
ret
SurfingPikachu2Graphics: INCBIN "gfx/surfing_pikachu_2.2bpp"
+SurfingPikachu2GraphicsEnd:
Func_e988a:
xor a
@@ -1229,7 +1461,7 @@ Func_e994e:
ld a, [de]
cp $ff
jr z, .asm_e99a6
- ld [$d11d], a
+ ld [wd11e], a
push bc
push hl
push de