From e63bfa7741d503fa2710792898ac4a2b5b859acf Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Mon, 23 May 2016 14:14:17 -0400 Subject: Name some wram address refs --- engine/printer.asm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'engine/printer.asm') diff --git a/engine/printer.asm b/engine/printer.asm index 7e6ae637..bc6a07b3 100755 --- a/engine/printer.asm +++ b/engine/printer.asm @@ -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 @@ -1229,7 +1229,7 @@ Func_e994e: ld a, [de] cp $ff jr z, .asm_e99a6 - ld [$d11d], a + ld [wd11e], a push bc push hl push de -- cgit v1.3.1-sl0p From 60ff6c25e36ea52d785f58dc62ce2357d082bef4 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Tue, 24 May 2016 12:59:55 -0400 Subject: Printer error funcs --- engine/printer.asm | 139 ++++++++++++++++++++++++++++++++++++++++++++++++++--- macros.asm | 16 ++++++ wram.asm | 8 ++- 3 files changed, 154 insertions(+), 9 deletions(-) (limited to 'engine/printer.asm') diff --git a/engine/printer.asm b/engine/printer.asm index bc6a07b3..0be02308 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 @@ -1078,19 +1078,142 @@ 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 diff --git a/macros.asm b/macros.asm index 06aa34a9..b71a5dd9 100644 --- a/macros.asm +++ b/macros.asm @@ -157,25 +157,41 @@ money equs "bcd3" ;\2 = X ;\3 = Y coord: MACRO +if _NARG >= 4 + ld \1, \4 + 20 * \3 + \2 +else ld \1, wTileMap + 20 * \3 + \2 +endc ENDM ;\1 = X ;\2 = Y aCoord: MACRO +if _NARG >= 3 + ld a, [\3 + 20 * \2 + \1] +else ld a, [wTileMap + 20 * \2 + \1] +endc ENDM ;\1 = X ;\2 = Y Coorda: MACRO +if _NARG >= 3 + ld [\3 + 20 * \2 + \1], a +else ld [wTileMap + 20 * \2 + \1], a +endc ENDM ;\1 = X ;\2 = Y dwCoord: MACRO +if _NARG >= 3 + dw \3 + 20 * \2 + \1 +else dw wTileMap + 20 * \2 + \1 +endc ENDM ;\1 = r diff --git a/wram.asm b/wram.asm index b8b0aa28..252f8012 100755 --- a/wram.asm +++ b/wram.asm @@ -286,7 +286,13 @@ wSerialEnemyMonsPatchList:: ; c5d0 wTempPic:: wOverworldMap:: ; c6e8 - ds 1300 + ; ds 1300 + ds $290 + +wPrinterTileBuffer:: ; c978 + ds SCREEN_HEIGHT * SCREEN_WIDTH +wcae0:: ; cae0 + ds 284 wRedrawRowOrColumnSrcTiles:: ; cbfc ; the tiles of the row or column to be redrawn by RedrawRowOrColumn -- cgit v1.3.1-sl0p From d7b38c75c336e2998d173dbd44a5010deeb34838 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Tue, 24 May 2016 15:19:03 -0400 Subject: Finish disassembling printer functions --- engine/printer.asm | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 110 insertions(+), 1 deletion(-) (limited to 'engine/printer.asm') diff --git a/engine/printer.asm b/engine/printer.asm index 0be02308..95f70087 100755 --- a/engine/printer.asm +++ b/engine/printer.asm @@ -1215,7 +1215,115 @@ String_e90e8: 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 @@ -1255,6 +1363,7 @@ Func_e927a: ret SurfingPikachu2Graphics: INCBIN "gfx/surfing_pikachu_2.2bpp" +SurfingPikachu2GraphicsEnd: Func_e988a: xor a -- cgit v1.3.1-sl0p