Closed Karmeck closed 1 month ago
There has been an error in my reporting. Plz stand by. Above still true for 1.20, emulator.
The above is now (confirmed) true for 1.01 and 1.21 of the rom.
I extracted the midi tracks from the "DUKE3D.GRP" file with SLADE (we are talking about Duke Nukem 3D updated to version 1.5). The tracks are: AHGEEZ.MID (E1L7) XPLASMA.MID (E2L8) GLOOMY.MID (E2L10)
When playing the following tracks in a midi player such as Windows Media Player or Falcosoft MIDI Player with LoopMIDI virtual cable connected to Nuked SC-55 (SC-55 mk1), the emulator returns the error MIDI Buff. Full!
and the tracks are playing incorrectly. OS Windows 11.
The error is not present in DOSBox while playing the game and according to @Karmeck, it doesn't happen on real hardware under any circumstances.
Windows Media Player or Falcosoft MIDI Player with LoopMIDI virtual cable connected
Actually it happens with all Windows based Midi players (Van basco\Winamp\MPC-HC\GNMidi\Tom's MIDI player\MIDITrail among others) and also with the DOS based DosMid player when used in DosBox. Moreover it seems that not only with LoopMidi (Midi-Yoke is also tested and it is affected). The tests were made on Windows 10.
I can confirm on Windows 11 using FSMP for midi playback with 1.21 rom.
Duke 3D music is not normal MID, it uses extended EMIDI format. EMIDI allows to disable specific tracks depending on selected music device. Composers used this feature to tweak instrumentation for FM and GUS sound cards, thus such EMIDI file will have multiple tracks with duplicated notes/controller changes. Normal MIDI player doesn't know about EMIDI and will just play ALL tracks and will end up sending too many data to sound device.
Duke 3D music is not normal MID, it uses extended EMIDI format. EMIDI allows to disable specific tracks depending on selected music device. Composers used this feature to tweak instrumentation for FM and GUS sound cards, thus such EMIDI file will have multiple tracks with duplicated notes/controller changes. Normal MIDI player doesn't know about EMIDI and will just play ALL tracks and will end up sending too many data to sound device.
Why is there no overload on real SC-55 mk1?
b47545511d3b0f1ce59139e90bbf24e80ec7731b should improve situation
When playing 08 - Ah, Geez!.mid (among others) in Falcosoft midi player 08 - Ah, Geez!.zip
I (we, see Vogons thread) get "MIDI Buff. Full"
This is on both 1.20 and 1.21 rom.
This error is not present on real hardware sc-55 mk1, rom 1.20