Oldskooler Ramblings

the unlikely child born of the home computer wars

A box of nostalgia

Posted by Trixter on April 21, 2010

When I was three years old, my parents moved to the house they would spend the next 36 years in, which was not coincidentally the house I spent my youth and teen years in (minus a stint in New Jersey from age 6 to 11).  For almost two decades I have not lived in that house, but during a recent visit I was told I still had a box of stuff to take away.  It took a few minutes, but I found this mythical box of memories and took it home.

For those who are curious what a slice of the mid 1980s looks like, this box of my crap contained, in no particular order:

  • A Rolf muppet doll that I got for Christmas 1978
  • A folder of my entire 8th grade English assignments (Steve Littel, for those who attended Washburne Junior High and are keeping score), some handwritten in cursive and some typed on a typewriter, but most  printed in 9-pin dot matrix.  The standout?  An analysis of Lorraine Hansberry’s “A Raisin In The Sun”, critiquing how Mama both was and was not a constructive influence on the family.  I was thirteen.  (I only got a 78% on that paper, but it begs the question:  Is it better to get straight “A”s in a normal English class, or mediocre grades in an advanced class?)
  • Three Bloom County anthology books
  • My eight-grade Washburne Junior High yearbook of 1985, complete with lots of signed notes for me to “keep practicing my nerd powers” and “keep on breaking” (breakdancing).
  • The supplement “10 Starter Programs from Family Computing” by Joey Latimer.  (I learned about a decade ago that nearly every single BASIC program ever to appear in Family Computing was written by Latimer — and that his primary hobby was music, not programming.)  All programs were written in Applesoft BASIC with additional pages translating them to the built-in BASICs for Atari, C64 and VIC-20, TI 99/4a, Timex Sinclair 1000, and TRS-80.  I guess IBM owners were out of luck.
  • An Atari 2600 Star Raiders cartridge
  • Mattel Electronics Basketball (with missing battery cover, of course)
  • King’s Quest II hint book, with every single “invisiclue” answer visible.  The fun part?  I only uncovered a few answers back then.  So I guess we know what happens to invisiclues if you never make them visible:  They fade to visibility after a few decades.

The only downside to this onrush of nostalgia is that I have Paul McCartney’s “Spies Like Us” song running around in my head, as it was one memory dredged up during the process.  Spies Like Us is not only the worst song McCartney has ever written or performed, it is probably the worst song of 1986.  And that was a year that graced us with Eddie Murphy’s “Party All The Time”, Dream Academy’s “Life in a Northern Town”, and Sly Fox’s “Let’s Go All The Way”.

Once I get something stuck in my head, it can last for a few days or a few weeks.  Heaven help me if I get Lady Gaga stuck in my head again; I was fighting the urge to dive for a gun after only a few minutes.  Imagine three weeks of that shit.

Posted in Entertainment, Family, Vintage Computing | 7 Comments »

Pharmacokinetics

Posted by Trixter on April 16, 2010

Signs that it might be time to look into fluoxetine or suitable derivative:

  • You spend hours playing Monopoly Party (xbox) until you can beat it with all AI players set to maximum difficulty
  • Food no longer tastes good
  • You consume an entire box of ho-hos in one day (see previous note)
  • You lack the drive to work on hobbies
  • You lack the drive to work on anything
  • You hit “refresh” on your empty RSS feed aggregator with the frequency of a lab rat requesting a pellet
  • The Sugarcubes  keep coming into rotation on your ipod shuffle

And yet I fear I may lose the ability to hyperfocus, which is one of my primary advantages over those around me.  One might say it’s my only (un)fair advantage.

Damn good thing I don’t like alcohol.  And that a three-day weekend is coming up.

Posted in Uncategorized | 4 Comments »

It’s been a long time

Posted by Trixter on March 21, 2010

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:

  1. To relax (yes, programming can be relaxing)
  2. The excitement of manifesting something you saw in your head into reality using the computer as a tool
  3. 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.

Posted in Demoscene, MindCandy, Programming, Uncategorized, Vintage Computing | 2 Comments »

Attempt #4

Posted by Trixter on February 1, 2010

Despite what I wrote earlier, I decided to give it another go during a period of depression (you’ve been warned).

Attempt #4

Title: I Remember Howard, Cuesheet (with track breaks and CD-TEXT info)

