nds4droid release 31/32

UPDATE: I have pushed release 32 to fix a crash in release 31 on certain non-English language devices (thanks to Shake for helping me confirm the problem and fix). I’ve updated the links below to reflect this.

Hey there homies, time for another nds4droid release. You can get it at all the usual places: Google Play and sourceforge. The changes are (drum roll please):

  • Two new execution engines, exophase JIT for ARM devices and DeSmuME JIT for x86 devices. Please note that currently these engines are HIGHLY EXPERIMENTAL — use at your own risk!
  • Fixed a bug where ARMv6 and x86 builds didn’t include the tinycc JIT engine
  • Minor performance enhancements

Okay, so, everyone take a deep breath. This release does contain the exophase JIT — I spent a lot of time learning exactly how it works and was able to fix the problems I’d talked about on the forums. However, overall it’s pretty unstable still and should be considered an experimental feature. Not all games work on it — and some games just stop working unexpectedly half way through. Furthermore, the program will sometimes freeze up when switching your execution engine from one of the old engines to the exophase JIT. I will work more on fixing these, but I wanted to get this release out so people could start fiddling with it. But again, use it carefully, be sure you have a game state saved before using it or risk losing all your progress!

Also included in this build is the ARM -> x86 JIT from the latest DeSmuME release. I only tested this on the emulator since I don’t have a real Android x86 device, so anyone who has one let me know how it performs.

Finally, thought I’d share some stats with you guys regarding nds4droid that I found interesting. These all come from the statistics provided to me automatically by the Google Play store, so they don’t account for sideloaded (direct APK) installs.

  • As of May 9, 2013, nds4droid has been installed by 2,300,397 users
  • Of these, 395,068 are “active” installs
  • 38% of active installs are on 4.1 Jellybean, 30% are on Ice Cream Sandwich, 19% are on Gingerbread, and 10% are on 4.2 Jellybean
  • The most popular device is the Galaxy S3 with 6.9% of active installs. The second most popular device is the Nexus 7 with 5.8% of active installs
  • The most popular country is the United States, with 30% of active installs. South Korea is in second with 16%
  • The most popular wireless carrier is Verizon Wireless at 6.36% of active installs. SK Telecom is second with 6.07%
  • A list of a user’s Android version and the average rating they give nds4droid on Google Play: Jellybean 4.2 — 4.3, Jellybean 4.1 — 4.29, Ice Cream Sandwich — 4.09, Gingerbread — 3.69


This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

