Author Topic: XMPlay GME plugin  (Read 53378 times)

mrmudlord

  • Guest
XMPlay GME plugin
« on: 13 Sep '12 - 16:18 »
Here is a implementation of blargg's Game_Music_Emu under XMPlay.

Supports the following files:
* AY
* GBS
* GYM
* HES
* KSS
* NSF
* NSFE
* RSN
* SAP
* SGC
* SPC
* VGM
* VGZ

Supports basic functionality like subsongs for GBS/HES/NSF, tags, seeking, etc. You will need xmp-rar as well as xmp-zip and possibly xmp-gzip to use this.
« Last Edit: 2 Aug '15 - 06:35 by mrmudlord »

deus-ex

  • Posts: 235
Re: XMPlay GME plugin
« Reply #1 on: 13 Sep '12 - 16:23 »
Thank you for sharing.  :)

mrmudlord

  • Guest
Re: XMPlay GME plugin
« Reply #2 on: 13 Sep '12 - 23:52 »
revision 2 up, mainly fixed memory leaks as well as adding RSN/VGZ support. Requires xmp-rar as well as xmp-zip.

rst

  • Posts: 309
Re: XMPlay GME plugin
« Reply #3 on: 14 Sep '12 - 01:14 »
awesome !!!

thx for this !

in fact i were near to perform a request here for the gme :)
« Last Edit: 14 Sep '12 - 01:17 by rst »

dbz

  • Posts: 134
Re: XMPlay GME plugin
« Reply #4 on: 14 Sep '12 - 03:54 »
I've just tried using this plugin, but unfortunately it doesn't load in XMplay for me. I have the other plugins mentioned (rar, zip and gzip). Is this plugin incompatible with Win98/SE by any chance?

mrmudlord

  • Guest
Re: XMPlay GME plugin
« Reply #5 on: 14 Sep '12 - 04:03 »
Yes.
Blame MSVC2010 for not making binaries compatible with Win98.

saga

  • Posts: 2179
Re: XMPlay GME plugin
« Reply #6 on: 14 Sep '12 - 12:32 »
KernelEx might help (as with most modern software). A further requirement might be to make the library compatible with Windows 2000, there are many solutions for that floating around the web. Or compile with VS2008 Express if you really care about Win98.

guesst

  • Guest
Re: XMPlay GME plugin
« Reply #7 on: 14 Sep '12 - 19:39 »
Or compile with VS2008 Express if you really care about Win98.

AFAIK the last version compatible with Win98 was MS Studio .NET aka 7.1 aka 2003.

saga

  • Posts: 2179
Re: XMPlay GME plugin
« Reply #8 on: 14 Sep '12 - 20:12 »
Actually, VS2005 should still work (but not for Win95). Not a big loss either way, especially since there is KernelEx for Win98 which makes VS2008 executables runnable on this system.

mrmudlord

  • Guest
Re: XMPlay GME plugin
« Reply #9 on: 15 Sep '12 - 01:45 »
I should have added this in the Readme, sorry about the hassles.  Working on adding looping via XMPlay's built in buttons, but if not able to, will resort to a config option like I did in the Winamp version of this.

Is it confirmed to work in KernelEx, or are we SOL?

dbz

  • Posts: 134
Re: XMPlay GME plugin
« Reply #10 on: 15 Sep '12 - 20:21 »
I'd rather not take the risk of KernelEx messing up my system somehow, so I've never used it - even though I have heard about it before, and you can supposedly run programs you otherwise couldn't. So I can't confirm or deny whether or not it works with this... maybe there's someone else (braver than me) who can answer your question.

saga

  • Posts: 2179
Re: XMPlay GME plugin
« Reply #11 on: 15 Sep '12 - 22:59 »
I'd rather not take the risk of KernelEx messing up my system somehow
There is no reason why KernelEx would do this, since it does actually not modify any system files. There's no risk in running it - you can enable or disable it for each application.
I can also personally assure you that KernelEx works like a charm - I have it running on my (nowadays rarely used) oldskool comp which hasn't been reinstalled since 2003 or so, and surprise: it didn't break down when I installed KernelEx!
« Last Edit: 15 Sep '12 - 23:01 by saga »

dbz

  • Posts: 134
Re: XMPlay GME plugin
« Reply #12 on: 16 Sep '12 - 21:16 »
If that's the case, maybe I'll give it another look...

mrmudlord

  • Guest
Re: XMPlay GME plugin
« Reply #13 on: 18 Sep '12 - 02:02 »
Added revision 3, which adds looping.
If you select no looping in XMPlay, plays as usual, otherwise, loops forever.
Loop cancels as soon as you switch back to no looping.

mrmudlord

  • Guest
Re: XMPlay GME plugin
« Reply #14 on: 20 Sep '12 - 00:22 »
rev 4 with tweaked looping.

Firebrand

  • Posts: 25
