pouët.net

The Last Traktor 3 by Horizon
screenshot added by Optimus on 2004-02-10 12:48:40
platform :
type :
release date : june 1992
release party : Hurricane & Brutal Summer Party 1992
compo : c64 demo
ranked : 1st
  • rulez 34
  • is ok 0
  • sucks 0
popularity : 60%
 60%
  • rulez 1.00
alltime top: #3334
added on the 2004-02-10 12:48:40 by Optimus Optimus

popularity helper

increase the popularity of this prod by spreading this URL:

or via: facebook twitter pinterest tumblr

comments

Great vectors!!! I like the wireframe hidden line with the morphing dots effect very much too!
rulez added on the 2004-02-10 12:49:33 by Optimus Optimus
I once saw the title screen of this prod in an old computer-magazin, and I thought it was some kind of a joke, 'cos the title seemed so funny (it still is, but now it makes sense :)
added on the 2004-02-10 13:29:15 by Gargaj Gargaj
horizon owns!
rulez added on the 2004-02-10 16:59:19 by ricky martin ricky martin
http://www.pouet.net/prod.php?which=8559 <--- parody of that demo:D
rulez added on the 2004-02-10 18:31:42 by uns3en_ uns3en_
coolio
rulez added on the 2004-02-10 19:55:58 by NuKem NuKem
The vector part with a bunch of filled objects, morphing line vector and glenz, all in the same part, totally owned the crowd @ the Hurricane/Brutal party, and it still rules.
rulez added on the 2004-02-10 20:41:50 by cruzer cruzer
ah yeah...this is whut i am talking about..it's the bomb..one of my all time fav demo. The raytracin and the vector parts are the best ever done on the C64. The music is also very good, right now the Vector tune by Boogaloo is pumping out of my Cambridge speakers..thankz to Sidplay.
I have found some intresting facts about this demo on comp.sys.cbm, is a bit long but it's worth it..

Here's the story about the demo:

I and Exilon had a great demo idea for the Amiga. We spent a
whole year coding on that demo - not only because the demo
was THAT complicated, but we did not know all that much about
coding on the Amiga. The demo is called 'Virtual Intelligence',
and contains some nice 3D vector objects with 8-color bitmaps
on the surfaces. As we developed the demo, I promised a stupid
thing:

I will not return any Coca-Cola cans for recycling until I win
another demo-competition!

Oooops! When we released the 'Virtual Intelligence' demo at
The Party'91 we only reached 4:th place (out of 25, so it was
not _that_ bad, for a first-time demo)!!!
- Shit! I thought. We will probably never have such a good demo
again for the Amiga. When will I be able to return my Coke-cans?

A few weeks after The Party, we sat at my place, calculating the
possibility of making a good filled vector routine on the C64,
based on the vector routine we have made on the Amiga. We dis-
covered that it really was possible. Our idea was that all
routines in the demo must be fully optimized, from the multi-
plications to the line drawing to the filling and the double-
buffering.

The fundamental principles:
Optimizing by squeezing machine cycles would not gain enough.
The optimization must be on the algorithms themselves. Code
optimizing is easy when the algorithm is simple.

We discovered that the EOR filling in columns is the best. We
decided to sacrifice memory for a complete 16*16 char fill as
an unrolled loop. The fill algorithm could not be more simple
than that, so we considered it fully optimized. Thanks to
the fill being an unrolled loop, we could take advantage of
the fact that a rotating object cannot reach any of the
corners of the 128*128 pixel area without clipping at the
sides of the square area. We then filled only the circle
that the objects could occupy, gaining even more time.

The line routine was a little harder. It had to be lightning
fast, but also 100% accurate. It had to produce exactly the
same line when we drawed it from X1,Y1 to X2,Y2 as when we
drawed it from X2,Y2 to X1,Y1. We already knew how we made
the Amiga blitter do this, so we tried to emulate the
blitter algorithm in another unrolled loop. When we then
drawed lines, we jumped into the unrolled loop at the right
position depending on where the line should start, and put
an 'RTS' where the line should end, restoring the code when
the line was finished. Even this we considered fully opti-
mized.

Then there were the vector calculations. We used most of the
ideas from the Amiga demo. We use a 3*3 matrix multiplication
routine. We took the matrix creation routine and converted it
to 6502 assembler, but used 8-bit arithmetics instead. The big
problem was to multiply the vectors fast enough. We had to
invent a really fast multiplication routine. We discovered the
square-sum method, and implemented the matrix multiplication
in an unrolled loop as well, using 6-bit (I think) precision
to avoid overflow and rounding problems. Some rounding was
built-in into the square-sum tables, as far as I can remember.
As the square-sum multiplication only takes about 30 cycles
per element, we considered this fully optimized as well.


What have we got?

- A fully optimized unrolled fill routine
- A fully optimized unrolled line routine
- A fully optimized matrix multiplication routine
- A fully optimized unrolled clear routine, based on
the fill routine

No compromises. It took us almost half a year to create
all these things. Nearly half of the time we sat at my
kitchen table calculating and discussing. We did not code
anything until we knew that we had the best algorithm.

During the process, we came up with new ideas: the glenz,
the pixel transform, and the ray tracing part. The 2D
transform took us only about 1 week to develop. The glenz
was hard to do, because it had both transparent and non-
transparent surfaces (which no glenz I've seen after that
have had, only transparent surfaces). We used sprites for
the non-transparent surfaces, thus having two unrolled line
routines and two unrolled fill routines filling up the
memory completely.


