diff options
Diffstat (limited to 'engine/printer.asm')
-rwxr-xr-x | engine/printer.asm | 254 |
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 |