Mercurial > repos > blastem
diff backend.c @ 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 | 8fe162bdb038 |
children | 374a5ae694e8 |
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; }