Browsed by
Category: Programming

Programming 90’s demoscene effects

Programming 90’s demoscene effects


NCOT Technology has a number of retro-programming videos. Bonus points for using old school DOS Borland C++ to compile the examples.

This gives you an idea of how things were done, but the reality is that demo scene code was a LOT more complex – full of inline assembly, crazy lookup tables, direct framebuffer manipulation, and every programming and hardware trick known to man. You had to be a wizard of not only coding – but expert at tricking the hardware to do what you wanted too.

Putting spell check in 64k of RAM

Putting spell check in 64k of RAM

Abhinav Upadhyay walks us through a wonderful bit of computer history. He talks about how Steve Johnson at AT&T wrote one of the first spell checkers. His method could encode a word in just 14 bits of memory; so a dictionary with 30,000 entries would take up a fraction under 52 kB. This is even better compression than gzip – and it can perform fast lookups.

Once the dictionary grew to 30,000 words, the Bloom filter approach became impractical. Douglas McIlroy’s solution was to store differences between sorted hash codes , after discovering these differences followed a geometric distribution. These followed a distribution that could be easily run length encoded with something called Golomb’s code.

It’s a fantastic examination of applied computer science. Definitely worth a read

Articles:

What the demo Scene teaches us

What the demo Scene teaches us

Plastic 195/95 is a 20mb demo made by a demo team on their picoEngine v2.1b in 2009

Not to be outdone, RGBA 195/95 is the same demo – done in 64k

These were shared in a presentation on lessons learned from Demo Scene coding:

Re-creating PS1 graphics with modern hardware

Re-creating PS1 graphics with modern hardware

Acerola has a bunch of great graphics videos. In this one, he talks about why PS1 graphics looked the way it did.

I learned that PS1 actually had realtime camera distance tessellation – something that wasn’t available to desktop GPUs until the introduction of tessellation shaders.