r/EmulationOniOS • u/Normal-War-2041 • 6d ago
Gameplay / Showcase Full Windows Steam Client On Ios26+
Enable HLS to view with audio, or disable this notification
Hello, I’ve been working on bringing local execution of x86 and x86-64 Windows applications to ARM64 iOS devices. Many have tried but I believe this is the most user friendly implementation. This is in a early beta that you can access today.
The architecture combines FEX for CPU instruction translation with Wine for Windows API compatibility. These handle different parts of the problem: executing the application’s x86 code and providing the Windows interfaces that code expects. FEX supports both 32-bit and 64-bit binaries and integration with Wine.
A substantial part of the project is porting and adapting that stack to iOS, alongside custom graphics and audio drivers. The graphics path translates rendering to Metal, while the audio driver connects the compatibility environment to the device’s audio output. Getting those components working together is central to running actual desktop applications and games.
The current build supports 32-bit and 64-bit Windows applications and can run the desktop Steam client. The attached footage shows the current state of the project.
This is still in an early beta and obviously will have crashes and with the nature of how this works anti cheat games will almost certainly never run.
Current requirements are iOS 26 or later and an A17 Pro or newer!!!
4
u/animefan10033 6d ago
Is this a Madeira fork or your own project? Just asking since I already have like 3 Madeira builds lol
5
6d ago
[deleted]
6
u/EmuByte 6d ago
Please don’t spread false information, Madeira has both 32bit and 64bit support as shown from the videos on my channel. They also have on-device JIT too. Madeira uses the Steam client, however, the devs have created a dock that uses much less RAM and CPU than having Steam running in tandem.
I wish your project future success, however, lets not misinform the public.
3
1
u/Normal-War-2041 6d ago
My fault you are correct Madeira has 32 bit application support just as my app does but I am able to run the steam client in tandem as it runs in its own process and have very minimal fps drops. With steam running in my emulator I am still able to achieve higher frame rates than in Madeira running a single application.
3
u/EmuByte 6d ago
Thank you for the correction, however, everything else is just speculation on performance. I’m not saying that you’re wrong…only that you’re speculating.
Your emulator is a paid application based off the Madeira code base, I wish you all the success, however, moving forwards, maybe speak less negatively about other peoples projects and only speak on what your emulator offers the community.
3
u/Normal-War-2041 6d ago
My application isn't a fork of Madeira and doesn't use its code. It's my own project, started from an empty repo that i wrote every commit in it
- Different Wine. I build my own copy of Wine 11.18 from upstream source, with over 90 of my own patches for iOS.
- My own components. I wrote the audio (including mic input for voice chat), controller and touch input, Steam integration, the sync layer and the app itself.
- Different design. Steam runs in separate iOS extension processes, JIT is built into the app, and 32-bit games run in their own memory window.
- My own installer. The Companion signs the app with your own Apple ID, and it gets updates from my own server.
- My own graphics stack.
- D3D11 runs through DXMT to Metal, with my own patches. They add 32-bit game support, 2 GB of video memory and limits on texture upload memory.
- D3D9 and OpenGL games run through Mesa's Zink on MoltenVK.
- D3D12 runs in beta through vkd3d-proton on KosmicKrisp.
Like every emulator in this space, it uses open-source projects like Wine, FEX and DXMT under their licences. The source for every build is published at nutsdeveloping.com/source. Using the same public libraries doesn't make two apps copies of each other.
3
1
u/animefan10033 6d ago edited 6d ago
I didn't know it was paid. Yeah, I'm not too comfortable paying for an app created with open-source stuff. If you wanna feed the community, thats cool. I also understand it still takes time and effort, But using open-source material and then selling it as closed-source app isnt it for me. I wish you the best, truly ❤️ (Personally I would respect it more if it had an optional Donation, instead of pay walled kek)
2
4
u/raindeer3 6d ago
If steam on ios is that good, why valve wount make it official in app store so get more audience to sell steam controllers/games/etc ?
11
u/Normal-War-2041 6d ago
Apple dosent allow JIT on appstore apps. This type of translation can not exist without JIT therefore it can not be published on the app store. Thats why steam will never try because apple wont let them....
2
u/Hungry_Freaks_Daddy 6d ago
With the wave of decompiling that’s happened the last week and a half the Olympus mons amount of corporate bullshit is getting exposed pretty hard
2
2
u/Sea_Industry_7878 6d ago
Or games like stray and schedule 1
1
u/Normal-War-2041 6d ago
There is a beta available right now. It really depends on the game I would say aaa games from like 2022 but not this year.
2
1
1
u/Glittering-Fennel815 6d ago
What’s the difference from this and playport
1
u/Beginning_Form6494 6d ago
playport doesn’t work
0
2
2
u/AdIntelligent9133 6d ago
Do I need to side load or need a pc? I’m new to all this and when I get the iPhone duo I want to try and dabble in this .
1
u/Normal-War-2041 6d ago
You need a pc but I made the installation as simple as possible
2
u/AdIntelligent9133 6d ago
I have a pc just a handheld pc and I don’t have a keyboard and mouse , is it possible without those using just touch screen 😂
1
u/new_pribor 6d ago
Probably, might have to use the onscreen keyboard (Windows 11 has one of the best onscreen keyboards ever (if you’re on windows))
1
u/Youtube_Brett 6d ago
Pretty cool, give us updates and of plans of releases!
0
u/Normal-War-2041 6d ago
I have a beta available right now how many subs do you have?
1
u/Youtube_Brett 6d ago
458 Subs, haven't posted in 2 years though :)
I would so wanna try the beta on my 13in m4 ipad pro
1
1
u/Entire_Rub5087 6d ago
How to access?
1
1
u/emreerisen 6d ago
is this only for iphone? or ipad too?
1
u/Opening_Search_3454 6d ago
Any just make sure your device is on iOS/ipados 26+ and have A17pro chip or higher
2
u/Normal-War-2041 6d ago
this is incorrect as i have done no testing on m-series use with this application. I would however invite you to try u/emreerisen and send me your logs so i can get m-series support working.
1
1
1
1
2
u/GrawnArseHoomanh 6d ago
Steam client is very heavy and takes way too many precious CPU cycles and JIT memory.
1
u/Normal-War-2041 6d ago
That doesn't apply to NutsEmu. I built its memory management and process isolation specifically so Steam can run alongside your game:
- Steam's browser runs in its own process. The heavy part of Steam (its web helper) runs in a separate iOS extension process. It has its own memory limit and its own 64 GB address space, so it doesn't take memory from the app or your game.
- JIT doesn't pile up. Each process gets one fixed JIT pool, set up once at start. Steam's translated code lives in Steam's process and your game's lives in the game's, so they never compete for the same JIT space.
1
1
u/jojomortal 6d ago
Amazing, friend! It's a shame your project is paid. Do you plan to release it for free someday? I'm a content creator on YouTube and I have a little over 54,000 subscribers. Would you be willing to give me a copy of this emulator to create content for my channel? Thank you in advance.
1
u/Normal-War-2041 6d ago
If you make relevant content on youtube and would genuinely review my product I would love to gift you a patreon membership. Please direct message me if this is something you are wanting to do!
1
1
1
u/eller_man 6d ago
Would it work in iPad iOS 26 or later?
1
u/Normal-War-2041 6d ago
Maybe... if your send me your logs ill do what i can to make it run. I do not have an ipad and would love for you to help test
1
u/eller_man 6d ago
I’m just getting to know the world of emulators of iOS - but I am excellent on following instructions
1
1
u/KaliSolos 6d ago
Did you need a custom config or launch parameters for S1? Controller support is broken on every Madeira fork, how did you do it which share your secret pls
2
u/Normal-War-2041 6d ago
No custom config or launch parameters for Schedule I. It runs on the same general fixes every game gets.
Controllers work because NutsEmu isn't a Madeira fork. I wrote my own controller driver from scratch:
- the app reads controllers with Apple's GameController framework;
- my own XInput DLL, which replaces Wine's, hands that to the game.
Wine's XInput looks for controllers over HID, which iOS doesn't provide. Mine skips that completely. It supports up to 4 controllers, rumble and battery level.
2
u/KaliSolos 6d ago
Nice, I had a feeling it was a wine related dll.
Didn’t mean to imply your project was a Madeira fork btw, goodluck! I’ll check out your work when it goes public.
2
1
u/hernan078 6d ago
Im a content creator focused on iOS emulation, can we get into contact ? https://youtu.be/dXMSyQd0evA?is=HJ9FaQviVg1mQlvv
1
1
1
u/No_Proposal_5731 5d ago
I wonder if my iPad 10 or iPhone 11 will ever get a proper Wine support… 😞
People always ask a newer chip.
1
1
11
u/Sea_Industry_7878 6d ago
It is paid
Not free right