![]() Sprite flicker was common in Famicom games, and was caused by the system not having enough memory bandwidth to fetch graphic data for all the sprites on a given scanline. You can see the result of this on certain machines, most notably the Nintendo Famicom / NES. So the Amiga could actually support more sprites, at the expense of other functions, but other systems were often more limited. That leaves 119 available for the CPU and the Amiga's graphics accelerator (blitter). Of those, 80 are allocated for background graphics, 11 for various other things and 16 for sprites. ![]() Whatever was left would be available for the GPU, CPU, sound, disk and other hardware to use.įor example, the Amiga has a total of 226 memory access slots available per scanline. Typically the video generator hardware would get priority in order to avoid the screen breaking up. Memory bandwidth also had to be shared with other devices. As such memory speed placed an absolute limit on the amount of data that could be fetched in the time available, which was typically only one scanline or 64uS on a PAL system. On most 8/16 bit systems this was done "on-the-fly", as the screen image was being generated. The video generation hardware has to fetch data for the background image and all sprites from memory. Memory bandwidth was usually the limiting factor. So simple answer, extending the resources to handle more sprites would be a solution without a problem. Still a rather extremely detailed and animated game like Xenon 2 did run smoothly on the ST. While the Amiga still had sprites, the Atari ST only offered a plain bitmap. With faster CPUs the need for sprites vanished. Not to mention that sprites in themselves are only crutches to enable picture manipulation for CPUs that are not fast enough to redraw a changed picture quickly enough. So why waste money on developing more costly chips? So no memory cycle at all (except for creating and moving them) would be needed.īut let's be honest, do we need anything more sophisticated? Looking at existing games show that much of the benefits of such a system, if not all, can be reached by clever handling of the existing setup. each other to detect and resolve overlapping, thus making the number of sprites displayable arbitarily large. Of course, it would be possible to hold all sprite coordinates in on-chip registers and use dedicated logic to compare each sprite position vs. This question is way too broad to have a suitable answer. Or maybe 8 sprites per scan line is something that chip designers considered sufficient for all games they where required to make the chip for? After all, why spend more resources and thus money in each chip produced than necessary? So that's machines spanning six years of time, multiple iterations of Moore's law, one or two orders of magnitude of available transistor count, but the sprite limits are strangely constant, which is surprising if transistor count is the limiting resource. ![]() ![]() So what exactly was the limiting resource? Or does the number of transistors required to implement N sprites per scan line of W width, increase superlinearly with N or W? It is true that sprites tended to consume a lot of chip area (reported 2/3 to 3/4 of the Commodore 64 VIC-II by eyeball from an annotated die photo, at least half of the NES PPU), but the available chip area would not be expected to stay the same over that length of time.Īnd it doesn't seem like it should be memory bandwidth at least the description in When does the VIC-II read the sprite data? doesn't seem like the bandwidth requirement should depend on N or W. (computer_graphics) gives figures for some other machines while the limits were increased in later years, the above figures tended to apply in the early eighties. 8 sprites per scan line, 8 or 16 pixels wide.Īmiga. Also, the pixel width could be doubled, but at the cost of halving resolution the number of bits in each sprite per scan line was constant. You could use raster interrupts to multiplex on different scan lines in all cases here, I'm talking about the limit per scan line. 8 sprites, 2 or 8 pixels wide.Ĭommodore 64, 8 sprites, 24 pixels wide. But I'm trying to understand what the resource limit was, because the observed pattern is surprising.Ītari 800. Of course, one always wanted more and larger sprites, suggesting that it bumped up against some resource limit. From a game programmer's viewpoint, these were good to have. Early consoles and home computers that were optimized for games, tended to provide sprites.
0 Comments
Leave a Reply. |