The Dosbox / Ibm Pc Information Thread


BadAstronaut

Still Fresh
Joined
Mar 5, 2008
Messages
73
Location
South Africa
Website
Visit site
Hi everyone.

I am writing this thread with the intention of organising, into one place, all available information relating to getting DOS/IBM PC onto the GP2X.

As anyone can see from looking at my reg date, I am a newcomer to these forums. I am also a newcomer to the GP2X, having only gotten my hands on one for the first time ever on the 3rd of March, 2008. Still, I’d like to become a part of this community, and I’ll do so by trying to get some discussion going on the state of DOS/IBM PC emulation on the GP2X.

One of the main reasons I bought my GP2X F-200 was in the hopes of running many of the old DOS games, both those that I loved to play when I was growing up, and those that I would have loved to play when I was growing up. As I am sure you will all agree, it’s great having the likes of SCUMMVM and the various interpreters (such as Exult, pbDoom and Reminiscence) to relive these old classics on the GP2X.

DOSBox itself, however, currently leaves quite a lot to be desired. This is no criticism of the programmers – you guys have done an excellent job getting it this far – but I think the shared opinion is that there is a great amount of room for improvement. I have read through quite a number of threads on the forum, as well as searched through a lot of posts relating to DOSBox, and I have pretty much gathered that the existing port of DOSBox has not been optimised for the dual ARM processors, and that if someone were to program a port that uses, say, one chip for graphics and cpu and another chip for sound and input, the resulting performance increase would be phenomenal.

Furthermore, common sense just tells me that given the current state of CPS2 and Playstation emulation on the system, getting the GP2X to run a 286, 386 or even 486 with 8mb of RAM surely is not out of the question. Perhaps this statement is based on ignorance, and if this is the case, please explain to me where I’m going wrong.

Now, I am no programmer, so I can not do these things myself – but I would be more than happy to donate towards a fund that will buy an F-200 for someone with the (proven) knowledge and ability to optimise DOSBox for the GP2X, and include my current big wish, using the touchscreen as a mouse in old non-SCUMMVM DOS games.

Those interested can also look at this thread about a static recompiler for 8086 (IBM PC) to ARM. Most of the discussion happened in 2006, but the thread was brought back to life recently. Still, it doesn’t look like too much ever became of this project due to the coders’ lack of time, and possibly the difficulty of the project itself (but this last point is not confirmed).

So, I hope that this thread can become a place where people can discuss the latest happenings in DOSBox / IBM PC emulation on the GP2X, and as more information becomes available, I will edit this post to keep it up to date.

I am also keen to create some kind of repository for working configuration files, where we can share keyboard mappings and dosbox.conf files for games that are working at a satisfactory level. This has now been added to the file archive:

DOSBox configuration files - Note: these are zips containing the configuration files only, not actual game data files.

Battletech - The Crescent Hawk's Inception
Quest For Glory 3 - Wages of War
Secret of the Silver Blades
 
Last edited by a moderator:
Well, I for one would greatly appreciate the touchscreen ability in dosbox as well, and am also willing to donate towards the cause......say $20?

DSR
 
Some of the info you want to collect is duplicated in the wiki:
http://wiki.gp2x.org/wiki/DosBox
I would rather see you collect info and add to the wiki page, not a thread.

Dosbox is slow by design, what i mean is that is deigned for compability not speed. Compability means all the code must be able to compile on any system, so the code is done in a higher language like C++. This makes the application slower. To make it faster you would have to dive into the asm.
I doubt you will see much more of a performance increase unless someone make a dynarec from x86 to ARM. Zodtdd was interested in doing this, but i think the differences between the 2 hw's might have made it implausible or difficult to achieve. It seems he has abandoned the idea.
Ive been very interested to see what Pandora can do with dosbox and how much of performace increase we get.
In summary most CGA/EGA type games should run. I think the performance estimate was a 286 at roughly 8 Mhz.

A collection of config files on gp2x file server migh tbe a good idea. It might make since to create a new catorgory for dosbox config's.

To add something to this, i recently tried to fire up dosbox again, but I came up with an error about the search path. THe problem has been documented already in another thread, but no solution was made.
Im going to try some different things to see if I can fix it. It used to work for me, but I deleted my working copy.

