support empty short command line param names

also add a parameter to disable command stream export optimizations
This commit is contained in:
tildearrow 2025-04-07 13:16:49 -05:00
parent f79c0689ba
commit 2fd6fa1a87

View file

@ -90,6 +90,7 @@ String romOutName;
String txtOutName; String txtOutName;
int benchMode=0; int benchMode=0;
int subsong=-1; int subsong=-1;
int cmdDisableOpt=0;
DivAudioExportOptions exportOptions; DivAudioExportOptions exportOptions;
DivConfig romExportConfig; DivConfig romExportConfig;
@ -441,6 +442,17 @@ TAParamResult pCmdOut(String val) {
return TA_PARAM_SUCCESS; return TA_PARAM_SUCCESS;
} }
TAParamResult pCmdOpt(String val) {
try {
int v=std::stoi(val);
cmdDisableOpt=v;
} catch (std::exception& e) {
logE("command stream export optimization disable bitmask shall be a number.");
return TA_PARAM_ERROR;
}
return TA_PARAM_SUCCESS;
}
TAParamResult pROMOut(String val) { TAParamResult pROMOut(String val) {
romOutName=val; romOutName=val;
e.setAudio(DIV_AUDIO_DUMMY); e.setAudio(DIV_AUDIO_DUMMY);
@ -482,6 +494,7 @@ void initParams() {
params.push_back(TAParam("O","vgmout",true,pVGMOut,"<filename>","output .vgm data")); params.push_back(TAParam("O","vgmout",true,pVGMOut,"<filename>","output .vgm data"));
params.push_back(TAParam("D","direct",false,pDirect,"","set VGM export direct stream mode")); params.push_back(TAParam("D","direct",false,pDirect,"","set VGM export direct stream mode"));
params.push_back(TAParam("C","cmdout",true,pCmdOut,"<filename>","output command stream")); params.push_back(TAParam("C","cmdout",true,pCmdOut,"<filename>","output command stream"));
params.push_back(TAParam("","cmdopt",true,pCmdOpt,"<bitmask>","disable command stream optimization passes (+1 command, +2 delay, +4 sub-block)"));
params.push_back(TAParam("r","romout",true,pROMOut,"<filename|path>","export ROM file, or path for multi-file export")); params.push_back(TAParam("r","romout",true,pROMOut,"<filename|path>","export ROM file, or path for multi-file export"));
params.push_back(TAParam("R","romconf",true,pROMConf,"<key>=<value>","set configuration parameter for ROM export")); params.push_back(TAParam("R","romconf",true,pROMConf,"<key>=<value>","set configuration parameter for ROM export"));
params.push_back(TAParam("t","txtout",true,pTxtOut,"<filename>","export as text file")); params.push_back(TAParam("t","txtout",true,pTxtOut,"<filename>","export as text file"));
@ -708,7 +721,7 @@ int main(int argc, char** argv) {
arg=arg.substr(0,eqSplit); arg=arg.substr(0,eqSplit);
} }
for (size_t j=0; j<params.size(); j++) { for (size_t j=0; j<params.size(); j++) {
if (params[j].name==arg || params[j].shortName==arg) { if (params[j].name==arg || (params[j].shortName!="" && params[j].shortName==arg)) {
switch (params[j].func(val)) { switch (params[j].func(val)) {
case TA_PARAM_ERROR: case TA_PARAM_ERROR:
return 1; return 1;
@ -881,7 +894,7 @@ int main(int argc, char** argv) {
if (outputMode) { if (outputMode) {
if (cmdOutName!="") { if (cmdOutName!="") {
SafeWriter* w=e.saveCommand(); SafeWriter* w=e.saveCommand(NULL,cmdDisableOpt);
if (w!=NULL) { if (w!=NULL) {
FILE* f=ps_fopen(cmdOutName.c_str(),"wb"); FILE* f=ps_fopen(cmdOutName.c_str(),"wb");
if (f!=NULL) { if (f!=NULL) {