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"
@elfi @foone If you care to know, the NESdev Wiki has details on every known mapper! :3