Jump to content
IGNORED

How does Intellivision work ?


daldude

Recommended Posts

I watched some videos on Youtube about how Old School graphics work and how old school sound works and it said that the old systems including NES all did not have seprate video memory so they had to use the system memory for the graphics limiting how many colors could be on the screen at one time without using up all the memory for the actual game code and that you could only have 4 colors per "cell" or "color cells" . Does Intellivision have this same limitation or does it have separate video memory? The fact that Intellivision only has 16 colors kind of helps since you only have to worry about 16 colors.

 

They also talked about Sound they talked about square wave sound, triangle wave sound, pulse wave sound, sawtooth wave sound, PCM Samples Sound and FM Synthesis. What type of sound did Intellivision use?I know Intellivision does not have pulse Wave or sampling sound except for the Intellivoice that used sampled sound or digital sound.

Link to comment
Share on other sites

Both the INTV and NES had RAM dedicated for video/graphics.

 

 

 

SOUND CHIP

The sound chip is a GI AY-3-8914. This chip contains three separate channels of sound, each channel of which can be individually controlled for frequency and volume. There is also a noise generator on the chip, which can be added to any of the three channels. All three channels are mixed, and fed to the sound output of the TV.

Link to comment
Share on other sites

There have been some pretty impressive demos using the Intellivision sound chip to play digitized sound. It pretty much takes all the CPU's capabilities to do it, though. IIRC this technique was used in Carl Mueller's various Donkey Kong incarnations.

 

I believe the three channels on the chip are square wave, but not sure about the noise channel.

 

For Intellivision's graphics, there is an area of memory dedicated to the background tiles -- the BACKTAB. The display is 20 cards wide by 12 cards tall. Up to 64 of those cards can be in RAM as arbitrary cards, IIRC. That limitation is mainly due to how the system was manufactured. It's been proven that w/ a hardware mod, you could have more tiles in RAM, but of course, that's of limited utility.

 

The graphics chip has a few different modes that affect the colors available to the tiles, and up to 8 moving objects can be defined as well. The MOBs are only allowed a single color, but have double the vertical resolution of a background tile, if memory serves.

 

The programming forum here on Atari Age will have lots of info on this, as well as the Intellivision Wiki. Plenty of friendly experts on the forum here as well as the venerable Yahoo INTVPROG group, too.

Link to comment
Share on other sites

There have been some pretty impressive demos using the Intellivision sound chip to play digitized sound. It pretty much takes all the CPU's capabilities to do it, though. IIRC this technique was used in Carl Mueller's various Donkey Kong incarnations.

 

I believe the three channels on the chip are square wave, but not sure about the noise channel.

 

For Intellivision's graphics, there is an area of memory dedicated to the background tiles -- the BACKTAB. The display is 20 cards wide by 12 cards tall. Up to 64 of those cards can be in RAM as arbitrary cards, IIRC. That limitation is mainly due to how the system was manufactured. It's been proven that w/ a hardware mod, you could have more tiles in RAM, but of course, that's of limited utility.

 

The graphics chip has a few different modes that affect the colors available to the tiles, and up to 8 moving objects can be defined as well. The MOBs are only allowed a single color, but have double the vertical resolution of a background tile, if memory serves.

 

The programming forum here on Atari Age will have lots of info on this, as well as the Intellivision Wiki. Plenty of friendly experts on the forum here as well as the venerable Yahoo INTVPROG group, too.

where can I download some of these demos using the Intellivision sound chip to play digitized sound ?

 

Link to comment
Share on other sites

where can I download some of these demos using the Intellivision sound chip to play digitized sound ?

 

 

You can order the DK Arcade / D2K Roms here. (Not free, but the game's so good, it's worth it.) You can catch a video showing it here.

 

The most impressive demonstrations of this feat I personally know of are things I'm not at liberty to share.

  • Like 1
Link to comment
Share on other sites

 

You can order the DK Arcade / D2K Roms here. (Not free, but the game's so good, it's worth it.) You can catch a video showing it here.

 

The most impressive demonstrations of this feat I personally know of are things I'm not at liberty to share.

I know about D2K, I have that ROM plus DK Arcade and Ms Pac Man, I bought all of them and they are awesome.

Link to comment
Share on other sites

Let me see if I can satisfy your curiosity a bit. I'll simplify the descriptions a little for better understanding. Feel free ask more questions or look up additional resources for deeper technical information.

 

I watched some videos on Youtube about how Old School graphics work and how old school sound works and it said that the old systems including NES all did not have seprate video memory so they had to use the system memory for the graphics limiting how many colors could be on the screen at one time without using up all the memory for the actual game code and that you could only have 4 colors per "cell" or "color cells" . Does Intellivision have this same limitation or does it have separate video memory? The fact that Intellivision only has 16 colors kind of helps since you only have to worry about 16 colors.

 

The Intellivision had a video mechanism that older machines like the Atari VCS didn't have, but that was common in later machines: A built-in video controller with a buffer.

 

First a bit of techno-background.

 

An NTSC television displays video by rapidly drawing pictures once every 60th of a second. Just like cartoons and film, the rapid change in images is interpreted by the brain as a continuous moving picture. 60 was chosen because it coincided with the frequency of standard AC electrical service at the time, which simplified the technology involved in keeping the timing correct.

 

Each frame is composed of a bunch of horizontal rows of phosphors, called picture elements (PICture ELelementS = PIC-ELS = Pixels, geddit?). Each row, called a raster, is drawn one at a time by an electron gun that causes each picture element to glow a particular colour. The gun moves from left-to-right, top-to-bottom, through the entire screenful of elements, drawing each raster line one pixel at a time.

 

At some point in time, it was recognized that 60 pictures, or frames, in one second may be too much, so a clever compromised was devised: Only half of a frame is drawn at a time. On odd frames, only odd raster lines are drawn; and on even frames, the even raster lines are drawn. This may sound stupid or limiting, but it turns out that our visual acuity is so slow, it really doesn't matter.

 

After drawing an odd frame, as the even frame is drawn, the eye's persistence of vision will linger while the next frame is drawn on even lines. The end result is that, to the human brain, both odd and even frames seem to intermix. This is called interlacing, which you have probably heard before.

 

The fact that there may be different details between one frame to the next as they interlace, just adds to the brain's perception that motion is occurring, and it is interpreted as such. It's truly a brilliant piece of techno-biological engineering.

 

Right, so video game graphics.

 

In an old system like the Atari VCS, you controlled the video signal in the same way that the TV studio did: you have to generate the necessary instructions that guide the electron gun to draw the raster lines and glow the picture elements. There was no technology built in to do this except what you could call a low-level driver that controlled the raster gun.

 

That meant that if you wanted to draw a circle in the screen, your program had to have some sort of map of which specific picture elements to light up and with what colour, keep track of the movements of the electron gun as it scans each raster row, and wait until it reached the specific places where you want to "turn on" the pixels.

 

If your program worked, it had then drawn a circle onto the TV screen in one frame, which will then fade away by the time the raster gun circles back to draw the next one. If you wanted to keep the circle there, you had to do it all over again on the next frame, and the next, and so on, in a loop; 60 times a second, until you change the image to something else.

 

To add insult to injury, there was not enough memory to map the entire screenful of pixels, so additional clever techniques had to be invented to keep track of what to draw where. There wasn't even enough time between raster lines to write too much clever code. Remember, that raster gun moves like the wind to complete a frame in 1/60th of a second and it won't wait for anything.

 

This was called "chasing the beam," and it is hardcore macho programmer sh*t of the highest wizard order. So, the next time you see a blocky pixelated sprite on an old Atari game, make sure you tip your hat to the guy who figured out how to make it display anything at all.

 

Enter the video controller.

 

By contrast to the hardcore wizards that chased the beam for a living, the Intellivision guys had it easy -- very easy. In the Intellivision, a special circuit called the Standard Television Interface Chip (STIC), did all the magic to control the electron gun. It had an internal map of the screen and its picture elements, and it had very specialized code that knew how to translate that map into the signals needed to draw it on the screen, with perfect timing and accuracy.

 

