Menu

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
    Posts
  • #7521

    paulb_nl
    Participant

    Could the Nintendo 64 De-blur be implemented on the OSSC? Its described here http://shmups.system11.org/viewtopic.php?p=1178326#p1178326

    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.

    #7522

    BuckoA51
    Keymaster

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

    #7555

    marqs
    Participant

    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.

    #7878

    akumajo
    Participant

    hi

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

    thanks

    #7894

    marqs
    Participant

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

    #8592

    paulb_nl
    Participant

    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.

    #11238

    paulb_nl
    Participant

    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
    H.active: 320
    H.samplerate 387
    H.synclen 10
    H.backporch 4

    #11354

    marqs
    Participant

    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.active=1600, 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 H.active increased by 2*160. The final parameters thus are H.samplerate=2130, H.active=1920, 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.

    #11372

    paulb_nl
    Participant

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

    If you want 1600×1080 then use V.active 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 🙂
    http://imgur.com/8uFwgj7

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

You must be logged in to reply to this topic.