Modern computers use a graphics processing unit in order to provide hardware-accelerated graphical operations. Conceptually, I am used to thinking about graphics as a bidimensional array of pixels obeying a format such as
RGBA8. This data gets written to a display device at some fixed rate.
In comparison, it seems older hardware made use of different abstractions. For example, the Nintendo Entertainment System made use of a picture processing unit that apparently implemented the concepts of sprites, tiles, backgrounds and color palettes directly in hardware. Somehow, these concepts get merged into a complete picture and a signal is generated and sent to the TV. The article also mentions that collision detection registers were a common feature at the time.
It seems graphics hardware used to be made with a specific domain in mind. Over time, they became more and more general-purpose. Now they can do general-purpose parallel computing, with many non-graphical applications.
I can see why graphics hardware is evolving towards general parallel computing: the multi-core nature of modern GPUs makes it possible. Similarly, I would like to understand this shift from domain-specific to general-purpose graphics hardware.
- How exactly do retro graphics hardware differ in relation to modern graphics cards? What did they do that modern hardware doesn't do anymore?
- What explains these differences? What properties of the technology of the time justified them?
- Why do we not use the notion of sprites and tiles anymore? There must have been advantages to implementing them in hardware. Why were these concepts thrown away?