VOGONS


Reply 360 of 394, by Kappa971

User metadata
Rank Member
Rank
Member
Karmeck wrote on 2024-05-20, 14:34:
tested on real hardware sc-55 mk1, firmware 1.20. emulator with 1.21 and 1.20 firmware master build […]
Show full quote

tested on real hardware sc-55 mk1, firmware 1.20.
emulator with 1.21 and 1.20 firmware
master build

The same file gives error using the emulator and no error on real hardware.

This should be posted to github, I believe Kappa971 "owns" this issue, therefore I wont post it.

If you have the real hardware, maybe you could open the issue on GitHub, I don't know. Because I can't say for sure if it's a bug in the emulator.

Reply 361 of 394, by paxstatic

User metadata
Rank Newbie
Rank
Newbie
Falcosoft wrote on 2024-05-20, 14:53:
paxstatic wrote on 2024-05-20, 14:49:

I'm not getting a "MIDI Buff. Full!" error with AHGEEZ.MID when using the SC55 1.21 roms with the JC Moyer Windows XP build and FSMP.

However, the music doesn't play correctly unless I use 2 instances.

What kind of virtual cable are you using between FSMP and the emulator on your Win XP? Is it an earlier WinXP compatible LoopMidi or Midi-Yoke/Maple or something else?

I'm using an older Windows XP compatible version of LoopMIDI. It's version 1.0.5.15. You can find it on archive.org. Use the search term "loopmidi".

Reply 362 of 394, by Karmeck

User metadata
Rank Newbie
Rank
Newbie
Kappa971 wrote on 2024-05-20, 14:56:
Karmeck wrote on 2024-05-20, 14:34:
tested on real hardware sc-55 mk1, firmware 1.20. emulator with 1.21 and 1.20 firmware master build […]
Show full quote

tested on real hardware sc-55 mk1, firmware 1.20.
emulator with 1.21 and 1.20 firmware
master build

The same file gives error using the emulator and no error on real hardware.

This should be posted to github, I believe Kappa971 "owns" this issue, therefore I wont post it.

If you have the real hardware, maybe you could open the issue on GitHub, I don't know. Because I can't say for sure if it's a bug in the emulator.

https://github.com/nukeykt/Nuked-SC55/issues/76

issue crated. For some reason I had an older version of the control rom while testing. But all 3 tested now.

Feel free to add other details to the issue.

Reply 363 of 394, by Kappa971

User metadata
Rank Member
Rank
Member
Karmeck wrote on 2024-05-20, 15:51:

https://github.com/nukeykt/Nuked-SC55/issues/76

issue crated. For some reason I had an older version of the control rom while testing. But all 3 tested now.

Feel free to add other details to the issue.

I'm thinking, is the real hardware connected to a LoopMIDI port? If not, then the problem could also be LoopMIDI.

Reply 364 of 394, by Karmeck

User metadata
Rank Newbie
Rank
Newbie
Kappa971 wrote on 2024-05-20, 16:07:
Karmeck wrote on 2024-05-20, 15:51:

https://github.com/nukeykt/Nuked-SC55/issues/76

issue crated. For some reason I had an older version of the control rom while testing. But all 3 tested now.

Feel free to add other details to the issue.

I'm thinking, is the real hardware connected to a LoopMIDI port? If not, then the problem could also be LoopMIDI.

It is not. Using official ume-one mkII. Which is selected in midiplayer. I switch back to loopmidi when using emulator.

Reply 365 of 394, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
Kappa971 wrote on 2024-05-20, 16:07:
Karmeck wrote on 2024-05-20, 15:51:

https://github.com/nukeykt/Nuked-SC55/issues/76

issue crated. For some reason I had an older version of the control rom while testing. But all 3 tested now.

Feel free to add other details to the issue.

I'm thinking, is the real hardware connected to a LoopMIDI port? If not, then the problem could also be LoopMIDI.

