Thursday, June 19, 2014

My First Demoparty - A Personal Report on @party 2014

[Introductory note : this will be a really lengthy post, but I intend it to be a comprehensive recollections of my observations and interactions at this event.]

On Saturday, June 13, 2014, I attended my first demoparty, @party 2014,  I really went to help out my friend Trixter, who had flown in from the midwest.  I had never met Trixter or anyone else with whom I correspond on VOGONS or Vintage Computer Forums or Quest Studios, my three most frequented forums.  Trixter lives in the mid-western U.S., Cloudschatze lives in the Rockies, etc.  I had tried to meet Trixter for the last @party in 2013, but I was unable to make it.  Several months ago, Trixter posted on the VCF that he was looking for the best method to ship an IBM PC Portable Model 5155.  Now "Portable" was a charitable description for the machine, it weighs about forty pounds and takes up as much space as an IBM PC.  However, he was going to submit a demo and wanted to demo it on real hardware.

I didn't pay that much attention until he mentioned that he was going to @party, which is held at MIT in Cambridge, Massachusetts.  At that point I volunteered to help him.  I own an IBM PC Model 5150 in good enough shape that he could probably make his demo run on it.  He accepted my offer of help and we discussed what he would need and when he would need it.  I would bring the PC, a CGA monitor and a keyboard and some of the usual cards you could find in a PC.

So, on Saturday, I told Trixter I would be in Cambridge at 1:30PM.  The entries for the demo competitions had to be submitted by 5PM, so the extra time may have been necessary for troubleshooting.  I estimated I could get to Cambridge in an hour and fifteen minutes.  However, due to road work, it took close to two hours.  One of the lanes was closed off on the bridge, and that twenty-five foot closure backed up traffic for at least two and a half miles.  I was looking at my phone while stuck in traffic (admittedly an unwise thing to do) and a guy pulled up and asked me if I was checking Google to see what was wrong up ahead.  I told him that I wasn't and he pulled away.  I checked the Navigation app and found that there was road work, so about 10 minutes later I saw his car, honked my horn and told him what the trouble was ahead.

I did not get to Cambridge until close to 2:30PM.  I didn't want to let my friend down, who had traveled so far to show his new demo.  It simply wouldn't have been the same if he was forced to use DOSBox.  I swore many an unprintable oath on the drive to MIT.

I got to MIT, and the parking garages around the main campus are extremely expensive.  Fortunately on Saturdays there are plenty of metered parking spaces available, and I had just enough quarters to feed the meter until 6PM.  After 6PM they no longer check the meters.  Carrying an IBM PC, which weighs about 20 pounds, back and forth across campus is quite a workout.  I brought my IBM 5153 Color/Graphics Display monitor, which is significantly heavier than my other CGA monitor, the Tandy CM-5.  However, the extremely poor dot pitch of the CM-5 does not lend itself to high resolution graphics or serious 80-column text work, so I brought the IBM.

Still, I was nervous that something would go wrong and Trixter wouldn't be able to run his demo despite all our efforts.  As many of my readers know, there is only five slots in an IBM PC.  The slot configuration I brought was as follows :

1.  AST Six Pak Plus w/384KB RAM
2.  IBM Diskette Drive Adapter
3.  ADP-50L 16-to-8-bit IDE Adapter
4.  Sound Blaster 1.5 w/DSP 2.00
5.  IBM Color/Graphics Adapter (New Version)

Both full height bays were occupied with the typical Tandon TM100-2A drives.  I knew that Trixter intended to run his demo off a compact flash card in an CF-IDE adapter.  The only adapter I have is intended to be housed in a card bracket or drive bay.  I tried inserting the 5.25" adapter into the drive bay, but I would have to remove one of the full-height Tandon floppy drives and it would leave a large hole.  Trixter brought an adapter that sat directly on the end of the IDE header.  That adapter had a female connector and the ADP has a male header.  Neither of us brought a ribbon cable with the appropriate ends, so we had to exchange the positions of the AST and ADP cards to give the CF-to-IDE adapter clearance to fit on the end of the ADP card.  There is plenty of clearance between the first 1 in the IBM PC and the end of the Power Supply.  At first, it didn't work because it was inserted the wrong way (the CF holder needs to face the front of the machine).  Once we turned it around, it booted like a champ.  One thing I have learned is that my ADP requires the Diskette Drive Adapter and a valid physical A: drive to boot the hard disk.  I usually use the ADP in my Tandy systems, which have a diskette drive adapter built into the motherboard.  On the downside, there may not be sufficient clearance in the Tandys to mount a CF-to-IDE adapter directly onto the end of the ADP.

