Oldskooler Ramblings

the unlikely child born of the home computer wars

Archive for the ‘MindCandy’ Category

@theEndOfTheRoad

Posted by Trixter on June 22, 2010

So around January of this year, this happened to me:

http://www.randsinrepose.com/archives/2009/01/25/a_disclosure.html

Seriously, that’s exactly what happened to me.  I couldn’t have put it any better.  So if you’re wondering what happened to Trixter, now you know.

I had just enough money and free time to attend @party this year, but minus the amount of free time that would have granted me time to make a production, code something, etc. so I spent much of the time there working on the MindCandy production notes script I’ll be recording tonight.  I met some great, talented, wonderful, kind, giving, selfless people.  I also realized that I was old enough to be the father of some of the people I met.  With no productions to work on and no oldskool hardware to show off, I was a bit of a fifth wheel.

I am nearing the end of the road of that particular part of my life.  While it’s fun to dream about a magnum opus to peace out with, I think it’s more productive to realize that I will never find the time to do so and should just let it go.  I turn 39 in a few months, I’ve had a good 20 years in the demoscene, I’ve had my 15 minutes of fame, it’s time to move aside and move on.  MindCandy 3 will most likely be my last scene production.

So, what else did I learn on this trip?  I learned that connecting flights suck balls because you have to go through security again if you have to walk between terminals — even if you never step foot outside the secure area.  And I also learned that you never ever ever bring a high quality USB microphone with you on a trip that utilizes commercial aircraft because you will get stopped at every single security checkpoint for at least 15 minutes while they try to figure out if the metal cylinder loaded with wire and electronics in your duffel bag is a bomb.  If it weren’t for the fact that the microphone was still in its commercial packaging, I’m sure they would have forced me to open it, releasing its magic forever.

Ah well.  Here are some pictures for you to enjoy.

Posted in Demoscene, MindCandy | 9 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 »

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 »

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 »

Supercharging The Free Time

Posted by Trixter on July 23, 2009

One month ago, I started work at my new job, a trading firm in Chicago. I live in the western suburbs, so I have to take a train in to the city. The train ride is only 35 minutes each way, but due to a bus hookup that I have to make, as well as my scheduled working hours (trading hours), I spend a little over an hour on the homebound train. All told, I spend 1h45m sitting still on a train each day. This is time I used to spend computing, which is why people haven’t heard from me in a while. 

With a new job comes some new pay, so I considered it an investment for my sanity to purchase a laptop for the train. All the time I spent waiting to arrive home can now be spent working on projects and answering email. For someone who commutes so much, and has The Combine™ at home to crunch HD video (more on The Combine™ later), I initially thought that I would grab a tiny Dell notebook; they have a supremely tiny 9” model for $300 that can run for hours on fumes. Less to carry, good enough for syncing email for offline review, and I could even surf if I had to (via USB tether to my smartphone). They even come with a choice of shipping with Ubuntu.

The only problem with that idea is that the #1 project I have to focus on, with a deadline no less, is MindCandy volume 3. MC3 poses some significant challenges for me:

  • We have no dedicated DVD/Blu-ray author this time around (Jeremy is working full-time for Futuremark/Sony), which means I have to author it myself
  • The footage is a mixture of 720p (main program) and 1080p (special features)
  • The combined footage (special features + main program) is over 15 hours long
  • We don’t have any graphical artist for the motion menus, which means I have to design/create/render them myself (if you want to volunteer then by all means please contact me!)

MC3 post-production is essentially a one-man show, as you can see above. And with over 2 hours a day LESS free time, I am understandably nervous about getting it done before the end of the year, as is traditional so that you can snag it as a holiday gift. So, I have to work on the project on the train, which means the laptop would have to run Adobe CS4… and would have to play back HD video, including 1080p… and be able to render 3D graphics for the menu work… and it would have to hold at least 300G of low-res proxy footage video data (the real video footage is over 2 terabytes). So the tiny notebook idea was out.

Hey kids, how do you take a normal laptop and turn it into a Blu-ray production powerhouse?

  • Install nothing less than a Core 2 Duo
  • Replace the 720p LCD with a 1920×1080 LED-backlit full-gamut RGB screen
  • Put in a 500G hard drive
  • Upgrade the RAM to 4G
  • Swap out the DVD burner for a Blu-ray reader
  • Shame the embedded Intel video controller and install a Radeon HD 4570 with 512M dedicated video RAM
  • More power means more juice, so toss the 6-cell battery and install the 9-cell model

So that’s exactly what I did, taking a Dell Studio 15 that normally goes for $750 and injecting it with all of the above, then applying a magical 25%-off-anything-with-an-obscene-cost coupon. Final damage was around $1200. Yay Dell credit!

Here I am, laptop the size of a planet, and all I’ve done is write a blog post.

Man, this thing is heavy.

Posted in Digital Video, Lifehacks, MindCandy, Technology | 5 Comments »

Editing HD On a Budget: Cost of Entry

Posted by Trixter on March 3, 2009

