Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
MOS Technology VIC-II
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
===Sprites=== VIC-II sprites are either 24x21 monochrome or 12x21 multicolor. Similar to character graphics, the latter have one individual color for each sprite and two global ones. VIC-II has eight sprites, each of which uses 64 bytes of memory to store but, with certain limitations, it can display many more. Sprite multiplexing is a common method of getting more than eight on screen (although there still is a maximum of eight per scan line). The VIC-II scanline counter can be polled until the desired point is reached on screen, or a raster interrupt can be programmed to trigger at a certain scanline, after which the program quickly changes the sprite coordinates. This method can result in many additional sprites onscreen at once, often for a total of 16 to 24 or more. For a demo, though, the limit is considerably more flexible. In theory the maximum number of different sprites visible at the same time is 256 (assuming the VIC-II's entire 16k page was filled). They are addressed by using a block number to refer to each sprite pattern in memory beginning with 0 and going to 255 ($FF) depending on their position in the video page. (if the second video bank (numbered as 0 1 2 and 3) is used, Block 0 would refer to the sprite stored at {{mono|$4000}} and Block 255 would be at {{mono|$7FC0}}). Each sprite may be double-sized vertically, horizontally or both. This does not increase the sprite resolution (it is still 24 pixels wide and 21 tall) but each pixel will be twice as wide and/or twice as tall. Because the horizontal position register for each sprite is one byte and limited to a maximum value of 255, it alone cannot cover the entire 320 pixels of the VIC-II's screen area, so an additional register called the Most Significant Byte Flag provides a 9th position bit for all sprites. {{mono|$D01E}} and {{mono|$D01F}} contain the Background and Sprite-to-Sprite Collision registers. The former is rarely used because it cannot provide information on the specific background object the sprite is touching. {{mono|$D01B}} contains the Sprite To Background priority register, which is used to govern whether a sprite moves behind or in front of background graphics. When a sprite enters the same space as another sprite, the lower-numbered ones will always pass over the higher numbered ones.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)