Two more notes about the PCE:
#1: Some ROMs have a 512 byte header at the start of the file. You should remove the header when reading the file, otherwise the game won't run (you could detect the header e.g. by checking if fileSize & 0x3FF is > 0).
#2: If I format my card using v1.03 of the programmer, change the region to USA and add a game the programmer switches the region back to JAPAN. So I have to switch it one more time, which is a bit annoying.