Your immediate question might be why would I want to do this?
Basically I'm looking to develop my game for a board that's being developed by infiniteneslives, which you may have heard of as the Homebrew FDS project. It was a good time to make a switch - I'd done enough sloppy development in my "sandbox" to start fresh and create a more solid engine, and I wanted more freedom to create lots of content, and this will be the cheapest way to realize physical cartridges of a large game for sure. I chose MMC5 because of its ability to be configured similar to the HBFDS mapper, support for lots of storage, and bankswitched CHR ROM. Thing is, from my tests it looks like it does not support bankswitched CHR RAM, which HBFDS will - 32KB of it at the least. I can enable CHR RAM but I cannot bankswitch it. This is fine for my sprites (I am planning to do dynamic updates there) but not for BG (which I want to have fast bulk switching for animation and splitscreen HUD so that the playfield can have more detail and animate lushly)
To get around this I thought the easy way was to somehow get FCEUX to allow writing to CHR ROM. I will store 8 blank CHR banks in the ROM file, configure MMC5 for 4KB bankswitching, and write to them from PRG ROM as needed, switching them in like bankswitched PRG RAM.
Compiling FCEUX looks non-trivial (as is the code) so if there's a commandline option or setting anyone knows of that disables write-protecting of ROM, that seems like it could work (though I suppose it's possible it might toss out any changes on a bankswitch...). Otherwise I guess I'll dive in - if anyone can offer me tips on the code in that case that would be a big help.
Basically I'm looking to develop my game for a board that's being developed by infiniteneslives, which you may have heard of as the Homebrew FDS project. It was a good time to make a switch - I'd done enough sloppy development in my "sandbox" to start fresh and create a more solid engine, and I wanted more freedom to create lots of content, and this will be the cheapest way to realize physical cartridges of a large game for sure. I chose MMC5 because of its ability to be configured similar to the HBFDS mapper, support for lots of storage, and bankswitched CHR ROM. Thing is, from my tests it looks like it does not support bankswitched CHR RAM, which HBFDS will - 32KB of it at the least. I can enable CHR RAM but I cannot bankswitch it. This is fine for my sprites (I am planning to do dynamic updates there) but not for BG (which I want to have fast bulk switching for animation and splitscreen HUD so that the playfield can have more detail and animate lushly)
To get around this I thought the easy way was to somehow get FCEUX to allow writing to CHR ROM. I will store 8 blank CHR banks in the ROM file, configure MMC5 for 4KB bankswitching, and write to them from PRG ROM as needed, switching them in like bankswitched PRG RAM.
Compiling FCEUX looks non-trivial (as is the code) so if there's a commandline option or setting anyone knows of that disables write-protecting of ROM, that seems like it could work (though I suppose it's possible it might toss out any changes on a bankswitch...). Otherwise I guess I'll dive in - if anyone can offer me tips on the code in that case that would be a big help.