New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

android port #7

Closed
dona12345 opened this Issue Jul 17, 2014 · 399 comments

Comments

Projects
None yet
@dona12345
Copy link

dona12345 commented Jul 17, 2014

i am sorry to write in this section,but i have some mistake to create a pull request, after all my question is this: can this emulator port to arm and after to android. sorry my english i'm italien.

@jpd002

This comment has been minimized.

Copy link
Owner

jpd002 commented Jul 18, 2014

Android is not supported at the moment. The JIT compiler supports ARM though (working for PsfPlayer on iOS) but it would probably need to be improved to support the various FPU and SIMD operations. So, I think it would be possible to port the emulator to Android, even though the end result would probably run pretty slowly on an actual device.

@dona12345

This comment has been minimized.

Copy link

dona12345 commented Jul 18, 2014

thanks for your reply, i'm not a developer but if you create a preliminary build for android in the near future i can test to my device(smartphone) ,because my windpws laptop is more older and only support direct x 10 and openhl 1.2

@ghost

This comment has been minimized.

Copy link

ghost commented Jul 30, 2014

The NVIDIA K1 Tegra should be powerful enough for some PS2 games to possibly run at full speed, perhaps ones like simple FFX or such with GPGPU work; it has 192 Kepler cores and supports OpenGL 4 I think. An Android port will definitely be worthwhile in the future.

@jpd002

This comment has been minimized.

Copy link
Owner

jpd002 commented Jul 30, 2014

Yeah, it looks quite promising. I ordered a Tegra K1 device last week-end to do some tests. I'm probably going to start adding support for FPU and SIMD primitives on ARM in the JIT compiler while I wait for the device to arrive.

@dona12345

This comment has been minimized.

Copy link

dona12345 commented Jul 30, 2014

There are two device that have tegra k1 :the nvidia shield tablet and the xiaomi mipad(low cost) (:

@bigianb

This comment has been minimized.

Copy link
Contributor

bigianb commented Jul 30, 2014

Sounds like an excuse to buy a shield thing ... For 'research'

Sent from my iPhone

On 30 Jul 2014, at 10:24, dona12345 notifications@github.com wrote:

There are two device that have tegra k1 :the nvidia shield tablet and the xiaomi mipad(low cost) (:


Reply to this email directly or view it on GitHub.

@dona12345

This comment has been minimized.

Copy link

dona12345 commented Jul 30, 2014

What do you mean? I don't understand:(

@ghost

This comment has been minimized.

Copy link

ghost commented Jul 30, 2014

@dona12345 I've actually had the Xiaomi Mi Pad for a few weeks ... just from my own testing I can confirm that games like Luigi's Mansion, Mario Party 5, Super Mario Sunshine, Wind Waker, etc., are quite playable. On Luigi's Mansion I got 45 FPS; 30-60 on Mario Party 5; 35 on Sunshine; and 30-60 on Wind Waker. Even Resident Evil 4 (a powerful game) sometimes gets to around 30 FPS with the right settings. I think that once the Dolphin team puts the final touches on the ARM port, nearly all of these games should be capable of getting 60 FPS on the Tegra chip. I'd imagine the same capabilities for Play! on several PS2 games.

@dona12345

This comment has been minimized.

Copy link

dona12345 commented Jul 30, 2014

Well thanks for your reply :)

@dona12345

This comment has been minimized.

Copy link

dona12345 commented Aug 1, 2014

Hey jpd002, you buy a nvidia shield tablet or a xiaomi mipad? :)

@jpd002

This comment has been minimized.

Copy link
Owner

jpd002 commented Aug 2, 2014

I've ordered an Xiaomi Mi Pad, still haven't received it yet though.

@dona12345

This comment has been minimized.

Copy link

dona12345 commented Aug 2, 2014

Okay, i hope the device arrive quicker for you :D

@LasagnaPie

This comment has been minimized.

Copy link

LasagnaPie commented Aug 5, 2014

focus on slow android platforms designed for power efficiency rather then high performance needed for PS2 Emulation will mean less focus on accuracy.

@ghost

This comment has been minimized.

Copy link

ghost commented Aug 5, 2014

