Playing Zybex (A8)

So for the last few days I’ve been playing a lot of Zybex on the Atari 8-bit, having mentioned it previously. Zybex is a horizontally scrolling shoot ’em up from budget publishers Zeppelin which was originally developed on the C64 and converted to the Atari.

As shooters go it’s cheap but still quite cheerful stuff; one or two players can head into battle, there are five weapon systems to collect and power up and the movement patterns are busy. It does suffer from some cheap deaths from attack waves that barrel in without any warning, bullets being spewed out at inopportune moments and much needed power-ups can occasionally become embedded within the landscape.

It also suffers a little on the graphics front since everything in the main playfield has literally dropped half of its pixels during the journey from C64 to Atari 8-bit and the sprite colours have also taken a hit since everything apart from the two players is now drawn to a four colour bitmapped mode.

But despite those issues, Zybex looks pretty decent, has a good Adam Gilmore soundtrack and is probably one of the best examples of the horizontally scrolling shoot ’em up genre released for the Atari 8-bit. It’s also a little easier to play than the original C64 release to the point where I can sometimes complete it!

Daft coding ideas

A while ago on Atari Age, there was a side discussion in the C64 versus Atari war thread about the game Zybex; initially, I’d assumed it was working at the resolution the developers had used in order to get the entire play area working with a single LMS command in the display list (which is essentially a pointer to tell the display hardware where it’s going to read screen data from) for speed, but after some prodding around within the code that turned out not to be the case – instead it relied on LMS commands on every one of the pixel lines of the display, which made good sense all under the circumstances but for some reason felt inefficient.

And that still set me thinking, would it be possible to produce a scrolling game of some kind that handles the same screen resolution using just a single LMS command in the display list? The answer at least seems to “sort of”, the final resolution has been locked down to a 128 to 80 pixel area due to a restriction caused by the display list working in 4K blocks (which is presumably why Zybex wasn’t handled this way) but it trundles along at a pixel every second frame, churning out tile data correctly in the process.

Of course, just getting scrolling proves close to bugger all and as a proof of concept it needed to draw some sprites in over that scrolling, so currently there are nine objects being written in and out with EOR, each at 9×9 pixels and moving every frame (eight automatically, one under joystick control). All in all, it’s rather surprising but the damned thing actually works despite the horrific state of the code…!

Hello world!!

Right, here I go with another blog; this latest endeavour is to take over from the two Blogger feeds I was using previously for more general purpose news about stuff what I was doing, so this’ll be a mixture of programming waffle about 8-bit computers, commentary on assorted media (television, films, games and so forth) and whatever else springs to mind. And I might even remember to update it once in a while as well…

Okay, so I’m still moving in right now and configuring all the plug-ins, so there’s no custom theme designed yet and I’ll be getting “organised” over the next couple of days if all goes to “plan”.