diff --git a/src/map/mmc3.c b/src/map/mmc3.c index 41d1268..06408c8 100644 --- a/src/map/mmc3.c +++ b/src/map/mmc3.c @@ -376,7 +376,9 @@ static int mmc3_state_read(void* _map, const void* data, int base_size = mmc3_state_size(map) - map->chr_ram_lim; int size = base_size + mmc3_chr_ram_size(map); if (size > data_len) size = data_len; - map->chr_ram_lim = data_len - base_size; + if (data_len - base_size > map->chr_ram_lim) { + map->chr_ram_lim = data_len - base_size; + } memcpy(map->r, data, size); uint8_t new_bank_select = map->bank_select;