DSx86: Difference between revisions

From GameBrew
(Created page with "{{Infobox homebrew | title = DSx86 | image = File:DSx86.png | type = Emulator | version = Version 0.42 Beta | licence = Mixed | author = Patri...")
 
m (Text replacement - "Category:DS Homebrew Emulators" to "")
 
(28 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Infobox homebrew
{{Infobox DS Homebrews
| title       = DSx86
|title=DSx86
| image       = [[File:DSx86.png]]
|image=dsx86.png
| type       = Emulator
|description=PC emulator that can run old DOS games.
| version     = Version 0.42 Beta
|author=Patrick Aalto
| licence    = Mixed
|lastupdated=2012/07/01
| author      = Patrick Aalto
|type=Computer
| website    = http://dsx86.patrickaalto.com/DSblog.html
|version=0.43 Beta
| download    = http://dsx86.patrickaalto.com/DSdown.html
|license=Mixed
| source      =
|download=https://dlhb.gamebrew.org/dshomebrew/dsx86.7z?k33p0fil35 DSx86 & DS2x86
|website=https://dsx86.patrickaalto.com/
}}
}}
A PC 80286 emulator for Nintendo DS. Its purpose is to allow you to run old DOS games on your Nintendo DS game console.


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.
DSx86 supports DSi mode, while DS2x86 is a version of DSx86 recopmiled and improved according to Supercard DS Two capacity.
 
DSx86 is the winner of GBATemp's Homebrew Bounty 2011 competition.


==Features==
==Features==
*80286 processor, including the protected mode features
* 80286 processor, including the protected mode features.
*MCGA, CGA, EGA and VGA graphics
* MCGA, CGA, EGA and VGA graphics.
*SoundBlaster (including AdLib-compatible FM sounds) sound card
* SoundBlaster (including AdLib-compatible FM sounds) sound card.
*83-key US keyboard
* 83-key US keyboard.
*Mouse
* Mouse.


