Monday, July 23, 2007

CD-I Frog Feast... Waxing poetical

The journey to complete Frog Feast for the CD-I began a little over two weeks ago. In the process I've learnt more about the CD-I that I would've thought possible. It all started with a simple request for examples on using the CD-I RTOS. I had come to realize that the Balboa library wouldn't allow the level of performance I needed. For the most part, the Frog Feast development was driven by the rapid pace of implementing features. There were a few moments where I had to wonder if Frog Feast would run on all CD-I models. In the end, overcoming these frustrating challenges, provided the extra motivation needed to properly finish Frog Feast. I feel Frog Feast is a solid game for the CD-I.

Developing Frog Feast, for the CD-I, reminded me of the programmer stories I read about in ZZap! or Amiga Format. Writing much of the underlying code in 68000 assembly, and the optimizations needed to get everything running smoothly, felt like being a programmer in the early 16 bit days. I got a glimpse of the challenges faces by these early programmers. They had to overcome some pretty big issues to get their code running smoothly on these limited platforms; and doing all of this while struggling with limited documentation and early development tools. The only true answer to their problem was the challenge to overcome it. They would have had to try many solutions before they arrived at the one that did exactly what they needed. I also developed a great admiration for the few development companies that released arcade or fast action games for the CD-I. Getting decent speed on a system not designed for fast action games is a huge challenge. This is probably equivalent to developing a dos game using the BIOS: something never used in dos games.

The CD-I version of Frog Feast is, by far, the most optimized version of Frog Feast. Much of the game code was redesigned to eliminate speed issues. The low level graphics routines were optimized for speed and designed to do only one thing as fast as they can. The SNES and the FM Towns versions are the second and third on the most optimized list. The SNES version was more challenging to get working correctly, due to battling the 65816 and development tools. And, I'm not as fond of the 65816, compared to the 68000. The CD-I version has additional features not available in any other version; it has an exit option, a credits screen and, slightly better AI. The load time on the CD-I was not an issue. I thought this was going to be a big challenge. Everything that is needed, except for the credit screen and sounds, are loaded while the two opening screens are shown. The loading time only takes up part of the time displaying the screens. This version of Frog Feast has the greatest number of blog entries; which, I believe, shows the number of challenges faced developing the CD-I version.

In the end, I'm pleased with the results and enjoyed overcoming the challenges of the CD-I. I look forward to developing more games for the CD-I. For a few weeks, I had a chance to experience what it was like to be a programmer in the early days of 16 bit game development; optimizing code to overcome speed issues and, redesigning code to avoid slowdowns. I say to the CD-I, in my best Arnold voice, "I'll be back!"

6 Comments:

At 12:40 PM, CD-i Fan said...

I'm glad you've enjoyed programming the CD-i.

Hoping to work with you or other new CD-i developers soon!

 
At 2:27 PM, Charles said...

CD-i fan, I'll make sure I give our your e-mail address! :)

Thanks for the help.

 
At 12:41 PM, HenkZ said...

I'm interested in how you handled development for SNES. Did you use the (primitive) c-compiler or did you use assembler for most of the code ? I would like to do something on the 65816, but I prefer assembler.

 
At 1:09 PM, Brooke said...

Hi, Charles.
I'm very interested in running the demos on my Sega CD and CD-I 220. Is there a certain way to burn these files to a CD so they can be read? I copied the two files contained in the zipped CD-I version to a CD-R and it won't play back on my CD-I 220. It shows on the menu that I have a CD-I in the player, but when I click it to load the CD, the screen flashes colors and sends me back to the opening menu of the CD-I player. Any suggestions?
And, is there a big difference between the Sega CD and CD-I versions (or Genesis for that matter)? Any feedback will be great!
I'm looking forward to supporting your work now and in the future since I'm a fan of the "classic" systems.
Yours musically,
Craig
www.CraigPadilla.com - video & music production

 
At 1:21 PM, Charles said...

You have to burn the files as an image. Many burning software, including Nero allows you to load a CD image. In this case, you would load the cue file and burn the CD.

 
At 7:24 PM, Charles said...

The SNES version used a preliminary version of a C compiler. The compiler required a lot of work arounds to get working. The compiler did almost no optimizations (probably none!).

The compiler would be ideal for adding small C functions to an assembler program.

 

Post a Comment

<< Home