ds_rom/rom/
config.rs

1use std::path::PathBuf;
2
3use serde::{Deserialize, Serialize};
4
5/// Config file mainly consisting of paths to extracted files.
6#[derive(Serialize, Deserialize, Clone)]
7pub struct RomConfig {
8    /// Byte value to append between ROM sections
9    pub padding_value: u8,
10
11    /// Path to header YAML
12    pub header: PathBuf,
13    /// Path to header logo PNG
14    pub header_logo: PathBuf,
15
16    /// Path to ARM9 binary
17    pub arm9_bin: PathBuf,
18    /// Path to ARM9 YAML
19    pub arm9_config: PathBuf,
20
21    /// Path to ARM7 binary
22    pub arm7_bin: PathBuf,
23    /// Path to ARM7 YAML
24    pub arm7_config: PathBuf,
25
26    /// Path to ITCM files
27    pub itcm: RomConfigAutoload,
28    /// Path to DTCM files
29    pub dtcm: RomConfigAutoload,
30    /// Path to unknown autoloads
31    #[serde(skip_serializing_if = "Vec::is_empty", default = "Vec::new")]
32    pub unknown_autoloads: Vec<RomConfigAutoload>,
33
34    /// Path to ARM9 overlays YAML
35    pub arm9_overlays: Option<PathBuf>,
36    /// Path to ARM7 overlays YAML
37    pub arm7_overlays: Option<PathBuf>,
38
39    /// Path to banner YAML
40    pub banner: PathBuf,
41
42    /// Path to asset files directory
43    pub files_dir: PathBuf,
44    /// Path to path order file
45    pub path_order: PathBuf,
46}
47
48/// Path to autoload files
49#[derive(Serialize, Deserialize, Clone)]
50pub struct RomConfigAutoload {
51    /// Path to binary
52    pub bin: PathBuf,
53    /// Path to YAML
54    pub config: PathBuf,
55}