Skip to content

VGMPlay / in_vgm

Last update: 2023-12-31 (v0.51.1)

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

Moderator: Staff

  • User avatar
  • ValleyBell Offline
  • Posts: 4768
  • Joined: 2011-12-01, 20:20:07
  • Location: Germany

Post by ValleyBell »

For in_vgm.ini, it is actually:

Code: Select all

[EmuCore]
YM2612=1
  • User avatar
  • kyusawamura Offline
  • Posts: 33
  • Joined: 2015-06-08, 20:42:22
  • Location: Argentina
  • Contact:

Post by kyusawamura »

Gnome wrote:Make sure that your sound core type is set to "NUKE" in the .ini file. It should look like this:

Code: Select all

Core = NUKE
The core is set to NukedOPN2, what I'm saying is that it always sounds like the MD Model 1 YM2612. I want to change it into, say, the Model 2 ASIC YM3438 and that's something I could do in foo_input_vgm for foobar, but couldn't find how to do in in_vgm for Winamp.
ValleyBell wrote:Which value is what is (sort of) documented in VGMPlay.ini.
It should be noted that "0x" is a prefix and the digits after it form the actual number.
i.e. 0x00, 0x01, 0x02, 0x03
You can also just write 0, 1, 2 or 3 in that case.
I will try this, thank you!
  • User avatar
  • blitzlunar Offline
  • Posts: 126
  • Joined: 2012-12-21, 15:30:24
  • Location: UK

Post by blitzlunar »

ValleyBell wrote:Comment: not part of the official release, but always up-to-date
You may want to reword this, the foobar2000 component hasn't been updated in three years, and is increasingly displaying signs of incompatibility (e.g. OutRunners Arcade, and no doubt much else.)
One hopes the component will be updated soon. Also, is there a changelog for VGMPlay? I would like to read up on everything that the component is missing.
  • User avatar
  • ValleyBell Offline
  • Posts: 4768
  • Joined: 2011-12-01, 20:20:07
  • Location: Germany

Post by ValleyBell »

That's a good point! I fixed the comment.

VGMPlay and in_vgm should have a changelog included. They are mostly identical, except for UI-related stuff.
If you want to read those online, you can get them from the GitHub repos. (changelog VGMPlay / changelog in_vgm)
  • User avatar
  • blitzlunar Offline
  • Posts: 126
  • Joined: 2012-12-21, 15:30:24
  • Location: UK

Post by blitzlunar »

Ahh, wonder why I couldn't spot those. Thanking you kindly!

Post by MastaGambit »

I can't get in_vgm to play Virtual Boy (VSU-VUE) tracks in Winamp, despite the fact that they play in VGMPlay just fine. My Winamp version is 5.65. (Hell I don't even know if there's a new version of Winamp beyond that.)
  • User avatar
  • ValleyBell Offline
  • Posts: 4768
  • Joined: 2011-12-01, 20:20:07
  • Location: Germany

Post by ValleyBell »

Do you have any other plugin installed that is able to play VGMs? in_ym for example?
If multiple plugins can play the same formats, they fight with each other. I already had similar bug reports in the past like this one: https://github.com/vgmrips/vgmplay/issues/78
  • muteKi Offline
  • Posts: 17
  • Joined: 2012-07-10, 3:53:51

Post by muteKi »

Somewhat related to the last few posts in this thread, it seems that in_vgmw.dll and in_vgmstream.dll on Winamp clash over handling of .vgm files. I brought up this issue with vgmstream, as it was the plugin winamp was assigning to .vgm files (.vgz was fine) on their github page here: https://github.com/vgmstream/vgmstream/issues/1169

The reply from bnnm explains what happened, and how this might be fixable.
Aha, if you rename in_vgmW.dll to in_vgm.dll, or in_vgmstream.dll to in_zvgmstream.dll (or anything, as long as vgmstream's .dll goes after in_vgm's dll in the plugin folder) that should fix the issue.

Here is what's going on:

