libretro / RetroArch

Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.
http://www.libretro.com
GNU General Public License v3.0
10.16k stars 1.82k forks source link

[iOS] retroarch 1.1 -nightly- problems #1464

Closed brujo5 closed 8 years ago

brujo5 commented 9 years ago

cant change any settings in core funtions for mupen64 cant change anything in user settings modules folder (no cores) is empty in retroarch app (but download them separately nighly cores) gl shader folder is empty to after open retroarch my phone overheat.

brujo5 commented 9 years ago

Cant change anything inside core options

x51nd1

inactive123 commented 9 years ago

cant change any settings in core funtions for mupen64

Yeah, that has still yet to be implemented. I'll take a look at it for this week.

modules folder (no cores) is empty in retroarch app (but download them separately nighly cores) gl shader folder is empty to

those are your packaging problems, nothing to do with us.

after open retroarch my phone overheat.

I think this is an unrelated issue that likely has nothing to do with RA.

brujo5 commented 9 years ago

@twinaphex

the overheat problem only happend whit this version of RA 1.1 tested on ip5S ios 8.2, reboot many time tested other emulators like ppsspp,nds,mame etc all work fine, then open RA 1.1 the phone started to get hot and drain my battery fast.

think related to excesive cpu usage for default settings. Also feel that the aplication continues to run in the background after closing from multitask.

could you add an option that simulate an crash to exit app?

brujo5 commented 9 years ago

Found an New bug ; core updater settings crash if wifi is OFF

pimduin commented 9 years ago

RetroArch built from the most recent source does seem to make my iPad air use about 60% CPU in the main menu. Explanation what's causing this (which is way over my head) seems to be in comments in the source code, see do_iteration() in platform_apple.c

inactive123 commented 9 years ago

Yes the observer callback seems to be implemented wrongly (at least for iOS). It seems to be hogging the CPU like mad in its current state. I'm currently refactoring RetroArch's runloop code so that we will be able to better control it and make the RA runloop play nicely with Apple's CoreFoundation runloop.

inactive123 commented 9 years ago

Pushed a fair few commits since yesterday @brujo5. Can you check out how the CPU activity is like now in the iOS Cocoa menu? It should be far less CPU intensive. I'm still working on finding similar measures for RGUI/XMB/GLUI right now though.

pimduin commented 9 years ago

CPU usage seems to have dropped to 23% on an iPad Air.

brujo5 commented 9 years ago

@twinaphex

work stable now. hope the core settings will be add soon.thx

brujo5 commented 9 years ago

@twinaphex

Testing build 2015/03/09

desmume core work at full speed on ip5S up but still missed those things requested in forum since long time) Not support touch inputs Dont have overlay controls that mixed físical button + touch screen support Not support microphone (nesesary for Zelda games)

Still cant change anything in core options,core cheats, video

Still core updater settings crash if wifi is OFF

Still no compiled those cores for test: mame2010 Psp

regarding all else, work like a charm!!

inactive123 commented 9 years ago

I'll take a look at getting core options working with the new menu.

brujo5 commented 9 years ago

That sounds good.thx

brujo5 commented 9 years ago

@twinaphex It is a mistake? Two cores PCSX interpreter. what is the difference?

image

inactive123 commented 9 years ago

Yeah one of them should be triaged probably. I'll check with radius and/or tjcarter.

brujo5 commented 9 years ago

@twinaphex

tested build 2015/03/11

new issue

RA not autorotate, i only can play in portrait mode. try to find rotate option like RA old version but has nothing?

Also made an clean install,delete old config files,check permission etc. all fine.

hopefully it will not take long the new menu.

knghtbrd commented 9 years ago

Delete the one without libretro, it's older.

ETA: I took care of it.

llakssz commented 9 years ago

on the latest nightly, does PCSX rearmed work with devices like iphone 6 + air 2?

brujo5 commented 9 years ago

@llakssz on iPhone 6+ yes. iPad air 2 no idea.

@iKarith thanks.

brujo5 commented 9 years ago

@twinaphex

Build 2015/03/12 when I'm playing and I'll emulator options, wanting to return using the resume button, it does nothing or make emulator crash. I still have the same problem I can not do that rotates the screen. (landscape)

llakssz commented 9 years ago

@brujo5 - ok, well on my ipad air 2, pcsx rearmed would crash when i opened it. (on the 1.0.0.1 stable from repo) - i believe this was the case with iphone 6/+ so now if it is fixed in the latest nightlies, fantastic, i'll test it out

brujo5 commented 9 years ago

@twinaphex

Tested build 2015/03/13

Auto rotate screen for landscape fixed image

But portrait mode is broken

image

inactive123 commented 9 years ago

What device are you using this on? iPhone 6 Plus?

brujo5 commented 9 years ago

Iphone 5S

brujo5 commented 9 years ago

@twinaphex

is normal?

Opening the UI through the small Retroarch icon on the overlay would let me resume by touching on the top resume button. I need to touch the "resume content" them the "resume" on top to go back. Opening the UI by touching the top of the screen do not cause this issue.

brujo5 commented 9 years ago

