PDA

View Full Version : DSx86 version 0.38 released!



wraggster
September 11th, 2011, 22:40
News via http://dsx86.patrickaalto.com/DSblog.html

DSx86 release notes

Sverx has continued improving my Smooth Scaling algorithms. This version has faster smooth scaling in all the 640-pixel wide EGA and VGA 16-color modes (640x200, 640x350, 640x400 and 640x480). The 640x480 mode is now fast enought to be used also on DS Lite (it used to be a DSi-exclusive feature), though the screen refresh will be limited to 15fps. Big thanks to Sverx for his hard work on the smooth scaling algorithms!
Here is a table of the speedups he managed to achieve on each of the resolutions and on both DS Lite and DSi. The new code is more CPU-bound than my original code, which is why DSi shows somewhat bigger improvements in the speed.

The reason the speed improvement is not constant is because the complexity of the image to show had a big impact on the speed of the original code, due to cache misses when looking up the palette values. The new code has the palette values mostly in DTCM, so it runs (roughly) at a constant speed for all types of images.
DS2x86 progress

I am still working on the paging features for DS2x86. This seems to be somewhat more difficult than I had anticipated, I have run into various problems that have taken a long time to debug, and I am still debugging a couple of weird crashes. The code seems to run 35 Page Faults properly, but after (or inside) Page Fault number 36 things go wrong and DS2x86 hangs completely. Annoyingly, when I add some more thorough debug code into DS2x86, it runs further and only begins to misbehave after Page Fault number 47. At that point my EMSPages look-up table has a wrong value for page 0x102DD000, which contains the stack. It points to physical address 0x001D5000 (which is already in use by address 0x100F7000 containing executable code), so the game crashes when it loads invalid values from stack.
So, a lot of bug fixing and debugging still ahead before the paging system will work. I am not even sure yet if I can make my physical CS:IP architecture support paging code without a major rewrite, but I'll first need to figure out the cause of the current problems to continue testing that.

Download and Give Feedback Via Comments