diff --git a/src/engine/instrument.cpp b/src/engine/instrument.cpp index d16bf840a..d013e917d 100644 --- a/src/engine/instrument.cpp +++ b/src/engine/instrument.cpp @@ -886,7 +886,7 @@ size_t DivInstrument::writeFeatureLS(SafeWriter* w, std::vector& list, cons if (list.empty()) return 0; - FEATURE_BEGIN("SL"); + FEATURE_BEGIN("LS"); w->writeS(list.size()); @@ -935,7 +935,7 @@ size_t DivInstrument::writeFeatureLW(SafeWriter* w, std::vector& list, cons if (list.empty()) return 0; - FEATURE_BEGIN("WL"); + FEATURE_BEGIN("LW"); w->writeS(list.size()); @@ -2832,7 +2832,7 @@ DivDataErrors DivInstrument::readInsDataNew(SafeReader& reader, short version, b } else if (memcmp(featCode,"S3",2)==0) { // SID3 readFeatureS3(reader,version); } else { - if (song==NULL && (memcmp(featCode,"SL",2)==0 || (memcmp(featCode,"WL",2)==0))) { + if (song==NULL && (memcmp(featCode,"SL",2)==0 || (memcmp(featCode,"WL",2)==0) || (memcmp(featCode,"LS",2)==0) || (memcmp(featCode,"LW",2)==0))) { // nothing } else { logW("unknown feature code %c%c!",featCode[0],featCode[1]); diff --git a/src/engine/platform/sms.cpp b/src/engine/platform/sms.cpp index b046f69df..636cf6560 100644 --- a/src/engine/platform/sms.cpp +++ b/src/engine/platform/sms.cpp @@ -142,6 +142,7 @@ void DivPlatformSMS::acquire_mame(blip_buffer_t** bb, size_t len) { // wahahaha heuristic... int advance=len-h; for (int i=0; i<4; i++) { + if (sn->m_volume[i]==0) continue; if (sn->m_count[i]m_count[i]; } if (advance<1) advance=1; diff --git a/src/gui/newFilePicker.cpp b/src/gui/newFilePicker.cpp index b017d8d9c..12afb3af8 100644 --- a/src/gui/newFilePicker.cpp +++ b/src/gui/newFilePicker.cpp @@ -1757,6 +1757,20 @@ bool FurnaceFilePicker::draw(ImGuiWindowFlags winFlags) { } } } + } else { + if (dirSelect) { + finalSelection.push_back(path); + curStatus=FP_STATUS_ACCEPTED; + if (noClose) { + for (FileEntry* j: chosenEntries) { + j->isSelected=false; + } + chosenEntries.clear(); + updateEntryName(); + } else { + isOpen=false; + } + } } } } diff --git a/src/gui/regView.cpp b/src/gui/regView.cpp index 6c545234b..913d8ffd1 100644 --- a/src/gui/regView.cpp +++ b/src/gui/regView.cpp @@ -39,7 +39,14 @@ void FurnaceGUI::drawRegView() { } else { ImGui::PushFont(patFont); if (ImGui::BeginTable("Memory",17)) { - ImGui::TableSetupColumn("addr",ImGuiTableColumnFlags_WidthFixed); + float widthOne=ImGui::CalcTextSize("0").x; + if (size>0xfff) { // no im got gonna put some clamped log formula instead + ImGui::TableSetupColumn("addr",ImGuiTableColumnFlags_WidthFixed, widthOne*4.0f); + } else if (size>0xff) { + ImGui::TableSetupColumn("addr",ImGuiTableColumnFlags_WidthFixed, widthOne*3.0f); + } else { + ImGui::TableSetupColumn("addr",ImGuiTableColumnFlags_WidthFixed, widthOne*2.0f); + } ImGui::TableNextRow(); ImGui::TableNextColumn();