XMPlay Delix plugin

Started by Fraggie,

saga

I can't confirm that the plugin doesn't work anymore.

Ian @ un4seen

Quote from: rolloLGAll of a sudden the delix plugin doesn't work anymore!!  :'(
Formats that were working perfectly (e.g. Lionheart's sa.* files) now won't load and return: "Can't extract .dat file!", "No interrupt entry!".

If you look in the "Input and archive plugins" list, do you see an "Archive: ZIP archives" entry? If not, it looks like you're missing the ZIP plugin (XMP-ZIP.DLL). If it still isn't working with the ZIP plugin loaded, please provide an example file (that the Delix plugin should play) to test with.

OSH

Well, and I've started "from back". Has somebody tried to force Deliplayer to use XMPlay-plugins? I've tried, but without success...

saga

Since when does Deliplayer have support for XMPlay plugins at all?
And how would this be related to the Delix plugin?

Dhry

Hi there. I know that the plugin is essentially "dead" and all, fair enough. But with the newest XMPlay v3.8 release, the existing Delix version (test 8c) is now immediately throwing an error "You need at least XMplay v3.4.0.5" on startup and won't work at all. It used to work before. Not asking for any kind of substantial update, but could it at least be recompiled to have the version check permanently removed or something?

Better still, if the source could be released so someone else could pick up the torch, that would be awe-tacular.

Cheers
Dhry

piovrauz

What about reading a bit before posting?
I reported this even before 3.8 (stuff), and there's an answer to this floating around...
Geez, ppl are lazy...

Lemu

Quote from: DhryBetter still, if the source could be released so someone else could pick up the torch, that would be awe-tacular.
Yes, exactly.  I never understood why someone would stop developing such an important plugin without releasing the source code. (The plugin's site says: "I do not support this software anymore, so please don't bug me about it.")

saga

The point is that Fraggie wanted to develop an updated, new version of the plugin, not based on the old code.

piovrauz

Well, fixing that startup message won't need much work I suppose, so he can make us happy even if he drops the plugin... ;)

RayeR

#229
Hi, I also got that anoying message from XMP-delix.dll after upgrade to v3.8.0.1 and all that I googled was this forum thread but no solution. So for those who can't wait I cracked the plugin myself (simply replace JB to JMP short at version test condition and recalculated PE checksum)
http://rayer.g6.cz/1tmp/XMP-delix.dll
p.s. this is a temporal upload if you want it permanent, reupload it somewhere else.
Cheers, Martin

Dhry

Quote from: piovrauzWhat about reading a bit before posting?
I reported this even before 3.8 (stuff), and there's an answer to this floating around...
Geez, ppl are lazy...
I searched for both "you need at least" and "3.4.0.5" before I posted, and found nothing. Next time you report an issue, try using verbage that exactly matches the error in question so others can find it. And after that, GFY.

Quote from: RayeRHi, I also got that anoying message from XMP-delix.dll after upgrade to v3.8.0.1 and all that I googled was this forum thread but no solution. So for those who can't wait I cracked the plugin myself (simply replace JB to JMP short at version test condition and recalculated PE checksum)
http://rayer.g6.cz/1tmp/XMP-delix.dll
Thank you so much. Error no longer appears - good work.

Dhry

piovrauz

QuoteI searched for both "you need at least" and "3.4.0.5" before I posted, and found nothing. Next time you report an issue, try using verbage that exactly matches the error in question so others can find it. And after that, GFY.

If GFY stands for what I think, well, you need to learn to be polite.

btw: "http://www.un4seen.com/forum/?topic=14329.msg106878#msg106878" (and 2-3 post after it, Ian answers about it)
btw2: "http://www.un4seen.com/forum/?topic=15425.msg107022#msg107022" (and the answer just after it..)
btw3: "http://www.un4seen.com/forum/?topic=15425.msg107037#msg107037" (and the answer just after it..)
btw4: a forum search with delix error gives my report, just fter yours (since yours is more recent)

Search tip: if a search string is too specific, dumb it down / use a more broad one.

Anyaway, Fraggie should work on a fix later, so we'll have an official version soon or later.
(that hack reminds me of earlier bios patching for showing hidden tabs... XD)

Dhry

Quote from: piovrauzIf GFY stands for what I think, well, you need to learn to be polite.
So hold on, you call me lazy and then advise me to be polite? Niiice.

Quote from: piovrauzbtw: "http://www.un4seen.com/forum/?topic=14329.msg106878#msg106878" (and 2-3 post after it, Ian answers about it)
So, your post literally has 3.4.0.5 in the text. Yet when I search for either 3.4.0.5 or "3.4.0.5" including quotes, the post does not appear in the results. Evidently a bug in the forum search technology. I don't appreciate the "lazy" inference when I actually DID search first. Next time I'll just manually look through all the posts in the "Suggestions for 3.8" thread before posting since that appears to be where the bugs are being reported.

Dhry

piovrauz

Mmmm, feeding 3.4.0.5 to the search function does show as result only your first post and the subsequent ones, but not mine, nor the others after it, but shows older ones.
Point taken, you weren't lazy (even if you had been, it wouldn't had made any difference in this case). Strange bug indeed.

Anyway, there's a bit of difference between saying to someone that he was "lazy" and telling someone to "GFY".
I don't know in what environement you grew up, but saying someone "GFY" is vulgar and offensive, while "lazy" is not.
(I suppose you wouldn't say GFY to your, say, family members, right?)
That's why I advise(d) you to be polite, expecially on a "public" forum where you just started posting, it gives out the wrong impression.

In any case, my excuses for calling you lazy, those are due.

Dotpitch

Quote from: Dhry... Next time I'll just manually look through all the posts in the "Suggestions for 3.8" thread before posting since that appears to be where the bugs are being reported.
Actually, I'd prefer it if you'd use 3.8 reports, queries and bugs to ask questions or report bugs on XMPlay 3.8. This particular bug however is in Delix and not in XMPlay, so you're the first one to post it in the right thread :).

Dhry

#235
Quote from: RayeRHi, I also got that anoying message from XMP-delix.dll after upgrade to v3.8.0.1 and all that I googled was this forum thread but no solution. So for those who can't wait I cracked the plugin myself (simply replace JB to JMP short at version test condition and recalculated PE checksum)
http://rayer.g6.cz/1tmp/XMP-delix.dll

Hi Martin. Have found that your modified plugin version crashes XMPlay with certain formats, for example BP2 and BP3 (SoundMon). Original still throws error but works fine with those formats. Just an FYI. Sample file attached.

Cheers
Dhry
Quote from: Dotpitch
Quote from: Dhry... Next time I'll just manually look through all the posts in the "Suggestions for 3.8" thread before posting since that appears to be where the bugs are being reported.
Actually, I'd prefer it if you'd use 3.8 reports, queries and bugs to ask questions or report bugs on XMPlay 3.8. This particular bug however is in Delix and not in XMPlay, so you're the first one to post it in the right thread :).
Cheers. I thought that was the logical place too, but I figured this was plugin-related.

Dhry

RayeR

Dhry, as I told above, the only modification that I did was change of one condidional jump to direct jump. This bypassed version check and cannot affect anything else. But if Xmplay 3.8 API has changed in various calls it may cause Delix to crash because old calls are no longer compatible with new version. This can be answered only by author of xmplay who knows what he exactly changed.
So it seems that Delix plugin will need some further patching work that is (nearly) impossible without sources and as I understand author of Delix don't want to disclose it. All you can do is to revert back to xmplay ver 3.7 now :\

Dhry

No, it's fine. I wrote an AutoHotKey script to automatically close out of the error dialog when starting XMPlay, and after that the unmodified plugin seems to work fine. The author's aware and I'm sure he'll fix it in time. Thanks for your help.

Dhry

RayeR

#238
OK, I found that my "crack" caused the problem that you described. I had no any BP file to test before. So I started debug the problem just for my curiosity. Because modding of two jumps to block described below still caused the crash I decided to blow up the error message box winapi call by NOPping it but weird thing happened! I don't know if someone here knows a little bit of ASM but it really crunching my mind...
Here is the original block of code printing the message:
.1007F948: 6A10                         push        010
.1007F94A: 685C480910                   push        01009485C  -----↓ (1)
.1007F94F: 681C4B0910                   push        010094B1C  -----↓ (2)
.1007F954: 6A00                         push        000
.1007F956: FF154C310910                 call        MessageBoxA ;USER32.dll
.1007F95C: 33C0                         xor         eax,eax
.1007F95E: 8B4C2408                     mov         ecx,[esp][08]
.1007F962: 64890D00000000               mov         fs:[00000000],ecx
.1007F969: 59                           pop         ecx
.1007F96A: 5E                           pop         esi
.1007F96B: 83C40C                       add         esp,00C ;"♀"
.1007F96E: C20800                       retn        00008 ;" ◘"

So the first thing that I tried to do was replace
four pushed args and
call        MessageBoxA ;USER32.dll
by NOPs
but it didn't work. Xmplay didn't started at all!
as you can see function call is followed by
xor         eax,eax
that clear return value of MessageBox so it doesn't care the result. Does calling of MessageBox have any side effects that I don't know about? From the reference manual, it takes 4 32bit args (winhandle, window title ptr, window text ptr and flags) it return error/status code in eax. Nothing special...

Then by trial-error I found that skipping the pushes and call by jmp short do the job:
.1007F948: EB12                         jmps       .01007F95C  -----↓ (1) <- if replaced by NOPs too it stop working
.1007F94A: 685C480910                   push        01009485C  -----↓ (2)  <- can be replaced by NOPs and works
.1007F94F: 681C4B0910                   push        010094B1C  -----↓ (3)  <- can be replaced by NOPs and works
.1007F954: 6A00                         push        000  <- can be replaced by NOPs and works
.1007F956: FF154C310910                 call        MessageBoxA ;USER32.dll <- can be replaced by NOPs and works
.1007F95C: 33C0                         xor         eax,eax
.1007F95E: 8B4C2408                     mov         ecx,[esp][08]
.1007F962: 64890D00000000               mov         fs:[00000000],ecx
.1007F969: 59                           pop         ecx
.1007F96A: 5E                           pop         esi
.1007F96B: 83C40C                       add         esp,00C ;"♀"
.1007F96E: C20800                       retn        00008 ;" ◘"
Then I tried to replace pushes and call by NOPs and it worked until I replaced jmps at last so i reverted this step...

You can try it: http://rayer.g6.cz/1tmp/XMP-delix.dll

Dhry

Quote from: RayeRYou can try it: http://rayer.g6.cz/1tmp/XMP-delix.dll
Works great! Played a stack of different format tunes - BP, Delta, SidMon, Hippel etc, all without crashing. Well done and thank you!
Also props for working in ASM - the only real language.

Dhry