Thursday, September 08, 2005

FM Towns version sped up.

There is not a 256 color 320x240 video mode, supported by the bios. It's probably possible to set it up using the CRTC registers, but I don't have good enough documentation to do that.

But, I was able to optimize the assembly language blit routines to gain some speed. I haven't used my 386 optimizing skills in 6-8 years. I did some loop unrolling, but was limited by the width of the fonts (8 pixels) and sprites (multiple of 16 pixels). I did optimize the sprite and font transparent blits by reading 2 pixels (DWORD) at a time and writing each pixel seperately, skipping 0 colored pixels (16 bit). I also did some simple stuff like using an 'or' instruction instead of a 'cmp'. It doesn't seem to slow down much (in the emulator), and I haven't tested the updated version on real hardware yet.

I also gained some speed by eliminating the wait for vertical blank, since this seems to be handled by the egb page flipping routines.

The next challenge is finding a way to change the sky color as time passes. I could change the color in the background image, but this would probably cause a noticable slowdown. It might be easier to create multiple copies of the background at startup, but this may take too much memory...

2 Comments:

At 4:15 PM, Nunux said...

Im realy impressed to find people who still code on these old great piece of hardware.

Your project looks promising :D, i've done myself some Genesis conding some years ago and it is very interresting.

Keep up the good work! This is interresting.

 
At 10:06 AM, Charles said...

Thanks for the comments. I hope to bring Frog Feast to many different systems.

 

Post a Comment

<< Home