More actions
DSx86 | |
File:DSx86.png | |
General | |
---|---|
Author(s) | Patrick Aalto |
Type | Emulator |
Version | Version 0.42 Beta |
Licence | Mixed |
Links | |
Download | |
Website |
<htmlet>adsense</htmlet>
DSx86 is a PC emulator for Nintendo DS. It's purpose is to allow you to run old DOS games on your Nintendo DS game console. DSx86 is the winner of GBATemp's Homebrew Bounty 2011 competition.
Features
- 80286 processor, including the protected mode features
- MCGA, CGA, EGA and VGA graphics
- SoundBlaster (including AdLib-compatible FM sounds) sound card
- 83-key US keyboard
- Mouse
Installation
DSx86 does not have an inbuilt command interpreter (or shell), so you need to download a DOS program that provides the command shell features. Currently the only supported shell is 4DOS version 7.50, freeware by Rex Conn & JP Software. The only file you absolutely need is the 4DOS.COM program, but if you have space on your SD card you can download the auxiliary files as well.
- Download the current version
- The root of your card create a folder called 'data' within that a folder called 'dsx86' e.g. c:\data\dsx86\
- Copy DSx86.ini (right click save as) to the dsx86 folder you created above
- Extract and run dsx86config.zip in the the dsx86 folder you created in step two
- Copy 4DOS /data/dsx86/4dos/ directory (/data/dsx86/, /4dos/ and root directory also work).
- Extract your games to anywhere on your card (best to use a short folder name without spaces)
Media
Changelog
v0.42 Beta
- Fixed a couple of bugs in the proportional font 80x25 Smooth scaling.
- Another attempt to fix the "Smooth" mode initialization when used in dsx86.ini.
- Implemented DOS function INT 21 AH=87 (Moria)
v0.41 Beta
- Further "Jitter" mode screen scaling quality improvement.
- Implemented "scasb" opcode EGA VRAM access version (Titus the Fox)
- Implemented INT 6 (illegal opcode) for opcode 0x66 (Titus the Fox)
- Fixed the VideoParameterTable to have correct VGA Misc Register values in text modes.
- Fixed the "Smooth" mode initialization when used in dsx86.ini.
- New experimental proportional font used in 80x25 text "Smooth" mode.
v0.40 Beta
- Improved "Jitter" mode screen scaling quality, courtesy of "sverx".
v0.39 Beta Release
- Fixed the screen flickering problem when scrolling in Smooth scale mode.
v0.38 Beta
- Smooth scaling is faster in all 640x 16-color modes, courtesy of "sverx".
- 640x480 Smooth scaling enabled also in DS Lite mode.
v0.37 Beta
- New INI file parameters TPMXScale and TPMYScale.
- Fixed key repeat feature to always repeat the correct key.
- Built with libNDS 1.5.3, so write to SD card migh work with Sudokuhax.
- Faster Smooth scaling in 320x200x256 mode, courtesy of "sverx".
- Improved graphics mode change detection for 240-row Mode-X modes.
v0.36 Beta
- Implemented SB DSP command 24 (Fury of the Furries).
- Implemented INT21 AH=5A (create temp file) (Foxbase 2.0)
- Implemented INT21 AH=22 (random Write to FCB file) (JumpJoe 2)
- Implemented opcode 0xF0 (LOCK) (Risky Woods)
DSx86 v0.35 Beta
- Fixed a rare memory access problem introduced in version 0.30. This affected Dune 2 and possibly also other games.
- Fixed a register globbering problem in mouse callback routine, which caused Populous 2 to quit to DOS immediately after moving the mouse.
- Fixed an unsupported INT call and hanging problem in Battle Bugs.
- Improved PC Speaker audio handling and VGA 640x480 mode handling.
v0.34 Beta Quick fix version
- This version supports 'sudokuhax' again.
- The keyboard reading and screen blitting order was restored.
- A couple of very minor additional improvements.
v0.33 Beta
- Fixed a serious hanging issue introduced in version 0.24, caused by an incompatibility between my ARM7 code and libNDS version 1.5.0.
- Improved the speed and quality of EGA Smooth screen scaling code.
- DSi mode only: Implemented Smooth scaling for VGA 640x480 mode.
- Added a new configuration option "EMSSize" for choosing EMS/XMS RAM allocation.
v0.32 Beta
- This version only has one minor fix, the direct file reading to EGA VRAM has been implemented. This allows Rockford to run, and fixes the graphics corruption problems in Heimdall when talking to other characters.
v0.31 Beta
- Page Fault handling in the protected mode RETF opcode implemented.
- Implemented some additional XMS INT calls, for Commander Keen 4 etc.
- Implemented Mode-X Smooth scaling for 320x200 and 320x240 resolutions.
- Implemented preliminary Smooth scaling for EGA 320x200 mode.
v0.30 Beta
- A major update of DSx86. This version emulates a 80286 processor,including the protected mode, so that it can run Windows 3.00a in Standard Mode. This should allow DSx86 to run many 16-bit Windows programs. Other changes include support for Smooth screen scaling mode in EGA 640x200 mode, and a faster Smooth scaling algorithm for MCGA 320x200 mode.
v0.25 Beta
- This version is again rebuilt with the newest libnds libraries. It should be able to be run using the so-called "sudoku hack". It also has a new Smooth screen scaling method implemented in CGA and MCGA screen modes. NOTE! Especially in the MCGA mode this causes a severe performance hit, and in EGA and Mode-X modes you will only get a black (or corrupt) screen in this mode.
v0.24 Beta
- This version is rebuilt with the latest libnds libraries, so that it can take advantage of the DSi mode when run in CycloDS iEvolution and on a Nintendo DSi. No other (internal) changes in this version.
v0.23 Beta
- This version has only minor fixes for specific games: Maupiti Island, Mahjong Fantasia, Bart vs. the Space Mutants, Space Hulk and Fire & Ice.Some other games might work better with these changes as well.
v0.22 Beta
- New screen resolution indicator on the lower screen.
- Palette handling for 16-color modes improved.
- Hanging problems in various games fixed.
- See my blog post for more information!
v0.21 Beta
- This is a fix version, after the somewhat buggy version 0.20. Most games that did not work in 0.20 (but worked in prior versions) should now run again, and this version also runs Windows 3.0. The D-Pad mouse behaviour was changed to scroll the screen when near screen border. The internal refactoring continues, which has made this version somewhat slower than
the previous version. v0.20 Beta
- New IRQ handling using self-modifying code, which makes the whole emulator about 8% faster than before.
- Keyboard handling now supports extended key codes.
- Screen update mode "Direct" removed.
- AdLib emulation has increased audio volume, and plays also the rhythm instruments now.
- Covox/Disney Sound Source/Parallel Port DAC audio device emulation added.
- SB Direct DAC audio support added.
- SB auto-init 8bit DMA support added.
- Some other minor fixes and improvements.
v0.15 Beta
- Again a minor fix version. The biggest improvement is the removal of the need to use the LOADFIX command for some games. Also the EGA horizontal scrolling is now smoother than before. Besides these changes there are quite a few added opcodes, so a few more games should run properly now.
v0.14 Beta
- This version again has a lot of minor fixes and improvements, nothing very major. A few more games should run in this version.
v0.13 Beta
- This version has some user interface changes, in addition to the usual bug fixes and support for some previously missing opcodes and INTs.
- Improved touchpad mouse (TPM) emulation, with new configuration options:
-TPMScroll is a boolean that determines whether the screen should be scrolled when the stylus moves near the screen border in Zoom mode. -TPMTap is a boolean that determines whether tapping the screen with the stylus is registered as a left mouse click. -TPMLeft determines the DS button to use for the left mouse button. -TPMRight determines the DS button to use for the right mouse button.
- The defaults if DSx86.ini does not have any of those set are as follows:
TPMScroll=FALSE TPMTap=TRUE TPMLeft=KEY_LEFT TPMRight=KEY_RIGHT
- New internal commands on the DOS prompt:
- VER with a parameter sets the DOS version number reported. - SETVER works like VER. - LOADFIX attempts to load the program above the first 64KB of RAM. This might help with the "Packed data corrupt" problems. - DEBUG starts the program into the inbuilt debugger.
- The scrolling in the Zoom modes is now smoother than before.
v0.12 Beta
- New EGA 640x350x16 and VGA 640x480x16 graphics modes.
- The NDS shoulder buttons scroll the zoomed screen left/right (as before) when not already at the edge, and up/down after that.
- Various mostly game-specific fixes, more info in my blog post.
v0.11 Beta
- Master of Orion and Electranoid are running in this version.
- New mouse emulation mode, you can use the touchpad as a direct mouse input with the stylys.
- Increased EMS memory to 1.5MB.
- Preliminary EGA 640x200x16 mode support.
- DOS System File Table handling, which fixes problems with the 4DOS batch file functions.
- Many problems in log files I have received fixed, more info in my blog post.
v0.10 Beta
- Mouse support. You can select whether the D-Pad emulates cursor keys or mouse by toggling the "Mouse"/"Keybd" text on the touchpad. A/B buttons are the mouse buttons when in mouse mode.
- VGA Mode-X support. All 320-pixel wide modes (320x200, 320x240, 320x400, 320x480) are supported, other widths not yet. The modes with 400 lines or more are prescaled vertically to fit into 200/240 lines (and to get a sensible image aspect ratio).
- CGA 640x200 monochrome mode support.
- Key repeat added. When you keep a key down, it repeats, like in a real PC keyboard.
- Many problems in log files I have received fixed, more info in my blog post.
v0.07 Alpha
- CGA and TEXT modes are now always blitted, the Direct screen update setting behaves similarly to 60 FPS setting.
- About a dozen new EGA opcodes and DOS interrupt functions added.
- Fixed bugs in "!" key, DOS memory resize function, divide opcode,and memory access to EMS page frame.
- Various other minor fixes and improvements.
v0.06 Alpha
- New keyboard graphics by L.D. Ash from http://www.violationentertainment.com
- The meaning of the debugger "G" and the NDS "B" button has been swapped. Thus, you get the keyboard back after going to the debugger with the B button, and touching G and V stays in the debugger screen.
- Shoulder L and R buttons scroll the zoomed screen horizontally, unless they are mapped to PC keys in the INI file.
- New "HDD led" on the bottom screen, so you can see when the game accesses the SD card.
- The unknown INT10 call in Prince of Persia is now ignored.
- Several TEXT mode opcodes have been added, based on the debug logs.
- This version has no improvements to the unsupported INT calls.
v0.05 Alpha
- CGA mode now supports both DIRECT and BLITTED screen update modes.Direct mode is faster, but not all opcodes are supported, so if you get unsupported opcode problems when using DIRECT mode, switch to for example 30FPS mode and the game should run.
- EGA mode improved, now runs Commander Keen 4. Still a lot of EGA features remain unsupported, so this still needs quite a bit of work.
- Some INT and DOS features, along with missing opcodes have also been added, based on the log files I received from the 0.04 version.
v0.04 Alpha
- This version has all (unless I have missed something) of the simple 8086 opcodes supported, and it has slightly improved support for CGA and EGA graphics modes as well. I have gone thru most of the log files I have received and fixed many of the issues in those log files as well.
v0.03 Alpha
- EGA 320x200 16-color graphics mode support.
- Packed File Corrupt problem handling.
- Most of the 8086 opcodes are now supported.
- New supported games are Galactic Battle and Duke Nukem 2. Both use the EGA 320x200 16-color mode. Duke Nukem2 uses also two new SoundBlaster DSP commands, for playing 2-bit ADPCM and for playing silence, which are now both supported.
v0.02 Alpha
- Opcodes for INC, DEC, LEA, LES, LDS, TEST are fully supported.
- Opcodes for moving to/from segment registers are fully supported.
- All 8086 shift opcodes are supported (the 286 versions not yet).
- Most (but not all) of the other unsupported opcodes in the debug logs I have received are now supported.
- I/O port handling has been improved, for example alternate Sound Blaster I/O port accesses are now silently ignored.
- You can now reboot the shell while in the debugger by pressing the 'X' button (or using the bottom row 'X' command and 'v' for Enter).
- Leisure Suit Larry 3 and Solar Winds are now working better.
v0.01 Alpha
- first release