No, the problem also happens with Midi-Yoke as a virtual cable on the same Win 10 PC and using the 32-bit version of the emulator (Midi-Yoke is a 32-bit only virtual Midi port so the official 64-bit master release cannot see it).

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 367 of 394, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
Kappa971 wrote on 2024-05-20, 16:34:

Even more clear 😀
https://github.com/nukeykt/Nuked-SC55/issues/ … ment-2120819824

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 369 of 394, by Spikey

User metadata
Rank Oldbie
Rank
Oldbie
Kappa971 wrote on 2024-05-20, 08:24:

One last question, how many DOS games saturate the polyphony of the original SC-55?

Several late Sierra games have issues with it, the most obvious are Gabriel Knight 1 and Quest for Glory 4, although it only applies to a few tracks from memory.

Reply 370 of 394, by Kappa971

User metadata
Rank Member
Rank
Member

I noticed another bizarre thing that doesn't concern Nuked-SC55 mk2 (also happens with SCVA).
The example still concerns the XPLASMA.MID (E2L8) track:
If you play the track on a MIDI player, you will see "01 075 Recorder" on the virtual display. If you play the track in game, you will see "01 096 Sweep Pad". What??
The same thing (with different instruments) happens in AHGEEZ.MID, 233C.MID and who knows how many other tracks.
I'm really puzzled... who does the right thing?

EDIT

nukeykt: 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.

mmh, It makes sense. The game does some magic under the hood.

Reply 371 of 394, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
Kappa971 wrote on 2024-05-20, 23:09:
I noticed another bizarre thing that doesn't concern Nuked-SC55 mk2 (also happens with SCVA). The example still concerns the XPL […]
Show full quote

I noticed another bizarre thing that doesn't concern Nuked-SC55 mk2 (also happens with SCVA).
The example still concerns the XPLASMA.MID (E2L8) track:
If you play the track on a MIDI player, you will see "01 075 Recorder" on the virtual display. If you play the track in game, you will see "01 096 Sweep Pad". What??
The same thing (with different instruments) happens in AHGEEZ.MID, 233C.MID and who knows how many other tracks.
I'm really puzzled... who does the right thing?

That's why I told you:

PS: As I said before do not compare Midi file players to game engines. Game engines are not generic Midi players. They can send special/modified Midi streams to output since they know the internal specifics of the game.

Every generic Midi player that does not know anything about 'special rules' of the game's sound engine would show you Program 74 Recorder because the program change 74 message is on a later track.
In XPLASMA.MID the 1st 5 channels are duplicated on tracks 1-10 this way:

track 1 - channel 1 for Midi (track name: Sweep Bass) - sends Program Change 95 (Sweep Pad)
track 2 - channel 1 for FM synth (track name: FMSweep Bass) - sends Program Change 74 (Recorder)
track 3 - channel 2 for Midi (track name: Glass Drone 1) - sends Program Change 92 (Bowed Syn Pad)
track 4 - channel 2 for FM synth (track name: FMGlass Drone 1) - sends Program Change 94 (Halo Syn Pad)
and so on...

Notice that the Midi file itself looks like a standard Midi (SMF) file and in SMF specification there is nothing about tracks meant to be played only on FM synths and separate tracks that are meant to be played only on Midi synths.
These kind of rules can only be known by the game engine itself.
Usually Midi rips from mirsoft.info know these rules and make a conversion for standard players. So it is not always true that raw extracted Midi files should sound the same on a Midi player as in the game.

BTW, in FSMP you can disable the tracks that has 'FM' in their track names with the help of the Event viewer/Debugger. This way the midi should sound closer to the in-game version:

track_disabled.png
Filename
track_disabled.png
File size
51.98 KiB
Views
723 views
File license
Public domain

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 372 of 394, by Kappa971

User metadata
Rank Member
Rank
Member
Falcosoft wrote on 2024-05-20, 23:48:
That's why I told you: […]
Show full quote

That's why I told you:

