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}