Now that I decided to switch from MMC-1 to MMC-3, is there any tutorial that explains, in a clear and easily understandable manner, how to change a game to MMC-3?
This one:
https://wiki.nesdev.com/w/index.php/MMC3
is a techical description that might come in handy when you know what you're doing and when you simply want to lookup some details.
But when I start the whole thing, I rather need a step by step explanation with code examples.
Unfortunately, there's no MMC-3 equivalent to these pages:
https://wiki.nesdev.com/w/index.php/Programming_UNROM
https://wiki.nesdev.com/w/index.php/Programming_MMC1
Also, I need to be able to change my code one thing at a time:
First, I want to set up the mapper, so that my current game still works as before.
I.e. I don't need to know about scanline interrupts and CHR bankswitching* yet.
For the first step, I only need to know how to to initialize the mapper, how to switch the bank and how to change between horizontal and vertical mirroring.
(* Is UNROM- and MMC-1-like CHR RAM even possible with MMC-3? You know, the one where you write individual bytes into the CHR, being able to combine them any way you like.)
In the next step, I would then need to know how the interrupts work, so that I can replace my sprite 0 check with a scanline interrupt.
And then, as the last step, I'd need to know how the whole CHR bankswitching works, so that I can add the possibility for animated graphics and probably restructure the way that my graphics are stored in ROM.
(Because, as far as I understood it, bytes aren't manually written to RAM one by one with this method, but a certain section of the CHR simply points to a certain section in game ROM.)
This one:
https://wiki.nesdev.com/w/index.php/MMC3
is a techical description that might come in handy when you know what you're doing and when you simply want to lookup some details.
But when I start the whole thing, I rather need a step by step explanation with code examples.
Unfortunately, there's no MMC-3 equivalent to these pages:
https://wiki.nesdev.com/w/index.php/Programming_UNROM
https://wiki.nesdev.com/w/index.php/Programming_MMC1
Also, I need to be able to change my code one thing at a time:
First, I want to set up the mapper, so that my current game still works as before.
I.e. I don't need to know about scanline interrupts and CHR bankswitching* yet.
For the first step, I only need to know how to to initialize the mapper, how to switch the bank and how to change between horizontal and vertical mirroring.
(* Is UNROM- and MMC-1-like CHR RAM even possible with MMC-3? You know, the one where you write individual bytes into the CHR, being able to combine them any way you like.)
In the next step, I would then need to know how the interrupts work, so that I can replace my sprite 0 check with a scanline interrupt.
And then, as the last step, I'd need to know how the whole CHR bankswitching works, so that I can add the possibility for animated graphics and probably restructure the way that my graphics are stored in ROM.
(Because, as far as I understood it, bytes aren't manually written to RAM one by one with this method, but a certain section of the CHR simply points to a certain section in game ROM.)