DOS platform emulation stuff

Stuff that has yet to be sorted into a category.
Post Reply
Message
Author
User avatar
Patriot
Posts: 733
Joined: Thu 15 Jan 2009, 19:04

DOS platform emulation stuff

#1 Post 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


.-.
Attachments
SDL_net-1.2.7-i486.pet
SDL_net 1.2.7 library add-on. For dosbox network support.
(36.77 KiB) Downloaded 2616 times

User avatar
Patriot
Posts: 733
Joined: Thu 15 Jan 2009, 19:04

#2 Post by Patriot »

reserved here for dragons

patrice
Posts: 3
Joined: Mon 20 Apr 2009, 10:03

dosemu

#3 Post 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

User avatar
sprangalang
Posts: 15
Joined: Wed 09 Sep 2009, 18:40

#4 Post 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

User avatar
Patriot
Posts: 733
Joined: Thu 15 Jan 2009, 19:04

#5 Post 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

User avatar
sprangalang
Posts: 15
Joined: Wed 09 Sep 2009, 18:40

#6 Post by sprangalang »

Ah, thank you kindly! :) :D
I knew it was something silly. :oops:

bill
Posts: 490
Joined: Wed 28 May 2008, 15:32

Dosbox and Quake ?

#7 Post 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
Attachments
dosbox.png
(5.58 KiB) Downloaded 7883 times

User avatar
Monson
Posts: 28
Joined: Sun 25 May 2008, 15:58
Location: Germany
Contact:

#8 Post 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.
[b]DE[/b]:Wer nicht wa:hlt, hat nichts zu melden/maulen. [b]EN[/b]:Those not voting have nothing to say/moan about.
Puppy 4.21; CD2HDD; AMD64 & X86. Slow: Laptop x86-PI@133MHz-64mb RAM (modded Puppy); Fast:Laptop AMD64X2@2.2GHz-4gb RAM.

User avatar
darkcity
Posts: 2534
Joined: Sun 23 May 2010, 19:16
Location: near here
Contact:

#9 Post by darkcity »

is it libslang you need? - this Russian site has it-
http://docs.puppyrus.org/pet-db/libs

goingnuts
Posts: 932
Joined: Sun 07 Dec 2008, 13:33
Contact:

#10 Post 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...

User avatar
Keef
Posts: 987
Joined: Thu 20 Dec 2007, 22:12
Location: Staffordshire

#11 Post 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

User avatar
ally
Posts: 1957
Joined: Sat 19 May 2012, 19:29
Location: lincoln, uk
Contact:

#12 Post by ally »


goingnuts
Posts: 932
Joined: Sun 07 Dec 2008, 13:33
Contact:

#13 Post 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.

goingnuts
Posts: 932
Joined: Sun 07 Dec 2008, 13:33
Contact:

#14 Post 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]
Attachments
dosbox-0.74_tinyX11.diff.gz
(1.44 KiB) Downloaded 528 times
dosemu-1.4.0.diff.gz
(5.15 KiB) Downloaded 528 times
Last edited by goingnuts on Tue 12 Dec 2017, 18:44, edited 2 times in total.

User avatar
ally
Posts: 1957
Joined: Sat 19 May 2012, 19:29
Location: lincoln, uk
Contact:

#15 Post by ally »


goingnuts
Posts: 932
Joined: Sun 07 Dec 2008, 13:33
Contact:

#16 Post by goingnuts »

yeah - typo corrected - thanks. :oops:

Post Reply