@twinaphex Tested build 2015/03/18

RA need clean up,

After run RA for first time, all StuffI is copied to var/mobile/documents/ but still remain inside RA app. for me it is better to have everything within the app. Also some stuff like overlays not autodetect the default rute for example. If i want to change the default overlays (retropad.cfg) the explorer open in this rute var/mobile/ and the correct one is var/mobile/documents/overlays/

brujo5 commented 9 years ago

When will be available the new menu, you could compile mupen64 cache interpreter.dlyb, I need to play Castlevania and paper Mario on ip6 +

superdude415 commented 9 years ago

Hey guys I'm new here. But I've had a huge problem with Retroarch. I used to have it for an unjailbroken (iOS) device. Now its jailbroken. I found Retroarch again, launched it, and everything seemed to be fine, until I started playing. The problem is that the screen isn't fully in the center, including the n64 overlay. This happens with all my cores and ROMs. This has been really bugging me. Seeing u guys gave me hope. Any Suggestions? Help please :(

eddiebrook commented 9 years ago

hello

the new mame core 2013 working perfect on RA stable version but crashes after few seconds on RA 1.1

brujo5 commented 9 years ago

@twinaphex

Good points Since 1.0.0.2 I think overall the speed and stability is really improved. Everything feels smoother and faster. Games loading and the UI. The yellow fonts on the screen are a nice improvement too. The icon and loading screen are a nice touch too :)

Bad points 1) biggest issue right now for me is that I can´t resume when clicking on the small retroarch icon on the overlay. Clicking on the menu big overlay icon is and resume is fine but that is also the second issue. 1-1: https/flic.kr/p/rLvnjg 1-2: https/flic.kr/p/rJdzyU

2) Big overlay icon is out-off place on landscape: https/flic.kr/p/ru47Ce

3) CORE OPTIONS is also not working. The options are there but there are no toggle or On/Off thing. https/flic.kr/p/qPvRTu

4) Shaders are not working. I can get into the shaders options but when I get to the shaders folder they are empty. The actual files are there but Retroarch can't read them. Maybe they are in the wrong format.

5) The auto-core selection is missing. Not sure if this feature will ever go back. I really miss the auto-core selection. It saves a lot of time. Now you need to select the core them go find the game.

6) Fast-Foward is also not working.

7) Still autorate not working sometimes (for landscape)

That's it for now!

EDITE---------------------------------------------------

I answer myself

knghtbrd commented 9 years ago

I'm shocked it works for you at all based on libco not supporting hardfloat according to aliaspider. I uploaded a test softfloat version, if you could try that with both 1.1 and 1.0.0.2 I'd appreciate it.

Joseph

On Tue, Mar 24, 2015 at 11:20:43AM -0700, eddiebrook wrote:

hello

the new mame core 2013 working perfect on RA stable version but crashes after few seconds on RA 1.1


Reply to this email directly or view it on GitHub: https://github.com/libretro/RetroArch/issues/1464#issuecomment-85629962

eddiebrook commented 9 years ago

@iKarith

sure, were is the file?

edite------------------- nevermind.

knghtbrd commented 9 years ago

The usual spot, just look for the {mame,mess,ume}_ios_softfloat.dylib.zip

Joseph

On Tue, Mar 24, 2015 at 08:55:31PM -0700, eddiebrook wrote:

@iKarith

sure, were is the file?


Reply to this email directly or view it on GitHub: https://github.com/libretro/RetroArch/issues/1464#issuecomment-85818464

eddiebrook commented 9 years ago

@iKarith

after testing mame softfloat version: working perfect on RA stable version 1.0.0.2, any crashes. on RA 1.1 still crashes after few seconds.

this problem happend in both version, Emulator freeze after boot cps3,cave games sh3, and some games that use stv bios.

is strange because all cps3 games run on mame4ios reloaded 0.139 ported by david valdeita seleuco

eddiebrook commented 9 years ago

Screens from mame 2013 On RA stable version

The gladiator

image image

eddiebrook commented 9 years ago

I'm impressed by how my ip5S handles 3d games on this recent MAME.

nearly full speed: tekken 2,tekken 3,street fighter 2 ex, bloody roard 2,strider 2,etc

inactive123 commented 9 years ago

@eddiebrook Yeah i noticed even Apple A7 runs about 4-5fps faster than a Tegra K1. So A8X in particular (Air 2) would probably be fast enough for running those games in fullspeed.

inactive123 commented 9 years ago

@eddiebrook These games that crash for you after a few seconds with RA 1.1

are they games that are running below fullspeed? Like tekken2, tekken3, street fighter 2, etc?

If so that seems to jive with my experiences so far where a game like Pac-Man that would never fall below fullspeed would never crash but a game like Tekken that runs at 44fps crashes after a few thousand frames or so. I think it's a runloop-related issue that manifests itself when a core cannot run at fullspeed.

If you can confirm these crashing issues don't happen with games that won't ever fall below fullspeed, then that can help me in trying to come up with a solution.

eddiebrook commented 9 years ago

@twinaphex

On RA 1.1 all games crashes after few seconds, cant play anithing

