
EMUfailure.txt

Uwe Bonnes (original author), bon@elektron.ikp.physik.th-darmstadt.de

   Sep 28, 2003 for dosemu 1.2.0 (and possibly earlier versions)

   This file lists programs and groups of programs not running or running
   only partially under dosemu. The most up-to-date version of this file
   may be found on: http://www.dosemu.org/. Please report about possible
   additions to linux-msdos@vger.rutgers.edu. or the SourceForge BTS at
   http://www.dosemu.org/. Perhaps it can be made going with the help
   others. Have a look at the dosemu-howto how to do so.
     _________________________________________________________________

   Table of Contents
   1. Fundamental problems

        1.1. Virtual Control Program Interface (VCPI)
        1.2. Programs using older Versions of the Pharlap Extender
        1.3. MSDOS enhanced mode Windows kernel krnl386.exe
        1.4. Windows programs using Win32s
        1.5. Does my failing program belong to these groups?
        1.6. Fundamental problem with the timer
        1.7. Fundamental problem with the CPU

   2. Known bugs

        2.1. Things YOU may help changing
        2.2. Problems probably solved

   3. Programs not working yet

        3.1. dd2demo.exe
        3.2. bae.exe
        3.3. QIC tape programs

   4. Programs exhibiting graphical problems in xdosemu

        4.1. Text programs with custom fonts
        4.2. Games with graphical problems

1. Fundamental problems

   Programs that don't work under the MSDOS Emulator and probably won't
   ever work, because of fundamental problems. Some of these fundamental
   problems result in these programs not being runnable on
   Win3.x/Win95/WinNT in a Dosbox and under OS/2 either. These programs
   are characterized by using any of these features:
     _________________________________________________________________

1.1. Virtual Control Program Interface (VCPI)

   VCPI allows programs to run in ring 0. This is kernel mode in Linux
   and not sensible.

   Example: sim2181.exe from Analog Devices DSP Kit
     _________________________________________________________________

1.2. Programs using older Versions of the Pharlap Extender

   The Pharlap Extender in it's older versions needed ring 0 access too,
   so it can't me made working in the emulator.

   Example:Autocad Version 12c1 For DOS
     _________________________________________________________________

1.3. MSDOS enhanced mode Windows kernel krnl386.exe

   krnl386.exe needs Ring 0 access too.
     _________________________________________________________________

1.4. Windows programs using Win32s

   Win32s needs Ring 0 access too.
     _________________________________________________________________

1.5. Does my failing program belong to these groups?

   Check with "strings <program.exe> | less" if the programm contains
   some of these keywords vcpi, pharlap and win32s. Newer Pharlap
   programs may work.
     _________________________________________________________________

1.6. Fundamental problem with the timer

   We are emulating a high-resolution timer (PIT) while the Linux kernel
   programs the timer (which can be used via setitimer(2)) at 100Hz. The
   interrupts are so saturated that the main loop never gets much of a
   chance. We are using "bursts" to catch up with an emulated frequency,
   which causes races for the interrupt handlers. Scream tracker 3 and
   Cosmo suffer from this problem. Possibly a workaround may be found in
   future DOSEMU development.
     _________________________________________________________________

1.7. Fundamental problem with the CPU

   Intel's design defect described here:
   http://www.intel.com/design/intarch/specupdt/27287402.PDF chapter
   "Specification Clarifications" section 4: "Use Of ESP In 16-Bit Code
   With 32-Bit Interrupt Handlers" causes problems since the Linux kernel
   uses 32-Bit interrupt handlers and will trash the stack pointer, ESP.
   This is never a problem in real DOS where, normally, no 32-bit
   interrupt are present.

   It may be possible to work around this problem by using a different
   DOS extender, e.g. DOS32A at http://dos32a.sf.net, as follows: DOS32A
   progname.exe (at the DOS prompt)

   The following programs are examples that are problematic because of
   this misfeature:

     * Need For Speed 1 (demo version at least)
     * Syndicate Wars with dos4gw 0.8
     * Open Cubic Player

   It may be possible in the future to work around this using CPU
   emulation and/or a 4G/4G code/data split in the Linux kernel.
     _________________________________________________________________

2. Known bugs

