shithub: pokecrystal

Download patch

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