New 256 byte demo
I desperately miss the demoscene. Towards the end of the 1990s when personal computers got powerful enough to do, well, just about anything, I started turning my interests elsewhere. It’s still alive, though, and picking up some amazing coders. The latest jaw-dropping demo to be released is a 256 byte demo from Řrřola, a coder in the Czech Republic. Here’s the Youtube version of it for those of you that don’t have DOS installed:
This is one of the most technically impressive demos I’ve ever seen in my life. What he’s done should be flat-out impossible to do in 256 bytes. As a reddit comment pointed out, taking a single screenshot of the demo in action will yield a file 96 times larger than the demo itself. A simple “hello world!” written in SPARC assembly, as taught by our university, is over 2.6 times as large than this demo (2.59 times as large if you’re clever about filling delay slots). Hell it takes over 1/20 the size of this demo just to represent the string “hello world!”. From an information theory it boggles the mind that that video can effectively be compressed down to 256 bytes.
Anyway, if all of this weren’t exciting enough, it gets even more exciting due to the fact that he’s released the source code. More exciting still is the fact that the comments are written in (very clear) English instead of Czech. I don’t think it will be possible for me to resist figuring out how he did this. Parts like this:
push 09FCEh ;<aligns with the screenpop es mov bh,56h ; xyz addressing trick from neon_station ; vecNN = (words){[5600h+N] [5656h+N] [56ACh+N]} ;frame loop - prepare constants ;ax=key bx=5600h bp=dx=0 cx=3 si=100h di=-2 sp=-4 word[5700h]=T
are going to have me stumped for a long while, I think, but I’m pretty psyched about it. Taking a quick 5-minute pass through the source code I understand a surprisingly large amount of it, just not the parts that really count. Tracing through it sort of brings me back to my demoscene days, except now I have the luxury of going through source code instead of trying to deal with DOS Debug. One of my first thoughts reading through this was “he’s using floating point instructions? That’s so cheating. Who has the money for a math co-processor‽”