Happy 10th Birthday GBA4iOS!

- 9 mins

10 years ago today, I released GBA4iOS — a passion project my friend Paul Thorsen and I built during our senior year of high school. I’ve reflected many times over the impact GBA4iOS had on my life (many, many, times), but for the 10th anniversary I wanted to try something different.

The number one question I’ve been asked, by far, over the past decade is: “why don’t you just build an app that’s allowed in the App Store?”. I’ve tried to answer this many different ways…but honestly, you just had to be there. So today I’m going to try and literally put you in my shoes, so you can experience first-hand why I became so obsessed with this idea.

2011

You‘re a sophomore in high school. The iPhone 4s is bringing AI mainstream with its “Siri” assistant, and while it wasn’t uncommon to see students with iPhones, the majority were still rocking flip phones.

You’ve been developing an iPhone camera app for the past year, and you can’t help but dream someday it’ll be a huge success. Then one day your friend comes to school and shows everyone his jailbroken iPhone — and the best part about it was that it could play Pokemon 🤯

You’re incredibly jealous; Pokemon is your favorite game series of all time! Yet despite also having an iPhone, you don’t want to jailbreak. So what do you do? You put Pokemon Red on your TI-84 calculator of course! And it almost scratches the itch…but there’s something about playing Pokemon on a calculator that breaks the illusion.

So you keep waiting.

2012

You’re a junior now, and the iPhone 5 is all the rage with its giant new 4” display. You’re browsing GitHub for interesting open source iOS projects when one catches your eye: “gpSPhone — Game Boy Advance emulator for jailbroken iPhones.” You can’t believe it, this is the exact emulator your friend was using!

You wonder if it’d be possible to modify the project to run on non-jailbroken devices, but to your dismay Xcode reports “999+“ compiler errors and you almost give up then. However, the determination to replay your favorite Pokemon game — Pokemon Emerald — is too strong, so you take a deep breath and chug away. Just a couple months later you have your breakthrough — you successfully emulate Pokemon Emerald on a non-jailbroken iPhone for the first time 🥳

You quickly clean up the codebase, and the next day you excitedly bring your laptop to school so you can install your Frankenstein app onto your friends’ phones. Soon your whole friend group is playing Pokemon, and you even start battling each other during lunch! You decide since it’s a hit with your friends, you might as well upload the code to GitHub for other developers to play with. So you give the app a proper name — GBA4iOS, inspired by other iPhone emulators like “snes4iphone” — and upload the project to a new repo.

Then you go back to playing Pokemon with your friends.

2013

It’s the summer before senior year. Apple has just announced a completely redesigned iOS 7, and “skeuomorphism” is quickly becoming a dirty word.

Seemingly out of nowhere, your Twitter grows from around 200 followers to more than 1000 a week later, and your mentions become flooded with questions about emulating Game Boy games. Apparently, someone had made a tool to install open-source iOS apps by signing them with an “enterprise certificate”, and people were using this tool to “sideload” GBA4iOS. Even wilder, this process worked even if the enterprise certificate was expired, as long as you set your date back at least 24 hours (a process that became known as the “date trick”).

You immediately realize the potential — for the first time ever there seemed to be a way to distribute emulators on iOS without jailbreaking! So you decide to rewrite GBA4iOS from the ground-up and make it a truly polished experience. You mention these thoughts to your best friend Paul, and he wants to be a part of it too. His design skills are much better than yours, so he tells you bluntly your app is ugly and that you need him. You can’t disagree with him, so you bring him on and and you both get to work building “GBA4iOS 2.0”.

You make good progress that summer, and once senior year starts you continue to spend almost all your free time working together. You don’t know how long it will take, but the dream of “officially” releasing an emulator for iPhone is all you need to stay motivated.

2014

February 19 — Launch Day

You’re now a senior, and biometric security is the hot new thing thanks to the iPhone 5s and “Touch ID.” By now, the majority of students are “blue bubbles”; fueled heavily by Apple introducing iMessage a few years prior.

