advgm is a DMG VGM music player for the Game Boy Advance.
-
Export the Gameboy VGM from furnace.
- Make sure the
Systemis set toGame Boy,
and theBase Tempois set to150(=Tick Rateis set to60). file > export...- Select
VGMtab. - Set the
format versionto1.61. - Click
Export.
- Make sure the
-
Run
tools/advgm_converter.pyto turn the exported VGM into the binary format.# Convert as a binary. python tools/advgm_converter.py --input my_music.vgm --output my_output.bin # Convert as a C array source. # # The identifier of the C array would be same as the output filename # (In this case, it would be `my_output`.) python tools/advgm_converter.py --input my_music.vgm --output my_output.c --c-array # You can also give a custom identifier to this C array. python tools/advgm_converter.py --input my_music.vgm --output my_output.c --c-array my_music_identifier
-
Add the converted music binary/source to your project, and pass a pointer of it to the
advgm_play(). -
Add
advgm_vblank_callback()call in your vblank callback handler.
See include/advgm.h for the API.
There are some limitations, mostly due to the hardware restrictions.
Instrument > Use software envelopdoesn't work.Base Tempomust be always150(=Tick Ratemust be60).- You can use
Virtual Tempoif you want different tempo, but note that it doesn't always evenly divide the rows, and the arpeggios might sound funky. - Obviously, effects that alters the tick rate is not supported either (
CxxxandF0xx).
- You can use
This project is licensed under the BSD Zero Clause License.
You can use this freely without attribution.
This project started as a fork of akkera102's VGM player (vgm2gba), but I've turned it into a seperate repository to properly manage it.
