More specifically, did they render two fields with 240 vertical lines to compose one frame, like some newer consoles do, or was it full 480 vertical lines picture that was interlaced before the output? Or it was different between different games?
Printable View
More specifically, did they render two fields with 240 vertical lines to compose one frame, like some newer consoles do, or was it full 480 vertical lines picture that was interlaced before the output? Or it was different between different games?
I'm not sure about the PS1, but I'm pretty sure the Saturn just renders the full picture into the framebuffer as a full 'progressive scan' image before rendering it out as an interlaced image.
I'm not actually all that entirely sure, however. Perhaps it has the capacity to render each field live, rather than render both before outputting?...
Now I'm very intrigued as to what the answer is myself. :)
Moved this thread to the correct section.~
Like flygon said, "progressive" rendering and interlaced scan. Rendering half frames every frame is not gonna happen with the limited fillrate available.
I can only answer for the PS1 (but I imagine it was similar on the Saturn). It was just a case of rendering to a 480 high frame buffer, which the video interface would scan in an interlaced manner.
There's no way that I can remember (it's been 17 years since I last touched PSX stuff), where you could get the GPU to only render alternate lines. It was pointless anyhow, because the display mode and frame buffer size had a 1:1 relationship - for example, you could't use a 240 high buffer with a 480i mode. But you COULD get it to render individual horizontal line segments - but it was impractical to use, because you had to edge scan triangles yourself on the CPU and you ended up using a lot of memory for the primitive list.
But I did once write a rather neat span-rendering demo with two rotating, intersecting cubes that would appear to pixel-sort that had everybody baffled for a while until one very smart guy found the hline primitive support in the docs :)
Like rusty said, most consoles of the era "scanned progressively" internally. I've never heard of a non-specialized GPU drawing 3D graphics in true interlaced fashion the way a TV sees the signal.
On Saturn you can actually bypass the memory bandwidth loss form scan-out itself, at least on sprites side where one framebuffer is always rendered into and one always scanned out. But on other machines without such arrangement there will be at least twice extra bandwidth needed to read out the extra pixels. Early PSX models had dual port VRAM, later models dropped it so I'm not sure how things would pan out there.
On later things the memory bandwidths are so big that bandwidth needed for scan-out isn't gonna be a very significant fraction of the total bandwidth available.
You're talking about the consoles with SGRAM. It was all a bit odd, because the switch to SGRAM happened quite early on in the PS1's lifetime but all of the development kits were still using VRAM, so they had different performance characteristics when compared to the retail hardware.
The SGRAM was paged by the controller, so there was no real issue in the video interface scanning while rendering. The only issue I remember was that SGRAM tended to perform faster overall, which led to some interesting timing issues if you relied on the vsync function returning to do your timing rather than the callback. Of course, this never showed up on the dev-kits, so you had to test on the green test-kits.
As far as I know this never happened. All systems render internally whether at half or full resolution, then interlace at output. The only GPUs I've heard of that do interlaced rendering are the old Voodoo SLI systems that split the progressive workload onto two cards each rendering at half resolution.
I don't know if this is true. It was probably not that big of a deal especially considering consoles mostly output to small blurry CRTs at the time. This was mentioned in an article about programming Doom on the 32X as opposed to PC in 1994.