Skip to content

AnnoyedArt1256/opl3vgm_cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

opl3vgm: a simple OPL1/2/3 VGM player in C with SDL2

This project plays VGM files through OPL1/2/3 emulators (emu8950 and Nuked-OPL3 more specifically).

What you need to use the binary

  • a terminal that supports ANSI Escape Codes (an ANSI terminal)
  • SDL2 and SDL2_mixer Binaries

What you need to compile

  • a C compiler (duh)
  • SDL2 and SDL2_mixer compiler files

Notes

  • 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

How to Compile

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

libraries used: emu8950 Nuked-OPL3

2022 AArt1256