Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
TouchHLE: An iOS 2.0 App Emulator (touchhle.org)
145 points by dagmx on Feb 2, 2023 | hide | past | favorite | 49 comments


The creators twitter post https://twitter.com/hikari_no_yume/status/162127141792370688...

The emulator is written in Rust and the site is created with DashCode ( https://en.wikipedia.org/wiki/Dashcode )


I compiled the tweets into a blog post and made some corrections, so if anyone sees this in future, I recommend reading it this way: https://hikari.noyu.me/blog/2023-02-06-touchhle-anouncement-...


The site does not interact properly on the Vivaldi mobile browser.


Hi, author here: yeah, the site's a bit glitchy in almost any modern browser, given Dashcode is software from ~15 years ago and used a lot of WebKit-specific stuff, but it seemed like it was usable enough in Chrome, Firefox and Safari. Is Vivaldi worse somehow?


Now you got me curious: can you get Dashcode to run on modern macOS or does it only work on Snow Leopard? Never got to experience it back in the day and would love to try it out.


You can't run the binary at all on modern macOS, I think it relies on some framework or API that simply no longer exists. macOS explicitly tells you it's incompatible and it doesn't work even if you force it to run. So I used a Mountain Lion VM.


Vivaldi is webkit/chrome based, but for me on the mobile none of the buttons work. On desktop I didnt check yet. Didn't have a lot of time when I filed the response.


Who downvoted? I wasnt able to provide more details at the moment (appointments), but as you can see, I wasn't the only one who says this.

I know I ideally should have provided more details, though every reports counts and the author recognizes. Plus the fact I add a modern browser in the description he figured this might be the case. Thanks.

Anywhere I can follow-up perhaps? Since the buttons don't work I can't actually interact. Will test tomorrow if the desktop browser of Vivaldi does the same.


Oh, I thought I was the only one


What are you using?


Vivaldi on Android


I know this is a bit silly and circuitous, but it would be neat if this went full-circle and allowed you to play ios2 games on modern iphones: we could relive the golden era of mobile gaming, before in-app-purchases steered the game mechanics towards grinding.


I have a small number of old apps that are self-contained on the device, yet they won't ever get built for recent versions of ios. I'll be happy if I am every able to see those apps run again.


Which one are those?


They are three apps that present certain language translations and their associated pronunciations from specific texts.


The readme of this project says it's focused only on games.

You can extract or download your old apps using iMazing and install on an old device. I've done this for a couple of games.


Author here: if the EU proposal that forces Apple to open up iOS goes through, I'm definitely going to try to port it. Chances are that WebAssembly would happen before that, though.


I used to love popcap games, and thought PvsZ was one of the best mobile games...

until EA took over popcap and monetized PvsZ to put literal prices in dollars on the plants.

A jump the shark moment.


I think it makes more sense to compile this emulator with Emscripten and run it in the browser.


Wow, this ‘early iPhone’ web design framework really takes me back to when I was taking my first steps into programming by learning HTML. I’m pretty sure I used this exact framework to make a few websites back then.


The footer credits "Dashcode", which I had completely forgotten about https://en.wikipedia.org/wiki/Dashcode


I know what you mean. That framework was "iUI" by Joe Hewitt of Firefox fame.


There's more than one like that, a friend told me it reminded them of "iWebKit".


i just remebered "monkey ball" . fun times..

tap tap revenge.

there was this one game, super fun.

it was some glider game where the hero was riding a glider and your job was to scale up and through areal targets using hot draft winds and score points.

it is funny because there was no mechanism for "iAP" in-app payments so there was no monetization, no ads or anything.

farmville anyone? our whole family was addicted to a point i had to manually pull the plug on the app for good. that was.... lets just say... complicated


Think the glider game may simply have been an iOS implementation of a classic Mac game “Glider”: https://en.m.wikipedia.org/wiki/Glider_(video_game)


You mean Glyder, by Glu! My favorite game (well, it and its sequel, Glyder 2) on iOS by far.


Would love to play these again!


oh shit.... yes yes yes



Paging u/TazeTSchnitzel - congratulations, what a phenomenal creation.

Is this the same dynarmic from Citra/Yuzu?


Thank you!

Yes, it's the same dynarmic that Citra and Yuzu use.


Looks like it is, yes.


I don't know tech and emulation, but this seems very interesting. If that means an iphone emulator on PC is possible? If I am right, currently, there are no emulation products for iphone, while we got plenty of Android emulators like Bluestack.


We do have https://www.corellium.com/ but that's a hosted solution and not generally available to consumers.


There are also projects that have gotten versions of iOS running in QEMU:

https://news.ycombinator.com/item?id=34095830

https://news.ycombinator.com/item?id=30545425

I don't know how usable they are for this kind of use-case though.


They're not quite at the level of being able to run arbitrary apps, but might get there soon?


Yeah. I expect GPU emulation to be a significant hurdle, I'm not sure if Apple's fallback software rendering will work well enough or at all?


I believe all the emulation projects are using software rendering at the moment, including Corellium? Last I checked their graphics stack didn't seem all that advanced, and I know the QEMU forks are just using the fallback and can display SpringBoard with it.


That's also what I've been assuming. Maybe the performance/featureset will be okay for games, I'm not sure.


Thanks guys for the sharing, hope the thing will mature one day.


I knew this, the company sued before by Apple, thus the service will not open to normal users, what a pity.


If I remember correctly, the iOS binaries had DRM that linked them to your Apple ID. That was my biggest fear for future preservation of then-contemporary apps. Does this emulator work around the DRM?


Not currently. The website has this snippet of information:

Note that the app binary must be decrypted to be usable. Also note that you can’t directly use .ipa files right now, you’ll need to unzip it (this may be easier if you rename it to end in .zip first) and get the .app bundle out of it.


Sadly I don't hold the magic keys to decrypt DRM'd apps, and therefore touchHLE doesn't either, but but there are known techniques for removing it (using a real device).


A natural thought is that it would be cool to run this on Android


This "you got your Objective-C in my Rust!" syntax is just... :chef-kiss:

https://github.com/hikari-no-yume/touchHLE/blob/trunk/src/fr...


I had to look, I couldn't help myself.

https://github.com/hikari-no-yume/touchHLE/blob/e516cd13f9be...

It's actually not terrible.


I had seen macros to support a quasi-message-send signature from Rust (`let value = [[cls.into() numberWithUnsignedInt:42u32] stringValue];`), but never method implementations!

https://belkadan.com/blog/2020/08/Objective-Rust/


Someone needs to combine these two…




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: