SpectaQLar!

Game poster

Batman, Jon Ritman's legendary 1986 game is now also available for the Sinclair QL retro-computer thanks to the remake by Joan Gayón, which is available for free in several versions, for the original machine and for emulators.

Batman

Introduction by napsternds.

Batman first appearance was the story "The Case of the Chemical Syndicate" in Detective Comics #27, published by National Publications on March 30, 1939.

Since then, Batman, the superhero, the embodiment of millionaire Bruce Wayne who fights criminals in Gotham City, became a global popular culture icon: comics, television series, written stories, toys, films, and, starting in 1986, video games. Batman's video games debut arrived in the 8-bit golden age, and from the very beginning, achieved a milestone, both commercially and for his technical achievements.

Batman (1986), programmed by Jon Ritman with graphic design by Bernie Drummond and published by Ocean Software, pushed the limits of 3D games with isometric perspective (the famous Filmation technique) introduced by the iconic "Ultimate Play the Game" label with the equally legendary titles Knight Lore (1984) and Alien 8 (1985).

The game was originally developed for the ZX Spectrum, and at the time, Amstrad CPC, MSX, and Amstrad PCW versions were released. Later on, remakes (MS-DOS) or enhanced versions (MSX2, with coloured graphics) were developed by fans.

Ritman and Drummond's game was a huge success at the time, garnering high scores and honorable mentions in video games magazines (C+VG Hit, Crash Smash, Sinclair User Classic, Your Sinclair Megagame, ZX Computing Monster Hit). It also achieved record sales in the UK, Spain, Germany and other European countries where those 8-bit platforms were popular.

Portada del juego

Technically, it was an absolute masterpiece, taking the Filmation technique of isometric 3D perspective to its best. 150 screens challenged the player with a series of complex but solvable puzzles, with smooth, fluid Batman and enemies movement, with no slowdown whatsoever. Drummond's graphic design is detailed and exquisite, monochrome on the Spectrum, MSX, and PCW, and somewhat more colorful on the Amstrad CPC version. The gameplay design was another achievement and, unlike the vast majority of games of the era, remains highly playable even today.

Batman appeared in May 1986. The home computing market had already left the initial boom behind. The most successful 8-bit platforms had established themselves (Spectrum, Amstrad, Commodore, and MSX), while many others had fallen by the wayside (Oric, Dragon, Sord, New Brain, etc.). 16-bit computers had been launched (Atari ST, Amiga), although they did not have a significant market share yett.

Another casualty of the market's ups and downs (and of its creator's limited focus) was the successor to the Sinclair ZX Spectrum, the ZX83, or, as it was finally launched in January 1984, the Sinclair QL. Sinclair launched its Quantum Leap as a professional computer, but with the features of a home computer, so in the end it was neither one nor the other. Quality issues and launch delays, coupled with fierce competition, meant that, following Sinclair's collapse and the subsequent sale of its computer IP to Amstrad in April 1986, Alan Sugar decided to cancel the QL line and keep just the Spectrum in his product portfolio.

So, the QL died commercially in April 1986, and Batman was released in May the same year. Obviously, a Batman port for Sinclair's ill-fated computer was never released.

Gameplay video

Click to see the video of the game made by Miguel Ángel Rojo.

But never say never. Well into the XXI century, Sinclair's undervalued platform has a legion of fans—well, more than a legion, perhaps it's just a century—who keep the machine's spirit alive with new hardware and software developments bringing unexpected joy to fans.