People tell me this is Progressive Trance. I’m not sure any more. All I know is that this music reflects how I feel when I’m at rest. Wistfully hopeful (if one can make an adverb of wistful).

It’s beatmixed, and I tried to group things harmonically. Transitions in the middle are weaker than the ends, but at least it starts and ends strong.  I tried a different beatmixing approach in this one; earlier attempts adjusted BPM during the transitions, which was noticeable, and later mixes forced everything to the same BPM, which affected some music adversely. I decided this time around to very very slowly adjust the BPM throughout the entire mix, sometimes over several minutes, between 128 and 135. The goal was for the listener to not notice BPM differences if they listen to it all the way through.

Posted in Entertainment, Uncategorized | 5 Comments »

If you focus your energy like a laser, you can do anything!

Posted by Trixter on December 13, 2009

It has taken me decades to understand my own behavior.  Saving you the lengthy self-analysis, I can sum up most of my actions as a reaction to negative stimuli.  No control over my social environment?  Learn to program computers, who always do what I say.  Can’t afford games?  Get a job at the local software store, then learn to crack and courier warez.  And so on.  Most of my hobbies can be traced to events like this.

So what happens when the negative stimulus is gone?  It depends on the hobby.  I don’t pirate (new) games; like movies, I can now afford to purchase or rent them.  I’ve stopped collecting hardware and software because I no longer have a need for the comfort and security that familiar things bring.  As I get older, I find I am finally able to let go of everything that gave me short-term benefits but led to longer-term detriment (collecting software is easy; collecting hardware takes up a ton of space!)

Finally, some of my championed causes have come to fruition and matured:  MobyGames remains the only organized, normalized database of computer and videogames, run by many volunteers.  MindCandy 1 and 2 have taken a small slice of hidden skill and wit and preserved it forever.  DOSBOX exists, and does a (nearly) fantastic job of making DOS games playable, and my efforts combined with others have gotten the games out there.  I’ve made some of my friends laugh with my programming ideas.  That’s a lot of personal accomplishment for someone who has to put family first and work first, and I’m happy thus far.

So.  The time has arrived to shore up and buttress the hobbies.  Here’s the Trixter 5-year pledge, to me as much as to you, in order of project start date:

  1. Finish up MindCandy 3.  Four hours of home theater showcase material on tasty Blu-ray (DVD too).  It’s 80% done and should be ready by March or April.
  2. Complete The Oldskool PC Benchmark, a project I’ve been tossing around for a while.  I’m unhappy that no PC emulator is cycle-exact for any model, not even known fixed targets like the 5150/5160, so this benchmark should help emulator authors get that taken care of.  It will maintain a database of systems that have been tested, so that users and authors of emulators can target a specific model to run programs in.  As each system I own is benchmarked, it will be donated back into the collector community, save for a handful of machines that I need for further development work (see below).
  3. Gutting and rewriting MONOTONE.  Adding features people actually need (like volume and frequency envelopes, or an interface that doesn’t suck ass) as well as a few only I need, like flexible hardware routing.  Remember, kids: You’re never going to wow the pants off of people unless you can drive seven(*) completely different soundcard technologies all at the same time.
  4. Bootable diskette PCjr demo, using the PCjr’s enhanced graphics and sound.  Hopefully presented at a euro party.  You best step aside, son.
  5. Build the Soundcard Museum, another project I’ve been tossing around for quite a while.  (Now you see why MONOTONE enhancements came before this.)  This will take up many months of free time, but I promise it will be worth it for the soundcard otaku.
  6. …and that’s it.  I have nothing else planned.  If they’ll have me, I’ll return to working at MobyGames, with maybe another MindCandy project in the works, if the project doesn’t run out of money.

And between all of these projects, I will play longform games that I’ve been meaning to get to (Mass Effect, Red Faction: Guerrilla, Fallout 3, etc.).  Because I’m good enough, I’m smart enough, and doggone it, people like me.

A keyboard exclusively for programming in binary

Air-cooled coding keyboard for professional use

