Small64

Small 64 is a homebrew demo released on 20 April 2025 by Rasky, HailToDodongo, Phire and Pestis. It’s an N64 demo which is notable for how small it is, clocking in at only 4KB. It was one of three N64 demos released in Revision 2025.

You can download it from its download page by using the password sosmall. You can also get it from its releases page on github, where you can find the source code as well.

About Small64

Homebrew demos are all about pushing the limits of what limited hardware can do in a small, compact package, and you can’t realistically get any smaller than a 4 kilobyte ROM. That’s about the size of a standard Atari 2600 game.

That’s what the team over at 64brew set out to do – Make a full N64 ROM fit in just 4096 bytes.

The demo itself starts out with some static before showing some text:

Small a 4k on n64

Then there are some overlapping semi-transparent polygons forming a moving background. On this background appears a rotating torus, which later has its faces spread apart and joined together again.

It’s fairly simple, but that’s kind of the point.

How it works

The focus of Small64 is on its tiny size, so let’s go through some of the methods used to make it as small as possible.

For starters, the whole ROM is highly compressed using upkr. This means that everything from the .bss (the zero-initialized section) to the demo code is expanded at boot. Furthermore, another tool called swizzle is used to permute the order in which the linker’s sections appear, to place more compressable sections together.

The N64 boot ROM (IPL1/2) checks a hash of the IPL3 boot code. To pass this, Small64 tweaks unused bits of code/data until the hash matches the expected value. Small64 skips the IPL3 calibration routine (timing + RDRAM refresh), using static values known to work on most consoles, which removes a chunk of setup code.

The RSP normally does full 3D transforms, but Small64 drops proper perspective correction, skips clipping by letting triangles overflow and uses random garbage as a texture for a ‘metallic look’.

For audio, they reduced the number of channels to only 4, removed effects like reverb and delay, and they limited instruments to just chiptune waves.

There’s a lot more nuance to it, so I recommend that you have a look at the full readme in the github page

Credits

The code in Small64 was done by Rasky, HailToDodongo and Phire. Music by Pestis.

Review and Conclusion

At first glance, Small64 doesn’t look like much, it could be mistaken for a demo from 1997’s homebrew scene. But the real magic lies under the hood: the way it was built is where it really stands out.

The 4K challenge is a classic in demoscene culture, but that is typically limited to older hardware like the Amiga, not something more powerful like the Nintendo 64. Most of the code is very low-level and definitely above my pay grade, but you’re free to peruse it at you leisure through the link at the top of this page.

I’m always interested in seeing how the N64 hardware can be pushed to its limits, but I never expected it to be so minute. Give Small64 a gander, even if it is to just see its filesize in your file browser.

Articles across the web

Small 64 is a homebrew demo for the N64 by Rasky, HailToDodongo, Phire and Pestis which tries to fit a whole demo in only 4096 bytes.
Article published on N64 Squid
Name:
Small64
Alt name:
Small 64
Download:
Download
Release date:
Last updated:
11 May 2025
Players:
1
Type:
Demo
Genre:
3D Model, Visual effect
ROM/patch size:
0.004 MB

Search

Subscribe to the mailing list

Random posts

Leave a Reply

Your Name (required)

Your Email (required)

Website

Your Message