Author Topic: XMPlay GME plugin  (Read 51534 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: 2146
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: 2146
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: 2146
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: 2868
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.

Dotpitch

  • Posts: 2868
Re: XMPlay GME plugin
« Reply #25 on: 2 Oct '12 - 17:02 »
You should leave nsf/nsfe out of xmp-gme's priority list.

B00daW

  • Posts: 17
Re: XMPlay GME plugin
« Reply #26 on: 3 Oct '12 - 08:30 »
Tried that too.

mrmudlord

  • Guest
Re: XMPlay GME plugin
« Reply #27 on: 4 Oct '12 - 00:51 »
Tried making a suggestion to Ian for this feature in XMPlay? (overriding file extensions with other decoders)

If that doesn't work, I suppose I could try and add a option to disable support for certain formats, so then it will hopefully fall back on Winamp decoders.

Elrinth

  • Posts: 126
Re: XMPlay GME plugin
« Reply #28 on: 10 Oct '12 - 17:32 »
Not sure if you fixed this already or not.

But when I'm playing back the songs inside: Galaxy Force II (1991)(Sega AM3)(CRI)(CRI).7z
It doesn't progress to the next song after it has played the full length of the song. It just keeps playing the same song forever.
Doesn't matter if it's zipped or not. .vgm tunes doesn't seem to stop playing after the full song length has been played.

I'm using GME rev .4

mrmudlord

  • Guest
Re: XMPlay GME plugin
« Reply #29 on: 11 Oct '12 - 00:12 »
Thanks for the filename, will check.

EDIT: Works here, have you tried the looping option "no looping"?

Elrinth

  • Posts: 126
Re: XMPlay GME plugin
« Reply #30 on: 11 Oct '12 - 13:44 »
Hmmm I don't know where to set that. In xmplay you can't press Config for the plugin. Nor can you see any plugin info via xmplay while playing.
In the folder where xmp-gme.dll is only xmp-gme.txt which is just text and no settings.

Am I missing something?

Under misc in xmplay there is Track looping / ending. In the [Loop:] dropdown nothing is selected and the checkbox is selected and Limit: [1]. This is maybe xmplay bug? xmplay vanilla has nothing set in this dropdown by default and that's why there is problem?
Setting dropdown value Loop: to [Never] fixed this problem. But there is fadeout after the tracks have played, I didn't specify anywhere that there should be any fadeout. How come I have to set loop to never to get it working?
« Last Edit: 11 Oct '12 - 13:49 by Elrinth »

mrmudlord

  • Guest
Re: XMPlay GME plugin
« Reply #31 on: 12 Oct '12 - 04:41 »
Oh, I should add fadeout options indeed, thanks for reminding me.
I rigged up xmp-gme to use XMPlay's front buttons, which is why setting looping to "never" works.

And I am working on adding "Config" support, not just for fade lengths.

cooli

  • Posts: 6
Re: XMPlay GME plugin
« Reply #32 on: 27 Nov '12 - 00:58 »
Hello,

Thanks for your plugin, I've just tested vgz files but no one seem's to play,
is there any problem ?

raina

  • Posts: 1164
Re: XMPlay GME plugin
« Reply #33 on: 27 Nov '12 - 07:42 »
Thanks for your plugin, I've just tested vgz files but no one seem's to play,
is there any problem?

I ran into this before and thought the plugin just wasn't there yet. But now I took the time to investigate. I threw a .vgz file at my archiver which said it was a GZip archive. That suggested a gz archive plugin was needed and fortunately Fraggie has one available right here. After installing xmp-gz, .vgz files seem to open and play with xmp-gme.

EDIT: Oh, the original post has it:
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: 27 Nov '12 - 07:46 by raina »

cooli

  • Posts: 6
Re: XMPlay GME plugin
« Reply #34 on: 28 Nov '12 - 17:17 »
Thanks for your help, it's working now :-)

FT2Steve

  • Guest
Re: XMPlay GME plugin
« Reply #35 on: 17 May '13 - 03:38 »
The file's download link seems to be dead. Is it ethical for me to host my copy of the plugin somewhere and post a link here?

saga

  • Posts: 2146
Re: XMPlay GME plugin
« Reply #36 on: 17 May '13 - 11:04 »
You could simply send mudlord a message about it.

deus-ex

  • Posts: 235
Re: XMPlay GME plugin
« Reply #37 on: 17 May '13 - 20:21 »
The file's download link seems to be dead. Is it ethical for me to host my copy of the plugin somewhere and post a link here?

You can quench your thirst for a copy of Xmp-GME at MODLAND.
Cheers. ;)

