Page 1 of 1

DOS platform emulation stuff

Posted: Sun 26 Jul 2009, 09:43
by Patriot
Hmmm .....

Recently, I was finally able to play with Dosbox 0.73 and Dosemu 1.4.0. After tinkering with them for a bit, I made these pet packages in the hope that they'll be useful to someone. Note: These are once in a blue moon effort and probably will not be maintained.

Dosbox was a straight forward setup and easy to use. It comes with built-in dos shell and all I have to do is to mount the appropriate folder as drive C and the way I go ...

Dosemu needs some tinkering to get it to work right on puppy. Initially I had segfaults and bus errors with dosemu. It seemed hopeless but I needed those direct hardware access. After a bit of tinkering, I realized that it just needed some basic memory handling stuffs to be properly setup and walla, no more segfaults, no more bus errors.

Dosemu requires hands on DOS folder population. The easiest would be to create ~/.dosemu/drives/drive_c folder and copy the necessary DOS files into it. The xdosemu loader script have been adjusted to handle shm checking.

DosBox basic comparison specs
---------------------------------
1. runs on any CPU. Defaults as x86 cpu emulation (with DIT only on x86 cpu)
2. emulates 286/386
3. No direct hardware access
4. SDL library is compulsory
5. built-in DOS shell
6. S3 Trio64 emulation (text -> VESA 2.0)
7. SB16/GUS/WSS/Speaker emulation
8. mount folder or disk image
9. One single binary for all
10. actively maintained

Dosemu basic comparison specs
---------------------------------
1. runs on x86 CPU only. Defaults as JIT (with optional vm86/full cpu emulation)
2. emulates 8086/286/386/486/586
3. allows direct hardware access (user configured)
4. Xlib/SDL/slang are optional
5. requires external DOS shell
6. Trident8900C emulation (text -> VESA 2.0)
7. SB16 emulation only
8. boot to a populated folder, disk image or direct disk access
9. Modular binary package, least dependency.
10. maintainance seems dormant


Which one to use ?
-----------------------
For most DOS stuffs, Dosbox is recommended. If you just want to run a DOS based apps, it's highly likely dosbox will fit the bill. The single binary comes with everything ready to run. Of course, the SDL library IS the minimum pre-requisite. For network support, SDL_net linked binary is also available.

Dosemu is recommended if you need specific customized setup (for example) :
1. Direct parallel access to an eprom programmer.
2. Boot specific DOS versions (MS-DOS 5.0-7.1, DR-DOS, FDOS, etc).
3. Mounting and booting a drive/partition directly.
4. Pentium level optimization.
5. TUN/TAP vnet capability.

(Note: actual setup is beyond the scope of this thread. Further info can be found in the README)

Execution speed is subjective to actual hardware in use. Both dosbox and dosemu have their own quirks. Some apps works better on dosbox and vice-versa. Some h/w dependent apps may work better in dosemu. However, I noticed peaked cpu usage when running apps in dosbox in several cases. Dosemu seems to be able to release cpu time and thus lower cpu usage in several cases. YMMV ...


PET binary packages :
--------------------------
(Note: Full source code is available upstream. No source modifications made.)

DOSBox 0.73 standard (745KB)
[download]
Description: Dosbox 0.73 release pet package. Compiled on Puppy 412.
Tuned for Puppy platform. Icon and desktop files added.
Requires SDL-1.2.13 library minimum.

DOSBox 0.73 network support (765KB)
[download]
Description: Dosbox 0.73 release pet package. Compiled on Puppy 412.
Tuned for Puppy platform. Icon and desktop files added.
Requires SDL-1.2.13 and SDL_net 1.2.7 library.

DOSEmu 1.4.0 basic (1.06MB)
[download]
Description: DOSEmu 1.4.0 release pet package. Compiled on Puppy 412.
Tuned for Puppy platform. Icon and desktop files added.
SDL-1.2.13 library optional. FreeDOS tarball not included.
Requires manual boot folder/image preparation.

SDL-1.2.13 library (2MB)
[download]
Description: SDL 1.2.13 release pet package. Compiled on Puppy 412.
Full library, headers, docs, mans, etc. Suitable for developers.

SDL_net-1.2.7 library (37KB)
[download]
Description: SDL_net 1.2.7 release pet package. Compiled on Puppy 412.
Full library, headers, mans, etc. Suitable for developers.


Rgds


.-.

Posted: Sun 26 Jul 2009, 09:49
by Patriot
reserved here for dragons

dosemu

Posted: Tue 04 Aug 2009, 09:13
by patrice
Doemu 1.4 works perfectly well with puppy linux 4.2.
I will send you all the explanations on the site tou tou linux french and I will send the translation.
Hundreds of companies work with dosemu in ubuntu.
I have a problem printing.
So if you use word or works (under DOS), I can't print with puppy linux. Doemu is better than DOSBox
It is better to create a small partition fat 32 or ntfs.
Then mount this partition in the autoexec.bat
etc/doemu/freedos/autoexec.bat

I will give you my setup.
It's the same with all linux.

At the start of dosemu you just click on the partition ntfs or fat32.
Can you find C: \ and you can do whatever you want by using the syntax.

