The UltraJewel64 replaces the plastic jewel on the front of your Nintendo 64 with a 1.69 inch LCD that plays looping animations. It is a Waveshare ESP32-S3 board sitting behind a 3d printed mount, running code I wrote for it.
I built the code, the mount, and the method. Waveshare makes the screen. Both halves you need are on this page, the firmware and the mount.
Download the firmware and source
Download UltraJewel64 / Zelda Jewel v1.3 (ZIP, 2.5 MB)
Inside you get the Arduino IDE 1.8x source, a fully compiled jewel.bin that is ready to flash, and six GIF files that are known to play correctly on the device.
This is free. If it saves you an afternoon and you want to throw something back my way, Ko-fi is the best way to do it, and Patreon is there if you want to follow the builds as they happen. Parts money goes straight back onto the bench. No pressure either way.
What you need
This code is written for exactly one board, the Waveshare ESP32-S3-LCD-1.69. It is not meant for anything else and it will not work on anything else without changes.
If you are comfortable with ESP32 development you can compile the source yourself. Everybody else should just use jewel.bin. That is why it is in there.
Install the USB drivers first
Install BOTH of these. The USB chip varies between boards and you will not know which one you have until you plug it in.
You may need to reboot after installing them.
Programming mode
You may need to put the board into programming mode before it will accept a flash. Hold BOOT and press RESET. With the screen facing you and the USB port at the bottom, that means hold the middle button and press the rightmost button.
Flashing, the easy way
If you would rather watch than read, here is the whole thing on video.
- Extract jewel.bin from the ZIP.
- Go to esptool.spacehuhn.com.
- Click Connect.
- Remove three of the four entries with the red trash can, leaving one.
- Put the number 0 in that remaining entry.
- Click Select and choose jewel.bin.
- Click the green Program button at the bottom.
Flashing, the hard way
Grab the Espressif esptool and extract it. Put jewel.bin in the same folder as esptool.exe.
You need your COM port number, and it is different on every PC. Yours might be COM3, it might be COM28. The easiest place to find it on Windows 10 and 11 is Control Panel > Hardware and Sound > Devices and Printers.
Open an administrative command prompt. Click Start, type cmd, right click the top result and choose Run as administrator. Navigate to your esptool folder, then run something like this with your own COM port swapped in:
esptool.exe --chip esp32s3 --port com18 --baud 921600 write_flash 0x0 jewel.bin
Flashing takes up to five minutes. Be patient and let it finish.
First boot takes a while, do not unplug it
Disconnect the device from USB power, then reconnect it. Text will come up on the screen saying it is Formatting. Give it five or six minutes to format the flash and set itself up. This only happens once.
Loading your own GIFs
Once it is done you will see a WiFi access point named Zelda64Jewel. The password is triforce. Connect to it, open a browser and go to 192.168.4.1, and you get a web interface where you can upload GIF files.
A few things about the GIFs, because the animation engine is picky:
- 280 wide by 240 tall or smaller.
- Under 1 MB. Bigger than that and it starts to struggle.
- It will turn down GIFs for reasons that are not always obvious. That is why I included six known-good ones in the ZIP. Start with those, then experiment.
The 3d printed mount
The screen does not just drop into the jewel opening. This is the mount I designed to hold it in there, and it is the part that makes the mod look finished instead of hacked in. Same one you see in the video.
Download the N64 screen mount V2 (STL in a ZIP, 14 KB)
Unzip it and you have N64-V2.stl, ready to slice. It is zipped because WordPress will not host a bare STL file.
Print it at 100% infill. It is VERY thin and it needs every bit of strength it can get.
I worked VERY hard on this mount and on every other part of this mod. The STL is for you and your own console. Please do not share the file around, do not print copies for other people, and do not re-sell it in either digital or physical form. If somebody else wants one, send them to this page and they can grab it the same way you did.
Powering it inside the console
On the wiring harness, the current version uses the grey and purple wires. Purple is ground, grey is +5v. The plugs on the end are female DuPont connectors, and you can find the male counterparts on Amazon for a couple of dollars.
The usual caveats
All of this is supplied as-is. There is no warranty, no support queue, and no promise of updates. I built it for my own console and it works on mine.
The firmware and the source are yours to use and change for your own build. Please do not sell them or repost the files as your own. The mount STL is stricter than that, see above. Either way, if you want to share this with somebody, link them back to this page instead of passing the files around.
Rob streams live repairs and builds every Tuesday and Saturday at 7pm Eastern on Twitch. His current series is Shelf Life, pulling broken hardware off a ten-year shelf and not stopping until he knows why it died. Premieres September 12, 2026.
