(http://it.travisbsd.org/lemmings/_misc/lemedit98.png)
(http://it.travisbsd.org/lemmings/_misc/lemeditxp.png)
Notice that on the first screenshot (Win98), there is a line that states " -MS Windows 04.0A detected. Drivers run in compatibility mode ... Done." Also notice that this line is missing when LemEdit is run under XP (second screenshot).
Also, this program (http://it.travisbsd.org/lemmings/_misc/DETCTWIN.EXE) demonstrates that DOS applications can only detect Windows versions below XP. If it is run under Windows 98 it will tell you that "Windows is running." If it is run under XP it will tell you that "Windows is not running." This program genuinely tries to detect all versions of Windows.
Therefore if LemEdit could detect XP, it would probably run in compatablity mode. (The mouse would work.)
Okay, but what is that program, and how is it used?
Basicly it's a compiled alteration of this '$INCLUDE: 'QB.BI'
DIM InRegs AS RegType
DIM OutRegs AS RegType
InRegs.AX = &H160A
CALL INTERRUPT(&H2F, InRegs, OutRegs)
IF OutRegs.AX = 0 THEN
'Windows is running.
ELSE
'Windows is not running.
END IF
The only changes are...
a) changed first line to be compatable w/ QBX
b) changed the two "Windows is..." lines so that they PRINT the message
Windows XP hides itself from this type of detection, which I think LemEdit uses.
So is it useful for running Lemedit in DOS?
No, it's useful for proving my point.
To find the solution, you must first state the problem.
Going upon your findings, I hacked my version of LemEdit to bypass the check and had LemEdit always run in compatibility mode.
To my surprise, it works! I was able to get the mouse working after the change. HOWEVER...
1) Although LemEdit now respond to the mouse, its response is very sluggish, at least on my particular machine. It required extreme movements for me to get the cursor to move a small distance. So usability is still very poor, but still, better than no mouse at all.
2) It seems to work best if you run LemEdit from a Command Prompt window. If you try to run LemEdit directly by double-clicking from a Windows Explorer window, it will run and it will even show the "compatible mode..." message, but the "hardware timer" line will still fail every now and then. This might also just be specific to my machine.
So anyway, we now have a start towards a possible solution in getting LemEdit to work under XP. But just beause I got it to work on my machine doesn't necessarily mean anything, so all of you should try it out and see whether it works on your machine or not, and how usable your mouse was if you get it to work.
The hacked version of LemEdit can be downloaded at http://www.geocities.com/guestlevels/lemmings/lemedit2.zip. I purposely renamed the program to lemedit2.exe just in case it works worse on your particular machine. You definitely should keep your original copy of lemedit.exe around just in case.
I also have not yet tried it under DOSBox to see what happens.
Now for the really good news:
LemEdit2 works perfectly under DOSBox!!! Not only does the mouse work, but unlike running LemEdit2 directly, the mouse response is not sluggish at all. On my machine the mouse is basically fully usable when runing LemEdit2 under DOSBox.
Thank you Mindless for your valuable information. I can finally use LemEdit again! :party:
As before, for the rest of you, please report if you have the same success as I do with LemEdit2.
:party:
YESSSSSSSSSSSSSSSSSSSSSSSSSSSSSS!!!!
You sir, are a genius.
It seems a little sluggish in DOSBox, but I am not going to complain about that!
w0000000000000000000000t!!!
Time to go fix my pack :)
Edit: Under XP, my mouse doesn't move, but it responds to clicks. Under DOSBox, it is VERY slow when there are a lot of terrain pieces on the screen. I'll probably hold out until I go home in 2 weeks to work in LemEdit for real, but it's really cool that you can at least use it now! :) It might be slow just because of my computer though, I don't know...
Quote from: guest link=1114127516/0#5 date=1114255339Going upon your findings, I hacked my version of LemEdit to bypass the check and had LemEdit always run in compatibility mode.
I would have done this myself, but I have no skills at disassembling/patching/whatever it is.
Anyway, I'm glad I can finally use LemEdit on my computer.
Quote from: Shvegait link=1114127516/0#7 date=1114273438Under DOSBox, it is VERY slow when there are a lot of terrain pieces on the screen.
Have you tried increasing the emulation speed?
Here's a snippet of the relevant info from the DOSBox readme:
CTRL-F7 Decrease frameskip.
CTRL-F8 Increase frameskip.
CTRL-F9 Kill dosbox.
CTRL-F10 Capture/Release the mouse.
CTRL-F11 Slow down emulation (Decrease DOSBox Cycles).
CTRL-F12 Speed up emulation (Increase DOSBox Cycles).
I found that using CTRL-F12 until "Cpu Cycles" gets above 10000 seems to help (the default was only 3000). Of course the faster your machine is, the higher you can afford to get that number up to. You'll have to experiment and see. You can also try CTRL-F8 to increase the frameskip.
Oh, do the adjustments only AFTER LemEdit starts (eg. after it goes into graphics mode), otherwise it'll complain about the timer again. Basically you need to get the "Cpu Cycles" to read somewhere near 3000 for the "timer test" to pass when LemEdit is initializing.
(Again, I've only tried everything I said on my machine; hope it helps!)
:party:
Guest and Mindless, this is an outstanding contribution to Lemmings fans worldwide! :D It's very slow on its own, but in DosBox, with the emulation speed turned up to about 15000, it's near bloody perfect!
Out of curiosity, how did you get it to bypass the OS check? :???:
Quote from: Conway link=1114127516/0#10 date=1114292774Out of curiosity, how did you get it to bypass the OS check? :???:
It's all thanks to that snippet of code that Mindless posted, particularly this one line:
CALL INTERRUPT(&H2F, InRegs, OutRegs)
So I basically searched in a hex editor for the bytes of the machine instruction for calling interrupt 2F (CD 2F), then took the surrounding few bytes and examine them in a debugger to see what the surrounding machine instructions do.
Then I changed a few bytes so that the call-interrupt instruction is skipped, and instead the program will always jump to the case where it thinks it detected Windows. That's it!
All in all only 3 bytes were changed in the program. Amazing what a world of difference 3 bytes makes! B)
Thanks guest. It still runs a little sluggish with the increased number of cycles, but it's better. :)
Quote from: Mindless link=1114127516/0#8 date=1114282991~ The Lemmings File Archive ~
That reminds me, Mindless: since you manage that site, feel free to post either a link to or a copy of lemedit2.zip, when you get around to updating the site.
Site updated.
:thumbsup: Cool! I have to try this!
Cheapo is better than LemEdit anyway.
Now how in the world must I implement that code and where do I have to do that?
I can't run Lemedit2 in Dosbox at all (it says "needed .dat file could not be opened"),when I just run it in DOS it runs but the mouse is very very slow.
perhaps you are mounting the wrong directory?
The same thing happens to me when I try to run LemEdit2 in DOSbox, and I'm pretty sure I'm mounting the right directory...
I simply have no idea why Lemedit won't work under Windows XP.It wudn't run under XP for me.
Quote from: Isu link=1114127516/15#19 date=1120736278The same thing happens to me when I try to run LemEdit2 in DOSbox, and I'm pretty sure I'm mounting the right directory...
Odd. Can you give a listing of what's in the directory?
Do you get the same problem with the original LemEdit?
For me, it works well (I'm using Windows Xp of the school).
There's just a small bug that I've found: When I tried, for example, to open Mikepak00.dat, it said that it was not found. But, when I tried on Levelpak.dat, it was ok. So, I don't know what's the bug, but try to open the paks without using numbers and see.
Quote from: DragonsLover link=1114127516/15#22 date=1120842252There's just a small bug that I've found: When I tried, for example, to open Mikepak00.dat, it said that it was not found.
That's because "Mikepak00" has 9 characters. LemEdit is a DOS program so it can only handle filenames with at most 8 characters (eg. Mikepak0).
You need to rename the file to a shorter name.
Oh... ok, this is not a problem!
That way, everything works perfectly for me!
QuoteThat's because "Mikepak00" has 9 characters. A0;LemEdit is a DOS program so it can only handle filenames with at most 8 characters (eg. Mikepak0).
You should also try opening Mikepa~1.dat. (This is how later versions of DOS dealt with >8 letter names, by truncating the name and adding ~ with a number (starting at 1).)
Edit: I just tried it and this worked for me.
On my PC (Modded Windows XP Pro with P4SD-LA motherboard and DOSBox 0.63) LemEdit runs, but it has a bug with the mouse (like the slow mouse bug) but on mine, even after activating the DOSBox mouse, the cursor just sits there, i tried all 3 types of my mice (Serial, PS2, wireless USB), and nothing happened every time.
Hi.
The hacked LemEdit2 works really great in DOSBOX.
It is a nice 3Byte hack. :D
Well, long time ago I tried to figure out the compression which is used in the level files and in "adlib.dat" in different Lemmings games.
The tunes from "Winter Lemings"(Holiday Lemmings 1993) were successfully ripped by
Roman Dolejsi and its Multi Adlib format Player:
RDOSPLAY
http://sorry.vse.cz/~roman/dimension/rdos/rdosplay/
-->
http://sorry.vse.cz/~roman/dimension/rdos/rdosplay/rply021b.zip
-->
rply021b.zip
-->rply021b\FILES\LEM\*.LEM
If you run "Winter Lemings"(Holiday Lemmings 1993) in DOSBOX,
then you can dump the memory inside/of the emulation, with the help of DOSBOX*'s memory dumper.
After converting the ASCII memory dump to plain binary memory dump,
you should be able to find this HEX value "1C52".
Compare the bytes/ the data after the "1C52" HEX value with the .LEM tunes in the RDOSPLAY archive and you will see that they are equal.
-->That means, in the memory dump,
there are the three Adlib tunes of
"Winter Lemings"(Holiday Lemmings 1993).
However, "Oh no more Lemmings" seems to use a different "Sound Images"-Adlib Format.
In the memory dump I could not figure out the tunes.
But I could find really interesting strings:
"AdLib Music by Sound Images (c) 1991"
Ad-Lib Music/FX Driver - (c) 1991 Sound Images Tel. 061 773 4541
~ Lemmings ~
Press ... A - Very cute
B - Wacky
C - Patronizingly happy
D - The smiling blues
E - Much joviality
F - Not at all serious
Shifted A-Q for Sound Effects
Space - Fast Forward
Enter - Stop Tune
Escape - Quit
Does "Oh no more Lemmings" have a built-in Jukebox????
The strings are not in the VGALEMMI.exe?!??!!.
Even after unpacking the PKLite compressed executable.
The strings must be part of the compressed "adlib.dat" file.
Is there someone, who knows the file compression methods,
which are used in the early Lemmings games?
I think the author of LemEdit would know it,
but his homepage is not available anymore. :(
Can someone help?
*=You need the DEBUG release of DOSBOX to dump the memory inside the emulation.
Either you compile the DEBUG release by yourself or you get in contact with harekiet (Author of DOSBOX)
Here ya are:
http://it.travisbsd.org/lemmings/_misc/adlib.dat.zip
Quote from: Borg Number One link=1114127516/15#27 date=1121034188Press ... A0; A0;A - Very cute
A0; A0; A0; A0; A0; A0; A0; A0;B - Wacky
A0; A0; A0; A0; A0; A0; A0; A0;C - Patronizingly happy
A0; A0; A0; A0; A0; A0; A0; A0;D - The smiling blues
A0; A0; A0; A0; A0; A0; A0; A0;E - Much joviality
A0; A0; A0; A0; A0; A0; A0; A0;F - Not at all serious
Oh, that's neat, for the first time we find out the official names of those ONML tunes. B)
Hi.
@Mindless
Thank you very much for the unpacked adlib.dat,
but I have some questions:
1.)
How did you unpack the compressed adlib.dat?
2.)
http://bnobtc.pix-art.com/lemmings-memory-dumps.rar
-->
Why is the data inside the memory dump
(starting from offset 0x19870 HEX inside the memory dump)
different to your uncompressed adlib.dat.0 file?
For Comparision/general info:
The size of my (compressed) original adlib.dat in the "Oh no more Lemming" directory is 6894 Bytes and has this checksum:
CRC-16: 329E
Quote from: Borg Number One link=1114127516/30#30 date=1121117505Why is the data inside the memory dump
(starting from offset 0x19870 HEX inside the memory dump)
different to your uncompressed adlib.dat.0 file?
I haven't looked into any of this, but keep in mind there's no guarantee that whatever's in memory will be an exact copy of what's in the file. There can be post-processing done after the file is loaded and decompressed in memory.
Incidentally, where did you obtain your copy of ONML?
Hi.
Reffering to "1.)"
How did you unpack the compressed adlib.dat to:
adlib.dat.0(http://it.travisbsd.org/lemmings/_misc/adlib.dat.zip)?
Reffering to "2.)"
Why there are differences between:
a)
http://bnobtc.pix-art.com/lemmings-memory-dumps.rar
-->memdump-ohnomorelemmings.bin
-->starting from offset 0x19870 HEX
b)
http://it.travisbsd.org/lemmings/_misc/adlib.dat.zip
-->adlib.dat.0
???
Hi.
Many years ago, I build 1:1 dumps* from/of all my floppy disks.
The most of these disks were original disks.
ONML was one of the original disks.
Well, how did you build adlib.dat.0?
Did you also used the "memdump method"?
Reffering to the previous post:
*=building disk images is better than just copy/backup the files,
because the most copy protections will be copied and "hidden" information like "DISK ID" or disk serial number will also be copied and backed-up.
Quote from: Borg Number One link=1114127516/30#32 date=1121119646Hi.
Reffering to "1.)"<snip>
Rather than double-posting your questions, may I suggest you have a quick read of
this post (http://eng-forum.lemmingswelt.de/cgi-bin/yabb/YaBB.cgi?board=tech_id;action=display;num=1099243978;start=10#10). ;)
This provides a possible answer to question #1. It is also why I mentioned that your memory dump doesn't necessarily match the decompressed contents of adlib.dat. You have no idea (or do you) what exactly transpired between the time adlib.dat was loaded from disk and what happens at the time you did your memory dump.
Hi.
Thank you very much for the lemmings decompressor / lemmings unpacker / lemmings dat file unpacker / lemmings dat file uncompressor.
http://it.travisbsd.org/lemmings/files/lemleveldecompressor.zip
It also works great with the adlib.dat in different Lemmings games.
Now, the research about the "hidden jukebox" and the different "Sound Images"-Adlib tune formats can begin.
It would be really great if "Sound Images" (Tony Williams) will be supported by ADPlug, someday.
Hi.
PS:
Who is ccexplore?
Google results are just about a file manager, if I look for: "ccexplorer".
If I look for: +"ccexplore" +"lemmings", then I just get results about/by the Author of Clones.
http://www.tomkorp.com/clones/index.asp
I meant:
[...]if I look for: "ccexplore"[...]
Quote from: Borg Number One link=1114127516/30#36 date=1121123484It would be really great if "Sound Images" (Tony Williams) will be supported by ADPlug, someday.
Hm, Tony Williams is one of the game programmers of Lemmings, I think listed in the credits specifically for the PC music.
It's hard to tell from the copyright text alone, but it seems like "Sound Images" might be a custom format they made just for Lemmings. (Well, it could also be used for other games I suppose, I don't know.) I know nothing about ADPlug so I don't know how easy or hard it would be to get someone to support a file format that only one or a few game uses.
Incidentally, you can capture the raw OPL commands (the commands sent to the sound card to synthesize the music) from DOSBox, I think it's Ctrl+F7? (lookup the DOSBox readme). Unfortunately, while I know the format of the capture files, I don't know any standard formats out there for adlib music, so as of now I won't be able to convert anything.
Quote from: guest link=1114127516/15#29 date=1121108237
Oh, that's neat, for the first time we find out the official names of those ONML tunes. B)
With the help of "
guest" and its post (12:50am)
and with the help of
Mindless' tool:
lemleveldecompressor,
I could get the music / tune strings from
Lemmings(Copyright 1991 Psygnosis Ltd (C)MCMXCI Psygnosis Ltd.)
in a faster way then building a memory dump.
Here are the results:
Lemmings - tune list:
Ad-Lib Music/FX Driver - (c) 1991 Sound Images Tel. 061 773 4541
~ Lemmings ~
Press - A - Awesome L - Tim1
B - BeastI M - Tim2
C - BeastII N - Tim3
D - CanCan O - Tim4
E - Doggie P - Tim5
F - Lemming1 Q - Tim6
G - Lemming2 R - Tim7
H - Lemming3 S - Tim8
I - Menace T - Tim9
J - Mountain U - Tim10
K - Ten Lemmings
Shifted A-Q for Sound Effects
Space - Fast Forward
Enter - Stop Tune
Escape - Quit
Hi.
Talking about Tony Williams and its developed "Sound Images / Sound Images 2 / Sound Images II" formats:
It seems to be that there are many different "Sound Images"-formats & -versions.
The Sound Images Format(s) in Amiga Games are already well known and can be played with Delitracker/DeliPlayer/EaglePlayer.
http://amiga.emucamp.com/wt/players.html
http://amiga.emucamp.com/wt/examples.html
http://exotica.fix.no/tunes/unexotica/formats/Sound_Images.html
But they are really different to Tony's "Sound Images"-formats,
which he developed for the PC.
Games like DIZZY, Volfied, Lemmings, ..., Lemmings 3D use
different versions/modifications of the Sound Images format,
if you view their in-game/music files in a HEX editor.
Talking about Adlib grabbing:
I know the possibility of DOSBOX' feature to grab the RAW OPL commands,
because it was my idea to add such a feature to DOSBOX.
The whole grabbing theme and RAW format was originally from:
Roman Dolejsi, who introduced the RAW-Adlib- format and
who built "RAC" - a small Adlib grabber for DOS.
Harekiet - the author of DOSBOX was enjoyed about my idea,
modified the RAW-format a litle,
named it "DRO" (DOSBox Raw OPL Format)
and added the RAW-Adlib Grabbing feature.
However, there are some problems:
a)
The feature does not work perfectly.
In many cases the first RAW Adlib commands will not be grabbed.
So, the .DRO file sounds crazy and stupid.
b)
Cutting the .DRO file to a decent tune is really difficult.
Quote from: Borg Number One link=1114127516/30#41 date=1121127674However, there are some problems:
a)
The feature does not work perfectly.
In many cases the first RAW Adlib commands will not be grabbed.
So, the .DRO file sounds crazy and stupid.
b)
Cutting the .DRO file to a decent tune is really difficult.
Well, at least for the ones captured from ONML, they were complete enough for me to convert them to MIDIs (well, the notes that is, I obviously cannot convert instruments).
In fact, I think I posted here somewhere a quick program I wrote that can playback the DROs. The playback is indiscernible from the original as far as I can tell. One nice thing about Lemmings is that it doesn't play music continuously throughout the game, it only plays every time you start/restart a level, and then it even gives you time to prepare since the music only starts after the entrance opens.
It's probably not going to work for every DRO out there, but as I said it seems to work just fine for the Lemmings tunes. And properly clipping the tune will still have to be done "by hand/ear" in some manner.
Quote from: guest link=1114127516/30#42 date=1121130689In fact, I think I posted here somewhere a quick program I wrote that can playback the DROs.
I found the post, here we go:
http://eng-forum.lemmingswelt.de/cgi-bin/yabb/YaBB.cgi?board=level_id;action=display;num=1115137024;start=41#41
Hi.
Here are the Lemmings tunes related news:
http://eng-forum.lemmingswelt.de/cgi-bin/yabb/YaBB.cgi?board=news;action=display;num=1121193817;start=0#0
Quote from: guest link=1114127516/15#21 date=1120741753
Odd. Can you give a listing of what's in the directory?
Do you get the same problem with the original LemEdit?
It's okay. I just read the DosBox Readme, it said I could drag the file I want to open onto the DosBox exe. That I did, and it worked (Lemedit2 that is).
Everything is fine. :thumbsup:
adding a "Send To" link is a good alternative to drag-n-drop
Or even better, does anyone know how to add functions to the context menu of DOS programs, such as opening it in Dosbox? It should be in the system registery, but where?
Quote from: Conway link=1114127516/45#47 date=1121280830Or even better, does anyone know how to add functions to the context menu of DOS programs, such as opening it in Dosbox? It should be in the system registery, but where?
I don't think it's quite that simple. Then again, I never tried.
Is there a way to tell DosBox to execute certain commands upon launching? After all you need it to mount c: first before you can run anything of interest.
If that's possible then it's just a matter of making a shortcut for DOSBox.
using a "Send To" link automatically mounts the directory of the application as c:
the only thing that this doesn't do well is Custom Lemmings which requires a cdrom to be mounted
I've created a registry hack to add DOSBox to the context menu of applications. >Download!< (http://uk.geocities.com/benjconway79/dosboxreg.zip)
It works in XP, not sure about the other systems, but it's really only XP users who need DOSBox. If you have a different version of DOSBox, or it is installed somewhere other than C:\Program Files, you can change the path by editing the .reg file in notepad.
Let me know if for some reason it doesn't work or you don't want it but don't know how to remove it.
Quote from: Mindless link=1114127516/45#49 date=1121300311using a "Send To" link automatically mounts the directory of the application as c:
the only thing that this doesn't do well is Custom Lemmings which requires a cdrom to be mounted
Can't that be taken care of with a batch file? (I haven't tested this though.)
probably.