Chat

Author Topic: XGM / VGM player for Megadrive  (Read 3645 times)

Offline Stef

  • Newbie
  • Posts: 10
    • Email
XGM / VGM player for Megadrive
« on: July 12, 2016, 07:42:26 AM »
I finally completed my XGM player that i started a long time ago (few time after i developed the XGM driver)...
I was really busy with SGDK and private stuff that i had to postpone my XGM player development but finally i find sometime to complete it :)
It's still not perfect, has some bugs (refresh, playback issues with fast tempo...) but still i am happy with it's current state so i think i can release it =)
XGM player is intended to play XGM music through the XGM driver. I developed a tool which allow to convert Megadrive VGM files into XGM format so you can basically see it as a Megadrive VGM player as well... The difference is that it allows to play 4 PCM at same time where Megadrive VGM is normally limited to 1 PCM channel only. But ok, that is useful only for SFX for game as there is no music tracker taking advantage of it :p

What better than a Technosoft compilation to introduce the XGM player :D
Musics from the following games are included in the rom :
- Dragon's Fury
- Elemental Master
- Thunder Force 2/3/4

Because of rom size limitation i could not include all tracks for those games so i made a (personal) selection of 80 tracks.
You can find the download link at the bottom of the message.

Edit:
Released a new VGM compilation for XGM player :) This time it's a tribute to Jesper Kyd and its awesome tracks (mainly from Batman and Robin).
Because of the length of the different tracks i could not put more than 26 so i had to discard a lot of them unfortunately, the selection was difficult :-/
This new compilation also introduce a new version of the XGM Player (version 2), here are the differences:
- bug fixes (still some remains with fast tempo, sometime music pause without any reason)
- added a way to disable the starfield background (START + A)
- added a way to hidden the playlist (except current playing track) for nice blind jukebox parties :p (START + B)

You can find the download link at the bottom of the message.

I also completed my XGM Rom Builder tool so you can build your own compilation (finally).
Note that i developed the tool in java so you need Java to be installed on your system.
The tool is a bit rough but it does the job hopefully, you can find the download link at the bottom of the message.

Edit 2:
Added a new VGM compilation using the last version of my XGM player (V3).
This time this is a Streets Of Rage VGM compilation :) I picked music from all episode but a lot of them come from episode 2 which has imo the best tracks !

Technosoft VGM compilation rom : http://bit.ly/2nw9JRN
Jesper Kyd VGM compilation rom : http://bit.ly/2o74J7o
Streets of Rage VGM compilation rom : http://bit.ly/2ou2k2T
XGM Rom builder tool (updated to v1.2) : http://bit.ly/2nevliZ

Small animation showing the XGM player in action: https://pbs.twimg.com/tweet_video/CnHGA82WIAAuo9B.mp4

« Last Edit: March 28, 2017, 12:57:39 PM by Stef »

Offline mihaelkyeah

  • Full Member
  • Posts: 311
  • Learn the best from all worlds
    • YouTube channel
    • Email
XGM / VGM player for Megadrive
« Reply #1 on: July 12, 2016, 05:17:38 PM »
Looking good! I can't wait to see the XGM driver being implemented in DefleMask, or at least a different tracker that supports the 4 PCM thing. ;_;

*would otherwise have to learn how to SGDK*

Offline MegaSphere

  • Jr. Member
  • Posts: 87
  • 50hz sucks
XGM / VGM player for Megadrive
« Reply #2 on: July 13, 2016, 07:57:24 AM »
Ohh yes please, this looks awesome!

It's so cool how you can see the volume of each operator.

I wonder how this one looks with it's use of special ch3 mode.
http://www.deflemask.com/forum/show-off-your-work/solomonster-and-megasphere-digital-warmth-(ym2612psg)
« Last Edit: July 13, 2016, 08:00:16 AM by MegaSphere »
To understand FM, I think of each OP as an OSC that can also be a LFO.

Offline Stef

  • Newbie
  • Posts: 10
    • Email
XGM / VGM player for Megadrive
« Reply #3 on: July 14, 2016, 06:59:43 PM »
Thanks :)
Well the special mode if CH3 only allow independent frequency for each op, that wouldn't make a big change in the display here (frequency is represented by the small horizontal red line) :)

Offline Delek

  • Salí para ver
  • Administrator
  • Hero Member
  • Posts: 1765
    • Delek's Website
    • Email
XGM / VGM player for Megadrive
« Reply #4 on: July 14, 2016, 07:12:52 PM »
This looks amazing to say the least. Do you have the .xgm format specs in a public url?

Offline Stef

  • Newbie
  • Posts: 10
    • Email
XGM / VGM player for Megadrive
« Reply #5 on: July 14, 2016, 08:59:10 PM »
Thanks Delek ! Here is the URL of XGM specifications :
https://raw.githubusercontent.com/Stephane-D/SGDK/master/bin/xgm.txt