Blu-Ray Disc (BD) is expensive to produce.  As previously ranted by a good friend of mine, the minimum cost to produce a BD is a whopping $4600 — $3000 for some licensing cost that goes who-knows-where, and $1600 for a sanity-defying mandatory AACS encryption procedure.  And this is before you press a single disc.  (If you’re wondering why content producers were rooting for HD-DVD to win the format war, it’s partially because of licensing fees like this, plus lower manufacturing costs.  The cost of entry was much lower compared to BD.)  Needless to say, we have to be very careful how we produce MindCandy 3, because these licensing costs automatically take a giant chunk out of the resources we have available.

And what are those resources?  I’ll describe our budget thusly:  Dan and myself put up the initial capital in 2000, with the hope that we would at least make it back, as well as some extra that would fund a second volume.  That second volume would sell, which would make just enough for the third volume, etc.  The goal from the beginning was to try to have the project generate the money it needed to keep going for as many volumes as possible.  When we found ourselves with a little extra, we donated it to scene.org, or sponsored some demoparties.  When we found ourselves a little short, we did everything we could to keep costs down.  This is no different than the reasons why people organize demoparties, really;  for example, Scamp wants Breakpoint to be successful enough so that, instead of losing 10,000 euros, he can break even and put on another party next year.  The goal is equilibrium.  For the first two volumes, we achieved it.   Now, with BD having such a giant up-front cost, that equilibrium is in jeopardy and forces us to look at alternative ways of producing volume 3 so that we don’t run out of money before it’s ready!

There are many places where money goes in the production of any end-user product, but they tend to fall into the following buckets:

  1. Development
  2. Pre-Production
  3. Production
  4. Post-Production
  5. Distribution

Luckily for us, some of these buckets have no cost other than our personal time.  Development and Pre-Production are all organizing and research, which we do for free because we like doing it.  Thanks to the demoscene community, Production also has no cost as long as we get permission from the authors.  Post-Production involves a hardware and software cost (storing, editing, mastering, and authoring the footage onto media), and Distribution is a setup fee, a per-item manufacturing cost, and shipping costs.  (We also budget for the free copies we set aside to everyone who authorized their demo to be included, provided commentary, donated time or materials, or helped us out in some other way.)

The Distribution cost, thanks to the ass-tastic licensing I mentioned previously, is relatively fixed.  The Post-Production costs, however, are not, and this is where demoscene sensibility comes into play:  How can we make the best of what we’ve got?  What can we pull off, given the limited resources available to us?  It’s time to make a demo — using budgets!  A budgetro, if you will.

In a later post, I’ll start diving into the gritty details of how we’re able to edit HD footage at less than 1/100th the cost of how production companies normally edit HD footage.  Stay tuned.

Posted in Digital Video, MindCandy | 12 Comments »

The Next Big Thing

Posted by Trixter on January 12, 2009

As some followers of a certain thread on pouet might have guessed, the MindCandy crew has started production on MindCandy 3.  This time around we’re mixing the familiar with the unfamiliar:  We’re revisiting the PC — specifically Windows  — but unlike any other demoscene project, we’re doing it all in HD.  That’s right:  MindCandy 3 will be Blu-Ray.

Oh, we’re going to make a DVD available as well, don’t worry.  In fact, we’re tossing around the idea of including the DVD in with the BD, so that there’s only one package to get and you can enjoy the BD when you eventually upgrade your hardware.  Nobody gets left in the cold, and the demos get the proper treatment they deserve.  And it’s one hell of a treatment; thanks to kkapture, we’re able to get clean and pure video from most demos, 60 frames per second, at 720p.  For those who hate interlacing artifacts, this is the fastest progressive video specification HD supports. For some demos (like Into The Pink), the video exceeds what most 2008 machines are capable of.

Work on MindCandy 3 actually began before MindCandy 2 was finished.  In mid-2003, a good friend of the project, Steinar H. Gunderson, worked with us to create “demorender”, which did exactly what it said it did:  Hooked DirectX 8 and 9 calls to grab the data from a frame, dump it through a VFW codec, and then continue, all the while faking the timer so that the demo would be fed a constant timebase.  We were able to capture around 50% of the demos out there when ryg announced kkapture in 2006 and we found that, right off the bat, kkapture did everything our tool did.  We weren’t ready to begin MC3 at that time — and farbrausch is, well, farbrausch — so Steinar contributed the source code of demorender to ryg to fill in a hole or two in kkapture (I believe it was in .wav writing or something but I’d have to check the sources to be sure).

Fast-forward to 2008, and we start to get the MindCandy bug again.  We were in the middle of tossing around ideas to cover, when Blu-Ray finally won the HD format war, and we took that as a sign that that’s what we should target.  The first MindCandy, which was in production from 2000 to 2002, came right at the cusp of the DVD revolution; it was the right product at the right time, and as a result, it did well and the demoscene gained some new converts.  We’re at another cusp:  HD video.  We’re excited to work in that medium and we hope that we can live up to the standards set by MC1 and 2.

While the www.demodvd.org website will remain and start to get updated as we get rolling, I’m moving the Developer’s Blog over here, because this space is an actual blog and not some Python code I slapped together.  I’ll tag them appropriately, for those who want to follow only MindCandy development.

Because part of capturing HD material is making sure you have an HD monitor, I have one now.  Unfortunately, I can’t stand how my 1920-wide window displays a 640-wide skinny little blog in the center, so I will be checking wordpress.com every week to see if they have a theme available with a flexible width that doesn’t royally suck.

Posted in Demoscene, Digital Video, Entertainment, MindCandy | 12 Comments »