PS: As I said before do not compare Midi file players to game engines. Game engines are not generic Midi players. They can send special/modified Midi streams to output since they know the internal specifics of the game.

Every generic Midi player that does not know anything about 'special rules' of the game's sound engine would show you Program 74 Recorder because the program change 74 message is on a later track.
In XPLASMA.MID the 1st 5 channels are duplicated on tracks 1-10 this way:

track 1 - channel 1 for Midi (track name: Sweep Bass) - sends Program Change 95 (Sweep Pad)
track 2 - channel 1 for FM synth (track name: FMSweep Bass) - sends Program Change 74 (Recorder)
track 3 - channel 2 for Midi (track name: Glass Drone 1) - sends Program Change 92 (Bowed Syn Pad)
track 4 - channel 2 for FM synth (track name: FMGlass Drone 1) - sends Program Change 94 (Halo Syn Pad)
and so on...

Notice that the Midi file itself looks like a standard Midi (SMF) file and in SMF specification there is nothing about tracks meant to be played only on FM synths and separate tracks that are meant to be played only on Midi synths.
These kind of rules can only be known by the game engine itself.
Usually Midi rips from mirsoft.info know these rules and make a conversion for standard players. So it is not always true that raw extracted Midi files should sound the same on a Midi player as in the game.

What a mess... this explains the differences in instruments.

Anyway, the latest commit seems to have fixed the "MIDI Buff. Full!" error!

EDIT

Falcosoft wrote on 2024-05-20, 23:48:

BTW, in FSMP you can disable the tracks that has 'FM' in their track names with the help of the Event viewer/Debugger. This way the midi should sound closer to the in-game version:

Yes, I noticed it a little while ago, thanks.

Reply 373 of 394, by Rincewind42

User metadata
Rank Member
Rank
Member
AppleSauce wrote on 2024-05-20, 10:56:
Rincewind42 wrote on 2024-05-20, 07:20:

Lots of info here about CTF for those interested. I mined a significant chunk of it from Vogons when putting together that ticket:

https://github.com/dosbox-staging/dosbox-staging/issues/2390

MK1 v1.21 or go home 😎

Yeah pretty much

I guess part of the problem is people want perfection , originally the sound canvas was a mishmash of rom versions and models each with their own flaws.

Yeah, so reality check, nobody viewed game music as some "high art" back then. Composers probably threw together some compositions quickly to get the paycheck and moved on. Some of them probably composed on some other MIDI gear and quite possibly never even heard how the piece sounded on the SC-55, neither held games in too much regard.

I also like go into full obsessive mode sometimes about these tiny details (like in my article), but in reality I doubt anybody really cared back then, including the composer and the dev team themselves. "There's sound, ok, ship it". Next project!

So yeah, I think recreating the SC-55 authentically is important because quite a few composers did indeed compose on the actual module, and the lack of capital tone fallback can be annoying, no doubt, but other than that, you get into diminishing returns territory quickly with obsessing over ROM versions and all that.

If you care about games that use CTF — mk1, any version... if you don't — mk2, any version. And that's about it. (IMO, etc, of course 😀)

Reminds me of people obsessing over and trying to recreate "the sound" of the first Black Sabbath album. When they asked Ozzy, he just said something along these lines: "Dunno man, were were stoned, drunk, etc., plus we had to catch the ferry in two hours, so we just used whatever equipment we found in the studio, haven't even changed the amp settings much, and that was it." 😀

My estimate is similar level of care went into classic DOS game soundtracks.

DOS: Soyo SY-5TF, MMX 200, 128MB, S3 Virge DX, ESS 1868F, AWE32, QWave, S2, McFly, SC-55, MU80, MP32L
Win98: Gigabyte K8VM800M, Athlon64 3200+, 512MB, Matrox G400, SB Live
WinXP: Gigabyte P31-DS3L, C2D 2.33 GHz, 2GB, GT 430, Audigy 4

Reply 374 of 394, by Kappa971