Don't know if you remember but we already had a talk about supporting XGM in deflemask :)
We ended with the idea of just using PCM with different id to differentiate different PCM channel (id#0 for PCM0 and id#3 for PCM3).
In fact my xgmtool (used to convert VGM to XGM format) already supports it !

Offline mihaelkyeah

  • Full Member
  • Posts: 311
  • Learn the best from all worlds
    • YouTube channel
    • Email
XGM / VGM player for Megadrive
« Reply #6 on: July 15, 2016, 11:47:10 AM »
Stef: I noticed the bug you mentioned about playback issues with fast tempo (that is, if you were referring to how it starts playing all fast and then it adjusts to the song's original speed). But I think that could be bypassed by placing a short silence at the beginning of the track, right?

Offline Heavy Viper

  • Jr. Member
  • Posts: 80
XGM / VGM player for Megadrive
« Reply #7 on: July 15, 2016, 05:58:50 PM »
Dang, sorry I missed this - you broke the news just before my birthday! Cheers for the awesome present, Stef. ;>

Offline Stef

  • Newbie
  • Posts: 10
    • Email
XGM / VGM player for Megadrive
« Reply #8 on: July 15, 2016, 07:55:08 PM »
mihaelkyeah> Unfortunately it's not as simple than that, for instance sometime the music ends but the player doesn't detect it and last notes remains for sometime. And there is some other weird things... but indeed adding a 2 seconds pause between tracks could be nice anyway :)

Heavy Viper> Thanks, glad you appreciate it and happy birthday =)

Offline MegaSphere

  • Jr. Member
  • Posts: 87
  • 50hz sucks
XGM / VGM player for Megadrive
« Reply #9 on: July 16, 2016, 05:53:28 AM »
mihaelkyeah> Unfortunately it's not as simple than that, for instance sometime the music ends but the player doesn't detect it and last notes remains for sometime. And there is some other weird things... but indeed adding a 2 seconds pause between tracks could be nice anyway :)

Heavy Viper> Thanks, glad you appreciate it and happy birthday =)

Instead of inserting silence, how about making a track play that is just this. http://i.imgur.com/O18Q0ZY.png
Would that work?
To understand FM, I think of each OP as an OSC that can also be a LFO.

Offline mihaelkyeah

  • Full Member
  • Posts: 311
  • Learn the best from all worlds
    • YouTube channel
    • Email
XGM / VGM player for Megadrive
« Reply #10 on: July 17, 2016, 06:52:04 PM »
MegaSphere: for PSG, note-offs might work nicely, but some FM instruments have very slow release rates, and some others (like a lot of Matt Furniss' instruments) have no release rate at all. Maybe a 'blank' cutoff instrument could do the trick. c:

Offline Stef

  • Newbie
  • Posts: 10
    • Email
XGM / VGM player for Megadrive
« Reply #11 on: July 18, 2016, 07:48:47 AM »
In fact when you issue a "stop" command in the XGM player it does play a special track to stop all YM and PSG channels, sending key off in indeed not enough to stop sound from the YM chip.
« Last Edit: July 18, 2016, 07:51:22 AM by Stef »

Offline mihaelkyeah

  • Full Member
  • Posts: 311
  • Learn the best from all worlds
    • YouTube channel
    • Email
XGM / VGM player for Megadrive
« Reply #12 on: July 18, 2016, 11:58:07 AM »
If the sound doesn't stop in the OPN2, it may be because of instruments having really slow or non existent release rates, so an empty cutoff instrument could work. ^o^

*repeats himself* :v

Here's an example attached.
« Last Edit: July 18, 2016, 12:11:32 PM by mihaelkyeah »

Offline Stef

  • Newbie
  • Posts: 10
    • Email
XGM / VGM player for Megadrive
« Reply #13 on: August 12, 2016, 08:35:44 PM »
Released a new VGM compilation for XGM player :) This time it's a tribute to Jesper Kyd and its awesome tracks (mainly from Batman and Robin).
Because of the length of the different tracks i could not put more than 26 so i had to discard a lot of them unfortunately, the selection was difficult :-/
This new compilation also introduce a new version of the XGM Player (version 2), here are the differences:
- bug fixes (still some remains with fast tempo, sometime music pause without any reason)
- added a way to disable the starfield background (START + A)
- added a way to hidden the playlist (except current playing track) for nice blind jukebox parties :p (START + B)

You can download the ROM from here: Download

I also completed my XGM Rom Builder tool so you can build your own compilation (finally).
Note that i developed the tool in java so you need Java to be installed on your system.
The tool is a bit rough but it does the job hopefully, you can download the tool from here: Download

(copy/pasted in first post so people don't miss it ^^)

Offline Heavy Viper

  • Jr. Member
  • Posts: 80
XGM / VGM player for Megadrive
« Reply #14 on: August 13, 2016, 11:44:21 AM »
Excellent work yet again, Stef. :>