Android Pie

Hey guys, I am majorly bummed out. Recently my Galaxy S9+ was forced to update from Android Oreo to Pie. Since this has happened it has caused a massive hit in performance as well as pretty much rendering Retroarch unusable since now my phone will dim the screen and demand that I unlock it after a few minutes of use.

Before on Oreo I was able to run full Bettle PSX with GPU Hard sync on with 0 synced frames. In some games I was even able to overclock some games using Retroarch 64. No more. Now I can’t even get a single game to run full speed even with hard sync off and threaded video on. I’m back to using PSX Rearmed and I’m not sure yet how other cores have been affected because again my phone now demands that I unlock my screen every few minutes of play. Is there currently any other way around this so I can at least use the less demanding cores?

I think Samsung has a VERY agressive CPU throttling implementation in the OS. For example, on my girlfriend’s S9 plus (Exynos), which has a 3500 geekbench score, Retroarch stutters a lot with Mame and a certain fairly demanding game (Espgaluda 2 to be more precise), while on a client’s OnePlus 6, which has a 2500 geek score, it plays perfectly smooth.

On S9 plus, while playing the game and obviously needing more speed, the CPU doesn’t go higher than 1.8 - 2 ghz, even if it could very well reach 2.8 ghz.

Rooting the phone and forcing higher CPU clocks would most likely fix any such issue.

Ok after I got the the stupid automatic screen lock turned off and got my XBOX One controller updated because it no longer worked with Pie as it did on Oreo, I found that the XBOX button on the XBONE controller now acts as a home button for the phone instead of the menu button for Retroarch and while playing with settings I kept accidentally hitting the XBOX button to bring up the Retroarch menu which kicked me back to the home screen. When I would reenter Retroarch I inadvertently found out that the game would run smooth for a few seconds or so and then dip in frame rate again. Not really thinking anything of it the first few times I kept playing with adjustments and ultimately found the game that I was running was running smoothly without a single hitch. I initially thought it was an adjustment that I was making and so I retraced my steps. I closed and reopened Retroarch only to find that the game ran like garbage again, and I tried all the settings that I had adjusted which were mainly Threaded Video and GPU Hard Sync. To my dismay I found that while the game ran slightly faster, it still ran horribly in the 45 frames range. To make a long story short I found that it wasn’t me adjusting the settings that made the difference, but instead it was all the times I accidentally went back to my phone’s home screen that was fixing the problem and ultimately making the game run smooth. After I caught onto this I closed Retroarch out again then reopened it again and as expected my game ran like garbage. I pushed the XBOX button on purpose this time and clicked on Retroarch. The game ran smooth for a couple of seconds and then like crap again. I then pushed the home button again reentered Retroarch again and the game ran smooth a little longer than last time until it began running like crap again. To make another long story short I pushed the home button every time the game started running like crap until it didn’t anymore. I came up with 8 times as the magic number. I tested this theory several times and it works every time. I fire up a demanding game like Jumping Flash 2 and do this process and not only does the game I’m playing run smooth and silk, but so does every other game that uses the Beetle PSX core, and also every other core including BSNES mercury balanced. All running with GPU hard sync ON, 0 synced frames, and Threaded Video OFF. It gets even better. If I don’t close out of Retroarch and just simply hit the XBOX button to go back to the home screen, I can simply go back to Retroarch from my recent apps and I don’t have to repeat pressing the home button process. It is ONLY when I have to start Retroarch from having quit Retroarch the last time it ran. as a side note I tried just returning to the home screen 8 times rapidly without waiting for the game to run like crap and it did not work. I found that I absolutely had to wait until the game started dropping frames to hit the home button for this trick to work.

It all seems crazy right? Well it kind of is. I can make a video so you can actually see it in action if you would like. I don’t know how Android really works, but it seems like Android Pie is doing some sort of power conservation when it’s not supposed unlike Oreo which ran everything like a dream with no hoops to jump through. It almost seems like the Pie OS diverts more resources to Retroarch each time it gets pulled from the background. If I use less demanding cores like PSX Rearmed and SNES9X I don’t have to do this process. I did try the phone’s high performance mode which makes absolutely zero difference. My phone runs in FHD instead WQHD so resolution is no different than before on Oreo.