DOSBox Port

From NikiWiki
Revision as of 18:41, 16 March 2005 by JoSch (talk | contribs) (Issues)
Jump to: navigation, search

This page will help to organize the port of DOSBox to OS/2. Initially, Martin Klingenfuss offered to pay the first person that ported DOSBox to OS/2 500 EUR. He also invited other people to join in and donate some money. To organize and coordinate all activities arround the port, this page was created.

Porting DOSBox to OS/2 is currently NOT a netlabs.org project! (no project homepage, no CVS,...) However, since netlabs.org offers this great WIKI, we decided to host the page here, so everybody can contribute to the content of the page easily.

This whole thing was started here (german!): http://www.os2.de/forum/diskussion/index.php3?all=87595

What is DOSBox?

Homepage of DOSBox


Why port DOSBox to OS/2, don't we have a Virtual DOS Machine?

" DOSBox is a DOS-emulator that uses the SDL-library which makes DOSBox very easy to port to different platforms. DOSBox has already been ported to many different platforms, such as Windows, BeOS, Linux, MacOS X...

DOSBox also emulates CPU:286/386 realmode/protected mode, Directory FileSystem/XMS/EMS, Tandy/Hercules/CGA/EGA/VGA/VESA graphics, a SoundBlaster/Gravis Ultra Sound card for excellent sound compatibility with older games...

You can "re-live" the good old days with the help of DOSBox, it can run plenty of the old classics that don't run on your new computer!

DOSBox is totally free of charge and OpenSource."


Addon from Martin Klingenfuss:

As a DOS-games-player I think it would be great to have the virtualised DOS-box under OS/2 for usage of seamless SVGA-graphics under PM and sound via MMPM so modern PCI-audiocard will play DOS-games sounds.

Maybe it's necessary to work on the multimedia/graphic interfaces under OS/2 to make the DOS-Box run with same quality as under Win32. Because I am no programmer, I do not know what is exactly needed for this port.

Added By Peter (related to dosbox and surfing around the internet):

Dosbox is an emulator not a virtualised dos machine. (dosbox runs on non x86 targets as well!) It's basicly a 386 DX emulator with emulated bios/ emulated dos/emulated sound blaster 16 / emulated svga card. ) This is very usuable (actually porting shouldn't that hard) but it's not super fast.

Some windows specific behaviour that is missing in other ports:

  • direct serial passthrough
  • ddraw output support

Things dosbox requires optional from the host(os/2) (but all present in other ports):

  • a port of SDL.
  • possible some low-level cdrom interface.
  • a mpu-401 interface (midi)
  • a c++ compiler (gcc would be very helpful)
  • ports of the following optional libraries(used in win32)
    zlib/libpng/sdl_net/lib-ogg/lib-vorbis/sdl-sound/
  • If os/2 doesn't have function like readdir and opendir (libc function) then a specific drive interface must be written

About the Money

What needs to be done to receive the money

The money will be payed to the first person or group that successfully ports DOSBox to OS/2. A full OS/2 port has to satisfy the following requirements:

  • Version 0.63 or above of DOSBox must be ported
  • Exactly the same features as on Windows
  • Quality of gameplay is exactly the same as on Windows, yes, you can port the bugs too! ;)
  • ODIN must not be used
  • Source code, compile requirements and compile instructions have to be available from a public place
  • if changes to the DOSBox source are required, they must be documented

The money will be paid AFTER the port is done and tested by a few people.

How much money will be paid

Since the first large amount of money was donated in EUR, we use EUR as the currency here. If you need to convert your currency into EUR, you can use the Bloomberg Currency Calculator.


  500 EUR    Martin Klingenfuss
   20 EUR    Robert Henschel; OS/2 User Group Dresden; Money will be transfered to Martin
   50 EUR    cytan299
   30 EUR    milesc
   50 EUR    Kris Steenhaut
   50 EUR    Gerrit Schoenmaker

Total amount: 700 EUR


If you want to donate some money, please add yourself to the list above and contact Martin Klingenfuss (info AT expert-services DOT de)! Martin will tell you when and how to transfer the money. If you want to contribute anonymously, that can be arranged as well.

