hrydgard / ppsspp

A PSP emulator for Android, Windows, Mac and Linux, written in C++. Want to contribute? Join us on Discord at https://discord.gg/5NJB6dD or just send pull requests / issues. For discussion use the forums at forums.ppsspp.org.
https://www.ppsspp.org
Other
11.04k stars 2.15k forks source link

Android x86-x64 wrong detect architecture acording armv8 64bits info #8431

Closed mrcmunir closed 8 years ago

mrcmunir commented 8 years ago

screenshot_2016-01-15-12-56-28

unknownbrackets commented 8 years ago

We really just request the OS load a library. This is either actually running x86/x64, and just lying in its /proc, or it's emulating an arm64 device for some reason, even though an x86 binary is available.

Since it shows "Cores" not "Threads", it seems like the second one.

Does this device actually run a 64-bit Intel version of Android? Or does it just use a 32-bit Intel version like most devices that are 64-bit capable?

-[Unknown]

mrcmunir commented 8 years ago

It's Remix OS based fork android-x86 development only running in 64-bit cpus You can download this http://www.jide.com/en/remixos-for-pc

Epsxe x86 load library properly, so it must be an error on emulators that support ARMv8 maybe?

.

unknownbrackets commented 8 years ago

This is probably the same as #8325 then. We don't currently ship a 64-bit Intel version, because no devices support it.

But, I think this is a bug in Remix OS. If there's an "x86" binary available, it should select it before an "arm64-v8a" one. I may be wrong, but I don't think we have control of its preferences there. That would make the situation better, and not require emulation.

Even so, we could build a 64 bit version and that would improve this as well.

-[Unknown]

mrcmunir commented 8 years ago

just i try compiling the code of android-x86 git for x86-64 image similar problem no detect x86 lib and load if missing x86-x64 screenshot_20160116-054252

This problem same for others emulator dolphin emu but working ok for Retroarch , epsxe , drastic loading x86 binary detecting correct architecture.

anyway they use kernel 4.0.9 based and cat /proc/cpuinfo it's

screenshot_20160116-072520

mrcmunir commented 8 years ago

I'm looking at the build.prop check. all roms android x86-x64 based follow this order:

1) give priority to applications 64bit x86_64, armv64-V8A binarys 2) Then follows 32-bit x86 , armeabi-v7a, armeabi binarys.

use ro.product.cpu.abilist instead. ro.product.cpu.abi=x86_64 ro.product.cpu.abilist=x86_64,arm64-v8a,x86,armeabi-v7a,armeabi ro.product.cpu.abilist32=x86,armeabi-v7a,armeabi ro.product.cpu.abilist64=x86_64,arm64-v8a

This will be a problem as always load the binary ARMv8 when it is available oh no it's build.prop problem..

unknownbrackets commented 8 years ago

Nice sleuthing. It's probably "working" by picking x86_32 for other things that don't include armv8 support at all. We're a bit "ahead of the curve" if you will on that, I think.

Seems like a strange choice, though, since x86_32 can run natively on x86_64. That's why I suggest it as a bug.

-[Unknown]

mrcmunir commented 8 years ago

I've already reported to android-x86 to see if they an answer to this strange combination.

Close this beucase it's not bug in the emulator.

hrydgard commented 8 years ago

We could simply build for x86-64 on Android as well, would work around the issue. Probably should do that anyway if x86-64 becomes more popular on Android.

unknownbrackets commented 8 years ago

Agreed, we have #8325 for that already though.

-[Unknown]