Doomagotchi
I heard the girlies are all making cyber decks, so I decided it was finally time to build my dream project — a Tamagotchi that runs Doom. After doing some research it became clear to me that a Tamagotchi cannot in fact run Doom, so I decided to fake it.
Other than modding a couple of gameboys, I have never done a hardware project before. I had seen a couple of DIY Tamagotchi projects (check out this one from heychaostheory) and a mini Doom from Adafruit, so my idea was to combine the two.
This project took me about a month of consistent work, and I’ll spare the details of what I tried that didn’t work. Here are the parts I ended up with :
- 1.54 inch Full Color TFT Display Module
- ESP32-S3-DevkitC-1 board
- Adafruit MicrosSD Card Breakout board (ADA254)
- MicroCenter 16GB SD card with doom1.wad
- 3.7V 500mAH Lipo Battery
- 3.3V Low Ripple DC Boost Board (XL63070)
- Tamagotchi Paradise Clear Case
- Xbox controller
- Two sided perf boards
- Silicon wires
- Solder/Soldering iron
I also got a multimeter and a breadboard starter kit, and I began the entire project by prototyping it on breadboards, knowing I would eventually shrink it down to either perf boards or potentially even ordering a customer PCB. Note that there is no speaker/audio in this build. It could be a fun thing to add later, but I was running out of physical space.
Get Zhila’s stories in your inbox
Join Medium for free to get updates from this writer.
For the software, I referred to the Adafruit blog and used the Retro-Go library with Pr-boom-go for running Doom. The repo with the original source code is here, but I had to make some modifications to solve various issues I was having with my particular setup. Once I realized that playing Doom will require way too many buttons (or a joystick), I decided that I wanted to stay true to the original Tamagotchi 3-button design and went on a side quest to integrate Bluetooth, so I could play with a controller. This turned out to be a huge challenge, but I emerged from the depths of CMake hell two weeks later, with Bluetooth working with Retro-Go, thanks for the Bluepad32 library. I initially kept buttons for start, select, and menu, but ended up ditching them in the final build because there was no space and the wires were getting out of control.
Once everything was working on breadboards, it was time to shrink them down as much as possible. I moved to perf boards, and I initially had used sockets for holding all of the components but they were taking up too much space, so I had to switch to soldering the components directly into the perf boards. I also considered 3D printing a shell, but after a few failed attempts with scaling existing models and lack of desire to learn Fusion, I ordered a Tamagotchi Paradise case and jammed everything inside of it. I am a huge fan of the clear tech aesthetic of Y2K, so I was very pleased with how this ended up looking. If I were more artistic, a Doom helmet shell would also be very cool.
I learned a ton about microcontrollers and electronics by doing this project. I did a lot of planning and debugging with ChatGPT and Gemini, and purposely relied on LLMs only for guidance instead of using an agent to do the entire implementation for me. There were a couple of times where I lost several days of work due bad advice from ChatGPT, but overall having an LLM to guide me was helpful, given I had nearly zero experience with this kind of project. I really enjoyed the entire process and am hooked. What should I build next?










