melonDS-emu / melonDS

DS emulator, sorta
https://melonds.kuribo64.net
GNU General Public License v3.0
3.24k stars 539 forks source link

Non-native resolution causing strange "overlay," issue #1677

Open zachHixson opened 1 year ago

zachHixson commented 1 year ago

Basically the emulator seems to be rendering the native resolution and the chosen resolution and alternating between the two very quickly, causing the two to appear overlayed, however when taking a screenshot I will only get one or the other leading me to believe that's it's just quickly switching between the two.

Here's a screenshot, the mockup of what it looks like to me when I'm actually playing, while a screenshot I timed just right to get the HD version is on the right: https://i.imgur.com/hPqe59f.png

Windows 10 i7-6700k GTX 1080

sandwichwater commented 1 year ago

its an issue with melonds not being able to do dual screen//screen capture rn , and for some reason the emulator treats every one frame as two frames and in this case youll see one frame in native and one frame in high rendering before it moves to the next frame . not sure why but its something ive noticed while frame skipping

zachHixson commented 1 year ago

It's strange that it's happening at all, considering I could have sworn I tried the same build months ago and it didn't have this issue. I upgraded to the newest one to see if it fixed it, but it's still doing the same thing.

RSDuck commented 1 year ago

it only affects games which have 3D graphics on both screens. Could it be possible that you played a different game back then?

Arisotura commented 1 year ago

that's because technically the DS can only render 3D graphics to one screen at a time -- games get around this limitation by switching which screen gets 3D output every frame, while the other screen renders a capture of its previous frame (via the 2D tile engine), effectively providing dual-screen 3D albeit at 30FPS.

when upscaling is in use, melonDS renders 3D graphics at increased resolution, but 2D graphics are still rendered at native resolution, hence the screens show up in native resolution every other frame. we still need to figure out a way to replace screen captures with high-res versions without causing problems.

zachHixson commented 1 year ago

Yep, that was the issue. I remember upres on Phatom Hourglass working, but that was in DeSmuME while Metroid Prime Hunters (single, top screen 3D) was what I played upresed in MelonDS. Just tried Hunters again and it worked fine.