Also theres an app made by Streak to create configs. It's not polished but it gives a good starting point with the config files. THe mapper gui is probally the best part.


dsraa said:
Well, I for one would greatly appreciate the touchscreen ability in dosbox as well, and am also willing to donate towards the cause......say $20?

DSR
I believe that the touchscreen support was being added into SDL by paeryn. Dosbox probally just needs to be recompiled with that SDL, then any mouse actions can be manipulated through the touchscreen.
 
Last edited by a moderator:
Pickle said:
Also theres an app made by Streak to create configs. It's not polished but it gives a good starting point with the config files. THe mapper gui is probally the best part.
It's called DosBoxBlast and is available in the file archive. Really cool app, but I find that I still need to tweak the dosbox.conf file a little bit afterwards.

So, who can help out with a place to store/index working config files? These will generally be only a couple of kilobytes and contain three files, four if there is a readme included...

dsraa said:
Well, I for one would greatly appreciate the touchscreen ability in dosbox as well, and am also willing to donate towards the cause......say $20?
Well, already we've got two people willing to donate to the cause - anyone willing to undertake the project of getting DOS that bit more functional on the GP2X, and adding touchscreen support for the mouse?
 
Last edited by a moderator:
The trick is that when you say "a bit more functional", you're talking speed, and its not a trivial job; dramatic speed increases are possible, but also with dramatic work to achieve it.

(I'd dare-say there needs to be a new project than DOSBox, with a different design and posted goal; less compatible, less far reaching, but made for speed on low end systems.)

jeff

Edit; Welcome :)
 
Alright, my first contribution is up!

Check it out, Battletech by Westwood Associates.

Speed is perfect and the sound is OK, but a little rubbish on the whole because it's only PC speaker and never sounded too great back in 1988 either...

The zip includes a text file with more info, the dosbox.conf, the mapper.txt, the executable gpe file as well as an icon for gmenu.

Hope you guys enjoy, and that someone out there will still play this old classic, or at least give it a try!
 
Last edited by a moderator:
BadAstronaut said:
Furthermore, common sense just tells me that given the current state of CPS2 and Playstation emulation on the system, getting the GP2X to run a 286, 386 or even 486 with 8mb of RAM surely is not out of the question. Perhaps this statement is based on ignorance, and if this is the case, please explain to me where I’m going wrong.
The combined CPU power on the CPS2 is much weaker than a 386 or 486, or even a 16MHz 286. PS1 should have the CPU power of a 33MHz or so 486, but the best results of PS1 emulation on the GP2X are running far fewer instructions per second than a real PS1 can (so the CPU is being vastly underclocked).

For an interpreter, which is what DOSBox for GP2X is using, x86 is an especially complex mess to emulate. Instructions can be several bytes long and must be fetched a byte at a time, even for multi-byte operands, because they will not be properly aligned. They can prefixed as well. There aren't nearly as many registers as on a MIPS, but there are enough that you can't really have opcode handlers for every combination without hurting cache too much, so you still have to go an array for them (as opposed to 65xx emulation where you can keep them in native registers) Memory is segmented, or in the case of 386+ even worse, paged, which means more resources are necessary to handle accesses to it. And accesses to memory are very frequent, since instructions can have memory operands. The accesses themselves may also be to unaligned addresses, so this has to be checked. Having to support both 8 and 16/32bit operand sizes further complicates things. Finally, large constants can be used all over the place, which is bad for an architecture like ARM.

Recompilation alleviates some of the fetch and register allocation problems, but still has a lot of other things working against it for this platform. Static recompilation is not really feasible for a general purpose point of view, and would probably require someone to finish the job by hand most of the time. Dynamic recompilation is entirely feasible, and DOSBox itself has it for the PC version, but even a high end PC can't emulate more than a low end Pentium. Emulating a 486 class PC on a GP2X is out of the question.
 
Last edited by a moderator:
Exophase said:
Emulating a 486 class PC on a GP2X is out of the question.
Wow, thanks for all the info. I really thought CPS2 was more powerful.
So, what about a a 16MHz 286 being emulated at proper speed on the GP2X? I would love something that could run all the Sierra SCI 2 adventure games (mouse driven, VGA graphics). Perhaps this is something that SCUMMVM could implement, given that both SCI and AGI are interpreters as well. In which case, it is no longer strictly DOSBox, but it is a way to get DOS games to run on this system.

