This is a Mapper Conversion hack for Super Mario Bros. ROM from NROM to MMC5.
Features:
Read the Readme for changes in this version v1.3.0
Works on all emulators!
Super Mario Bros.
Mapper Conversion Patch
FROM Mapper 0 (NROM) TO Mapper 5 (MMC5)
Converted by Dracula X
RELEASE DATE: 06/26/2021
Last Modified: 05/2/2022
The main game of $C000-$FFFF is now located at $0010-$C010
MMC5 Setup is at $ff80 fixed bank
PRG Bankswitch Routine is at $C020
To switch banks from $C000 - $FFFF, use like so:
In a fixed bank:
LDA page_number
JSR $C020
JMP to anywhere in $8000-$BFFF
or
Try this in range $C000 to $FFFF
LDA page_number
JSR $C020
JSR to anywhere in $8000-$BFFF
LDA #$00
JSR $C020
RTS
or
LDA page_number #$80
PHA
LDA page_number #$00
PHA
LDA page_number #$02
JSR $C030
RTS
Compact Mapper makes it easier to switch banks and it is located at $F2DA:
JSR Bank_01 - $F2F0
JSR New Location
JSR Bank_00
RTS
JSR Bank_02 - $F2F4
JSR New Location
JSR Bank_00
RTS
goes up to bank $8D
Do this in $8000-$BFFF for Compact Mapper Example:
; somewhere in 8000-BFFF, bank 0
JMP to a bankswitching routine in a fixed bank
; somewhere in 8000-BFFF, bank 1
RTS
; somewhere in C000-FFFF, fixed bank
; saving & restoring AXY regs may be needed
JSR switch to bank 1
JSR to RTS in bank 1 or anywhere in $8000-$BFFF
JSR switch to bank 0 at $c020
+ original code from bank 0 that was replaced with your JSR
RTS
CHR bank 1 (Right side of PPU) is at $C014
To switch background pages, use like so:
LDA page_number
JSR $C014
Nametable Mapping Routine (one of its uses is mirroring) is at $C010
To change mirroring for instance, use like so:
LDA mirroring_number (#$44 for Vertical, #$50 for Horizontal)
JSR $C010
8KB CHR-ROM pages is located at $20000
Bank 06 is now at bank 00.
The settings that was at $BFDC is located at Bank 1 at $8000.
The settings that was at $F2D0 for SoundEngine is located at Bank 2 at $8000.
Supported Hacks:
Some hacks are supported
Hacks not Supported:
NROM to MMC1
NROM to MMC3
Some hacks are not supported
Use Delta Patcher to patch the xdelta file to the ROM.
Ignore the checksum and then patch the file. If something
not right, then patch your hack ROM with your IPS file to the hack.
Apply your hack to the xdelta file and then reapply the ips to
the file.
Credits:
Rockman or RetroRain: for info on how to convert the mapper!
Disch: for his mapper docs and a better MMC5 startup!
infidelity: for info on how to convert NROM to MMC5.
Shredder: for Compact Mapper
Cyneprepou4uk
Changes for this version 1.3.1: 5-2-2022
Fixed the compact mapper bug.
Changes for this version 1.3.0: 5-1-2022
Compact Mapper have been added.
Changes for this version 1.2.1: 4-6-2022
The game wasnt loading and fixed it.
Changes for this version 1.2.0: 4-5-2022
Added PRG Mode 2 to the patch.
I have three patches for PRG Mode 1, 2 and 3.
Patch 1 is for Mode 01.
Patch 2 is for Mode 02.
Patch 3 is for Mode 03.
Moved bank 06 to bank 00.
Changes for this version 1.1.0:
Added PRG Mode 3 to the patch.
I have two patches for PRG Mode 1 and 3.
Patch 1 is for Mode 01.
Patch 2 is for Mode 03.
Removed CHR Bank 0.
If i'm missing anything about bankswitching info, let me know. Thanks!
All emulators works!
Database match: Super Mario Bros. (World)
Database: No-Intro: Nintendo Entertainment System (v. 20210216-231042)
File SHA-1: EA343F4E445A9050D4B4FBAC2C77D0693B1D0922
File CRC32: 3337EC46
ROM SHA-1: FACEE9C577A5262DBE33AC4930BB0B58C8C037F7
ROM CRC32: D445F698