Because the timing of the raster gun and the speed at which the STIC could control it were truly hard, unmovable limits, some compromises were done in order to accommodate all the features the console designers wanted the STIC to handle.

 

One such compromise was the resolution. By having the STIC tell the gun to redraw each raster line twice (which basically required little fancy trickery), they doubled the time available to draw the next pair. Consequently, the STIC could do more fancy stuff (composite sprite overlays, colour mixing, object collision detection, etc.), at the cost of half the resolution. It's a fair compromise.

 

All the Intellivision programmer had to do was to tell the STIC what to draw and the STIC will chase and wrangle the beam to get it done. This is where the video buffer comes in.

 

The Intellivision treats its screen as a matrix of 20 columns by 12 rows of characters. Each of these characters can be any of a set of 320 distinct 8x8 pixel pictures, known as cards, stored in memory. 256 of them are hard-coded into the Graphics ROM (GROM), and 64 are user-defined in Graphics RAM (GRAM).

 

The map of 20x12 characters describing which cards go where is a block of dedicated memory called the Background Table (BACKTAB), and is the means by which the programmer tells the STIC how to draw the screen. By changing the card code of a particular character address in the BACKTAB, the programmer changes the 8x8 picture that will be drawn by the STIC at its corresponding screen location.

 

For instance, a blank screen is created by setting all characters in the BACKTAB to the card number 0, which represents a blank card, i.e., a card composed only of pixels in the background colour.

 

It is the STIC's job to put it all together: to resolve the BACKTAB map and its corresponding picture cards into a matrix of pixels, apply any overlaying objects by compositing them one on top of the other, mix it all in, and render all the information to compose a single frame. The final composed frame is stored in a dedicated buffer in the STIC, which it then processes into the corresponding signals for the electron gun to draw it. 60 times a second.

 

The beauty of this system is that if the frame doesn't change, the STIC just continues sending the same signal to the electron gun, which persists the scene on the TV screen. It only has to make changes as parts of the buffer changes. The programmer does not have to do anything, just make his BACKTAB or GRAM changes as he needs to.

 

The STIC is good. We love the STIC. Video game programmers never had it so good. ;)

 

So... what about the video memory question?

 

Now, all that technology stuff aside, let's try answering your specific question. Does the Intellivision have dedicated memory for video as opposed to the NES which had to share it with game program memory?

 

The short answer is yes. The longer answer is yes, but in a different way than the question suggests.

 

The NES uses bitmaps to draw the screen. This is a matrix of pixels that compose the entire screen. It allows the programmer to draw his own scene, composite objects onto it himself to make more complex scenes, and then swap the "active" map with the new one in one go, giving the illusion of change or animation. The programmer can create any number of such "stand by" bitmap buffers for different effects or game-world states. He only needs to tell the video chip which of the buffers is the "active" one that should be used at any time. The NES video chip then takes the "active" map and generates the signals necessary for the raster gun to draw the frame.

 

The NES does not provide special "video memory" for these buffers, so if you want to get fancy with multiple ones, you'll be eating into your precious memory, the same used by your program.

 

The Intellivision, by contrast, uses a matrix of cards to compose the screen, each card being itself an 8x8 picture. There is only one such matrix, the BACKTAB, and it resides in a memory block dedicated to itself. The main difference is that there is no facilities on the Intellivision to get fancy with multiple screen buffers, or to swap them.

 

You could do something similar by duplicating the BACKTAB and manipulating multiple copies in RAM in order to switch them. However, the only ever "active" buffer is the One True BACKTAB, so you will always end up copying them back in order to get it displayed. This is not really worth the effort, and there are many other ways in which to achieve similar effects (e.g., like swapping the card code of particular BACKTAB characters).

 

 

They also talked about Sound they talked about square wave sound, triangle wave sound, pulse wave sound, sawtooth wave sound, PCM Samples Sound and FM Synthesis. What type of sound did Intellivision use?I know Intellivision does not have pulse Wave or sampling sound except for the Intellivoice that used sampled sound or digital sound.

 

I ran out of time, so I won't go into the sound details right now, perhaps later if there is interest. Suffice it to say that the Intellivision has three program-controlled sound generators, or voice channels, all of them of the squarest square waveforms you can imagine.

 