I am able to run under dosemu Arachne.

It is a wonderful internet connection software.
You can do anything under dos and doing everything with puppy linux.
With the ubuntu is very easy. Simply specify the file to share.
With puppy linux I can not create a network

Posted: Tue 29 Sep 2009, 19:23
by sprangalang
Thank you for posting this, I've been pulling my hair out trying to get dosbox to work with puppy 4.30.

Well, it installed very nicely, and it runs!

But I am having a heck of a time mounting the old game CD which I would like to install through dosbox. When I mount the drive within Puppy, I can see all the files and directories on the CD.

Within DOsbox:

I enter "mount -cd", it shows the cd drive there:
"CDROMs found: 1
0. /dev/cdrom"

I tried mounting using "mount d /media/cdrom/ -t cdrom"
It says directory /media/cdrom/ does not exist.

I tried "mount d /dev/cdrom/ -t cdrom"
Same result, "directory /dev/cdrom/ does not exist"
same for "mount d /dev/sr0/ -t cdrom

I tried "mount d /dev/cdrom -t cdrom", then it says it mounts as a subdirectory, but no files show in directory listing.

I get the feeling I'm missing something silly.

Thank you in advance for any reply!

:) -Jeff

Posted: Wed 30 Sep 2009, 07:24
by Patriot
Hmmm .....

Well, it seems you're using dev nodes when you should be using mnt points ..... ( /dev = dev nodes, /mnt = mnt points) ...

1. As usual, first we mount the cd/dvd drive in puppy.
2. In dosbox, depending on your kernel version :

# mount d /mnt/hdc -t cdrom
-or-
# mount d /mnt/sr0 -t cdrom
-or-
# mount d /mnt/sr0 -t cdrom -usecd 0 -ioctl

- the first is basic mode, tested ok.
- the second is basic mode, tested ok.
- the third is low level support mode, tested ok.


Rgds

Posted: Wed 30 Sep 2009, 19:58
by sprangalang
Ah, thank you kindly! :) :D
I knew it was something silly. :oops:

Dosbox and Quake ?

Posted: Tue 16 Feb 2010, 00:32
by bill
While digging around in my forgotten "Games of the past" I decided to see if I could play Quake in Puppy 4.3.1. using dosbox.After setting up,I get this in rxvt .Can anyone give me a clue on how to proceed with Alsa.I simply don't have a clue.thanks

Posted: Mon 23 Apr 2012, 22:05
by Monson
I have downloaded and installed the 4 files and have this dependency left over, even google and search could not help find solutions:
File: /usr/lib/dosemu/libplugin_term.so has these missing library files: libslang.so.2

... package manager does not know what package has these libraries.

I have a running Puppy 4.2.1 with Kernel 2.6.25.16 and need to know either where to get the missing library or which package I have to install to get it as side effect.

Help is greatly appreciated. Thanks in advance.

Posted: Tue 24 Apr 2012, 09:33
by darkcity
is it libslang you need? - this Russian site has it-
http://docs.puppyrus.org/pet-db/libs

Posted: Fri 08 Dec 2017, 20:24
by goingnuts
Original link to dosemu PET package does not work anymore. Does anyone have a copy?
I have compiled from source on P412 but keep getting the "bus error" mentioned in first post and can't find solutions to get past it...

Posted: Fri 08 Dec 2017, 21:10
by Keef
goingnuts

It can be found on the wayback machine:
I can't upload the file - too big to attach unfortunately (1.1mb)
Not having much joy posting the URL either, but I'm sure you will find it.

EDIT
Uploaded it to Zippyshare:

http://www27.zippyshare.com/v/GmbdbXbO/file.html

Posted: Fri 08 Dec 2017, 22:51
by ally

Posted: Sat 09 Dec 2017, 00:34
by goingnuts
Keef & ally: You are always very helpful and service minded.
Very much appreciated - Thank You!
Added 20171212: The real magic is done by patriot in his patch of /usr/bin/dosemu - using that, the bus error is gone.
dosemu is fast compared to dosbox - warlord2 as an example is extremely slow in dosbox but lightning fast in dosemu. But dosbox runs most things you throw at it whereas dosemu needs more (native) configuration.
Found that to have both music and sound change $_sound = (on) to $_sound = (2) in /etc/dosemu.conf - and you get both.
If annoying double mouse press ctrl-alt-home to get rid of X-mouse.
patriots dosemu-1.4.0-i486.pet package does not contain any native dos binaries so you have to install a native dos system to get it running.

Posted: Tue 12 Dec 2017, 18:31
by goingnuts
I have compiled dosbox-0.74 and dosemu-1.4.0 using uclibc and linked statically - so they should run on many versions of puppy. The dosemu-pet has included dos native environment (freedos). The patches used are attached this post. The pet-packages can be downloaded here:

dosemu-1.4.0 [2.2Mb]
dosbox-0.74.pet [0.7Mb]

Posted: Tue 12 Dec 2017, 18:37
by ally

Posted: Tue 12 Dec 2017, 18:42
by goingnuts
yeah - typo corrected - thanks. :oops: