ref: 7890fae995bad840d10071c60a2abd901d8f4e1a
parent: 5248d18f58f1346b998eddbc7c6172a62fd9fe76
author: Rangi <[email protected]>
date: Sat May 11 09:01:59 EDT 2019
Some more GB Printer documentation
--- a/constants/wram_constants.asm
+++ b/constants/wram_constants.asm
@@ -54,7 +54,7 @@
const FAST_TEXT_DELAY_F ; 0
const NO_TEXT_DELAY_F ; 1
-; wGBPrinter:: ; cfd0
+; wGBPrinterBrightness:: ; cfd0
GBPRINTER_LIGHTEST EQU $00
GBPRINTER_LIGHTER EQU $20
GBPRINTER_NORMAL EQU $40
--- a/data/default_options.asm
+++ b/data/default_options.asm
@@ -7,7 +7,7 @@
db FRAME_1
; wTextboxFlags: use text speed
db 1 << FAST_TEXT_DELAY_F
-; wGBPrinter: normal brightness
+; wGBPrinterBrightness: normal
db GBPRINTER_NORMAL
; wOptions2: menu account on
db 1 << MENU_ACCOUNT
--- a/engine/menus/options_menu.asm
+++ b/engine/menus/options_menu.asm
@@ -343,7 +343,7 @@
.Save:
ld b, a
- ld [wGBPrinter], a
+ ld [wGBPrinterBrightness], a
.NonePressed:
ld b, $0
@@ -375,7 +375,7 @@
GetPrinterSetting:
; converts GBPRINTER_* value in a to OPT_PRINT_* value in c,
; with previous/next GBPRINTER_* values in d/e
- ld a, [wGBPrinter]
+ ld a, [wGBPrinterBrightness]
and a
jr z, .IsLightest
cp GBPRINTER_LIGHTER
--- a/engine/printer/printer.asm
+++ b/engine/printer/printer.asm
@@ -30,7 +30,7 @@
push af
call Printer_StartTransmission
pop af
- ld [wcbfa], a
+ ld [wPrinterMargins], a
call Printer_CopyTileMapToBuffer
ret
@@ -60,8 +60,8 @@
ldh [rIE], a
call Printer_StartTransmission
- ld a, $10
- ld [wcbfa], a
+ ln a, 1, 0
+ ld [wPrinterMargins], a
farcall PrintPage1
call ClearTileMap
ld a, %11100100
@@ -86,8 +86,8 @@
ldh [hBGMapMode], a
call Printer_StartTransmission
- ld a, $3
- ld [wcbfa], a
+ ln a, 0, 3
+ ld [wPrinterMargins], a
farcall PrintPage2
call Printer_ResetJoypadRegisters
ld a, 4
@@ -151,7 +151,7 @@
xor a
ldh [hBGMapMode], a
call PrintPCBox_Page1
- ld a, $10 ; to be loaded to wcbfa
+ ln a, 1, 0 ; to be loaded to wPrinterMargins
call Printer_PrepareTileMapForPrint
call Printer_ResetRegistersAndStartDataSend
jr c, .cancel
@@ -162,7 +162,7 @@
xor a
ldh [hBGMapMode], a
call PrintPCBox_Page2
- ld a, $0 ; to be loaded to wcbfa
+ ln a, 0, 0 ; to be loaded to wPrinterMargins
call Printer_PrepareTileMapForPrint
call Printer_ResetRegistersAndStartDataSend
jr c, .cancel
@@ -174,7 +174,7 @@
xor a
ldh [hBGMapMode], a
call PrintPCBox_Page3
- ld a, $0 ; to be loaded to wcbfa
+ ln a, 0, 0 ; to be loaded to wPrinterMargins
call Printer_PrepareTileMapForPrint
call Printer_ResetRegistersAndStartDataSend
jr c, .cancel
@@ -186,7 +186,7 @@
xor a
ldh [hBGMapMode], a
call PrintPCBox_Page4
- ld a, $3 ; to be loaded to wcbfa
+ ln a, 0, 3 ; to be loaded to wPrinterMargins
call Printer_PrepareTileMapForPrint
call Printer_ResetRegistersAndStartDataSend
.cancel
@@ -229,7 +229,7 @@
ldh [hBGMapMode], a
call LoadTileMapToTempTileMap
farcall PlaceUnownPrinterFrontpic
- ld a, $0 ; to be loaded to wcbfa
+ ln a, 0, 0 ; to be loaded to wPrinterMargins
call Printer_PrepareTileMapForPrint
call Call_LoadTempTileMapToTileMap
call Printer_ResetJoypadRegisters
@@ -290,7 +290,7 @@
xor a
ldh [hBGMapMode], a
- ld a, $13 ; to be loaded to wcbfa
+ ln a, 1, 3 ; to be loaded to wPrinterMargins
call Printer_PrepareTileMapForPrint
ld hl, hVBlank
ld a, [hl]
@@ -332,7 +332,7 @@
xor a
ldh [hBGMapMode], a
farcall PrintPartyMonPage1
- ld a, $10 ; to be loaded to wcbfa
+ ln a, 1, 0 ; to be loaded to wPrinterMargins
call Printer_PrepareTileMapForPrint
ld hl, hVBlank
@@ -353,7 +353,7 @@
xor a
ldh [hBGMapMode], a
farcall PrintPartyMonPage2
- ld a, $3 ; to be loaded to wcbfa
+ ln a, 0, 3 ; to be loaded to wPrinterMargins
call Printer_PrepareTileMapForPrint
ld a, 18 / 2
@@ -398,7 +398,7 @@
push af
ld [hl], %0100
- ld a, $10 ; to be loaded to wcbfa
+ ln a, 1, 0 ; to be loaded to wPrinterMargins
call Printer_PrepareTileMapForPrint
call Printer_ResetJoypadRegisters
@@ -416,7 +416,7 @@
farcall PrintDiplomaPage2
- ld a, $3 ; to be loaded to wcbfa
+ ln a, 0, 3 ; to be loaded to wPrinterMargins
call Printer_PrepareTileMapForPrint
call Call_LoadTempTileMapToTileMap
call Printer_ResetJoypadRegisters
@@ -820,7 +820,7 @@
ld l, a
ld a, [wAddrOfBoxToPrint + 1]
ld h, a
- ld bc, $2b
+ ld bc, 2 + MONS_PER_BOX + MON_DVS
add hl, bc
ld bc, BOXMON_STRUCT_LENGTH
ld a, [wWhichBoxMonToPrint]
--- a/engine/printer/printer_serial.asm
+++ b/engine/printer/printer_serial.asm
@@ -9,8 +9,8 @@
ld [wPrinterOpcode], a
ld hl, wPrinterConnectionOpen
set 0, [hl]
- ld a, [wGBPrinter]
- ld [wGBPrinterSettings], a
+ ld a, [wGBPrinterBrightness]
+ ld [wPrinterExposureTime], a
xor a
ld [wJumptableIndex], a
ret
@@ -353,11 +353,11 @@
Printer_StageHeaderForSend:
ld a, $1
ld [wGameboyPrinter2bppSource + 0], a
- ld a, [wcbfa]
+ ld a, [wPrinterMargins]
ld [wGameboyPrinter2bppSource + 1], a
- ld a, %11100100
+ ld a, %11100100 ; 3,2,1,0
ld [wGameboyPrinter2bppSource + 2], a
- ld a, [wGBPrinterSettings]
+ ld a, [wPrinterExposureTime]
ld [wGameboyPrinter2bppSource + 3], a
ret
--- a/wram.asm
+++ b/wram.asm
@@ -957,8 +957,9 @@
wPrinterTileMapBufferEnd::
wPrinterStatus:: db ; cbf8
ds 1
-wcbfa:: db
-wGBPrinterSettings:: db
+; High nibble is for margin before the image, low nibble is for after.
+wPrinterMargins:: db ; cbfa
+wPrinterExposureTime:: db ; cbfb
ds 16
wGameboyPrinterRAMEnd::
@@ -1583,7 +1584,7 @@
; bit 0: 1-frame text delay
; bit 4: no text delay
db
-wGBPrinter:: ; cfd0
+wGBPrinterBrightness:: ; cfd0
; bit 0-6: brightness
; lightest: $00
; lighter: $20