Frogger revisited

I “talked” about it for quite some time – but this week I actually did some Frogger programming.

Frogger Special edition

froggif

Following things are on my schedule:

  • arcade music and sound effects
  • smoother graphics
  • keeping the “under 30000 cycles” barrier
  • frogger animation
  • top down view (because so many people don’t like the side view)
  • two player (one after another)
  • perhaps highscore saving
  • nicer intro

Over the last weeks I sometimes edited some vectorlists in Vide – but only this week I put the first batch of them together and implemented them into frogger (see Gif – image).

This was more changing of the original source than I expected – since the player “sprite” wasn’t animated befor. And getting into 18 year old source code is no mean task either.

Anyway – as you can see top down (& animated) froggy is implemented.

As I have written befor (again nearly 20 years ago), one of my main targets with frogger has always been that it should do everthing within 30.000 cylces for the display to stay “wobble” clean.

Since I want to add some more features I had to look at the code again.

I tweaked and changed the vectorlist generation part till it was absolutely “mega-performat” – really – the first frogger level (one of the most busy ones) did refresh in about 22.000 cycles!oldfroggraphics

Only thing is – the graphic was the same as it always had been:

It was the “typical” vectrex vector graphic, where you as often as not see a “dot” on one side, because the light was switched on too soon.

Tada!

Look at new Frog:

Isn’t that beautifull?

Even if I did it myself I am absolutly thrilled how newfrognice vectors without dots look :-).

For insiders:

  • at first I tried the usual way, using T1 timer for scale and ramp, and shift for blanking
  • no matter how hard I tried and tweaked there was always some “overlap”
  • than I tried using orb PB7 (ramp) manually and BLANK manually (CB2) – after some tweaking this actually did work – about as good as you can see in the image – but I couldn’t figure out how to make these routines fast enough to be usefull with frogger (the 6809 has one 8bit register to few)
  • the left image was produced with routines of a hybrid nature, I use the T1 timer to switch ramping on/off, but set the BLANK signal manually (CB2, meaning I don’t use the Shiftreg at all for any of the output)
  • with very carefull timing, you can get smooth vectors and can still optimize to be usefull with a large amout of displaydata
  • Frogger level 1 refreshes with these routines (and arcade music running) in just under 25000 cycles

Needless to say – while Vide is still a very good emulator – these kinds of timing experiments require a live and working machine.

Another beautifull thing is – it seems the routine does work on all vectri I own flawlessly (I have three different vectrex, one of them of the NoBuz Generation).

Cheers

Malban

And finally some audio/visuals – so you can here the first steps of arcade quality (but as you see – the transition is not complete yet…)

Tagged on:

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.