I was explaining my demoscene “heyday” activity to someone and thought that what I wrote might be interesting to about four people. Four qualifies as a blog post, plus I’ve been neglecting the blog because I’ve been completely decimated by my day job. So here we go.
My demoscene background was always the PC. I did some cracktro programming — badly — in the late 1980s, but the American cracking scene didn’t have a concept of cracktros->demos until roughly 1992 (hi Tony!). I officially discovered the demoscene proper with The Space Pigs Megademo in late 1990. (The page has a demoscene.tv link to the video I did of it for MindCandy volume 1 (although the video is out of sync; it’s perfect on the DVD itself). I had seen other demos before, like ATOM by Sourcerers but I had never been exposed to the concept of an underground scene dedicated to demos until I saw Megademo/TSP.
My demo productions were all PC, targeted to a 386-40MHz, with later prods targeted to a Pentium. I coded in Turbo Pascal with inline assembler for parts that needed optimization. I learned a lot about how VGA could be tweaked to display more than 256 colors, or higher resolution, or both. (Or lower resolution. I’m particularly proud of figuring out a true chunky 160×100 mode that works on stock VGA.)
In recent years, I’ve been coding for fun on even slower hardware than I started with, like the original 4.77MHz IBM PC from 1981, and also the PCjr/Tandy to take advantage of their 16-color graphics and 3-voice sound. This slide backwards is intentional, because it’s more of a challenge, and challenges are fun. I enter these little experiments into North American demo competitions (there are actually two this year, a record! Block Party in Cleveland in April and at-party near Boston in June) and have even won 1st, 2nd, or 3rd place for everything I’ve ever entered, but I don’t do it for prizes or placement; I do it for these reasons:
- To relax (yes, programming can be relaxing)
- The excitement of manifesting something you saw in your head into reality using the computer as a tool
- Most important: To make my demoscene friends laugh
For me, the demoscene was always about getting computers to things they weren’t typically designed to do, through clever programming and techniques. (For example, realtime 3-D graphics on old 8-bit machines still amaze me, simply because those old machines weren’t just slow, they also lacked the ability to do floating-point math — they couldn’t even multiply or divide!) Presentation, creativity, and flair helped. Don’t get me wrong; I liked the art and tracked music too. Especially the music.
As the demoscene moved to Windows, I saw the use of 3-d accelerators as “cheating” and didn’t move my skills or desire to Windows. Unfortunately for me, I have since learned that there are still ways to push the envelope in Windows for that same kind of “that should be impossible, how are you doing that?” thrill. 64k and 4k intros are one obvious area; others include complex techniques like ambient occlusion, shading via radiosity, complex geometry transformation, figuring out how to get the graphics card to offload as much as possible, etc. But even if I had known that then, I’m not sure I would have learned windows programming anyway, since my life was getting more complex (in 1997, I had been married for three years and just had a baby). Real Life(tm) tends to get in the way. I only got back into democoding, going to demo compos, getting back in touch with the scene, etc. in 2004 when taking care of the kids wasn’t as difficult.
Someday I hope to go out with a bang, a magnum opus that does 3d on an IBM with an 8088 and maybe some hardware/tweak effects. I was really hoping to do it at Breakpoint, the party I have worshipped since its inception eight years ago, but alas, this is their last year and I cannot go. Even if I were suddenly flush with cash and quit my day job to work on a demo for 14 hours a day, 7 days a week for three weeks, I still wouldn’t be ready. And there’s no way I’d go to Breakpoint without a prod to show.
As hard as it is to do decent demos (with or without 3-d) on a c64, it’s even harder on an 8088 PC with CGA for several reasons:
- Memory on 8088 is four times as slow as C64
- Graphics are bitmapped only and graphics memory is even slower due to a necessary wait state
- Even if you wanted to cheat and use character/tile-based “graphics”, the font is not redefinable
The only thing that makes democoding on an 8088 PC interesting is a real MUL and DIV (although they’re slow so you have to weigh the tradeoffs) and access to eight times the memory of a C64. I’ve toyed with the idea of writing a JIT that could use the extra memory to speed up screen display… One can dream.
I’ll be at both NA parties mentioned above, probably with some very old hardware, older effects, and even older person at the keyboard. Feel free to say hi.