So one problem was solved and Trixter tried his demo on my PC.  After listening to it with the headphones, he noticed that the music was out of sync with the video and playing back too slowly.  The problem was with the Sound Blaster.  Trixter encoded his digitzed music at 32kHz, but the Sound Blaster 1.0-1.5, even with a 2.00 DSP, only supports playback at up to 22kHz.  If I put my Sound Blaster Pro or a Sound Blaster 2.0 (which I don't have anymore) in the system, the music would have played back fine, since those cards can support 44kHz playback.  Trixter had access to the original audio and used his modern laptop to re-encode the original 44kHz digital audio into 22kHz digital audio suitable for the Sound Blaster very quickly.  Once that was done, he told me that the demo worked as it should.  In fact, this was a benefit because the demo was available to a wider audience.  I refused to watch the screen so I could experience it with everyone else.  The drawback was that the demo was barely submitted in time for the 5PM deadline and I missed an important presentation.

While Trixter was working on getting his demo to run, I watched some of the presentations in amphitheater. While I unfortunately I missed the Vectrex demo, I was able to view most of Ken Silverman's demonstration of the Voxiebox.  Mr. Silverman, the developer of the Build Engine which powered Duke Nukem 3D, Shadow Warrior and Blood brought a PC  to control what was literally a "box of tricks".  The hardware inside the cardboard box considered of a projector projected against a glass plate moving up and down 20 times per second.  Items were being held in place with rubber bands!  The result was shapes being displayed above a 3"x3" apeture in the top of the box.  Shapes could be in color or monochrome, filled or wireframe.  Mr. Silverman described the API that he used to code the various programs he demonstrated, including games of 3-D Tetris, Space War, Snake and Pac-Man.  Here are some crappy pictures I took with my camera :

Solid Shapes, they were also shown in wireframe and in color
3-D Spacewar, one player controls the yellow ship, the other player controls the blue ship
3-D Pac-man, although it plays more like Pacmania
Another game, I don't remember much about this one
I think this is the Snake game, could be the same game as the last screenshot
The current iteration of the Voxiebox was designed and built by Mr. Silverman and four other people.  Two of those people were located in Australia.  As the motor noise is very noticeable, I asked Mr. Silverman how long could the motor run.  He stated that it had not broken down, so they ran it as long as they wanted to.  At first they used a sine wave generated by PC audio hardware to keep the motor in sync with the projector, but that was not sufficiently precise, so they relied on a board that appeared reminiscent of an Arduino or Raspberry Pi.

Once Trixter demo had been completed, he introduced himself to Mr. Silverman.  He showed him the target system for his demo, my PC.  Mr. Silverman demonstrated his dormant coding abilities by entering a simple program in GW BASIC and another simple program compiled in DEBUG.  I can make the boast "Ken Silverman coded on my IBM PC!".  When they showed me the lines Mr. Silverman typed into GW BASIC and asked me if I knew what they did, I deduced correctly that they were trying to plot pixels in some manner.  The above highlighted the fact that I was still separated from a majority of the people present because they can code and I cannot.  Trixter's own art is not in graphics or music but in coding.  He appreciates the challenge of trying to eek out the last ounce of performance from a system.

Meanwhile, trying to be social I saw someone trying to code with a Sega Genesis.  As he appeared to be using a Krikzz Mega Everdrive, we had something in common.  He was using a a laptop and a composite-to-usb video-in capture device to view the output on his laptop screen.  He was trying to get true bitmap graphics working with the Sega Genesis.  The Genesis uses tile-based graphics modes, so implementing a bitmapped graphics mode involves changing tiles quite frequently.  Between such issues as the horizontal line interrupts, the DMA speed and the unstable raster being displayed from his capture device, he was not able to finish his demo in time for the competition.

Another excellent device demoed was a mini-Tesla Coil.  This was entered into the demo and I was able to chat with the two individuals behind the demo afterwards.  They used the coil to display "lightning" during the playback of music.  Essentially the bursts from the coil were set to audible frequencies to accompany the music.  As the coil is controlled via MIDI, the coil is a unique, albeit dangerous MIDI instrument.  In the demo, the electricity arced to a common CCFL light bulb.  The kit they used can be found here :  I also saw an oscilloscope with 3-D patterns being displayed on it like a Vectrex.

My only regret is that I did not seize the opportunity to try out the Oculus Rift during its demonstration.  I saw the projection behind the speaker, which showed the visuals the people who tried it out saw when they wore the headset.  The visuals weren't especially impressive because they lack their immersion and suspension of disbelief which was provided by the headgear itself.  Imagine during your head and seeing the display shift according to the position of your neck.  180 degree turns would be a challenge.  While the Oculus Rift Development Kit 2 is available for purchase, I don't have a spare $350.00 to drop on a peripheral supported by half a dozen PC games at the time of this writing.  The people who did get to try it were wowed by the effect. I will have to cling to my memories of novelty VR arcade games and the Virtual Boy for now.

The party began on Friday, but Trixter told me I hadn't missed much.  Sunday was mostly for cleanup, so I departed with my IBM PC at 11PM on Saturday.  Trixter gave me his opinion that compared to European demoparties, this demoparty was a much more MIT appropriate buttoned-down affair.  Part of that is because of the rules of the site, MIT does not allow for drinking alcohol.  Also, everybody had to leave by midnight, in Euro demoparties people sleep on the floor and they run 24 hours.  There were competitions for this, that and everything else.  The maximum number of people I saw was about 35 people, whereas the European parties can run double or triple that.  Still, like other demo parties people would shout out random things, usually evoking a laugh.

There were several categories in the demo competitions.  Some were for music, some for computer art and some for demos.  With the music demos, I made notes on the various pieces presented for reference.  The programs and graphical demos would show a screenshot next to the submission name.  I assumed that voting required you to rank each entry from best to worst, but it actually allowed you to select a range of opinion for each entry.  I could therefore say I liked two pieces equally.  Some of the notes I made were "new agey", "some Sierra influence", "sounds like a track from an early 90s TMNT game", "lacks direction", "errie vocals", "terrible sound effects", and "NES inspired"  Two of the tunes did use Famitracker, which is a tracker for the NES, Famicom and the expansion chips.  Who knows how much post-processing was done. Overall, I was impressed with the quality of tunes presented.

Trixter's submission, 8088 Domination, deservedly won first prize in the Oldskool PC demo category.  His trophy (and all the other trophies but one) was a piece of laser-etched acrylic.  I also met his frequent collaborator Phoenix, who entered the demo which got second place in the same category.  Trixter's demo can be downloaded from here :  I will not say much about it, but the first part of the demo brought a chuckle to me and should to anyone familiar with Trixter's previous demos, one in particular called 8088 Corruption.  The demo should run in DOSBox 0.74 as it relies upon 640x200 CGA color composite mode.  Go watch it, and note that I get a mention in the credits

If you try to run it on real hardware, here are some guidelines : It will show the wrong colors in parts 1 and 2 of the demo with a Tandy 1000 or IBM PCjr. Color Composite output*.  It needs a SET BLASTER line and a Sound Blaster with a DSP version of 2.00 or better.  I also advice using a new-style CGA card, as the second half of the demo may show a wavy raster, color fringing on the edges of black and white, and brightness fluctuations with an old-style CGA card and a modern television.  If you want to get a very good idea what it will look like on with Tandy 1000 Composite Video, use DOSBox and set the hue to 135 degrees using Alt + F11.

* - the demo requires a Sound Blaster card, a later release will have the option to run it silently.  Therefore you won't be running it on a PCjr. unless you have the ultra rate PC Enterprises GameMaster.


trixter said...

Fantastic write-up -- I wouldn't change a thing :-) I'll mention to Val to link to this post as one of the write-ups of the event.

DMA said...

I love the content of your blog. But I'm having problems with the format. When I zoom, some text disappears beyond the left and right margins. And I have trouble reading light green letters on white background.