diff options
author | Michael Pavone <pavone@retrodev.com> | 2019-01-17 19:14:09 -0800 |
---|---|---|
committer | Michael Pavone <pavone@retrodev.com> | 2019-01-17 19:14:09 -0800 |
commit | 85b1eacc37399cc9b7442971bf7720ccf16d8d3e (patch) | |
tree | 62ec43904b41cd2883edadfa88b49ca32cb53e76 | |
parent | 83c8f0d26750b8ff3c46ba5a27ccc3af68c58bdc (diff) |
Fix SMD ROM support
-rw-r--r-- | blastem.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -76,14 +76,16 @@ int load_smd_rom(ROMFILE f, void **buffer) size_t filesize = 512 * 1024; size_t readsize = 0; - uint16_t *dst = malloc(filesize); + uint16_t *dst, *buf; + dst = buf = malloc(filesize); size_t read; do { if ((readsize + SMD_BLOCK_SIZE > filesize)) { filesize *= 2; - dst = realloc(dst, filesize); + buf = realloc(buf, filesize); + dst = buf + readsize/sizeof(uint16_t); } read = romread(block, 1, SMD_BLOCK_SIZE, f); if (read > 0) { @@ -95,7 +97,7 @@ int load_smd_rom(ROMFILE f, void **buffer) } while(read > 0); romclose(f); - *buffer = dst; + *buffer = buf; return readsize; } |