vgmstream VS Winamp recognizability issue by Dubble at 11:43 AM EDT on September 6, 2010
I seem to be having a problem with vgmstream and I've no idea what it is I have done.

I was having an issue with Winamp and changed some settings here and there. One of things included trying to update the current vgmstream plugin for Winamp. This backfired horribly. Now, for whatever reason vgmstream, will not be recognized at all. ADX, BRSTM, pretty much anything that the plugin handles will not play and the time will only show up as 0:00 and no matter how much I try to reinstall it, nothing works.

Upon checking file types, none of the extensions are in the list and in_vgmstream.dll does not show up on the plugin list even though its in the plugins folder. I've reinstalled Winamp twice with no luck, tried different builds, nothing. I must be missing something somewhere, but I don't know what. Anyone else else experience this or can provide any help? I'd be very appreciative. Thanks.

edited 11:48 AM EDT September 6, 2010
by hcs at 12:50 PM EDT on September 6, 2010
Did you place the external dlls in the main Winamp directory? The readme.txt that comes with vgmstream will instruct you in this.
If you had done this, try doing it again and replace the old dlls. New Winamp installs do something odd to the existing dlls that causes them to become unusable.
by Elven Spellmaker at 6:23 PM EDT on September 6, 2010
I never get that, how does an installer touch files that it doesn't know are there? O.o
by Mouser X at 6:43 PM EDT on September 6, 2010
My understanding is that the installer scans the Winamp's root directory (but not the plugins directory?) for DLLs. If it finds DLLs, it "optimizes" them (or something wonky-ish). This results in the VGMstream files being reordered (something like that) in a way that makes them unusable for in_vgmstream.dll anymore.

In other words, it's not a matter of "doesn't know are there" so much as it is "touching things that don't belong to it". The installer is unprejudiced and, when a DLL is found (does it scan for *.dll? probably), treats them all the same. Sometimes, this is inappropriate, and should be stopped. At least, this is my understanding. Mouser X over and out.
by Elven Spellmaker at 11:58 PM EDT on September 6, 2010
I just installed 5.581 and my file sizes didn't change on the external DLLs, which usually means nothing has been touched.

Sillily I replaced them before opening up Winamp so I don't know if they were edited in a way that wouldn't change the file sizes. >.>

On an unrelated note, I had to start Winamp up as an Admin to start with, if I didn't it would just crash before showing the interface and never get to the interface.
by DrO at 3:14 AM EDT on September 7, 2010
the installer will re-base any dll it finds in the plug-ins folder in an attempt to change the base address they are loaded into Winamp's process space so the dlls will just be loaded without having to move the dll image around which leads to a speed improvement with Winamp's loading compared to not re-basing them.

re-basing of the dlls should not change the size of the dlls but it changes (as applicable) a few offsets in the dlls).

for whatever reason one of the required dlls for vgmstream (i can't remember which one it is as i removed everything i'd done after the crap from mudlord which seems to be more of his style everywhere that i've seen recently) doesn't like BindImageEx(..) OS function working on it which in altering it's offsets causes the loading of the dll to fail and in turn causes vgmstream to fail.

why the function fails or more does it wrong i really don't know but appeared to be more down to how the dll which fails is compiled (probably with a non-MSVC compiler).

ideally vgmstream should use delay loading on it's supporting dlls which would prevent vgmstream not loading if the additional dlls are missing and it also allows an error message to be shown if the supporting dll is attempted to be used and its not present. only issue is this requires MSVC for compiling (unless gcc/other compilers now have the means though i've no idea what vgmstream is built with). this would then resolve most of the issues i've seen from people about the plug-in not working as they never bother to read the readme file.

or the other option is to provide vgmstream builds in a simple nsis installer instead of a zip. either way it's going to be simpler to resolve the issue on vgmstream's side as i'm no longer working on Winamp core stuff and so cannot fix the installer issue (as that could just be skipping handling based on filename but i was never keen on that as a fix when i started to look at the issue).

and as i'd said in my prior posts about the issue, setting the read-only flag on the supporting dll files will prevent the OS function from being able to work on the dlls which then resolves the installer issue.

-daz
by mudlord at 7:37 AM EDT on September 10, 2010
My DLL was compiled with MingW

Recent SVN code is compiled with MSVC2010.


Go to Page 0

Search this thread

Show all threads

Reply to this thread:

User Name Tags:

bold: [b]bold[/b]
italics: [i]italics[/i]
emphasis: [em]emphasis[/em]
underline: [u]underline[/u]
small: [small]small[/small]
Link: [url=http://www.google.com]Link[/url]

[img=https://www.hcs64.com/images/mm1.png]
Password
Subject
Message

HCS Forum Index
Halley's Comet Software
forum source