Thread with 14 posts
jump to expanded postLet 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.
Prior to the launch event, Apple gave a few third-party devs early access to the SDK, to see what they could make in a few weeks. One of those devs was SEGA (or possibly a subcontractor of SEGA), who decided to port Super Monkey Ball from the Nintendo DS:
Amazing demo, right? Despite being based originally on code from the DS game, it was on a completely different planet on every technical level.
A few weeks later, they’d made a finished game: https://youtube.com/watch?v=6hgnrOW5SkA
It was a launch title for the iPhone App Store!
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!
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.
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.
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.
Anyway, fast forward to sometime last year, when I happened to see a trailer for a new Super Monkey Ball game. It had a timeline of all the games in it! Except… oh, the only Super Monkey Ball game I’d played… wasn’t there. That made me upset.
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.
…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………
…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.
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 ^^;)
@hikari thinking about how awesome it would be to go back and play each iteration of Pocket God on this. Will have to find my backups and try it out later.
@ioslife it’s extremely unlikely that game actually works right now, but eventually, maybe.