Dolphin, the GameCube and Wii emulator - Forums

Full Version: Dolphin on iOS
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14
UPDATE:

https://github.com/dolphin-emu/dolphin/pull/3881

Opening a pull request is a big step in getting official support for iOS. It's currently undergoing code review, so please be patient. (The original OP is below if you want to look at it.)

Nifty.
Someone could definitely use that as a reference to do it completely.
Maybe look at how other iOS-compatible emulators like PPSSPP handle memory? Does PPSSPP have a fastmem-equivalent?
Yeah, PPSSPP has a fast memory setting, but its unstable.
Good job OatmealDome! What else can it run besides the starfield.dol?
(03-21-2015, 12:37 AM)KHg8m3r Wrote: [ -> ]Yeah, PPSSPP has a fast memory setting, but its unstable.
Good job OatmealDome! What else can it run besides the starfield.dol?

Well, it doesn't even run starfield.dol Tongue It just crashes when it tries to setup memory because of the broken shm_open...

Also, I did some further tests and apparently non-sandboxed applications (those that live in /Applications, not /var/mobile/Containers/Bundles/) can use shm_open just fine! However, this does restrict Dolphin to only running on jailbroken devices (you can't just sign the application and run on a regular device as it would still be sandboxed).

It's also more time consuming trying to run Dolphin now since you have to find and copy the Application bundle within the mess of UUIDs in /var/mobile/Containers/Bundles (though this is made easier using 'find . -name 'DolphiniOS'), then run uicache to refresh the home screen. To run a new copy of Dolphin, you would have to delete the bundle from /Applications, kill SpringBoard, then you can install the application again with Xcode. Those steps could probably be automated with scripts, and the regular user shouldn't have to do that at all with a .deb package that they can just install through Cydia.

Anyway, i'll just keep trying to run Dolphin and I will also report back if I get stuck again or it if actually works.
Running Dolphin on a non-jailbroken device is pretty much impossible isn't it? I thought (non-jailbroken) iOS stopped you from using RWX memory, which the JIT requires. Or am I mistaken?
Yeah, I think you're right. It looks like that the jailbreak patches the kernel in two places to prevent it from checking for and removing the execute bit: vm_map_enter, vm_map_protect.
Yes, you need the jailbreak to run JIT code.
Oatmeal, look into how PPSSPP has their app installed. They package theirs as a .deb, which allows easier installation by using Cydia (even without it being on a repo, you can install by putting it in Cydia's autoinstall folder)
@khg8m3r
Yeah, I'll look into having Xcode build a deb file for me to make it easier.

Progress Update:
Almost there, but it crashes when the cpu thread attempts to execute the first bit of compiledcode with exc_bad_access... I really don't know what to do from here. Is iOS blocking it from running the code..? Also, MemArena fails most of the time trying to find a base. (Does it really need to find 16GB? I set it to only find 1GB like the 32 bit code does, and even then it still fails most of the time. The memory is freed like moments after, too)

Anyways, I'll update the git branch tomorrow with the latest code.
Yes, it actually wants 16GB. The fact that we free it immediately is a bug. Note that it isn't actually allocating that much memory, just trying to reserve address space for fastmem. This hasn't been a problem on desktop OSes or Android; not sure why iOS doesn't like it.

If reserving the address space is really impossible on iOS, we'll need to modify the JIT to compensate for a different memory layout. Not impossible, but there would be a substantial performance penalty.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14