PDA

View Full Version : DSx86 News - Dos Emulator for DS - Version 0.15 released!



wraggster
June 20th, 2010, 22:35
Pate has today released a new version of his Dos emulator for the nintendo DS:


This version has the following major changes:

No more need for the LOADFIX command! See the previous blog post for more info about how I changed the code to enable this, if you are interested.
EGA horizontal smooth scrolling fixed. The horizontal scrolling was very jittery in games like Supaplex, Heimdall and Crystal Caves, for example. Again more info in my previous blog post.
The BIOS window scrolling functions (up/down) are now implemented for each supported graphics mode and for both directions.
Removed the check for running zeroed data, as this prevented the Great Escape game from starting. Now you won't get an Unsupported Opcode error in this situation, the game will probably just hang.
Fixed a bug in MOV SP,SReg opcode. For example a game called Berlin 1948 used SP as a loop index with SS as the initial value, and the buggy opcode caused SP to get zeroed, which in turn caused the game to fill the entire screen when it only wanted to write a few pixels.
Various game-specific fixes, as mentioned in my previous blog post.
All the missing opcodes (that weren't caused by the game executing data) in the debug logs I have received have been implemented. So quite a few games should now progress further than before.

Since the last blog post I have also debugged a couple of new games. I spent many hours (including the whole of yesterday) debugging the memory allocation problem in Abandoned Places, but still could not figure out why it skips allocating a 64KB block of memory (that it does allocate in DOSBox) and then crashes when it clears this block that it never allocated in the first place! It is quite difficult to trace something that does not happen, so I still need to think up new ways to approach this problem.

Another game that I only started debugging today is Gods. It seemed to hang at the beginning with a black screen, and it didn't even respond to the user breakpoint request. Luckily this was not a problem when running it in iDeaS, and with it I was able to find out that my VGA Display Status Register emulation was still not correct. The bit that returns whether the display is in Horizontal Blank should also return the Vertical Blank time. When I added that, I got Gods to progress up to the start menu, but the graphics were completely garbled. After some debugging I noticed that it goes to 640x350 EGA mode, but then directly writes new values to the CRTC registers so that the display size is actually 320x200! My screen blitting functions are based on the graphics mode byte, so the game used the graphics memory like it was 320x200 pixels while my blitting routines used it like a 640x350 layout. Btw, the game does not look correct on DOSBox either (at least on my rather old version), but as DOSBox uses the real CRTC registers it is not as broken as it was in DSx86.

I added a quick hack to the CRTC register setting so that if the mode is 640x350 but the new CRTC register value tells the horizontal size to be 320, I change the graphics mode to 320x200. This allowed the game to display a properly-sized screen, but there are still some severe problems with scrolling and paging, so the game is not playable yet. I believe I need to change my blitting method completely to read the current CRTC register values instead of the graphics mode, to properly handle situations where the game accesses the CRTC registers directly.

Anyways, this version is yet another fix version without any major new features. My summer vacation starts within a week (Yippee!), so after next week I'll start working on the bigger issues, like improving the AdLib emulation, implementing the missing SB DSP commands, adding better screen scaling methods, improving the mouse emulation etc etc. I am very much looking forward to being able to really focus on adding the missing features to DSx86.

Thanks for your interest in DSx86, and please send me debug logs and update the Compatibility Wiki as you test games on this new version! Here below are pictures of the Great Escape and Berlin 1948, which should now run in DSx86.

http://dsx86.patrickaalto.com/DSblog.html

crookedmouth
June 27th, 2010, 00:03
If you want a Menu for DSx86 that executes files and allows navigation of you virtual C drive, try Wolf File Manager. It is freeware DOS program.

I know that probably most people might just use Windows 2.02 as a graphical user interface but I found a very small File Manager/Menu that is freeware and really works well for navigating your folders and executing executable files. Additionally it offers other file management and is not copywritten. After version 0.15 of DSx86 Wolf File Manager began to work.

Furthermore, as many probably already know, AUTOEXEC.BAT files work with DSx86 when they are placed in the root of the C:/ drive. So now Wolf File Manager starts when you run DSx86.nds. For convenience I put the edited AUTOEXEC.BAT and WFM.EXE in an archive so all you need do is extract it to the root of your flash card and when you run DSx86.nds WFM will start automatically.

Download the necessary files here
http://www.mediafire.com/?0wyj02qzko0


As an after thought I added the AUTOEXEC.BAT for Windows 2.02 so if you have the Windows folder in the root of your C: drive just place the AUTOEXEC.BAT file found in the Windows202AutoStartUp folder in the root also. It runs the VER 4 command automatically before running win.com.

I found Wolf File Manager at DOS Museum, check it out and the other great files such as ZZT which seems to work great in DSx86. Sorry you need to do the simple search in the corner because the direct links were to long. There are also a bunch of Ultima style RPGs that I haven't checked for compatibility.
http://www.dosmuseum.com/pages/themes.php