The PPU: a neat little chip that displays all those colorful graphics on the screen. I have a few questions regarding it.
First of all, does the PPU have it's own crystal oscillator? I suppose it does to process all the data, but what is it's clock rate? Is it 1.79Mhz like the CPU?
Another question I have is about the pixels themselves. Is every pixel addressable in the PPU? Are there special addresses, containing the color data for every pixel? I've been working on a project regarding 8-bit computers and when I got to the PPU, I couldn't figure out if this was the case. The PPU shares RAM with the CPU. Obviously, the PPU portion contains data for the current nametable and how the tiles are placed on screen. But how does the PPU process the pixels themselves? If there are, say, 192 bytes, dedicated to each tile, it'll be easy to place them in the proper addresses. But sprites are a completely different story. They are not bound to the 8x8 grid, they can go wherever they want. So how does the PPU exactly move them? If there are 3 bytes for every pixel in the PPU RAM, this means the PPU would have to move them all pixel by pixel and that would really slow down the process, especially with only 1.79Mhz. I hope someone can give me a proper answer, because I really can't figure this out.
First of all, does the PPU have it's own crystal oscillator? I suppose it does to process all the data, but what is it's clock rate? Is it 1.79Mhz like the CPU?
Another question I have is about the pixels themselves. Is every pixel addressable in the PPU? Are there special addresses, containing the color data for every pixel? I've been working on a project regarding 8-bit computers and when I got to the PPU, I couldn't figure out if this was the case. The PPU shares RAM with the CPU. Obviously, the PPU portion contains data for the current nametable and how the tiles are placed on screen. But how does the PPU process the pixels themselves? If there are, say, 192 bytes, dedicated to each tile, it'll be easy to place them in the proper addresses. But sprites are a completely different story. They are not bound to the 8x8 grid, they can go wherever they want. So how does the PPU exactly move them? If there are 3 bytes for every pixel in the PPU RAM, this means the PPU would have to move them all pixel by pixel and that would really slow down the process, especially with only 1.79Mhz. I hope someone can give me a proper answer, because I really can't figure this out.