VOGONS


First post, by superfury

User metadata
Rank l33t++
Rank
l33t++

I notice that two frames are drawn every time the display changes (emu_displaybuffer is 1):

Header containing support logic: https://bitbucket.org/superfury/x86emu/src/31 … gpu.h?at=master
Window resizing and initialization: https://bitbucket.org/superfury/x86emu/src/31 … gpu.c?at=master
Main renderer routines: https://bitbucket.org/superfury/x86emu/src/31 … rer.c?at=master
SDL support module with protection logic: https://bitbucket.org/superfury/x86emu/src/31 … sdl.c?at=master

GPU_renderer.c:
renderHWFrame is called by the VGA when a frame is rendered.
refreshscreen refreshes the screen.

gpu.c:
CPU_updateVideo is called from the CPU thread to update the window size when needed(together with SDL input processing).

This bug currently causes the Forced plot mode (mode 2) combined with both aspect ratios (same aspect ratio(mode 1) and 4:3(mode 2)) to give horizontal shifts (mode 1) and vertical shifts(mode 2) during the first frame. Anyone can see what's going wrong here? The window itself stays the correct size (isn't jumping). This doesn't happen with aspect ratio set to mode 0(Fullscreen rendering(stretched)).

Edit: This bug has been fixed in the latest release. The problem was in both the renderer itself and the SDL helper functions module having errors.

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io