| devin Yoshi i'm mima irl Level: 112 ![]() Posts: 3042/3519 EXP: 14918972 For next: 419233 Since: 04-29-08 Pronouns: any From: FL Since last post: 297 days Last activity: 1 day |
|
||
|
Here are some notes I took about some rather aggressive copy protection in Mega Man X. It checks for the presence of SRAM at various addresses and has (at least) three main effects if it detects it:
Each effect has multiple redundant routines which try to detect (in a very specific, easy-to-circumvent way) if any of the other routines have been tampered with, and can make the effect even more apparent than normal - in probably the worst case, if the game thinks you're trying to hack away a part of the "random input" effect, it'll just take effect as soon as you collect any health instead. Pretty nasty. Of course, the self-protection only works by testing a couple of specific bytes in each routine, so there are plenty of other ways around it. It's very aggressive and also very ineffectual. There's an additional routine that checks the ROM itself to make sure it's mirrored correctly (specifically it makes sure banks 00 and 40 are mapped to the same physical ROM address), and if this fails, any enemy dropping a 1up will cause you to return to the intro stage at the end of the current stage. I haven't checked to see if this routine has similar hack protection. I'm going to write about this on the article proper later, but here's some notes for now: 84A46D (A1): if $701000 (SRAM) is mapped, increase $1F9D (when destroying an enemy)
____________________ Photo by Luc Viatour |