(*) It is technically possible to put a Sound Blaster 1.0/1.5 (CMS+Adlib), Bank Street Music Writer card (essentially a PC Mockingboard), LAPC-1, IBM Music Feature Card, and SCC-1 into a Tandy 1000-series computer if you take the cover and metal frontplate off to allow room for the full-length cards and configure the LAPC-1 and SCC-1 so that they don’t share the same port and IRQ.   That’s six technologies — the seventh is the Tandy 1000 itself, with its SN76496 3-voice squawker.  If I had a 5161 expansion unit for the 5160, I could become more evil — it adds 7 additional ISA slots to the 7 already in the 5160.  I’d lose the 3-voice Tandy, but the additional slots would allow for adding up to three more IBM Music feature cards and an additional Sound Blaster Pro 2.0, and maybe even an additional SCC-1 (I’d have to check what settings it supports).  But I don’t have a 5161; they’re ludicrously difficult to find complete.  And besides, once you have two SCC-1s in a machine, what is the point of driving anything else?

Posted in Demoscene, Digital Video, Gaming, Lifehacks, MindCandy, MobyGames, Programming, Vintage Computing | 11 Comments »

Chapter Three, In Which He Went Anyway

Posted by Trixter on November 28, 2009

A great reason to go to a reunion is to catch up with old friends and see how everyone is doing.  A bad reason would be to despair over missing a once-in-a-lifetime opportunity for the sole reason it comes along once in a lifetime.  I went to my high school reunion for the latter reason, and lack the words to express how overjoyed I was that it led to the former.

I love the phrase “time heals all wounds”, despite how hackneyed and worn it is.  It represents what I keep forgetting:  The older everyone gets, the more level the playing field gets.  There are people I have met in my professional career that would have never given me a second thought in high school (think “computer nerd meet-cutes head cheerleader”), and every time we interact, my inner nerd simply cannot get over the fact that we are interacting.  It never ceases to amaze me how normally everyone can get along despite dissimilar backgrounds.

There were a few snags; my cell phone broke this afternoon so I had nothing to take pictures with, and there were two people from the high school radio station that I started to talk to but couldn’t because my ears were shot and I just couldn’t understand them.  But those were secondary concerns compared to the best discovery of the evening: Viewing myself through other people’s eyes.  We imagine the worst for ourselves, about ourselves, and yet the simplest things can completely turn your entire perspective on life around when you hear things like:

“I wanted to tell you how much your writing influenced me and shaped my own writing.”  (It did?)

“I found people to talk to here tonight, and I wasn’t a part of anywhere near the number of clubs and organizations you were in.”  (I was?)

“I just wanted to let you know how much I admired your character.”  (My what?)

“You need to come over next time [we have a party]; you’d really get along with all the people who come.”  (I would?)

I still find it somewhat hard to believe.  But I’m starting to.

It’s humbling, and wonderful.

Posted in Sociology, Uncategorized | 7 Comments »

Hello Again Everybody

Posted by Trixter on November 15, 2009

Exactly one year ago, I attempted to change my entire life to get ready for my 20th-year New Trier Class of ’89 high school reunion.  Brought on by conflicting emotions of wanting to be accepted and faint memories of truly good times, my head was swimming in thoughts like:

“I’m at a good place in my life right now, so I wouldn’t feel ashamed to attend.”

“Some of my old friends will be there, and it will be great to catch up.”

“Hey, I still have all my hair and none of it is gray; maybe if I lose a few pounds I can look closer to how people remember me.”

I can already sense what you’re thinking, and you’re right, but I went ahead with the plan anyway.  I joined Weight Watchers, and worked up the courage to look for a new job that would advance my career while being rewarding at the same time.  Lost 30 pounds.  Got the new job.  Mission accomplished.  Well, the reunion is right around the corner — and I will not be attending.  Why?

While I have some genuinely fond memories of both high school and the friends I met there, it became increasingly clear towards the end (this is the obvious part) that, 20 years later, I was still chasing feelings of inadequacy.  New Trier was (and might still be) one of the most competitive public schools in America, with more than 80% of students scoring well above the national average during the time I went there.   (The top 1/4th of my class had a weighted GPA of 3.9, and the top 1/10th had a weighted GPA of 4.6 which sounds impossible until you realize their entire coursework consisted of AP classes.)  It was one of the largest suburban public schools of the time, with a total student population of nearly 3800 when I attended.  My graduating class was over 800 students, nearly all of them grossly better than I was in almost every area of academia.  And in my head, then and now, I was trying to be accepted by everyone I personally knew, usually failing at the same time.  That’s not healthy.