There is one noise generator that can be mixed with any channel at any time, and a single envelope generator that can be enabled for any of the channels. The noise generator produces white noise, which is a random distribution of frequencies at a specified amplitude.

 

Note that the noise and the envelope generators both are shared by all channels. This means that to control the noise or envelope for each channel individually, you'll have to do it yourself in software.

 

I hope this is less boring than I expect! :)

 

-dZ.

Edited by DZ-Jay
  • Like 3
Link to comment
Share on other sites

Great info, DZ. I love reading about the structure of the INTY. It makes me feel like I am closer to my life goal of programming a game. You should produce a series from the wee beginnings to a completed basic game. I would be the first to throw down some loot to have access to something like that. Someone did a nice job of creating a programming tutorial for the Nintendo on another site that I have started reading through, but I'm holding out for an Inty version.

Link to comment
Share on other sites

Great info, DZ. I love reading about the structure of the INTY. It makes me feel like I am closer to my life goal of programming a game. You should produce a series from the wee beginnings to a completed basic game. I would be the first to throw down some loot to have access to something like that. Someone did a nice job of creating a programming tutorial for the Nintendo on another site that I have started reading through, but I'm holding out for an Inty version.

 

Look here for a tutorial - though it's built around jzIntv and the SDK-1600. I worked through parts of it (a couple years ago) and learned a lot.

 

Not up to speed on IntyBASIC -- is there a 'Getting Started' guide for it? Sounds like it's a pretty high-quality effort (no personal experience with it yet), but I bet there will be one day, given the parties involved.

Link to comment
Share on other sites

While this is a good introduction to the inner workings of the Intellivision, the information pertaining to the NES is erroneous.

It's actually much like Intellivision in that it has a tile-based display and also its own dedicated video memory (both pattern and character). A stock NES does have enough for two screens, so double buffering is possible, but this is usually used for scrolling in one direction.

The big difference is that you have two bits per pixel, but only one background color, and then three colors per palette, of which there are only four. This is why NES backgrounds often look pretty drab. The Intellivision is capable of more colorful backgrounds.

For those who want more information, seek out one of the many technical documents available for the NES

Carl

  • Like 1
Link to comment
Share on other sites

Let me see if I can satisfy your curiosity a bit. I'll simplify the descriptions a little for better understanding. Feel free ask more questions or look up additional resources for deeper technical information.

 

 

The Intellivision had a video mechanism that older machines like the Atari VCS didn't have, but that was common in later machines: A built-in video controller with a buffer.

 

First a bit of techno-background.

 

An NTSC television displays video by rapidly drawing pictures once every 60th of a second. Just like cartoons and film, the rapid change in images is interpreted by the brain as a continuous moving picture. 60 was chosen because it coincided with the frequency of standard AC electrical service at the time, which simplified the technology involved in keeping the timing correct.

 

Each frame is composed of a bunch of horizontal rows of phosphors, called picture elements (PICture ELelementS = PIC-ELS = Pixels, geddit?). Each row, called a raster, is drawn one at a time by an electron gun that causes each picture element to glow a particular colour. The gun moves from left-to-right, top-to-bottom, through the entire screenful of elements, drawing each raster line one pixel at a time.

 

At some point in time, it was recognized that 60 pictures, or frames, in one second may be too much, so a clever compromised was devised: Only half of a frame is drawn at a time. On odd frames, only odd raster lines are drawn; and on even frames, the even raster lines are drawn. This may sound stupid or limiting, but it turns out that our visual acuity is so slow, it really doesn't matter.

 

After drawing an odd frame, as the even frame is drawn, the eye's persistence of vision will linger while the next frame is drawn on even lines. The end result is that, to the human brain, both odd and even frames seem to intermix. This is called interlacing, which you have probably heard before.

 

The fact that there may be different details between one frame to the next as they interlace, just adds to the brain's perception that motion is occurring, and it is interpreted as such. It's truly a brilliant piece of techno-biological engineering.

 

Right, so video game graphics.

 

