summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xconstants/hide_show_constants.asm3
-rw-r--r--engine/bank3c.asm14
-rw-r--r--engine/printer.asm59
-rwxr-xr-xengine/printer/serial.asm98
-rwxr-xr-xengine/surfing_minigame.asm2
-rw-r--r--home/overworld.asm11
-rwxr-xr-xwram.asm6
7 files changed, 111 insertions, 82 deletions
diff --git a/constants/hide_show_constants.asm b/constants/hide_show_constants.asm
index 10cffac8..fb4116d7 100755
--- a/constants/hide_show_constants.asm
+++ b/constants/hide_show_constants.asm
@@ -240,3 +240,6 @@
const HS_SEAFOAM_ISLANDS_5_BOULDER_1 ; E9
const HS_SEAFOAM_ISLANDS_5_BOULDER_2 ; EA
const HS_ARTICUNO ; EB
+ const HS_DAISY_SITTING_COPY ; EC
+ const HS_DAISY_WALKING_COPY ; ED
+ const HS_TOWN_MAP_COPY ; EE
diff --git a/engine/bank3c.asm b/engine/bank3c.asm
index 44382257..4fa185e0 100644
--- a/engine/bank3c.asm
+++ b/engine/bank3c.asm
@@ -264,6 +264,7 @@ Func_f0a54:: ; f0a54 (3c:4a54)
ret
Func_f0a55:: ; f0a55 (3c:4a55)
+; referenced in an unused function
ld hl, Pointer_f0a76 ; 3c:4a76
.loop
ld a, [hli]
@@ -281,7 +282,7 @@ Func_f0a55:: ; f0a55 (3c:4a55)
.asm_f0a68
ld a, [hli]
ld c, a
- ld b, $0
+ ld b, 0
ld a, [hli]
ld h, [hl]
ld l, a
@@ -290,8 +291,15 @@ Func_f0a55:: ; f0a55 (3c:4a55)
ret
Pointer_f0a76:: ; f0a76 (3c:4a76)
- db $27, $07, $7b, $4a, $ff
- db $01, $ec, $02, $ed, $03, $ee, $ff
+ dbbw BLUES_HOUSE, Pointer_f0a7bEnd - Pointer_f0a7b, Pointer_f0a7b
+ db $ff
+
+Pointer_f0a7b:
+ db 1, HS_DAISY_SITTING_COPY
+ db 2, HS_DAISY_WALKING_COPY
+ db 3, HS_TOWN_MAP_COPY
+ db $ff
+Pointer_f0a7bEnd:
Func_f0a82: ; f0a82
ld a, [wd472]
diff --git a/engine/printer.asm b/engine/printer.asm
index aa5c6ced..38730aa1 100644
--- a/engine/printer.asm
+++ b/engine/printer.asm
@@ -1,3 +1,14 @@
+ const_def
+ const PRINTER_STATUS_BLANK
+ const PRINTER_STATUS_CHECKING_LINK
+ const PRINTER_STATUS_TRANSMITTING
+ const PRINTER_STATUS_PRINTING
+ const PRINTER_ERROR_1
+ const PRINTER_ERROR_2
+ const PRINTER_ERROR_3
+ const PRINTER_ERROR_4
+ const PRINTER_ERROR_WRONG_DEVICE
+
INCLUDE "engine/printer/serial.asm"
Func_e8b74: ; e8b74 (3a:4b74)
@@ -5,7 +16,7 @@ Func_e8b74: ; e8b74 (3a:4b74)
push af
xor a
ld [wUpdateSpritesEnabled], a
- ld [$ffdb], a
+ ld [hCanceledPrinting], a
call Printer_PlayPrinterMusic
ld a, [rIE]
push af
@@ -14,7 +25,7 @@ Func_e8b74: ; e8b74 (3a:4b74)
ld a, $9
ld [rIE], a
xor a
- ld [$ffba], a
+ ld [H_AUTOBGTRANSFERENABLED], a
call Func_e8c30
call Func_e8785
ld a, [wcaf9]
@@ -32,7 +43,7 @@ Func_e8b74: ; e8b74 (3a:4b74)
callab Func_401c2
callab Func_4027c
ld a, $1
- ld [$ffba], a
+ ld [H_AUTOBGTRANSFERENABLED], a
call Func_e8c0c
jr c, .asm_e8bf4
ld a, [wcaf9]
@@ -45,7 +56,7 @@ Func_e8b74: ; e8b74 (3a:4b74)
call DelayFrames
call SaveScreenTilesToBuffer1
xor a
- ld [$ffba], a
+ ld [H_AUTOBGTRANSFERENABLED], a
call Func_e8c50
ld a, $7
call Func_e8785
@@ -54,7 +65,7 @@ Func_e8b74: ; e8b74 (3a:4b74)
call Printer_CopyTileMapToPrinterTileBuffer
call LoadScreenTilesFromBuffer1
ld a, $1
- ld [$ffba], a
+ ld [H_AUTOBGTRANSFERENABLED], a
call Func_e8c0c
.asm_e8bf4
xor a
@@ -64,7 +75,7 @@ Func_e8b74: ; e8b74 (3a:4b74)
ld [rIF], a
pop af
ld [rIE], a
- call Func_0f3d
+ call ReloadMapAfterPrinter
call Printer_PlayMapMusic
pop af
ld [wUpdateSpritesEnabled], a
@@ -76,7 +87,7 @@ Func_e8c0c:
call JoypadLowSensitivity
call Printer_CheckPressingB
jr c, .asm_e8c2e
- ld a, [wPrinterReceiveJumptableIndex]
+ ld a, [wPrinterSendState]
bit 7, a
jr nz, .asm_e8c2c
call Func_e87a8
@@ -119,7 +130,7 @@ Func_e8c50:
Func_e8c5c:
xor a
- ld [$ffdb], a
+ ld [hCanceledPrinting], a
call Printer_PlayPrinterMusic
call Func_e910a
ld a, [rIE]
@@ -137,7 +148,7 @@ Func_e8c5c:
call JoypadLowSensitivity
call Printer_CheckPressingB
jr c, .asm_e8c9a
- ld a, [wPrinterReceiveJumptableIndex]
+ ld a, [wPrinterSendState]
bit 7, a
jr nz, .asm_e8c9a
call Func_e87a8
@@ -155,13 +166,13 @@ Func_e8c5c:
ld [rIF], a
pop af
ld [rIE], a
- call Func_0f3d
+ call ReloadMapAfterPrinter
call Printer_PlayMapMusic
ret
Func_e8cb1:
xor a
- ld [$ffdb], a
+ ld [hCanceledPrinting], a
call Printer_PlayPrinterMusic
call _DisplayDiploma
ld a, [rIE]
@@ -183,7 +194,7 @@ Func_e8cb1:
call DelayFrames
call SaveScreenTilesToBuffer1
xor a
- ld [$ffba], a
+ ld [H_AUTOBGTRANSFERENABLED], a
call Func_e9ad3
call Func_e8783
ld a, $3
@@ -200,7 +211,7 @@ Func_e8cb1:
ld [rIF], a
pop af
ld [rIE], a
- call Func_0f3d
+ call ReloadMapAfterPrinter
call Printer_PlayMapMusic
ret
@@ -210,7 +221,7 @@ Func_e8d11:
call JoypadLowSensitivity
call Printer_CheckPressingB
jr c, .asm_e8d33
- ld a, [wPrinterReceiveJumptableIndex]
+ ld a, [wPrinterSendState]
bit 7, a
jr nz, .asm_e8d31
call Func_e87a8
@@ -308,7 +319,7 @@ Func_e8d35:: ; e8d35 (3a:4e79)
ld [rIF], a
pop af
ld [rIE], a
- call Func_0f3d
+ call ReloadMapAfterPrinter
call Printer_PlayMapMusic
pop af
ld [wUpdateSpritesEnabled], a
@@ -325,7 +336,7 @@ Func_e8dfb: ; e8dfb
call JoypadLowSensitivity
call Printer_CheckPressingB
jr c, .asm_e8e1d
- ld a, [wPrinterReceiveJumptableIndex]
+ ld a, [wPrinterSendState]
bit 7, a
jr nz, .asm_e8e1b
call Func_e87a8
@@ -366,7 +377,7 @@ Func_e8e24: ; e8e24
call JoypadLowSensitivity
call Printer_CheckPressingB
jr c, .asm_e8e62
- ld a, [wPrinterReceiveJumptableIndex]
+ ld a, [wPrinterSendState]
bit 7, a
jr nz, .asm_e8e62
call Func_e87a8
@@ -384,7 +395,7 @@ Func_e8e24: ; e8e24
ld [rIF], a
pop af
ld [rIE], a
- call Func_0f3d
+ call ReloadMapAfterPrinter
call Printer_PlayMapMusic
ret
@@ -408,7 +419,7 @@ Func_e8e79: ; e8e79 (3a:4e79)
call Printer_CopyTileMapToPrinterTileBuffer
call Func_ea573
.asm_e8e9c
- ld a, [wPrinterReceiveJumptableIndex]
+ ld a, [wPrinterSendState]
bit 7, a
jr nz, .asm_e8eae
call Func_ea5d1
@@ -442,7 +453,7 @@ Printer_CheckPressingB: ; e8eca (3a:4eca)
ret
.quit
- ld a, [wPrinterReceiveJumptableIndex]
+ ld a, [wPrinterSendState]
cp $c
jr nz, .already_done
.wait_current_task
@@ -536,19 +547,19 @@ GBPrinter_CheckForErrors: ; e8f51 (3a:4f51)
bit 6, a
jr nz, .error4
; error 3
- ld a, 6
+ ld a, PRINTER_ERROR_3
jr .load_status
.error4
- ld a, 7
+ ld a, PRINTER_ERROR_4
jr .load_status
.error1
- ld a, 4
+ ld a, PRINTER_ERROR_1
jr .load_status
.error2
- ld a, 5
+ ld a, PRINTER_ERROR_2
.load_status
ld [wPrinterStatusIndicator], a
ret
diff --git a/engine/printer/serial.asm b/engine/printer/serial.asm
index 0c9a70ed..568a00f8 100755
--- a/engine/printer/serial.asm
+++ b/engine/printer/serial.asm
@@ -20,7 +20,7 @@ Func_e8785:
; e87a8
Func_e87a8: ; e87a8 (3a:47a8)
- ld a, [wPrinterReceiveJumptableIndex]
+ ld a, [wPrinterSendState]
ld e, a
ld d, 0
ld hl, .Jumptable
@@ -54,19 +54,19 @@ Func_e87a8: ; e87a8 (3a:47a8)
dw Func_e8939 ; 14
Printer_Next:
- ld hl, wPrinterReceiveJumptableIndex
+ ld hl, wPrinterSendState
inc [hl]
ret
Printer_Back:
- ld hl, wPrinterReceiveJumptableIndex
+ ld hl, wPrinterSendState
dec [hl]
ret
Printer_Quit:
xor a
ld [wc971], a
- ld hl, wPrinterReceiveJumptableIndex
+ ld hl, wPrinterSendState
set 7, [hl]
ret
@@ -76,60 +76,60 @@ Printer_Next_:
Printer_LoopBack:
ld a, $1
- ld [wPrinterReceiveJumptableIndex], a
+ ld [wPrinterSendState], a
ret
Printer_InitSerial:
- call Func_e8981
+ call ResetPrinterData
ld hl, PrinterDataPacket1
- call Func_e8968
+ call CopyPrinterDataHeader
xor a
ld [wPrinterDataSize], a
ld [wPrinterDataSize + 1], a
ld a, [wcaf4]
ld [wc6e9], a
call Printer_Next
- call Func_e8949
- ld a, $1
+ call Printer_PrepareToSend
+ ld a, PRINTER_STATUS_CHECKING_LINK
ld [wPrinterStatusIndicator], a
ret
Func_e881f:
- call Func_e8981
+ call ResetPrinterData
ld hl, wc6e9
ld a, [hl]
and a
jr z, Func_e884b
ld hl, PrinterDataPacket3
- call Func_e8968
+ call CopyPrinterDataHeader
call Func_e89e6
- ld a, $80
+ ld a, (wPrinterSendDataSourceEnd - wPrinterSendDataSource) % $100
ld [wPrinterDataSize], a
- ld a, $2
+ ld a, (wPrinterSendDataSourceEnd - wPrinterSendDataSource) / $100
ld [wPrinterDataSize + 1], a
call ComputePrinterChecksum
call Printer_Next
- call Func_e8949
- ld a, $2
+ call Printer_PrepareToSend
+ ld a, PRINTER_STATUS_TRANSMITTING
ld [wPrinterStatusIndicator], a
ret
Func_e884b:
ld a, $6
- ld [wPrinterReceiveJumptableIndex], a
+ ld [wPrinterSendState], a
ld hl, PrinterDataPacket4
- call Func_e8968
+ call CopyPrinterDataHeader
xor a
ld [wPrinterDataSize], a
ld [wPrinterDataSize + 1], a
call Printer_Next
- call Func_e8949
+ call Printer_PrepareToSend
ret
Func_e8864:
- call Func_e8981
+ call ResetPrinterData
ld hl, PrinterDataPacket2
- call Func_e8968
+ call CopyPrinterDataHeader
call Func_e89cf
ld a, $4
ld [wPrinterDataSize], a
@@ -137,22 +137,22 @@ Func_e8864:
ld [wPrinterDataSize + 1], a
call ComputePrinterChecksum
call Printer_Next
- call Func_e8949
- ld a, $3
+ call Printer_PrepareToSend
+ ld a, PRINTER_STATUS_PRINTING
ld [wPrinterStatusIndicator], a
ret
Func_e8889:
- call Func_e8981
+ call ResetPrinterData
ld hl, PrinterDataPacket1
- call Func_e8968
+ call CopyPrinterDataHeader
xor a
ld [wPrinterDataSize], a
ld [wPrinterDataSize + 1], a
ld a, [wcaf4]
ld [wc6e9], a
call Printer_Next
- call Func_e8949
+ call Printer_PrepareToSend
ret
Func_e88a6:
@@ -209,7 +209,7 @@ Func_e88c9:
ld [wc970], a
ld [wc971], a
ld a, $e
- ld [wPrinterReceiveJumptableIndex], a
+ ld [wPrinterSendState], a
ret
Func_e8906:
@@ -231,7 +231,7 @@ Func_e8906:
.asm_e8921
ld a, $12
- ld [wPrinterReceiveJumptableIndex], a
+ ld [wPrinterSendState], a
ret
Func_e8927:
@@ -254,10 +254,10 @@ Func_e8939:
and a, $f0
ret nz
xor a
- ld [wPrinterReceiveJumptableIndex], a
+ ld [wPrinterSendState], a
ret
-Func_e8949:
+Printer_PrepareToSend:
.wait_printer_operation
ld a, [wPrinterOpcode]
and a
@@ -275,7 +275,7 @@ Func_e8949:
ld [rSC], a
ret
-Func_e8968:
+CopyPrinterDataHeader:
ld a, [hli]
ld [wPrinterDataHeader], a
ld a, [hli]
@@ -290,7 +290,7 @@ Func_e8968:
ld [wPrinterChecksum + 1], a
ret
-Func_e8981:
+ResetPrinterData:
xor a
ld hl, wPrinterDataHeader
ld [hli], a
@@ -303,8 +303,8 @@ Func_e8981:
xor a
ld [wPrinterDataSize], a
ld [wPrinterDataSize + 1], a
- ld hl, wPrinterSerialReceived
- ld bc, $280
+ ld hl, wPrinterSendDataSource
+ ld bc, wPrinterSendDataSourceEnd - wPrinterSendDataSource
call Printer_FillMemory
ret
@@ -317,7 +317,7 @@ ComputePrinterChecksum:
ld c, a
ld a, [wPrinterDataSize + 1]
ld b, a
- ld de, wPrinterSerialReceived
+ ld de, wPrinterSendDataSource
call .AddToChecksum
ld a, l
ld [wPrinterChecksum], a
@@ -357,20 +357,20 @@ Func_e89e6:
ld a, [wcaf4]
sub b
ld hl, wPrinterTileBuffer
- ld de, $28
-.asm_e89f4
+ ld de, 2 * SCREEN_WIDTH
+.get_row
and a
- jr z, .asm_e89fb
+ jr z, .got_row
add hl, de
dec a
- jr .asm_e89f4
+ jr .get_row
-.asm_e89fb
+.got_row
ld e, l
ld d, h
- ld hl, wPrinterSerialReceived
- ld c, $28
-.asm_e8a02
+ ld hl, wPrinterSendDataSource
+ ld c, 2 * SCREEN_WIDTH
+.loop
ld a, [de]
inc de
push bc
@@ -385,15 +385,15 @@ Func_e89e6:
ld d, a
and a, $8
ld a, d
- jr nz, .asm_e8a1a
+ jr nz, .vchars1
or a, $90
- jr .asm_e8a1c
+ jr .got_addr
-.asm_e8a1a
+.vchars1
or a, $80
-.asm_e8a1c
+.got_addr
ld d, a
- ld bc, $3a01
+ lb bc, BANK(Func_e89e6), 1
call CopyVideoData
pop hl
ld de, $10
@@ -401,7 +401,7 @@ Func_e89e6:
pop de
pop bc
dec c
- jr nz, .asm_e8a02
+ jr nz, .loop
ret
Printer_FillMemory: ; e8a2e (3a:4a2e)
@@ -540,7 +540,7 @@ PrinterSerial_: ; e8a5e (3a:4a5e)
ld e, a
ld a, [wc975]
ld d, a
- ld hl, wPrinterSerialReceived
+ ld hl, wPrinterSendDataSource
add hl, de
inc de
ld a, e
diff --git a/engine/surfing_minigame.asm b/engine/surfing_minigame.asm
index d7c7816e..6a37eb10 100755
--- a/engine/surfing_minigame.asm
+++ b/engine/surfing_minigame.asm
@@ -50,7 +50,7 @@ SurfingPikachuMinigame:
xor a
ld [rSTAT], a
call RunDefaultPaletteCommand
- call Func_0f16
+ call ReloadMapAfterSurfingMinigame
call PlayDefaultMusic
call GBPalNormal
pop af
diff --git a/home/overworld.asm b/home/overworld.asm
index 1368dc9d..18829022 100644
--- a/home/overworld.asm
+++ b/home/overworld.asm
@@ -1811,9 +1811,11 @@ LoadPlayerSpriteGraphicsCommon:: ; 0d8f (0:0d8f)
; function to load data from the map header
LoadMapHeader:: ; 0dab (0:0dab)
callba MarkTownVisitedAndLoadMissableObjects
- jr .asm_0dbd
+ jr asm_0dbd
+
+Func_0db5:: ; XXX
callba Func_f0a55 ; 3c:4a55
-.asm_0dbd
+asm_0dbd
ld a, [wCurMapTileset]
ld [wUnusedD119], a
ld a, [wCurMap]
@@ -2005,7 +2007,7 @@ LoadScreenRelatedData:: ; 0f0c (0:0f0c)
call LoadCurrentMapView
ret
-Func_0f16:: ; 0f16 (0:0f16)
+ReloadMapAfterSurfingMinigame:: ; 0f16 (0:0f16)
ld a, [H_LOADEDROMBANK]
push af
call DisableLCD
@@ -2021,7 +2023,8 @@ Func_0f16:: ; 0f16 (0:0f16)
pop af
call BankswitchCommon
jr asm_0f4d
-Func_0f3d:: ; 0f3d (0:0f3d)
+
+ReloadMapAfterPrinter:: ; 0f3d (0:0f3d)
ld a, [H_LOADEDROMBANK]
push af
ld a, [wCurMap]
diff --git a/wram.asm b/wram.asm
index d967a8e8..c5b443f3 100755
--- a/wram.asm
+++ b/wram.asm
@@ -424,7 +424,7 @@ wTempPic:: ; c6e8
wPrinterData:: ; c6e8
wOverworldMap:: ; c6e8
; ds 1300
-wPrinterReceiveJumptableIndex:: ; c6e8
+wPrinterSendState:: ; c6e8
ds 1
wc6e9:: ; c6e9
ds 1
@@ -442,6 +442,9 @@ wc6ed:: ; c6ed
wPrinterChecksum:: ; c6ee
dw
+wPrinterSendDataSource:: ; c6f0
+; a 40-tile buffer
+; ds $280
wPrinterSerialReceived:: ; c6f0
ds 1
wPrinterStatusReceived:: ; c6f1
@@ -467,6 +470,7 @@ wc810:: ; c810
; c900
ds $70
+wPrinterSendDataSourceEnd:: ; c970
wc970:: ; c970
ds 1