==Installation==
==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 [http://dsx86.patrickaalto.com/DSdown.html 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.
'''Note:''' 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 [http://dsx86.patrickaalto.com/DSdown.html 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\
Download the current version (DSx86 or DS2x86).
#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
In the root of your card create a folder called data, within that create a folder called dsx86 (e.g. c:\data\dsx86\).
#Copy [http://dsx86.patrickaalto.com/DSdown.html 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)  
Copy DSx86.ini (right click save as) to the dsx86 folder you created above.
 
Extract and run dsx86config.zip in the dsx86 folder that you created.
 
Copy [http://dsx86.patrickaalto.com/DSdown.html 4DOS] to /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).
 
==User guide==
Use DIR (list directory) and CD (change directory) to browse to your game folder then type the name of the .exe to run the game.
 
See also [http://dsx86compatibility.pbworks.com/w/page/26738915/Compatibility%20List DSx86 Game Compatibility list].
 
==Screenshots==
https://dlhb.gamebrew.org/dshomebrew/dsx862.png
https://dlhb.gamebrew.org/dshomebrew/dsx863.png


==Media==
==Media==
<youtube>GCq5-qF6r_w</youtube>
'''master of Orion dsx86''' ([https://www.youtube.com/watch?v=GCq5-qF6r_w Roger Carillion]) <br>
<youtube width="640">GCq5-qF6r_w</youtube>
 
'''Run Windows 3.0 On Nintendo ds/dsi/2ds/3ds (Easy)''' ([https://www.youtube.com/watch?v=mOBXdE7sc_M MrJ0mmy]) <br>
<youtube width="640">mOBXdE7sc_M</youtube>


==Changelog==
==Changelog==
'''v0.42 Beta'''
'''DSx86 v0.43 Beta '''
*Fixed a couple of bugs in the proportional font 80x25 Smooth scaling.
* Opcode ADC used ARM adc instead of add in address calculations. Fixed.
*Another attempt to fix the "Smooth" mode initialization when used in dsx86.ini.
* BCD opcodes (DAA, DAS, etc) did not work correctly. Fixed.
*Implemented DOS function INT 21 AH=87 (Moria)
* Oveflow flag handling fixed in ADC and SBB opcodes.
'''v0.41 Beta'''
* Fixed flags handling in opcodes REPNE CMPSB and REPNE SCASB when CX == 0.
*Further "Jitter" mode screen scaling quality improvement.
* Fixed [bp+di+disp8] address calculation in several protected mode opcodes.
*Implemented "scasb" opcode EGA VRAM access version (Titus the Fox)
* Opcodes LIDT and LGDT did not clear the highest byte of 32-bit base address.
*Implemented INT 6 (illegal opcode) for opcode 0x66 (Titus the Fox)
* Opcodes LAR and LSL did not handle selector type 0 correctly.
*Fixed the VideoParameterTable to have correct VGA Misc Register values in text modes.
* Fixed pushing EGA memory value to stack in Lords of Doom.
*Fixed the "Smooth" mode initialization when used in dsx86.ini.
* Fixed mouse scaling in proportional font 80x25 text mode.
*New experimental proportional font used in 80x25 text "Smooth" mode.
 
'''v0.40 Beta'''
'''DS2x86 v0.36 Beta'''
*Improved "Jitter" mode screen scaling quality, courtesy of "sverx".
* Implemented "rep stosd" for Mode-X with irregular map mask (Micro Machines 2).
'''v0.39 Beta Release'''
* Forced INT 15 AH=88 to report no extended memory (Borland RTM DOS Extender).
*Fixed the screen flickering problem when scrolling in Smooth scale mode.
* Implemented "LAST_FIT" memory allocation strategy handling (Borland RTM DOS Extender).
'''v0.38 Beta'''
* Implemented "LES reg,m16:16" page fault handling (Borland RTM DOS Extender).
*Smooth scaling is faster in all 640x 16-color modes, courtesy of "sverx".
* Implemented INT 21 AH=4D proper return mode reporting (Borland RTM DOS Extender).
*640x480 Smooth scaling enabled also in DS Lite mode.
* Improved SB emulation to not hang after invalid SB command (Jazz Jackrabbit).
'''v0.37 Beta'''
* Implemented support for reading data from file to Mode-X VRAM (Jazz Jackrabbit).
*New INI file parameters TPMXScale and TPMYScale.
* Implemented proper AdLib timer handling (Mortal Kombat etc SB detection).
*Fixed key repeat feature to always repeat the correct key.
* Fixed a bug in ARM9 SB audio buffering scheme (Mortal Kombat, Supaplex, etc).
*Built with libNDS 1.5.3, so write to SD card migh work with Sudokuhax.
 
*Faster Smooth scaling in 320x200x256 mode, courtesy of "sverx".
==External links==
*Improved graphics mode change detection for 240-row Mode-X modes.
* Official website - https://dsx86.patrickaalto.com/
'''v0.36 Beta'''
 
*Implemented SB DSP command 24 (Fury of the Furries).
[[Category:Computer Emulators on DS]]
*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
[[Category:Homebrew applications]]

Latest revision as of 07:09, 7 May 2024

DSx86
Dsx86.png
General
AuthorPatrick Aalto
TypeComputer
Version0.43 Beta
LicenseMixed
Last Updated2012/07/01
Links
DSx86 & DS2x86 Download
Website

A PC 80286 emulator for Nintendo DS. Its purpose is to allow you to run old DOS games on your Nintendo DS game console.

DSx86 supports DSi mode, while DS2x86 is a version of DSx86 recopmiled and improved according to Supercard DS Two capacity.

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

Note: 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 (DSx86 or DS2x86).

In the root of your card create a folder called data, within that create 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 dsx86 folder that you created.

Copy 4DOS to /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).

User guide

Use DIR (list directory) and CD (change directory) to browse to your game folder then type the name of the .exe to run the game.

See also DSx86 Game Compatibility list.

Screenshots

dsx862.pngdsx863.png

Media

master of Orion dsx86 (Roger Carillion)

Run Windows 3.0 On Nintendo ds/dsi/2ds/3ds (Easy) (MrJ0mmy)

Changelog

DSx86 v0.43 Beta

  • Opcode ADC used ARM adc instead of add in address calculations. Fixed.
  • BCD opcodes (DAA, DAS, etc) did not work correctly. Fixed.
  • Oveflow flag handling fixed in ADC and SBB opcodes.
  • Fixed flags handling in opcodes REPNE CMPSB and REPNE SCASB when CX == 0.
  • Fixed [bp+di+disp8] address calculation in several protected mode opcodes.
  • Opcodes LIDT and LGDT did not clear the highest byte of 32-bit base address.
  • Opcodes LAR and LSL did not handle selector type 0 correctly.
  • Fixed pushing EGA memory value to stack in Lords of Doom.
  • Fixed mouse scaling in proportional font 80x25 text mode.

DS2x86 v0.36 Beta

  • Implemented "rep stosd" for Mode-X with irregular map mask (Micro Machines 2).
  • Forced INT 15 AH=88 to report no extended memory (Borland RTM DOS Extender).
  • Implemented "LAST_FIT" memory allocation strategy handling (Borland RTM DOS Extender).
  • Implemented "LES reg,m16:16" page fault handling (Borland RTM DOS Extender).
  • Implemented INT 21 AH=4D proper return mode reporting (Borland RTM DOS Extender).
  • Improved SB emulation to not hang after invalid SB command (Jazz Jackrabbit).
  • Implemented support for reading data from file to Mode-X VRAM (Jazz Jackrabbit).
  • Implemented proper AdLib timer handling (Mortal Kombat etc SB detection).
  • Fixed a bug in ARM9 SB audio buffering scheme (Mortal Kombat, Supaplex, etc).

External links

Advertising: