Friday, July 27, 2007

Jaguar CD version of Frog Feast nearly complete

The Atari Jaguar version is nearly complete. I used a library provided by SebRmv of the Removers. It's a fairly complete library for Jaguar development. There are no speed issues with this library.

I have to fix a graphics corruption issue, ensure PAL is properly supported and, do some testing. I'm still looking for a mod file for the title music.

This version came together pretty quickly, using the library.

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!"

Sunday, July 22, 2007

All know issues resolved.

What a difference a day can make. I've gone from wondering if Frog Feast would ever work on a Mini MMC CD-i player, to feeling confident about a release.

I've resolved all of the issues that I'm aware of on the CD-I version of Frog Feast. There was another issue that would've caused Frog Feast to fail on any system without a DVC cart or extra memory. I was allocating memory for sound that was 18 times bigger than it needed to be. This turned a 27k memory requirement into almost 512k. This was futher compilcated by the fact that I didn't think about the extra memory provided by the DVC cartridge.

I now have one thing left, and that's displaying a credits screen. It won't be anything spectacular, but gives credit to the people that have made Frog Feast possible, and a couple of marketing weenies. (just kidding RW) :)

Saturday, July 21, 2007

CD-I Frog Feast back on track.

Thanks to CD-I Fan, the problem with Frog Feast playing on Mini MMC based players is solved.

I had already implemented part of the solution, and had tried the other part. But, I had never tried both parts. This is a big relief to have this behind me.

All of the bits (3 in total) were used in the Balboa sources.

Now, to implement the last part of Frog Feast, and wrap this up!

CD-I 350,60x,205/910 issue

I've spent the entire day looking for the problem on Mini MMC based players. I cannot find a solution for the problem. I've rearranged the FCT many times, done traces on the Balboa version of Frog Feast, studied many FCTs from different games and even followed the code through the Balboa sources.

The image I get, on my CD-I 605, is 320 x 224 or 256. Frustration is setting in as there is no clear answer or any direction on where to search for a solution. A 320x224 ot 256 mode is not listed in any documentations that I've seen.

Thursday, July 19, 2007

CD-I Frog Feast has sound effects.

I finally got sound effects into Frog Feast. It was quite a challenge to figure out all of the little issues to get sound to play correctly. It looks like I may not be able to have the background sound play during the game. The sound effects pause the background sound, which probably wouldn't be noticable. But, there is some latency in restarting the sound, causing a noticable silence. The game is fast paced enough that the frog, tongue, fly and water noices are almost always playing.

Tuesday, July 17, 2007

CD-I Frog Feast now has music.

I got music files working on the CD-I version of Frog Feast. I tested the result on the CD-I 370, and it works correctly.

I spend the most of the last two days working on getting real time files working on the CD-I. The biggest problem I had was getting master to build the file from the script. I was missing one character! I didn't put an '>' at the end of the filename. Without help from CD-i Fan I could've been stuck for awhile. Once that was working, it was easy to add support for the real time files to Frog Feast.

The next challenge is sound effects.

Sunday, July 15, 2007

Bug fixes to Frog Feast for the CD-I

Most of the time is now being spent fixing the remaining issues with Frog Feast, and implementing a few optimizations. I did get multi-player support working. My to-do list is currently down to:
1. Add Sound and Music.
2. Add an 'Exit' option and a credits screen.

There are probably a few additional bugs left; I intend to do quite a bit of testing over the next week. One outstanding problem is incompatibility with the CDI-350 and CDI-605 players.

Saturday, July 14, 2007

(Not so) Final speed increases finished

Frog Feast plays at near full speed. I further optimized a lot of the lower level assembly language drawing code; in addition the C code was also optimized in critical places. The results should run well on any CD-I player. I also cleaned up a lot of the little bugs remaining. I still have a few remaining bug; and I need to get a second controller working and get music and sound working. I would like to have this ready for OlderGames by the end of next week.

A new demo is on the CD-I page. Although two player mode can be selected, only one joystick is currently read. Also, this version has the flies disabled, so you cannot get any points. In one player mode the second frog will jump around.

In an e-mail exchange with CD-i Fan, it sounds like there will be some CD-i systems that won't support a second joystick using a splitter.

Thursday, July 12, 2007

