justin3009 / MMX3-ZeroProject

Mega Man X3 - Base Mod (Zero Project)
53 stars 3 forks source link

Boss Doors Not Opening(?) #2

Open justin3009 opened 4 years ago

justin3009 commented 4 years ago

I have yet to encounter it myself but it has appeared a few times according to players out there. It's extremely rare but sometimes boss doors will refuse to open. I have no idea why this happens nor have I been able to reproduce this myself.

If anyone can reproduce this continuously, please post your findings on it. This is a mysterious and rare one.

cotodevel commented 1 year ago

MMX3 has embedded Anti Piracy checks as well as MMX1. I found it while running either vanilla MMX3 or MMX3 Zero Project 4.4 on SnemulDS.

1) I'd bet this doesn't happen in SD2SNES + real SNES. And the reason because even if ROM is mirrored incorrectly it'd be readonly, so AP doesn't trigger.

2) Some game events do not happen if ROM is not mirrored + readonly properly: For instance Blizzard Buffalo's stage where destroyable ice blocks aren't destroyed yet their hitboxes disappear, same as Tunnel Rhino breakable walls.

For MMX3 Zero Project it'd have to be LoROM 4M mirroring instead of the usual 2M as in vanilla MMX3. Also Capcom programmed their AP so it'd not always trigger... but chances of 1 out of 128 or something.

Edit 2024: To update the 2)'s second portion of what I wrote years ago... yeah, it's comprised of 2 parts:

LoROM 4MB support: LoROM games higher than 2MB of CPU <-> ROM addressable range, will change the mapping, it's explained below in the issue tracker. Haven't looked what SD2SNES does, but my bet is they do the same. I concluded that from veridical mapping research.

AP: Basically the AP checks in MMX3 ZP (on Capcom's code) won't check correct LoROM mirroring repeated every [[2MBs of ROM addressed as CPU IO]] boundaries, as MMX1 does, but sure will try to write to ROM and if ROM writes succeed, the AP triggers.

cotodevel commented 1 month ago

For reference here's how I fixed it in SnemulDS: https://bitbucket.org/Coto88/snemulds/issues/4/fix-megaman-x1-x2-and-x3-ap