From 20bc988676808389b2382ae2563a572c8f823778 Mon Sep 17 00:00:00 2001 From: d0k3 Date: Wed, 18 Apr 2018 16:25:37 +0200 Subject: [PATCH] Scripting: add sdump -w flag --- arm9/source/utils/scripting.c | 4 +++- resources/sample/HelloScript.gm9 | 8 ++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/arm9/source/utils/scripting.c b/arm9/source/utils/scripting.c index f7d869c..829db0a 100644 --- a/arm9/source/utils/scripting.c +++ b/arm9/source/utils/scripting.c @@ -175,7 +175,7 @@ Gm9ScriptCmd cmd_list[] = { { CMD_ID_ENCRYPT , "encrypt" , 1, 0 }, { CMD_ID_BUILDCIA, "buildcia", 1, _FLG('l') }, { CMD_ID_EXTRCODE, "extrcode", 2, 0 }, - { CMD_ID_SDUMP , "sdump", 1, 0 }, + { CMD_ID_SDUMP , "sdump", 1, _FLG('w') }, { CMD_ID_APPLYIPS, "applyips", 3, 0 }, { CMD_ID_APPLYBPS, "applybps", 3, 0 }, { CMD_ID_APPLYBPM, "applybpm", 3, 0 }, @@ -1277,6 +1277,7 @@ bool run_cmd(cmd_id id, u32 flags, char** argv, char* err_str) { if ((strncasecmp(argv[0], TIKDB_NAME_ENC, _ARG_MAX_LEN) == 0) || (strncasecmp(argv[0], TIKDB_NAME_DEC, _ARG_MAX_LEN) == 0)) { bool tik_dec = (strncasecmp(argv[0], TIKDB_NAME_DEC, _ARG_MAX_LEN) == 0); + if (flags & _FLG('w')) fvx_unlink(tik_dec ? OUTPUT_PATH "/" TIKDB_NAME_DEC : OUTPUT_PATH "/" TIKDB_NAME_ENC); if (BuildTitleKeyInfo(NULL, tik_dec, false) == 0) { ShowString("Building to " OUTPUT_PATH ":\n%s ...", argv[0]); if (((BuildTitleKeyInfo("1:/dbs/ticket.db", tik_dec, false) == 0) || @@ -1285,6 +1286,7 @@ bool run_cmd(cmd_id id, u32 flags, char** argv, char* err_str) { ret = true; } } else if (strncasecmp(argv[0], SEEDDB_NAME, _ARG_MAX_LEN) == 0) { + if (flags & _FLG('w')) fvx_unlink(OUTPUT_PATH "/" SEEDDB_NAME); if (BuildSeedInfo(NULL, false) == 0) { ShowString("Building to " OUTPUT_PATH ":\n%s ...", argv[0]); if (((BuildSeedInfo("1:", false) == 0) || diff --git a/resources/sample/HelloScript.gm9 b/resources/sample/HelloScript.gm9 index f558a53..172c4b3 100644 --- a/resources/sample/HelloScript.gm9 +++ b/resources/sample/HelloScript.gm9 @@ -268,6 +268,14 @@ verify S:/firm1.bin # -l / --legit force CIA to be legit (only works for legit system installed titles) # buildcia 0:/x.ncch +# 'sdump' COMMAND +# This command dumps a supported file to the standard output directory (0:/gm9/out) +# Supported files: encTitleKeys.bin, decTitleKeys.bin, seeddb.bin +# -w / --overwrite overwrite existing files without asking +# sdump encTitleKeys.bin +# sdump decTitleKeys.bin +# sdump seeddb.bin + # 'applyips' COMMAND # This will apply the given IPS-formatted delta patch (argument 1) to the specified file (argument 2) # to produce the patched file (argument 3). 2 and 3 may be the same to perform an in-place patch.