nds4droid icon indicating copy to clipboard operation
nds4droid copied to clipboard

[Wishlist] Update DeSmume Engine to 0.9.11 or SVN

Open fervi opened this issue 9 years ago • 8 comments

Hello; it is possible to update DeSmume Engine?

If the change log doesn't lie ; NDS4Droid still uses version 0.9.8 , and a lot of good changes likely to come in future versions , and the project would be focused on project development for smartphones ( ARM Dynarec etc. ) .

For x86-based computers ( of course, I say this as a curiosity ) differences between versions 0.9.10 and 0.9.11 in terms of performance were significant.

Version 47 ( nds4droid ) works faster, but maybe it can be accelerated using the latest version of the engine DeSmuMe .

fervi avatar Feb 12 '16 06:02 fervi

update this , is too slow on when i'm compare similarly emulator Drastic

zminhquanz avatar Mar 24 '16 04:03 zminhquanz

I'm working on this right now. So far, here are some problems:

  • Lightning JIT has to be removed, as DeSmuME uses its own JIT engine.
  • More addons are found in the latest version of DeSmuME, but a bunch of modifications to the files ending with ".mk" are required.
  • We may need to remove support for older versions of Android.
  • Version 48 might not even happen, as @jquesnelle might not be working on this anymore.
  • This emulator is actually using version 0.9.10 of the emulator, but I don't know how the ArmCJit.cpp, ArmLJit.cpp and ThreadedArmInterpreter.cpp files were made. I've been wondering this for over a year, and I have not been able to find the answer, or any clues to how these files were created. Upgrading isn't as easy as you might think it is.

tangalbert919 avatar Feb 07 '17 16:02 tangalbert919

I'm not actively working on the project at the moment (work, school, and life in general happens as you can imagine) but I will approve any good PRs and rebuild and push to Google Play. When I was working on this DeSmuME did not have a ARM JIT, only an x86 one, so I along with other developers worked on making our own, the result being LJit and others.

jquesnelle avatar Feb 07 '17 16:02 jquesnelle

I'm still working on upgrading the DeSmuME core right now. I might restore LJit, CJit, and the threaded interpreter if I need to. @WilliamLCobb has succeeded in upgrading the core in his DS emulator to 0.9.11, but that was it. After that, it was just silence. I'm also working on an OpenGL ES 3.0 Renderer, which is what @Tsunamical planned to do. The only problem is I have no idea how to work with OpenGL ES, so I'm probably going to fail.

tangalbert919 avatar Aug 20 '17 02:08 tangalbert919

@jquesnelle the upgrade to DeSmuME 0.9.11 is complete, but there is still an error with running that core. The error I have been receiving from debugging has something to do with EmulatorThread. You can checkout my fork and see if you can do any fixes. Error on logcat: 08-29 19:54:41.757 14458-14489/com.opendoorstudios.ds4droid A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x8 in tid 14489 (EmulatorThread)

                                                                [ 08-29 19:54:41.758   270:  270 W/         ]
                                                                debuggerd: handling request: pid=14458 uid=10102 gid=10102 tid=14489

@fervi your wish has been granted.

tangalbert919 avatar Aug 30 '17 00:08 tangalbert919

This error is actually coming from the DeSmuME rasterizer (which is the default 3D renderer set in nds4droid). I found a workaround for this issue, and that's by using the OpenGL renderer, not the Software one. The OpenGL Renderer renders some textures incorrectly. That is being fixed for version 48.

tangalbert919 avatar Sep 06 '17 16:09 tangalbert919

@tangalbert919 Thanks. Is new software rasterizer faster than old? I mean on "nice phone" you can play without OpenGLES or still too slow?

fervi avatar Sep 06 '17 21:09 fervi

The new rasterizer should be faster than the old one, but I'm not sure because it likes to crash. There's also this weird bug that makes nds4droid unable to write save files or even find them. Also, anything regarding JIT is an illegal instruction, apparently.

tangalbert919 avatar Sep 12 '17 01:09 tangalbert919