NES mapper programming sounds like shitposts or elaborate pranks.
For example, MMC1. Super common chip, used on Metroid, Legend of Zelda, Bionic Commando.
To program it, you simply write five bytes to the upper half of the memory space. The LSB of each byte is added to a shift register and then for the 5th byte the 13th and 14th bit of the address are used to determine which register to program.
also there has to be at least one cycle between writes, or it ignores them. This is intentional behavior because of a weirdness of the 6502 where any instruction that modifies memory does two writes, once with the original value and once with the modified value.
emulating this behavior correctly is required for at least two published games, because of course it is
every corner of the NES is like this.
you look up any section of that machine and it's like "this came in 5 flavors, none of which are compatible, none of which is properly described in any commonly used ROM format. emulating or programming it correctly is difficult. three games depend on this working exactly this way, and another two games depend on it not working this way"
@foone I had to change the header on a game for some friends because it used a cost-reduced version of a mapper, but was registered with the full one for some reason, and FPGA emulators would break by handling the mapper faithfully
@foone What specifically causes Heisei Tensai Bakabon to break on a MiSTer or Analogue Pocket when using the Namco 163 and not the 175? That's beyond my ability to discover. But break it does!
Funny game though. It's like if my chronically ill ass went on a platforming adventure
@elfi @foone Ah. You'd have to have the docs and single-step through to do that. It should be doable in an emulator, though!