From d77b156de83e8a93e3fa9832642824089593d1db Mon Sep 17 00:00:00 2001 From: Astatin Date: Sat, 12 Jul 2025 02:45:00 +0200 Subject: Play music from included vgm file --- modes/dialoguemenu.gbasm | 2 ++ modes/dungeon.gbasm | 2 ++ modes/dungeongeneration.gbasm | 47 ++++++++++++++++++++++++++++++++++++++----- modes/loading.gbasm | 2 ++ 4 files changed, 48 insertions(+), 5 deletions(-) (limited to 'modes') diff --git a/modes/dialoguemenu.gbasm b/modes/dialoguemenu.gbasm index ad0b3be..306ea50 100644 --- a/modes/dialoguemenu.gbasm +++ b/modes/dialoguemenu.gbasm @@ -48,5 +48,7 @@ Dialogue_VBLANK_Entrypoint: INC A LD $mem_loop_frame_timer, A + CALL =Play_Music + .ENABLE_VBLANK_INTERRUPTS RETI diff --git a/modes/dungeon.gbasm b/modes/dungeon.gbasm index 1d27cc1..9062425 100644 --- a/modes/dungeon.gbasm +++ b/modes/dungeon.gbasm @@ -187,5 +187,7 @@ Dungeon_VBLANK_Entrypoint: INC A LD $mem_loop_frame_timer, A + CALL =Play_Music + .ENABLE_VBLANK_INTERRUPTS RETI diff --git a/modes/dungeongeneration.gbasm b/modes/dungeongeneration.gbasm index bfbe58c..11824de 100644 --- a/modes/dungeongeneration.gbasm +++ b/modes/dungeongeneration.gbasm @@ -14,6 +14,15 @@ LD $reg_interrupt_enable, A .END +.MACRODEF ENABLE_MUSIC_INTERRUPT + LD A, low(=Dungeon_1st_step_VBlank) + LD ($mem_vblank_jump_destination), A + LD A, high(=Dungeon_1st_step_VBlank) + LD ($mem_vblank_jump_destination+1), A + .RESET_INTERRUPTS + .ENABLE_VBLANK_INTERRUPTS +.END + .MACRODEF DISABLE_MODE_2_INTERRUPT LD A, $00 LD $reg_lcd_status, A @@ -40,6 +49,8 @@ New_Dungeon: New_Floor: LD SP, $fffe + .ENABLE_MUSIC_INTERRUPT + EI LD A, $00 LD $mem_display_flag, A @@ -209,15 +220,12 @@ Dungeon_generation_VBlank: LD A, $mem_floor_count CALL =Print_8bit - CALL =Update_VBlank_Handler + CALL =Reset_Entities_Collision_Map DI .DISABLE_MODE_2_INTERRUPT - - CALL =Reset_Entities_Collision_Map - + CALL =Update_VBlank_Handler .ENABLE_VBLANK_INTERRUPTS - .RESET_INTERRUPTS EI .Wait_for_Interrupt.loop: @@ -227,8 +235,37 @@ Dungeon_generation_VBlank: Dungeon_generation_Out_Of_VBlank: PUSH AF + PUSH BC + PUSH DE + PUSH HL + LD A, $saved_rom_bank + PUSH AF + CALL =Play_Music CALL =VBlank_Wait .ENABLE_MODE_2_INTERRUPT .RESET_INTERRUPTS POP AF + .CHANGE_BANK_TO_A + POP HL + POP DE + POP BC + POP AF + RETI + +Dungeon_1st_step_VBlank: + PUSH AF + PUSH BC + PUSH DE + PUSH HL + LD A, $saved_rom_bank + PUSH AF + CALL =Play_Music + .ENABLE_VBLANK_INTERRUPTS + .RESET_INTERRUPTS + POP AF + .CHANGE_BANK_TO_A + POP HL + POP DE + POP BC + POP AF RETI diff --git a/modes/loading.gbasm b/modes/loading.gbasm index df1bd24..649d474 100644 --- a/modes/loading.gbasm +++ b/modes/loading.gbasm @@ -32,5 +32,7 @@ Loading_VBLANK_Entrypoint: INC A LD $mem_loop_frame_timer, A + CALL =Play_Music + .ENABLE_VBLANK_INTERRUPTS RETI -- cgit v1.2.3-70-g09d2