Mega Man 2: Mega Man 2 + Rockman 2 Scrolling Fix is a patch for the Nintendo Entertainment System that enhances vertical scrolling in the games Mega Man 2 and Rockman 2. It corrects visual artifacts during vertical scrolling by implementing a mirroring technique, improving the visual experience by eliminating scrolling seams. The patch includes versions for both the American and Japanese releases, alongside compatibility with other patches.
This patch rewrites the method used by MM2/RM2 for vertical scrolling so that it no longer shows visual artifacts on the top and bottom of the screen during scrolling.
This patch began as part of the MM2 FamiTracker support patch, before being split into its own patch as it could be useful even without FamiTracker support. The buggy implementation of DPCM sound in the NES can corrupt reads from other hardware such as the screen buffer and controllers, and requires special care when reading from this hardware to work around this corruption. One of the two places MM2 reads from the screen buffer is in performing vertical scrolls, as it does not take advantage of NES screen mirroring in this scroll direction (seemingly a holdover from MM1, which lacked the ability to switch between screen mirroring directions). This design also results in a visible scrolling seam at the top and bottom of the screen as new level data is loaded in real time.
This patch implements mirroring for vertical scrolling, allowing smooth, artifact-free vertical scrolling. In doing so, it also eliminates one of the ways MM2 reads from the screen buffer.
Patches for both Mega Man 2 (USA) and Rockman 2 (Japan) are included.
This patch incorporates my MM2 MMC3 patch from https://www.romhacking.net/hacks/7478/.
Mega Man 2 Scrolling Fix
v1.0
By Justin Olbrantz (Quantam)
This patch rewrites the method used by MM2/RM2 for vertical scrolling so that it no longer shows visual artifacts on the top and bottom of the screen during scrolling.
Patches for both Mega Man 2 (USA) and Rockman 2 (Japan) are included.
This patch incorporates my MM2 MMC3 patch from https://www.romhacking.net/hacks/7478/. As there is the possibility that in the future the MMC3 patch could be updated out of sync with this patch, this patch includes the .inc files from the mm2mmc3 version it uses, and the compatibility section includes information for mm2mmc3 as well.
Others with the same PRG-ROM checksums will likely work just as well.
WHY?
This patch began as part of the MM2 FamiTracker support patch, before being split into its own patch as it could be useful even without FamiTracker support. The buggy implementation of DPCM sound in the NES can corrupt reads from other hardware such as the screen buffer and controllers, and requires special care when reading from this hardware to work around this corruption. One of the two places MM2 reads from the screen buffer is in performing vertical scrolls, as it does not take advantage of NES screen mirroring in this scroll direction (seemingly a holdover from MM1, which lacked the ability to switch between screen mirroring directions). This design also results in a visible scrolling seam at the top and bottom of the screen as new level data is loaded in real time.
This patch implements mirroring for vertical scrolling, allowing smooth, artifact-free vertical scrolling. In doing so, it also eliminates one of the ways MM2 reads from the screen buffer.
COMPATIBILITY
This patch uses file offsets 3bd34-3bd3f that were previously free.
As well, this patch frees up the following ranges that were previously used:
3ca26-3cb1b (US) / 3ca23-3cb18 (J) ($f6 bytes)
3d1a2-3d1ee (US) / 3d19f-3d1eb (J) ($4d bytes)
Additionally, this patch significantly modifies the following ranges:
3d191-3d1a1 (US) / 3d18e-3d19e (J)
MMC3 Patch
mm2mmc3 frees up the following previously used range of file offsets:
3804f-38060 (12)
As well, mm2mmc3 substantially modifies the following ranges:
38038-3804e
38061-38066
3c010-3c060
3d09d-3d0e6 (US) / 3d09a-3d0e3 (J)
Additionally, to free up space mm2mmc3 eliminates the SetMmc1Ctrl function used to set the screen mirroring mode. Instead, hacks should directly set the mirror register MirrorReg to either MIRROR_VERTICAL or MIRROR_HORIZONTAL, should they need to change the mirroring mode.
INCORPORATION INTO OTHER HACKS
It's perfectly fine to incorporate this patch into other hacks. In such case, please add a line to that hack's readme (or hack description/credits if no readme) indicating that hack uses this patch and link to this patch on RHDN.
Mega Man 2: Mega Man 2 + Rockman 2 Scrolling Fix Game Wiki
Experience Mega Man 2: Mega Man 2 + Rockman 2 Scrolling Fix Game (USA) online wiki exclusivly at RetroSpot.net. View Mega Man 2: Mega Man 2 + Rockman 2 Scrolling Fix and use it with an core of your choice. Mega Man 2: Mega Man 2 + Rockman 2 Scrolling Fix is compatible with PC, Mac, iOS and Android. RetroSpot is USA #1 choice for Retro Game information for games like Mega Man 2: Mega Man 2 + Rockman 2 Scrolling Fix.