|
|
|
@@ -355,8 +355,18 @@ int mmc3_state_size(const nes_mapper* nes_map) { |
|
|
|
|
|
|
|
int mmc3_state_read(nes_mapper* nes_map, const void* data) { |
|
|
|
mmc3_mapper* map = (mmc3_mapper*)nes_map->data; |
|
|
|
|
|
|
|
uint8_t old_bank_select = map->bank_select; |
|
|
|
|
|
|
|
int size = mmc3_state_size(nes_map); |
|
|
|
memcpy(map->r, data, size); |
|
|
|
|
|
|
|
uint8_t new_bank_select = map->bank_select; |
|
|
|
map->bank_select = old_bank_select; |
|
|
|
|
|
|
|
mmc3_update_rom_mode(map, new_bank_select); |
|
|
|
mmc3_update_vram(map); |
|
|
|
|
|
|
|
return size; |
|
|
|
} |
|
|
|
|
|
|
|
|