ekeeke / Genesis-Plus-GX

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

Puggsy (MD - NTSC and PAL) scaling effect not working correctly #477

Closed DaniloPMiguel closed 1 year ago

DaniloPMiguel commented 1 year ago

Hello, first of all english is not my native language, so i apologize in advance for any confuse writing/misunderstanding.

Puggsy uses sprite scaling in the Pyramids stage boss, which is not being rendered correctly. Quickest way to see it is to play Junior Mode, reach and beat the fifth level on NTSC-U/USA version (PAL/European version has longer levels and is more difficult).

The Sega CD version is not affected, due to using the SCD scaling chip instead.

It looks like this now (i'm using the Libretro Genesis Plus GX core [version 1.7.4 418a0ea] in RetroArch 1.14.0 x64 on Windows):

NTSC-U: puggsy bug

PAL: puggsy bug pal

This is how the effect is supposed to look: https://youtu.be/YIbaHmJ3Zco?t=1816

This bug is also present in on BizHawk 1.7.1 which is based on r580 and BizHawk 2.8 which is based on r874. Unfortunately I can't test if the Wii version of the emulator is also affected. I tried older RetroArch versions but they also have this issue.

This issue affects both NTSC-U and PAL versions of the game.

Thank you for reading this report and sorry for the bad english.

ekeeke commented 1 year ago

Thanks for the report. I managed to reach this spot quite easily using password and figured the cause of the bug by analyzing emulator debug log. It appears that this is caused by some weakness in the way I emulate VDP interrupt one-instruction delay when they are enabled by a VDP register write instruction. This bug exists since the early beginnings of this emulator but wasn't apparently noticed until now so, good catch ;-)

DaniloPMiguel commented 1 year ago

Thank you so much for taking the time to fix this issue, the game is working great now.

puggsyfixed