I would guess this is more related to the OS code optimization since you would expect the newer generation i7 to perform way better and the fact it's running on 9X would increase it's performance even further compared to the XP overhead.
No, I don't expect Win 9x to perform any better on modern devices. It's quite inefficient internally yet does not support all features of modern hardware. From my experience, Win 9x is really faster than newer system on very old hardware with limited resources, most notably RAM. When you grant more resources, Win XP becomes faster doing majority of tasks at some point, even booting up. I don't realize what you are talking about...
I'll agree 98 isn't efficient compared to XP but for using it say with DOSBOX and MUNT I think it can handle it just fine. Multitasking or doing multiple tasks on 98 like on XP would be where I would draw the line if you're running say 5 or more programs at once. But for gaming it seems to work quite well. As for boot time 98 will boot in 1 second to the MS-DOS 7.1. For the 98 to desktop it's probably like 5-10 seconds. XP SP3 on the other hands will run in the 1-2min range even on a clean install on the same SkyLake system. I know this because I've been doing these tests for the past few months almost nonstop. Also just to be clear I'm running 98 natively not in a VM. Same with XP natively and not in a VM. I know some people may be using VMs to run 98 and XP in Windows 7 or 10 which is not what I am doing and it would be an inaccurate representation of how it would perform run natively. It would be hard to separate how much the primary OS you are running the VM is affecting the performance of the VM and also VMs might not be using the best graphics cards or one optimized to run in 98 natively so you will see poorer performance than run natively in some cases.
Having done some tests of 98 on a P3 and P4 with 512MB and comparing it to the SkyLake there is a substantial boost in performance on just one core. 98 is limited to using only 1 CPU Core even if you don't force it in the BIOS. Also doing a test of Mame and comparing it to XP while bumping up the CPU MHz speeds the 98 performance outclassed the XP performance on the same MHz speed. In some cases 3.0 Ghz and higher was a bit too responsive and fast and around 1.5-2.0 GHz it seemed to be an optimal CPU speed when using 98. The only thing XP would be faster at is if the code was written to support multiple cores or the OS was able to do it even though it wasn't optimized.
So any significant performance boost for MUNT you'll have to optimize it to use more than one core or just let XP do it which is less efficient. But like you said your code is pretty optimized already but how was DOSBOX able to optimize their SB emulation to run even on 800 MHz in XP and 98? Maybe some ideas could be shared to optimize MUNT in the same fashion.
Some ideas for MUNT. If you added options to disable and ignore specific MIDI channels that way it would reduce the CPU usage. For example on the MT-32 with 16 Channels all enabled and if you were to disable 15 of the 16 channels would you see a substantial improvement and reduction of CPU usage assuming the channel that was enabled didn't receive the brunt of the MIDI activity?
Could other options like further reduced accuracy in the sound authenticity as a sort of balance for lower powered CPUs? For example if MUNT was at 95% accuracy at this moment for the 2.2 Build. By reducing the quality of the the emulation it would be 23% accurate or the quality of the signal was poorer but 95% emulation accurate?
For example if a recorded wave file could be outputted at 32-bit 192 kHz but it consumed near 100% CPU usage.
However if you were able to reduce the quality to 8-bit at 44.1kHZ or 22.05kHz quality but it consumed 20% CPU usage. Would something like this be possible in MUNT so the user could improve the MUNT performance at the cost of slightly worse emulation quality?
I can confirm that DOSBOX doing the SB emulation can run very well on SkyLake 1 core at 800 MHz in XP and in 98. MUNT98 required 3.0 GHz to effectively run smooth enough on the 1 core. On another test with an i5 Sandy Bridge underclocked to 1.6 GHz and forced to use 1 core on XP it seemed just barely enough to run DOSBOX with MUNT as certain points the CPU usage spiked to the 90% region but dipped down to around the 30-40% range for the most part. It really depends on the game and how intensely it uses the MT-32. Police Quest 3 seems to have a higher payload than Dune 2 during the intro sequence.
Also any update on if you can give MUNT its own MIDI volume adjuster level in the Volume control.
For example when I pull up my XP Master Volume control window.
Master Volume, Wave, SW Synth (This usually is hooked to the MS Roland GS Wavetable SW Synth), Line Volume, CD Volume, PC Beep.
Master Volume will control everything.
Wave unfortunately is where where MUNT is joined to along with DOSBOX Sound Emulation.
I would like to see if you could create an individual volume slider for the MT-32 Synth or MUNT Synth to the right of the "Wave" slider if you can and have the "Roland GS SW Synth" to the right of the "MUNT Synth".
I hope this made sense.