>> Tuesday, March 10, 2009
Silas Warner talked about his CD-i work on Jigsaw, Super Mario's Wacky Worlds and Wolfpack at Novalogic 1992-1993:
I came to CD-i work across the country: I had just been laid off from Amiga and Atari work at Microprose and drove across the USA (on Route 66 and its successors) in seven days. Since my previous work had been with the 68000, it was not hard to adjust to the crippled 68000 used in the CD-i. Also, like the Amiga, the CD-i had a "display list" video structure in which every scan line was specified.
The software architecture of the CD-i, in contrast, was wonderfully simple and elegant. The operating system was called OS9, and had the distinction that every program was relocatable, both code and data. The A6 register was used to point at the program data segment: thus multiple copies of the code could run each with different data.
Like any new design, there were bugs and glitches. The most noticeable one was that the scan line interrupt, normally the highest priority interrupt in the system, was overridden by the interrupt for the remote control stick. In practice, this meant that if you used a scan line interrupt to change video modes, the display scan line would jump up and down whenever the joysitck was moved. This required quite a bit of ingenuity to overcome, and a method was worked out at the CD-i development conference in the spring of 1992. A separate process was run in the computer at highest priority, which only had the task of running scan line interrupts. This highest-priority process would override the mouse processing interrupt, making scan interrupts stable. This kind of "patch" was an example of the kind of flexible programming that OS9 made possible.
Other glitches were more serious. The most serious problems were in the area of audio. Since the CD-i machine was based on a CD player, the gold standard in audio, the CD-i's designers felt that the CD should be sufficient for all audio. In addition, a number of modes of ADPCM audio compression made it possible to place up to 16 interleaved audio streams on a single track of a CD, or to play a CD track with many audio streams from memory. But the designers forgot was any method to mix sounds. Even a simple mouse click had to be recorded in a studio, according to CD-quality specifications including $9,000 digitizing boards with gold-plated cables, to 16-bit quality, then the CD music interrupted to play the click (for only one track could be played at a time!)
Once again, the programming brain trust went into action and figured out a massive software package that at least allowed two ADPCM tracks to be played at once. A software compressor decompressed two audio tracks at once, and averaged them from stereo to mono. Then one was placed on the left channel of the rotating audio buffer and the other on the right channel. Finally the stereo option was turned off, in order to mix the two channels. For all its ingenuity, the programming trick turned out to be the Achilles heel of the CD-i, as we will see.
My employer was Novalogic, then located in the southwest corner of Woodland Hills in an industrial park on the former Warner Bros backlot. The company was mainly a contract programming house, building games designed by clients. Our CDi title, "Jigsaw", had been completely designed and specified by Sony. It was not an exciting game: it was designed to be soothing, even boring. New Age music played while the player switched identically-shaped pieces of an esthetically beautiful picture until all were in place. The market seemed to be older families who sat around the television even when there was nothing to watch. John Brooks had originally been the lead programmer on the project: I was brought in to assist when Brooks became stretched too thin.
Other projects were going on, of course. The greatest excitement at Novalogic was about a tie-in game to a Disney movie at the time, "The Rocketeer". For most of my time at Novalogic, the Rocketeer's costume and rocket backpack sat in a corner of my office.
As "Jigsaw" wore on, the main problems we faced were not the game. The obstacles thrown in our way were primarily Sony's ridiculous requirements for disc quality. For instance, that mouse click. It couldn't be a syntheric beep; it had to be recorded in a recording studio, to 16-bit quality! We fudged that by taking our 8-bit beep, resampling it to a higher rate, flanging and echoing it, then resampling it back with quadratic interpolation to the 44,100-Hz CD rate. The interpolation introduced low-level noise, which filled in the lower 8 bits and satisfied the censors. Another example: the entire game, sound, video and data, had to be placed on the disk TWICE. I still have a test disk sent from Sony, on which a quarter-inch square of nail polish had been placed to completely obliterate several CD tracks. The game was required to play perfectly even with this flaw: as the software would detect the flaw and switch to an alternate track!
As time wore on, "Jigsaw" came closer to completion. The only work on the program was complying with the Sony quality assurance department's fussy little nits -- a single scan line in a single picture being too rough in texture, for instance. All had to be "corrected" somehow, even if it meant doubling the size of some display programs. While this went on, however, we had time to experiment with the CD-i. For instance, Novalogic had one in-house-designed game, a submarine simulation called "Wolfpack", and I began a quick-and-dirty CD-i conversion with an eye to adding "bells and whistles" such as part-screen movie clips.
Two weeks before the opening deadline, two things were apparent. One was that "Jigsaw" would ship with the new produce, despite Sony's QA department continuing to discover new "bugs". The other was that the consumer electronics market was collapsing, the victim of a nationwide recsesion. Then came the blow. Up until now, Sony players were the only model on which we could test our products. Then, finally, Panasonic came out with its companion model -- and "Jigsaw" wouldn't run on it.
The culprit was that elaborate sound mixing system. The software decompressor had to load in the aectora of sound data in a precise timing sequence into the two rotating sound buffers used for memory playback. But the Panasonic player had THREE rotating sound buffers, throwing all timing off. The problem wasn't just ours: every title that had more than one sound playing produced garble on the Panasonic player. Two weeks before its release, half the supply of CD-i players in the world had to be scrapped and redesigned!
The premiere came, and CD-i displays were prominently unveiled in prestigious department and electronics stores thoughout the nation. Many of them were running "jigsaw", because nothing else was available to run. And the public resoundingly ignored them. At the same time, Atari and Nintendo were publicly consigning thousands of game cartridges to landfill. The year's recession that followed buried the CD-i -- and "Jigsaw".
But one postscript remained. Novalogic was seeking work from Nintendo: we had already produced one Nintendo cartridge. A Nintendo sales executive came up with the idea that maybe simple Nintendo titles could play on the CD-i. I suspect he was thinking of some kind of adapter to plug a Nintendo cartridge into a CD slot! But it set off a frantic race at Novalogic. The project was to put a popular Nintendo game, "Super Mario World" onto a CD-i disk.
The characters were pirated from a video feed, the level maps drawn off on paper, and John Brooks and I prepared to put in 24-hour days for two weeks. At the end of that time, we had a little bit of one level done -- enough to display at an upcoming Nintendo developer meeting. The disk was burned at 4 am on Friday morning for an 8 am meeting.
The effect was just what was expected. Nintendo marveled and applauded the marvelous job we had done in two weeks, then killed the idea. The CD-i wasn't selling. The project was over, and I went looking for new work. I quickly found it across town, at Virgin Games in Irvine. But that was the end of my CD-i work.