great! I was waiting for that since forever!!!!
Ah, should have asked me
if(mapper == LoROM) {
xml << " <rom>\n";
xml << " <map mode='linear' address='00-7f:8000-ffff'/>\n";
xml << " <map mode='linear' address='80-ff:8000-ffff'/>\n";
xml << " </rom>\n";
if(ram_size > 0) {
xml << " <ram size='" << strhex(ram_size) << "'>\n";
//20-3f|a0-bf probably isn't mapped, just being paranoid ...
xml << " <map mode='linear' address='20-3f:6000-7fff'/>\n";
xml << " <map mode='linear' address='a0-bf:6000-7fff'/>\n";
if((rom_size > 0x200000) || (ram_size > 32 * 1024)) {
xml << " <map mode='linear' address='70-7f:0000-7fff'/>\n";
xml << " <map mode='linear' address='f0-ff:0000-7fff'/>\n";
} else {
xml << " <map mode='linear' address='70-7f:0000-ffff'/>\n";
xml << " <map mode='linear' address='f0-ff:0000-ffff'/>\n";
}
xml << " </ram>\n";
}
}
Note how when ROM size > 2MB or RAM size > 32KB, ROM is mapped to 70-7f|f0-ff:8000-ffff. This is required for Fire Emblem: Torakia 776, otherwise the graphics will be corrupted.
And when you have a ROM size <= 2MB and RAM size <= 32KB, you have to map RAM to 70-7f|f0-ff:8000-ffff. This is required to save your progress in Ys 3: Wanderers from Ys.
Thank Nach for that observation.