diff --git a/src/engine/fileOpsSample.cpp b/src/engine/fileOpsSample.cpp index 1fb503543..4a44d0192 100644 --- a/src/engine/fileOpsSample.cpp +++ b/src/engine/fileOpsSample.cpp @@ -464,6 +464,13 @@ DivSample* DivEngine::sampleFromFileRaw(const char* path, DivSampleDepth depth, accum/=channels; sample->data8[i]=accum; } + if (bigEndian) { + for (unsigned int i=0; (i+1)data8[i]^=sample->data8[i^1]; + sample->data8[i^1]^=sample->data8[i]; + sample->data8[i]^=sample->data8[i^1]; + } + } } else { memcpy(sample->getCurBuf(),buf,len); } diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 48a27a057..cfe718276 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -5874,8 +5874,6 @@ bool FurnaceGUI::loop() { if (pendingRawSampleDepth!=DIV_SAMPLE_DEPTH_8BIT && pendingRawSampleDepth!=DIV_SAMPLE_DEPTH_16BIT) { pendingRawSampleChannels=1; - } - if (pendingRawSampleDepth!=DIV_SAMPLE_DEPTH_16BIT) { pendingRawSampleBigEndian=false; } @@ -5902,6 +5900,10 @@ bool FurnaceGUI::loop() { ImGui::Checkbox("Swap nibbles",&pendingRawSampleSwapNibbles); } + if (pendingRawSampleDepth==DIV_SAMPLE_DEPTH_8BIT) { + ImGui::Checkbox("Swap words",&pendingRawSampleBigEndian); + } + if (pendingRawSampleDepth==DIV_SAMPLE_DEPTH_MULAW) { ImGui::Text("Encoding:"); ImGui::Indent();