More than four years ago, a thoroughbred programmer discovered the QL`s limited graphical possibilities (8 colors in 256x256 pixels), and wondered how one of his favorite childhood games (Jon Ritman's Batman for the Spectrum) would look like in full color. No sooner said than done, Joan Gayón took matters into his own hands: he bought a Sinclair QL, painstakingly studied the workings of the video memory, the interrupts, the registers, the (almost nonexistent) sound, and began programming a pixel-perfect clone of the original game in Motorola 68000 assembler. Well, not exactly pixel-perfect, since he also converted the monochrome graphics of the Spectrum original to a glorious multicolor version, taking full advantage of the QL's limited palette.

And finally, after eleven paragraphs of inane verbiage, let’s speak loud and clear: neither Match Point, nor Alien Hijack, nor anything else. Joan Gayón has programmed THE BEST GAME OF ALL TIMES FOR THE SINCLAIR QL, and we're lucky enough to have it available for our enjoyment. It runs on a QL with 640k of RAM (the original 128k of the machine plus 512k). Beta testers have checked it on several configurations, both on the physical machine (ROM JS or Minerva, Gold Card, Super Gold Card, Aurora) and on different emulators (sQLux, QemuLator, ZesarUX) and FPGA solutions (Mister).

The game behaves exactly like the original: same graphics (in bright colors), same map, same puzzles, same fun. Absolutely spectaQLar!!!

The remake for QL

BatmanQL was developed entirely in assembly language. All routines and game logic are based on observations of the original game's behavior, using the CPC version's sprites, as they were based on four-color sprites.

Given the peculiar architecture of the QL's graphics memory as well as the use of the remaining bit for flash (I would have preferred bright to get twice as many colors as the spectrum but pixel by pixel), I had to sacrifice space optimization for performance optimization, thus eliminating any possibility of fitting it on a stock QL with 128kb.

Moving a sprite around the QL screen smoothly, in terms of 1 or 2 pixel movements, has a big impact on the performance of printing routines, as logical shifts in the sprite's registers must be made before printing.

One of the main problems I encountered was having to sort the objects in the scene according to the x, y, and z axes. This led me to repeatedly rewrite sorting algorithms that seemed to work well, only to find that they failed in some cases. In the end, I opted to keep the only one that failed in two very specific circumstances.

Snapshot 1 Snapshot 2 Snapshot 3 Snapshot 4

Looking back, I think that if I hadn't insisted so much on certain critical algorithms and routines, the final product wouldn't have been the same.

I started the project at the end of 2020 to demonstrate the capabilities of a computer that had very little gaming software and was treated very poorly in this regard. Initially, I didn't intend to make the entire game, but rather a "technical demo" of what was my favorite game from my childhood. But as the code became more and more complex, I realized that to make a small demo of a couple of Batman screens, I would have to do practically EVERYTHING... so once I started, I had to prove to myself that it was very possible. Little did I know then about all the problems I would encounter. This reminded me of a movie in which the character says at one point something like, after solving one problem, you have to be ready to solve the next, and so on until everything is solved.

Download the game

Content to download:

Download the game in floppy disk image format Batman_img.zip Contains a 720k DD diskette image file, for use with Gotek or emulators. It can be converted to a physical diskette using a Greaseweazle or similar device.
Download the game in win format Batman_win.zip Contains a .WIN file, hard disk container for emulators or FPGAs.
Download the game on an emulator Batman_sqlux.zip Contains a portable installation of the sqlux emulator for Windows, preconfigured to boot with the .WIN file (0, 1, or 2) in the sqlux.ini file.
Download the game label batman_floppy.png Image to be printed and used as a floppy disk label, created by Álvaro Alea.

About the author

The programmer Joan Gayon.

I was born in the spring of '73, living through the glorious '80s, of which I have the best computer memories.

My first foray into computers was a bit bumpy, as my brother and I were waiting for an MSX that we ordered from a local appliance store to be brought to us. Summer came and we still didn't have a computer. So one day we went shopping on the Continent and there they were… so many computers and so many things to discover…

In the end, we opted for a deal they had there, which included an Inves Spectrum+ and a 12-inch green phosphor monitor. Unbeknownst to us, we were buying a Spectrum clone, the anecdotes of which would fill a whole article. Even back then, at 14, I was already starting to wonder about machine language…

Work desk

Author's workspace. This is where Batman for QL was conceived.

I've always been curious about logical things, whether mechanical or electrical; they always caught my attention. I guess that's what led me to learn a little bit of everything. My knowledge of electronics or computers, or many other hobbies, is shallow, since those who try to grasp too much, achieve little. In any case, my passion has always been electronics, and therefore computer science of physical systems. My other hobbies include astronomy, music, and science in general.

Programming has therefore been a very important part of my childhood, and I have never dedicated myself to it professionally, although I have had several opportunities in this life to do so.