I was wondering if there was a way to put it on an MMC3 or MMC5 chip
But of course.
(Though technically the game doesn't go ON the MMC ch... nevermind)Mapper hacks have 3 basic steps:
1) Change the header to indicate it should use the new mapper
2) Cut into the game's initialization code (in the RESET vector handler) and write code to initialize the mapper to a known, stable state.
3) Find all the code that accesses the old mapper registers, and replace it with code that has the same effect using the new mapper registers. With an MMC1->MMC5 conversion, this probably will only involve PRG/CHR swapping routines and *maybe* a mirroring mode change. So not counting the initialization stuff in step 2, there's probably only two to four routines in the code that need to be updated.
The steps are simple enough -- and even usually very easy for a seasoned hacker. But they require you know a few things:
- You need to have a pretty firm grasp on 6502 assembly
- You need to understand NES memory mapping and bankswapping.
- You need to mostly understand both the old and new mappers.
If you're new to asm, I'm torn on whether or not a mapper hack is a good first project. On one hand, the code you have to write for it is pretty small and relatively easy. On the other hand it requires a significant chunk of domain knowledge. On the
other hand, if you don't know enough about asm to actually
DO the mapper change, you probably don't know enough asm to
make use of the new mapper anyway.