Author Topic: GLideN64 Android port  (Read 141036 times)

Offline littleguy

  • Moderator
  • double
  • *****
  • Posts: 1945
    • View Profile
Re: GLideN64 Android port
« Reply #105 on: May 09, 2015, 08:27:26 PM »
@Gonetz

All 36 of the GLideN64 config settings are now exposed in the UI.  We can prune that later, but for now this should make it a bit easier to test different configs.  Right now the UI is bare-bones - in many cases you will be prompted for text.  Later when things settle down, we can change some of these to sliders, dropdowns, etc. so you won't need to worry about users entering bad values.  But I wanted to keep it simple for now and give you the most flexibility possible.

To change the config, you will need to create a new emulation profile.  This is accessible from the main navigation drawer, under the Profiles menu.  Once inside the emulation profiles management screen, create a new profile using the menu (or tap an existing profile and copy it).  Make as many profiles as you want, or just use a single one and keep editing it.  Keep in mind the profiles system was designed for the end user so they can "set and forget" settings per game and not have to constantly mess with them.  The downside is that it's a bit more tedious to the developer who wants to constantly change settings.  Sorry in advance if it drives you crazy...
2012 Nexus 7, rooted stock Lollipop
Samsung Galaxy Victory, rooted stock Jelly Bean
Xperia PLAY, stock Gingerbread
OUYA, retail version

Offline retroben

  • float
  • ****
  • Posts: 432
    • View Profile
Re: GLideN64 Android port
« Reply #106 on: May 09, 2015, 08:51:11 PM »
Easy proof that I definitely have support for ES 3.0 is the fact that I can select the OpenGL ES frontend and boot it on the Dolphin Emulator for Android while FireTV had it unselectable...

Is there any way via an app to deeply check in-depth details of a device?
Possibly also stuff like supported SDL types/versions?

Or can I get a list for GLideN64 of required OGL and EGL extensions and other various bits of info so I can compare it to what I have?

I just really wanna break down all the details until hopefully,something makes more sense.

Offline littleguy

  • Moderator
  • double
  • *****
  • Posts: 1945
    • View Profile
Re: GLideN64 Android port
« Reply #107 on: May 09, 2015, 09:35:33 PM »
I can verify that SDL is only requesting a GLES 2.0 context.  I'm not sure if SDL is somehow limiting the request, or if a 3.x context is not being requested in the first place by the plugin or the core.  In any case, the strange part is that the Shield is honoring the GLES 3.x commands with only a 2.0 context.  It sounds like your x86 may be doing exactly what it's supposed to.

I've got plenty on my plate between the UI and branch maintenance, and Gonetz said his source would be out soon enough, so I probably won't look into this right away.  I'm sure this will all be resolved soon enough if you can bear with the process.
2012 Nexus 7, rooted stock Lollipop
Samsung Galaxy Victory, rooted stock Jelly Bean
Xperia PLAY, stock Gingerbread
OUYA, retail version

Offline xperia64

  • Moderator
  • double
  • *****
  • Posts: 591
    • View Profile
    • My Apps
Re: GLideN64 Android port
« Reply #108 on: May 09, 2015, 10:45:13 PM »
My LG G3 also appears to accept the GLES3.0 commands.

Offline Gonetz

  • Developer
  • long
  • *****
  • Posts: 104
    • View Profile
Re: GLideN64 Android port
« Reply #109 on: May 12, 2015, 11:55:20 PM »
I pushed all my work to the current master on GitHub.

Time to switch to GLES2 port-support.

Offline retroben

  • float
  • ****
  • Posts: 432
    • View Profile
Re: GLideN64 Android port
« Reply #110 on: May 13, 2015, 12:03:22 AM »
Still such a shame my x86 tablet's ES3.0 is too fussy to work with GLideN64.

I agree. Making GLES 2.0 work should be top priority.

(I wonder if anyone will ever think of taking the source code and making a mod of GLideN64 for Windows to enable OpenGL 2.0 support?)
« Last Edit: May 13, 2015, 12:05:39 AM by retroben »

Offline Gonetz

  • Developer
  • long
  • *****
  • Posts: 104
    • View Profile
Re: GLideN64 Android port
« Reply #111 on: May 13, 2015, 12:19:50 AM »
(I wonder if anyone will ever think of taking the source code and making a mod of GLideN64 for Windows to enable OpenGL 2.0 support?)
It is meaningless. Better use old good Glide64.

Offline retroben

  • float
  • ****
  • Posts: 432
    • View Profile
