add big endian and long ptr options to cmd stream

the format also changes!
This commit is contained in:
tildearrow 2025-04-13 20:42:15 -05:00
parent d9abd551a2
commit e79721b785
9 changed files with 180 additions and 92 deletions

View file

@ -381,22 +381,12 @@ void FurnaceGUI::drawExportText(bool onWindow) {
}
void FurnaceGUI::commandExportOptions() {
bool noCmdCallOpt=(csExportDisablePass&1);
bool noDelayCondense=(csExportDisablePass&2);
bool noSubBlock=(csExportDisablePass&4);
if (ImGui::Checkbox(_("Don't optimize command calls"),&noCmdCallOpt)) {
csExportDisablePass&=~1;
csExportDisablePass|=noCmdCallOpt?1:0;
}
if (ImGui::Checkbox(_("Don't condense delays"),&noDelayCondense)) {
csExportDisablePass&=~2;
csExportDisablePass|=noDelayCondense?2:0;
}
if (ImGui::Checkbox(_("Don't perform sub-block search"),&noSubBlock)) {
csExportDisablePass&=~4;
csExportDisablePass|=noSubBlock?4:0;
}
ImGui::Checkbox(_("Long pointers (use for 64K+ size streams)"),&csExportOptions.longPointers);
ImGui::Checkbox(_("Big endian mode"),&csExportOptions.bigEndian);
ImGui::Separator();
ImGui::Checkbox(_("Don't optimize command calls"),&csExportOptions.noCmdCallOpt);
ImGui::Checkbox(_("Don't condense delays"),&csExportOptions.noDelayCondense);
ImGui::Checkbox(_("Don't perform sub-block search"),&csExportOptions.noSubBlock);
}
void FurnaceGUI::drawExportCommand(bool onWindow) {

View file

@ -2653,7 +2653,7 @@ void FurnaceGUI::exportCmdStream(bool target, String path) {
csExportTarget=target;
csExportDone=false;
csExportThread=new std::thread([this]() {
SafeWriter* w=e->saveCommand(&csProgress,csExportDisablePass);
SafeWriter* w=e->saveCommand(&csProgress,csExportOptions);
csExportResult=w;
csExportDone=true;
});
@ -8951,7 +8951,6 @@ FurnaceGUI::FurnaceGUI():
csExportDone(false),
dmfExportVersion(0),
curExportType(GUI_EXPORT_NONE),
csExportDisablePass(0),
romTarget(DIV_ROM_ABSTRACT),
romMultiFile(false),
romExportSave(false),

View file

@ -2765,7 +2765,7 @@ class FurnaceGUI {
DivAudioExportOptions audioExportOptions;
int dmfExportVersion;
FurnaceGUIExportTypes curExportType;
unsigned int csExportDisablePass;
DivCSOptions csExportOptions;
DivCSProgress csProgress;
// ROM export specific