[Handcrafted demos...............................]
A challenge to the last clock cycle of the Z80

An oscilloscope, a nerdy calculator or a digital camera could have uses different from the original intention.

Wormholes and "Silent"-bars on a 6Mhz Z80
Let's take the TI-83. TI-83 is a programmable calculator made by Texas Instruments in 1993, with a 6Mhz clocked Z80 inside, a bunch of kilobytes of RAM and a black&white dislpay of 96x64 pixels. This object was originally made to solve equations, trace polar coordinate graphs, draw sinusoidal lines and multiplicate matrixes. In "monochromatic" by noice the little calculator makes all of this, but with a totally unexpected output: wormholes, plasmas and "Silent"-bars. Also, two shades of gray, obtained rapidly flipping two static images, sum up to the classic black and white.

And if a calculator can become the platform for a quick dentro, a 4 rows by 20 columns LCD display becomes place for an entire megademo as in "LCD megademo" by Hedelmae. The slowness of liquid crystals on the microscopic screen fool the eye to perceive the plasma effect in more colours than the "factory" two.
But who needs colours, anyway.

The scene brings its trademarks towards new and not so new platforms.

His majesty, the Vectrex (applause)
Rotating a cube, scrolling some characters on the display of your own microwave owen is with no doubt source of pride and honour towards the rest of the scene. Probably it anin't so doing this on a Thomson MO5, on an Epson HX-20 (the bridge between a calculator and a portable computer) or on a BK-0010, even if those objects are peculiar, but it becomes a matter of life or death doing it on a Vectrex, a bad fated videogames console from 1982.

In the hands of the demosceners, Vectrex loses its colorful overlays. The enthusiastic faces of families from the Eighties disappear, to leave space for the blue phosphorescence of lines traced on the curved CRT of the console. In the "bresenham" demo from Metalvotze, vectors are used to greet a few elite groups worth mention on the limited RAM the console has (one, yes one, kilobyte).

"lineart" realizes (as usual) the unreal, visualizing on the Vectrex screen some rubber-bars with bending lines (noteworth for a console whose only primitive is the straight line).

We've asked nitro/Metalvotze more detail on how a demo on this platform comes to life:

"I guess it simply started when I bought one and wondered if it was possible to do some own stuff on it.
The one shown in all the videos of our releases is mine (although other members of my group as well as some friends also own a Vectrex). I saw a sales offer in a local newsgroup and as I was actively collecting old hardware at that time I decided to buy it. That's when all the fun started."

What is the hardest part of coding on the Vectrex? Which are the limitations?

"There are a lot of limitations on this hardware, but in my opinion the hardest ones are the amount of RAM on the one hand, which is 2k (sounds a lot) minus everything the BIOS claims, resulting in a user space of around 500 bytes. On the other hand it's the fact that the entire drawing machinery is based on analogue circuits, meaning that you have to deal with inaccuracies everywhere (that's why you cannot create actual productions in an emulator only) and those inaccuracies also differ from machine to machine.

Finding a way to handle this correctly on all different machines is very tricky, that's why high-end releases for Vectrex (like YASI) feature some kind of calibration screen on startup."

What do you use to compose music on this platform?

"Our musician uses a standard mod-tracker for creating his tracks. The first three channels are then converted using one of our own tools to a format that pretty much resembles the BIOS music patterns as we use a player which is actually based on the BIOS player. Of course the mod file itself does not sound exactly like the music does on the real platform but it gives a first preview which seems to be sufficient for our composer."

click me!
Yeah, we've been rickrolled too
Sometimes the demoscene creates a key to understand peripherials that otherwise wouldn't have made sense.
It happens in "blureu" by Crest. The REU (Ram Expansion Unit) of Commodore 64 is used, but in a totally different way from the raw few-framed animations that the demodisks of the time managed to create. Scenes from demos that run on way more powerful modern PCs, or a surprise rickroll are shown in sequence, with colours and dithering that astonish more than one scener. And nothing matters if the 3d animations are too perfect for not being pre-rendered.

But what to do if the though quite rare hardware of obsolete machines still seems too mainstream?

