summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorentrpntr <entrpntr@gmail.com>2020-06-10 18:59:52 -0400
committerentrpntr <entrpntr@gmail.com>2020-06-10 18:59:52 -0400
commit80b52ec275bd7f82ddc8c94c5728be59392810ca (patch)
tree82b81a8deecb926bb4ab8f79215d9b89e1042b59
parent11f01dbcd8013d24750d10874d12bc0c534ac7e9 (diff)
Finish adding/improving labels for now.
-rw-r--r--constants/sprite_anim_constants.asm20
-rw-r--r--data/sprite_anims/framesets.asm12
-rw-r--r--data/sprite_anims/oam.asm14
-rw-r--r--data/sprite_anims/sequences.asm2
-rw-r--r--engine/gfx/load_pics.asm2
-rw-r--r--engine/gfx/sprite_anims.asm6
-rw-r--r--engine/movie/gs_intro.asm288
7 files changed, 188 insertions, 156 deletions
diff --git a/constants/sprite_anim_constants.asm b/constants/sprite_anim_constants.asm
index 3181da67..2ca59e0f 100644
--- a/constants/sprite_anim_constants.asm
+++ b/constants/sprite_anim_constants.asm
@@ -25,8 +25,8 @@ NUM_SPRITE_ANIM_STRUCTS EQU 10 ; see wSpriteAnimationStructs
const SPRITE_ANIM_INDEX_GS_INTRO_BUBBLE ; 01
const SPRITE_ANIM_INDEX_GS_INTRO_SHELLDER ; 02
const SPRITE_ANIM_INDEX_GS_INTRO_MAGIKARP ; 03
- const SPRITE_ANIM_INDEX_GS_INTRO_LAPRAS ; 04
- const SPRITE_ANIM_INDEX_GS_INTRO_LAPRAS_2 ; 05
+ const SPRITE_ANIM_INDEX_UNUSED_LAPRAS ; 04
+ const SPRITE_ANIM_INDEX_GS_INTRO_LAPRAS ; 05
const SPRITE_ANIM_INDEX_GS_INTRO_NOTE ; 06
const SPRITE_ANIM_INDEX_GS_INTRO_INVISIBLE_NOTE ; 07
const SPRITE_ANIM_INDEX_GS_INTRO_JIGGLYPUFF ; 08
@@ -78,8 +78,8 @@ NUM_SPRITE_ANIM_STRUCTS EQU 10 ; see wSpriteAnimationStructs
const SPRITE_ANIM_SEQ_GS_INTRO_BUBBLE ; 04
const SPRITE_ANIM_SEQ_GS_INTRO_SHELLDER ; 05
const SPRITE_ANIM_SEQ_GS_INTRO_MAGIKARP ; 06
- const SPRITE_ANIM_SEQ_GS_INTRO_LAPRAS ; 07
- const SPRITE_ANIM_SEQ_GS_INTRO_LAPRAS_2 ; 08
+ const SPRITE_ANIM_SEQ_UNUSED_LAPRAS ; 07
+ const SPRITE_ANIM_SEQ_GS_INTRO_LAPRAS ; 08
const SPRITE_ANIM_SEQ_GS_INTRO_NOTE ; 09
const SPRITE_ANIM_SEQ_GS_INTRO_JIGGLYPUFF ; 0a
const SPRITE_ANIM_SEQ_GS_INTRO_PIKACHU ; 0b
@@ -123,8 +123,8 @@ NUM_SPRITE_ANIM_STRUCTS EQU 10 ; see wSpriteAnimationStructs
const SPRITE_ANIM_FRAMESET_GS_INTRO_BUBBLE ; 04
const SPRITE_ANIM_FRAMESET_GS_INTRO_SHELLDER ; 05
const SPRITE_ANIM_FRAMESET_GS_INTRO_MAGIKARP ; 06
- const SPRITE_ANIM_FRAMESET_GS_INTRO_LAPRAS ; 07
- const SPRITE_ANIM_FRAMESET_GS_INTRO_LAPRAS_2 ; 08
+ const SPRITE_ANIM_FRAMESET_UNUSED_LAPRAS ; 07
+ const SPRITE_ANIM_FRAMESET_GS_INTRO_LAPRAS ; 08
const SPRITE_ANIM_FRAMESET_GS_INTRO_NOTE ; 09
const SPRITE_ANIM_FRAMESET_GS_INTRO_INVISIBLE_NOTE ; 0a
const SPRITE_ANIM_FRAMESET_GS_INTRO_JIGGLYPUFF ; 0b
@@ -183,10 +183,10 @@ NUM_SPRITE_ANIM_STRUCTS EQU 10 ; see wSpriteAnimationStructs
const SPRITE_ANIM_OAMSET_GS_INTRO_SHELLDER_2 ; 05
const SPRITE_ANIM_OAMSET_GS_INTRO_MAGIKARP_1 ; 06
const SPRITE_ANIM_OAMSET_GS_INTRO_MAGIKARP_2 ; 07
- const SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_1 ; 08
- const SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_2 ; 09
- const SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_3 ; 0a
- const SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_4 ; 0b
+ const SPRITE_ANIM_OAMSET_UNUSED_LAPRAS ; 08
+ const SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_1 ; 09
+ const SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_2 ; 0a
+ const SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_3 ; 0b
const SPRITE_ANIM_OAMSET_GS_INTRO_NOTE ; 0c
const SPRITE_ANIM_OAMSET_GS_INTRO_INVISIBLE_NOTE ; 0d
const SPRITE_ANIM_OAMSET_GS_INTRO_JIGGLYPUFF_1 ; 0e
diff --git a/data/sprite_anims/framesets.asm b/data/sprite_anims/framesets.asm
index 0f05fdda..78969b87 100644
--- a/data/sprite_anims/framesets.asm
+++ b/data/sprite_anims/framesets.asm
@@ -7,8 +7,8 @@ SpriteAnimFrameData:
dw .Frameset_GSIntroBubble
dw .Frameset_GSIntroShellder
dw .Frameset_GSIntroMagikarp
+ dw .Frameset_UnusedLapras
dw .Frameset_GSIntroLapras
- dw .Frameset_GSIntroLapras2
dw .Frameset_GSIntroNote
dw .Frameset_GSIntroInvisibleNote
dw .Frameset_GSIntroJigglypuff
@@ -98,15 +98,15 @@ SpriteAnimFrameData:
frame SPRITE_ANIM_OAMSET_GS_INTRO_MAGIKARP_2, $41
dorestart
-.Frameset_GSIntroLapras:
- frame SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_1, $47
+.Frameset_UnusedLapras:
+ frame SPRITE_ANIM_OAMSET_UNUSED_LAPRAS, $47
endanim
-.Frameset_GSIntroLapras2:
+.Frameset_GSIntroLapras:
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_1, 7
frame SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_2, 7
frame SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_3, 7
- frame SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_4, 7
- frame SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_2, 7
+ frame SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_1, 7
dorestart
.Frameset_GSIntroNote:
diff --git a/data/sprite_anims/oam.asm b/data/sprite_anims/oam.asm
index dde96fca..91175fb0 100644
--- a/data/sprite_anims/oam.asm
+++ b/data/sprite_anims/oam.asm
@@ -9,10 +9,10 @@ SpriteAnimOAMData:
dbw $6e, .OAMData_GSIntroShellder ; SPRITE_ANIM_OAMSET_GS_INTRO_SHELLDER_2
dbw $2d, .OAMData_GSIntroMagikarp ; SPRITE_ANIM_OAMSET_GS_INTRO_MAGIKARP_1
dbw $4d, .OAMData_GSIntroMagikarp ; SPRITE_ANIM_OAMSET_GS_INTRO_MAGIKARP_2
- dbw $60, .OAMData_GSIntroLapras1 ; SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_1
+ dbw $60, .OAMData_UnusedLapras ; SPRITE_ANIM_OAMSET_UNUSED_LAPRAS
+ dbw $00, .OAMData_GSIntroLapras1 ; SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_1
dbw $00, .OAMData_GSIntroLapras2 ; SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_2
- dbw $00, .OAMData_GSIntroLapras3 ; SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_3
- dbw $06, .OAMData_GSIntroLapras4 ; SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_4
+ dbw $06, .OAMData_GSIntroLapras3 ; SPRITE_ANIM_OAMSET_GS_INTRO_LAPRAS_3
dbw $0c, .OAMData_GSIntroNote ; SPRITE_ANIM_OAMSET_GS_INTRO_NOTE
dbw $0d, .OAMData_1x1_Palette0 ; SPRITE_ANIM_OAMSET_GS_INTRO_INVISIBLE_NOTE
dbw $00, .OAMData_GSIntroJigglypuffPikachu ; SPRITE_ANIM_OAMSET_GS_INTRO_JIGGLYPUFF_1
@@ -355,7 +355,7 @@ ENDC
dbsprite -1, 0, 4, 0, $11, 1
dbsprite 0, 0, 4, 0, $12, 1
-.OAMData_GSIntroLapras1:
+.OAMData_UnusedLapras:
db 10
dbsprite -2, -2, 0, 4, $00, 0
dbsprite -1, -2, 0, 4, $01, 0
@@ -368,7 +368,7 @@ ENDC
dbsprite -1, 0, 0, 4, $09, 0
dbsprite 0, 0, 0, 4, $0a, 0
-.OAMData_GSIntroLapras2:
+.OAMData_GSIntroLapras1:
db 27
dbsprite -3, -3, 0, 0, $00, 0
dbsprite -2, -3, 0, 0, $01, 0
@@ -398,7 +398,7 @@ ENDC
dbsprite 1, 2, 0, 0, $54, 0 | PRIORITY
dbsprite 2, 2, 0, 0, $55, 0 | PRIORITY
-.OAMData_GSIntroLapras3:
+.OAMData_GSIntroLapras2:
db 27
dbsprite -3, -3, 0, 0, $0d, 0
dbsprite -2, -3, 0, 0, $0e, 0
@@ -428,7 +428,7 @@ ENDC
dbsprite 1, 2, 0, 0, $54, 0 | PRIORITY
dbsprite 2, 2, 0, 0, $55, 0 | PRIORITY
-.OAMData_GSIntroLapras4:
+.OAMData_GSIntroLapras3:
db 29
dbsprite -3, -3, 0, 0, $00, 0
dbsprite -2, -3, 0, 0, $01, 0
diff --git a/data/sprite_anims/sequences.asm b/data/sprite_anims/sequences.asm
index 2c240d24..581d7268 100644
--- a/data/sprite_anims/sequences.asm
+++ b/data/sprite_anims/sequences.asm
@@ -5,8 +5,8 @@ SpriteAnimSeqData:
db SPRITE_ANIM_FRAMESET_GS_INTRO_BUBBLE, SPRITE_ANIM_SEQ_GS_INTRO_BUBBLE, $00 ; SPRITE_ANIM_INDEX_GS_INTRO_BUBBLE
db SPRITE_ANIM_FRAMESET_GS_INTRO_SHELLDER, SPRITE_ANIM_SEQ_GS_INTRO_SHELLDER, $00 ; SPRITE_ANIM_INDEX_GS_INTRO_SHELLDER
db SPRITE_ANIM_FRAMESET_GS_INTRO_MAGIKARP, SPRITE_ANIM_SEQ_GS_INTRO_MAGIKARP, $00 ; SPRITE_ANIM_INDEX_GS_INTRO_MAGIKARP
+ db SPRITE_ANIM_FRAMESET_UNUSED_LAPRAS, SPRITE_ANIM_SEQ_UNUSED_LAPRAS, $00 ; SPRITE_ANIM_INDEX_UNUSED_LAPRAS
db SPRITE_ANIM_FRAMESET_GS_INTRO_LAPRAS, SPRITE_ANIM_SEQ_GS_INTRO_LAPRAS, $00 ; SPRITE_ANIM_INDEX_GS_INTRO_LAPRAS
- db SPRITE_ANIM_FRAMESET_GS_INTRO_LAPRAS_2, SPRITE_ANIM_SEQ_GS_INTRO_LAPRAS_2, $00 ; SPRITE_ANIM_INDEX_GS_INTRO_LAPRAS_2
db SPRITE_ANIM_FRAMESET_GS_INTRO_NOTE, SPRITE_ANIM_SEQ_GS_INTRO_NOTE, $01 ; SPRITE_ANIM_INDEX_GS_INTRO_NOTE
db SPRITE_ANIM_FRAMESET_GS_INTRO_INVISIBLE_NOTE, SPRITE_ANIM_SEQ_GS_INTRO_NOTE, $01 ; SPRITE_ANIM_INDEX_GS_INTRO_INVISIBLE_NOTE
db SPRITE_ANIM_FRAMESET_GS_INTRO_JIGGLYPUFF, SPRITE_ANIM_SEQ_GS_INTRO_JIGGLYPUFF, $01 ; SPRITE_ANIM_INDEX_GS_INTRO_JIGGLYPUFF
diff --git a/engine/gfx/load_pics.asm b/engine/gfx/load_pics.asm
index aac168db..8b9f4f6a 100644
--- a/engine/gfx/load_pics.asm
+++ b/engine/gfx/load_pics.asm
@@ -216,7 +216,7 @@ FixPicBank:
db $1f, $2e
db -1
-GSIntroGetMonFrontpic:
+Intro_GetMonFrontpic:
ld a, c
push de
ld hl, PokemonPicPointers
diff --git a/engine/gfx/sprite_anims.asm b/engine/gfx/sprite_anims.asm
index e9d63d44..d288cd17 100644
--- a/engine/gfx/sprite_anims.asm
+++ b/engine/gfx/sprite_anims.asm
@@ -20,8 +20,8 @@ DoAnimFrame:
dw .GSIntroBubble
dw .GSIntroShellder
dw .GSIntroMagikarp
+ dw .UnusedLapras
dw .GSIntroLapras
- dw .GSIntroLapras2
dw .GSIntroNote
dw .GSIntroJigglypuff
dw .GSIntroPikachu
@@ -227,7 +227,7 @@ DoAnimFrame:
call DeinitializeSprite
ret
-.GSIntroLapras
+.UnusedLapras
ld hl, SPRITEANIMSTRUCT_XCOORD
add hl, bc
ld a, [hl]
@@ -251,7 +251,7 @@ DoAnimFrame:
call DeinitializeSprite
ret
-.GSIntroLapras2
+.GSIntroLapras
call .AnonymousJumptable
jp hl
diff --git a/engine/movie/gs_intro.asm b/engine/movie/gs_intro.asm
index 86f53317..9ef08929 100644
--- a/engine/movie/gs_intro.asm
+++ b/engine/movie/gs_intro.asm
@@ -1,8 +1,8 @@
GoldSilverIntro:
call .Init
-.loop
- call .JoypadLoop
- jr nc, .loop
+.Loop:
+ call .Joypad
+ jr nc, .Loop
ret
.Init:
@@ -12,21 +12,23 @@ GoldSilverIntro:
ldh [hBGMapMode], a
ret
-.JoypadLoop:
+.Joypad:
call JoyTextDelay
ldh a, [hJoyLast]
and BUTTONS
- jr nz, .finish
+ jr nz, .Finish
+
ld a, [wIntroJumptableIndex]
bit 7, a
- jr nz, .finish
+ jr nz, .Finish
+
farcall PlaySpriteAnimations
call IntroSceneJumper
call DelayFrame
and a
ret
-.finish
+.Finish:
callfar ClearSpriteAnims
call ClearSprites
call DelayFrame
@@ -72,6 +74,7 @@ IntroScene1:
ld hl, wIntroJumptableIndex
inc [hl] ; only run once
call DisableLCD
+
xor a
ldh [hBGMapMode], a
callfar ClearSpriteAnims
@@ -79,31 +82,33 @@ IntroScene1:
ldh [rVBK], a
hlbgcoord 0, 0, vBGMap2
lb bc, 4, 0
+
xor a
call ByteFill
ld a, 0
ldh [rVBK], a
call Intro_ResetLYOverrides
ld de, vTiles2 tile $00
- ld hl, GSIntroWaterGFX1
+ ld hl, Intro_WaterGFX1
call Decompress
- ld a, LOW(GSIntroWaterMeta)
+ ld a, LOW(Intro_WaterMeta)
ld [wIntroTilesPointer + 0], a
- ld a, HIGH(GSIntroWaterMeta)
+ ld a, HIGH(Intro_WaterMeta)
ld [wIntroTilesPointer + 1], a
hlbgcoord 0, 0, vBGMap2
ld a, l
ld [wIntroBGMapPointer + 0], a
ld a, h
ld [wIntroBGMapPointer + 1], a
- ld de, GSIntroWaterTilemap + 15 tiles
+ ld de, Intro_WaterTilemap + 15 tiles
ld a, e
ld [wIntroTilemapPointer + 0], a
ld a, d
ld [wIntroTilemapPointer + 1], a
- call Functione5498
+ call Intro_DrawBackground
+
ld de, vTiles0 tile $00
- ld hl, GSIntroWaterGFX2
+ ld hl, Intro_WaterGFX2
call Decompress
ld hl, wSpriteAnimDict
ld a, 0
@@ -123,6 +128,7 @@ IntroScene1:
ld a, $42
ldh [hLCDCPointer], a
call Functione5095
+
xor a
ld [wcb19], a
call EnableLCD
@@ -134,7 +140,7 @@ IntroScene1:
call DmgToCgbBGPals
depixel 28, 28
call DmgToCgbObjPals
- call InitShellders
+ call Intro_InitShellders
ld de, MUSIC_GS_OPENING
call PlayMusic
ret
@@ -145,12 +151,12 @@ IntroScene2:
ld hl, wIntroSceneFrameCounter1
ld a, [hl]
and a
- jr z, .asm_e4df5
+ jr z, .skip_intro
dec [hl]
- call InitBubble
+ call Intro_InitBubble
ret
-.asm_e4df5:
+.skip_intro
ld [hl], $10
ld hl, wIntroJumptableIndex
inc [hl]
@@ -160,7 +166,7 @@ IntroScene3:
call Functione4e90
call Functione4e67
ret nc
-.next
+; next scene if carry flag is set
call Intro_ResetLYOverrides
ld hl, hSCY
inc [hl]
@@ -168,14 +174,14 @@ IntroScene3:
inc [hl]
IntroScene4:
-; at surface, Lapras surfs to left of screen
+; at surface; Lapras surfs to left of screen
ld a, [wcb19]
and a
jr nz, .next
ld hl, wIntroSceneFrameCounter2
inc [hl]
ld a, [hl]
- and $0f
+ and $f
jr nz, .asm_e4e21
ld hl, hSCX
dec [hl]
@@ -197,10 +203,10 @@ IntroScene5:
ld a, [hl]
inc [hl]
swap a
- and $0f
+ and $f
ld e, a
ld d, 0
- ld hl, .pals
+ ld hl, .palettes
add hl, de
ld a, [hl]
cp -1
@@ -217,7 +223,7 @@ IntroScene5:
inc [hl]
ret
-.pals
+.palettes
db %11100100, %11100100, %10010000, %01000000, %00000000
db -1
@@ -236,21 +242,21 @@ Functione4e67:
ld hl, wIntroSceneFrameCounter2
inc [hl]
ld a, [hl]
- and $03
+ and 3
jr nz, .asm_e4e74
ld hl, hSCX
dec [hl]
.asm_e4e74
- and $01
+ and 1
jr nz, .asm_e4e8c
ld hl, wGlobalAnimYOffset
inc [hl]
ld hl, hSCY
ld a, [hl]
dec [hl]
- and $0f
- call z, Functione4f87
+ and $f
+ call z, Intro_UpdateTilemapAndBGMap
ld a, [wIntroSceneFrameCounter1]
and a
jr z, .asm_e4e8e
@@ -286,16 +292,17 @@ Functione4e90:
dw Functione4eec
Functione4ec1:
- call InitLapras
+ call Intro_InitLapras
depixel 28, 28, 4, 4
call DmgToCgbObjPals
; fall through
+
Functione4eca:
call Functione4fde
ret
Functione4ece:
- call InitMagikarps
+ call Intro_InitMagikarps
call Functione4fde
ret
@@ -304,7 +311,7 @@ Functione4ed5:
ld a, [hl]
and %00011111
jr z, .asm_e4ee1
- call InitMagikarps
+ call Intro_InitMagikarps
ret
.asm_e4ee1
@@ -320,17 +327,17 @@ Functione4eec:
call Functione50af
ret
-InitBubble:
+Intro_InitBubble:
ld hl, wIntroSceneFrameCounter1
ld a, [hl]
- and $0f
+ and $f
ret nz
ld a, [hl]
and $70
swap a
ld e, a
ld d, 0
- ld hl, .pixels
+ ld hl, .pixel_table
add hl, de
add hl, de
ld e, [hl]
@@ -340,7 +347,7 @@ InitBubble:
call InitSpriteAnimStruct
ret
-.pixels
+.pixel_table
db 6 * 8, 14 * 8 + 4
db 14 * 8, 18 * 8 + 4
db 10 * 8, 16 * 8 + 4
@@ -348,7 +355,7 @@ InitBubble:
db 4 * 8, 13 * 8
db 8 * 8, 17 * 8
-InitMagikarps:
+Intro_InitMagikarps:
depixel 8, 7, 0, 7
ldh a, [hSGB]
and a
@@ -385,7 +392,7 @@ InitMagikarps:
call InitSpriteAnimStruct
ret
-InitShellders:
+Intro_InitShellders:
depixel 18, 7
call .InitAnim
depixel 14, 10
@@ -397,24 +404,26 @@ InitShellders:
call InitSpriteAnimStruct
ret
-InitLapras:
+Intro_InitLapras:
ld a, [wIntroSceneFrameCounter2]
and %00011111
ret nz
depixel 16, 24
- ld a, SPRITE_ANIM_INDEX_GS_INTRO_LAPRAS_2
+ ld a, SPRITE_ANIM_INDEX_GS_INTRO_LAPRAS
call InitSpriteAnimStruct
ret
-UnusedInitLapras:
+Intro_UnusedInitLapras:
depixel 2, 0
- ld a, SPRITE_ANIM_INDEX_GS_INTRO_LAPRAS
+ ld a, SPRITE_ANIM_INDEX_UNUSED_LAPRAS
call InitSpriteAnimStruct
ret
-Functione4f87:
+Intro_UpdateTilemapAndBGMap:
+; add new tiles to top as water scene scrolls up to surface
push hl
push de
+
ld a, [wIntroTilemapPointer + 0]
ld e, a
ld a, [wIntroTilemapPointer + 1]
@@ -428,12 +437,13 @@ Functione4f87:
ld d, h
ld [wIntroTilemapPointer + 1], a
hlcoord 0, 0
- ld c, $10
+ ld c, BG_MAP_WIDTH / 2
.loop
call Functione54ae
dec c
jr nz, .loop
+
ld a, [wIntroBGMapPointer + 0]
ld e, a
ld a, [wIntroBGMapPointer + 1]
@@ -444,8 +454,8 @@ Functione4f87:
ld [wIntroBGMapPointer + 0], a
ld [wRequested2bppDest + 0], a
ld a, h
- and $fb
- or $08
+ and %11111011
+ or %00001000
ld [wIntroBGMapPointer + 1], a
ld [wRequested2bppDest + 1], a
ld a, LOW(wTilemap)
@@ -456,15 +466,17 @@ Functione4f87:
ld [wRequested2bppSize], a
ld hl, wIntroSceneFrameCounter1
dec [hl]
+
pop de
pop hl
ret
Functione4fde:
+; something to do with water scene sprite anims?
ld hl, wIntroSceneFrameCounter2
ld a, [hl]
- and $03
- cp $03
+ and 3
+ cp 3
ret z
ld a, [wRequested2bppSize]
and a
@@ -555,6 +567,7 @@ Functione50af:
pop af
dec a
jr nz, .loop2
+
pop af
ld [hl], a
ret
@@ -562,35 +575,37 @@ Functione50af:
IntroScene6:
; Set up grass cutscene (Pikachu/Jigglypuff)
ld hl, wIntroJumptableIndex
- inc [hl]
+ inc [hl] ; only run once
call DisableLCD
callfar ClearSpriteAnims
call Intro_ResetLYOverrides
+
ld de, vTiles2
- ld hl, GSIntroGrassGFX1
+ ld hl, Intro_GrassGFX1
call Decompress
- ld a, LOW(GSIntroGrassMeta)
+ ld a, LOW(Intro_GrassMeta)
ld [wIntroTilesPointer + 0], a
- ld a, HIGH(GSIntroGrassMeta)
+ ld a, HIGH(Intro_GrassMeta)
ld [wIntroTilesPointer + 1], a
ld hl, vBGMap0
ld a, l
ld [wIntroBGMapPointer + 0], a
ld a, h
ld [wIntroBGMapPointer + 1], a
- ld de, GSIntroGrassTilemap
+ ld de, Intro_GrassTilemap
ld a, e
ld [wIntroTilemapPointer + 0], a
ld a, d
ld [wIntroTilemapPointer + 1], a
- call Functione5498
+ call Intro_DrawBackground
+
ld de, vTiles0
- ld hl, GSIntroGrassGFX2
+ ld hl, Intro_GrassGFX2
call Decompress
ld hl, wSpriteAnimDict
- ld a, $01
+ ld a, 1
ld [hli], a
- ld a, $00
+ ld a, 0
ld [hli], a
xor a
ldh [hSCY], a
@@ -599,6 +614,7 @@ IntroScene6:
ldh [hSCX], a
ld a, $a0
ld [wGlobalAnimXOffset], a
+
xor a
ld [wIntroSceneFrameCounter2], a
call EnableLCD
@@ -609,18 +625,18 @@ IntroScene6:
call DmgToCgbBGPals
depixel 28, 28, 4, 4
call DmgToCgbObjPals
- call InitJigglypuffAnim
+ call Intro_InitJigglypuff
xor a
ld [wcb19], a
ret
IntroScene7:
; scroll left to Jigglypuff
- call InitNoteAnim
+ call Intro_InitNote
ld hl, wIntroSceneFrameCounter2
ld a, [hl]
inc [hl]
- and $03
+ and 3
ret z
ld hl, hSCX
ld a, [hl]
@@ -634,7 +650,7 @@ IntroScene7:
.next
ld a, -1
ld [wIntroSceneFrameCounter1], a
- call InitPikachuAnim
+ call Intro_InitPikachu
ld hl, wIntroJumptableIndex
inc [hl]
ret
@@ -646,7 +662,7 @@ IntroScene8:
and a
jr z, .next
dec [hl]
- call InitNoteAnim
+ call Intro_InitNote
ld hl, wIntroSceneFrameCounter2
inc [hl]
ret
@@ -669,7 +685,7 @@ IntroScene9:
srl a
ld e, a
ld d, 0
- ld hl, .pals
+ ld hl, .palettes
add hl, de
ld a, [hl]
cp -1
@@ -686,14 +702,14 @@ IntroScene9:
inc [hl]
ret
-.pals
+.palettes
db %11100100, %11100100, %11100100, %11100100
db %11100100, %10010000, %01000000, %00000000
db -1
ret ; unused
-InitNoteAnim:
+Intro_InitNote:
ld a, [wcb19]
and a
ret nz
@@ -715,13 +731,13 @@ InitNoteAnim:
call InitSpriteAnimStruct
ret
-InitJigglypuffAnim:
+Intro_InitJigglypuff:
depixel 14, 6
ld a, SPRITE_ANIM_INDEX_GS_INTRO_JIGGLYPUFF
call InitSpriteAnimStruct
ret
-InitPikachuAnim:
+Intro_InitPikachu:
depixel 14, 24
ld a, SPRITE_ANIM_INDEX_GS_INTRO_PIKACHU
call InitSpriteAnimStruct
@@ -733,48 +749,53 @@ InitPikachuAnim:
IntroScene10:
; Set up fireball cutscene (Charizard, Johto starters)
ld hl, wIntroJumptableIndex
- inc [hl]
+ inc [hl] ; only run once
call DisableLCD
callfar ClearSpriteAnims
call Intro_ResetLYOverrides
- call Functione5361
+ call Intro_BlankTilemapAndBGMap
+
ld de, vTiles2
- ld hl, GSIntroCharizardGFX1
+ ld hl, Intro_FireGFX1
call Decompress
ld de, vTiles1
- ld hl, GSIntroCharizardGFX2
+ ld hl, Intro_FireGFX2
call Decompress
ld de, vTiles0
- ld hl, GSIntroCharizardGFX3
+ ld hl, Intro_FireGFX3
ld bc, vTiles1 - vTiles0
call Decompress
+
ld c, CHIKORITA
ld de, vTiles0 tile $10
- farcall GSIntroGetMonFrontpic
+ farcall Intro_GetMonFrontpic
ld c, CYNDAQUIL
ld de, vTiles0 tile $29
- farcall GSIntroGetMonFrontpic
+ farcall Intro_GetMonFrontpic
ld c, TOTODILE
ld de, vTiles0 tile $42
- farcall GSIntroGetMonFrontpic
+ farcall Intro_GetMonFrontpic
+
ld hl, wSpriteAnimDict
- ld a, $01
+ ld a, 1
ld [hli], a
- ld a, $00
+ ld a, 0
ld [hli], a
call EnableLCD
ld a, 0
call Functione5422
+
ld a, $80
ldh [hSCY], a
xor a
ldh [hSCX], a
ld [wGlobalAnimYOffset], a
ld [wGlobalAnimXOffset], a
+
xor a
ld [wIntroSceneFrameCounter2], a
ld b, SCGB_GS_INTRO
- ld c, $02
+ ld c, 2
call GetSGBLayout
ld a, %00111111
call DmgToCgbBGPals
@@ -792,21 +813,23 @@ IntroScene11:
ld hl, wIntroSceneFrameCounter2
ld a, [hl]
inc [hl]
- and $01
+ and 1
ret z
- call CheckSCYEvents
+ call Intro_CheckSCYEvent
ld hl, hSCY
ld a, [hl]
and a
- jr z, .done_scrolling
+ jr z, .next
inc [hl]
ret
-.done_scrolling
+.next
ld hl, wIntroJumptableIndex
inc [hl]
xor a
ld [wIntroSceneFrameCounter1], a
+; fall through
+
IntroScene12:
; load Charizard palettes
ld hl, wIntroSceneFrameCounter1
@@ -814,10 +837,10 @@ IntroScene12:
inc [hl]
srl a
srl a
- and %11
+ and 3
ld e, a
ld d, 0
- ld hl, .pals
+ ld hl, .palettes
add hl, de
ld a, [hl]
and a
@@ -835,7 +858,7 @@ IntroScene12:
ld [wIntroSceneFrameCounter1], a
ret
-.pals
+.palettes
db %01101010, %10100101, %11100100, %00000000
IntroScene13:
@@ -850,9 +873,9 @@ IntroScene13:
.next
ld hl, wIntroJumptableIndex
inc [hl]
- ld a, $01
+ ld a, 1
call Functione5422
- ld a, $04
+ ld a, 4
ld [wIntroSceneFrameCounter1], a
ret
@@ -868,14 +891,16 @@ IntroScene14:
.next
ld hl, wIntroJumptableIndex
inc [hl]
- ld a, $02
+ ld a, 2
call Functione5422
- ld a, $40
+ ld a, 64
ld [wIntroSceneFrameCounter1], a
xor a
ld [wIntroSceneFrameCounter2], a
ld de, SFX_GS_INTRO_CHARIZARD_FIREBALL
call PlaySFX
+; fall through
+
IntroScene15:
; Charizard mouth wide open / fireball starts
call Functione5473
@@ -900,30 +925,30 @@ IntroScene16:
ld a, [hl]
inc [hl]
swap a
- and $07
+ and 7
ld e, a
ld d, 0
- ld hl, .pals
+ ld hl, .palettes
add hl, de
ld a, [hl]
cp -1
- jr z, .asm_e5357
+ jr z, .next
call DmgToCgbBGPals
ld e, a
ld d, a
call DmgToCgbObjPals
ret
-.asm_e5357:
+.next
ld hl, wIntroJumptableIndex
inc [hl]
ret
-.pals
+.palettes
db %11100100, %10010000, %01000000, %00000000
db -1
-Functione5361:
+Intro_BlankTilemapAndBGMap:
hlcoord 0, 0
ld bc, wTilemapEnd - wTilemap
xor a
@@ -934,12 +959,12 @@ Functione5361:
call ByteFill
ret
-CheckSCYEvents:
+Intro_CheckSCYEvent:
ldh a, [hSCY]
ld c, a
ld hl, .scy_jumptable
-.asm_e537c
+.loop
ld a, [hli]
cp -1
ret z
@@ -947,7 +972,7 @@ CheckSCYEvents:
jr z, .value_found
inc hl
inc hl
- jr .asm_e537c
+ jr .loop
.value_found
ld a, [hli]
@@ -957,21 +982,21 @@ CheckSCYEvents:
.scy_jumptable
dbw $86, Functione53f7
- dbw $87, ChikoritaAppears
+ dbw $87, Intro_ChikoritaAppears
dbw $88, Functione53e0
dbw $98, Functione53eb
dbw $99, Functione5400
- dbw $af, CyndaquilAppears
+ dbw $af, Intro_CyndaquilAppears
dbw $b0, Functione53e0
dbw $c0, Functione53eb
dbw $c1, Functione5409
- dbw $d7, TotodileAppears
+ dbw $d7, Intro_TotodileAppears
dbw $d8, Functione53e0
dbw $e8, Functione53eb
dbw $e9, Functione5412
db -1
-ChikoritaAppears:
+Intro_ChikoritaAppears:
ld de, SFX_GS_INTRO_POKEMON_APPEARS
call PlaySFX
depixel 22, 1
@@ -979,7 +1004,7 @@ ChikoritaAppears:
call InitSpriteAnimStruct
ret
-CyndaquilAppears:
+Intro_CyndaquilAppears:
ld de, SFX_GS_INTRO_POKEMON_APPEARS
call PlaySFX
depixel 22, 20
@@ -987,7 +1012,7 @@ CyndaquilAppears:
call InitSpriteAnimStruct
ret
-TotodileAppears:
+Intro_TotodileAppears:
ld de, SFX_GS_INTRO_POKEMON_APPEARS
call PlaySFX
depixel 22, 1
@@ -1070,6 +1095,7 @@ endr
inc a
dec c
jr nz, .loop2_inner
+
pop hl
ld bc, SCREEN_WIDTH
add hl, bc
@@ -1077,7 +1103,7 @@ endr
dec b
jr nz, .loop2_outer
- ld a, $1
+ ld a, 1
ldh [hBGMapMode], a
call DelayFrame
call DelayFrame
@@ -1087,7 +1113,7 @@ endr
ret
.data_e5464
-; tile id, width, height, tilemap addr?
+; vtile offset, width, height, x, y?
db $00, 8, 8
dwcoord 10, 6
db $40, 9, 8
@@ -1099,7 +1125,7 @@ Functione5473:
ld hl, wIntroSceneFrameCounter2
ld a, [hl]
inc [hl]
- and $03
+ and 3
ret nz
depixel 12, 10, 4, 4
ld a, SPRITE_ANIM_INDEX_GS_INTRO_FIREBALL
@@ -1110,8 +1136,8 @@ Functione5473:
inc [hl]
ret
-Functione548c:
- ld bc, $0800
+Unreferenced_Functione548c:
+ ld bc, vTiles1 - vTiles0
.loop
ld a, [de]
inc de
@@ -1122,33 +1148,38 @@ Functione548c:
jr nz, .loop
ret
-Functione5498:
- ld b, $10
-.loop_outer
+Intro_DrawBackground:
+ ld b, BG_MAP_WIDTH / 2
+
+.outer_loop
push hl
- ld c, $10
-.loop_inner
+ ld c, BG_MAP_HEIGHT / 2
+.inner_loop
call Functione54ae
dec c
- jr nz, .loop_inner
+ jr nz, .inner_loop
+
pop hl
push bc
- ld bc, $0040
+ ld bc, 2 * BG_MAP_WIDTH
add hl, bc
pop bc
dec b
- jr nz, .loop_outer
+ jr nz, .outer_loop
+
ret
Functione54ae:
+; load tile data into a 2x2 section of the bgmap or tilemap
push bc
push de
push hl
push hl
push hl
+
ld a, [de]
ld l, a
- ld h, $00
+ ld h, 0
ld a, [wIntroTilesPointer + 0]
ld e, a
ld a, [wIntroTilesPointer + 1]
@@ -1166,7 +1197,7 @@ Functione54ae:
inc de
ld [hli], a
pop hl
- ld bc, $0020
+ ld bc, BG_MAP_WIDTH
add hl, bc
ld a, [de]
inc de
@@ -1174,6 +1205,7 @@ Functione54ae:
ld a, [de]
inc de
ld [hli], a
+
pop hl
inc hl
inc hl
@@ -1192,35 +1224,35 @@ Intro_ResetLYOverrides:
jr nz, .loop
ret
-GSIntroWaterGFX1:
+Intro_WaterGFX1:
INCBIN "gfx/intro/water1.2bpp.lz"
-GSIntroWaterTilemap:
+Intro_WaterTilemap:
INCBIN "gfx/intro/water.tilemap"
-GSIntroWaterMeta:
+Intro_WaterMeta:
INCBIN "gfx/intro/water.bin"
-GSIntroWaterGFX2:
+Intro_WaterGFX2:
INCBIN "gfx/intro/water2.2bpp.lz"
-GSIntroGrassGFX1:
+Intro_GrassGFX1:
INCBIN "gfx/intro/grass1.2bpp.lz"
-GSIntroGrassTilemap:
+Intro_GrassTilemap:
INCBIN "gfx/intro/grass.tilemap"
-GSIntroGrassMeta:
+Intro_GrassMeta:
INCBIN "gfx/intro/grass.bin"
-GSIntroGrassGFX2:
+Intro_GrassGFX2:
INCBIN "gfx/intro/grass2.2bpp.lz"
-GSIntroCharizardGFX1:
+Intro_FireGFX1:
INCBIN "gfx/intro/charizard1.2bpp.lz"
-GSIntroCharizardGFX2:
+Intro_FireGFX2:
INCBIN "gfx/intro/charizard2.2bpp.lz"
-GSIntroCharizardGFX3:
+Intro_FireGFX3:
INCBIN "gfx/intro/charizard3.2bpp.lz"