In an old system like the Atari VCS, you controlled the video signal in the same way that the TV studio did: you have to generate the necessary instructions that guide the electron gun to draw the raster lines and glow the picture elements. There was no technology built in to do this except what you could call a low-level driver that controlled the raster gun.

 

That meant that if you wanted to draw a circle in the screen, your program had to have some sort of map of which specific picture elements to light up and with what colour, keep track of the movements of the electron gun as it scans each raster row, and wait until it reached the specific places where you want to "turn on" the pixels.

 

If your program worked, it had then drawn a circle onto the TV screen in one frame, which will then fade away by the time the raster gun circles back to draw the next one. If you wanted to keep the circle there, you had to do it all over again on the next frame, and the next, and so on, in a loop; 60 times a second, until you change the image to something else.

 

To add insult to injury, there was not enough memory to map the entire screenful of pixels, so additional clever techniques had to be invented to keep track of what to draw where. There wasn't even enough time between raster lines to write too much clever code. Remember, that raster gun moves like the wind to complete a frame in 1/60th of a second and it won't wait for anything.

 

This was called "chasing the beam," and it is hardcore macho programmer sh*t of the highest wizard order. So, the next time you see a blocky pixelated sprite on an old Atari game, make sure you tip your hat to the guy who figured out how to make it display anything at all.

 

Enter the video controller.

 

By contrast to the hardcore wizards that chased the beam for a living, the Intellivision guys had it easy -- very easy. In the Intellivision, a special circuit called the Standard Television Interface Chip (STIC), did all the magic to control the electron gun. It had an internal map of the screen and its picture elements, and it had very specialized code that knew how to translate that map into the signals needed to draw it on the screen, with perfect timing and accuracy.

 

Because the timing of the raster gun and the speed at which the STIC could control it were truly hard, unmovable limits, some compromises were done in order to accommodate all the features the console designers wanted the STIC to handle.

 

One such compromise was the resolution. By having the STIC tell the gun to redraw each raster line twice (which basically required little fancy trickery), they doubled the time available to draw the next pair. Consequently, the STIC could do more fancy stuff (composite sprite overlays, colour mixing, object collision detection, etc.), at the cost of half the resolution. It's a fair compromise.

 

All the Intellivision programmer had to do was to tell the STIC what to draw and the STIC will chase and wrangle the beam to get it done. This is where the video buffer comes in.

 

The Intellivision treats its screen as a matrix of 20 columns by 12 rows of characters. Each of these characters can be any of a set of 320 distinct 8x8 pixel pictures, known as cards, stored in memory. 256 of them are hard-coded into the Graphics ROM (GROM), and 64 are user-defined in Graphics RAM (GRAM).

 

The map of 20x12 characters describing which cards go where is a block of dedicated memory called the Background Table (BACKTAB), and is the means by which the programmer tells the STIC how to draw the screen. By changing the card code of a particular character address in the BACKTAB, the programmer changes the 8x8 picture that will be drawn by the STIC at its corresponding screen location.

 

For instance, a blank screen is created by setting all characters in the BACKTAB to the card number 0, which represents a blank card, i.e., a card composed only of pixels in the background colour.

 

It is the STIC's job to put it all together: to resolve the BACKTAB map and its corresponding picture cards into a matrix of pixels, apply any overlaying objects by compositing them one on top of the other, mix it all in, and render all the information to compose a single frame. The final composed frame is stored in a dedicated buffer in the STIC, which it then processes into the corresponding signals for the electron gun to draw it. 60 times a second.

 

The beauty of this system is that if the frame doesn't change, the STIC just continues sending the same signal to the electron gun, which persists the scene on the TV screen. It only has to make changes as parts of the buffer changes. The programmer does not have to do anything, just make his BACKTAB or GRAM changes as he needs to.

 

The STIC is good. We love the STIC. Video game programmers never had it so good. ;)

 

So... what about the video memory question?

 

Now, all that technology stuff aside, let's try answering your specific question. Does the Intellivision have dedicated memory for video as opposed to the NES which had to share it with game program memory?

 

The short answer is yes. The longer answer is yes, but in a different way than the question suggests.

 

