Posted By: wraggster
News/release from Pate
This version has a long list of changes, but they are mostly minor fixes and improvements. Here is the list:
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.
Fixed Master of Orion SB digital audio problems.
Changed EGA text output to use INT43 vector (fixes text problems in Space Quest I, etc).
Fixed EGA Read Mode 1 handling (DOUBOLO).
Improved EGA palette handling (ZOOL).
Fixed WC2 savegame handling, which was broken by the DUNE2 savegame handling fix. They call the same DOS function, but expect it to behave differently. Argh!
Added support for INT03 (see previous blog post) and INTO (overflow interrupt).
Implemented Mode-X VGA offset handling (Alien Breed, Traffic Department 2192).
Implemented diskette motor counter handling to INT8 (should fix Civilization hang problem).
Added about a dozen new EGA graphics opcodes.
Added about a dozen new Mode-X graphics opcodes.
Added support for several new DOS and Mouse interrupts.
Added support for several new I/O ports.
Added most of the previously missing characters to the 6x8 text mode font.
Attempt to avoid writing duplicate entries to the debug log.
Ignore SB Direct DAC output for now, pending proper implementation.
RyouArashi has created a small DSx86 configuration program that runs in DOS, so you can run it inside DSx86! Makes it easy to configure the settings for various games when you can do everything on your Nintendo DS. The link to the Google Code page for this software is on my Download page.
I have spent a lot of time debugging some more difficult problems, especially on Saturday, but was not able to fix most of them. It seems that DSx86 is currently not compatible with R4 Slot-1 DS cards, for some reason. I tried to use iDeaS emulator with DSx86 patched with the R4 DLDI driver, and I get the same problems as some R4 users have reported. The most frustrating thing is that I can not get neither the iDeaS or the DSx86 inbuilt debugger to work properly, so I can not debug the problem! So, looks like this version of DSx86 will still not work properly with R4 devices, sorry.
I also debugged various other games that have been reported misbehaving, like Jimmy Whites Whirlwind Snooker and Moonstone. The first one has a similar problem to the one that causes the "Packed file corrupt", message, that is, the segment register wraps downward to 0xFDE0 or something like that, and it will then start writing data to invalid locations in memory, corrupting some DSx86 internal data areas as well. This would probably need a proper LOADFIX implementation to work. I haven't yet figured out the problem in Moonstone where it hangs the touchscreen. Usually such hanging is caused by ARM7 crashing, but it still plays audio fine after this, so I'm not sure what happens there. I have narrowed down the situation where this happens, so a couple of hours worth of debugging should tell me where the problem is.
There are many issues with the mouse emulation, especially with the touchpad mouse emulation, but those I have not looked into at all yet. I hope to make a lot of improvements to the mouse emulation in the next version. Also, Windows 2.03 wants to use PS/2 mouse, which I don't support yet, so don't be surprised that mouse does not work if you try running Windows 2.03 on this version.
Thanks to all of you who sent me debug logs, this time I think I actually managed to implement fixes from nearly all of the logs I have received. There are still issues needing fixing from the earlier logs I have recieved, but I'm starting to catch up so that my TODO list does not keep growing larger and larger by each release!
http://code.google.com/p/dsx86cfg/