User metadata
Rank Member
Rank
Member

I removed duplicate tracks, prefixed with "GUS" and "FM". If I didn't make any mistakes, all tracks should now sound like they did during the game (with Sound Canvas).

Attachments

  • Filename
    Duke3dMIDI.zip
    File size
    228.28 KiB
    Downloads
    19 downloads
    File license
    Public domain

Reply 375 of 394, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
Kappa971 wrote on 2024-05-22, 00:02:

I removed duplicate tracks, prefixed with "GUS" and "FM". If I didn't make any mistakes, all tracks should now sound like they did during the game (with Sound Canvas).

Then some tracks must be still duplicates. E.g. in ALFREDH.MID (Level 2 Episode 9 - Overlord) there are separate tracks for GM and Sound Canvas devices (e.g. GS Crystal vs. Crystal track names).
Here is a 32-bit test version of Midi Player that automatically detects EMIDI tracks and disables tracks not for Sound Canvas devices.
You can disable automatic detection and track disabling by de-selecting Main menu -> Compatibility Settings -> Detect EMIDI tracks (Duke 3D, S.W.) option.

I'm thinking about adding options to select different instrument sets in case of detected EMIDI files (GM, Sound Canvas, GUS, FM Synths). But I'm not sure if this would be useful or not...

@Edit:
Finally I have added the options to select different instrument sets in case of EMIDI files. MidiPlayer_64_x86_test.zip is updated.
You can select different track disabling modes by using Main menu -> Compatibility Settings -> EMIDI tracks (Duke 3D, S.W.) options:
Use All Tracks
Use Tracks for General Midi
Use Tracks for Sound Canvas
Use Tracks for AWE32
Use Tracks for FM Synths
Use Tracks for GUS

Filename
MidiPlayer_64_x86_test.zip
File size
429.99 KiB
Downloads
16 downloads
File license
CC-BY-4.0

Ps: The attached zip only contains the 32-bit main executable. So you should first download the latest full package and then overwrite the exe file:
http://falcosoft.hu/midiplayer_63.zip

Last edited by Falcosoft on 2024-05-22, 08:27. Edited 2 times in total.

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 377 of 394, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
Karmeck wrote on 2024-05-22, 08:08:

That's why it won't happen in game?
Because you have, by running the setup, "selected" what track to use.

Yes, exactly.

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper

Reply 378 of 394, by Kappa971

User metadata
Rank Member
Rank
Member
Falcosoft wrote on 2024-05-22, 06:55:

Then some tracks must be still duplicates. E.g. in ALFREDH.MID (Level 2 Episode 9 - Overlord) there are separate tracks for GM and Sound Canvas devices (e.g. GS Crystal vs. Crystal track names).

Yes, I removed the non-GS tracks.

Falcosoft wrote on 2024-05-22, 06:55:
Here is a 32-bit test version of Midi Player that automatically detects EMIDI tracks and disables tracks not for Sound Canvas de […]
Show full quote

Here is a 32-bit test version of Midi Player that automatically detects EMIDI tracks and disables tracks not for Sound Canvas devices.
You can disable automatic detection and track disabling by de-selecting Main menu -> Compatibility Settings -> Detect EMIDI tracks (Duke 3D, S.W.) option.

I'm thinking about adding options to select different instrument sets in case of detected EMIDI files (GM, Sound Canvas, GUS, FM Synths). But I'm not sure if this would be useful or not...

@Edit:
Finally I have added the options to select different instrument sets in case of EMIDI files. MidiPlayer_64_x86_test.zip is updated.
You can select different track disabling modes by using Main menu -> Compatibility Settings -> EMIDI tracks (Duke 3D, S.W.) options:
Use All Tracks
Use Tracks for General Midi
Use Tracks for Sound Canvas
Use Tracks for AWE32
Use Tracks for FM Synths
Use Tracks for GUS
MidiPlayer_64_x86_test.zip