The NES uses bitmaps to draw the screen. This is a matrix of pixels that compose the entire screen. It allows the programmer to draw his own scene, composite objects onto it himself to make more complex scenes, and then swap the "active" map with the new one in one go, giving the illusion of change or animation. The programmer can create any number of such "stand by" bitmap buffers for different effects or game-world states. He only needs to tell the video chip which of the buffers is the "active" one that should be used at any time. The NES video chip then takes the "active" map and generates the signals necessary for the raster gun to draw the frame.

 

The NES does not provide special "video memory" for these buffers, so if you want to get fancy with multiple ones, you'll be eating into your precious memory, the same used by your program.

 

The Intellivision, by contrast, uses a matrix of cards to compose the screen, each card being itself an 8x8 picture. There is only one such matrix, the BACKTAB, and it resides in a memory block dedicated to itself. The main difference is that there is no facilities on the Intellivision to get fancy with multiple screen buffers, or to swap them.

 

You could do something similar by duplicating the BACKTAB and manipulating multiple copies in RAM in order to switch them. However, the only ever "active" buffer is the One True BACKTAB, so you will always end up copying them back in order to get it displayed. This is not really worth the effort, and there are many other ways in which to achieve similar effects (e.g., like swapping the card code of particular BACKTAB characters).

 

 

 

I ran out of time, so I won't go into the sound details right now, perhaps later if there is interest. Suffice it to say that the Intellivision has three program-controlled sound generators, or voice channels, all of them of the squarest square waveforms you can imagine.

 

There is one noise generator that can be mixed with any channel at any time, and a single envelope generator that can be enabled for any of the channels. The noise generator produces white noise, which is a random distribution of frequencies at a specified amplitude.

 

Note that the noise and the envelope generators both are shared by all channels. This means that to control the noise or envelope for each channel individually, you'll have to do it yourself in software.

 

I hope this is less boring than I expect! :)

 

-dZ.

Man Dz, you sure love to type!

 

Your new name is: Sir Type-A-Lot

  • Like 3
Link to comment
Share on other sites

While this is a good introduction to the inner workings of the Intellivision, the information pertaining to the NES is erroneous.

It's actually much like Intellivision in that it has a tile-based display and also its own dedicated video memory (both pattern and character). A stock NES does have enough for two screens, so double buffering is possible, but this is usually used for scrolling in one direction.

The big difference is that you have two bits per pixel, but only one background color, and then three colors per palette, of which there are only four. This is why NES backgrounds often look pretty drab. The Intellivision is capable of more colorful backgrounds.

For those who want more information, seek out one of the many technical documents available for the NES

Carl

 

Thanks for the correction, Carl. I admit not being very familiar with the NES, except for reading the specs and some development tutorials a long time ago.

 

Just one question, does it really have enough dedicated video memory for two screen buffers, or do you have to use general RAM for it?

 

By the way, the idea of asking the questions here is to seek more accessible answers, rather than seeking out one of the many technical documents available online. Perhaps you'd like to share some more information? :)

 

-dZ.

Edited by DZ-Jay
Link to comment
Share on other sites

Sure.

It does have enough dedicated video memory for two screens, and you can orient them either horizontally or vertically for the purposes of scrolling. Actually, the video memory is not mapped but written or read from by I/O to certain registers. It can only be written to during the VBLANK, so there is very little time to do updates of either the character table or pattern memory (if in fact it actually does have pattern RAM, most cartridges use ROM because it was more inexpensive at the time).

It is impossible to use main RAM as video RAM. You could be thinking of the Bally Astrocade which actually has a bitmapped display and shares main memory and screen memory.

The only thing I can think of that people may be curious about is how the palettes work. There is a separate table for specifying what tiles use which background palette (out of the four available) and it's packed, that is two bits per palette, 4 pdlettes per byte. You cannot specify a different palette for each tile -- only for each 2 x 2 tile "cluster".

Again, as you can imagine the backgrounds are very limited in what colors they can display. And that's one reason that NES games are not very colorful, although having two bits for pixel and high resolution pretty much makes up for that.

Any other questions about it, I'd be happy to answer.

Carl

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...