diff options
Diffstat (limited to 'modes/maploading.gbasm')
-rw-r--r-- | modes/maploading.gbasm | 183 |
1 files changed, 0 insertions, 183 deletions
diff --git a/modes/maploading.gbasm b/modes/maploading.gbasm deleted file mode 100644 index ab8ecbe..0000000 --- a/modes/maploading.gbasm +++ /dev/null @@ -1,183 +0,0 @@ -; VBlank: Write loading text, then wait for generation, then loading vram stuff -; When VBlank interrupts -> context switch -; When stat out of vblank interrupt -> context switch back to generation - -.MACRODEF ENABLE_MODE_2_INTERRUPT - LD A, low(=Map_Loading_Out_Of_VBlank) - LD ($mem_stat_jump_destination), A - LD A, high(=Map_Loading_Out_Of_VBlank) - LD ($mem_stat_jump_destination+1), A - .RESET_INTERRUPTS - LD A, $20 - LD $reg_lcd_status, A - LD A, $02 - LD $reg_interrupt_enable, A -.END - -.MACRODEF DISABLE_MODE_2_INTERRUPT - LD A, $00 - LD $reg_lcd_status, A - LD A, $00 - LD $reg_interrupt_enable, A -.END - -Map_Loading: - LD SP, $fffe - - LD A, $00 - LD $reg_viewport_x, A - LD A, $68 - LD $reg_viewport_y, A - - LD A, $00 - LD $mem_display_flag, A - - LD A, ($mem_dungeon+1) - LD H, A - LD A, ($mem_dungeon+2) - LD L, A - LD A, ($mem_dungeon) - CALL =Load_Dungeon_Txt - - LD A, $f4 - LD ($9ecb), A - - LD HL, $9ec9 - LD A, $mem_floor_count - CALL =Print_8bit - - LD A, $07 - LD $reg_bg_palette, A - - LD A, $lcdc_guibg_tilemap - LD $reg_lcd_controller, A - - CALL =Reset_Map - - .LOAD_BANK_OF =_map_Test - LD HL, $mem_dungeon_map - LD BC, $0080 - LD DE, ptr(=_map_Test) - CALL =memcpy - - LD A, ($mem_dungeon+1) - LD H, A - LD A, ($mem_dungeon+2) - LD L, A - LD A, ($mem_dungeon) - CALL =Load_Dungeon_Spawn_patterns - LD A, $entity_questgoalbunny_index - LD $mem_loaded_special_entity_index, A - - CALL =Reload_EP_Cost - LD B, $0f - LD C, $0f - CALL =Initialize_Bunny - - LD HL, $mem_entities_list - CALL =Center_viewport_around_entity - - LD A, $mem_map_loading_flags - OR $01 - LD $mem_map_loading_flags, A - - LD HL, $mem_object_list - LD BC, $0080 - CALL =bff - - ; Reset animations - LD HL, $mem_animation_list - LD BC, $1f - CALL =bzero - - ; Clear OAM buffer - LD HL, $mem_oam_buffer - LD BC, $00a0 - CALL =bzero - - LD A, $00 - LD $mem_display_flag, A - LD $mem_moving_animation_step, A - LD $mem_animation_wait_frames, A - LD $mem_blinking_animation_counter, A - - LD A, $mem_bunny_x - LD $mem_bunny_predicted_x, A - LD A, $mem_bunny_y - LD $mem_bunny_predicted_y, A - - LD A, $mem_map_loading_flags - RES 3, A - LD $mem_map_loading_flags, A - - LD A, $enum_dungeon_mode - LD $mem_current_mode, A - LD $mem_requested_mode, A - - LD A, $00 - LD $mem_oam_buffer_low, A - CALL =Display_Entities - - CALL =Generation_Event_Execution - - CALL =Load_Prepared_Map - - CALL =VBlank_Wait - -Map_Loading_VBlank: - .ENABLE_MODE_2_INTERRUPT - EI - - ; Heart - LD A, $f0 - LD ($9d62), A - - ; Energy points - LD A, $f1 - LD ($9d66), A - - ; Floor - LD A, $f4 - LD ($9d73), A - - LD B, B - CALL =Reload_Entities_Tile_Data - LD B, B - ; Clear OAM - LD HL, $fe00 - LD BC, $00a0 - CALL =bzero - - LD DE, $mem_map_loading_buffer - LD HL, $9800 - LD BC, $0400 - CALL =memcpy - CALL =Load_Objects - - LD HL, $9d71 - LD A, $mem_floor_count - CALL =Print_8bit - - CALL =Update_VBlank_Handler - - DI - .DISABLE_MODE_2_INTERRUPT - - CALL =Reset_Entities_Collision_Map - - .ENABLE_VBLANK_INTERRUPTS - .RESET_INTERRUPTS - EI - - .Wait_for_Interrupt.loop: - LD A, $reg_lcd_status - HALT - JP =.Wait_for_Interrupt.loop - -Map_Loading_Out_Of_VBlank: - PUSH AF - CALL =VBlank_Wait - .ENABLE_MODE_2_INTERRUPT - .RESET_INTERRUPTS - POP AF - RETI |