shithub: pokered

Download patch

ref: 9c86722724dd4f31183d1a52efcf0d33f6867416
parent: 817e3af31b42221810f3b502499c638721a60e6c
author: IIMarckus <iimarckus@gmail.com>
date: Sat Apr 9 19:03:50 EDT 2011

Fade-in / fade-out functions (thx Sawakita)

hg-commit-id: fe4c5e88689d


--- a/pokered.asm
+++ b/pokered.asm
@@ -410,8 +410,107 @@
 
 	ret
 
-INCBIN "baserom.gbc",$20BA,$2442 - $20BA
+; These routines manage gradual fading
+; (e.g., entering a doorway)
+LoadGBPal: ; 20BA
+	ld a,[$d35d]		;tells if cur.map is dark
+	ld b,a			;(requires HM5_FLASH?)
+	ld hl,GBPalTable_00	;16
+	ld a,l
+	sub b
+	ld l,a
+	jr nc,.jr0\@
+	dec h
+.jr0\@
+	ld a,[hli]
+	ld [$ff47],a
+	ld a,[hli]
+	ld [$ff48],a
+	ld a,[hli]
+	ld [$ff49],a
+	ret
 
+GBFadeOut1: ; 20D1
+	ld hl,IncGradGBPalTable_01	;0d
+	ld b,$04
+	jr GBFadeOutCommon
+
+GBFadeOut2: ; 20D8
+	ld hl,IncGradGBPalTable_02	;1c
+	ld b,$03
+
+GBFadeOutCommon:
+	ld a,[hli]
+	ld [$ff47],a
+	ld a,[hli]
+	ld [$ff48],a
+	ld a,[hli]
+	ld [$ff49],a
+	ld c,8
+	call DelayFrames
+	dec b
+	jr nz,GBFadeOutCommon
+	ret
+
+GBFadeIn1: ; 20EF
+	ld hl,DecGradGBPalTable_01	;18
+	ld b,$04
+	jr GBFadeInCommon
+
+GBFadeIn2: ; 20F6
+	ld hl,DecGradGBPalTable_02	;21
+	ld b,$03
+
+GBFadeInCommon:
+	ld a,[hld]
+	ld [$ff49],a
+	ld a,[hld]
+	ld [$ff48],a
+	ld a,[hld]
+	ld [$ff47],a
+	ld c,8
+	call DelayFrames
+	dec b
+	jr nz,GBFadeInCommon
+	ret
+
+IncGradGBPalTable_01: ; 210D
+	db %11111111	;BG Pal
+	db %11111111	;OBJ Pal 1
+	db %11111111	;OBJ Pal 2
+			;and so on...
+	db %11111110
+	db %11111110
+	db %11111000
+
+	db %11111001
+	db %11100100
+	db %11100100
+GBPalTable_00:		;16
+	db %11100100
+	db %11010000
+DecGradGBPalTable_01:	;18
+	db %11100000
+	;19
+	db %11100100
+	db %11010000
+	db %11100000
+IncGradGBPalTable_02:	;1c
+	db %10010000
+	db %10000000
+	db %10010000
+
+	db %01000000
+	db %01000000
+DecGradGBPalTable_02:	;21
+	db %01000000
+
+	db %00000000
+	db %00000000
+	db %00000000
+
+INCBIN "baserom.gbc",$2125,$2442 - $2125
+
 ; XXX where is the pointer to this data?
 MartInventories: ; 2442
 	; first byte $FE, next byte # of items, last byte $FF
@@ -688,7 +787,7 @@
 	call FadeInIntroPic
 	ld hl,HelloWelcomeText
 	call PrintText      ; prints text box
-	call $20D8
+	call GBFadeOut2
 	call ClearScreen
 	ld a,NIDORINO
 	ld [$D0B5],a    ; pic displayed is stored at this location
@@ -699,7 +798,7 @@
 	call MovePicLeft
 	ld hl,WorldFilledWithText
 	call PrintText      ; Prints text box
-	call $20D8
+	call GBFadeOut2
 	call ClearScreen
 	ld de,$6EDE
 	ld bc,$0400     ; affects the position of the player pic
@@ -708,7 +807,7 @@
 	ld hl,FirstWhatIsYourNameText
 	call PrintText
 	call $695D ; brings up NewName/Red/etc menu
-	call $20D8
+	call GBFadeOut2
 	call ClearScreen
 	ld de,$6049
 	ld bc,$1300
@@ -718,12 +817,12 @@
 	call PrintText
 	call $69A4
 Function61BC:
-	call $20D8
+	call GBFadeOut2
 	call ClearScreen
 	ld de,$6EDE
 	ld bc,$0400
 	call IntroPredef3B
-	call $20F6
+	call GBFadeIn2
 	ld a,[$D72D]
 	and a
 	jr nz,.next\@
@@ -775,7 +874,7 @@
 	ld [$CFCB],a
 	ld c,$32
 	call DelayFrames
-	call $20D8
+	call GBFadeOut2
 	jp ClearScreen
 HelloWelcomeText:
 	db $17,$25,$64,$22,$50 ; "Hello welcome to the world of pokemon ..."