Winamp first loads plugins as found in the plugin folder (ordered by filename), and asks every plugin if it supports the file (checking the contents). If nobody "claims" it, then it'll pass it to the first .dll that reports accepting the extension (without looking at the contents).

vgmstream now ignores non-streamed .vgm (used to "claim" it before), but in_vgm doesn't directly "claim" .vgm by content (it's common for most plugins to just leave it to the extension matching). Both .dll report accepting .vgm, so which plugin gets the .vgm is decided by the filename order.

This would be your order:

in_vgmstream.dll
in_vgmW.dll
But I had this, so the issue didn't trigger for me:

in_vgm.dll
in_vgmstream.dll
So basically renaming either would work as long as vgmstream goes after.

Can't really fix this, other than setting an option to not to report any extensions or something. That affects the open dialog and file types associations though. For now will write some info in the guide. Maybe you can bring it up to the in_vgmW.dll's author to just call it in_vgm.dll, or "claim" the file during IsOurFile to avoid these clashes.
I don't know the head from the ass of coding up winamp plugins so I don't know what to make of this, but it sounds like there's a way for in_vgmw.dll to make itself the handler for .vgm files in winamp that it isn't doing, leading in_vgmstream to be used incorrectly to play the files. It's not the end of the world as I can simply rename the plugin to get around this clashing issue, but I think this might be something to look into for future releases.

In any case I'm posting this here in case anyone else has this issue.
  • User avatar
  • ValleyBell Offline
  • Posts: 4768
  • Joined: 2011-12-01, 20:20:07
  • Location: Germany

Post by ValleyBell »

Ah, thanks - so that is what the IsOurFile functions does!

Back when Maxim wrote the first version of in_vgm, he commented that the function is important for proper file detection with HTTP URLs, so I never bothered with this.
I'll have a look before doing the next in_vgm release.

For reference, I made a GitHub issue about it here: https://github.com/ValleyBell/in_vgm-libvgm/issues/4

Post by Retrochewtoy »

in_vgm and vgmplay 0.51.0 don't work on Windows 98. in_vgm doesn't show up in Winamp 5.0, and vgmplay throws the following illegal opperation:

Code: Select all

VGMPLAY caused an invalid page fault in module MSVCP60.DLL at 167:780c865a
  • User avatar
  • ValleyBell Offline
  • Posts: 4768
  • Joined: 2011-12-01, 20:20:07
  • Location: Germany

Post by ValleyBell »

in_vgm requires MS VC2010 runtimes to work. I think this effectively means you need Windows XP or higher. (Windows 2000 lacks certain security functions that VC2010 wants.)

About VGMPlay ... I have to look into that. It is possible that I'm using some Unicode API that Windows 98 doesn't support.
  • User avatar
  • ValleyBell Offline
  • Posts: 4768
  • Joined: 2011-12-01, 20:20:07
  • Location: Germany

Post by ValleyBell »

Actually .... can you check something?
  1. drop a .m3u playlist on VGMPlay
  2. drop a .vgm file on VGMPlay
and tell me when exactly it crashes. (before showing the file name, while displaying the tags, etc.)
  • Dekyo-NO Offline
  • Posts: 100
  • Joined: 2017-11-02, 3:58:27

Post by Dekyo-NO »

Japanese anonymous made another foobar2000 port of in_vgm. You can find it in the Japanese foobar2000 component repository. It is in Alpha 1. As always, sources are included.
  • User avatar
  • ValleyBell Offline
  • Posts: 4768
  • Joined: 2011-12-01, 20:20:07
  • Location: Germany

Post by ValleyBell »

Ohh, that's awesome!
  • User avatar
  • blitzlunar Offline
  • Posts: 126
  • Joined: 2012-12-21, 15:30:24
  • Location: UK

Post by blitzlunar »

Encouraging news indeed :) I may hold off on upgrading until it's out of alpha. I hope this means I'll be able to listen to OutRunners soon~
Post Reply