According to that there is a bit in the address you're using that is also relevant.
"The least significant bit of the upper address byte must be one to select a ROM bank." - The address needs OR'ing with 0x0100.
Try writing to 0x2100->0x21ff as ...
Games have "sets" (AKA versions). The software changes but not the hardware. For instance Pengo set 2 is harder than set 1 and has a different music (to avoid lawsuits?)
If you can "mod" an existing game, then ignore the checksums, you could run your own game. You would have messages like:
g8x_p6.bin WRONG CHECKSUMS:
EXPECTED: CRC(7e3471d3) SHA1(...