40 thoughts on “nds4droid release 31/32”

  1. Hey man thanks for this release 🙂 i have a motorola razr i with 2ghz intel x86….with the new desmume interp. i got + 15 fps !! before with the threaded i got in pokemon SS and Castlevania an average of 30 fps…now with the desmume thing…i got 45 to 50 ! i dont know if changing the Jit block will do any change ? but so far its awesome 🙂 only one thing is in pokemon when prof. Elm called…the app hanged up and i got 1/0(99%/99%) i will try and see if it happens again…

  2. Amazing release and cool statistic! I think I lost 1-2 fps overall on software but music seems to perform a bit better, at least timing. Exophase jit is amazing! Yes it does crash a lot, but it has great potential, works noticeably quicker when it works :), Metroid for example does work normally with this jit, I have 26fps with sound on and 1frameskip.

  3. Pokemon Heart Gold freezes no matter where I switch to exophase JIT but the FPS goes way up. Super Mario Bros. DS gets about +6 FPS and pretty much runs at a solid 30 rather than 24-25

  4. @Jeff If I chance to the new option exophase JIT my game is freezing (Pokemon Platinium)
    I have Samsung Galaxy S4

  5. Release 32 is pretty awesome, I’ve been playing Dragon Quest IV and it’s been great so far. The new JIT gives me a boost but makes the cursor spaz out when asked a yes or no question or enter a menu, which is pretty weird. I still can switch between interpreters with no issues so I can still take some advantage of the speedboost.

  6. tearth interpretrer is a little slow now 1-2 fps in my SG3 and exophase is very low and unstable but im very happy for jeff implemented it in nds4droid code he a master of optimization 🙂 thanks jeff!!

  7. Exophase-JIT seems to improve 3D-related stuff.

    Pokemon outer world (tested on soulsilver and diamond), pokemon-black main screen, zelda:pa main screen are all faster and I can use quite low frame-skip values.

    It is really quite unstable right now (zelda:pa crash after main screen here) and even with threaded interpreter some games white screen now, before Emulation really kicks in.

    But very cool update with the JITs! 🙂

    1. Ah, Btw. 2D is a bit faster too.
      Jumps from 24-28 in house in Pokemon up to a max of 32-38 now.
      Lower frameskip-values are actually even more playable/less stuttering and it seems frameable isn’t even that much better with a higher frameskip-value.

      1. I just pointed the 3D out, since you really noticed the frame-drop before (when you go out of the house) and now it simply stays at a more constant framerate.

        I also yet have to experience the typical threaded-interpreter frame-drops which happen to occur “now and then”…

        I really wonder how far evolved NDS4Droid will be at release 35 or 40! 🙂

        Amazing work again!

        1. Awww,… And you just got another 5Star on gplay from an Android 4.2.2-User on a gt-p7500 (Samsung Galaxy Tab 10.1 with cyanogenmod 10.1)!

          1. Hm,… Something is wrong.
            Maybe I had a fluke before, but Threaded-interpreter seems to be a little bit faster in 2D than the JIT.

            But on 3D it (exo-jit) certainly seems to be faster for me!

  8. I can’t change to exo-jit while playing as all games (i used) will instantly freeze (99% CPU load). Also loading a gamestate (from an other executing engine) while on exo-jit will freeze the emu.
    One way (only way) is to change to exo-jit (app freezes), then load an other rom and pray^^
    Pokemon Pearl will load on exo-jit when you restart it from beginning (at least for me) but i can’t notice any speedup compared to the threaded interpreter or rather speedup too small to notice.
    SGS4 (Android 4.2.2)

  9. Keep up the good work Jeff, a request is to mainly focus on performance speed for games that require a faster phone like Pokemon games, on my Pantech Breakout I get 16/30 Fps and 7/34 during battles. I would love to be able to play full speed, and for the exojit engine, itl freeze at 99% Cpu load so the threaded interpreter is best for me right now but keep the updates coming!

  10. Tested the new exophase jit, 60 fps on menu with POKéMON Diamond, In game 26 fps with Threaded Interpreter and 28 fps with exophase JIT. Is not the miracle I was hoping for, but I’m sure that Jeff will be able to improve this JIT.

  11. wow… when im using the release 30.. “mario and luigi: Partners in time” runs slow..
    but when try this new release… WOW!!! it runs smoothly a frameskip of 0…. awesome… but other games still runs slow.. great update.!

  12. Jeff you’re the best

    I’m playing all pokemon roms but when walking and chatting it is very slow but when I’m battling it is fast.. The only problem is walking and the text

    Please help me!! I’m begging you

    I’m using xperia u

  13. help me!!
    i try to open a game after i choose rom the
    screen is black and automaticaly back to the phone menu(like force close)
    my phone:
    free ram 110-120mb
    cpu mtk 1ghz
    gpu powervr

  14. No problems so far, still sitting on around 20-22fps average. Also I thought I’d point out that NDS-EMU(emulator) on the market is a complete rip from your app! I know its open source and all…but its a complete copy bit for bit.. Although its free that’s not the point. Just thought I’d let you know keep up the great work jeff

    1. Did you switch to this one from a different emu? You should be able to transfer your old save to the correct folder to get it back.

  15. Hi, I was wondering if it was possible to change the app icons colour skeme? I like that it is the image of a game cartrige but it is so dark looking…. oh, and I tried this v32 update on my samsung s2 and it seemed to slow the games down a little. But they are still very playable 😉 Thanx Jeff.

  16. In x86 razr i I had a increase in the velocity, i didnt compare with arm,
    In New Super Mario Bros before running in the second level i had a 30 – 40 fps with frameskip setted to 3 and now with the same settings and the new interpretter i reached to 60 fps.

  17. This release with desmume selected work nicely and fluid compared with the 37 release. It would be great if you consider x86 android devices in the future releases, thanks! 🙂

Leave a Reply

Your email address will not be published.