Saturday, 14 July 2012

Running DOSBox on X1000

Today I wanted to talk about getting DOSBox running under the AmigaOne X1000 and what to expect regarding performance!

DOSBox is the emulation of a DOS IBM (or compatible PC) computer. Using DOSBox it is possible to run DOS based games, applications and demos on the X1000. It has been released on most major operating systems and ported to many others, including the Amiga.

The AmigaOS4 port of Dosbox was released in 2011 and is available on os4depot.net. This port has some limitations that it can't install Windows 3.1, Gravis UltraSound support isn't working and has no CDROM support, but running DOS based stuff and using SoundBlaster 16 Soundcard emulation is fine for me - it is all I want it to do.

Some history - from 1994 to 1998 I had a Pentium 200MMX PC running MSDOS 6.22 and Windows for Workgroups 3.11 and later Windows 95.

In that time I got a lot of DOS games and demos and kept a backup of them, which I still have today. This meant I could use the games and demos I used to run back then on DOSBox on my X1000!

I show one of those games, Descent, running in the screenshot below perfectly on the X1000:


After downloading DOSBox and extracting somewhere, I copied the demos and games I had into the already conveniently created C subfolder in the DOSBox program folder. When done the folders look like this:

Some configuration changes are then needed to the dosbox.conf file to mount the C Drive from this folder, and to make games and demos mostly run smoothly on the X1000.

Below is the config settings I used in DOSBox.conf (edited in Notepad) for reference:


As you can see above, you can run DOSBox full screen but I see no point to this when the standard PC resolution is so low at 320x200 pixels. I keep it running in a window (fullscreen=false) and double the screen size using the normal2x option (which you can make bigger if you want to). Note that you can't have more than 31MB of RAM set, but this is more than enough for DOSBox. Next page of configuration in dosbox.conf is below:


CPU section above is critical for the performance.  core and cputype I set to auto, cycles to 10000. Any more than 10000 and you will start to notice problems with games and demos running due to CPU usage.

Please note: As an update to this blog entry I have found much better performance results setting cycles=max instead of 10000. I will not update all the screenshots but take my word for it that max value is better performance than 10000.

Mixer section - I set rate=22050 to reduce sound mixing overhead but probably I could have run this at 44100. blocksize=2048 and prebuffer=30 are important to prevent stuttering of audio in DosBox on X1000.

The next section of the dosbox.conf file relates to Soundblaster and Gravis Ultrasound (GUS) sound configs:


Important here is the Sblaster section where we specify we want to emulate a soundblaster 16 (sbtype=sb16), the associated Base Address (sbbase), IRQ, DMA and HDMA values. Because we set the mixer rate as 22050 on the previous section we should set it like this for the Sblaster section as well. This stops the DOSBox emulator from upmixing or downmixing audio in real time to meet the frequency of the mixer, improving performance. GUS section is not relevant since it doesn't work on the AmigaOS4 port.

I should probably change the Speaker section pcrate and tandyrate to 22050 too, but I don't have any games or demos that use the PC Speaker, so I didn't configure this. If you run some games like World Class Leaderboard (for example) on DOSBox, it needs the PC Speaker and so you would need to changes these settings as I just covered. I just flashed back to the natural audio samples in that game - "Looks like he hit the tree Jim"....memories!

Anyway, not much changed in the next page of dosbox.conf, but I include it for completeness:


 The last page of the dosbox.conf is below:


Important here is the DOS Section - enabling XMS (eXtended Memory Space), EMS (Expanded Memory Space) and UMB (Upper Memory Block). There are needed for DOS to see installed memory above 640k. Other important section is the Autoexec section - C drive mapping command is: mount C Work:Emulation/DosBox/C (I installed DosBox in Work:Emulation)

Please note from my testing - if you make changes to the C subfolder folder or files while DOSBox is running, DOSBox can't see the changes. For example, you rename a file or create a new folder from AmigaOS4 in the C subfolder, DOSBox can't see it. You will need to close and open DOSBox again to see the changes.

Also note that DOSBox is not a full implementation of DOS - just enough to run the games and demos you want. If you don't have any games, Google is your friend - DOS abandonware games should do the trick. For DOS demos, www.pouet.net is a good place to look!

