ekeeke / Genesis-Plus-GX

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

[Sega CD] Special effects are glitchy in Chuck Rock II: Son of Chuck #436

Closed jmaneyrol69 closed 2 years ago

jmaneyrol69 commented 2 years ago

Description

Chuck Rock II: Son of Chuck mega cd/sega cd version uses special effects specific to the SCD/MCD which are not rendered properly. This affects all rolling boulders, but also sprites such as the giant bird in Stage 2.

This bug is also present in other emulators/cores: lr-picodrive, pemu, Kega Fusion (Windows) and md.emu (Android)

Game versions

Screens

Giant Bird Boulders Boulder
Chuck Rock II - Son Of Chuck (u)-220516-102808 Chuck Rock II - Son Of Chuck (u)-220516-103021 Chuck Rock II - Son Of Chuck (u)-220516-103042

Environment

Version: Genesis Plus GX v1.7.4 Environment: Windows/Linux/Android

Notes

ekeeke commented 2 years ago

Thanks for adding mention to Ares emulator: the fact it works fine only in this emulator might be an indication that this is caused by some sync issue between emulated components, as the mega cd graphics processor emulation in Ares is based on Genesis Plus GX implementation so they should be functionally identical.

birdybro commented 2 years ago

I don't see these present in the MegaCD_MiSTer core either. I also suspect it is related to inter-system timings.

ekeeke commented 2 years ago

This was actually a bug in mega-cd graphics processor implementation. For the technical record, I was assuming games that use 32x32 pixels stamp would always set the two lower bits of stamp index to 0 as required in Mega-CD hardware manual but it appears this game does not and those bits are automatically masked by hardware instead in this case.

@birdybro: if you want to check Mister FPGA implementation, there is another mega-cd bug occurring in all existing software emulators (including Ares this time), see #290