Copyright 2020 Laurens Holst
Converts the Ghosts ’n Goblins arcade music in VGM format to a data stream suitable for play back on Yamaha SFG, Neotron or Makoto. The format aims to be both efficient for playback and small in size. Due to a compact representation for the most frequent event types to reduce the individual tracks are all below 8K and the total size is less than 64K.
If the replayer core and music data is embedded in a ROM, the RAM requirement is lowered to 16K and the MSX-DOS requirement is dropped.
The converter has the following functions:
It also outputs VGM files for the YM2151 OPM and YM2610 OPN for easy testing with VGMPlay and debugging with vgm2txt.
The data format consists of five types of events:
The arcade game music uses two OPNs clocked at 1.5 MHz. But because it sets the prescaler to a frequency divider of 3 instead of the usual 6, they act like OPNs clocked at 3 MHz with the default prescaling.
The game sets the frequency after it sets key on. Due to this you sometimes get a wrong note at the start of a track on real hardware, depending on the initial values. This was probably a bug in the original game’s replayer code which did not get exposed during normal play. A processing step was added to put frequency in front of the key on commands.
Track 01 is the same as Track 27, but with two channels muted. It is recommended to use track 27 instead of track 01.
Extract the Ghosts ’n Goblins arcade
rename the .vgz files to .vgm.gz and extract each of them again, and then put
them in the
res/ directory. It is recommended to re-loop track 24 so that it
becomes smaller and the loop sounds better. Use vgm_trim with parameters
start: 0, loop: 35111, end: 364391.
resources.json file in the
res directory contains a manifest of the
files to convert and various settings.
Then, on macOS and Linux execute the
make command to convert the files and
compile the replayer. Test by putting the MSX-DOS system files in the
directory and executing the
make run command. OpenMSX 0.16.0 or later is
required, it currently only supports the Yamaha SFG sound chip.
On Windows, execute the build commands from the Makefile manually.