Skip to content
On This Day:

Nintendo Entertainment System · Improvement

Super Mario Bros. MMC5 Patch+Compact-Mapper

By Dracula X

Super Mario Bros. · All hacks & resources →

About this project

This is a Mapper Conversion hack for Super Mario Bros. ROM from NROM to MMC5.

Features:

  • Expansion RAM ($5C00-$5FFF, read/write)
  • CPU $6000-$7FFF: 8 KB switchable PRG RAM bank
  • Bank switching included. Readme file for more info.
  • Extended RAM mode ($5104)

Read the Readme for changes in this version v1.3.0

Works on all emulators!

Original game requirements

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

Creator credits

Dracula X
Hacking

RELEASE 1.3.1

Readme & instructions

6023readme.txt

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…

Read moreRead less
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!

Download 6023readme.txt ↓

FROM THE COMMUNITY

Player reviews

0 reviews
No ratings yet

Played this project? Tell other players how it holds up.

Your take on Super Mario Bros. MMC5 Patch+Compact-Mapper

Spam has been overwhelming. To help us approve your review, sign up and introduce yourself in the Introductions forum so we know you’re not a bot.

Sign in with your Retro Replay account to rate this project and share your experience.

Sign in to review