ekeeke / Genesis-Plus-GX

An enhanced port of Genesis Plus - accurate & portable Sega 8/16 bit emulator
Other
673 stars 193 forks source link

Ultraverse Prime graphic glitches/issues #470

Closed joepogo closed 1 year ago

joepogo commented 1 year ago

Hi Eke,

Just noticed today that Ultraverse Prime is doing something funky on GenesisPlusGX once you get to level 1-3. (doesnt take very long to get there) Once you get to the red city skyline after the boat there is a bunch of shaking under the status bar along with graphic distortion under the bar.

Perhaps it is something IRQ related??

I tested this on retroarch gpgx PC AND on my wii with gpgx as well to confirm. No run ahead or other settings are being used, it is just stock settings with nothing else. I also confirmed my dump of the game to work well in other emus with no issues. (kega fusion, picodrove, etc)

I also noticed that once you get to the screens between levels starting with 1-2 the text is cut off on the sides. (Though that might be something on my end)

Just wanted to report this your way as maybe it is a regression or bug. I do remember at one point you had to fix ultraverse prime before as i think it was exhibiting garbled graphics.

Anyways, doing my part over here and i hope you are well!

birdybro commented 1 year ago

https://youtu.be/K0tQhkOvqxU?t=554 - real hardware recording with timestamp for reference.

joepogo commented 1 year ago

Thanks birdybro! Yea, that looks like the correct behavior I've seen on other emulators.

On Gpgx that city skyline is bouncing around under the HUD reminiscent of Irq misfiring or something.

ekeeke commented 1 year ago

For reference, the game reads the HV counter (to wait for the start of a specific line) then reads VDP status to verify HBLANK flag is set before changing color (to be sure CRAM write occurs during HBLANK of the upcoming line) but, because of approximated HBLANK flags timings in Genesis Plus GX, the second read sometime returned HBLANK flag being cleared, which would delay the color change to the next line.