Perhaps seeing much more improvement to GP2X DOSBox is a bit unrealistic. Maybe the option is to code more interpreters or ports - I imagine that Privateer, Wing Commander and numerous other Origin games (some required a 386 with EMS though) might have enough in common to fit together in one interpretor - I don't know. Just bouncing ideas around, and it would be great to hear what those in the know think about the future of DOS emulation on GP2X.
 
Last edited by a moderator:
BadAstronaut said:
Exophase said:
Emulating a 486 class PC on a GP2X is out of the question.
Wow, thanks for all the info. I really thought CPS2 was more powerful.
So, what about a a 16MHz 286 being emulated at proper speed on the GP2X? I would love something that could run all the Sierra SCI 2 adventure games (mouse driven, VGA graphics). Perhaps this is something that SCUMMVM could implement, given that both SCI and AGI are interpreters as well. In which case, it is no longer strictly DOSBox, but it is a way to get DOS games to run on this system.

Perhaps seeing much more improvement to GP2X DOSBox is a bit unrealistic. Maybe the option is to code more interpreters or ports - I imagine that Privateer, Wing Commander and numerous other Origin games (some required a 386 with EMS though) might have enough in common to fit together in one interpretor - I don't know. Just bouncing ideas around, and it would be great to hear what those in the know think about the future of DOS emulation on GP2X.


