Now You're Playing with Multiscreen Game Boy Power — 9 of Them!
Early Game Boy screens were well known for being small. They seem even smaller compared to today's portable devices! An aspiring artist and retro gaming hacker, kgsws, created a 9-Screen Game Boy Multiscreen to overcome this size issue!
This multiscreen project started with reverse engineering the Game Boy's LCD protocol. Once kgsws knew how to decode that bus, the next step was to capture the video and reproduce it using an ESP32.
While I2S is better known for interfacing with audio devices like microphones and speakers, kgsws used it for the Game Boy LCD. By looking at the LCD's signals on an oscilloscope, it was clear the ESP32's I2S interface could capture the Game Boy's display data. At first, some games had graphical glitches, which adding an OR-gate to combine the data signal with the horizontal sync solved.
In one demo, kgsws attempts to capture the screen from one Game Boy while wirelessly transmitting the data to another. Unfortunately, the ESP32's limited RAM just could not cut it. So, a Raspberry Pi became the new receiver.
Adding the Raspberry Pi meant the project could go to the next level. In this case, one screen turned into nine! Naturally, one use of these screens would be a clock. But, if arranged in a matrix, they can reproduce a larger display, such as mirroring an actual Game Boy playing a game.
Of course, no hardware project would be complete without demonstrating it running Doom. In this case, DOOM II runs on a PC, not a Game Boy, while using the display matrix as its screen.
This YouTube video walks through kgsws' process of figuring out the protocol, testing with the ESP, and then adding the Raspberry Pi. It is an excellent overview of the project.
All of the code is available in this GitHub Repo. So if you want to build your own, as kgsws says, all you need to do is sacrifice 10 Game Boys.