Jump to content



1

DEV: Ballblazer Techniques


11 replies to this topic

#1 tschak909 OFFLINE  

tschak909

    Chopper Commander

  • 161 posts
  • Location:USA

Posted Wed May 24, 2006 2:40 PM

I have always been curious, ever since I started playing it many years ago, the graphics rendering techniques used in Ballblazer. They really did some nifty DLI techniques. The screen seems to be implemented using the monochrome GTIA mode, but how was the rotofoil perspective rendering done, or the perspective rendering? .... I am going to try disassembling it soon, but I was wondering if someone else has dissected this game.

-Thom

#2 Heaven/TQA OFFLINE  

Heaven/TQA

    Quadrunner

  • 8,111 posts
  • Location:Baden-Württemberg, Germany

Posted Wed May 24, 2006 2:52 PM

i would assume simply by looking at the screenshots...

antic e + DLIs
antic 4 for the score
player/missles for ball and the ships... nothing special here imho...

let us see what atari8winmonitor shows when looking at the dlist

antic e which are 256 bytes long scanlines plus hscrol activated for the perspective scrolling... nice...so they used atari specific stuff... ;)

and the zooming etc is nicely precalculated and simulated with the x2,x4 sizep0 registers... you can check that by looking at the gtia registers...



i do not know what you mean by monochrome gtia mode...

#3 Heaven/TQA OFFLINE  

Heaven/TQA

    Quadrunner

  • 8,111 posts
  • Location:Baden-Württemberg, Germany

Posted Wed May 24, 2006 2:55 PM

the perspective moving is precalculated animation as the angle of the "checkboard" you are looking at is fix...so you can do the colour changes by DLI or you can have a cycle of prerendered gfx in ram and you move the gfx by changing the dlist...

games with this technique... dimension x, trailblazer...rainbow walker and others...

#4 Bryan OFFLINE  

Bryan

    Quadrunner

  • 7,626 posts
  • Cruise Elroy = 4DB7
  • Location:Port St. Lucie, Florida

Posted Wed May 24, 2006 2:57 PM

I am pretty sure the screen is done completely with dlist tricks. Basically, each line is wider than the screen and is scrolled right or left (by differing amounts on each line to give the perspective), and the color assignments are shifted up and down to simulate forward/reverse movement. I'm guessing it was much easier to do on the Atari than on other platforms.

-Bry

#5 tschak909 OFFLINE  

tschak909

    Chopper Commander

  • 161 posts
  • Location:USA

Posted Wed May 24, 2006 2:59 PM

nice. I'm just trying to get back into the swing of thinking like an atari 8-bit computer :-) and it's starting to come back to me bit by bit...

#6 tschak909 OFFLINE  

tschak909

    Chopper Commander

  • 161 posts
  • Location:USA

Posted Wed May 24, 2006 4:46 PM

it is worth noting that Ballblazer was done on the Atari FIRST, then ported. (Lucasfilm Games felt that the Atari 800 was the most powerful computer at the time.) :-D

#7 Almost Rice OFFLINE  

Almost Rice

    Stargunner

  • 1,993 posts
  • Prius rocks
  • Location:Houston

Posted Wed May 24, 2006 8:23 PM

View Posttschak909, on Wed May 24, 2006 5:46 PM, said:

it is worth noting that Ballblazer was done on the Atari FIRST, then ported. (Lucasfilm Games felt that the Atari 800 was the most powerful computer at the time.) :-D

You won't get any disagreement here. As a user at the time, I always wondered why Apple 2s and C64s were so popular.

#8 Rybags ONLINE  

Rybags

    Quadrunner

  • 10,323 posts
  • Location:Australia

Posted Wed May 24, 2006 9:03 PM

It looks like it uses a Kernal within the DLIs. The DLIs occur at the start of each checkerboard.

#9 tschak909 OFFLINE  

tschak909

    Chopper Commander

  • 161 posts
  • Location:USA

Posted Wed May 24, 2006 10:00 PM

so basically it's doing something like this on each horizontal line?

wait for a bit,
set new colour values into registers
wait for a bit longer,
set new colour values into registers...
etc?

#10 Rybags ONLINE  

Rybags

    Quadrunner

  • 10,323 posts
  • Location:Australia

Posted Thu May 25, 2006 12:07 AM

I haven't looked too deeply into it. It seems to have a table lookup for colours.

Each line is offset around 256 from the last... maybe to make the programming easier? The background is a repetitive set of data, they probably could have represented it using a lot less RAM... but chances are it's generated by the program rather than loaded from disk anyway.

#11 Heaven/TQA OFFLINE  

Heaven/TQA

    Quadrunner

  • 8,111 posts
  • Location:Baden-Württemberg, Germany

Posted Thu May 25, 2006 2:11 AM

the colours are not set honrizontal "on the fly" but for each scanline ones...

so...you have a table of precalculated ofsets for hscrol and the scanline offsets (remember each scanline is 256 bytes long)

so now assume that you have in a prerendered checkboard... now you simply change the colours of the checkboards one scanline earlier... what is happening? you "move" the checkboard...

i guess as well that the 256 scanlines (which is 1024 pixel in antic e) are used because the whole playfield in ballblazer is 1024x1024 pixel?

and when i started to code trackball (which later become Boinxx) it was a 3d type of game like ballblazer or trailblazer... unfortunatly i lost all source codes when i lost my usb stick on a business tripp... the basic was the same... a prerendered "checkboard" with 3d perspective, a precalculated lookup table for the perspective correct moving of the DLIs and voila...you had a nice moving 3d checkboard done by a simple DLI with less cpu usage... ;)

#12 Heaven/TQA OFFLINE  

Heaven/TQA

    Quadrunner

  • 8,111 posts
  • Location:Baden-Württemberg, Germany

Posted Thu May 25, 2006 2:15 AM

ah...i forgot to mention... you just need to precalculate the movment of one largest checbboard... after that you can simply switch the colours in reverse order and do that moving again... the human eye is so easy to fool and thanks to the maths...

what is more interesting in ballblazer is that they used antialising (no... it's not artifacting... ;)) and the zooming of the players and the ball..which i wanted to do for years as well... a nice prerendered sprite data with different zoom status plus combination of the "hardware" zooming of GTIA...

so... the they really used great atari specific hardware techniques...so the easiest thing to port on c64 was the soundtrack i guess... ;)




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users