2.1. Things YOU may help changing

   This is a list of currently known bugs in Dosemu 1.2.0. Some of these
   are in the bug tracking system at http://dosemu.sf.net.

     * Some documentation is known to be well out of date.
     * Some video BIOS will start very slowly with the serial ports
       enabled.
     * Windows 3.1 will not run very well because of timer problems.
     * OPL3 FM sound doesn't work (but Midi, SB8 and SB16 work)
     * IPX doesn't play well with DPMI. You might be able to use the
       packet driver in combination with DOS TSR drivers such as LSL,
       IPXPD/PDETHER/PDIPX and IPXODI. See NOVELL-HOWTO.txt and
       README.txt for details.
     * Some database programs (Clipper, FoxPro) have problems with
       locking in certain configurations. smbfs doesn't support locking.
       $_full_file_locks=(on) may or may not help.
     * The direct text console (without graphics) may have the whole
       screen jumping one line up.
     * Console graphics (especially switching VCs) can be problematic
       with certain video cards, in particular in combination with fbdev
       graphical consoles.
     * An (unknown) DPMI clipper program hangs when run on a SMP machine
     * A chess program (VChess) may crash in xdosemu when the mouse is
       moved (there are still some issues with the internal mouse driver)
     * Another chess program (Nimzo 3) crashes when there is no CD in the
       CDROM drive.
     * DPMI interrupt handling may be unreliable. This problem exhibits
       itself in a program named "Screamer 2".
     * Watcom C may fail freeze on AMD but not PIV.
     * Ishar only works fine if sound is disabled or uses the pc-speaker
     _________________________________________________________________

2.2. Problems probably solved

   Here reported problems with older versions are listed. The current
   version should have solved them, but this has to be validated. Please
   report if you had problems in the listed areas and these problems are
   now solved.

     * There are known problems with xdosemu (e.g. it may not work at all
       for you.)
     * xdosemu sessions accessed from remote, non-Linux X-sessions (e.g.
       SUN stations and others) may not work correctly. Use
       $_mitshm=(off).
     * The internal mouse driver is known to have problems.
     * Running a protected mode 'make' and a protected mode compiler
       (e.g. Borland's) may not work. Try switching to a real mode make.
     _________________________________________________________________

3. Programs not working yet

   Here are programs listed, where someone has reported that it does not
   work.
     _________________________________________________________________

3.1. dd2demo.exe

   This is a game found at
       http://www.psygnosis.com/

   Reported by Hans Lermen, it kills dosemu, giving an output like:
    general protection at 0x1fba: a7
    ERROR: SIGSEGV, protected insn...exiting!

   The crash happens in DMPI Call 0x0302 At least DMPI Call 0x0506 is not
   yet implemented.

   This demo is no longer for download. But if you can test please let us
   know for completeness.
     _________________________________________________________________

3.2. bae.exe

   This is a demo version of an Electronic CAD programm, found at
       http://www.bartels.de/

   Reported by Uwe Bonnes, it stops dosemu with a blank screen in an
   unusable state. You have to do a remote login to kill dosemu, or hit
   reset with all it's possible fatal result. The possible reason is the
   missing implementation of DMPI Call 0x0800, as Uwe Bonnes reported it
   once working on the console with some hack.

   However, this demo is no longer for download, and, moreover, they have
   a native Linux version.
     _________________________________________________________________

3.3. QIC tape programs

   Reported by vignani@mail.tin.it (Alberto Vignani): Tape is not
   supported. Worse, if you use a floppy under dosemu, you have sometimes
   to remove/reinstall the ftape module.
     _________________________________________________________________

4. Programs exhibiting graphical problems in xdosemu

   The following programs work perfectly on the Linux console
   (suid/sudo/root) with graphics enabled but exhibit minor or major
   glitches in xdosemu.
     _________________________________________________________________

4.1. Text programs with custom fonts

   Programs such as Norton Commander and the Watcom Debugger use custom
   characters to display icons, radio buttons and similar characters.
   This problem is addressed in current development versions and the
   fixes will likely be backported to a later version of DOSEMU 1.2.x
     _________________________________________________________________

4.2. Games with graphical problems

   The following games exhibit glitches or don't work at all in xdosemu.
   Please let us know when any problems are solved or even better, help
   us solving!

     * Commander Keen 1 wobbles like jelly and the window shakes every
       time it scrolls.
     * Commander Keen 4 gives you a black screen.
     * Clyde's Adventures statsbar fonts completely garbled xdosemu.
       Download at: http://www.gamesdomain.com/directd/513.html
     * Pinball Dreams 2 takes a long time to start. Once it's past the
       startup screen it runs fine though.