I would really love to see the ega apogee games running on the gp2x. Keen 4.5 and 6 and a few others in the keen series, Duke Nukem 123 (the first trilogy), Cosmo's cosmic adventures, monster bash and some others. Epic mega games had some great pc only games as well but I'm not sure a pc emulator would handle them. There are a lot of great pc only games, but most of the games for the pc were also released on other systems that are emulated, like the Amiga and Atari ST. Playing pc games was a major reason for buying the gp2x, but I was really disappointed at what I got in that area. I'd kill to have keen running on my gp2x, but so far it's not happening. To further disappoint me, my enac can not run keen 4 with dosbox (I haven't tried vpc yet), so it's unlikely that dosbox ever will run keen4:( Development for the gp2x has picked up a bit, but it doesn't have the steam it once had and I don't think anyone is going to take up developing a pc emulator optimized for the gp2x with the Pandora's imminent release.

Chris

BadAstronaut said:
Exophase said:
Emulating a 486 class PC on a GP2X is out of the question.
Wow, thanks for all the info. I really thought CPS2 was more powerful.
So, what about a a 16MHz 286 being emulated at proper speed on the GP2X? I would love something that could run all the Sierra SCI 2 adventure games (mouse driven, VGA graphics). Perhaps this is something that SCUMMVM could implement, given that both SCI and AGI are interpreters as well. In which case, it is no longer strictly DOSBox, but it is a way to get DOS games to run on this system.

Perhaps seeing much more improvement to GP2X DOSBox is a bit unrealistic. Maybe the option is to code more interpreters or ports - I imagine that Privateer, Wing Commander and numerous other Origin games (some required a 386 with EMS though) might have enough in common to fit together in one interpretor - I don't know. Just bouncing ideas around, and it would be great to hear what those in the know think about the future of DOS emulation on GP2X.


I would really love to see the ega apogee games running on the gp2x. Keen 4.5 and 6 and a few others in the keen series, Duke Nukem 123 (the first trilogy), Cosmo's cosmic adventures, monster bash and some others. Epic mega games had some great pc only games as well but I'm not sure a pc emulator would handle them. There are a lot of great pc only games, but most of the games for the pc were also released on other systems that are emulated, like the Amiga and Atari ST. Playing pc games was a major reason for buying the gp2x, but I was really disappointed at what I got in that area. I'd kill to have keen running on my gp2x, but so far it's not happening. To further disappoint me, my enac can not run keen 4 with dosbox (I haven't tried vpc yet), so it's unlikely that dosbox ever will run keen4:( Development for the gp2x has picked up a bit, but it doesn't have the steam it once had and I don't think anyone is going to take up developing a pc emulator optimized for the gp2x with the Pandora's imminent release.

Chris
 
Last edited by a moderator:
Exophase said:
Memory is segmented, or in the case of 386+ even worse, paged, which means more resources are necessary to handle accesses to it [and] even a high end PC can't emulate more than a low end Pentium. Emulating a 486 class PC on a GP2X is out of the question.
What about a 16mhz 386 with 8mb of RAM, VGA graphics and a Soundblaster - is this an unrealistic ask for the GP2X?
 
Last edited by a moderator:
BadAstronaut said:
Exophase said:
Memory is segmented, or in the case of 386+ even worse, paged, which means more resources are necessary to handle accesses to it [and] even a high end PC can't emulate more than a low end Pentium. Emulating a 486 class PC on a GP2X is out of the question.
What about a 16mhz 386 with 8mb of RAM, VGA graphics and a Soundblaster - is this an unrealistic ask for the GP2X?


I wish I could tell you. It'd be on the edge of feasibility, I think.

Someone could do a dynarec using the DOSBox framework already in place, but it isn't a highly efficient framework. To push the bleeding edge a totally customized recompiler might be necessary, and ASM implementations of OPL2 (if that's what you want to emulate w/SB emulation). I don't think VGA should necessarily be that demanding.
 
Last edited by a moderator:
Exophase said:
It'd be on the edge of feasibility, I think.
So you think a 16mhz 286 with SoundBlaster and VGA is more do-able?



UPDATE:
I have added config files for the full version of Sierra's Quest for Glory 3 - Wages of War to the file archive.
The speed is just fine, but that is at the expense of sound. I just wasn't satisfied with the broken up noises coming out of my GP2X...

It seems that minor variations of this configuration (both dosbox.conf and the key mapping) will work for most of Sierra's later SCI games (King's Quest V onwards), so it shouldn't be too much trouble to get them up and running as well.

I'm still holding thumbs that SCUMMVM will add SCI support, with full sound. :)
 
Last edited by a moderator:
The following are the DOSBox key mappings and their corresponding buttons on the GP2x F-200. The differences between the layout of the F-100 and F-200 explain why config files created with DOSBox Blast had some keys reversed (for example, the L and R buttons).

Anyone interested in creating their own config files can map keys according to this reference list:

Directional controls:
---------------------
"key 97" Up
"key 99" Left
"key 101" Down
"key 103" Right


Buttons:
--------
"key 110" B
"key 112" X
"key 109" A
"key 111" Y
"key 106" Select
"key 105" Start
"key 107" R1
"key 108" L1
"key 114" Vol-
"key 113" Vol+



One thing I have thought is for games that require numerical input as well as directional input, the direction keys could be mapped to the numeric keyboard, with one of the buttons then corresponding to the num lock key.

Better yet, if anyone knows how to map multiple button presses as a single key, please let us know. (As a simple example, pressing L is the 1 key, pressing R is the 2 key, and pressing L and R together is the 3 key - how is this mapped in mapper.txt for DOSBox?)
 
UPDATE:

I have just added config files for the Dungeons and Dragons game Secrets of the Silver Blades.
Given how similar these Gold Box games were, I imagine that very similar settings will get the other games working as well. If you are interested in playing this, be sure to read the text file in the archive, as there is some important information regarding mapping of diagonal direction buttons, as well as numerical buttons for trading gold/platinum etc.
 
Do you take requests? I've been struggling to get an old favourite CGA game working "Project Space Station". I've used other CGA DOSBox config files as templates, but I can't seem to get it to work (corrupted splash screen, quits, works on XP Dosbox, GP2X has more than enough horsepower to run this game).

There is a C64 version, but it's slightly different and would prefer to get the version I spent too many hours on working for me...
 
Trevor Bradley said:
Project Space Station
I have tried every combination of graphics card, sound, no sound, and can't get it to work. I can't even see the splash screen, just a mess of colour before it all goes black.

I got it to work first time without any error under DOSBox on Windows XP, and could not get it to run under GP2X at all - I imagine the error is with the DOSBox port itself, and no amount of conf file messing is going to sort this out.

One thing I have not yet tried is to pre-load PHIX and run it in a Hercules monochrome environment - but that is because I no longer have PHIX! Do you remember this program? It let you run most CGA games on a Herculese monochrome monitor? If you could help me find PHIX (and google doesn't have it anywhere...) we can try that as a last resort...
 
Last edited by a moderator:
Back
Top