tongub

  • Posts: 91
Re: XMPlay GME plugin
« Reply #38 on: 22 Aug '13 - 15:54 »
DELETED
« Last Edit: 22 Aug '13 - 16:02 by tongub »

Elrinth

  • Posts: 126
Re: XMPlay GME plugin
« Reply #39 on: 9 May '14 - 21:36 »
seems to be a bug with this plugin that the last song in a multitrack NSF is not playable. example is chronicles of radia war soundtrack (Radia Senki: Reimeihen) when I wanna play the end track that just cannot be played when using this plugin.

I'm currently using in_nez instead.

RGB9000

  • Guest
Re: XMPlay GME plugin
« Reply #40 on: 1 Jul '14 - 20:51 »
Hello MrMum! Thanks for this awesome plugin, it has replaced 2 Winamp plugins that I had been using and I prefer native XMP plugins. I don't know how I am just finding this plugin since it has been around for so long.
However, I know you said you were working on a working config button, I wonder if that is still underway? SNESAMP had a config button that would allow you to set such things as some of the audio parameters, the song length/fade, and titleing options. Also by right clicking a file in the playlist, you could use the plugin file info and change the tags as well as changing which channels were active.
NotSoFatSo (for NES) also allowed you to turn individual channels on and off, which is actually very useful.

Any plans for adding additional file format support? Say, for the N64 formats, the GC formats, or the PlayStation/2 formats?
Again, huge kudos and keep it up :)

kode54

  • Posts: 100
Re: XMPlay GME plugin
« Reply #41 on: 2 Jul '14 - 06:18 »
xSF formats are best handled by a separate component, even if every single one of them is merged into one component. For an example of handling everything my libraries support, see:

https://bitbucket.org/kode54/cog/src/5b7f19e308707a4a61f14b35549fe17e20541cda/Plugins/HighlyComplete/HighlyComplete/?at=cog

mudlord

  • Posts: 7
Re: XMPlay GME plugin
« Reply #42 on: 19 Jan '16 - 02:05 »
***
« Last Edit: 19 Jan '16 - 02:13 by mudlord »

cooli

  • Posts: 6
Re: XMPlay GME plugin
« Reply #43 on: 19 Mar '16 - 00:03 »
Hello,
Your plugin is fantastic, do you plan to update it to the last
Game Music Emu version ?

Elrinth

  • Posts: 126
Re: XMPlay GME plugin
« Reply #44 on: 5 Apr '16 - 23:21 »
am I the only one having the problem not being able to play the last track in nsf and gbs files with this plugin?

brycco

  • Posts: 14
Re: XMPlay GME plugin
« Reply #45 on: 23 Apr '16 - 03:44 »
am I the only one having the problem not being able to play the last track in nsf and gbs files with this plugin?

I just came here to post about this actually... In this file, Xenon.ay.zip, there are three subsongs, but the third one won't play and glitches out, showing 596 hours. The third subsong works fine in ZXTune, in both djdron's XMP-ZXTune and ZXED's XMPZXTUNE.

I think this is a bug, since all three plugins are using GameMusicEmu library.

Also, some SGC files don't play properly, notably the Coleco files from this zip.
« Last Edit: 23 Apr '16 - 05:37 by brycco »

PSXGamerPro1

  • Posts: 258
Re: XMPlay GME plugin
« Reply #46 on: 3 May '16 - 22:50 »
Should I add that it does not show a waring when you try to play chuncked nsf files that are shipped with the Crash Bandicoot games as they are a custom Naughtdog format nsf and cant be played by the plugin anyway but it is possible to play the seq's in them however in the chungs that are wavebank they are part of the vab file (which is chuncked out for every 64 KB) basically saying the chunks in it is the size of 64 KB before a new one. So, yeah Also they are similar to MIDI, except they have a key difference they have a program change state on them. And as such could make certain things in them not playable on it but for the most part they can be played on windows (just not 100% like on the sony Playstation). And yes I think this plugin shopuld be extended to include playstation vab's and seq's Also a note is that a seq reuires a vab to play right kinda like the midi plugin requires a soundfont. So in all actuallity the vab is kinda similar to a soundfont.

