MEGAMAN 2 OPTIMUM by RetroRain VERSION 1.0 RELEASE DATE: March 20, 2015 TIME SPAN FROM START TO FINISH: 29 Days WHAT IS MEGAMAN 2 OPTIMUM? Megaman 2 Optimum is an optimization patch for Megaman 2. All it does is convert the ROM's mapper to MMC5, and its graphics format to CHR-ROM. That's it! :P Unlike the Upgrade Patch I did for Megaman 1, there are no other alterations to the ROM. This is just a simple mapper and CHR-ROM conversion. The PRG-ROM was not expanded, but the CHR-ROM was maxed out to the new mapper's 1MB limit. The ROM doesn't need to be expanded anyway, since in the conversion of the game to CHR-ROM, all of that PRG space that stored the game's graphics has been freed up. Also, another reason I didn't expand the ROM was so that the editors made for the game could be used. Although I have not tested any of the editors yet, that was my intent. So basically, there is plenty of free space in the ROM without expansion, and plenty of CHR-ROM space to work with. Unlike with Megaman 1, which used the MMC3 mapper and took me three months to convert to CHR-ROM, this time it only took me one month. I started the project February 20th, and finished it March 20th. Only the basic MMC5 mapper registers were enabled to get the game to run, however it is entirely possible to add others to make full use of the new mapper's capabilities. If you wish to add onto the mapper's capabilities, at $F5A4, there is a JMP $FFE0. Have that jump to some free space, but make sure at the end of your code, you put that JMP $FFE0 back in. NOTES: $1D0 Top-left CHR Bank (Sprites) $1D1 Bottom-left CHR Bank (Sprites) $1D2 Top-right CHR Bank (Background) $1D3 Bottom-right CHR Bank (Background) $1D4 Final Boss Defeated (0 = Not Defeated, 1 = Defeated (This was used to load the Wily-defeated page)) $1D5 Temporary Sprite Storage (Stage Sprite Tables are read and stored here, and from here, the weapons are added, and stored in $1D1) $1D6 In-Stage (0 = Not in Stage, 1 = In-Stage (Ready text and Inventory doesn't count)) $1D7 Boss Rematch (Stage Address $2A is written to this at Stage 0C, to handle Robot Master Rematches) $1D8 Stage 0C Wily Boss (This was needed to get the correct page to be displayed at the Wily boss fight, after you defeat all of the Robot Masters again in a rematch) PRG Bankswitch Routine is located at $F8DE CHR Bankswitch Routine is located at $F8E7 In order to switch a PRG bank, just select a bank, and JSR to $F8DE. In order to switch a CHR page, all you have to do is select a page, and write it to either $1D0, $1D1, $1D2 or $1D3. The Stage Sprites (Weapons and Enemies) Code and Tables are located in Bank 0. The code is located at $9000 (0x1010). The tables begin at 0x1248 and end at 0x134a. The only stage not included in the table is Stage 0C. That is the Robot Master Rematch Stage. That stage was done manually. The hex numbers for Crash Man's stage and the final Wily stage will be in lower numbers, because they use a second section of CHR pages. I exceeded the #$FF limit, so I had to use a second section. You can use the second section by writing 01 to $5130. If you have any questions about $5130, visit acmlm.kafuka.org or forums.nesdev.com. The stages are in this order: 00 HEATMAN 01 AIRMAN 02 WOODMAN 03 BUBBLEMAN 04 QUICKMAN 05 FLASHMAN 06 METALMAN 07 CRASHMAN 08 WILY 1 09 WILY 2 0A WILY 3 0B WILY 4 0C WILY 5 (Robot Master Rematch Stage, not included in sprite tables) 0D WILY 6 STAGE SPRITE TABLES OFFSETS (Remember, the sprites are only the weapons and enemies for the stages): HEATMAN 0x1248 - 0x125f AIRMAN 0x1260 - 0x1275 WOODMAN 0x1276 - 0x128d BUBBLEMAN 0x128e - 0x12a3 QUICKMAN 0x12a4 - 0x12bb FLASHMAN 0x12bc - 0x12cf METALMAN 0x12d0 - 0x12e5 CRASHMAN 0x12e6 - 0x12f9 WILY 1 0x12fa - 0x130d WILY 2 0x130e - 0x131f WILY 3 0x1320 - 0x132f WILY 4 0x1330 - 0x1340 WILY 6 0x1341 - 0x134a ADDITIONAL MEGAMAN 2 NOTES FROM THE ORIGINAL GAME: I used these in doing this conversion. Some of them I used just to make my life easier when playing through the stages. $1A (Not sure, but this was a great point to write the proper background CHR for the stages) $1C Frame Counter $2A Current Stage $9A Stages Completed $A7 E Tanks $A8 Lives $A9 Current Weapon $9B Items $440 Screen ID This ROM was tested to work on FCEUX 2.2.2. I have not tested it on any other emulators. This patch is meant for the English version, Megaman 2, not the Japanese version, Rockman 2. If you happen to find any bugs, feel free to let me know. Thanks. You may use this patch as a base for your Megaman 2 hacks. Credit is not necessary, but it is appreciated. Have fun! :) acmlm.kafuka.org