eddiebrook commented 9 years ago

I will continue by testing a little more with Rgui menu and some options.

inactive123 commented 9 years ago

eddiebrook - cant replicate that, pac man definitely works without crashing.

eddiebrook commented 9 years ago

@twinaphex

will try right now!!

dude, what's this? can remove it??

mess_libreto_ios.dlyb ume_libreto_ios.dlyb ume_libreto_ios_softfloat.dlyb

knghtbrd commented 9 years ago

MAME is an arcade emulator. But MAME contains all the bits needed to emulate home consoles too, usually more "100% accuracy" than other emus (though this says nothing about whether the results are playable or not), so they created MESS. Somewhere along the line, someone decided it was stupid that you had this giant monolithic MAME and this giant monolithic MESS and decided to make the giant monolithic UME that is both.

At this point, you should have one mame, one mess, and one ume, and they should be the softfloat versions. Consequently, as of five minutes ago now, the softfloat versions are the only ones we have (and they're not labeled softfloat anymore, that was just done so that there could be two versions for testing…)

Joseph

On Wed, Mar 25, 2015 at 09:59:25AM -0700, eddiebrook wrote:

@twinaphex

will try right now!!

dude, what's this? can remove it??

mess_libreto_ios.dlyb ume_libreto_ios.dlyb ume_libreto_ios_softfloat.dlyb


Reply to this email directly or view it on GitHub: https://github.com/libretro/RetroArch/issues/1464#issuecomment-86121472

eddiebrook commented 9 years ago

@twinaphex @iKarith

the crash in RA 1.1 depends of the game for example the gladiator take less time to crash (in the menu) but other like spiderman takes a little more to crash (in game)

eddiebrook commented 9 years ago

@twinaphex

in light roms like asterix take about 2 min to crash.

eddiebrook commented 9 years ago

remenber those crashes never happends on RA 1.0.0.2 so the core is fine.

edite RA 1.1 still crashes whit mame_libretro_ios_softfloat.dylib

knghtbrd commented 9 years ago

Sounds like we've got the cause sorted. The solution might be to spin off threads per-frame using blocks, or to maintain a separate draw and logic thread. The problem is that every single block is going to give us about 900-1000 extra instructions every single second, which is a lot and will hurt performance.

We might spin up a full thread (100-150 instructions, once) and split the execution. That suits our needs better. We're discussing it.

Joseph

On Wed, Mar 25, 2015 at 11:03:07AM -0700, eddiebrook wrote:

@twinaphex @iKarith

the crash in RA 1.1 depends of the game for example the gladiator take less time to crash (in the menu) but other like spiderman takes a little more to crash (in game)


Reply to this email directly or view it on GitHub: https://github.com/libretro/RetroArch/issues/1464#issuecomment-86151100

eddiebrook commented 9 years ago

but why in RA 1.0.0.2 never crashes?

andres-asm commented 9 years ago

Because 1.0.0.2 didn't have the currend CVDisplay runloop implementation. (EDIT by Twinaphex: CADisplayLink actually, CVDisplayLink is for OSX.)

knghtbrd commented 9 years ago

Because in 1.0.0.2 RA runs everything in multiple threads. This is where you have two pieces of a program running "at the exact same time". (On a multi-core CPU, they literally are. On a single-core CPU, the OS is switching back and forth between them, but they run in parallel as far as the program is concerned.)

About 15 months ago now, RA was rewritten for single-threaded operation. A -> B -> C etc. If it slows down, everything slows down. But it's easier to write, easier to debug, and if you only have one CPU core, performance is higher overall, as long as you can plow through the program execution fast enough to not be annoying and laggy. Think parts of Sonic 2 on Genesis/Megadrive where everything slows down.

The other problem with running full bore like that is that you're using nearly 100% CPU and the phone starts to get hot. It's not made to run flat out like that for long. So Twinaphex rewrote it to use a built-in iOS draw timer. Every frame (60x per second), iOS will tell RA to do its thing and be done.

Think of it like a line of trays at a McDonalds or something. The cashier (iOS) puts a tray on the counter with a receipt indicating what food needs to be on that tray. It's now your job to fill the tray and call out the order number.

If you don't do that before the cashier is done taking the next order, you now have two trays, but the first one isn't ready yet. So you finish it and start on the second tray. But now you're starting to get behind.

In this case, iOS is going to keep handing you trays 60 times a second. Your counter is going to fill up, and then your boss is going to fire you for not getting food out fast enough.

Joseph

On Wed, Mar 25, 2015 at 11:22:50AM -0700, eddiebrook wrote:

but why in RA 1.0.0.2 never crashes?


Reply to this email directly or view it on GitHub: https://github.com/libretro/RetroArch/issues/1464#issuecomment-86158513

eddiebrook commented 9 years ago

@twinaphex @iKarith

your right, pacman (60fps) never crash but try pacmania will crash after few seconds in game.

here an video

https://mega.co.nz/#!9koFDRJY!Afun8Z9L5fE7BdWswGiqV5xrLBxTIzNH9oF-ANRQN5s