Author Topic: Testing 2.5.0  (Read 19554 times)

Offline Paul

  • Administrator
  • double
  • *****
  • Posts: 3495
  • Developer
    • View Profile
    • PaulsCode.Com
Re: Testing 2.5.0
« Reply #15 on: December 03, 2014, 11:23:41 PM »
Bummer, emails to my contact at MOGA are bouncing.  Not looking good over there.

I'll see if I can reverse-engineer the moga controller class enough to be able to extend it and override the init method to apply a hack-fix for the problem.
Device: Samsung Galaxy Nexus i515
CPU: TI OMAP4460, 1.2 GHz (dual core, ARM Cortex-A9)
GPU: PowerVR SGX540, 307 MHz
RAM: 1 GB
Resolution: 720 x 1280
Rom: omni-4.4.4-20141014-toro-FML KitKat 4.4.4, rooted

Device: Eee PC 1015PEM
CPU: Intel Atom N550, 1.5 GHz (dual core, x86)
GPU: Intel GMA 3150, 200 MHz (dual core)
RAM: 2GB
Resolution: 1024 x 600
Rom: android-x86-4.3-20130725 Jelly Bean 4.3, rooted

Offline littleguy

  • Moderator
  • double
  • *****
  • Posts: 1945
    • View Profile
Re: Testing 2.5.0
« Reply #16 on: December 03, 2014, 11:28:00 PM »
Clever.  Decompilation here we come.
2012 Nexus 7, rooted stock Lollipop
Samsung Galaxy Victory, rooted stock Jelly Bean
Xperia PLAY, stock Gingerbread
OUYA, retail version

Offline Paul

  • Administrator
  • double
  • *****
  • Posts: 3495
  • Developer
    • View Profile
    • PaulsCode.Com
Re: Testing 2.5.0
« Reply #17 on: December 04, 2014, 01:23:22 AM »
Couldn't extend the class to override init(), because the class is declared as final.  So instead I looked at recreating the content of the init() method without calling it.  The method itself is actually quite simple, but two of the fields were not declared as public, so I had to use reflection (even doing simple things with reflection can get ugly..)  I think I wrote it correctly, but I don't have a device with Lollipop or a MOGA controller, so unable to test.  I put in some log messages if the calls through reflection fail, so if it doesn't work or still crashes, logcat should have something useful in it.

2.5.0 RC2 (Lollipop MOGA crash test)
Device: Samsung Galaxy Nexus i515
CPU: TI OMAP4460, 1.2 GHz (dual core, ARM Cortex-A9)
GPU: PowerVR SGX540, 307 MHz
RAM: 1 GB
Resolution: 720 x 1280
Rom: omni-4.4.4-20141014-toro-FML KitKat 4.4.4, rooted

Device: Eee PC 1015PEM
CPU: Intel Atom N550, 1.5 GHz (dual core, x86)
GPU: Intel GMA 3150, 200 MHz (dual core)
RAM: 2GB
Resolution: 1024 x 600
Rom: android-x86-4.3-20130725 Jelly Bean 4.3, rooted

Offline Jermain

  • byte
  • *
  • Posts: 18
    • View Profile
Re: Testing 2.5.0
« Reply #18 on: December 04, 2014, 06:34:14 AM »
Hi Paul,

It get's past the first screen so that's good.
But when I start a game it crashes and goes back to Mupen64 menu screen.

Offline littleguy

  • Moderator
  • double
  • *****
  • Posts: 1945
    • View Profile
Re: Testing 2.5.0
« Reply #19 on: December 04, 2014, 06:41:20 AM »
Thanks Jermain.

Paul - the MOGA hack fixes the crash without errors.  I should have realized that it needs to be applied in GameLifecycleHandler as well.  I'll encapsulate the hack and apply it to both places.  Should make it easier to cherry-pick over to master then as well.  Will post shortly.
2012 Nexus 7, rooted stock Lollipop
Samsung Galaxy Victory, rooted stock Jelly Bean
Xperia PLAY, stock Gingerbread
OUYA, retail version

Offline Paul

  • Administrator
  • double
  • *****
  • Posts: 3495
  • Developer
    • View Profile
    • PaulsCode.Com
Re: Testing 2.5.0
« Reply #20 on: December 04, 2014, 07:22:09 AM »
Sorry, littleguy.. I totally spaced by not doing a global search to see where else the init method was called.  That is an excellent idea to encapsulate the hack in a class that can be removed later when the problem is fixed officially in the MOGA SDK.

Jermain, I won't be able to post a fresh build for you to try until this evening after work.
Device: Samsung Galaxy Nexus i515
CPU: TI OMAP4460, 1.2 GHz (dual core, ARM Cortex-A9)
GPU: PowerVR SGX540, 307 MHz
RAM: 1 GB
Resolution: 720 x 1280
Rom: omni-4.4.4-20141014-toro-FML KitKat 4.4.4, rooted

Device: Eee PC 1015PEM
CPU: Intel Atom N550, 1.5 GHz (dual core, x86)
GPU: Intel GMA 3150, 200 MHz (dual core)
RAM: 2GB
Resolution: 1024 x 600
Rom: android-x86-4.3-20130725 Jelly Bean 4.3, rooted

Offline littleguy

  • Moderator
  • double
  • *****
  • Posts: 1945
    • View Profile
Re: Testing 2.5.0
« Reply #21 on: December 04, 2014, 07:24:18 AM »
Done.  I started a "hacks" java package to keep it on our radar later, and added some documentation about when it is safe to remove the hack, in case it's not obvious to other devs (or we forget :P).
2012 Nexus 7, rooted stock Lollipop
Samsung Galaxy Victory, rooted stock Jelly Bean
Xperia PLAY, stock Gingerbread
OUYA, retail version

