Repository navigation
Complete Apple dynamic memory, private ISO imports and controller settings - #1
AttilaTheFun wants to merge 16 commits into
Conversation
f8c6ab9 to
3eeba72
Compare
|
Following up on the feedback from the original OpenCommunityEdition/OpenCE PR #64, now that the Apple work is based on this fork. @UEMxMDE — thank you for the detailed gameplay/input report. I checked all six points against the current code:
@cybersecurity — regarding the Apple CI/testing concern, this contribution is now against the Apple-maintained innerhat fork, which already has macOS workflows. It requests no runner/workflow changes in the original repository. This does not remove Apple runner costs or ask you to take on Apple-device testing. The new changes are in 811cbb42. Validation: signed iOS device build passed; five focused routing, browser-ordering and menu checks passed. Routing tests exercise production functions with ASan/UBSan, including separate-player isolation, reconnect, bounded enumeration and modal input suppression. Physical split-screen/controller gameplay still needs testing; no phone/tablet was installed or launched during this review. Full disposition and validation record. The larger feature requests above remain explicitly open rather than being presented as fixed. |
|
I just tested this app in LiveContainer (I downloaded it from here: https://github.com/AttilaTheFun/halo-ce-universal/releases/tag/apple-ios-pr1-20261012). I enabled "Fix File Picker" before booting it up for the first time. Here is what happened:
Halo OG could not start Here is save/halo.log after getting this error for the first time: halo.log Here is save/halo.log after opening the app multiple times after the first time: halo.log Also once the app is opened more than the first time, the "OK" button becomes untappable. The entire error window quickly shrinks to nothing when I open the app and the "OK" button is kind of cut off. When I tap the "OK" button or anywhere else on the screen, nothing happens. These issues are not fixed by closing and reopening the app or by deleting and reinstalling the app. I tested this on an iPhone 17 Pro Max on iOS 26.0. |
|
@UEMxMDE Thanks for both logs. They report the same failure: This runtime requires Extended Virtual Addressing in the process actually running the game. LiveContainer documents that guest entitlements are not applied to its host, so granting it to the Halo guest does not establish that the host has it. “Fix File Picker” only addresses the picker. The error is consistent with a missing host capability or incompatible address-space layout; these two logs alone cannot distinguish them. I cannot yet claim LiveContainer support, even with an entitled host. I pushed 38b21174 to address the app-side failure handling:
Updated unsigned IPA and signing kit (public build 16). This improves diagnostics/error handling; it does not bypass the memory capability or establish LiveContainer compatibility. The tested signing route remains a standalone app with a provisioning profile that grants Extended Virtual Addressing, as described in the guide. Validation: device build and re-signing/signature/entitlement checks passed. A forced-error iPhone simulator test exercised Copy details and Close across three launches with orientation changes; ordinary startup still loaded the guest and menus. I have not reproduced your exact LiveContainer/iPhone 17 Pro Max setup. If you can try standalone signing and it still fails, the new |
|
I just downloaded and tested your new ipa and the "extended virtual addressing" is an issue for me. I like that the error in the updated ipa is more descriptive of what I am missing to get the app to work. Previously I used an app called GetMoreRam (which can be found here: https://github.com/hugeBlack/GetMoreRam) to add the "Increased Memory Limit" entitlement to LiveContainer (I did this a long time ago and the entitlement is still there), but now to run your app I also need extended virtual addressing (by the way, extended virtual addressing was not a requirement to test other iOS Halo ports that I tried, I am not sure why it is a requirement now). I found an app called iRAM+ (which can be found here: https://github.com/NexSideloading/iRAM-Plus) that says it can provide both the "Increased Memory Limit" and "extended virtual addressing" entitlement to any sideloaded app, but this app is experiencing an error called the "-80045" error. According to r/altstore right now, this error is happening to AltStore and Sidestore as well due to issues caused by Apple themselves, which means I can't actually test your app until Apple/sideloading developers resolve this issue. |
|
@UEMxMDE I investigated why the other iOS port could run without Extended Virtual Addressing. NicholasDominici's New unsigned IPA and signing kit: public build 17. It no longer requests Extended Virtual Addressing or Increased Memory Limit. Please use this new IPA; re-signing build 16 with an empty entitlement file cannot change its compiled memory layout. I installed and launched the same runtime standalone on an iPhone 15 Pro/iOS 27.0.1, with both memory entitlements verified absent from the app signature. It loaded all imports and reached the main menu with Metal/MetalFX. The signed-code tests also run the same machine code at three different arena addresses. Your iOS 26/LiveContainer combination is still unverified. Our test phone's OS selected 448 GiB, so this does not prove that every earlier OS/container has an available aligned region, or resolve the provisioning-service error you reported. When your signing tools work again, please try build 17 and share Design, attribution and test limits. Physical gameplay/performance comparison remains to be done; the device check so far establishes startup. |
|
@UEMxMDE The latest version is ready to try: public build 18 — unsigned IPA and re-signing kit. It includes:
The memory change launched successfully standalone on my iPhone 15 Pro without either memory entitlement. The latest protocol-29 runtime also joined a populated live server in the simulator. Your iOS 26/LiveContainer setup is still unverified, so I'd appreciate another try when your sideloading tools allow it. Download the new IPA itself; re-signing an older build won't update its memory layout. If it still fails, please attach the new |
|
I tried the new build and I'm still getting the same error: halo.log |
|
@UEMxMDE Thanks for the log. It contains the old fixed-address diagnostic ( This suggests an older installed copy is still launching, or an older log was exported. It does not yet establish whether the updated runtime works in your LiveContainer setup. Please use the direct build 18 IPA download, confirm the imported app is 0.2.0, build 18, then fully close/reopen LiveContainer and launch the updated entry. Preserve your game data and saves; there is no need to delete them or re-import the ISO. The unsigned download's SHA-256 is If it still fails, please attach a freshly exported log from that entry after the failed launch, the error-screen screenshot, and the installed build number if available. Please also confirm whether this attempt uses LiveContainer or a standalone installation. Your iOS 26/LiveContainer combination remains unverified. |
|
I just tried that direct download and it worked! Thank you for that, when I saw the log again it was my mistake. The app successfully imported the game. I will do some more testing when I can. |
|
I just did more testing on the latest version:
I also have some suggestions:
|
ff18344 to
8f4875b
Compare

This refresh completes the remaining Apple runtime and import fixes on current CoreCE
main(c88fcf2d). Most of the original PR's controls, graphics diagnostics and networking implementation are now present in the base, so those duplicate commits have been removed from this proposal.Changes
Upstream names, icons and default bundle identifiers remain unchanged. No personal signing material or internal distribution settings are included.
Building and compatibility
Use the iOS build guide and re-signing guide. Previously linked downloadable IPAs are historical builds of the old PR, not this refresh. A fresh public download has not yet been published.
This targets CoreCE protocol 34 and its discovery network. It does not discover or join current mainline OpenCE protocol-38 games. Changing a version constant or discovery topic alone would not provide compatibility. A mainline-compatible downstream path is still being evaluated; this PR does not claim that result.
Validation and remaining work
Passed on this refresh: iOS simulator build and landscape first-launch ISO screen; signed-image runtime probe at three arena addresses; both controller-routing probes; Mac private-import, rollback, preferences and legacy-migration probes. These do not establish full-match gameplay or performance parity. The device and native Metal Mac builds also passed; the installed Mac signature and device package boundary were verified. The game main menu renders in the leased iPhone simulator, and the gear button’s actual action opens Graphics & Diagnostics in landscape. The corrected runtime log has no incomplete-framebuffer report. The targeted suite passes 12 tests and three subtests. The final device rebuild after the GL correction passed. This is ready for code review, not a claim of full-match acceptance or mainline interoperability.
The previous reporter confirmed that the old dynamic-arena build launched in LiveContainer. That is historical user evidence, not a fresh test of this revision. Free-account sideloading remains unverified here.
Attribution and related ports
Built on mastercheese-dev/CoreCE, formerly innerhat-dev/OpenCE, retaining its Apple runtime and renderer. Earlier work came through our original Apple PR #64, NicholasDominici/halo-ce-ios, and fqlx's browser PR #12, with the shared decompilation lineage through OpenCE and bnunu/halo-1.
Reviewed VISR for additional Apple improvements. Its sampler probes and shader-warmup identity tests are useful references; no VISR code is copied here and no benchmark advantage is claimed. Detailed findings and open gates are in the refresh record.