Short: Native DOS emu with PPC JIT and Voodoo Author: Michal Zukowski Uploader: Michal Zukowski Type: misc/emu Version: 0.74-4 MorphOS Release 1.3 Requires: MorphOS 3.18 Architecture: ppc-morphos DOSBox MorphOS ============== DOSBox is a DOS emulator capable of running a large collection of classic DOS games and applications on modern systems. This edition is a substantially extended MorphOS port based on DOSBox 0.74. The original SDL platform layer has been replaced by native MorphOS components. PowerSDL.library is not required. The port uses native MorphOS APIs for: - Intuition windows and input - CyberGraphX display output - CGXVideo overlay output - TinyGL/OpenGL accelerated output - AHI audio - MUI configuration GUI - timer.device and Exec synchronization - SANA-II networking Main features ============= - Native SDL-free MorphOS frontend. - PowerPC dynamic recompilation/JIT. The optimized PPC JIT can reach up to 150% of the performance of the previous MorphOS version, depending on the emulated program, selected CPU settings and host hardware. - CPU emulation for 286/386 real mode and protected mode software. - XMS, EMS, DOS memory, directory-mounted drives and disk images. - Hercules, CGA, Tandy, EGA, VGA, SVGA and VESA graphics. - Native display backends: surface CyberGraphX software presentation. overlay CGXVideo hardware overlay. opengl MorphOS TinyGL/OpenGL output with linear filtering. openglnb MorphOS TinyGL/OpenGL output with nearest-neighbour filtering. - 3dfx Voodoo Graphics SST-1 emulation. Voodoo rendering can use either the complete software rasterizer or a native MorphOS TinyGL/OpenGL backend. The TinyGL backend translates the emulated SST-1 operations directly to MorphOS TinyGL without using SDL. Supported Voodoo functions include triangle rendering, texture mapping, depth buffering, blending, chroma and alpha tests, fog, framebuffer operations, clears, swaps and LFB access. - Native AHI sound output. - Sound Blaster, Gravis UltraSound, MIDI, PC speaker and related DOS audio hardware emulation. - Windows 3.1 and Windows 95 absolute mouse integration. The matching DOSBox-X pointer integration driver must be installed inside the guest Windows system. After installation, the pointer can move between MorphOS and the emulated desktop without capturing the mouse. - Selectable pointer display modes: Windows only Show the pointer drawn by the guest Windows system and hide the MorphOS pointer over the emulation display. Both Show both the guest Windows pointer and the MorphOS pointer. MorphOS only Show the MorphOS pointer and suppress the emulated S3 hardware cursor used by Windows. The MorphOS-only mode can suppress the normal S3 hardware cursor. A software cursor drawn directly into the Windows framebuffer by an application or another display driver may still remain visible. - Native NE2000 networking through a MorphOS SANA-II device. - Native MUI configuration editor and keyboard mapper. - Full-screen, windowed, overlay and TinyGL operation. Installation ============ Copy the DOSBox directory to a location of your choice and start the DOSBox executable. TinyGL is optional for normal DOSBox use, but is required for: - output=opengl - output=openglnb - Voodoo card=tinygl If TinyGL acceleration is unavailable, use a CyberGraphX output mode and the software Voodoo renderer. Configuration GUI ================= Starting DOSBox without command-line arguments opens the native MUI configuration GUI. The GUI can also be opened explicitly with: DOSBox -gui or: DOSBox -editconf To bypass the GUI and start directly with the current configuration: DOSBox -nogui A specific configuration file can be loaded with: DOSBox -conf Work:DOSBox/myconfig.conf The configuration window contains five main tabs. Core ---- General emulator and display configuration, including: - machine type - memory size - windowed or full-screen operation - display output backend - full-screen and window resolution - frame skipping and rendering options - mouse autolock and sensitivity - general DOSBox options Recommended display choices: surface Safe native CyberGraphX output. overlay Fast CGXVideo overlay output when supported. opengl TinyGL output with linear filtering. openglnb TinyGL output with sharp nearest-neighbour pixels. CPU --- CPU and PowerPC JIT configuration, including: - CPU core - CPU type - cycle mode and fixed cycle count - PPC JIT register cache - PPC JIT aggressive flags - JIT statistics and diagnostic options For the highest performance, use the dynamic core and tune the cycle setting for the selected game. Compatibility-sensitive programs can be tested with the normal core. The maximum JIT gain depends on the program. The quoted result of up to 150% means up to one and a half times the speed of the previous MorphOS build, not a guaranteed improvement for every title. Audio ----- Audio configuration, including: - native AHI mixer output - mixer rate and block size - MIDI - Sound Blaster - Gravis UltraSound - PC speaker - additional emulated sound devices If audio breaks up, first try a larger mixer block size. Larger values improve stability but also increase audio latency. I/O --- Input and communication devices, including: - joystick - mouse integration - serial ports - IPX settings Mouse integration setup ----------------------- 1. Open the I/O tab. 2. In the Mouse Integration group select: none Standard captured DOSBox mouse. win31 DOSBox-X pointer integration for Windows 3.1. win95 DOSBox-X pointer integration for Windows 95. 3. Select the Pointer mode: Windows only Both MorphOS only 4. Use Save && Run. 5. Install the matching DOSBox-X pointer integration driver inside the guest Windows system. Without the guest driver, Windows continues to use the ordinary emulated PS/2 mouse and mouse capture may still be required. PCI --- PCI-related and accelerated device configuration. Voodoo setup ------------ 1. Open the PCI tab. 2. In the Voodoo group set Voodoo card to one of: false Disable Voodoo emulation. software Use the complete CPU software rasterizer. tinygl Use the native MorphOS TinyGL/OpenGL renderer. 3. For normal TinyGL use, the recommended initial settings are: TinyGL submission: arrays TinyGL tuning: fast State capture cache: enabled Shader support: disabled Debug: disabled 4. Try vbo or vbo-indexed only when supported reliably by the installed TinyGL driver and graphics hardware. 5. Shader support is optional. If shader creation or capability checks fail, the fixed-function renderer is used as a fallback. 6. Most Voodoo options require restarting DOSBox. NE2000 / SANA-II setup ---------------------- 1. Enable NE2000 in the PCI tab. 2. Select the MorphOS SANA-II device, for example: DEVS:Networks/rtl8139.device 3. Select the correct device unit. 4. Configure the emulated NE2000 base address and IRQ if the guest software requires non-default values. The host network stack can remain active. The backend uses the station address of the selected SANA-II unit. Autoexec editor =============== The lower part of the GUI contains the Autoexec editor. Commands entered there are executed after DOSBox starts. It can be used to mount directories, select drives and launch a game automatically, for example: mount c Work:DOSGames c: cd DOOM DOOM.EXE GUI buttons =========== Save Save the current settings to the active configuration file and keep the configuration window open. Run Apply the settings for the current session and start DOSBox without saving the configuration file. Save && Run Save the settings and start DOSBox. Cancel Close the configuration window without starting DOSBox. Project menu ============ Load config... Load another DOSBox configuration file. Save config... Save the current configuration under a selected filename. Keyboard mapper... Open the native keyboard mapper while keeping the configuration window available. About... Display program and port information. Exit Close the configuration GUI. Useful keys =========== The default mapper contains the usual DOSBox control shortcuts: Ctrl-F9 Quit DOSBox Ctrl-F10 Capture or release the mouse Alt-Enter Toggle full-screen mode Ctrl-Alt-Home Restart DOSBox The mappings can be changed with Project -> Keyboard mapper. Notes ===== Some configuration properties can only be changed during program startup. Use Save && Run or restart DOSBox after changing CPU, Voodoo, networking or mouse integration settings. Voodoo TinyGL performance and compatibility depend on the MorphOS graphics driver, graphics card, selected submission mode and game. The PPC JIT performance result is workload-dependent. Some programs are limited by graphics, sound, memory access or emulated hardware rather than by CPU execution. DOSBox emulates historical PC hardware. It does not provide a complete modern virtual machine and is intended primarily for DOS software and supported Windows 3.x/9x configurations. About DOSBox ============ DOSBox emulates a DOS-compatible computer with CPU, memory, graphics, sound, input and storage hardware. It can run many classic games and applications which no longer work directly on modern computers. You can re-live the classic DOS era without keeping the original PC hardware. DOSBox is free and open-source software released under the GNU General Public License. Credits ======= Original DOSBox: The DOSBox Team MorphOS port: Michal Zukowski Selected Voodoo and compatibility work is based on open-source DOSBox-X and Aaron Giles implementations and has been adapted for the native MorphOS backend. All trademarks and product names are the property of their respective owners.