I asked friends for advice on whether or not I should attend, and got good advice.  When asking ‘shouldn’t I go to catch up with old friends, etc.?’ the responses were along the lines of “Isn’t that what facebook is for?” or “You knew them for four years, then didn’t talk to them for twenty; why do you want to go again?” or “My reunion consisted of all the jocks and cheerleaders hanging out with each other while a few people sat alone at tables — just like high school!!”, etc.  The most humbling reply was from a friend who lives within driving distance:  “You don’t need a reunion to catch up with me; stop by any time.”

They’re all correct.  You can never go back, and in my case, I shouldn’t want to go back.  Still, in my head, it stings.

Many of my fellow classmates have gone in enviable directions.  Without naming names(*):

  • Our class valedictorian (and a friend of mine) went to Harvard and then scored in the financial industry in the 1990s
  • My first girlfriend became a Rhodes scholar and got her doctorate in a literary field and now lives in the UK
  • One friend who was always a better programmer than me leapfrogged me entirely by becoming an electrical engineer who also did low-level interfaces for embedded systems (some medical, I believe)
  • Another friend got her masters in environmental engineering and is now a director at a California water company, championing water quality
  • One of my oldest friends (even before we attended high school) entered one of the most selfless professions and became an educator (say what you want, that takes dedication and cajones)
  • My senior prom date got her doctorate in a musical field and has composed and performed music heard by hundreds of thousands people
  • One ludicrously talented composer and performer made the leap to Hollywood and married a brilliant mathematician (and actress)

…and the list goes on.  Compared to them, I could feel like a failure.

But I’ve done well too, in my own way.  There is a dumb yet succinct saying that goes “The only person who can make you angry is you.”  It took me a long time to realize that applies to how you feel good about yourself as well.  So here’s where I bring the reunion to me, and tell any fellow Trevians who happen to catch this blog post how I’ve been doing:

So that’s me since high school in a nutshell.  Nice to see you again.

In honor of the positive times I had at New Trier, I’ve done two things.  First, I’ve uploaded some photos of me during that time with friends to facebook, and I’ve tried to tag them where possible.  (They should be viewable even if you don’t have a facebook account.)  Secondly, and of substantially more interest to my typical nerdly blog readers, I’ve made available a transcription of the New Trier High School Fight Song played at every home game — as rendered by Music Construction Set running on a Tandy 1000 in loving 3-voice dampened square waves.  Seriously.

Hey, I’ve still got my hair.  That’s gotta count for something.

Jim, seperated by 20 years

Jim and Jim^2, separated by 20 years

Whoa — is it me, or did it just get fatter in here?

(*) Names available upon request

Posted in Family, Lifehacks, Sociology, Uncategorized | 15 Comments »

Save Ferris

Posted by Trixter on October 21, 2009

Well, a group of us are collecting money to buy Ferris Bueller a new kidney. They run about 50 g’s, so if you wouldn’t mind helping out:

Yeah, he’s getting me out of Summer School.

Shit, I hope he doesn’t die. I can’t handle summer school.

Posted in Vintage Computing | 1 Comment »

And so it goes

Posted by Trixter on October 18, 2009

I have finally realized that I have no business blogging, as I lack writing skill.  If that lacked eloquence and sounded a tad too blunt, it’s because I lack writing skill. I was going to start this post by talking about how some people simply operate on a level so far above us that you just can’t help but admire them, but then all my thoughts got jumbled and it faded away.

I have been trying to come to terms with a lot more than that recently, like working at a decent mature job that has hard long hours (note the lack of blog posts in two months), or having all these great ideas in my head that I lack the skill to make real.  I am losing my mental faculties and not dealing with it well.

This has somewhat stalled the MindCandy project, as we found out that the software we already paid for is incapable of producing BDCMF premastering output, which is required for a replication facility — no BDCMF, no glass masters.  So that means authoring a Blu-ray means we have to master from one of four available applications, three of which are too expensive, and a fourth that, while “cheap”, is buggy and unmaintained.  One of those options used to have a monthly license “rental” fee, but they recently stopped doing that and became outside our price range again.

