p1pkin / demul

Automatically exported from code.google.com/p/demul
97 stars 19 forks source link

Repeated horizontal lines (Atomiswave) #355

Closed ReyVGM closed 8 years ago

ReyVGM commented 8 years ago

I reported this years ago on the google code page, but I don't see it migrated here, so I'll report it again.

I've only tested this in Atomiswave games, but there's an issue where a few horizontal lines are repeated in the graphics. It's really hard to notice, and it's more apparent when the screen scrolls vertically or when you have scanlines enabled.

Since it's a bit difficult to tell, I had to use the GPUdx11old to enable scanlines and make the example clearer, but the issue happens regardless of what video plugin you use or what other video option you select.

screen0049

I repeat, this issue happens even with scanlines disabled and with any video plugin. Scanlines were only enabled to make the issue more noticeable.

p1pkin commented 8 years ago

can't reproduce it here on actual DX11 renderer. are you really sure it happens on DX11 especially with 'Linear filter' option which is enabled by default ? as for me its just impossible.

yes, it can be like on screensot on DX11old renderer, but as it can be noted from it's name - it is old, and not supported or improved, or whatever else anymore.

ReyVGM commented 8 years ago

I disabled the Linear Filter because I don't want any filtering as I prefer the pixel-perfect graphics due to what I use the emu for. However, as per your request, I did test linear filter on (32 layers) and off, and the issue does seem to disappear with filtering on.

But one thing: I like taking screenshots of games, ripping sprites, etc. and pixel-perfect (no filtering) is the way to go, so is there any way to get this issue fixed with filtering off on the current DX11 renderer? Or is there something I can enable/disable on my end to have no filters on and no repeated lines?

ReyVGM commented 8 years ago

By the way, it only seems to be happening with SNK games? I've tried KOF11, Samurai Shodown 6, Metal Slug 6, KOF Neowave, and they all have the repeated lines issue (with filters off).

But I also tried Guilty Gear Isuka (Atomiswave), and there are no repeated lines. I tried turning filtering on and off just in case, and the game didn't even get filtered. It's like it doesn't accept filters.

p1pkin commented 8 years ago

I'm not sure its possible. this is how any image resizing works in general, if no any filtering used you'll get some lines doubled in the case of picture stretch, and we need to stretch (or shrink) it to keep it's original aspect ratio, when output it to target window.

also, in the case of old DX11 you won't get anything "pixel perfect", because it not emulate original picture depth, dithering etc. and you won't get any "pixel perfect" sprites in any case in such way, because they are drawn as 3D polygons, with resize, filtering, blending, and other such things. you can get them in original untouched form only by ripping from video memory or game data (ROM).

ReyVGM commented 8 years ago

I understand what you mean, but in this case I believe this is not what's happening. With filters off, it's duplicating lines, and removing others. With filters on, it looks fine.

Here's an animated GIF. Look at the last "O" in Neogeo, and at the "Press Start". Look how they are wrong, and if you look at the rest of the graphics, there's no change. repeated lines

If the filtered image is 640x480 (native atomiswave res), then the unfiltered one can't be 640x478 and should not be compensating by adding two lines to fill the x480 part. There has to be some issue with the Atomiswave SNK driver when filters are off because the unfiltered one should look exactly like the filtered one, but without filtering :P Also, no-filtering has been the default option since the emulator's inception and this issue has been present since then. Whoever added the filtering option, I guess did everything right and the duplicating lines issue was not recreated. In addition, this is not the only emulator that has had this issue. I've reported the exact same issue on Mednafen, DesemuME, FCEUX, and PJ64 some years (decades) ago. So I guess it's a semi common mistake that happens.

Hopefully I was able to get my point across since I'm not very technical.

p1pkin commented 8 years ago

ok, lets start from the roots. mentioned SNK games uses 640x478 (not 480) visible frame buffer size. but if we have 640x480 target window - source picture must be stretched +2 more lines, in the case of point filtering that means some 2 picture lines will be doubled. and that's exactly that you see. so I see no issue here.

and technically its duplicate of this feature request - https://github.com/p1pkin/demul/issues/284 having such feature (dump original display image) will be proper solution. so I close this one.