@LasagnaPie The K1 platform is breaking the barriers of the typical Android "low power" platform. It already is capable enough for ideal emulation of virtually almost every gaming platform targeting Android anyways. PS2 emulation doesn't really need any higher performance really when compared to something like Wii/Gamecube emulation; the biggest aspect is difference in emulating the architectures and how that'd play out in the actual emulation itself. With GC/Wii the GPU is hard to get right due to its design and the difficult way it is to emulate those graphics using modern GPUs, and with PS2 its not so much the graphics part as it is the complexity of the GPU/pipeline/timing/parallel functions of the hardware. Assuming neither is an obstacle more so than the other, and with tailoring the software best for that of K1 (and similar) platforms, you'd expect not a big difference from how Dolphin is running most games on the Tegra architecture now(still not perfect, but climbing much closer than before K1). And perfect accuracy is not needed for a good emulator ... several big name emulators that you may have used are not highly accuracy-focused, but have great support nonetheless.

@dona12345

This comment has been minimized.

Copy link

dona12345 commented Aug 8, 2014

i want to report this : the xiaomi mipad run dolphin emulator for some games at 40/45 fps and the nvidia shield tablet near 50/57 font dolphin forum:D

@LasagnaPie

This comment has been minimized.

Copy link

LasagnaPie commented Oct 28, 2014

Do you people know what a PC Is? they are getting more mobile each year, Intel Processors are shrinking every 2 years, so why are you obsessed with that Adware Spyware Google crap.

@zxcvbad

This comment has been minimized.

Copy link

zxcvbad commented Oct 29, 2014

Could be really interesting to see it on Denver K1 AArch64 with IOE instead of OOE on Cortex-A15 K1 as the last one much more CPU limited. The only thing is that google stripped GL, CUDA and OpenCL on Nexus 9, so it's GLES 3.1 only till we see another Nvidia device somewhere in late 2015 and drivers could be ported.

@jpd0002 has your MiPad arrived?

@ghost

This comment has been minimized.

Copy link

ghost commented Oct 30, 2014

Even if it's supposedly limited to GLES 3.1 (which can probably by bypassed anyways), the standard allows independent fragment and vertex shaders, which are ideal for emulation to carry out the re-programmable pipeline of the GS, such as in aid for Alpha Blending, MIP mapping, and anti-aliasing.

@zxcvbad

This comment has been minimized.

Copy link

zxcvbad commented Oct 31, 2014

Sure there are some features and extensions on GLES 3.1 that can be useful in fact even with GLES 3.1 it'll be slightly faster than current Cortex-A15 on shield tablet thanks to the perfect Nvidia drivers. But if we're talking about Nexus 9, how are you planning to bypass it? There's no AArch64 Nvidia drivers for Android and no other devices with Denver so it won't be possible to rip the drivers off it. There are official Nvidia ARM drivers for Linux but then general users won't be able to use them. I guess the next device from Nvidia will be around 4th quarter 2015, that's a lot of time

@ghost

This comment has been minimized.

Copy link

ghost commented Nov 3, 2014

@zxcvbad I think maybe we're confusing each other over the term "bypassed". I mean that it's possible to reverse engineer the graphics device driver implementing and/or allowing GLES 3.1 functionality on the GPU of Nexus 9 and dig deeper. I realize now that you said they "stripped" GL, CUDA, OpenCL, etc. In that case, yeah, it wouldn't be possible if there's no driver supporting it that can be found.

@jpd002

This comment has been minimized.

Copy link
Owner

jpd002 commented Nov 4, 2014

@zxcvbad yeah, I got the MiPad and did some tests already. The code generator builds and works on Android, even though not all tests pass because of missing code generation cases for FPU and SIMD stuff. I'll probably try building the emulator itself soon.

@weihan1102

This comment has been minimized.

Copy link

weihan1102 commented Nov 5, 2014

It looks so cool ! Can't wait to try it out 😁

It is really sucks that Google blocked desktop GL on the Nexus 9. I can't understand why.

@xiushudongfang

This comment has been minimized.

Copy link

xiushudongfang commented Nov 5, 2014

nice

@zxcvbad

This comment has been minimized.

Copy link

zxcvbad commented Nov 23, 2014

@jpd002 that would just a right time to start since some cool features might soon appear on adreno drivers (no ETA) like draw_elements_base_vertex. Also I've been told that gl libraries are still there on Nexus 9 it needs to be hacked. Another thing there might be quite a few

@zxcvbad

This comment has been minimized.

Copy link

zxcvbad commented Nov 23, 2014

*quite a few developers willing to join the project and commit for Android part

@weihan1102

This comment has been minimized.

