← Back to context

Comment by kccqzy

6 years ago

This appears to be an expanded description of a long-known technique, described by the author on HN years ago: https://github.com/utmapp/UTM/blob/ac89c106ecf9c765ea47bfe04...

I noticed the author had some comments on this approach on an HN thread the day before, "QEMU for iOS". Probably the previous discussions stirred some creative juices and they figured it's a good topic to elaborate upon in blog post form.

  • Somewhat, the story for this is a bit complicated :) I'm sure the ptrace trick was already well known by the jailbreaking community long before I discovered it independently, but I used that to port TinyCC to iOS: https://github.com/saagarjha/tinycc/tree/ios. (This was after Apple allowed people to sideload apps on their devices, so I was planning on making an app that would let you write C on your phone. I made an early demo and even an app icon, but lost motivation after I couldn't figure out how to make my app appear in sidebar of the Files app, go figure.) Emulators started implementing it at some point, and after not being able to do anything useful with it I just stuck around whispering it to anyone who'd listen. At some point I realized that a Mach exception handler might help solve the freezing issue described in the post, and UTM was the first app where I actually implemented it to see if it would work (though I suggested it to Dolphin earlier: https://github.com/dolphin-emu/dolphin/pull/8492#issuecommen...). Since I ended writing essentially the same thing for PPSSPP (https://github.com/saagarjha/ppsspp) and I knew that there were other emulators that had the same issue, I figured I'd just write it up and point people at that instead of trying to send patches to all of them. I'm kind of lazy ;)

    • I am fascinated by your port of UTM and have to ask the question you’ve probably been asked thousands of times: is there any prospect of you releasing this on TestFlight?

      2 replies →