DOSBox Port

From NikiWiki
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?

DOSBox is a DOS-emulator portable (and ported) to many platforms. A port was made feasible by the implementation of SDL on OS/2. For more infomation, visit the homepage of DOSBox. Since DOSBox/2 is a regular OS/2 application, there is no need to have DOS-based drivers for video and sound support - everything is passed through and handled by OS/2.

Where can I get it?

The binaries can be obtained here: here.
Since development is basically finished, here are the direct links to the WPI-installers for version 0.65: User Version Debug version

The most recent version (CVS as of 2006/12/12) is here: CVS 2006/12/12

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
   30 EUR    RaHa

Total amount: 730 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.
  • Jochen: Beta 2 fixes some issues and the final version seems to be at hand.
  • Jochen: Beta 3 fixes the mispainted key mapper.

To Do

  • Autotools support.
  • Build instructions.
  • Audio Input for soundblaster emulation.
  • Integration with main Dosbox

Known Bugs

Issues

[Please post any issues pertaining to the (hopefully) final WPI-versions here]

  • Nothing posted yet

[End of WPI-versions issues. The following posts remain here for posterity]

  • Starting DOSBOX results in 100% CPU usage (playing SimCity 2000 is possible, but very slowly) (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) :-(
      • [dargndorp]Beg to differ, Commander Keen 1 and 6 run perfectly here on my Thinkpad A30, (1GHz P3M) with DosBox/2 Alpha 7
      • Robert: When I run Keen 6 with Alpha7, I do have problems with the sound. Sound is just too slow (Thinkpad T22 1GHz). What settings do you use, I have: core=normal; cycles=4000; frameskip=0; Did you change anything on the sound settings?
      • [dargndorp] Didn't change anything at all here, DosBox is running with default settings. Then again, this box isn't doing anything in the background, no lan services or peer, no nifty daemons, nothing.
    • I will stop to complain about speed/performance as it seems I do not have adequate hardware for testing ;-)
      • Robert, try to use the dynamic core. Can you tell us, what graphics hardware you have? How are the other SDL/2 apps behaving?
        • This is a Thinkpad T22 with a S3 Savage MX using SNAP. Changing from "normal" to "dynamic" does not change anything. SDLInvaders and RockDodger are working fine on my system. DosBox/2 is equally fast in a window and in full screen mode.
        • I wonder if this could be resolution or color depth dependent? I run with 1400x1050 on 64K colors. When I get a chance, I change this to the normal 1024x768 and see what happens...
          • [dargndorp] Seems like you didn't follow up on your graphics test; just for your information, that is the exact same resolution I run DosBox on my aforementioned A30; then again, I have an ATI Mobility Radeon (or somesuch). If you run the Sysbench graphics benchmarks, we could compare.
  • [dargndorp] Is anyone testing DosBox with an ISA soundcard (specifically, SoundBlaster AWE 64)? If you are, is the mouse acting funky upon startup?
  • 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 simply tests against a lowercase string. It's not a bug of the OS/2 port.
  • Lesha reported that he couldn't use TVshow together with Dosbox or any other SDL/2 app. Doodle and dargndorp couldn't confirm that bug.
  • [dargndorp] Running two concurrent instances of DosBox leads to intermittent system freezes. This seems to be a limitation of SDL, since similar symptoms can occur when starting several SDL games concurrently.

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 (resolved since Beta 1).
  • SDL/2 mouse problem: Fixed by Doodle (resolved since Beta 1).
  • Key mapper was mispainted (resolved since Beta 3).

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 March 30, 2005 http://sdl.netlabs.org/index.phtml ftp://ftp.netlabs.org/pub/sdl/

Q: Can it run on a full screen session ? how ?
A: Yes. You can press ALT+POS1 or ALT+Enter and the window switches to a full screen session. Return to window mode is the same key combination. A: Or you can run "dosbox.exe -fullscreen" from the command line.

Q: Does the OS/2-eCS version of DOSBox offer support for the same language add-ons of DoxBox web site ? - http://dosbox.sourceforge.net/download.php?main=1
A: Yes, it does! I just tested with the german language file. Running dosbox with "-lang german.lng" results in german text. The german keyboard layout can be controlled by the FreeDOS tool keyb. For more information read the Dosbox Wiki.

Q: I only have Warp4 with the old 16bit TCP/IP stack, but Dosbox/2 wants the 32bit stack.
A: Warp Updates (German and English) gives you descriptions about your upgrade options.

Q: How do I get the versions of DosBox with the internal debugger to run?
A: SET TERM=ANSI in your config.sys or in the current cmd session. You also need the terminfo directory from ncurses installed in /usr/share.

Q: So where's the beef about porting and patching?
A: Have a look at the DosBox forums, there's a bit of info in the development and patches area.

Q: What about version 0.65?
A: It's there. See above for links

Acknowledgements

  • Martin Klingenfuss for giving me the pretext for doing the project.
  • Andy B for giving me the hint, for testing and being a great friend.
  • Martin Iturbide for his Warpin Template.
  • Doodle for doing SDL/2 and being an excellent supporter.
  • Knuddel for verifying the joystick support and the Warpin installers work.
  • Robert Henschel, Daniel Caetano, Lesha Bogdanow, Dietrich Teickner, Michael (Riethdorf?) and some others (not a lot anyway) for bug reports.


Third-Party Addons

  • A graphical frontend for Dosbox/2 has been created by ChrisR, the current binaries are on Hobbes and on his homepage. He wrote a blurb about his project on os2world.com, take a peek here.