If you want the full MSDOS or FreeDOS implementation in DOSBox, you need to set up a hardfile, make it bootable and have the OS floppy images ready to install or copy the files/folders across.
There is a lot involved with this process and unless you need it, I recommend using the folder mode and live with the shortcomings of not having full DOS functionality available.

If you ignore my recommendation and still REALLY want to try this out (I did) there are some good resources at the DOSBox Wiki http://www.dosbox.com/wiki/Main_Page and this page http://vogons.zetafleet.com/viewtopic.php?t=24936 on how to get Windows 95 installed on DOSBox.

Please keep in mind that the Amiga port of DOSBox has some differences to the Windows, Linux and Mac versions that may stop some steps from working as expected. Trying to get Windows 95 working on Amiga DosBox froze my X1000 machine many times and ultimately lead to my X1000 being unable to boot at all due to a corrupted amigaboot.of file. I fixed this from a backup and booting off the AmigaOS4.1.5 Live CD to restore the file.

My advise is to be very careful when trying to get Windows 95 working under DOSBox on the X1000...I have seen some people can do it from various forums, so perhaps I need to tweak some more settings, but after my X1000 boot issue scare I have not tried any more to get Windows 95 running in DOSBox.

Ok, with the DosBox.conf file configuration done and using folder mode for the C Drive, now let's start up DOSBox! You should see something similar to below (Click to expand):


You can use the normal dir and cd commands to change folders and list directories, same as in DOS.

So next here are some actual screenshots from games that run at full speed on the X1000 using DosBox:

Tube:




As an aside, this game was written by Bullfrog in the late 1990's and included as a teaser (with a few levels) on a PC Magazine coverdisk. It was never released as a full game to my knowledge, so only this version exists and it is quite fun!
Commander Keen 4:




Actually this blog took longer to write than expected because I got distracted playing Commander Keen 4 again in DOSBox! It is a great game, and reminds me that ID Software can write good games other than First person perspective shooting games like Doom 1/2/3, Quake 1/2/3/4 and Rage...

Stunts:



In my opinion Stunts (or Hard Drivin' and Stunt Car Racer on Amiga) are really an early simpler version of Trackmania 2:Canyon, currently my favourite game to play. If you are interested in Trackmania 2 there is a great YouTube clip here that shows more of this great internet multiplayer (or Solo player) game. I play as Epsilon on Trackmania 2 regularly, so say hi if you also play the game! Anyway, I digress - let's move onto the PC demos!
And now actual screenshots from some DOS PC demos that run at or close to full speed on the X1000 using DosBox:

Contrast by Oxygene:




Stars by Noooon:



Unreal by Future Crew:





Zweilight Zone by Capacala:








I should caution that some games and demos do not run well in DOSBox on X1000, even with the setting changes above.

Some stuff in testing that didn't work well includes Duke Nukem 3D, Hi Octane (with hi res and all detail on) and most DOS Demos written in 1996-1998 period. A bit disappointing result given the speed of the X1000 and the age of the demos and games tested.

This is still a work in progress though so I may find some other optimisations to improve them - I will update this blog as I find any improvements in it!

I hope you find this useful and it encourages you to give DOSBox a go to relive some classic PC games on your X1000!

4 comments:

  1. Thanks for all the info about DOSBox and how well it runs on the X1000. It makes me want to set up DOSBox on my X1000 too. I hope that a config that will allow Win95 to run on my X1000 using DOSBox is found eventually, as I have one game (Red Baron II) that I would like to be able to run on my X1000, but it is listed as a Win95 game.

    ReplyDelete
  2. Hmmm ... SAM 460 was shown running Win95, wonder why wouldnt X1000?
    There is at least one more x86 emulator.
    Hope when second core is enabled things will speed up

    ReplyDelete
  3. Did you get ipx network up and running?

    ReplyDelete
    Replies
    1. No, I didn't try this. I don't know any other local DOS gamers to play games with over ipx! I used to play DOS games over ipx back in the mid 1990's but that was about it...

      Delete