People who want to sponsor the project should donate at least EUR 20 to make it worthwhile. Martin guarantees a refund in case the project should fail.

How you can help

You can port DOSBox to OS/2!

You can donate some money.

Progress

  • Jochen: I got DosBox compiled and linked. It starts running.

There are some problems with starting DosBox, which I'm now investigating.

  • Robert: Great, let us know if you make more progress!<
  • Jochen: I now have a DOS prompt, but there is still some glitches in the LIBC, I worked around for now.
  • Robert: If you feel like you need help from the LIBC developer, you can join #netlabs on irc.netlabs.org and ask
  • Jochen: I have succeeded in building a first version. Download from here. Please report bugs and suggestions in section Known Bugs or email me (josch@joschs-robotics.de).
  • Jochen: Alpha3 runs with the most important features
  • Jochen: Alpha5 nows has support for serial passthrough and cdrom ioctl.
  • Jochen: Alpha6 nows fixes a bug with the copy command. It also gets built with optimization.

To Do

  • Midi support has to be implemented correctly. Possibly with software MIDI.
  • Autotools support.
  • Build instructions.
  • Audio Input for soundblaster emulation.

Known Bugs

  • Playing SimCity 2000, in Windows the mouse is "locked" in the DosBox window until CTRL-ESC is pressed, in OS/2 the mouse can leave the DosBox window, and there is some strange positioning problem (reported by Robert)
    • I do not know what causes this, but from time to time, the mouse can only be moved in parts of the DosBox window

This is a bug in SDL/2. It captures the mouse, but never re-centers it. (Doodle)

Issues

  • Starting DOSBOX results in 100% CPU usage (playing SimCity 2000 is possible, but very slow) (reported by Robert)
    • This can be reduced by pressing CTRL-F8 to increase the frame skip, but then, SimCity becomes jerky
    • I have not yet compared that to the Windows version, maybe this is inherent to DOSBOX

It seems to be a problem with the way SDL/2 handle SDL_PollEvent, SDL_PeekEvent and related functions. There has to be some research on that. But it seems that we can't do much here. It's very much inherent to Simulators/Emulators.

  • I did a few performance comparisons on the same hardware between OS/2 and Windows the results are:
    • Windows is faster, but not very much
    • the sound is "smoother" on Windows, there is a difference, not a large one however
    • 1 GHz Pentium 3 is not enough for Commander Keen, not even on Windows (yes, I tried all the tricks from the FAQ) :-(
    • I will stop to complain about speed/performance as it seems I do not have adequate hardware for testing ;-)
  • 11.03.2005

Possibly an error with uppercase chars. Maybe someone can confirm that "mount d s:\ -T cdrom" works but when "mount d s:\ -T CDROM" does not.

    • It's a feature. It's the way DOSBOX handles it. It simplay tests against a lowercase string. It's not a bug of the OS/2 port.

Resolved Bugs

  • I have not been able to get sound to work (resolved since Alpha 3)
  • Pressing Exit in the keymapper crashes DOSBOX (resolved since Alpha 4)
  • Shift with many keys doesn't work (resolved since Alpha 4)
  • If the CDROM is mounted as CDROM drive, there can be problem with changing the directory (resolved since Alpha 5).
  • The command copy con test.bat crashes Dosbox. The Linux version claims that file doesn't exist (resolved since Alpha 6).
  • Playing Commander Keen 4, one has to press the ALT key to get this "jump stick", however, this opens the system menu of the window (works in Windows) (will be resolved in Alpha 7)
    Jochen: It's not a bug, it's a feature. Doodle will remove the system menu from SDL windows.
  • Screenshot crashes DOSBOX (resolved since Alpha 6).
  • Serial Passthrough now works (will be resolved in Alpha 8)

Your Questions go here!

Q: Where do I get the latest version of SDL for OS/2?
A: The package of SDL version 1.2.7 has been updated on December 22nd. http://sdl.netlabs.org/index.phtml ftp://ftp.netlabs.org/pub/sdl/