]> git.sesse.net Git - pistorm/blobdiff - memory_mapped.c
Fix a bunch of stuff, add working RICOH RTC emulation.
[pistorm] / memory_mapped.c
index bf424060898e29f166991a4af7f9b62707b48ad9..1e5522cb584720356446d8300a09dc2e54bda7c6 100644 (file)
@@ -24,12 +24,12 @@ inline int handle_mapped_read(struct emulator_config *cfg, unsigned int addr, un
     if (cfg->map_type[i] == MAPTYPE_NONE)
       continue;
     else if (ovl && cfg->map_type[i] == MAPTYPE_ROM) {
-      if (cfg->map_mirror[i] != -1 && CHKRANGE_ABS(addr, cfg->map_mirror[i], cfg->map_high[i])) {
+      if (cfg->map_mirror[i] != -1 && CHKRANGE(addr, cfg->map_mirror[i], cfg->map_size[i])) {
         read_addr = cfg->map_data[i] + ((addr - cfg->map_mirror[i]) % cfg->rom_size[i]);
         goto read_value;
       }
     }
-    else if (CHKRANGE_ABS(addr, cfg->map_offset[i], cfg->map_high[i])) {
+    if (CHKRANGE_ABS(addr, cfg->map_offset[i], cfg->map_high[i])) {
       switch(cfg->map_type[i]) {
         case MAPTYPE_ROM:
           read_addr = cfg->map_data[i] + ((addr - cfg->map_offset[i]) % cfg->rom_size[i]);