Desperate times call for desperate measures, so I flexed some very old muscles and found an older version of something we’ll call “Canisters”.  “Canisters” is considered by many to be the gold standard for this sort of thing, so I guess I’m glad that I have the chance to look at it, except that Canisters is less of an application and more of a quirky scripting language, running in a quirky operating system, written in said quirky scripting language.  To compare and contrast:  In Adobe Encore, you define actions and playlists by using familiar concepts like, hold onto your hats, “actions” and “playlists”.  In Canisters, however, it is considered lucky if you can avoid building PGC’s by hand without the use of a hex calculator.

I am exaggerating, but only slightly.  What is NOT an exaggeration are the 360 pages of documentation I must consume to have any chance in hell of attempting to use Canisters — assuming the version I have access to is not broken beyond use.  There was a time, when I had my mental faculties (see above), when I was not only be capable of doing so, but would actually be relishing the thought of consuming all that information.   Those days are gone.  Somehow I have to come up with an alternative.

Posted in MindCandy | 9 Comments »

Tips for making your own demodvd

Posted by Trixter on August 24, 2009

I responded to a pouet bbs post recently and thought that the information could help more than just the demoscene, so I’m reproducing and expanding on it here.

As always, some quick background so information below makes sense (if you’re already familiar with the demoscene, skip to the next paragraph):  I’m making a Blu-ray + DVD package called MindCandy Volume 3 that showcases 30+ Windows demos, which in addition to extremely high-quality video will include commentary by the original authors and other fun bits.  Demos are computer programs that showcase the author’s programming skill and creativity, and are usually awesome to look at and listen to.  Demos run realtime (they do not output their graphics+music to output files), which means you need a special capture program to “hook” into the demo and redirect its output to a series of bitmap files+.WAV or .AVI, and the best utility for doing so is kkapture.

Now that that’s out of the way, the question asked was how to get the most decent quality demo footage onto a DVD.  Having had a lot of experience in this area, here are my tips for doing so:

  • Capture the demo in the highest res it allows.  Even if your target is 720×480/576, do it, because the resizing and anti-aliasing will result in less high-contrast transitions which compress better and with less artifacts.
  • Never add filters in any step of the production chain, not even a sharpening filter.  All they do is cover/obscure picture detail, not enhance it.  You can’t create detail that isn’t there, so don’t try.  See previous tip.
  • Preconfigure your graphics card to forced “quality” settings (on my GTX card I’ve been selecting 16xQ anti-aliasing and turning off all texture compression because my card has nearly a gig of vram).  Sometimes this bugs a demo; if so, go back and kkapture it again with more modest settings, but at least try the best settings.
  • Resample down using the best possible resizer that is time-practical (ie. avisynth spline64 or equivalent — bicubic/lanczos are good but can result in ringing, so always inspect your results).
  • Capture in real video rates if you ever want to display on a TV without dropping or adding frames.  This means you enter rates into kkapture like 60000/1001 (NTSC) or 50 (PAL).
  • If you’re putting multiple demos on a dvd, make it one giant output so that 2-pass/n-pass encoding can spread the bitrate appropriately across all the demos.  Yes, it takes longer.  Yes, it is worth it.

And here’s the part people most people forget:

  • If making a dvd, deal with interlacing because a demo at 24/25/30fps really sucks compared to a demo at 50/60fps, and the only way you’re going to get 50/60fps out of a dvd is an interlaced video.  One of the hallmarks of demos as an art form is the nature of having been created on a computer for a computer, and part of that art is a display rate of 50 or 60Hz.  Arbitrarily limiting a demo to a lower framerate when it was created for higher is just wrong.  If a demo is created specifically to look like film, that’s one thing, but limiting it because you want less data to process is a crime.

As for what maximum (not average!) bitrate to choose, you must always choose the maximum (9800), and even then you will find that some demos will have compression artifacts simply because there is too much picture information changing from frame to frame.  This is something I had to come to terms with for MC3 (we’re including a DVD of the main program with the Blu-ray for those who want to upgrade later).  The only way to make it better is to give the encoder less frames for the bitrate — meaning, if 30i or 30p footage has artifacts, feed it 24p.  The DVD and Blu-ray specs were tuned mostly for real-world footage at film rates, something that has made working with 720p/60 footage so painful.

While the above tips were windows-centric, they apply to any type of demo DVD you may work on.

Posted in Digital Video, MindCandy, Technology | 3 Comments »