From b04c85f5316b58a60b5ae161e9bbf3a20cf1b084 Mon Sep 17 00:00:00 2001 From: Astatin Date: Tue, 4 Mar 2025 18:27:00 +0900 Subject: Fix out of VBlank on dialogue open (most of the time) + object remove --- map/loading.gbasm | 48 ++++++++++++++++++++++++++++++++++++++++++------ map/objects.gbasm | 11 +++++++++-- 2 files changed, 51 insertions(+), 8 deletions(-) (limited to 'map') diff --git a/map/loading.gbasm b/map/loading.gbasm index f7ba1ab..505bc53 100644 --- a/map/loading.gbasm +++ b/map/loading.gbasm @@ -13,7 +13,7 @@ Load_Map: .For_X: LD A, C CALL =Load_Block - CALL =Display_Prepared_Block + CALL =Display_Main_Prepared_Block INC C LD A, C @@ -251,19 +251,55 @@ Load_Block: ; X in A, Y in B POP BC RET -Display_Prepared_Block: - PUSH AF - PUSH BC - PUSH DE +Load_Additional_Block: + LD A, $mem_display_flag + BIT 6, A + RET Z + LD A, $mem_additional_loading_block_y + LD B, A + LD A, $mem_additional_loading_block_x + CALL =Load_Block + LD A, $mem_prepared_block_tile + LD $mem_additional_loading_block_tile, A + LD A, $mem_prepared_block_position_1 + LD $mem_additional_loading_block_position_1, A + LD A, $mem_prepared_block_position_2 + LD $mem_additional_loading_block_position_2, A + RET +Display_Prepared_Blocks: LD A, $mem_map_loading_flags BIT 2, A - JR Z, =.End + JR Z, =.Skip_Main LD A, $mem_map_loading_flags RES 2, A LD $mem_map_loading_flags, A + CALL =Display_Main_Prepared_Block + + .Skip_Main: + LD A, $mem_display_flag + BIT 6, A + RET Z + RES 6, A + LD $mem_display_flag, A + + LD A, $mem_additional_loading_block_tile + LD $mem_prepared_block_tile, A + LD A, $mem_additional_loading_block_position_1 + LD $mem_prepared_block_position_1, A + LD A, $mem_additional_loading_block_position_2 + LD $mem_prepared_block_position_2, A + JP =Display_Main_Prepared_Block + +Display_Main_Prepared_Block: + PUSH AF + PUSH BC + PUSH DE + + + LD A, $mem_prepared_block_position_1 LD D, A diff --git a/map/objects.gbasm b/map/objects.gbasm index 5bedeee..b1a43fe 100644 --- a/map/objects.gbasm +++ b/map/objects.gbasm @@ -212,6 +212,9 @@ Restore_EP_Action: RET Display_Object: + LD A, $mem_display_flag + BIT 5, A + RET NZ LD HL, $mem_object_list LD A, $mem_object_load_counter INC A @@ -296,8 +299,12 @@ Display_Object: Display_Objects.Nothing: LD A, D - CALL =Load_Block - CALL =Display_Prepared_Block + LD $mem_additional_loading_block_x, A + LD A, B + LD $mem_additional_loading_block_y, A + LD A, $mem_display_flag + SET 6, A + LD $mem_display_flag, A RET Load_Objects: -- cgit v1.2.3-70-g09d2