iOS port - #1767
iOS port#1767Markos-Th09 wants to merge 4 commits into
Conversation
Yes, the only way to play this currently is using either by connecting a controller or keyboard and mouse to your device. |
|
I’m happy to announce the first playable release of this port intended for testing. You can download the IPA from the releases page of my fork. Anyone is welcome to report bugs and issues either here or in the issues page of the fork. You WILL need a controller or mouse/keyboard to play this. |
|
Which one do I download? I'm new here |
You can download |
Have you sideloaded anything before? If you already know how to do that you don’t need a pc. In order not to fill this thread with unrelated things, you can message me on discord (MarkosTh09) for assistance or open a discussion in my fork. |
|
Didn't I say I was new? Okay then lol |
Co-authored-by: Isaac Marovitz <isaacryu@icloud.com>
…mitives Fixes synchronization issues observed only in iOS
Use main.cpp as the sole application entry point via SDL_main.h and remove UnleashedRecompIOSLauncher to avoid duplicated build logic.
|
Tested this branch on real hardware — iPhone 16 Pro (A18 Pro), built with Xcode 27 on an M4 Pro, running the native Metal backend your branch integrates. Sharing everything we hit, in order, with fixes on this branch: https://github.com/yorgunkral31/UnleashedRecomp/tree/ios Result: the game boots to the title screen on device with native Metal, and is stable enough at the menu that the idle attract intro plays. Findings & fixes
Happy to turn any of this into PRs against your branch in whatever shape is useful, and to run more on-device tests — this is a fantastic base. (Credit also to @squidbus for the Metal backend.) |
Overview
I am working on porting Unleashed Recompiled to iOS. Since this is currently early stage I am opening this for feedback and evaluating the possibility of including this upstream. This is currently not in a mergeable state and is intended for technical review, testing, and collaborative debugging.
This also requires modifications to submodules. I am already working on upstreaming the changes to plume to make it compatible with iOS (renderbag/plume#102). However, for nativefiledialog-extended, it would be unlikely that this could be upstreamed or accepted as the current implementation is very much incomplete and mobile operating systems don't seem to be within the scope of the library. How should this be handled? I have identified the following options
Known Blocking Issues
I have outlined all currently known in detail at my fork's issues page but to summarize:
RtlEnterCriticalSection/RtlLeaveCriticalSectionMarkos-Th09/UnleashedRecomp#1)Update: It doesn't occur on the native Metal backend by squidbus (Add support for Metal on macOS. #1648)
Compatibility
Since the game utilizes DXT/BC compressed textures, only very recent iOS devices natively support them. Specifically according to the Metal feature set tables:
This corresponds to:
The possibility of transcoding textures at installation time to another format like ASTC to improve compatibility could be considered in the future, but this adds significant complexity.