Most speed issues tackled

The biggest part of my slowdown was the C code. I had to do the same thing for the SNES version, since the compiler didn't do any optimizations. In addition, I've optimized the blitting and erasing code a lot. I don't think I can get too much more speed at the assembly level. This brings to mind Michael Abrash (he wrote an old Dr. Dobbs Journal column on graphics programming) columns on programming and optimzation. He basically said that optimization to a routine are really only limited by the perceived limitations of the problem.

Another big problem was the sequence of waiting for the vertical blank, changing Plane start address, and starting the update. I got this working correctly and the flicker appears to be gone.

The next challenge is rewriting the input code, which should speed up the code a little bit more.

Wednesday, July 11, 2007

CD-I Frog Feast nearly playable

The CD-I Frog Feast is coming along nicely. The game is fully playable, except it plays in slow motion. I've obviously got some optimization work ahead of me. I had to do the same thing for the FM Towns version. It could be a bug in a routine.

I like optimizing code in asm, especially in 68000 asm, so this should be a fun challenge!

The CD-I page contains the new version. This should be the last preview before the final release. I may do one more to test out the joystick input.

CD-I version game play works with some issues.



This is an in game screen shot of the CD-I version of Frog Feast. There are some graphics issues, and Plane A isn't properly cleared. Speed may not be as big of an issue as I thought it was going to be. The game seems to run smoothly. Now, it's just a matter of debugging the code, and redoing the input routines. The input routines are based on the ones I had in the initial version of Frog Feast; they wre only used to read the button state.

Seeing it almost work is definitely motivating me to fix the issues and get this running. Hopefully tonight, I'll clean up the issues, and have something playable.

Then I'll add the music and sound.

CD-I version now has a text layer and sprites

I got the text layer and sprites working on the CD-I. I still need to test it out to ensure it does correctly erase the sprites and text. This will require user input, which is next on the agenda. I may still need to optimize the routines, but I'm going to wait until the game is running before I make a determination on that.

The updated version is on the CD-I page (http://frogfeast.rastersoft.net/CDI.html). The demo zip contains the current version. In the next day or two, I should have user input working, and the game screen showing.

Tuesday, July 10, 2007

CD-I version functionality same as old demo.

I've added the new routines. This brings the new version to the same level of functionality as the last demo.

The two splash screens are displayed on double buffered Plane A, and the Title Screen is displayed, without the text layer. While the two splash screens are being shown, the remaining graphics and palette are loaded into memory, and the background screens are transferred into Plane B. The splash screens conceal the loading into Plane B. Plane A is cleared to reveal the Title screen. The application should spend less than a second (Assuming a 140kb/s loading from the CD) running before it shows it's first image.

Tonight, I should progress to a new level of functionality, and possibly have the first interactive CD-I Frog Feast. I have to implement the Text Layer, Sprite, and Input routines. The next major issue could be the speed of the game; it could play slowly due to the sprite clearing/drawing routines.

Sound and music will probably take some time to get working.

Friday, July 06, 2007

New CD-I version first steps.

The most difficult part of programming a system is getting the initial code going. I managed, with the help of CD-I Fan, to get some initial code running for the CD-I CD RTOS. The demo does not use any functionality of Balboa. The old demo used Balboa.

I converted an old demo to run on the CD-I. It can be downloaded from http://www.chaos89.com/DemoZone/

The demo runs correctly on a NTSC or PAL game system, with the screen centered in either mode.

This includes a good starting point for a graphical system for Frog Feast.

I got a CDI-370 in today. This will make it easy to test out a game in either NTSC or PAL, since it can be switched between modes,and displays correctly in either mode on the built it LCD.

Wednesday, July 04, 2007

CD-I version resumed.

Balboa isn't the ideal programming environment for CD-I games. (This probably isn't news to any old CD-I programmer)

Thanks to cd-i fan, I've switched to using the CD-RTOS functionality. This gives me direct access to an 8 bit video buffer. Getting decent speed out of the system will be just a matter of optimizing the routines or design. Frog Feast shouldn't take more than a month or two to adapt to the new system.

I found an article, from cd-i dev, that discusses the design of The Apprentice. The article discusses how the features were inplemented within the hardware of the CD-I.