Nintendo 64 De-blur

Home Forums OSSC OSSC – Feature Requests Nintendo 64 De-blur

This topic contains 8 replies, has 4 voices, and was last updated by  paulb_nl 1 month ago.

Viewing 9 posts - 1 through 9 (of 9 total)
  • Author
  • #7521


    Could the Nintendo 64 De-blur be implemented on the OSSC? Its described here

    The blur is not just anti-aliasing. It’s a horizontal 50% blur. The N64 outputs a 640 pixel wide image, even if the backbuffer is 320 pixels wide, and it doubles the backbuffer’s width to fill the line. The appearance is an “off by half pixel” blur done horizontally. Correcting it produces a sharp 320px wide image. The scene’s rendering and use of AA shouldn’t affect it.

    Because the blur is exactly 50% “between pixels”, that means every other column is a 100% intact part of the original 320px image. So, if we simply drop the blurred columns (odd columns) and re-use the good columns (even columns) we have a restored 320 pixel image. Naturally there is zero lag in this technique.



    Possible.. I think so.. easy to implement? Maybe not so much!



    It’s possible, but not easy indeed. You’d need to set perfectly matching horizontal sampling rate and active area (774 and 640 in case of N64) which will be possible when advanced timing feature gets added on the firmware. In addition, there needs to be logic to duplicate every other pixel, which might be added as a special feature. Perhaps needless to say, such mode won’t be compatible with all TV sets.




    if approved, can it be added to the Other feature requests on wiki page ?




    Sure, I can add it next time I’ll edit the wikipage.



    I have great results with 320×240 optimized, H.samplerate = 386, H.synclen = 22, H.backporch = 36, sampling phase around 90 degrees. Sometimes you have to fiddle with sampling phase and/or samplerate when the videomode changes. Just increase or decrease by 1 and set it back to what it should be.



    With lineX5 and those settings I only get a black screen. I think because the horizontal output rate is not high enough with the lowered samplerate for N64.

    These settings work for lineX5:
    LineX5 mode: 256×240
    256×240 aspect: 8:7 320
    H.samplerate 387
    H.synclen 10
    H.backporch 4



    Line5x does a couple tricks internally to generate active width of 1920/1600. For 320×240 mode, horizontal parameters are multiplied by 5, so with default settings H.samplerate=2130,, H.backporch=245, H.synclen=155. However, these would not be valid settings for 1920-column mode (1920+245+155>2130) so H.synclen is reduced by 120, H.backporch by 160, and increased by 2*160. The final parameters thus are H.samplerate=2130,, H.backporch=85, H.synclen=35, H.frontporch=90.

    If you set H.samplerate=386 for N64, then notice that 5*386=1930, leaving practically no time for sync & porch signals. Setting output format to 1600×1200 will solve this, but you also need to keep H.synclen>24 (same applies for all L5 optim. modes) to avoid underflowing it.



    Thanks. Indeed 1600×1200 also works with H.synclen 25, H.backporch 32.

    If you want 1600×1080 then use 216, V.backporch 29.

    I have not been able to get a sharp image with H.samplerate 386. Its only sharp on the left side of the screen with that setting. I use 387 and its almost perfect.

    Lets show a comparison picture between lineX5 optimized and generic 🙂

Viewing 9 posts - 1 through 9 (of 9 total)

You must be logged in to reply to this topic.