Thread with 20 posts

jump to expanded post

Let me tell you a little story about technology, games, me, and… ridiculous passion projects.

Early in 2008, Apple were about to release the long-awaited iPhone SDK. For the first time, 3rd-party developers would be able to write native apps for the iPhone.

Open thread at this post

Sometime in late 2008, I saw that game (…and other Apple marketing…), and became convinced that iPhone OS apps were the future of gaming. The difference from the DS was just… night and day. I wanted to play games like that, with smooth high-res graphics and tilt controls!

Open thread at this post

I was 12 or 13 when all this was happening. In early 2009 I was was lucky enough to be able to buy an iPod touch (2nd generation), and of course, Super Monkey Ball was one of the first things I downloaded. It was fantastic! The music on the first levels stuck with me especially.

Open thread at this post

Eventually, of course, the iPhone would prove that it was not the future of gaming. The marketplace evolved into a swamp of cynical cash-grabs…

But I remembered those gems. Gems like Super Monkey Ball! Many years later, I got a new iPhone and could re-download it.

Open thread at this post

But then in 2017, Apple released iOS 11: the first iOS version not to support 32-bit apps.

All those ancient games became unplayable on modern hardware. Nobody could buy them any more, either. Locked away with DRM, they might die with the devices that could still run them.

Open thread at this post

Weird mobile game or not, it was what “Super Monkey Ball” meant to me. Anyway, I wanted to play it again.

But of course, I couldn’t, not without an ancient device, which I didn’t have.

And I thought, oh no, I love this game, but nobody coming after me will have the chance to.

Open thread at this post

…So uh, people familiar with this kind of game preservation problem may be familiar with emulation. But, to my knowledge, there was no way to emulate old iOS games.

…I wondered, well, how hard could it be?

…I opened Ghidra and imported the Super Monkey Ball binary………

Open thread at this post

…and it looked… doable… if at some point in the future I would have a lot of free time, and energy, and Determination.

oh, and my friend happened to have written a dynamic recompiler for ARM binaries which had a super simple API…

…but surely I wouldn’t do this, right.

Open thread at this post

well. i’ve recently had a lot more free time than usual, and…

… I should have taken more breaks and paced myself, but …

touchhle.org

yeah. enjoy!

also, a huge thanks to my friends cassie, erin, puck and mary for help at various points.

https://youtube.com/watch?v=Blz7qJrZ-s8 (video of gameplay — sorry, my instance doesn’t support direct video uploads yet ^^;)

Open thread at this post

I collected, cleaned up and corrected the main posts in this thread, and compiled them into a blog post:

https://hikari.noyu.me/blog/2023-02-06-touchhle-anouncement-thread-tech-games-me-and-passion-projects.html

Please link to that instead of this thread from this point onwards, especially as I might lock this account for a while (I already locked my Twitter… I just need a break.)

Open thread at this post
Christopher Hahn , @ChH1999@mastodon.online
(open profile)

@hikari This is incredible!
I found your project while looking for a way to play the game “Song Summoner” that was a big part of my childhood. I looked into iPod Classic emulation, then loaded the iOS 3 version up in Ghidra with the thought of maybe reimplementing the game. Then I stumbled onto touchHLE and was amazed by the technology and how quickly you got it to work! Even just seeing the first screen of Song Summoners pop up before the emulator crashed got me excited :)
Great work!

Open remote post (opens in a new window)