Release Emu EX Plus Alpha ported to the Pandora


^try dumping the appdata folder for snes9x ex and reloading. Not sure why, but I was having some different issues that seemed to clear up after clearing it out and reloading after the update. This last update is working great for me, everything looks and sounds so good and fluid now.
Thanks i tried this but the issue is still there.

Im also getting gaps in sound if i change frameskip to 0, ive tried it on default clock settings and overclocked to 800mhz.
 
^try dumping the appdata folder for snes9x ex and reloading. Not sure why, but I was having some different issues that seemed to clear up after clearing it out and reloading after the update. This last update is working great for me, everything looks and sounds so good and fluid now.
Thanks i tried this but the issue is still there.

Im also getting gaps in sound if i change frameskip to 0, ive tried it on default clock settings and overclocked to 800mhz.
Be aware that there is 2 versions of Snes9x, the 1.53 (slow but accurante sound), and 1.43 (fast, less accurate sound). I have found only the 1.43 to be fullspeed, the 1.53 still lags a bit (depends on the game).
 
Last edited by a moderator:
^try dumping the appdata folder for snes9x ex and reloading. Not sure why, but I was having some different issues that seemed to clear up after clearing it out and reloading after the update. This last update is working great for me, everything looks and sounds so good and fluid now.
Thanks i tried this but the issue is still there.

Im also getting gaps in sound if i change frameskip to 0, ive tried it on default clock settings and overclocked to 800mhz.
Be aware that there is 2 versions of Snes9x, the 1.53 (slow but accurante sound), and 1.43 (fast, less accurate sound). I have found only the 1.43 to be fullspeed, the 1.53 still lags a bit (depends on the game).
Just tried the 1.43 fast version and it has all the same issues, the gaps in the sound are not as bad as the 1.53 version though.
 
 Ive just tried a few different games on 1.43 and the sound issue is only noticeable on games with mode 7, the rest are working perfectly. (fullspeed no skips in sound, frameskip 0)

When i change frameskip to auto,  the sound in mode 7 games work ok.

Great emu btw!
 
Thanks for these ports.  I haven't tried the emulators yet, but have a question about the GLES renderer if anyone can answer it.

Can GLES rendering be actually better or faster than using SDL, framebuffer, X11 or whatever?

As far as I know, it’s expensive to send new images or screen buffers (as 2D textures) to the GPU.

So I would expect an emulator with GLES renderer might be slower than one based on SDL, framebuffer, or X11.

Or perhaps for low-resolution emulated systems, this is not a bottleneck?

Anyway, if there's an efficient way to do this, and it's not so slow as I thought, I'd like to know about it.  How is it done?  I guess I should look at the code...

Also, given that we have sdl_omap for Pandora, with hardware scaler and vsync, does the GLES renderer give any benefit over that?  I guess we have to use the GLES renderer with these emulators, anyway.

Thanks again for all your brilliant ports, ptitSeb.
 
Last edited by a moderator:
Also, an interesting feature of this emu is a "Benchmark" mode. I don't really looked at what it does, but it gives you a FPS given a rom file.
It just runs a raw CPU benchmark by emulating the first couple seconds of the selected rom file. You can use it to check if you're being limited by the CPU or something in the OS. For example, if you get a very high fps value yet the emulation still appears choppy, that indicates the GPU or audio drivers are introducing stalls.

Supports external USB gamepads? (As Android versions)
Not yet, but I'm working on an evdev gamepad back-end for the next few updates. It will work just like on Android and support hot-plug.

A few more compilation optims for GBA.emu that where disabled before
-fexpensive-optimizations was disabled for GBA.emu because it causes a mis-compile in the CPU emulation when using GCC 4.7, at least when targeting Android and WebOS. Unless you used a GCC 4.8 snapshot, you should check that the battle graphics & world map in Golden Sun are showing up properly.

Also, In version 1.5.9 I added the CONFIG_MACHINE_OPEN_PANDORA define to guard any Pandora-specific code. Right now it supplies the alternate EGL parameters, hides the cursor, defaults to full-screen, and sets the correct window size.

Can GLES rendering be actually better or faster than using SDL, framebuffer, X11 or whatever?
It completely depends on the underlying drivers. I can't say for sure if that's the case on Pandora, but the Xlib back-end was designed for desktop Linux GPUs where it's usually the fastest option, especially when transforming the image and compositing it with overlays. The Android version also has some fast code-paths depending on what APIs are available to directly lock GPU memory and reduce the burden of updating the texture each frame. Assuming something similar exists with the Pandora's GPU drivers, that's one area that could provide a good performance boost since the current version just does a plain glTexSubImage2D.
 
Also, an interesting feature of this emu is a "Benchmark" mode. I don't really looked at what it does, but it gives you a FPS given a rom file.
It just runs a raw CPU benchmark by emulating the first couple seconds of the selected rom file. You can use it to check if you're being limited by the CPU or something in the OS. For example, if you get a very high fps value yet the emulation still appears choppy, that indicates the GPU or audio drivers are introducing stalls.

>Supports external USB gamepads? (As Android versions)
Not yet, but I'm working on an evdev gamepad back-end for the next few updates. It will work just like on Android and support hot-plug.

A few more compilation optims for GBA.emu that where disabled before
-fexpensive-optimizations was disabled for GBA.emu because it causes a mis-compile in the CPU emulation when using GCC 4.7, at least when targeting Android and WebOS. Unless you used a GCC 4.8 snapshot, you should check that the battle graphics & world map in Golden Sun are showing up properly.

Also, In version 1.5.9 I added the CONFIG_MACHINE_OPEN_PANDORA define to guard any Pandora-specific code. Right now it supplies the alternate EGL parameters, hides the cursor, defaults to full-screen, and sets the correct window size.

