|
|
Line 7: |
Line 7: |
| | author = Patrick Aalto | | | author = Patrick Aalto |
| | website = http://dsx86.patrickaalto.com/DSblog.html | | | website = http://dsx86.patrickaalto.com/DSblog.html |
| | download = http://dsx86.patrickaalto.com/DSdown.html | | | download = [http://gamebrew.org/wiki/File:Dsx86036beta.rar] [http://gamebrew.org/wiki/File:Ds2x86043beta.zip] |
| | source = | | | source = |
| }} | | }} |
|
| |
|
| 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.
| | A PC 80286 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. |
|
| |
|
| ==Features== | | ==Features== |
Line 39: |
Line 43: |
|
| |
|
| ==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".
| |
| *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
| |
| [[Category:Homebrew applications]] | | [[Category:Homebrew applications]] |