Re: XMPlay GME plugin
« Reply #15 on: 20 Sep '12 - 12:50 »
Nice work so far, it seems to work well for basic playing of files.

tails_

  • Posts: 74
Re: XMPlay GME plugin
« Reply #16 on: 25 Sep '12 - 22:59 »
Sounds pretty distorted on at least these VGMs: http://tails.bloodheaven.net/VGMPP/_etc/VGMTools/_tmp/ChattyOPNA.7z

Also, why it doesn't play VGMs directly from archive?

mrmudlord

  • Guest
Re: XMPlay GME plugin
« Reply #17 on: 26 Sep '12 - 00:21 »
I need to report the distort bug to the maintainer of the GME library.

And not playing compressed VGMs from archives? Maybeyou don't have xmp-7z as well as other archive plugins like xmp-zip?
« Last Edit: 26 Sep '12 - 00:23 by mrmudlord »

B00daW

  • Posts: 17
Re: XMPlay GME plugin
« Reply #18 on: 27 Sep '12 - 08:03 »
Very useful plugin so far!  I'm glad there is an XMPlay only option as well. :)  Thank you for taking the time.

A few things to note.  NSFPlay 2.2 by rainwarrior is known to be the most updated and accurate, open source NSF player known right now.  Being that there is a lot of NSF composition these days it pays to be very accurate in playing.  Perhaps adding his code would help. :)

http://rainwarrior.ca/projects/nsfplay/

Something very exciting that I would like to add is that the creator of NSF and SGC has created the SPC2 (or SP2) format.  (This is also the first public announcement with the resources.)

Here is the spec:  http://blog.kevtris.org/blogfiles/spc2_file_specification_v1.txt

The goal of the format was to allow a multiple track set of SPCs in one file that is able to be played on hardware without taking up a lot of ROM space.  kevtris, marshallh, and CaitSith2 achieved this.

marshallh and CaitSith2 made an easy to use SPC2 packer (with source):  https://dl.dropbox.com/u/36071551/spc2_pack.zip

And here is a 150MB archive of SP2s:  https://dl.dropbox.com/u/36071551/spc2.rar

Hope you'll consider supporting this. :)
« Last Edit: 27 Sep '12 - 08:10 by B00daW »

brycco

  • Posts: 14
Re: XMPlay GME plugin
« Reply #19 on: 28 Sep '12 - 00:11 »
ah wow.. finally a native plugin for these pesky formats.. i've been using nezplug++ but i'm really not a fan of winamp plugins. they conflict a lot, write ini's anywhere they feel like and cause xmplay to crash with enough of them installed.

seeking could be a bit better, it hangs a bit when seeking far into some songs (vgm/spc etc nsf seems okay). also more robust metadata handling would be great, i don't think NSFs make use of the title/year.. and NSFE subsongs aren't getting the correct length?

anyway this is great keep up the good work :-)

mrmudlord

  • Guest
Re: XMPlay GME plugin
« Reply #20 on: 28 Sep '12 - 03:23 »
Nothing can be done about seeking: Seeking in emulated file dumps is a brute-force operation. They don't work like normal formats like streamed/tracked/sequenced formats where its easy to seek.

As for title handling, I am just using the APIs GME provides for title/metadata. I know it has interfaces for SPC x666 tag handling, not sure if NSF has similar tags...

B00daW

  • Posts: 17
Re: XMPlay GME plugin
« Reply #21 on: 28 Sep '12 - 03:58 »
NSF does not have a tagging format for multiple tracks.  However NSFe does; and NSF2 will as well.  SPC2 has the ability to hold multiple accounts of ID666 tags.

B00daW

  • Posts: 17
Re: XMPlay GME plugin
« Reply #22 on: 2 Oct '12 - 02:25 »
Also I'm wondering how certain formats can be disabled within XMP-GME.  I have tried setting priorities between XMP-GME and NSFPlug, yet XMPlay still seems to prefer to open NSF files with XMP-GME.  NSFPlug's emulation and compatibility is superior to GME's.

Dotpitch

  • Posts: 2871
Re: XMPlay GME plugin
« Reply #23 on: 2 Oct '12 - 06:22 »
The Priority filetypes-box should be able to do that, is that not working on your machine? Can NSFPlug play those files if xmp-gme is not loaded?

B00daW

  • Posts: 17
Re: XMPlay GME plugin
« Reply #24 on: 2 Oct '12 - 14:04 »
Yes.  If NSFPlug (by rainwarrior) is loaded it plays NSFs perfectly fine without XMP-GME.  NSFPlug plays NSF and NSFE filetypes.

I tried listing all the filetypes for the XMP-GME plugin and making NSFE and NSF last respectively. Then I set NSFPlug's filetype priorities as NSF then NSFE.  There are more NSFs than NSFe's at this point.  This does not work.  I think XMPlay loads XMP-*.dll (XMPlay) plugins in priority before in_*.dll (Winamp) plugins.