Well, Exilon could not come to the party, so I and Pernod
had to finish the demo ourselves. I optimized the 2D
transform analyzer a lot, and had LOTS of trouble crunching
the vector part. I delivered it several hours too late to
the party staff, but they allowed us to compete anyway.
Well, you all know the rest. We won by 1 vote (I think)
over Censor Design. Psycho/Censor was not all that happy,
since he was the one who helped me to crunch the demo.
Thanks a lot, Psycho!!!

We won 6000 Danish crowns, but they were not able to pay
us because the party was a big financial catastrophy.
But when I got home, I could at last return all my Coke
cans. There were 639 of them, giving me 319:50 SEK. I
kept my promise...:-)


What did I want to say with this? Well, I want to say that
I think this demo is the best I and Exilon ever made and
ever will make. I also think that it still has some of the
fastest 3D filled vector routines on the C64. I am mighty
proud of it!!!

If any of you want to see the Traktor demo, I'll be glad
to mail it to you. Also, I am willing to release the
source. I am not worried that people will rip the routines
without credits, because I know that we made it first.

I will work on the source with Paul and then post it on
the net or directly to the interested ones by e-mail.

If any of you has any questions, email me at:

erenie@ere.ericsson.se

That's all folks!!!

Linus Nielsen/Boogaloo of Horizon



rulez added on the 2004-02-10 21:55:00 by bigpimpin bigpimpin
wow, thanx bigpimp for the long story. This means that since the Last Tractor noone ever could do a better vector routine. Even today's best routines uses THESE methods :)
rulez added on the 2004-02-11 12:01:27 by Oswald Oswald
HORIZON RULERZ!!!
rulez added on the 2004-02-11 12:33:58 by elkmoose elkmoose
rulez added on the 2004-02-11 12:41:15 by p01 p01
@Oswald:

Horizons vector routine sure ruled/rules (like I allready wrote) but ofcuz it's not impossible to improve it. For instance their line routine takes 22-26 cycles/pixel and the filler uses 8 cycles/byte while my newest vector routine is using 17-18 cycles/pixel and 6 cycles/byte.

Not that I'm claiming my part with one little 2nd line object w/ precalculated coords is cooler than HZ's part with lotsa big realtime objects (although my one is faster :)) - it's just to show that there actually is room for improvement. Bet almost any routine could be improved, even if we can't figure out how to do it.

Maybe when AI reaches an IQ of a million we'll know the true limits of the c64, but so far I can't really see how you could claim with certanty that something could never be done better.
added on the 2004-02-12 05:13:56 by cruzer cruzer
rulez added on the 2004-02-12 05:42:50 by psenough psenough
the rulers!
rulez added on the 2004-12-07 10:43:03 by hollowman hollowman
holy poop, smooth ! press "cbm" ("CTRL" in Vice) to freeze the rotation of the objects :)
rulez added on the 2005-03-14 23:41:50 by Weyland Yutani Weyland Yutani
This is very, very, very good. I especially like the vectors.. they look so "real" compared to many other C64 vector routines I've seen.
rulez added on the 2005-03-15 10:02:12 by Preacher Preacher
Very good production, coder prOn.
Linus Nielsen: Your contribution really rocks.

rulez added on the 2005-09-22 13:21:13 by ALiEN^bf ALiEN^bf
nice story =)
rulez added on the 2005-09-22 13:24:00 by dipswitch dipswitch
A great demo and cute graphics from Pernod
rulez added on the 2005-09-22 17:41:23 by RRR RRR
rulez added on the 2006-01-26 16:22:50 by Skate Skate
Greatness, the music in the raytracepart is one of the best tunes ever on c64
rulez added on the 2006-01-26 16:28:49 by britelite britelite
Überrulz0r!!!! And nice story as well! :)
rulez added on the 2006-01-26 17:18:33 by StingRay StingRay
yes.
rulez added on the 2006-01-26 19:56:30 by Gargaj Gargaj
great for its tiime, yet these übervectors with aaaaaaaaaaaaaall those _fully_ optimized routines and algorithms seem a little slow to me :D
rulez added on the 2006-01-26 20:41:07 by Krill Krill
Hehe, I knew those statements would come back and haunt me some day... :-)

Boogaloo/HZ
rulez added on the 2006-03-16 16:21:30 by LinusN LinusN
Fucking awesome!
rulez added on the 2008-01-25 23:53:30 by Alpha C Alpha C
Megha Megha :-)
rulez added on the 2010-11-11 18:47:47 by w00t! w00t!
Lovely tune and lovely vectors
rulez added on the 2015-02-07 19:29:03 by Harekiet Harekiet
great show
rulez added on the 2015-05-23 00:28:28 by gentleman gentleman
For sure ahead of its time.
rulez added on the 2015-05-23 09:24:10 by axis^oxy axis^oxy
Great story and a great demo. The morphing and the glenz are very nice!
rulez added on the 2015-05-23 10:34:07 by Kylearan Kylearan
nice trip to the early 90s :)
rulez added on the 2015-05-24 01:29:12 by Triace Triace
Great tunes :)
rulez added on the 2015-10-10 12:13:01 by Sir_Lucas Sir_Lucas
Impressive
rulez added on the 2016-09-07 14:38:58 by Buckethead Buckethead
...even greater vectors (compared to few months older Elysion) and also cool tunes + gfx
rulez added on the 2018-07-18 10:37:13 by Serpent Serpent
Nice
rulez added on the 2018-07-18 11:26:23 by BiTL BiTL
nice

submit changes

if this prod is a fake, some info is false or the download link is broken,

do not post about it in the comments, it will get lost.

instead, click here !

[previous edits]

add a comment