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 ..."