Can GLES rendering be actually better or faster than using SDL, framebuffer, X11 or whatever?
It completely depends on the underlying drivers. I can't say for sure if that's the case on Pandora, but the Xlib back-end was designed for desktop Linux GPUs where it's usually the fastest option, especially when transforming the image and compositing it with overlays. The Android version also has some fast code-paths depending on what APIs are available to directly lock GPU memory and reduce the burden of updating the texture each frame. Assuming something similar exists with the Pandora's GPU drivers, that's one area that could provide a good performance boost since the current version just does a plain glTexSubImage2D.
Thanks for your answer.

For -fexpensive-optimizations, I'm using gcc4.7.2, and yes, the fight screen of Golden Sun is corrupted :( . I have tested some things that worked, so I was assuming it was ok. (I won't switch to gcc 4.8 before stable release)

Thanks for the CONFIG_MACHINE_OPEN_PANDORA !

About GLES, I just use X11 has it seems the simpler way to do the port. Someday, I'll look at the Android code to see if I can use some for the Pandora, for speedup.
 
No, not yet. I have to retest Sonic on Genesis with this new batch. But I'm a bit clueless on why tearing still appear here.
 
Tried the emulators yesterday, still some tearing in some of them.

I wonder: Does the emulator change the LCD refresh rate based on whether it loads a PAL or NTSC rom? If not, then it's clear why it would tear.

I've got a request as well, maybe that's possible :)

I really like the overlays to simulate CRT / LCD.

It seems these are just simple alpha masks that are being overlayed with a user-set opacity over the image.

However, with the different screen resolution of the systems, it sometimes works better and sometimes worse.

First a question:

Is the overlay applied to the image BEFORE scaling or AFTER scaling?

Second, my request:

As that's only a graphic, would it be possible allowing user-created alpha masks?

i.e. it could show a list of all PNGs it finds within one directory and make them selectable.

I'd like to create Pandora-Optimized overlays for the different emulators (of course, if you like, you could include them into your releases as well).

Thanks :)
 
Tried the emulators yesterday, still some tearing in some of them.


I wonder: Does the emulator change the LCD refresh rate based on whether it loads a PAL or NTSC rom? If not, then it's clear why it would tear.


I've got a request as well, maybe that's possible :)


I really like the overlays to simulate CRT / LCD.


It seems these are just simple alpha masks that are being overlayed with a user-set opacity over the image.


However, with the different screen resolution of the systems, it sometimes works better and sometimes worse.


First a question:


Is the overlay applied to the image BEFORE scaling or AFTER scaling?


Second, my request:


As that's only a graphic, would it be possible allowing user-created alpha masks?


i.e. it could show a list of all PNGs it finds within one directory and make them selectable.


I'd like to create Pandora-Optimized overlays for the different emulators (of course, if you like, you could include them into your releases as well).


Thanks :)
 
^^ No rush. Don't need a third Pandora for now.

About the 1.5.9 , I found out that I had messed up the VSync code... So, no update tonight, I have to recompile everything (and the linking, with the "lto" on, takes ages for each one)  ;) . I'll flood the repo tomorow.

About the tearing, I'm afraid it's still here. I have a few more check to do, bu the strange box in the up right of the screen that seems to be in advance (or is it late?) is still here (even more noticiable on fadout or fade-to-white).
 
@ptitSeb, @Rakashazi...thanks for your continued work on these excellent emulators!
 
New flood of emu on the repo...

In sync with the v1.5.9 of the emus. I hope nothing is broken.

Note that the strange tearing, in upper right part of the screen, is still here. I don't think it's vsync related, but more a GLES problem. It should be a good thing to implement a DirectToTexture mecanism, I'll look a that, but don't hold your breath on that.

Build 05


-----------

  • In sync with official v1.5.9 version
And here is the change logs for v1.5.9 version (only relevant parts)

  • Added an Integer-only (Height) setting to the Zoom option. This has the same effect as the other Integer-only setting but applies aspect ratio correction to the image width. It can be used to get correct scanlines while keeping the requested aspect ratio.
  • Added Wii U Pro Controller support to the in-app Bluetooth system and made them appear as separate devices from Wiimotes (Classic Controllers now also behave in the same way)
  • Fixed some out of bounds array access in the Neogeo, MSX, and Snes9x 1.5 emulation code that could cause random crashes
  • Linux/X: Support shifted symbol keyboard keys when doing text input
  • GBA: Added option to manually enable/disable RTC emulation (needed for the Liquid Crystal Pokemon hack)
  • MD: Fixed incorrect cheat behaviour on little-endian systems (X86/ARM) due to addresses not being swapped for single-byte Megadrive codes
  • MSX: Fixed incorrect external storage path for the MSX.emu directory on some Android devices
  • NEO: Added support for the following games: Choutetsu Brikin'ger / Ironclad (ironclad & ironclado) Bang Bang Busters (bbbuster), Treasure of the Caribbean (totcarib)
  • NES: Updated emulation core to current FCEUX 2.2.1 SVN version, there may be minor save-state compatibility issues depending on the game's mapper
  • NES: Added "(EU)" to list of filename components checked when activating PAL mode
  • Snes9x/1.5x: Fixed applying Block Invalid VRAM Access option from the config file
  • Snes9x: Added cheat code support, uses the standard SNES .cht format
  • Snes9x: Fixed a path name bug that added an extra dot to the extension when looking for IPS files, preventing the correct file from loading

PS: Here is the diff of my changes (custom default keys and 50/60Hz refresh rate change mainly) /applications/core/interface/file/attachment.php?id=5690">pandora.zip

pandora.zip
 

Attachments

  • pandora.zip
    5.4 KB · Views: 208
Last edited by a moderator:
Back
Top