High resolution interlaced output, possible?
Posted: Mon Oct 16, 2006 2:36 pm
Hi, I am trying to find a way to make the GS's CRTC to output a custom resolution: 640x960 interlaced.
I've heard of a product which overrides GS settings, allowing games that internally use a 480 line buffer to output in progressive scan even though the game doesn't specifically support 480p. (There are more game than you think that render with full height framebuffers they never fully exploit!)
I'm attempting to duplicate it's functionality myself, but further than just 480p. I am trying to get the GS to render 960 lines interlaced: Use field rendering with 480 odd, follwed by 480 even lines. The framebuffer memory usage and rendering speed wouldn't change, but the resolution will be a bit higher.
Right now, I have Soul Calibur II running, with it's progressive scan feature turned on. Except, now GS's SMODE2 is overridden to output all lines, in interlaced mode. This actually renders almost correctly, except for two problems:
-Only the top half of the screen is shown: It is being drawn interlaced, and odd/even seems to work, but only half the framebuffer is being drawn, and is stretched to fill the whole screen. The good news, is there appears to be 480 lines drawn (240 even, 240 odd), with a full 480i resolution being output only using half the framebuffer! If I can get the CRTC timing right, then the whole framebuffer should be output at 960i.
-In the menus, things are fast, but in 3D (battles), there is horrible slowdown, around 2 or 3 seconds per frame! My guess is since only half the buffer is being sent out, it's messing up the game's timing; kind of like waiting for a vsync that never quite happens at the expected time?
I guess the short version is: Is it possible for the GS to output 960 interlaced lines, with a 480 line framebuffer? And if possible, what registers need to be set? Thanks for any infomation and help you might offer!
I've heard of a product which overrides GS settings, allowing games that internally use a 480 line buffer to output in progressive scan even though the game doesn't specifically support 480p. (There are more game than you think that render with full height framebuffers they never fully exploit!)
I'm attempting to duplicate it's functionality myself, but further than just 480p. I am trying to get the GS to render 960 lines interlaced: Use field rendering with 480 odd, follwed by 480 even lines. The framebuffer memory usage and rendering speed wouldn't change, but the resolution will be a bit higher.
Right now, I have Soul Calibur II running, with it's progressive scan feature turned on. Except, now GS's SMODE2 is overridden to output all lines, in interlaced mode. This actually renders almost correctly, except for two problems:
-Only the top half of the screen is shown: It is being drawn interlaced, and odd/even seems to work, but only half the framebuffer is being drawn, and is stretched to fill the whole screen. The good news, is there appears to be 480 lines drawn (240 even, 240 odd), with a full 480i resolution being output only using half the framebuffer! If I can get the CRTC timing right, then the whole framebuffer should be output at 960i.
-In the menus, things are fast, but in 3D (battles), there is horrible slowdown, around 2 or 3 seconds per frame! My guess is since only half the buffer is being sent out, it's messing up the game's timing; kind of like waiting for a vsync that never quite happens at the expected time?
I guess the short version is: Is it possible for the GS to output 960 interlaced lines, with a 480 line framebuffer? And if possible, what registers need to be set? Thanks for any infomation and help you might offer!