Copy link

weihan1102 commented Nov 26, 2014

Yes i agree , this is a very good time to start the Android part!

@ghost

This comment has been minimized.

Copy link

ghost commented Nov 26, 2014

I might try and get some GS stuff to OpenGL ES 2 equivalency and create a functioning Android build to test some stuff with graphics, but it could take a while to get the necessary implementation altogether....

@jpd002

This comment has been minimized.

Copy link
Owner

jpd002 commented Nov 27, 2014

I've pushed an Android NDK makefile that I've made that will compile the C++ source code. Everything compiles fine, but nothing runs for now as there is no UI or anything.

@darkhacker21

This comment has been minimized.

Copy link

darkhacker21 commented Dec 2, 2014

This is crazy, any android device has enough power to emulate PS2... not even the i7 4790K OC run all games good on pcsx2(great emulator)

first should be working, performance and compatibility emulator on PC

@ghost

This comment has been minimized.

Copy link

ghost commented Dec 2, 2014

Well, that could (likely) be because PCSX2, while being the best PS2 emulator, doesn't have great compatibility with all games in the first place. Even amongst all the games it can run, some have major issues with the current GS plugins and the EE core itself that hinder its performance no matter what (this is more a problem with the the imperfections of the emulation of the hardware, and not the limitations of the actual hardware which is used to run the emulator). PCSX2 can boot thousands of PS2 titles, but that doesn't mean it's mature enough to handle them all correctly (and it isn't). Some notable problems are with graphics emulation, the EE dynarec, and even memory/the TLB; these problems prevent some titles from working at all, or require patches/mods to get in-game. It doesn't matter how fast and advanced the end-architecture it's being emulated on is if the emulator has issues that will prevent some games from working optimally on any hardware in the first place.

@paulaz2

This comment has been minimized.

Copy link

paulaz2 commented Sep 3, 2015

Does any one know if the infinix hot 2 has opengles v3.0?

@OnijJoku

This comment has been minimized.

Copy link

OnijJoku commented Sep 3, 2015

@paulaz2 It looks like it contains Mali-400 from some sources. Sadly, that only supports opengl es 2.0 if I remember correctly...

Here are the sources:
http://www.nairaland.com/1988803/new-infinix-hot-x507-full
http://bestmobs.com/infinix-hot-x507/
https://en.wikipedia.org/wiki/Mali_%28GPU%29

@zxcvbad

This comment has been minimized.

Copy link

zxcvbad commented Sep 4, 2015

@jpd002, could you possibly name the main bottleneck on ARM devices, is it a hardware mainly or the architecture/draw calls/JIT/etc?There's little info about performance, so it's quite interesting where it all goes

@jpd002

This comment has been minimized.

Copy link
Owner

jpd002 commented Sep 5, 2015

@zxcvbad Well, it depends on the game. On 2D games, I think most of the slowness come from inefficient speed hacks. On 3D games, I think it's VU emulation. I don't have actual numbers though, I'm looking into enabling the profiler on Android to see where time is spent.

@paulaz2

This comment has been minimized.

Copy link

paulaz2 commented Sep 6, 2015

@jpd002 any progress on jet li?

@paulaz2

This comment has been minimized.

Copy link

paulaz2 commented Sep 6, 2015

@OnijJoku am talk about the infinix hot x512 android one phone with android v5.1 lolilpop.

@OnijJoku

This comment has been minimized.

Copy link

OnijJoku commented Sep 6, 2015

@paulaz2 I don't see anything about Infinix Hot X512. However, I think Infinix Hot 2 X510 looks like what you're referring, and it still doesn't look good... So far, I haven't seen one that support opengl es 3.0. I'm not sure since this is the only source I'm using right now: http://bestmobs.com/section/phones/

@OnijJoku

This comment has been minimized.

Copy link

OnijJoku commented Sep 6, 2015

@paulaz2 The Elephone brand has plenty of devices that support opengl es 3.0 and with some power.

@jpd002

This comment has been minimized.

Copy link
Owner

jpd002 commented Sep 6, 2015

@zxcvbad Just ran the profiler on some games and EE emulation seems to be the biggest bottleneck on all the games I've tried (with VU coming close to be the biggest on FFX). So, yeah, that really needs some work.

@zxcvbad

This comment has been minimized.

Copy link

zxcvbad commented Sep 7, 2015

