foxygit / doom Log in
commit 431b79530bea2f5666e0ca362773160ab7274f5d
Author:     Simon Howard <fraggle@gmail.com>
AuthorDate: Wed Jun 19 20:50:09 2013 +0000
Commit:     Simon Howard <fraggle@gmail.com>
CommitDate: Wed Jun 19 20:50:09 2013 +0000

    Fix OPL MIDI playback on big endian systems (thanks GhostlyDeath).

    Subversion-branch: /trunk/chocolate-doom
    Subversion-revision: 2607
---
 src/i_oplmusic.c | 6 +++---
 src/midifile.c   | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/i_oplmusic.c b/src/i_oplmusic.c
index d2116ddb..f6ca4c6d 100644
--- a/src/i_oplmusic.c
+++ b/src/i_oplmusic.c
@@ -736,7 +736,7 @@ static unsigned int FrequencyForVoice(opl_voice_t *voice)

     gm_voice = &voice->current_instr->voices[voice->current_instr_voice];

-    if ((voice->current_instr->flags & GENMIDI_FLAG_FIXED) == 0)
+    if ((SHORT(voice->current_instr->flags) & GENMIDI_FLAG_FIXED) == 0)
     {
         note += (signed short) SHORT(gm_voice->base_note_offset);
     }
@@ -853,7 +853,7 @@ static void VoiceKeyOn(opl_channel_data_t *channel,
     // Work out the note to use.  This is normally the same as
     // the key, unless it is a fixed pitch instrument.

-    if ((instrument->flags & GENMIDI_FLAG_FIXED) != 0)
+    if ((SHORT(instrument->flags) & GENMIDI_FLAG_FIXED) != 0)
     {
         voice->note = instrument->fixed_note;
     }
@@ -920,7 +920,7 @@ static void KeyOnEvent(opl_track_data_t *track, midi_event_t *event)

     VoiceKeyOn(channel, instrument, 0, key, volume);

-    if ((instrument->flags & GENMIDI_FLAG_2VOICE) != 0)
+    if ((SHORT(instrument->flags) & GENMIDI_FLAG_2VOICE) != 0)
     {
         VoiceKeyOn(channel, instrument, 1, key, volume);
     }
diff --git a/src/midifile.c b/src/midifile.c
index bd935ca1..fcb50848 100644
--- a/src/midifile.c
+++ b/src/midifile.c
@@ -697,7 +697,7 @@ int MIDI_GetNextEvent(midi_track_iter_t *iter, midi_event_t **event)

 unsigned int MIDI_GetFileTimeDivision(midi_file_t *file)
 {
-    return file->header.time_division;
+    return SHORT(file->header.time_division);
 }

 void MIDI_RestartIterator(midi_track_iter_t *iter)