aboutsummaryrefslogtreecommitdiff
path: root/music
diff options
context:
space:
mode:
authorAstatin <[email protected]>2025-07-12 02:45:00 +0200
committerAstatin <[email protected]>2025-07-12 02:45:00 +0200
commitd77b156de83e8a93e3fa9832642824089593d1db (patch)
treef33a5a1f8bb54680b89db41e1ed8c26595a2231e /music
parente9dc1a32f8e7199e020123e0377c665c0e1443a1 (diff)
Play music from included vgm file
Diffstat (limited to 'music')
-rw-r--r--music/load.gbasm90
-rw-r--r--music/test.vgmbin0 -> 2093 bytes
2 files changed, 90 insertions, 0 deletions
diff --git a/music/load.gbasm b/music/load.gbasm
new file mode 100644
index 0000000..400fa1d
--- /dev/null
+++ b/music/load.gbasm
@@ -0,0 +1,90 @@
+Load_Music:
+ .LOAD_BANK_OF =_music_Test
+
+ LD HL, ptr(=_music_Test+52)
+ LD A, L
+ ADD (HL)
+ LD L, A
+ LD A, H
+ ADC $00
+ LD H, A
+
+ LD A, bank(=_music_Test)
+ LD ($mem_current_vgm_pc), A
+ LD A, H
+ LD ($mem_current_vgm_pc+1), A
+ LD A, L
+ LD ($mem_current_vgm_pc+2), A
+ RET
+
+Inc_HL_Fix_Bank:
+ PUSH AF
+ INC HL
+ LD A, H
+ CP $80
+ JR C, =.end
+ SUB $40
+ LD H, A
+
+ LD A, $saved_rom_bank
+ INC A
+ DBG
+ .CHANGE_BANK_TO_A
+
+ .end:
+ POP AF
+ RET
+
+Play_Music:
+ LD A, ($mem_current_vgm_pc)
+ .CHANGE_BANK_TO_A
+ LD A, ($mem_current_vgm_pc+1)
+ LD H, A
+ LD A, ($mem_current_vgm_pc+2)
+ LD L, A
+
+ .next:
+ LD A, (HL)
+ DBG
+ CALL =Inc_HL_Fix_Bank
+ CP $b3
+ JR NZ, =.set_register.end
+ .set_register:
+ LD A, (HL)
+ CALL =Inc_HL_Fix_Bank
+ ADD $10
+ LD C, A
+ LD A, (HL)
+ CALL =Inc_HL_Fix_Bank
+ LD (C), A
+ JR =.next
+ .set_register.end:
+
+ CP $66
+ JR Z, =Load_Music
+
+
+ CP $62
+ JR Z, =.panic.end
+ CP $61
+ JR NZ, =.the61thingy.end
+ .the61thingy:
+ CALL =Inc_HL_Fix_Bank
+ CALL =Inc_HL_Fix_Bank
+ JR =.panic.end
+ .the61thingy.end:
+
+ .panic:
+ LD A, $saved_rom_bank
+ DBG
+ STOP
+ .panic.end:
+
+ LD A, H
+ LD ($mem_current_vgm_pc+1), A
+ LD A, L
+ LD ($mem_current_vgm_pc+2), A
+ LD A, $saved_rom_bank
+ DBG
+ LD ($mem_current_vgm_pc), A
+ RET
diff --git a/music/test.vgm b/music/test.vgm
new file mode 100644
index 0000000..9922409
--- /dev/null
+++ b/music/test.vgm
Binary files differ