Pokémon fan recreates classic boardgame Othello within first gen Pokémon game

Image Credit: @i_c_e_i_c_e_ (ア▶イス) on YouTube

Written by. Nick Mosier based on the original Japanese article (original article’s publication date: 2022-02-08 18:28 JST)

A fan has created a working version of the classic boardgame Othello within the first generation Pokémon games, a feat that looks to have required some extremely difficult programming work.

Tweet Translation:
“I made Othello.
*This is Pokémon.”

Pokémon Red and Green first released on the Game Boy in Japan in 1996 and kicked off the long running franchise. And among those of us that played the games back in the day, many likely remember taking advantage of various bugs and glitches to have even more fun.

That is to say, the game contains bugs and behavior not intended by the developers. The Game Boy was also before the days of Nintendo’s handhelds having any kind of online infrastructure or patches, so many players were using bugs to duplicate legendary Pokémon and items, and those bugs remain in the games to this day.

And roughly 26 years later, many players are still researching ways to recreate or utilize bugs. A result of these years of research have even made it possible to implement genuine programs within the game, which leads us to Japanese Twitter user @i_c_e_i_c_e_, a Pokémon bug researcher, creating a playable version of Othello in Pokémon Green.

But how in the world did they create a whole separate game within a game? @i_c_e_i_c_e_ made use of something called Arbitrary Code Execution or ACE for short. By using ACE, players can execute code as they please inside the game itself.

It’s also used in speedrunning. On the speedrun aggregate site Speedrun.com, the Any% No Save Corruption category for first-generation Pokémon games is basically a competition to see how fast one can use ACE to enter the Hall of Fame.

This is the same ACE @i_c_e_i_c_e_ used to put Othello into the game. If you look at the video they uploaded, you can see the game is not only faithful to the rules but looks just like Othello to the point that you wouldn’t even think it’s on a Pokémon cartridge. @i_c_e_i_c_e_ used a later version of Pokémon Green, and in the video, we can see it also running on the Game Boy Advance, another console compatible with Game Boy games.

What’s fascinating is that a binary editor for making programs can also be built within the games. In other words, it’s putting software that can be used for programming into the game itself. In the below video (in Japanese), @i_c_e_i_c_e_ explains how to use ACE to make a binary editor with Pokémon Red and Green. They also mention the work they referenced from other bug researchers and give their names. Bringing Othello to Pokémon was possible in part to the accumulated knowledge of many players.

But just because you’re able to build a binary editor doesn’t make programming Othello with it easy. Binary editors aren’t really suited for building those sorts of things, as they’re a whole different beast than what we would think of as more traditional programming by entering readable lines of code. It’s laborious work manually inputting raw data.

Despite having programming experience, if I (the author of the original article) was told to write a program with a binary editor, I would cry and beg for mercy. According to @i_c_e_i_c_e_, this implementation of Othello uses nearly all 1,119 of the limited bytes available. While the details of how it was made is unknown, they likely had to manually enter a numerical value for each of those 1,119 bytes. A byte can hold between 256 different values, so entering the max number for just one of those bytes would require 255 button presses. Laborious indeed.

According to @i_c_e_i_c_e_’s video, they were inspired by other players previously building games like Tetris and Minesweeper in Pokémon and decided to dive into making Othello. That means there are other valiant souls out there working to build games inside first generation Pokémon games. That players would be enjoying their game in such a way 26 years after release probably isn’t something the developers had in mind. Arbitrary Code Execution holds a lot of potential. It may help give us yet another way to play the first generation of Pokémon.