Author Topic: GLideN64 Android port  (Read 125088 times)

Offline retroben

  • float
  • ****
  • Posts: 432
    • View Profile
Re: GLideN64 Android port
« Reply #255 on: May 30, 2015, 11:31:14 AM »
Edit: dammit page overlap,sorry Gonetz. :'(

@Mikhail: What do I edit that into?

Is it an xml inside a certain app's apk file (more difficult),or is there a file in a root directory I need to copy,edit,and then overwrite?

Edit: I already added the build prop one then rebooted,and it did not fix it completely.

Will test fpse bubbles a little bit later when I have time.
« Last Edit: May 30, 2015, 11:34:36 AM by retroben »

Offline Gonetz

  • Developer
  • long
  • *****
  • Posts: 104
    • View Profile
Re: GLideN64 Android port
« Reply #256 on: May 30, 2015, 12:55:23 PM »
Bloom postfilter is now GLES2 compatible. New apk with new pnglib, working text drawer and working bloom:
https://drive.google.com/file/d/0B0YqMPjGo3B2UjdJYkhnck1DWHM/view?usp=sharing

To make text drawer working you must set correct font name in emulation profile settings. DroidSans.ttf is a good choice. Also set font size suitable for your device.

To make bloom working, set EnableBloom to 1. Also you may play with bloomBlendMode setting.
Note: bloom adds slowdown on older devices.

All plugin's code changes are in master.

Attached is updated Linux-compatible patch for makefiles.
« Last Edit: May 30, 2015, 01:04:29 PM by Gonetz »

Offline retroben

  • float
  • ****
  • Posts: 432
    • View Profile
Re: GLideN64 Android port
« Reply #257 on: May 30, 2015, 01:25:36 PM »
Great job Gonetz! So much going on right now. ;D
Will test on FTV sometime soon.
Earlier: I am glad that DK64 finally works properly with textures,now all we need is to have see through issues fixed for every game which might also fix the square shadow and solid black puzzle challenge in Banjo-Tooie.
Performance is actually half-decent with FBEmulation in some cases,just Smash Bros. and possibly F-Zero (untested on mine) runs sluggish.

@Mikhail: Yes! Changes for fpse work on the bubble bios screen!
It has banding without dithering,and the admittedly ugly pattern when dithering option is enabled.
Still need to know how to fix up Glide64mk2 so I can turn off the strong stipple dthering within it,mainly when in water on DK64.
Also,Goat Simulator still had dither,but it is harder to point out.

Offline Gonetz

  • Developer
  • long
  • *****
  • Posts: 104
    • View Profile
Re: GLideN64 Android port
« Reply #258 on: May 30, 2015, 01:30:56 PM »
Good news: hi-res texture pack loading problem is fixed at least for one of my devices. Probably texture file was corrupted during transfer via usb. I zipped the texture pack and download to the device via wifi.  Unzipped pack loaded without problems.

Offline retroben

  • float
  • ****
  • Posts: 432
    • View Profile
Re: GLideN64 Android port
« Reply #259 on: May 30, 2015, 01:49:06 PM »
Bloom is working on my end,obviously causing immense slowdown on my wimpy outdated Qualcomm.
Wimpy because it is outdated on the drivers,if I had the latest drivers,it would probably run lagless with proper graphics.

Any chance we will ever see GLideN64 running on x86 Android devices?
Just upset because I never got to see how it would run on my x86 tablet because of the prematurely destroyed GL Context after creation issue.

BilinearMode setting is broken when disabled/unticked,I get a solid black screen with the game running. :(
I want to use point-sampled to see what it looks like with 5xBRZ enabled.
« Last Edit: May 30, 2015, 09:39:46 PM by retroben »

Offline Gonetz

  • Developer
  • long
  • *****
  • Posts: 104
    • View Profile
Re: GLideN64 Android port
« Reply #260 on: May 31, 2015, 03:24:08 AM »
You can't disable texture filtering, plugin does not have that option. BilinearMode setting switch between hardware bilinear filtering and shader implementation of N64 3-point filtering. 3-point filtering was broken for GLES2. I've fixed it.

If you need to check how 5xBRZ works with unfiltered textures, you need to find such textures first. N64 does not filter all textures. Plugin filters only those textures, which filtered on real hardware.
« Last Edit: May 31, 2015, 03:27:37 AM by Gonetz »

Offline retroben

  • float
  • ****
  • Posts: 432
    • View Profile
Re: GLideN64 Android port
« Reply #261 on: May 31, 2015, 11:09:59 AM »
So it is actually missing point-sampled as an option?
I know point-sampled is a filtering/shading/whatever option on the original Glide64 and it made textures look sharp but blocky like it is supposed to.
Using that combined with 5xBRZ could get amazing results.
I would prefer the option to use N64 3-point filter since it is more correct to the system and admittedly less blurry than bilinear.

Personally,I can't stand bilinear filtering (too blurry) and linear audio doesn't sound so good.
One time,I tried src-linear on audio and it sounded horrible compared to trivial.
I think I hit the sweet spot of performance and quality with zero order hold audio.
« Last Edit: May 31, 2015, 11:36:44 AM by retroben »

Offline littleguy

  • Moderator
  • double
  • *****
  • Posts: 1945
    • View Profile
Re: GLideN64 Android port
« Reply #262 on: May 31, 2015, 01:46:24 PM »
Good news: hi-res texture pack loading problem is fixed at least for one of my devices. Probably texture file was corrupted during transfer via usb. I zipped the texture pack and download to the device via wifi.  Unzipped pack loaded without problems.

I just rebased my fork, incorporating you and Gillou's changes and everything looks great!  Hi res textures and on-screen text working on my Shield.  Will start testing other devices, and updating the front-end to make it easier to select options.

Edit: The pull-* scripts are working on Linux now too.
« Last Edit: May 31, 2015, 01:58:29 PM by littleguy »
2012 Nexus 7, rooted stock Lollipop
Samsung Galaxy Victory, rooted stock Jelly Bean
Xperia PLAY, stock Gingerbread
OUYA, retail version

Offline littleguy

  • Moderator
  • double
  • *****
  • Posts: 1945
    • View Profile
Re: GLideN64 Android port
« Reply #263 on: May 31, 2015, 06:56:33 PM »
I've fixed texture problems with Mali400. Tested on Galaxy 2 and Galaxy Note 2. Changes pushed to master.
Link to apk with the fix and hack for PowerVR GPU:
https://drive.google.com/file/d/0B0YqMPjGo3B2NTNuNGhxTDJXRG8/view?usp=sharing

I finally got around to testing on my Tegra3-based 2012 Nexus 7.  Unfortunately I only get random pixels when running GLES 2.0 variant (all that my device supports).  This occurs for both the head revision of GLideN64 on GitHub, and the APK you posted here.  Sorry I didn't test this sooner, been focused on other things.

 

Never mind, this issue is resolved after I disabled FB emulation (EnableFBEmulation=false).  Should we disable this for all devices when the GLES2 variant is selected?

GLES 2.0 variant running fine on my Tegra-3-based 2012 Nexus 7 (but slow, as expected).  :D
  - GLideNHQ working
  - FreeType working (once I set the font to DroidSans.ttf)

Excellent progress!
« Last Edit: May 31, 2015, 07:59:43 PM by littleguy »
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 #264 on: May 31, 2015, 07:13:33 PM »
Remember that powerful OpenGL ES3.x+ devices can run the GLES2 variant nearly perfect and really fast.
As Gonetz mentioned,I believe. ;)