mudlord

  • Posts: 7
Re: XMPlay GME plugin
« Reply #47 on: 5 May '16 - 01:13 »
am I the only one having the problem not being able to play the last track in nsf and gbs files with this plugin?

I really should get on with these problems. Realistically for me, its purely a lack of motivation to get around to do stuff these days. I tend to be a terrible procrastinator.

evknucklehead

  • Guest
Re: XMPlay GME plugin
« Reply #48 on: 13 Jul '16 - 19:15 »
For some reason, the version linked in the first post is triggering a trojan warning from windows defender. For now, I'm using the v4 download linked by deus-ex, but I'd really like to use something more up-to-date.

deus-ex

  • Posts: 235
Re: XMPlay GME plugin
« Reply #49 on: 13 Jul '16 - 20:05 »
The version linked in the first post is password protected, probably that's something Windows defender doesn't know to handle properly? Why to password protect a public download is another question, though.

EDIT: The recent release of the Xmp-GME plugin, as is linked in the first post, uses a different or modified executable compression than the previous releases, which is likely to trigger an Anti-Virus application alert when it is unable to decompress Xmp-GME.dll for further examination.
« Last Edit: 13 Jul '16 - 20:46 by deus-ex »

evknucklehead

  • Guest
Re: XMPlay GME plugin
« Reply #50 on: 14 Jul '16 - 08:55 »
Why would it identify as a specific type of trojan, though? Specifically, Win32/Tulim.A!cl. Logically, if it was an inability to decompress the .dll, it would trigger as a generic "Unreadable  file" style error.

I also tried telling Windows Defender to allow the file, but it detected and auto quarantined the file again anyway.

I think that for now, unless Mudlord releases another build that doesn't trigger the warning, I'll just stick with the older version, even though some things sound a little better on the newer version.

deus-ex

  • Posts: 235
Re: XMPlay GME plugin
« Reply #51 on: 14 Jul '16 - 09:33 »
Why would it identify as a specific type of trojan, though?

Beside databases with definitions of already known viruses Anti-Virus applications use heuristic analyses to search for patterns of malicious code to identify yet unknown new/modified viruses. Sometimes this leads to false alerts.

I also tried telling Windows Defender to allow the file, but it detected and auto quarantined the file again anyway.

I don't have made good experiences with Windows defender either, therefore I disabled it in favour of a better product.

kode54

  • Posts: 100
Re: XMPlay GME plugin
« Reply #52 on: 15 Jul '16 - 04:51 »
For reasons I wish to understand, mudlord is packing his releases with his personal packing software, which I have a slightly old source code to. Nothing too overt, just a custom loader and LZMA compression.

I say, wish to understand, because I think the source to this software is available somewhere. I think he uses his packer on his releases because he's proud of it. I know I would be, accomplishing something like that at long last. I even helped him out a bit with getting it working on more software, including my initial attempt at handling DLL imports and exports. I think he uses a stock library for processing those now, though.

He also password protects archives on his site, using a common password you may ask him for, or ask him to post here, because he frequently posts files that get caught as false positives by virus scanners, and those files being Google indexed tends to lead to his entire domain being blacklisted by browser security lists.

I stopped having the virus scanner issue ages ago, because I pay the expensive Code Signing Certificate Tax.

saga

  • Posts: 2146
Re: XMPlay GME plugin
« Reply #53 on: 15 Jul '16 - 12:19 »
Quote
because he frequently posts files that get caught as false positives by virus scanners
...such as anything packed with custom exe packers.

piovrauz

  • Posts: 967
Re: XMPlay GME plugin
« Reply #54 on: 16 Jul '16 - 18:00 »
"... because I pay the expensive Code Signing Certificate Tax". You made my day.

cooli

  • Posts: 6
Re: XMPlay GME plugin
« Reply #55 on: 28 Feb '17 - 13:52 »
Hello mrmudlord,

Is there any chance we see an update of your plugin one day?