Monday, March 29, 2010

DeSmuME Wii Day 2

About 24 hours ago we first saw DeSmuME Wii begin to emulate ROMs. Now, a whole day later, we've made a lot of progress.

First off, sound does work. We've currently disabled it in order to  preserve fps, but anyone who wants to is welcome to checkout the SVN and change a single line in main.cpp to enable it.

Homebrew ROMs and official ROMs have some interesting quirks. We can only boot homebrew ROMs if we hardcode the GPU display mode to mode 2, but we can only boot commercial ROMs if we do not. We will have a workaround later today to boot both commercial and homebrew ROMs. Whether it is an ugly if() hack of sorts or different display code that handles both properly remains to be seen.

Homebrew ROMs run at full speed compared to how they run on DeSmuME on a PC as far as I can tell. Likely, not all of them do. But the ones I've tested certainly seem to. Any homebrew ROMs which load external files will crash DeSmuME Wii at this point in time.

Commercial ROMs seem to all work up until they have to render something in 3D. Up until that point, most of them they seem to be pretty fast (but I haven't personally tested too many).

The emulator now finally accepts input. The working control scheme is as follows:
The classic controller represents the buttons on the DS (A = A, B = B, etc.). Pressing A on the Wiimote connected to the classic controller touches the stylus to the touch screen. Using the DPAD on the Wiimote connected to the classic controller changes the position of the stylus. More and probably better control schemes will be added as soon as possible.

The last new goal of our project I'm going to mention before ending this post is that we are now trying to get rid of SDL from the project. SDL takes up way too much of the stack and getting rid of it would basically end our RAM limitation worries. We would also see a significant speed boost from doing so.


  1. Awesome News! I can´t wait to play New Super Mario Bros. DS on Wii^^
    But I tried to play "Blockman Gets" on desmumewii and it works fine! Good work.

  2. Good work guys can't wait to see something really working on the Wii right now I'm have problems with Mario RPG 3 on my N5 so hopefully I can play that one day on my Wii since it looks great. Keep up the good work!

  3. You guys are more than welcome to snag my inputs from WiiDS. They should work fine with a few minor tweaks. (Removing the libwiigui functions.)

    Look at Input.cpp/.h and Btnmaps.cpp/.h.

  4. (Just noticed I stopped 1/2 way through finishing my inputs. xD I'll have them fixed and upped in a matter of minutes.)

  5. dont work mario kart ds :( in revision 79

  6. Hi i'm from Germany and very impressed from your Emulator.
    I have no programming skills but i would like to help you and the team.

  7. Reckil, www.wiiscenebeta.comApril 4, 2010 at 4:56 PM

    Hey, is a NGC controller compatible? the C stick could be the stylus or something like that.

  8. @Reckil
    Waaaaaayyyyyy ahead of you. C-Stick changes the position of the stylus and Z presses it to the screen. It's been like that for a good week now ;)

  9. Awesome news!!
    Nice work!!!