diff --git a/examples/PoolBox/PoolBox.code-workspace b/examples/PoolBox/PoolBox.code-workspace index 17e82659..0bcf8bd0 100644 --- a/examples/PoolBox/PoolBox.code-workspace +++ b/examples/PoolBox/PoolBox.code-workspace @@ -22,6 +22,17 @@ } } }, + { + "label": "read memory map", + "type": "shell", + "command": "psxreadmap.exe ${input:output memory map} application/bin/PSX-${input:build profile}/PoolBox.elf", + "problemMatcher": [], + "options": { + "env": { + "PATH": "${env:JABY_ENGINE_PATH}/bin;${env:PATH}" + } + } + } ], "inputs": [ { @@ -44,6 +55,13 @@ "options": ["all", "clean", "rebuild"], "default": "all", "description": "the build target" + }, + { + "id": "output memory map", + "type": "pickString", + "options": ["", "-o application/bin/PoolBox.map"], + "default": "", + "description": "Output a memory map" } ] }, diff --git a/src/Tools/psxreadmap/readmap/src/types/mod.rs b/src/Tools/psxreadmap/readmap/src/types/mod.rs index 9010a12c..4f0fd510 100644 --- a/src/Tools/psxreadmap/readmap/src/types/mod.rs +++ b/src/Tools/psxreadmap/readmap/src/types/mod.rs @@ -6,6 +6,12 @@ pub struct MemoryMap { pub sections: Vec
} +impl MemoryMap { + pub fn is_empty(&self) -> bool { + self.global.is_empty() && self.sections.is_empty() + } +} + #[derive(Default)] pub struct Section { pub name: String, diff --git a/src/Tools/psxreadmap/src/lib.rs b/src/Tools/psxreadmap/src/lib.rs index a52e66b5..cc89f836 100644 --- a/src/Tools/psxreadmap/src/lib.rs +++ b/src/Tools/psxreadmap/src/lib.rs @@ -633,5 +633,13 @@ impl NamedMemoryArea for SectionInfo { } pub fn load_memory_map(use_wsl: bool, input: PathBuf) -> Result { - readmap_helper::generate_memory_map(use_wsl, input) + let memory_map = readmap_helper::generate_memory_map(use_wsl, input)?; + + if memory_map.is_empty() { + Err(Error::from_str("Failed reading memory map. Is the path correct?")) + } + + else { + Ok(memory_map) + } } \ No newline at end of file diff --git a/template/JabyEngine-PSX_Game/#{ProjectName}.code-workspace b/template/JabyEngine-PSX_Game/#{ProjectName}.code-workspace index 843a8d0a..fc06fe28 100644 --- a/template/JabyEngine-PSX_Game/#{ProjectName}.code-workspace +++ b/template/JabyEngine-PSX_Game/#{ProjectName}.code-workspace @@ -22,6 +22,17 @@ } } }, + { + "label": "read memory map", + "type": "shell", + "command": "psxreadmap.exe ${input:output memory map} application/bin/PSX-${input:build profile}/#{ProjectName}.elf", + "problemMatcher": [], + "options": { + "env": { + "PATH": "${env:JABY_ENGINE_PATH}/bin;${env:PATH}" + } + } + } ], "inputs": [ { @@ -44,6 +55,13 @@ "options": ["all", "clean", "rebuild"], "default": "all", "description": "the build target" + }, + { + "id": "output memory map", + "type": "pickString", + "options": ["", "-o application/bin/#{ProjectName}.map"], + "default": "", + "description": "Output a memory map" } ] },