Simple: you create your own platform, from scratch, from zero. And then you fly on it with the demoscenic LEM and the usual luggage. It's the philosophy behind "Phasor" and "Craft" by lft, but also behind the Z80 on steroids of "loopback" by altair, or behind the 4x4 LED matrix of "led it be" by Darklite.

Linus Akesson (the creator of "Craft" and the other demos on custom hardware) explains what this approach means:

"Nearly all existing machines have a dedicated video chip and sound chip. In Craft and Phasor, the microcontroller must not only calculate the effects, but also generate the audio and video signals in realtime. Something similar happens when a C64 coder breaks borders or does other kinds of extreme video hacking; it is critical that the instructions execute at precisely the right moment, otherwise it won't work.
But on the C64, the CPU only modifies the video signal. On my systems the CPU generates the video signal from scratch.

The ZX80 and ZX81 home computers partly generate the video signal from scratch using the CPU, but they use a much slower CPU than my projects, and they have an external chip that encodes the colour information into the composite signal. In conclusion, Craft is like a ZX81 on steroids, or even a C64 without the VIC and SID, but with a 20x faster CPU. Phasor is like Craft in a straitjacket."

Misery 3 by TRSi on the DTV
Why did you switch from VGA (Craft) to PAL signal (Phasor)?

"Yeah, I wanted to generate a (colour) PAL signal with a small microcontroller, because nobody had done it before. Well, there are some primitive projects on the web, like displaying four static colour bars, but I wanted to go all the way. I was aware of the fact that people would see a demo that was kind of similar to Craft, and probably not be as impressed this time, but those who know the details of the PAL signal would be amazed. You can't impress all the people all the time. =)"

What do you use to write music in your productions? Do you have a sort of custom tracker?

"Yes, I write my own tracker for every project (but I re-use much of the code). In Phasor, for instance, I started by writing the sound routine on the target system. It had to run in 77 clock cycles in order to fit inside the horizontal blanking period, so I had a hard limit to guide me through the decision making. I ended up with four channels (triangle, filtered pulse, unfiltered pulse and noise).

Next step was to port this code to C, and build a play routine around it (sound routine gets called for every sample; play routine gets called only 50 times per second). Then I could re-use most of the tracker code from Craft, and start composing music. During this process, I would sometimes modify the play routine to fit the music."

insane of the reborn altair goes into the technical details of the Z80 based custom made V6Z80P, on which "loopback" runs:

"I got a V6Z80P after Malfunction got me interested about it some time ago.
Originally I wanted to use it as a FPGA trainer. But that never happened. Instead I learned Z80 and the OSCA architecture. Doing a demo on it for the final Breakpoint simply seemed like a good idea to both Malfunction and me. I never really tried programming demo effects before so the weeks before Breakpoint were spent trying to learn to do 2d and 3d stuff. About 80% of the demo was coded/rushed during breakpoint and I never did include everything Malf and I planned."

"the scrolling girl"
Which is the biggest limitation code-wise on the V6Z80P?

"There are some things you don't notice right away, like having 1 scroll register common for all 8 bitplanes (which complicated the interference part a bit) or having a blitter operate in video memory only (memory is split into 512KB CPU-RAM and 512KB Video-RAM) as well as it really being a byte-copy processor. It's fast for copying memory regions but it can't compare to the Amiga blitter with its minterms.
The Copper would also be more useable if it was pixel instead of line based."

Did you use any particular trick/feature of the hardware in "loopback"?

"I mostly (ab)use the blitter and the paging system of the V6Z80P. The only real trick/problem was to get the (slow) SD-loader and decruncher running at the same time as the mod player without breaking the flow of the demo. Add to that the 32KB memory pages and it starts to get complicated, especially with big files like the scrolling girl.
But that's stuff nobody "sees" while the demo is running :)"

Wild demos of the future probably won't run on "ancient" Pentiums. The scene has always looked for new limits. A Pentium is an upper limit (see we go). Probably there will be productions on machines and chips that have much more "personality" than the anonymous contemporary PC. Unless they have all exploded. If so, we'll take solders and tin and we'll build the machine of the future. Rigorously clocked at 20Mhz.

posted by friol at 4/12/2010 11:57:00 PM - under: , , , - comments? here (0)

Nessun commento:

the tunnel - demoscene blog - (c) friol 2k10