LemoNX
LemoNX enables Nintendo Switch game emulation on iOS using the Ryujinx iOS code base.
LemoNX is an iOS Nintendo Switch emulator based on MeloNX, written primarily in C#. Designed to bring accurate performance and a user-friendly interface to iOS, LemoNX makes Switch games accessible on Apple devices.
Developed from the ground up, LemoNX is open-source and available on Github under the MeloNX license (Based on MIT).
Compatibility
LemoNX works on iPhone XS/XR and later and iPad 8th Gen and later but may require to be run through LiveContainer on A12 devices. Check out the Compatibility on the website.
Usage
FAQ
- LemoNX is made for iOS 16.1.2 (16.0 - 16.1.1 wasnt tested yet but should also work) and later, LemoNX can be installed on iOS 15 too but will fail to run games at the moment.
- LemoNX cannot be Sideloaded normally and requires the use of the following Installation Guide(s).
- LemoNX requires JIT
- Recommended Device: iPhone 15 Pro or newer.
- Low-End Recommended Device: iPhone 13 Pro
How to install
Paid Developer Account
-
Sideload the App
- Use any sideloading tool that supports Apple IDs (SideStore or AltStore for example).
-
Enable Entitlements
- Visit Apple Developer Identifiers.
- Locate LemoNX and enable the following entitlements:
Increased Memory Limit
Increased Debugging Memory Limit
-
Reinstall the App
- Delete the existing installation.
- Sideload the app again with the updated entitlements.
-
Enable JIT
- Use your preferred method to enable Just-In-Time (JIT) compilation.
- We reccomend using JitStreamer
-
Add Necessary Files
If having Issues installing firmware (Make sure your Keys are installed first)
- If needed, install firmware and keys from Ryujinx Desktop (or forks).
- Copy the bis and system folders
Free Developer Account (Experimental)
-
Sideload LemoNX
-
Sideload the Entitlement App
-
Sign In to Your Account
- Open Settings in the entitlement app and sign in with your Apple ID.
-
Refresh App IDs
- Navigate to the App IDs page.
- Tap Refresh to update the list.
-
Enable Increased Memory Limit
- Select LemoNX (should be like "com.c4ndyf1sh.MeloNX" or some variation) from the list.
- Tap Add Increased Memory Limit.
-
Reinstall LemoNX
- Delete the existing installation.
- Sideload the app again using SideStore or AltStore.
-
Verify Increased Memory Limit
- Open LemoNX and check if the Increased Memory Limit is enabled.
-
Add Necessary Files
If having Issues installing firmware (Make sure your keys are installed first)
- If needed, install firmware and keys from Ryujinx Desktop (or forks).
- Copy the bis and system folders
- Enable JIT
- Use your preferred method to enable Just-In-Time (JIT) compilation.
- We recommend using JitStreamer
TrollStore
As Said in FAQ:
LemoNX is made for iOS 16+, on iOS 15 MeloNX can be installed but will not be able to run games at the moment.
-
Install MeloNX with TrollStore
-
Add Necessary Files
-
Enable TrollStore JIT
- LemoNX includes automatic JIT using the TrollStore URL Scheme
- Open LemoNX Settings
- Scroll down and enable the "TrollStore JIT" toggle
- Close LemoNX completely
- Profit
Free Developer Account (Xcode)
NOTE: These Xcode builds are nightly and may have unfinished features.
-
Compile Guide
- Visit the guide here.
-
Add Necessary Files
If having Issues installing firmware (Make sure your keys are installed first)
- If needed, install firmware and keys from Ryujinx Desktop (or forks).
- Copy the bis and system folders
Features
-
Audio
Audio output is entirely supported, audio input (microphone) isn't supported. We use C# wrappers for OpenAL, and SDL2 & libsoundio as fallbacks.
-
CPU
The CPU emulator, ARMeilleure, emulates an ARMv8 CPU and currently has support for most 64-bit ARMv8 and some of the ARMv7 (and older) instructions, including partial 32-bit support. It translates the ARM code to a custom IR, performs a few optimizations, and turns that into x86 code. There are three memory manager options available depending on the user's preference, leveraging both software-based (slower) and host-mapped modes (much faster). The fastest option (host, unchecked) is set by default. Ryujinx also features an optional Profiled Persistent Translation Cache, which essentially caches translated functions so that they do not need to be translated every time the game loads. The net result is a significant reduction in load times (the amount of time between launching a game and arriving at the title screen) for nearly every game. NOTE: This feature is enabled by default, You must launch the game at least twice to the title screen or beyond before performance improvements are unlocked on the third launch! These improvements are permanent and do not require any extra launches going forward.
-
GPU
The GPU emulator emulates the Switch's Maxwell GPU using Metal (via MoltenVK) APIs through a custom build of OpenTK or Silk.NET respectively.
-
Input
We currently have support for keyboard, touch input, JoyCon input support, and nearly all controllers. Motion controls are natively supported in most cases.
-
DLC & Modifications
LemoNX supports DLC + Game Update Add-ons. Mods (romfs, exefs, and runtime mods such as cheats) are supported;
-
Configuration
The emulator has settings for enabling or disabling some logging, remapping controllers, and more.
License
This software is licensed under the terms of the MeloNX license (Based on MIT License). This project makes use of code authored by the libvpx project, licensed under BSD and the ffmpeg project, licensed under LGPLv3. See LICENSE.txt and THIRDPARTY.md for more details.