Skip to content

VGMPlay for MSX

Technical discussion about the VGM format, and all the software you need to handle VGM files.

Moderator: Staff

  • User avatar
  • grauw Offline
  • Posts: 150
  • Joined: 2015-02-22, 3:40:22

Post by grauw »

Btw according to the composer the YMZ278B OPL4 version was the original, which was then downconverted to YM2413 OPLL. The deadline was apparently really short, just one week!
  • User avatar
  • grauw Offline
  • Posts: 150
  • Joined: 2015-02-22, 3:40:22

Post by grauw »

New video: VGMPlay for MSX, Sega music (SN76489 + YM2413)

This video features the new SN76489 DCSG support, as well as the YM2413 OPLL. I picked a couple of songs from games for Sega consoles:
  1. Sega jingle (Sega MkIII, SN76489)
  2. Pókemon (Sega Pico, SN76489)
  3. Space Harrier (Sega MkIII, SN76489 + YM2413)
  4. Out Run 3D (Sega MkIII, YM2413)
The music is playing on my MSX turbo R, using the built-in OPLL and the MMM (“Musical Memory Mapper”) sound cartridge for the DCSG. The Franky and PlaySoniq cartridges are also supported for DCSG playback.

The observant viewer may notice that the Space Harrier theme also lists the YM2151 OPM; this sound chip is not actually playing, but it’s listed because the 1.01 VGM file format did not contain separate information block for OPLL and OPM.

With the SN76489 all sound chips available for MSX are now supported, so an 1.0 release is coming soon.
  • Tom Offline
  • Ragequit Member
    Ragequit Member
  • Posts: 496
  • Joined: 2011-11-30, 17:26:44
  • Location: Italy
  • Contact:

Post by Tom »

grauw wrote:the 1.01 VGM file format did not contain separate information block for OPLL and OPM.
Indeed ;)
Also known as nineko.
  • User avatar
  • grauw Offline
  • Posts: 150
  • Joined: 2015-02-22, 3:40:22

Post by grauw »

After a month of hard work, VGMPlay for MSX 1.0 is released!

You can get it from the project page. Also check the videos on Youtube.

Supported sound chips
  • AY-3-8910 PSG / YM2149 SSG
  • YM2151 OPM (SFG-01/05)
  • YM2413 OPLL (MSX-MUSIC, FM-PAC)
  • YM3526 OPL (MSX-AUDIO, Music Module, MoonSound)
  • YM3812 OPL2 (MoonSound)
  • YMF262 OPL3 (MoonSound)
  • YMF278B OPL4 (MoonSound)
  • Y8950 MSX-AUDIO (Music Module, 256K sample RAM recommended)
  • K051649 Konami SCC
  • SN76489 DCSG (Franky, Playsoniq, Musical Memory Mapper)
Usage instructions

Run VGMPlay from MSX-DOS 2, specifying the VGM file to play on the command line:

Code: Select all

vgmplay [options] <file.vgm>
Note that the compressed VGZ format is not supported, rename the file to .vgm.gz and extract it using gzip or your favourite decompression software to retrieve the uncompressed VGM file.

For more information, check the manual.
Last edited by grauw on 2020-03-03, 23:15:34, edited 1 time in total.
  • User avatar
  • grauw Offline
  • Posts: 150
  • Joined: 2015-02-22, 3:40:22

Post by grauw »

Tom wrote:
grauw wrote:the 1.01 VGM file format did not contain separate information block for OPLL and OPM.
Indeed ;)
I was thinking to get the correct chip information for the 1.01 format by checking the first 1K of song data for OPM commands… Show OPM when found, OPLL otherwise. I’m guessing there are no version 1.01 VGMs which use both OPLL and OPM?
  • User avatar
  • grauw Offline
  • Posts: 150
  • Joined: 2015-02-22, 3:40:22

Post by grauw »

I just released VGMPlay 1.1.

This is a minor intermediate release, with improvements and fixes from the last couple of months.

Changes in this version:
  • Nonprimary memory mappers supported, all available RAM can now be used.
  • High-resolution timing (4000 Hz) on MSX turboR.
  • A more informative error is shown for compressed (vgz) files.
  • Unsupported DMA commands are now skipped.
  • Franky/PlaySoniq SN76489 muting bug fixed.
  • Improved MSX-MUSIC detection.
  • Performance optimisations.
Last edited by grauw on 2020-03-03, 23:16:09, edited 1 time in total.
  • User avatar
  • grauw Offline
  • Posts: 150
  • Joined: 2015-02-22, 3:40:22

Post by grauw »

Yesterday VGMPlay for MSX version 1.2 was released! (“Nijmegen 2016 edition”)

Changes in this version:
  • VGZ file loading support
  • K052539 SCC+ music playback support
  • Dual chip support for AY-3-8910 PSG and SN76489 DCSG
  • YMF278B OPL4 ROM data playback support (preliminary)
  • High-resolution timing (300 Hz) on MSX2/2+ and MSX1 with V9938 VDP
  • Showing which sound module is used for playback
  • Improved Y8950 MSX-AUDIO sample loading speed
  • No longer force-enable the R800 on turboR
  • No longer auto-switch to 60 Hz, removed /5 and /6 options
  • New /o option to work around 1chipMSX / Zemmix Neo timing bug
  • User avatar
  • grauw Offline
  • Posts: 150
  • Joined: 2015-02-22, 3:40:22

Post by grauw »

Today VGMPlay MSX version 1.3 was released!

The highlight of this release is support for playing OPN2 VGMs on an MSX turboR with the Yamaha SFG module. The OPN and OPNA are also emulated on the Yamaha SFG, as well as the SN76489 on the PSG. Additionally, support was added for several new MSX sound expansions like the Makoto (OPNA), Neotron (OPNB), Darky (2x AY8930), DalSoRi R2 (OPL4 with 4MB RAM) and OPL3 for authentic playback of their corresponding VGMs on real hardware.

Changes in this version:
  • New chips: YM2203 OPN, YM2608 OPNA, YM2610 OPNB, YM2610B OPNB-B, YM2612 OPN2
  • New sound expansions: Makoto, Neotron, Darky, DalSoRi R2, OPL3 (C0H)
  • New timer: 1130 Hz if a MoonSound or OPL3 is present
  • Emulation of SN76489 DCSG on PSG
  • Emulation of YM2203 OPN, YM2608 OPNA and YM2612 OPN2 on Yamaha SFG
  • Translation of YM2612 OPN2 frequencies to correct tuning
  • Playback of YM2612 OPN2 PCM samples on MSX turboR
  • Playback of dual YM2203 OPN on a single Makoto + PSG or Yamaha SFG + 2x PSG
  • Playback of Y8950 MSX-AUDIO on MoonSound or OPL3, without ADPCM
  • Support of the DalSoRi R2 4MB RAM mode
  • Dual chip support for more chips
  • Support for VGM loop base and modifier
  • Improved detection of MSX-AUDIO, MoonSound, PSG, MMM and Franky
  • Improved sound chip reset and muting
  • Improved playback processing speed and accuracy
  • Samples load prior to playback
  • Added length and loop length to track information
  • Improved VGM chip overview output
  • Ability to stop playback with joystick buttons
  • Ability to use more than 4 MB memory by modifying a compile-time constant
  • Removed 1chipMSX / Zemmix Neo bug workaround (fixed in KdL firmware v3.3.1)
  • Fixed MSX-MUSIC playback issues on turbo R
  • Fixed MSX-AUDIO problem loading samples >128K
  • Fixed screen going blank on MSX1 during playback
  • Many code structure and footprint improvements
Get the latest version from the project page.
Post Reply