diff --git a/src/map/mmc1.c b/src/map/mmc1.c index 7da9522..ebe86dc 100644 --- a/src/map/mmc1.c +++ b/src/map/mmc1.c @@ -263,7 +263,9 @@ static int mmc1_state_read(void* _map, const void* data, int base_size = mmc1_state_size(map) - map->chr_ram_lim; int size = base_size + mmc1_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->reg_shift), data, size); mmc1_update_prg(map);