| |
Fix
Registered: Feb 2003 Posts: 54 |
Sprite Multiplexing - Myth Busted ?
Many many years ago when I first saw the amazing effect were you have more than 8 sprites at same time I were thrilled.
Don't have a clue who did the first spritemultiplex routine.
A master brain wizard who have found another cool bug in the vic ii chip.
Or maybe not ?
Some time ago I actually read whole my programmers reference manual, where I found an very interesting notice in the sprite chapter were they says it's possible to have more than 8 sprites at same time using advanced technics, and some pages later it does tell you how to do this effect with raster interupt waiting.
It does not exactly tells you how, but it tells you it can be done.
Some my thought here,
Then Commodore Did know this feature already from start ?
Is it a bug or a feature that the designers added ?
Is there other cool routines that actually Commodore knew and wrote about ?
Or is this already known for the last 15 years ? |
|
| |
Graham Account closed
Registered: Dec 2002 Posts: 990 |
sprite multiplexing is relatively obvious, kinda like screen splitting which the raster irq was made for. but i remember that some commodore spokesman denied the possibility to display graphics in the border area. |
| |
Bitrapper Account closed
Registered: Nov 2004 Posts: 8 |
yes,
commodore said, that i´t would not be possible to show graphics in the border.
but we all know it is possible. :-)
about your first question with the sprites:
i remember a Demo from Horizon in which they showed a lot of sprites flying in a circle and they were prouldy counting them.
i mean the sprites were showing letters.
T. |
| |
ready.
Registered: Feb 2003 Posts: 441 |
I've always been interested in commodore 64 unknown features discovering history. I think it would be interesting to write an article on it. When the c64 was born there were many things people didn't know about and were discovered during the years. For example, who and when found out that the border could be opened? Who found out about digis playing on the sid?..... |
| |
JackAsser
Registered: Jun 2002 Posts: 2014 |
People have _not_ landed on the moon and hackers have _not_ put graphics in the border of a c64. You have all been fooled by propaganda. People WAKE UP!!! |
| |
hollowman
Registered: Dec 2001 Posts: |
quote from c= hacking #8
Q $055) The box that the C64 comes in has some propaganda on the side
describing the unit. In the specifications section, it claims how
many sprites can be on screen at one time?
A $055) I neglected to note that the Commodore 64 packing box has underwent
many changes. However, for quite a while, CBM used a blue box with
many views of the 64, and a specification list on on side of the box.
On that spec list, it claims that the the 64 can have "256
independently controlled objects, 8 on one line." Why is this
important? It gives us a clue that the VIC-II designers figured people
would and could use the interrrupts on the VIC-II to change sprite
pointers.
|
| |
H.O Account closed
Registered: Oct 2002 Posts: 70 |
Quote: I've always been interested in commodore 64 unknown features discovering history. I think it would be interesting to write an article on it. When the c64 was born there were many things people didn't know about and were discovered during the years. For example, who and when found out that the border could be opened? Who found out about digis playing on the sid?.....
Depends on which border.
For the top border, most people seems to agree that Flash Inc. was the first to do this.
For the side-border, there was a bit of conflict around this (if I remember correctly) where 1001 and Sodan (if my memory serves me right) both claimed to be first. Personally I've always seen 1001 crew as the creators here though.
For full screen there is no doubt (to my knowledge) that this was created by 1001 crew.
Samples I have no idea whether you can find a first on. It was used in several games -- for example Ghostbusters, Impossible mission, etc -- and also used in speec synthezisers (such as SAM) . Early versions used turning on and off the volume to create this effect.
Regarding the original question, about 8++ sprites on the screen; as already mentioned this was a know feature of the c64 and it certainly was planned. It was used fairly early in some games (sorry, no title comes to mind) and was also used in several early (depending on what you mean with early :) ) demos.
|
| |
SIDWAVE Account closed
Registered: Apr 2002 Posts: 2238 |
The first sprite multiplexer, I think was made by Ray of Triton Technology. |
| |
Ben Account closed
Registered: Feb 2003 Posts: 163 |
@H.O.: Flash _inc_ ? You must be kidding. And have you ever come across something like that from Sodan?
@rambones: Well, if you take multiplexing as reusing sprites later during the same frame, it is much, much older. What Ray did is throwing in some kind of sorting algorithm and sinus movement. Are there not older demos containing such enhancements? |
| |
Fix
Registered: Feb 2003 Posts: 54 |
This is what I ment, Commodore 64 VIC chip designers were first with Multiplex (more than 8 sprites on screen) since they mention it in my book and even how to make it happen..
And what I wonder, is there more "bugs/routines" the scene used that Commodore allready knew/had done before us?
|
| |
H.O Account closed
Registered: Oct 2002 Posts: 70 |
Quote: @H.O.: Flash _inc_ ? You must be kidding. And have you ever come across something like that from Sodan?
@rambones: Well, if you take multiplexing as reusing sprites later during the same frame, it is much, much older. What Ray did is throwing in some kind of sorting algorithm and sinus movement. Are there not older demos containing such enhancements?
Sorry, I meant Flash Cracking Group (or actually Flash) .
I have been emailing a bit with a former Flash Inc member recently, and my brain must have messed things up. |
| |
Bitrapper Account closed
Registered: Nov 2004 Posts: 8 |
u can read about flash and 1001 crew and side and upper boarder here:
http://noname.c64.org/csdb/forums/?roomid=7&topicid=10907#13660
In The Final Edge the bordermonster himself, TSI (as he opened the C64 sideborder as the first person on earth) of the legendary 1001 Crew is referring to 'flash-baby' or 'the bitstoppers' as the ones first opening the upper- and lowerborder. Also, Honey of the 1001 Crew credits: "I think that was done by Flash (or at least someone from Germany).", for doing so, as you can read in the interview on C64hq.com (http://www.c64hq.com/index1024.php).
I hence reckon it is fairly likely Flash of Flash Cracking Group deserves credits for opening up the lower- and uppersideborder..
T. |
| |
Ben Account closed
Registered: Feb 2003 Posts: 163 |
@HO: NP.. They would have loved it, though :)
@Bitrapper: Good to see you did find my post ;) |
| |
Oswald
Registered: Apr 2002 Posts: 5086 |
even an old hungarian reference guide (the most used amongst hungarians) says something like: "there can be 8 sprites max onscreen, but using the vic's interrupt system it is possible to display more" no more no less.
The designers of VIC must have been 100% aware of the possibility of sprite multiplexing, no doubt. They must have know how the hardware works, that they have designed. Probably FLI, and opening the borders would suprize them, but not much. They know (knew) why and how those are possible, only they probably havent thought of the possibility of those tweaks. |
| |
Graham Account closed
Registered: Dec 2002 Posts: 990 |
it is still quite unclear who did open upper/lower border first. the first demos i have which contain such a border routine are from december 1985, and one or two months before that holger gehrmann (later the boss of reline) published an article in the 64'er magazine. on the radwar disks i found code snippets which seem to be the code from that article, so maybe it was sent around this way and a month later the first demos used it. |
| |
Graham Account closed
Registered: Dec 2002 Posts: 990 |
@Bitraper wrote:
"On that spec list, it claims that the the 64 can have '256
independently controlled objects, 8 on one line.' Why is this
important? It gives us a clue that the VIC-II designers figured people would and could use the interrrupts on the VIC-II to change sprite pointers"
is that quote exact? if not, maybe those 256 independent objects are the 256 characters in a charset. |
| |
Graham Account closed
Registered: Dec 2002 Posts: 990 |
rambones wrote:
"The first sprite multiplexer, I think was made by Ray of Triton Technology."
nopes, triton tech did the first DYSP though. triangle invented DYSP but didn't actually do it :D |
| |
Bitrapper Account closed
Registered: Nov 2004 Posts: 8 |
Quote: @HO: NP.. They would have loved it, though :)
@Bitrapper: Good to see you did find my post ;)
@ben:
no problem. i thought your posting makes a good sense.
so i posted it again with the link in here.
it was okay or? |
| |
Graham Account closed
Registered: Dec 2002 Posts: 990 |
again the "256 objects but only 8 on a rasterline" thing: on another forum it was mentioned that the c64 sprite system was heavily inspired by the ti99/4 sprite system. that one could do 32 sprites (size 16x16) but only 4 on a rasterline, so basically it was doing hardware sprite multiplexing. maybe the c64 engineers thought that they rather save those transistors needed for hw multiplexing because they could use those transistors on other stuff and software can do the same but with far greater freedom. |
| |
Cruzer
Registered: Dec 2001 Posts: 1048 |
how the fuck did they cum up with 256 sprites??!? |
| |
Fix
Registered: Feb 2003 Posts: 54 |
simple
8bit computer = $ff = 0-255
not 256 sprites at screen, only images in memory.
|
| |
Cruzer
Registered: Dec 2001 Posts: 1048 |
OIC :) |
| |
bstard Account closed
Registered: Nov 2004 Posts: 1 |
sprite multiplexing is a technique, not a bug.
i remember reading in some old discmag (think it was Iquiry#01) that '1001 Crew' broke the uper/lower border first.
|
| |
Graham Account closed
Registered: Dec 2002 Posts: 990 |
nopes, 1001 only were the first release something with an open sideborder. in one of their demos ("soon") they mentioned that they didn't know who opened the upper/lower border first. |
| |
Wanderer Account closed
Registered: Apr 2003 Posts: 478 |
Circle Twist I and II by Bros.
I love this multiplexer because of the fact that the sprites not only multiplex but sort of bounce as if dancing, and then squish up against the side borders. |
| |
Death Demon Account closed
Registered: Feb 2005 Posts: 68 |
I would be surprised if anybody really claimed that they invented this technique. I think the first person that got 256 working without any flicker was interesting, but more than 8 wasn't a big deal and the technique was used by people that had no interest in demo coding. I don't honestly know if I would even classify it as a technique. It's just updates after the raster was done drawing. That's the same technique used for anything drawn on the screen.
Still, some neat things were done with it as Wanderer points out. |
| |
TDJ
Registered: Dec 2001 Posts: 1879 |
Quote: I would be surprised if anybody really claimed that they invented this technique. I think the first person that got 256 working without any flicker was interesting, but more than 8 wasn't a big deal and the technique was used by people that had no interest in demo coding. I don't honestly know if I would even classify it as a technique. It's just updates after the raster was done drawing. That's the same technique used for anything drawn on the screen.
Still, some neat things were done with it as Wanderer points out.
Well, I remember the first time I found out how to do it, after spending a night coding with a mate of mine, failing to solve our problem and then doing so the next morning within 15 minutes - I was fucking proud, and I guess all the coders who did it themselves before and after me were as well ;) |
| |
Cruzer
Registered: Dec 2001 Posts: 1048 |
Death Demon: Noone has done 256. 120 is the record for 21 pixels high sprites. |
| |
Ben Account closed
Registered: Feb 2003 Posts: 163 |
IMHO it is not so much the actual plexing (which even the designers of the VIC chip must have considered possible), but primarily the actual sorting of the 'free' Y-locations (of a multitude of sprites) which is mostly referred to as a 'sprite multiplexer'. |
| |
Graham Account closed
Registered: Dec 2002 Posts: 990 |
oh no not that discussion again. |
| |
Ben Account closed
Registered: Feb 2003 Posts: 163 |
Quote: oh no not that discussion again.
Did I miss posts? Anyway, my opinion is not open for any discussion.. |
| |
Graham Account closed
Registered: Dec 2002 Posts: 990 |
yes i know. still 99.9% of the scene will agree that sprite multiplexing is "reuseing sprites on the same frame". the sorting method used does not matter. |
| |
enthusi
Registered: May 2004 Posts: 677 |
if keep out the sorting there is nothing left to 'invent' since its no new idea at all :)
Which is btw. my opinion - spritemultiplexer are neither bug nor invention. |
| |
Ben Account closed
Registered: Feb 2003 Posts: 163 |
Quote: yes i know. still 99.9% of the scene will agree that sprite multiplexing is "reuseing sprites on the same frame". the sorting method used does not matter.
All I mean to say is that when we come to talk of the 'effect multiplexer', that I'd say an operation (changes in location) makes ordinary plexing one..
|
| |
Death Demon Account closed
Registered: Feb 2005 Posts: 68 |
Ben, I'm confused by your terminology. What is "ordinary plexing"? A multiplexing operation has a single output and chooses between multiple inputs. In the case of sprite multiplexing, you are choosing between several x/y locations and possibly several sprite pointers. You can also multiplex between sprite data, but you won't be able to get as many sprites on the screen at the same time.
Cruzer : You sure it was only 120? I thought I remembered someone in Europe having done > 200 (thought it was 256) a very long time ago. I think he had all the borders off too and placed sprites in the borders. He was updating positions on the raster line as well so that once he got done drawing sprite 0, he moved it to the right. Can't remember though as it's been over a decade since I've done anything. |
| |
Graham Account closed
Registered: Dec 2002 Posts: 990 |
there is a difference between sprite splitting and sprite multiplexing. sprite splitting is using a sprite and change x-position during sprite display. this way you get the impression of max 21 "objects" which are in fact just one sprite. but this is not counted as multiplexing since it does not multiplex a sprite.
since sprites of a c64 are 21 pixels high, you can do max. 112 sprites on a frame. 120 if you also count sprites which are on two frames at the same time...
crossbow did a little routine to shrink the sprite height and made a 144 sprites multiplexer with that, so the record of real sprite multiplexing is 144.
those records which have 200 and more "sprites" in fact often only have a third of that amount of real multiplexed sprites... 60 to 80. |
| |
Death Demon Account closed
Registered: Feb 2005 Posts: 68 |
That's really a misuse of terminology. But what did we really know when we came up with the terminology in the first place? In any event, a multiplex operation is one in which you choose between multiple inputs to go to a single output. Be it X, Y, or sprite data. |
| |
Oswald
Registered: Apr 2002 Posts: 5086 |
definiton of multiplexing: Combining multiple signals (analog or digital) for transmission over a single line or channel.
We have one sprite (input) and you get multiple outputs of the same sprite. so multiple output from single input. in other words you make a lot of things from one thing. Definitly doesnt fits the definition above. But who gives a fuck ?
how about starting a topic about dycps ? must be just as interesting as this one. |
| |
TDJ
Registered: Dec 2001 Posts: 1879 |
It's an anti-multiplexer!
Now people, for those who think this discussion is tiresome, why not just shut up about it and let those involved have their fun, hmm? |
| |
Death Demon Account closed
Registered: Feb 2005 Posts: 68 |
If you use the same sprite data, then you are doing what's called "Address Multiplexing". You are altering the X/Y address for the sprite. Choosing between several X/Y values for a single X/Y storage register. Since the addresses here are related to the sprite, the technique would still be called Sprite Multiplexing. Make sense? |