Monday, March 8, 2010

Fisting !?

After some shenanigans over the past few days I'd almost ditched all this BBC porting stuff, but decided to carry on with it regardless :)

I thought I'd give some other games a try and after some sliiightly more difficult hacking I managed to get exploding fist working...



The screen is all messed up (as with the other games I've been working on) because the BBC draws to it's own RAM in a linear character bitmap format (like the C64) but that's impossible to display on the Atari so everything is currently offset AND the pixel formats are different so everything looks like garbage :) The most CPU friendly way to fix this is hack the BBC game code, find where it stores graphics data and do the old jiggle pixel pass on it.

I've also done a bit of work on sound but it's off at the moment. The second part of the Exploding Fist tune doesn't play correctly, it should be more of an arpeggio and instead it's got pauses between each note.

I'm pretty sure after some investigating and hunting down docs that this is because the Fist code calls a ROM function to do with the sound channel and waits for it to return 0x0F. I presumed that meant "sound has finished playing" when after just finding some more docs on it it's actually the free buffer space. SO, I didn't realise/remember you could (or rather, do) queue sounds to a buffer on the beeb which kind of explains what's going on with the odd sound timings. Basically MY code should be triggering new sounds from the buffer NOT playing them one at a time as they come in from the Beeb code. :)

Some other games I tried quickly and seem to be running ok are Alien 8 and Starship Command. Starship particularly is a great little game (or at least my terrible long term memory tells me so).


Pete

No comments:

Post a Comment