You arrive at school at 9am like normal, except today you’re wearing your custom-made GBA4iOS T-shirt. 5 days earlier you had updated the GBA4iOS website with a countdown, and it’s set to finish today at 2:45pm CST — coinciding with the film class period you and Paul share (and also where a significant amount of GBA4iOS development took place). You’d somehow managed to convince your film teacher to let you throw a launch party that day to celebrate…as long as you filmed it and made a short documentary about GBA4iOS for your next class project (which you did).

The day goes by incredibly slowly, and you can barely focus on class. When the bell finally rings for film period, you put the GBA4iOS website + countdown on the projector and hand out pizzas you’d ordered to the classroom’s backdoor. With just a few minutes left, you upload the final GBA4iOS build to the server, then stand back and finally soak in what’s happening. Almost 9 months of hard work had let to this moment, and you can barely contain your nervousness.

30 seconds left, you remember your promise and pull out your iPhone 5s to film the final moments. At this point, there’s only one thought in your head: will this actually work?

Spoiler alert: it does — against all odds you successfully release a Game Boy Advance emulator for iPhone!

October 7 — My Birthday

You’ve graduated high school, and the iPhone 6 Plus is blowing everyone’s minds with how big it is. You’re taking a semester off before college, which conveniently gives you time to focus on developing GBA4iOS. The past several months are a blur, but the response to GBA4iOS has been far better than you could have ever imagined; they even wrote about you in Time Magazine!

You’re hard at work on version 2.1 when you see a headline you’ve been dreading since launching GBA4iOS 8 months prior: “iOS 8.1 blocks ‘date trick’ loophole that allows emulators on iPhone and iPad“. You’re not surprised…but it’s hard to contain the disappointment you feel. For a brief, glorious, few months, you had experienced what it was like to make an app that was used by millions — despite it being one that by all accounts “shouldn’t exist”. You knew you were living on borrowed time, but it just felt wrong that an app this popular can never exist on iOS.

But it’s not like you can do anything about it. You’re just one person, and you’re about to enter college anyway, so you decide it’s time to move on. You announce GBA4iOS is officially dead, then prepare to go to college.

2015

You‘re a freshman in college, and you‘re really feeling the itch to have a passion project again. Apple just announced a brand new programming language called Swift, and you figure you might as well start learning it now before you get left behind in Objective-C land.

You try to think of a new idea that excites you, and since this is just for fun, you decide to push yourself and make an all-in-one Nintendo emulator — entirely written in Swift — because why not? You sit down, and the first thing Xcode asks is for a name. You pause for a moment, then to your surprise come up with a name faster than any app you’ve made before: Delta.

A few months later you attend your first ever WWDC. You sign up for everything to ensure you make the most of it — including the App Review lab, because what’s the harm in asking about Delta? And you‘re very glad you did, because to your amazement they tell you Delta actually could be approved as long as you were willing to jump through some minor hurdles (such as providing “allowlist” of approved games). You enthusiastically agree to whatever hurdles, because you’ll do anything to distribute Delta through the App Store.

Almost 3 years after starting work on GBA4iOS, your dream was finally coming true: 2015 was going to be the year you officially release an emulator for iPhone 🙏

2024

You’re self-employed and still making apps, and your 10 year high school reunion is coming up. There isn’t too much new with iPhones anymore, but at least lightning is finally gone and replaced with USB-C!

It’s been 10 years since you released GBA4iOS, and almost 15 since you started down this rabbit hole. The European Union has recently passed legislation that will force Apple to allow alternative “app marketplaces”, all but guaranteeing a pathway to distribute Delta. You don’t want to jinx yourself because you’ve been burned many times before, but you can’t help but feel that this year is finally, actually, the year you’ve been waiting over a decade for:

This is the year emulators come to iPhone.

Riley Testut

Riley Testut

Independent iOS developer, USC student, and Apple fan.

comments powered by Disqus
rss facebook twitter github youtube mail spotify lastfm instagram linkedin google google-plus pinterest medium vimeo stackoverflow reddit quora quora