Ps: The attached zip only contains the 32-bit main executable. So you should first download the latest full package and then overwrite the exe file:
http://falcosoft.hu/midiplayer_63.zip

This is a better solution, thanks. I'm trying it and it seems to work.

I'm noticing a discrepancy between the instrument number displayed by Falcosoft MIDI Player and Nuked-SC55.
Example:
FSMP: 95 Sweep Pads
SC-55: 96 Sweep Pads

FSMP: 92 Bowed Glass
SC-55: 93 Bowed Glass

etc... Is it normal?

EDIT
This version of FSMP disables the tracks but still assigns the instrument to the synthesizer.
The example is in WHOMP.MID where the "GUS Mid - Vox" track is assigned exclusively to channel 3, FSMP still assigns "55 SynVox" to channel 3 of the synthesizer even if disabled (and it is not played).

Reply 379 of 394, by Falcosoft

User metadata
Rank Oldbie
Rank
Oldbie
Kappa971 wrote on 2024-05-22, 10:29:
Yes, I removed the non-GS tracks. […]
Show full quote
Falcosoft wrote on 2024-05-22, 06:55:

Then some tracks must be still duplicates. E.g. in ALFREDH.MID (Level 2 Episode 9 - Overlord) there are separate tracks for GM and Sound Canvas devices (e.g. GS Crystal vs. Crystal track names).

Yes, I removed the non-GS tracks.

Falcosoft wrote on 2024-05-22, 06:55:
Here is a 32-bit test version of Midi Player that automatically detects EMIDI tracks and disables tracks not for Sound Canvas de […]
Show full quote

Here is a 32-bit test version of Midi Player that automatically detects EMIDI tracks and disables tracks not for Sound Canvas devices.
You can disable automatic detection and track disabling by de-selecting Main menu -> Compatibility Settings -> Detect EMIDI tracks (Duke 3D, S.W.) option.

I'm thinking about adding options to select different instrument sets in case of detected EMIDI files (GM, Sound Canvas, GUS, FM Synths). But I'm not sure if this would be useful or not...

@Edit:
Finally I have added the options to select different instrument sets in case of EMIDI files. MidiPlayer_64_x86_test.zip is updated.
You can select different track disabling modes by using Main menu -> Compatibility Settings -> EMIDI tracks (Duke 3D, S.W.) options:
Use All Tracks
Use Tracks for General Midi
Use Tracks for Sound Canvas
Use Tracks for AWE32
Use Tracks for FM Synths
Use Tracks for GUS
MidiPlayer_64_x86_test.zip

Ps: The attached zip only contains the 32-bit main executable. So you should first download the latest full package and then overwrite the exe file:
http://falcosoft.hu/midiplayer_63.zip

This is a better solution, thanks. I'm trying it and it seems to work.
I'm noticing a discrepancy between the instrument number displayed by Falcosoft MIDI Player and Nuked-SC55.
Example:
FMP: 95 Sweep Pads
SC-55: 96 Sweep Pads

FMP: 92 Bowed Glass
SC-55: 93 Bowed Glass
etc...

Is it normal?

EDIT
This version of FSMP disables the tracks but still assigns the instrument to the synthesizer (even if it will not be played because it is disabled).
The example is in WHOMP.MID where the "GUS Mid - Vox" track is assigned exclusively to channel 3, FSMP still assigns "55 SynVox" to channel 3 of the synthesizer even if disabled (and it is not played).

1. Yes, it is normal. FSMP by default uses the real 0-based Program Change numbering the same way as the Midi protocol while Sound Canvas uses 1-based numbering (that is real Program Change value + 1) . Although you can change it in FSMP's Main menu -> Compatibility setings -> Program Numbering.
2. Yes, it is because of a logic for Instrument preloading at the loading phase that is useful mainly for soundfont synths. But as you said it does not cause any side effects. If you press stop and then play again then you will get the empty/deafult instrument that you expect.

Website, Facebook, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper