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 writing a NES emulator always sounded like it was fairly easy to get Super Mario Brothers working in a month or two, then seven years trying to get every mapper perfect
@foone @gloriouscow Especially when factoring in pirate carts. That rabbit hole goes deeper by the day
@elfi @foone @gloriouscow wonder how that one guy dealing with the like, 7 mappers from Sachen is doing