libretro / picodrive

Fast MegaDrive/MegaCD/32X emulator
Other
38 stars 60 forks source link

Shinobi III - Return of the Ninja Master (Genesis): Samurai boss (Kagura) strange issue. #164

Open Kaisersigmax3 opened 3 years ago

Kaisersigmax3 commented 3 years ago

While fighting the boss, there are six doors in the room. He normally keeps blinking at two doors at the same time, then chooses to appear at one of them. The strange issue consists of the aforementioned boss blinking at two doors at the same time, but, choosing to appear at a completelly different door out of the two normally possible. What could be causing it? This is definitelly bad behaviour. By the way, aaaaaaaaaaawesome work!!! I dont't know if your aware of this problem, but the goal of this post is to minimally help this little marvel get even better.

Kaisersigmax3 commented 3 years ago

Ok. I tried turning OFF RUNAHEAD, and then the issue stopped happening! The issue also happens with Genesis Plus GX and the proposed solution is also valid. I came to the conclusion too that the Master System games Master of Darkness and Taz Mania are incompatible with runahead too, because it introduces certain glitches that render the games unplayable. So this is the third game (all three under Picodrive/Genesis Plus GX) where runahead is detrimental, causing odd behaviors in the playability department. The "Number of frames to run ahead" was set to 1. I have a theory: We have two instances of the same code being run in paralell, but the Samurai boss fight (Kagura) is randomized, especially, in both instances. So, in one instance the boss appears at one given door, while in the other instance the program "decides" the same boss will appear at a different door. In this case, we may have a conflict happening, so that the final and definitive frame will cause an abrupt, abnormal and unexplainable change of door right before our eyes. It seems runahead doesn't like randomized events . Could it be the case?

irixxxx commented 2 years ago

I improved saving/loading states. You might have a look if this is still the case.