diff --git a/scripts/extract_compressed_png.py b/scripts/extract_compressed_png.py index 5cd948eb3..0ae2271d3 100644 --- a/scripts/extract_compressed_png.py +++ b/scripts/extract_compressed_png.py @@ -4,13 +4,19 @@ address = int(sys.argv[1], 16) length = int(sys.argv[2], 16) width = sys.argv[3] +if not width.isdigit(): + sys.exit("Error: width must be a positive integer") + +def run_cmd(path, args): + pid = os.posix_spawn(path, args, os.environ) + os.waitpid(pid, 0) with open('baserom.gba', 'rb') as rom: rom.seek(address) base_name = str(hex(0x8000000 + address).upper())[2:] - name = base_name+ ".bin.lz" - with open(name, "wb") as bin: + name = os.path.basename(base_name + ".bin.lz") + with open(name, "wb") as bin: # nosec bin.write(rom.read(length)) - os.system(f"tools/gbagfx/gbagfx {name} {base_name}.bin") + run_cmd("tools/gbagfx/gbagfx", ["gbagfx", name, base_name + ".bin"]) os.rename(f"{base_name}.bin", f"{base_name}.4bpp") - os.system(f"tools/gbagfx/gbagfx {base_name}.4bpp {base_name}.png -width {width}") + run_cmd("tools/gbagfx/gbagfx", ["gbagfx", base_name + ".4bpp", base_name + ".png", "-width", width])