Homebrew coder Pate has updated his DOS emulator project for the Nintendo DS, DSx86.
Ttagged as version 0.34 Beta, the latest release includes the following changes and improvements...
Changelog:
- This version supports 'sudokuhax' again.
- The keyboard reading and screen blitting order was restored.
- A couple of very minor additional improvements.
Release notes:
Sorry for this unscheduled release, but as this is the day of the original Homebrew Bounty deadline, I decided to release a quick fix version to address a couple of issues introduced in the previous 0.33 version. This version supports 'sudokuhax' for running in DSi mode again, and it also has the screen blitting and keyboard reading code in the same order as in the 0.32 version.
I had reports about DSx86 missing keyboard events in 0.33 when using Smooth scaling mode, and the only thing I had changed that could cause this was that I moved thekeyboard reading before the screen blitting in the VBlank interrupt. The reason I did this was that reading the keys also reads the scrolling buttons L and R, and scrolling thescreen must happen within the VBlank period or the screen will tear. However, adding the Smooth scaling options make the screen blitting take so much time that the VBlank period has ended before the code gets to keyboard reading. I still don't quite see how swapping the order of the subroutines would cause key events to get missed, but it seems that changing the order back and just making sure the screen scrolling actually takes place only during the NEXT VBlank period fixes this problem.
The other problem introduced in version 0.33 was that I had to remove the DSi SD slot access code from libNDS 1.5.0 to make my AdLib emulation run without crashing. I now found a way to include that back in and still have my AdLib code run properly. I still need to dig into the original problem further to see what actually causes the hang. I originally got rid of the problem after I removed the SD reading code, the i2c handling code, and all the additional DSi mode ARM7 interrupt and FIFO handling. Now I managed to add the SD reading code (along with the FIFO stuff that that needs) back in, so I plan to check whether it is the interrupt, some remaining FIFO or i2c code that actually causes the problem. I have already tested the original libNDS 1.5.0 by only removing the i2c code, but that still caused a hang.
Via [DSx86 Blog]
No comments:
Post a Comment