The soundtrack of Descent 1 was composed on a Roland SC-88 (or a sister model), which was the "gold standard" Midi hardware module of the era. (Its samples formed the basis of the wavetable synth shipped with Windows 95.) I rendered here the Descent 1 title theme using FatBoy via FluidSynth: https://chris.pacejo.net/temp/descent/D1.ogg
There are definitely nuances missing; e.g. 40 s in, when there's just the bass vamp, the SC-88 rendering is far superior in my opinion. At 60 s in, the synth that enters is too loud in the FatBoy rendering.
It's possible – maybe even likely – that these differences are more due to FluidSynth not interpreting all controls and RPNs identically to the SC-88.
Sort of. They control things like volume, panning, reverb, pitch bend sensitivity, tuning, synthesizer parameters, etc. Most controls have a defined meaning, though some (named things like "General Purpose" and "Effect 1 Depth") do not, and control different things on different synthesizers. (For example, "Effect 1 Depth" is usually reverb, but not always.) But even those things with a defined meaning are "defined" in the loosest sense of the word. E.g. one synthesizer may implement "Modulation" as tremolo, while another may implement it as vibrato (two similar, but noticeably different, musical effects). So any MIDI recording which ventures even slightly outside of the most common and obvious controls or RPNs risks losing important nuances upon being played by a different synthesizer.
(The difference between controls and RPNs is that RPNs are – in theory – extensible, registered with a centralized authority, so that new ones may be developed. In practice, there are a small fixed number, fewer even than controls.)
Further there are NRPNs, which are like RPNs but are not registered with any authority. So these completely vary by manufacturer. The SC-88 has a bunch of these, things like "Vibrato Rate", which, if ignored by another synthesizer, sometimes make no difference, or sometimes are very noticeable, depending on the degree to which the composer is relying on that functionality.
Often the bigger difference which I neglected to mention is banks. There are 128 MIDI "patches" – sounds – but of course there are many more than 128 instruments in the world. So there is also a system of patch variations called "banks". Usually these variations are true variations (e.g. concert grand vs. baby grand piano), but sometimes they are completely different (Moog synthesizer vs. square wave). And like controls, they are variably ill-defined or not standardized, and thus not implemented identically on all synthesizers.
(The reason for this mess is because MIDI is really an evolved creature. The original MIDI standard specified very little, so General MIDI (GM) was born, which is what most people know as "MIDI", but that was insufficient, so manufacturers authored their own extensions: Roland created GS; Yamaha created XG; and of course they are incompatible with each other.)
It's good, but compare to a rendering from an actual SC-88: https://www.youtube.com/watch?v=xqrvsy7AeGw (not my rendering, though I do own an SC-88)
There are definitely nuances missing; e.g. 40 s in, when there's just the bass vamp, the SC-88 rendering is far superior in my opinion. At 60 s in, the synth that enters is too loud in the FatBoy rendering.
It's possible – maybe even likely – that these differences are more due to FluidSynth not interpreting all controls and RPNs identically to the SC-88.
Same comparison, only for Descent 2: https://chris.pacejo.net/temp/descent/D2-Title.ogg (FatBoy/FluidSynth) vs. https://www.youtube.com/watch?v=o9_uUCBCuUs (SC-55 II) I think the difference here is stark. Though clearly FluidSynth is partly to blame, as the beginning notes aren't even in tune with each other in that rendering.