#Quad.atr 130.02KB 178 downloads
First off, thanks to Csaboover at http://www.plus4.com
This game will run in the Altirra emulator (later version the better), and on real Atari with VBXE expansion. Be sure to enable the VBXE features within Altirra.
Note that this game is still a work-in-progress and some bugs are yet to be ironed out, and it lacks "polish"
A couple of weeks ago, I decided I'd try converting an existing C= Plus/4 game to run on the Atari. Tried a few dozen and this one got the nod. Of huge help was the fact the source code was available.
What is this game? Another one of those puzzlers that'll have you pulling hair out for a while.
You control a bouncing ball, only able to move it left and right.
The objective is to clear each level of coloured blocks. At all costs avoid the blocks containing skull & crossbones.
Also, you have to use strategy as well as skill. You can only clear one colour of blocks at a given time. Hitting a block with a star * will then allow you to clear blocks of that colour (your ball also changes colour to the type of blocks you can clear).
What makes it harder is that on many levels, you start with the ability to clear a certain colour, but you mustn't contact a * block until you've cleared the starting colour because there's no way to get back to that colour.
Press Fire to start the game. SPACE pauses the game, SPACE again or Fire to resume.
If you get stuck, press Esc to restart the level at the cost of one life.
TAB allows to skip levels, but you can only skip levels that you've already completed within that gaming session, and no skipping allowed after Level 15.
Within the game menu, you can change the start level with the joystick - but once again, you can only start levels you've already reached within the current session.
And for the bugs and deficiencies...
- some text not being displayed properly.
- in Altirra, text in the right portion of the screen doesn't display in hires. This is a problem with the emulator itself.
- when starting a level or resuming from pause, the ball will momentarily move left. This problem crept in during conversion and will be worked on.
- sound/music not the greatest. Music authors quite welcome.
- end of level, end of game messages displayed for not long enough.
- the colours aren't so great. Still a work in progress.
And the story of conversion:
I got the source then went to work converting so it'd Assemble with AtAsm then run on the Plus/4. That took all of about 30 minutes.
Next up I made the decision to do a massive rework of the code such that the game could run on an "emulated" Commodore bitmap mode by using Antic Mode 4 and DLIs changing the character set down the screen.
So many bugs crept in, that after about 6 hours over a couple of nights, I decided to scrap it and use the approach I have taken:
The original code is probably 10% modified, with another 15% or so of native Atari code tacked on.
VBXE is used to blit the Commodore bitmap onto an Atari bitmap copy, and to copy the Plus4 Attribute bytes to VBXE attribute maps.
The pain in that is that the Plus/4 pairs together the Colour nybbles for mc-bitmap pairs 01 and 10 into each byte, and same with Luma, wheras VBXE has one byte that has both Colour/Luma for each Playfield type. So, quite a bit of code reworking to get that part done.
The sound is untouched from the original. Since the Plus/4 only has 2 voices, we can just use 2 pairs of Pokey voices in 16-bit mode.
The program maintains "TED Shadows" and a VBlank routine simply converts the audio frequency values to what the Atari would use, and does a table lookup to generate tone or noise with the appropriate volume levels.
All up (disregarding the initial wasted hours), about 12 hours work today and 6-8 hours since last weekend to get to this stage. The game itself was working after maybe 2-3 hours, most of the rest has been getting things looking right.
Edited by Rybags, Fri Nov 19, 2010 10:16 AM.