Offline Paul

  • Administrator
  • double
  • *****
  • Posts: 3495
  • Developer
    • View Profile
    • PaulsCode.Com
Re: Testing 2.5.0
« Reply #22 on: December 04, 2014, 08:04:28 AM »
We will need to see if a MOGA controller actually still works with the way I changed the intent instantiation.

Before hack:
Code: [Select]
Intent intent = new Intent(IControllerService.class.getName());
After hack:
Code: [Select]
Intent intent = new Intent( context, IControllerService.class );
While this does make an explicit Intent, it may not be a valid way to access the MOGA controller service .  The link littleguy posted on github suggests a couple of other strategies (simplest being to use PackageManager.resolveService() to look up the best service from the implicit intent, and Intent.setComponent() to turn the implicit intent into an explicit one).  If we find that MOGA controllers are not working on Lollipop with the above hack, I'll try this strategy next.
Device: Samsung Galaxy Nexus i515
CPU: TI OMAP4460, 1.2 GHz (dual core, ARM Cortex-A9)
GPU: PowerVR SGX540, 307 MHz
RAM: 1 GB
Resolution: 720 x 1280
Rom: omni-4.4.4-20141014-toro-FML KitKat 4.4.4, rooted

Device: Eee PC 1015PEM
CPU: Intel Atom N550, 1.5 GHz (dual core, x86)
GPU: Intel GMA 3150, 200 MHz (dual core)
RAM: 2GB
Resolution: 1024 x 600
Rom: android-x86-4.3-20130725 Jelly Bean 4.3, rooted

Offline littleguy

  • Moderator
  • double
  • *****
  • Posts: 1945
    • View Profile
Re: Testing 2.5.0
« Reply #23 on: December 04, 2014, 08:39:50 AM »
Indeed, the controller does not work with the hack.  Before we go too far down this path, remember that simply reverting to API 19 fixes all issues for me.  No crash, MOGA controller works as always.
2012 Nexus 7, rooted stock Lollipop
Samsung Galaxy Victory, rooted stock Jelly Bean
Xperia PLAY, stock Gingerbread
OUYA, retail version

Offline Paul

  • Administrator
  • double
  • *****
  • Posts: 3495
  • Developer
    • View Profile
    • PaulsCode.Com
Re: Testing 2.5.0
« Reply #24 on: December 04, 2014, 08:56:13 AM »
True, but I don't like to be defeated, haha.  Let me give the other strategy a try first.
Device: Samsung Galaxy Nexus i515
CPU: TI OMAP4460, 1.2 GHz (dual core, ARM Cortex-A9)
GPU: PowerVR SGX540, 307 MHz
RAM: 1 GB
Resolution: 720 x 1280
Rom: omni-4.4.4-20141014-toro-FML KitKat 4.4.4, rooted

Device: Eee PC 1015PEM
CPU: Intel Atom N550, 1.5 GHz (dual core, x86)
GPU: Intel GMA 3150, 200 MHz (dual core)
RAM: 2GB
Resolution: 1024 x 600
Rom: android-x86-4.3-20130725 Jelly Bean 4.3, rooted

Offline littleguy

  • Moderator
  • double
  • *****
  • Posts: 1945
    • View Profile
Re: Testing 2.5.0
« Reply #25 on: December 04, 2014, 09:01:31 AM »
Haha I might beat you to it :)
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: Testing 2.5.0
« Reply #26 on: December 04, 2014, 09:08:59 AM »
Fixed and verified.  I'll push it up in a minute.
2012 Nexus 7, rooted stock Lollipop
Samsung Galaxy Victory, rooted stock Jelly Bean
Xperia PLAY, stock Gingerbread
OUYA, retail version

Offline Paul

  • Administrator
  • double
  • *****
  • Posts: 3495
  • Developer
    • View Profile
    • PaulsCode.Com
Re: Testing 2.5.0
« Reply #27 on: December 04, 2014, 09:53:31 AM »
Haha, yeh you beat me.  I used the same stack overflow answer, just was a bit more verbose in my implementation in case it didn't work (no way to test it myself).  Glad you got it working :)
Device: Samsung Galaxy Nexus i515
CPU: TI OMAP4460, 1.2 GHz (dual core, ARM Cortex-A9)
GPU: PowerVR SGX540, 307 MHz
RAM: 1 GB
Resolution: 720 x 1280
Rom: omni-4.4.4-20141014-toro-FML KitKat 4.4.4, rooted

Device: Eee PC 1015PEM
CPU: Intel Atom N550, 1.5 GHz (dual core, x86)
GPU: Intel GMA 3150, 200 MHz (dual core)
RAM: 2GB
Resolution: 1024 x 600
Rom: android-x86-4.3-20130725 Jelly Bean 4.3, rooted

Offline Zaneris

  • byte
  • *
  • Posts: 39
    • View Profile
Re: Testing 2.5.0
« Reply #28 on: December 04, 2014, 10:07:06 AM »
Found only one issue with RC2 so far, been testing with a Galaxy S5 and sixaxis.

You still need to manually set the flicker reduction to O-2.

Looks great so far, the dynarec fix is nice.

Offline retroben

  • float
  • ****
  • Posts: 432
    • View Profile
Re: Testing 2.5.0
« Reply #29 on: December 04, 2014, 12:52:46 PM »
Just got an Acer Iconia Tab 8 A1-840FHD and I look forward to testing the x86 version if you can kindly link me to it.
But it will take me a while before I can be finished prepping it.

Edit:I gotta charge it for 4 hours before even setting it up and using it.
Also,I plugged it in at exactly 1:00PM on my watch,LOL!
« Last Edit: December 04, 2014, 12:59:35 PM by retroben »