24 April 2012, 14:20 | #1 |
Registered User
Join Date: Aug 2004
Location:
Posts: 3,335
|
"Remove interlace artifacts" issue with interlaced ↔ non-laced switching
Hi,
(Is there a posting on EAB which explains how the remove interlace artifacts option works?) When "Remove interlace artifacts" is enabled, there is occasionally trash which appears on screen for one frame. In my testing the trash looks like it is the same colours as the mouse pointer. It happens when dragging a non-interlaced screen, which is in front of another interlaced screen up and down. So the issue is probably related to switching between non-interlaced and interlaced output. I couldn't grab a screenshot of the corruption/trash since it is so brief, but I created an AVI file which shows the problem. Remove .zip from the name and decompress it with XZ before viewing. (Note: it decompresses to over 500MB!) |
24 April 2012, 17:13 | #2 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
|
This feature can never work 100% correctly. Glitches are normal.
It basically emulates one interlaced field as a single progressive frame. Display emulation runs twice, first current interlaced field is handled normally, then other interlaced field (odd if even and vice versa) is emulated using previously stored bitmap pointers and other chipset stuff. Result is 100% rock-solid display at full 50Hz without any interlace artifacts but it only works if program uses interlace normally, both fields are normally stored in chip ram, no other tricks etc.. |
24 April 2012, 17:43 | #3 |
Registered User
Join Date: Aug 2004
Location:
Posts: 3,335
|
Ah, okay. Very clever!
I guess it might be possible (and cheaper in terms of CPU time?) to add an option to remove interlace artifacts for sprites only? That would cover the common case of the mouse pointer ghosting when moved in interlaced modes. Since WinUAE knows which pixels belong to sprites, it could double the pixels in each row when rendering sprites, instead of just filling in the sprite pixels for the current field and leaving the previous field's sprite pixels visible. That should work with most sprite-using programs I think, the exception being something like LacePointer, which effectively doubles the vertical sprite resolution by using a different sprite image for odd and even fields. (The current remove interlace artifacts option doesn't work properly with LacePointer either though.) Edit: Maybe one way to implement that would be to render sprite pixels to a different (half-height) texture, which would be doubled in height and overlaid on the bitplanes texture. Last edited by mark_k; 26 April 2012 at 18:59. |
27 April 2012, 21:03 | #4 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,505
|
Not possible. Sprites are not in a separate emulation path. They aren't some kind of totally independent overlays. (priority, bitplane resolution etc.. also affects sprites)
|
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
"Reminder "Lincs Amiga User Group aka "LAG" Meet Sat 5th of January 2013" | rockape | News | 4 | 30 January 2013 00:06 |
CD32 Image-Name-Bug: "...(bla)[!].zip" -> "...(bla)[" / "...[test].zip" -> "...[tes" | cfTrio | support.WinUAE | 8 | 18 December 2012 16:31 |
"Remove interlace artifacts" flickering in latest versions | Zosite | support.WinUAE | 5 | 12 October 2012 11:25 |
FS-UAE Developement Series 1.1.x - "Freeze/Crash Issue (Intel GMA X3100)" | AmigaOnline | support.FS-UAE | 10 | 15 April 2012 00:36 |
Flickering when interlaced and non-interlaced highres screens "meet" | Maren | support.WinUAE | 12 | 27 November 2009 22:59 |
|
|