Re: GLideN64 Android port
« Reply #112 on: May 13, 2015, 12:48:32 AM »
But Banjo-Tooie lags on my toaster with Glide64. :( ... ;D

Well if Glide64 is open source,someone could splice some stuff together to add some of the accuracy,increase the performance and fix identical bugs.
Just fixing that buffer overhead issue in Glide64 (fixed in GLideN64) would do wonders.

Has anyone tried Conker's Bad Fur Day with the final boss on GLideN64?
There is a known issue with all other plugins that causes the game to run immensely slow during the safe and the final boss.

Edit: First of all,it is primarily a D3D setting and not applicable to Android,but Direct3D Clear Mode set to "only by frame" makes the final boss in Conker run really smooth at the cost of fading transitions and a few other effects.

What would the equivalent OpenGL/GLES function be called?
Would it be OpenGL Clear Mode possibly?
« Last Edit: May 14, 2015, 05:31:43 PM by retroben »

Offline Gonetz

  • Developer
  • long
  • *****
  • Posts: 104
    • View Profile
Re: GLideN64 Android port
« Reply #113 on: May 13, 2015, 06:03:51 AM »
To developers: I installed Tegra Android Development Pack:
https://developer.nvidia.com/tegra-android-development-pack
It contains all necessary tools to develop Android apps on Windows.
It includes Nsight Tegra, Visual Studio Edition.
I imported mupen64plus-ae into Visual Studio, build and run it on my Shield with no problems. I even was able to set breakpoint, stop on it and inspect available variables. However, breakpoints do not work everywhere in the code and actual debugging hardly possible - step into a function freezes debugger.
Anyway, it is step forward in compare with what I had with Eclipse.

Offline Gonetz

  • Developer
  • long
  • *****
  • Posts: 104
    • View Profile
Re: GLideN64 Android port
« Reply #114 on: May 14, 2015, 09:50:04 AM »
Sorry for stupid question,  but how to get to graphics plugin options via GUI? I can select emulation profile, but can't see where it's settings.

I made my code compilable with GLES2, but it shows nothing yet.

Offline retroben

  • float
  • ****
  • Posts: 432
    • View Profile
Re: GLideN64 Android port
« Reply #115 on: May 14, 2015, 12:07:25 PM »
You'll have to make a custom profile.

First go to select a profile and just touch manage on the bottom of the list and then the plus symbol to make a new one.
Now you touch the new profile,edit,then the plugin part to choose from the list,and it should load the settings below.

If not,then maybe somethng went wrong. :-\

Offline littleguy

  • Moderator
  • double
  • *****
  • Posts: 1945
    • View Profile
Re: GLideN64 Android port
« Reply #116 on: May 14, 2015, 12:20:46 PM »
To change the config, you will need to create a new emulation profile.  This is accessible from the main navigation drawer, under the Profiles menu.  Once inside the emulation profiles management screen, create a new profile using the menu (or tap an existing profile and copy it).  Make as many profiles as you want, or just use a single one and keep editing it.  Keep in mind the profiles system was designed for the end user so they can "set and forget" settings per game and not have to constantly mess with them.  The downside is that it's a bit more tedious to the developer who wants to constantly change settings.  Sorry in advance if it drives you crazy...
2012 Nexus 7, rooted stock Lollipop
Samsung Galaxy Victory, rooted stock Jelly Bean
Xperia PLAY, stock Gingerbread
OUYA, retail version

Offline Gonetz

  • Developer
  • long
  • *****
  • Posts: 104
    • View Profile
Re: GLideN64 Android port
« Reply #117 on: May 15, 2015, 08:34:30 AM »
Got it, thanks!

GLES2 version works well with fb emulation off.
Otherwise I have incomplete attachment. I fought with that problem before, so I think it is temporal.

Offline retroben

  • float
  • ****
  • Posts: 432
    • View Profile
Re: GLideN64 Android port
« Reply #118 on: May 15, 2015, 09:05:18 AM »
Glad to see you already got it booting! ;D

Can hardly wait to try it whenever you're ready to let us testers and end-users or whenever it is auto-built. 8)
Edit2: I also feel nerdy enough to want access to all 36 options so I can make both a clean profile and a testing profile to expirement with various controls.

Edit: PLEASE tell me you left in multisampling and 5xBRZ shading support on the GLES2.0 version?
Even if it causes major slowdown,I wouldn't care myself,though I expect bloom to destroy framerates.
My guess is the the boost library might run on a seperate thread and maybe also a different core so it minimizes overhead of emulation performance like post-process shading,for example what Dolphin emulator does.

I can enable a postprocessing shader in Dolphin emulator on my single-cored toaster PC,and it surprisingly has NO performance hits whatsoever.
How did they manage to do that?
« Last Edit: May 15, 2015, 09:18:29 AM by retroben »

Offline Gonetz

  • Developer
  • long
  • *****
  • Posts: 104
    • View Profile
Re: GLideN64 Android port
« Reply #119 on: May 15, 2015, 09:48:47 AM »
Texture library is not supported yet. I need to learn, how to attach boost for Android to my project.
MSAA is available only for GLES3.1. I tried to enable it on my Shield, but it does not work.
Post-processing shader based AA is possible, but I hardly will have time for it. GLES2 is very limited and I have to rewrite lot of things to make plugin's features available for that platform.

BTW, basic frame buffer emulation is started to breath. I can run Super Mario 64 with it.