LatchKeyKid Posted August 31, 2023 Share Posted August 31, 2023 (edited) I've always been curious as to why (with the Atari 2600 being a notable exception!) so many 8-bit systems (NES, SMS, Intellivision) had an 8 sprite per line limit. Is it actually based on the bits the system used or is that just a coincidence and not causation? Was it based on some sort of other shared technology/hardware instead? Or was it just deemed enough for the time and not worth exceeding similar to the two player sprites being enough for the 2600/pong/combat back in the 70s? Thanks in advance. Edited August 31, 2023 by LatchKeyKid 1 Quote Link to comment Share on other sites More sharing options...
zzip Posted August 31, 2023 Share Posted August 31, 2023 I think the bits are indirectly linked. 8-bit systems like the 6502 were limited to accessing 64K of memory space at a time, and only a fraction of this could be used for screen/sprite memory so you have to put practical limits on graphics data and objects due to this. I'm sure the speed of the systems and video timings played a role too. But it's also not a hard rule. I believe the 7800 doesn't place a cap on sprites. Also, I think the Intellivision is technically a 16-bit system? 2 Quote Link to comment Share on other sites More sharing options...
LatchKeyKid Posted September 1, 2023 Author Share Posted September 1, 2023 On 8/31/2023 at 1:07 PM, zzip said: But it's also not a hard rule. I believe the 7800 doesn't place a cap on sprites. Also, I think the Intellivision is technically a 16-bit system? I think you're right and I wasn't aware of that fact! Seems like overkill given the time period and tech that it was packaged with though. Quote Link to comment Share on other sites More sharing options...
+splendidnut Posted September 1, 2023 Share Posted September 1, 2023 For the C64, the NES, and the Atari 8-bit, the limitation is due to how much sprite data could be transferred during HBlank. Typically, the graphics chips in these systems had two line buffers, one being populated while the other was drawn. The sprite graphics data was written into a line buffer during HBlank, and then the rest of the time (the visible portion) was spent reading and drawing the background graphics data into the buffer. At the end of the line, the buffers were 'flipped', so that the freshly populated one was drawn and the previously drawn one was cleared for new data. This is just a general explanation, i.e. the general details may differ in actual implementations. 5 Quote Link to comment Share on other sites More sharing options...
LatchKeyKid Posted September 2, 2023 Author Share Posted September 2, 2023 Thanks. I hadn't considered the CRT screen generation as a factor. I was just surprised to see how many systems of the era had the same 8 sprite per line limit (the 2600 being a notable exception) before resorting to flickering. Quote Link to comment Share on other sites More sharing options...
carlsson Posted September 9, 2023 Share Posted September 9, 2023 (edited) Hardware sprites cost quite a bit of space on the video chip (*). The Atari 8-bit only has 3 if I understand correctly. The C64 and Intellivision have 8, though the C64 can multiplex those while the raster is drawing so you can get the effect of many more sprites. Systems like TI-99/4A, Colecovision, MSX etc share the same chip which has support for 32 sprites, but only 5 on a single line (or maybe that is 4 before it starts to flicker). As technology advanced, more sprites and different methods to use them appeared. (*) Looking at the VIC-II die, it seems between 50-70% of it is assigned for those 8 hardware sprites. Edited September 9, 2023 by carlsson 1 Quote Link to comment Share on other sites More sharing options...
zzip Posted September 11, 2023 Share Posted September 11, 2023 On 9/9/2023 at 2:42 PM, carlsson said: Hardware sprites cost quite a bit of space on the video chip (*). The Atari 8-bit only has 3 if I understand correctly. The C64 and Intellivision have 8, though the C64 can multiplex those while the raster is drawing so you can get the effect of many more sprites. Systems like TI-99/4A, Colecovision, MSX etc share the same chip which has support for 32 sprites, but only 5 on a single line (or maybe that is 4 before it starts to flicker). As technology advanced, more sprites and different methods to use them appeared. The Atari 8bit has 4 Players and 4 missiles (skinny sprites that can be combined into a 5th player) these sprites stretch the entire height of the screen, and can be chopped up with DLIs to create the impression of many more independent sprites in different screen region 2 Quote Link to comment Share on other sites More sharing options...
Defender_2600 Posted September 16, 2023 Share Posted September 16, 2023 The 7800 can display up to 30 sprites on a single line. Recently, @RevEng made an Eighty-Six Sprite tech demo, which has 86 animated sprites, a detailed background, rmt music playing, and a scroller: https://raz0red.github.io/js7800/?cart=https://forums.atariage.com/applications/core/interface/file/attachment.php?id=1054377&key=dc5b1dc081a9dae418a6682e44407568 ** if it doesn't play music, hit the reset button - some browsers mute sound until you interact. 3 Quote Link to comment Share on other sites More sharing options...
LatchKeyKid Posted September 21, 2023 Author Share Posted September 21, 2023 Thanks! I had seen a video in the past mentioning the much higher number but I don't recall the restrictions that came with it. Regardless, that's alot! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.