...I wished I had one of those super strong devices,mainly with the Tegra X1,like the new
awesome "Android TV Shield" console with that same processor and choice of 500GB storage.

Offline littleguy

  • Moderator
  • double
  • *****
  • Posts: 1945
    • View Profile
Re: GLideN64 Android port
« Reply #265 on: May 31, 2015, 07:59:10 PM »
I know, I'm just trying to test other devices.  Actually the NVIDIA Android TV has a better processor (X1) than the other NVIDIA devices (K1).
2012 Nexus 7, rooted stock Lollipop
Samsung Galaxy Victory, rooted stock Jelly Bean
Xperia PLAY, stock Gingerbread
OUYA, retail version

Offline fzurita

  • Moderator
  • double
  • *****
  • Posts: 560
    • View Profile
Re: GLideN64 Android port
« Reply #266 on: May 31, 2015, 09:16:30 PM »
I've fixed texture problems with Mali400. Tested on Galaxy 2 and Galaxy Note 2. Changes pushed to master.
Link to apk with the fix and hack for PowerVR GPU:
https://drive.google.com/file/d/0B0YqMPjGo3B2NTNuNGhxTDJXRG8/view?usp=sharing

I finally got around to testing on my Tegra3-based 2012 Nexus 7.  Unfortunately I only get random pixels when running GLES 2.0 variant (all that my device supports).  This occurs for both the head revision of GLideN64 on GitHub, and the APK you posted here.  Sorry I didn't test this sooner, been focused on other things.

 

Never mind, this issue is resolved after I disabled FB emulation (EnableFBEmulation=false).  Should we disable this for all devices when the GLES2 variant is selected?

GLES 2.0 variant running fine on my Tegra-3-based 2012 Nexus 7 (but slow, as expected).  :D
  - GLideNHQ working
  - FreeType working (once I set the font to DroidSans.ttf)

Excellent progress!

I tried that option set to true on my NVidia Shield portable (OpenGL ES 2.0) and I don't get those visual artifacts.

Although, I just tried zelda ocarina of time and the pause menu doesn't seem to be working quite right. The first time I bring up the pause menu on the Nvidia shield portable, the FBE seem to work correctly, but after coming out of the pause menu, link's clothing turns black. Also, after opening the pause menu again, the background image is all white.

Also, I just tried Banjo Kazooie and the puzzle pieces are all black.
« Last Edit: May 31, 2015, 09:57:38 PM by fzurita »

Offline Gonetz

  • Developer
  • long
  • *****
  • Posts: 104
    • View Profile
Re: GLideN64 Android port
« Reply #267 on: June 01, 2015, 12:55:42 AM »
Never mind, this issue is resolved after I disabled FB emulation (EnableFBEmulation=false).  Should we disable this for all devices when the GLES2 variant is selected?
Why? My GLES2 devices support frame buffer emulation.

Offline Gonetz

  • Developer
  • long
  • *****
  • Posts: 104
    • View Profile
Re: GLideN64 Android port
« Reply #268 on: June 01, 2015, 01:24:05 AM »
Edit: The pull-* scripts are working on Linux now too.

That's cool, thanks! However, pull-gliden64.sh needs little correction.
getRevision.sh is not executable when it is pulled from repo.
Add chmod +x To make the script working:

Code: [Select]
cd src
chmod +x getRevision.sh
./getRevision.sh

Offline Gonetz

  • Developer
  • long
  • *****
  • Posts: 104
    • View Profile
Re: GLideN64 Android port
« Reply #269 on: June 01, 2015, 02:51:06 AM »
I've made automatic detection if texture fix for PowerVR/Adreno is needed:
https://github.com/gonetz/GLideN64/commit/c9f62a55e8dabebbf610386165da59301797bc80
PowerVR_SGX_540 define removed.

Separation is made by Renderer name. Currently fix enabled for PowerVR and Adreno GLES2 renders.
 
« Last Edit: June 01, 2015, 03:52:49 AM by Gonetz »