XMPlay Delix plugin

Started by Fraggie, 24 Aug '05 - 22:01

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: Dhry on 27 Dec '13 - 16:09Better 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: piovrauz on 27 Dec '13 - 16:53What 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: piovrauz on 31 Dec '13 - 15:27If 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: piovrauz on 31 Dec '13 - 15:27btw: "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 on 31 Dec '13 - 16:36... 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: RayeR on 30 Dec '13 - 00:25Hi, 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 on  1 Jan '14 - 10:21
Quote from: Dhry on 31 Dec '13 - 16:36... 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: RayeR on  4 Jan '14 - 02:27You 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

WillGraham

I've got a quick question - after downloading the (greatly!) patched XMP-Delix.dll, I also repackaged XMP-Delix.dat by adding many EaglePlayers to it, from http://wt.exotica.org.uk/players.html - and I'm not sure if it screwed something up, or if only some of the formats are supported.

Can anyone who tried something similar (apparently others have) e.g. get the MaxTrax format (for example, on http://www.exotica.org.uk/wiki/Darkseed) to play, or is it just unplayable right now in anything but DeliPlayer itself?

Knurek

Quote from: WillGraham on  4 Jan '14 - 22:03I've got a quick question - after downloading the (greatly!) patched XMP-Delix.dll, I also repackaged XMP-Delix.dat by adding many EaglePlayers to it, from http://wt.exotica.org.uk/players.html - and I'm not sure if it screwed something up, or if only some of the formats are supported.

Can anyone who tried something similar (apparently others have) e.g. get the MaxTrax format (for example, on http://www.exotica.org.uk/wiki/Darkseed) to play, or is it just unplayable right now in anything but DeliPlayer itself?

IIRC MaxTrax need audio.device emulation, something Delix doesn't do ATM.

WillGraham

Ah, I see, thanks.

Shame Delix is no longer developed.

Fraggie

#243
Delix revision 9 has been published.

Apart from removing the invalid error message as a bonus this revision features:
- addition/update of about 30 players (reaching total of 147 players, yet way more file formats),
- basic song length detection based on DTP_SongEnd event (if the player supports it, but most do - note that this is not perfectly accurate yet much better than infinite playback)
- "filetype" and "title" tags populated (if the player supports it; some do)
- some details on the format, used player and its creator displayed in the info window
- option to set default play time (if song end is not supported or disabled)
- option to disable surround sound
- option to set stereo separation
- fixes around playing songs with multiple files from archives and from the web


Quote from: piovrauz on 27 Dec '13 - 22:20Well, fixing that startup message won't need much work I suppose, so he can make us happy even if he drops the plugin... ;)
Only if he didn't loose the most recent sources...  ;)

Dhry


piovrauz


saga


Knurek

Lovely, you are a god among men.

Quote from: Fraggie on  7 Jan '14 - 17:21- basic song length detection based on DTP_SongEnd event (if the player supports it, but most do - note that this is not perfectly accurate yet much better than infinite playback)
- fixes around playing songs with multiple files from archives and from the web

Any possibility of a fade-out addition?
Also, multi-file formats (TFMX/RJP/ETC) work fine for Unexotica LHA Archives, but not so for Wanted Team LZX ones. Anything that can be done to fix that?


Fraggie

Quote from: Knurek on  7 Jan '14 - 17:46Any possibility of a fade-out addition?
Yes, for the next big update.  :P

Quote from: Knurek on  7 Jan '14 - 17:46Also, multi-file formats (TFMX/RJP/ETC) work fine for Unexotica LHA Archives, but not so for Wanted Team LZX ones. Anything that can be done to fix that?
The issue is in xmp-lzx.