This project plays VGM files through OPL1/2/3 emulators (emu8950 and Nuked-OPL3 more specifically).
- a terminal that supports ANSI Escape Codes (an ANSI terminal)
- SDL2 and SDL2_mixer Binaries
- a C compiler (duh)
- SDL2 and SDL2_mixer compiler files
- OPL3 4OP modes are not visualized correctly.
- .vgz files are not supported.
- Dual-chip .vgm files and .vgm files which include chips other than OPL1/2/3 are not supported.
- The visualizer is only for educational and/or entertainment purposes only.
- I edited Nuked-OPL3's code so that it allows custom clock speeds
You can use this one-liner to compile this program:
gcc main.c opl3.c emu8950.c emuadpcm.c <SDL2 compiler flags> -o opl3vgm
then you can run the program by importing a VGM file as an argument:
opl3vgm Drax_-_Bus.vgm
2022 AArt1256