Emulators have always felt fascinating to me, and while trying to find ways to learn about them, I chanced upon BytePusher – an esolang by Javamannen. Let’s talk a bit about the Bytepusher emulator I built.
What’s Bytepusher?
tl;dr – Bytepusher is a specification for a single instruction set computer with a limited input, 2D graphics and audio.
It has one instruction, and runs like a champ.
Emulator firsts
Well, its a virtual machine to be honest, but I assume there’s enough in the specification to make it a complete phyiscal machine.
This was one of my first works in Rust, and it has a single thread system that processes the instruction, then goes to render the graphics and audio.
One of the trickier things is that the audio queue should be as small as possible, but yet can’t be empty. If empty, you have stutters, or otherwise, you have high latency. For now, I synchronise with the audio queue to maintain an expected speed of execution.
What does it look like?



We get audio, input output and graphics!
Check out the work here! I apologise but I only have linux builds available, executables from the other platform can be built from source.