I played some bigtime with VecFever – and juggled Karl Quappe code like there is no tomorrow.
There is always so much more that one can do…
Karl Quappe now “natively” supports the VecFever, which means mainly two things:
- it recognizes if it is played from a VecFever and uses it (instead of the DS 2431 eEprom) to store highscores and options
(in case you forgot – a vectrex bin can save up to 4096 bytes to the VecFever – and load them again)
- you can leave Karl Quappe with a button and go back to the VecFever main menu
While I did that in one day it wasn’t really “flowing” out of my fingers, since the documentation is still a bit sparce. I just had a look in my email folder and I really sent 18 emails to poor Thomas yesterday (and got an equal amount of responses 🙂 ).
I think I will stay a little bit more quiet from now on. On the other hand isn’t it nice to be excited once in a while?
For a couple of weeks Karl Quappe is now a 32k bin. Funny thing – it stays 32k while I keep adding stuff to it. Since I hate stripping out things I did befor – I usually just add. And with each addition I now not only go cycle hunting, but also byte hunting.
If anyone ever asks what is the best way to optimize – the simple answer is: “There must be need to do so!”
So – Karl Quappe now support DS 2431 and VecFever both – and uses some autodetection. I added three different game modes:
- Tournament – this is the “normal” one or two player game, 5 lifes and highscore saving
- Training – the “old” frogger like game, with a continue mode (no highscore), once you have a really big score, you can also chose which level to train (the big score must not be achieved in training though)
- Hardcore – one life, no extra lifes – highscore saving – this mode I really enjoy, it is exciting, each step is a possible “perma-death”
There are new sounds, new options and stuff I will not talk about. There is an atraction mode, which plays 5 levels, the “twinklers” on the title, the title bitmap and so on…
Another funny thing – each time I look at the code there is something else that I recognize that can be enhanced.
Today I made my usual “roundtrip” thru the main loop and found optimization opportunities I missed, quite a few actually.
I mean – the code is 18 years old and I literally looked hundreds of times thru it – some eighteen years ago and naturally recently. But today I managed to find another 600 cycles that were lying around waiting to be found. With all the added stuff (music, more vectors for the sprites, sound effects, frog animation, girl animation, highscore STRING, life STRING, level STRING …) the first 8 levels still refresh under 29,000 cycles (and the complete game in 30,000 cycles = 50Hz).
Ok I get it, enough selfcongratulations 🙂 – it is just that I am very pleased with the result and once again (till bugs are found) – finished.
To compare scores (the scoring did not change to the old Frogger):
- Tournament mode: 46,540 – level 12 (and 40,420 – level 11) the two games I tried to get a score to the VecFever
- Hardmode: 37,590 – Level 10 (only one try – which I’m also quite proud of – you know, one life. and such…)