1use crate::AppConfig; 2use crate::migration::old_default_nes_palette; 3use nes_config::NesPalette; 4use serde::{Deserialize, Serialize}; 5 6pub fn migrate_config_0_11_4(config: &mut AppConfig, config_str: &str) { 7 // NES default palette changed; change it if currently configured to use the old default 8 // nes.palette 9 10 #[derive(Debug, Clone, Default, Serialize, Deserialize)] 11 struct LimitedNesConfig { 12 palette: NesPalette, 13 } 14 15 #[derive(Debug, Clone, Default, Serialize, Deserialize)] 16 struct LimitedAppConfig { 17 nes: LimitedNesConfig, 18 } 19 20 let Ok(old_config) = toml::from_str::<LimitedAppConfig>(config_str) else { return }; 21 22 if old_config.nes.palette == old_default_nes_palette::PALETTE { 23 log::info!("Detected old default NES palette; changing to new default"); 24 config.nes.palette = NesPalette::default(); 25 } 26}