Limitation breeds creativity, the saying goes, and the CDTV title screen is a classic example of this. Creatively speaking it is both an artistic and a technical achievement, and CDTV Land will be showing you why, as we uncover how this intriguing artifact of Commodore history came to be and how it works under the hood.
Today we utterly take for granted that virtually every device with a screen can display true colors and full motion video, even to the point that both these very terms have become practically unused and meaningless (especially to people who were born after the twentieth century). But back in the early 1990s the arms race towards a glorious future of graphical fidelity with fluidly moving pictures was still full on, and the startup screen of an entertainment system was an excellent opportunity to advertise its multimedia prowess.
The CDTV title screen animation
CDTV was released in 1991 and at that point in time computers and game consoles were moving away from the relatively primitive graphics of the 1980s and hurtling towards increasingly realistic visuals. Amiga technology was undeniably at the forefront of that revolution and the CDTV title screen makes optimal use of the underlying Amiga chipset within the limits imposed by the memory constraints of the operating system ROM.
It does full overscan, makes effective use of the Extra Half-Brite mode to display 64 colors onscreen at once, and adds animations to give the title screen a dynamic quality, which immediately captivates the user. To pull all this off and to make it fit in the small amount of ROM space available it uses a proprietary compression technology, and a UI framework that leverages a clever method of further reducing the amount of memory needed. But before we dive into the technical details, let’s have a look at how the title screen came to be.
Early Title Screen
The CDTV title screen and most of the other graphics of the CDTV operating system ROM user interface were created by artist, programmer and Amiga legend Jim Sachs. However, the impressive CDTV title screen that we all know and love was not the first iteration. Early pre-release versions of the CDTV OS came with a much simpler implementation, especially when compared to the release version title screen. It’s pretty bare bones and employs almost no anti-aliasing, which makes some of the graphics look a little jarring.
Pre-release CDTV title screen (1990)
I have not been able to confirm yet who created this early title screen art and whether it was ever considered for release or just as a placeholder, but it does look like multiple revisions were made with small tweaks here and there before it was replaced with the release version which was designed by Jim Sachs. So how did Jim get involved, then?
Solid As a Rock
Development for the CDTV operating system ROM was lead by Amiga luminary Carl Sassenrath, who was also responsible for implementing various drivers for the CDTV hardware and creating a modified/CDTV-specific version of the Exec kernel module. For the user interface side of things it became obvious fairly quickly that the Amiga’s native UI layer, called Intuition, was unsuitable for use in CDTV which was being targeted as a living room appliance, connected to a TV and operated from the couch with a wireless remote controller, (and not as a computer with a monitor and a mouse[1]). An alternative type of UI was needed for the ROM resident applications inside the CDTV player, a UI that was easy to operate and properly visible from a distance on a TV screen, i.e. a different approach than one of mouse pointers, right-click context menus and the venerable but incongruent desktop metaphor.
CDTV as a living room appliance
Reichart Von Wolfsheild’s Silent Software, Inc. was contracted in mid-1990 to do several tasks for the CDTV operating system ROM,[2] one of which included designing the layout, the screens and graphics of all ROM resident applications.[3] As Reichart and Jim were already friends and had worked together before, the choice for Jim to do the graphics for CDTV was a no-brainer.
Jim had a lot of creative freedom in designing the title screen and the user interface for CDTV. “I had known Reichart for 10 years already at that point”, recalls Jim, “and he says ‘There’s nobody else to do all the graphics and stuff for CDTV, so just do anything you want. Maybe something in chrome and glass’. They ended up using all my stuff pretty much verbatim as I turned it in.”[4]
“We knew Commodore was going to fail on marketing this, and we were treating it like: Our only chance at people remembering this was to see the name in 3D.”
— Reichart Von Wolfsheild [5]
CDTV OS Project team
The CDTV OS team had the foresight that Commodore was going to drop the ball on properly marketing CDTV, so they wanted to make sure that when you turn on the CDTV player you are greeted with something that looks amazing and says “quality”.
“Jim’s idea was ‘solid as a rock’ (sort of like Paramount)”, says Reichart. “So he started by finding a real piece of granite, and then placing it and rendering one dot at a time (in Deluxe paint).”. [6] The composition was then expanded with a compact disc that was positioned on top of the rock at an angle, and a flickering laser beam was added that bounced off the disc to create a rotating 3D hologram of the CDTV logo. The result is a beautiful and eye catching title screen.
Three of a Kind
But here’s the most amazing part that I feel deserves to be known by way more people: One of the key components of the title screen is obviously the animation of the 3D CDTV logo hologram, and you’d be forgiven for thinking that this was created with 3D software. The three rotating CDTV logo letters are actual physical objects that exist in the real world! Yes, you read that right. The CDTV letters were crafted by Jim Sachs out of plexiglass in late 1990, put on a lazy Susan, rotated and photographed, imported into the Amiga and converted into the very animation that you see on the CDTV title screen! How cool is that! The first time I read about this cool piece of CDTV trivia, it absolutely blew my mind.
One of the original CDTV letter sets [7]
As you can see by looking at the animation on the CDTV title screen, there are three sets of CDTV letters visible there, and so there are also three physical sets of CDTV letters that were created. The photo above was provided to me by Jim Sachs and contains one of the three sets of CDTV letters and includes the actual rotating plate that was used to put the letters on. The three sets of letters were arranged in a triangle form and if you look closely you can see the markers on the plate for placing the letters. Jim told me he gave one letters set to Carl Sassenrath and another set was gifted to Reichart von Wolfsheild. So… what about the remaining set?
The “third” set of CDTV letters
Well, dear reader, the only other set of the CDTV letters now resides in CDTV Land! Jim was so gracious as to donate these letters to me for my efforts through CDTV Land. Through sheer coincidence Jim was in Europe recently and was able to bring the letters along with him and hand them over to me in person! I decided to dedicate a separate post to the letters which you can find linked at the end of this page, because they’re just too cool to only get mentioned as a side note here!
But now let’s get back to the CDTV title screen and focus on some of the technical stuff that is going on under the hood, because I think the way the CDTV title screen components are stored in ROM and how they are generated on your screen is a very interesting story as well!
Technical
The CDTV operating system can be described as a pseudo-operating system. It’s not a full operating system in the traditional sense, because it integrates with and depends on underlying Amiga operating system components provided by the Kickstart ROM.[8] It lives in two ROM chips, which are physically separate from the Kickstart ROM, and its total size is only 256 KiB.[9] This limited space contains modules like the CD-ROM driver, the ISO9660 filesystem, bookmark/cardmark driver, SCSI/XT HDD driver, CD+G driver, the CD bootstrap code, and more. And of course it also contains all the elements that provide the CDTV OS user interface like the Title Screen, the CD Audio Player and the Preferences Screen.
Some of the components inside the CDTV OS ROM(s)
Now, 256 KiB is not a lot of space to store graphics and animations in, even back in 1991. So how the hell did they manage to squeeze the CDTV Title Screen, the CD Audio Player, the Preferences Screen, the screen saver and even the high resolution interlaced CDTV Title trademark logo that you see when you boot a CDTV Title, into just 256 KiB of ROM space, together with all the program code for the other CDTV operating system ROM modules?
This problem was solved in two ways. By A) using a proprietary form of compression, and B) by breaking up some of the graphics in such a way that reduces the amount of space that is needed in the ROM. Let’s have a look at the compression first.
Squeeze Box
Although the Amiga’s IFF/ILBM graphics file format standard already allows for compression, the most commonly used compression algorithm (RLE)[10] was not efficient enough for ROM usage, so Silent Software developed a custom suite of application-specific compression algorithms called SBox (short for Squeeze Box) and licensed this technology to Commodore for use in CDTV.[11] One of its strengths is that instead of just employing one generic compression algorithm, the SBox compression system has separate algorithms to compress graphics, audio, text or binaries which allows it to achieve higher compression ratios. The decompression counterpart to SBox was aptly named DeBox and was included as a dedicated library in the CDTV operating system ROM, called debox.library.
DeBox is built into every CDTV OS ROM
Quoted SBox compression ratios for graphics ranged from 40% to 75%,[12] which was reasonably impressive, given also that the decompression algorithm had to be fast enough to decompress on a standard 68000 CPU without keeping the end user waiting. So every time the CDTV title screen, the Preferences screen or the CD Audio player screen are loaded, multiple layers of graphics are being deboxed from ROM into RAM in the background and composited into the screens that you see. Instead of making hard cuts, clever use of fading out and in between screens masquerades some of the waiting time, while simultaneously adding polish to the user experience by giving immediate feedback to the user input, making the UI feel both responsive and stylish.
SBox compression was not only reserved for the CDTV graphics in ROM, though. The technology was also made available to registered CDTV developers, so they could use SBox compression in their CDTV titles if they desired to do so.
DEBOX CDTV TITLES
Few CDTV titles utilized debox compressed images. The handful of titles that do seem to use it are later (1992) titles. Trivial Pursuit is confirmed to use it, and the various Asterix titles seem to as well. Although Dinosaurs for Hire’s authoring tool supports debox.library it is unclear if it is actually used. Even where it’s used, it seems to be used sparingly, because the majority of pictures on these CDTV titles are standard IFF/ILBM format.
Why would you use compression when you have near “limitless” storage on CD-ROM? The answer to that is the sometimes painfully slow 1x-speed optical disc access. In some cases it may be faster to read the smaller SBox compressed picture and then debox it, then it is to read the larger uncompressed or RLE compressed IFF/ILBM files. SBox also offers the possibility to compress multiple files into a single archive. Especially with many small files, the overhead can stack up. Reading a single debox archive file reduces I/O significantly, while the internal CDTV operating system ROM offers built-in routines that developers could use freely to decompress and display these graphics.
As to why debox is used seldom. Probably the same reason why so many aspects of the CDTV platform remained unused and why many CDTV titles were so unoptimized. The platform was just not around long enough for developers to really optimize their titles and to make use of everything it has to offer. E.g. various techniques to improve loading times on CDTV were only just starting to crystalize and become available as documentation for developers in 1992 when Commodore already pulled the plug on CDTV. ■
Background Build
But SBox compression is not the only ingredient that allows all these graphics to fit in ROM. The way that the UI framework, which partly replaces Intuition, creates screens also uses a neat trick to further reduce the amount of space needed.
Every screen that you see in the CDTV OS UI is actually built up on-the-fly according to a blueprint that is provided to the user interface framework whenever a specific screen is activated. Every screen consists of up to 3 layers:
- A static background image
- One or more static foreground images
- Dynamically drawn stuff like updated UI buttons, highlights
And here’s the clever space saver trick they used: the background image in ROM is not the full width image, but just a vertical strip of 16 pixels wide. The UI framework simply takes the background strip and then stamps it in a horizontal direction from left to right to fill the whole screen.
A background strip is deboxed from ROM and then copied to fill the screen
This is ideal for use with gradient backgrounds that would otherwise take up a lot of space. This background strip is of course SBox compressed to further reduce the space needed and ultimately takes up less than 900 bytes in ROM!
After the background has been rendered, the foreground elements are deboxed and are rendered on top of the background image. In the case of the CDTV Title Screen that’s the rock with the compact disc, the laser ray and the CDTV logo animation.
Foreground elements are deboxed from ROM and placed over background
The CDTV Preferences screen and the CD Player screen are constructed in a similar fashion, but also use “gadgets”, which are UI elements like windows and buttons that the user can interact with.[13] The default or null state of these UI elements is in the foreground element bitmap, and the alternate states are stored in a separate SBox compressed bitmap in ROM. These alternate states are rendered on top the background and foreground layers by the UI framework’s “display object controller” depending on the state of the objects.
UI elements for the Preferences screen in ROM
Art and Technology
I really appreciate the creativity that went into both how the graphics for the title screen were created and the technical tricks that they pulled to make it all fit in such a limited amount of space. The CDTV OS team could have just left it at the original pre-release CDTV title screen and rigged up a bland and static user interface to go along with it (like their major competitor CD-i did[14]), but instead Jim Sachs was contracted to create the graphical design that added a touch of class and style to CDTV and made it stand out from the competition. Consciously or not, you can feel the care and thought that went into creating the CDTV title screen and the rest of the CDTV ROM user interface, both technically and artistically.
Comparison between CDTV and CD-i firmware/ROM graphics
Was everything in the ROM done perfect? Far from it. But it was an extraordinary achievement when you consider the very limited amount of memory the team had to work with and that the brunt of all this ROM-based functionality was implemented against a grueling schedule of roughly six months. This makes it all the more impressive what the CDTV OS team managed to deliver in such a short time span.
Magic happens when art and technology combine in the right way. The CDTV title screen bears the very visual mark of Jim’s stunning graphics and the subtly hidden mark of Reichart’s versatile compression algorithms. Without the compression technology the beautiful graphics would never have fit inside the ROM, and without the beautiful graphics, well.. In the end it sadly didn’t matter and CDTV would have failed either way, because it had so many other things going against it.
But at least we now get to enjoy and appreciate a beautiful failure. ■
Read more about the CDTV letters here.
Notes
My deepest gratitude goes to Jim Sachs for donating the CDTV letters, but above all for his patience, his willingness to answer my nerdy questions, and for being such a nice guy. It was an honor meeting you, chatting with you, and receiving this super cool artifact of CDTV history from you in person, Jim!
– Mijo
- CDTV was initially released as an appliance and was not marketed as a computer. It was only in 1992, when Commodore realized CDTV wasn’t selling that they turned around and started marketing the CD1000 as an Amiga computer, which also failed to move any significant amount of units. ↩
- Source: E-mail from CDTV OS project lead Carl Sassenrath to Commodore’s Director of Special Projects Gail Wellington from July 11, 1990, titled “Job Description and Duties” (for the CDTV project). ↩
- Although the initial job description was limited to design and decompression/compression technology, it appears Silent Software’s role increased over the course of the project to also encompass implementation of the display object controller, i.e. the actual underlying UI framework, which was originally assigned only to engineer Mike Lehman. ↩
- Source: Interview with Jim Sachs on The Retro Hour Podcast episode 31. (August 2016). ↩
- Source: CDTV page on Greg Donner’s Workbench Nostalgia site. Note: Editor’s alteration applied to original quote. ↩
- Source: CDTV page on Greg Donner’s Workbench Nostalgia site. ↩
- Photo courtesy of James D. Sachs. Used with author’s permission. ↩
- Contrary to the CD32, which has a much more integrated approach to its system software ROM, on CDTV the CDTV-specific system software modules (the “CDTV OS”) are located in a dedicated ROM chip (two chips in the CD1000) and have wildly varying major version numbers that don’t align with the major version number of the Kickstart ROM like the CD32 resident modules do. This more pronounced separation between the Amiga Kickstart ROM and the CDTV operating system ROM is a reflection of the fact that development for CDTV was handled externally through contract work compared to the “in-house” work by West Chester engineering for CD32. ↩
- The CD1000 has two 128 KiB ROM chips for the CDTV operating system modules, but the A570 and A690 CD-ROM drives come with a single 256 KiB ROM chip. ↩
- RLE stands for run length encoding and is a simple compression algorithm that is well suited for data that has a lot of repeating single bytes, like many Amiga pictures would have. However, it struggles with data that has a lot of changing values, like pictures that use dithering, and may even increase the file size instead of decreasing it in these types of scenarios. ↩
- SBox was possibly developed earlier by Silent Software, and then updated and optimized for use in CDTV. ↩
- Source: Silent Software, Inc. President Reichart Von Wolfsheild’s letter to Commodore’s Director of Special Projects Gail Wellington from July 16, 1990, titled “Update and overview of all projects”. ↩
- The CDTV OS does not use standard Amiga gadgets, but a custom CDTV specific implementation. ↩
- CD-i from Philips was the main competing standard to Commodore’s CDTV in the world of interactive multimedia appliances that were poised to conquer living rooms all across the world in the early 1990s ↩