@jpd002, ah yea. VU and EE had some speedhacks on PCSX2 as I remember. There were talks on their forums about MTVU, and GPU utilization using OpenCL

@darkpigeon

This comment has been minimized.

Copy link

darkpigeon commented Oct 4, 2015

Have you implemented vu and ee yet?

@zxcvbad

This comment has been minimized.

Copy link

zxcvbad commented Oct 4, 2015

@darkpigeon, vu and ee isn't something you could just implement easily, that will likely take enormous effort and time. But let's see jpd002 response to this question

@acocalypso

This comment has been minimized.

Copy link

acocalypso commented Oct 22, 2015

screenshot_2015-09-28-07-50-16

Is it possible to patch all visible Text into one draw call?
Maybe this would help: https://blog.inovex.de/android-graphics-pipeline-from-button-to-framebuffer-part-2/
In the current state there is a draw call for every character

@jpd002

This comment has been minimized.

Copy link
Owner

jpd002 commented Oct 23, 2015

The current OpenGL ES renderer implementation already tries to do some "batching" of primitives that share the same render state.

I think the problem with the case shown in your screen shot is that the game renders the character then its shadow for every character in the text. Drawing the shadow changes the render state and prevents the batching code from doing its job.

I think it would be possible to improve the batching code, but I think it would be quite hard to do so.

@paulaz2

This comment has been minimized.

Copy link

paulaz2 commented Dec 29, 2015

Merry xmas everyone am back

@jpd002

This comment has been minimized.

Copy link
Owner

jpd002 commented Dec 30, 2015

@paulaz2 Welcome back!

@paulaz2

This comment has been minimized.

Copy link

paulaz2 commented Jan 1, 2016

Happy new year

@paulaz2

This comment has been minimized.

Copy link

paulaz2 commented Jan 1, 2016

So any progress in jet li?

@jpd002

This comment has been minimized.

Copy link
Owner

jpd002 commented Jan 2, 2016

@paulaz2 Not yet, but the issue that's preventing the game from running well (Checking VU MACflags in Macro Mode) has been identified as a problem for many other games, so, it's getting quite hot in the priority list.

@hister88

This comment has been minimized.

Copy link

hister88 commented Mar 22, 2016

hi , after all that potentiality , I have bought a hwawei g750 smart phone . . .
android : 4.2.2
gpu : mali - 450 MP
cpu : 8x arm cortex - a7 @ 1.66 Ghz
you think why play even doesn't install on my phone :-(
please answer me . besides sorry for my bad english . im from tehran ( iran ) .

@hister88

This comment has been minimized.

Copy link

hister88 commented Mar 22, 2016

after reading the comments , I have noticed that I have to upgrade my android to kit kat to get the open gl 3 . . . whyyyyyyy meeeeeee . . .
I am gonna lose money again . . .

@hister88

This comment has been minimized.

Copy link

hister88 commented Mar 22, 2016

I meaned kit kat 4.4.4

@hister88

This comment has been minimized.

Copy link

hister88 commented Mar 22, 2016

please answer me . . . for the last time . . .

what should I do to install your emulator ?

because it has some error when I want to install it . . .

@xiushudongfang

This comment has been minimized.

Copy link

xiushudongfang commented Mar 22, 2016

The OS version must be android 4.4 at least.And the cpu must support OpenGL es 3.0.

@hister88

This comment has been minimized.

Copy link

hister88 commented Mar 23, 2016

thank you so much , xiushudongfang . by the way , do you know how can I fix the lags on the famous dolphin emulator . I have downloaded some heavy games like splinter cell pandora tomorrow and I can't play because it has alot of lags . I know this isn't the place to ask such a thing but I beg you help me with it . thanks again , dear xiushudongfang .

@hister88

This comment has been minimized.

Copy link

hister88 commented Mar 23, 2016

and jpd002 , dont be tired and just focus on this emulator . for every each one like me who are hopefully waiting for a better version which isn't laggy and slow . kiss kiss ;-)

@alexfg93 alexfg93 referenced this issue Oct 22, 2016

Closed

gran turismo 4 #483

@atomic83GitHub

This comment has been minimized.

Copy link
Contributor

atomic83GitHub commented Sep 11, 2017

Close the topic?

@jpd002

This comment has been minimized.

Copy link
Owner

jpd002 commented Sep 21, 2017

@atomic83GitHub Indeed, no need to keep this open.

@jpd002 jpd002 closed this Sep 21, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment