changeset 1771:e59045f781ce mame_interp

Fix a couple issues in manual memory map read/write functions
author Michael Pavone <pavone@retrodev.com>
date Tue, 12 Mar 2019 21:57:35 -0700
parents a81db00e171a
children 75172d440900
files backend.c
diffstat 1 files changed, 5 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/backend.c	Tue Mar 12 21:57:13 2019 -0700
+++ b/backend.c	Tue Mar 12 21:57:35 2019 -0700
@@ -162,7 +162,7 @@
 	if (!chunk) {
 		return;
 	}
-	uint32_t offset = (address - chunk->start) & chunk->mask;
+	uint32_t offset = address & chunk->mask;
 	if (chunk->flags & MMAP_WRITE) {
 		uint8_t *base;
 		if (chunk->flags & MMAP_PTR_IDX) {
@@ -212,6 +212,8 @@
 					return 0xFF;
 				}
 				offset /= 2;
+			} else if(opts->byte_swap) {
+				offset ^= 1;
 			}
 			return base[offset];
 		}
@@ -246,6 +248,8 @@
 					return;
 				}
 				offset /= 2;
+			} else if(opts->byte_swap) {
+				offset ^= 1;
 			}
 			base[offset] = value;
 		}