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

VGMPlay for MSX

Post by grauw »

I’ve started a little project to play VGM chip music files on MSX. Many of the sound chips supported by the VGM format are also available on MSX: PSG (AY-3-8910 / YM2149), Konami SCC (K051649), MSX-MUSIC (YM2413), MSX-AUDIO (Y8950, YM3526), MoonSound (YM3812, YMF262, YMF278B), Yamaha SFG-01/05 (YM2151), Franky / PlaySoniq / MMM (SN76489), etc.

Video: VGMPlay for MSX, first results

This is a video of the first working version of the player, it plays back a VGM song recorded from the Sharp X1 version of Sorcerian on the MSX PSG sound chip. Compare with the original. (Note that the pitch on the MSX is a bit lower, this is because the X1 has a slightly higher clock frequency.)

It is not ready for release yet, but the source code is available for those curious.

Edit: VGMPlay has been released, see the release announcement.

Project page:
http://www.grauw.nl/projects/vgmplay-msx/

Thread on msx.org:
http://www.msx.org/forum/msx-talk/software/vgmplay-msx
Last edited by grauw on 2020-03-03, 23:14:23, edited 6 times in total.

Post by Kaminari »

Amazing project, congratulations!
  • User avatar
  • MaliceX Offline
  • Posts: 226
  • Joined: 2012-09-29, 11:45:48
  • Location: Australia
  • Contact:

Post by MaliceX »

This ought to be very interesting! Although I don't own an MSX, I wasn't aware the YM3526 (OPL1) existed in this platform! One to watch. :)
-dj.tuBIG/MaliceX
  • User avatar
  • grauw Offline
  • Posts: 150
  • Joined: 2015-02-22, 3:40:22

Post by grauw »

Video: VGMPlay for MSX, YM2151 support

The result of adding support for the YM2151 “OPM” sound chip to VGMPlay for MSX. It is the same Sorcerian song as in the last video, but this time from YM2151 version which was captured from the Sharp X1 Turbo.

The YM2151 is available for MSX in the Yamaha SFG-01 / 05 sound modules. These were made for the side slots in Yamaha’s CX5M music computers, however using an adapter cable they can also be plugged in to any other MSX computer.

Compare: http://vgmrips.net/packs/pack/sorcerian ... board-ship

As before, the pitch is a bit lower because the X1 has a slightly higher clock frequency. Also note that the song ends a bit prematurely, this is because I do not allocate enough memory for the entire song yet.
  • User avatar
  • grauw Offline
  • Posts: 150
  • Joined: 2015-02-22, 3:40:22

Post by grauw »

New video: VGMPlay for MSX, YM2151 support (full length)

Now I load the song data into memory mapper pages so I can store and play back the entire song :).
  • User avatar
  • grauw Offline
  • Posts: 150
  • Joined: 2015-02-22, 3:40:22

Post by grauw »

New video: VGMPlay for MSX, YM2413 (MSX-MUSIC / OPLL) support

I’ve added YM2413 support, also known as MSX-MUSIC or OPLL. The song playing is the prelude from the MSX2 version of Final Fantasy, but the YM2413 was also commonly used in the Sega Master System and some arcade machines.

Compare: http://vgmrips.net/packs/pack/finalfantasy#01-prelude

This time the frequencies match the MSX clock frequency, not surprisingly :), so the pitch is perfect.

Also new since the last update is GD3 tag support.
  • User avatar
  • grauw Offline
  • Posts: 150
  • Joined: 2015-02-22, 3:40:22

Post by grauw »

New video: VGMPlay for MSX, YM3526 OPL support

Now also the playback of YM3526 OPL songs is supported, on the MSX-AUDIO (Music Module) sound cartridge which uses the Y8950. The music is from the arcade game Dangar - Ufo Robo. I’m close to supporting Y8950 as well but I need to implement sample loading for that to work properly.

Compare: http://vgmrips.net/packs/pack/dangar-uf ... skyscraper
  • User avatar
  • grauw Offline
  • Posts: 150
  • Joined: 2015-02-22, 3:40:22

Post by grauw »

New video: VGMPlay for MSX, YM3812 OPL2 support

