map load: Added a bit of a delay between loads
authorLukas Krickl <lukas@krickl.dev>
Mon, 7 Jul 2025 03:51:38 +0000 (05:51 +0200)
committerLukas Krickl <lukas@krickl.dev>
Mon, 7 Jul 2025 03:51:38 +0000 (05:51 +0200)
src/player.s
src/video.s

index dcaf627e566e1ebdeb1a2126d42a58250b798c76..e089beee469ee1801233a50107c4a025055bec6e 100644 (file)
@@ -105,6 +105,9 @@ unit_check_exit_hit:
   push hl
   ld de, exit_to
   add hl, de ; hl = map ptr
+  
+  ; fade out
+  call video_fade_out
 
   ld a, [hl+]
   ld c, a
@@ -114,6 +117,9 @@ unit_check_exit_hit:
   ld l, a ; hl = map header ptr
   call map_load 
 
+  ; fade back in
+  call video_fade_in
+
   pop bc ; bc = exit table now 
   ; finally adjust player position
   
index 5abfbfa139cc97522b9ef2c4b6ed0f4bee88eae4..5b712ade2f874ceab51f8cec9a89505910a3db55 100644 (file)
@@ -112,6 +112,49 @@ video_init:
 
   ret
 
+  ; delays by n frames
+  ; inputs:
+  ;   bc: frame amount to wait
+video_wait_n_frames:
+    push bc 
+    call next_vblank_wait
+    pop bc
+
+    dec bc
+
+    ld a, b
+    or a, c
+  jr nz, video_wait_n_frames REL
+  ret
+  
+  ; fades out the background
+  ; interrupts must be enabled
+  ; preserved all registers
+video_fade_out:
+  push_all
+
+  ld bc, 0xF
+  call video_wait_n_frames
+
+  pop_all
+  ret
+
+  ; fades the background in
+  ; sets RBGP to BGP
+  ; interrupts must be enabled
+  ; preserved all registers
+video_fade_in:
+  push_all
+
+  ld bc, 0xF
+  call video_wait_n_frames
+
+  ld a, BGP 
+  ld [RBGP], a
+
+  pop_all
+  ret
+
   ; loads tilesets
   ; inputs:
   ;   de: source