Added support for YM3812 OPL2 song playback on MoonSound (OPL4). Used in PC SoundBlaster cards as well as arcade machines. I definitely recognise those nice characteristic sounds also familiar from the OPLL, due to the additional waveforms. The music playing is from the PC game Tyrian.

Compare: http://vgmrips.net/packs/pack/tyrian-pc ... nce-part-1

By the way, in this video I accidentally left my CPU load indicator enabled :).
  • User avatar
  • grauw Offline
  • Posts: 150
  • Joined: 2015-02-22, 3:40:22

Post by grauw »

New video: VGMPlay for MSX, YMF262 OPL3 support

Adding support for YMF262 OPL3 song playback on MoonSound (OPL4) wasn’t much work after the last video. The OPL3 was mainly used in some PC SoundBlaster and AdLib sound cards. The music playing is from the PC-9801 game Miwaku no Chousho.

Compare: http://vgmrips.net/packs/pack/miwaku-no ... inful-sigh
  • User avatar
  • grauw Offline
  • Posts: 150
  • Joined: 2015-02-22, 3:40:22

Post by grauw »

New video: VGMPlay for MSX, K051649 Konami SCC support

I added support for them K051649 Konami SCC, quite a one-of-a-kind sound chip which is used in many Konami MSX games as well as on the Konami GX400 arcade system. The music playing is from the intro of Nemesis 3, also known as Gradius: Gofer’s ambition.

Compare: http://vgmrips.net/packs/pack/nemesis-3 ... prologue-1

Note I haven’t added K052539 (SCC+) support yet, but there is currently no SCC+ music available yet in the VGM format as far as I can tell so… :)

Post by Kaminari »

I have Snatcher in the pipeline, but I will probably need to rip it with Mess. For some reason, I can't seem to log the SCC with NEZplay.
  • User avatar
  • grauw Offline
  • Posts: 150
  • Joined: 2015-02-22, 3:40:22

Post by grauw »

Nice, Snatcher’s music is great.
  • User avatar
  • grauw Offline
  • Posts: 150
  • Joined: 2015-02-22, 3:40:22

Post by grauw »

New video: VGMPlay for MSX, Y8950 MSX-AUDIO support

Although the FM part of the Y8950 MSX-AUDIO already worked, the ADPCM sample part didn’t yet which prevented me from proclaiming full Y8950 support. The complicating factors were that this was the first time I had to load samples, as well as the Y8950 having different addressing modes for ROM and RAM sample banks. Note that I’m being a bit wasteful with memory, as after the samples get loaded into the Y8950 I do not free up the memory. Sorry.

The music is from the arcade game Ginga NinkyouDen.

Compare: http://vgmrips.net/packs/pack/ginga-nin ... with-voice

It surprised me that in the Y8950 VGM songs I could find, the ADPCM was only used for voice and sound effects. In western MSX scene games post-1990, the ADPCM was often used for drums and loops.
  • User avatar
  • grauw Offline
  • Posts: 150
  • Joined: 2015-02-22, 3:40:22

Post by grauw »

New video: VGMPlay for MSX, Y8950 MSX-AUDIO playing Psycho Soldier JP theme

Not long after I made the last MSX-AUDIO video I noticed a nice song from the game Psycho Soldier with a really long sample.

Compare: http://vgmrips.net/packs/pack/psycho-so ... -area-1-jp

So far I’ve ignored frequency differences and this is where things start to break down a little; not only is the voice a few notes lower (as expected), but as the sample also runs 10% more slowly, it drifts out of sync. Though luckily it retriggers it for different parts so that they are in sync again.

Still, all considering, not too bad.
  • User avatar
  • grauw Offline
  • Posts: 150
  • Joined: 2015-02-22, 3:40:22

Post by grauw »

New video: VGMPlay for MSX, YMF278B OPL4 support

Support for the YMF278B OPL4 was added. The music is from the game Sonyc for MSX2+. This is the only OPL4 VGM pack I could find, hopefully a few more will be added!

Compare: http://youtu.be/3RC_h1o0_GE
Compare: http://vgmrips.net/packs/pack/sonyc-ms#01-title

A noteworthy omission is that I haven’t implemented PCM loading for the OPL4 yet. This is because I don’t have any VGMs which use it, so I have no way of testing it (Sonyc uses the built-in YRW801 ROM tones).
Post Reply