VOGONS


VSBHDASF: Fork of VSBHDA with Soundfont support

Topic actions

Reply 100 of 120, by Cacodemon345

User metadata
Rank Newbie
Rank
Newbie

Another thing to note here is that at this moment the MPU emulation code is entirely homegrown, so bugs can exist.

The IRQ emulation code is also kind of hardcoded to only push out sound related interrupts so it's unfortunately looking difficult to meaningfully add MT-32 emulation given the need to also implement Intelligent Mode.

Reply 101 of 120, by digger

User metadata
Rank Oldbie
Rank
Oldbie
Cacodemon345 wrote on 2025-02-05, 14:09:

Another thing to note here is that at this moment the MPU emulation code is entirely homegrown, so bugs can exist.

The IRQ emulation code is also kind of hardcoded to only push out sound related interrupts so it's unfortunately looking difficult to meaningfully add MT-32 emulation given the need to also implement Intelligent Mode.

Not necessarily! Quite a few pre-GM era games that sound best on an MT-32 work in UART mode. Probably even the vast majority of them.

From what I've read in other threads, the list of games that really require Intelligent Mode for MPU-401 MIDI support is actually surprisingly short.

There's definitely a whole range of games that would benefit from MT-32 emulation without Intelligent Mode support.

In the longer term, you could look into adopting more code from the SoftMPU project, since that project had already worked out all the Intelligent Mode stuff years ago.

On the other hand, I also recall a SoftMPU developer somewhere here on Vogons suggesting us not to bother with Intelligent Mode support in newer emulators such as SBEMU and VSBHDA(SF), since those very few games that truly need it are so old, that they easily run at full speed in DOSBox on modern machines anyway. Especially since it's apparently very tricky to emulate in terms of timing and such.

Reply 102 of 120, by Cacodemon345

User metadata
Rank Newbie
Rank
Newbie

I attempted to add MT-32 emulation via Munt.

Safe to say, I couldn't get it to work properly. First thing is that it is C++-based, and is impossible to compile without RTTI due to reliance on dynamic_cast. It also has no provisions for custom allocators unlike TinySoundFont, which makes it very hard to support.

Which may lead to the question "how did I get TSF working then?". It was not easy (but not too hard either) to make it work; it used to rely on C standard library functions originally, which would fail hard after the TSR relocation given its usage nature, and it had to be made to pre-allocate the channels manually since it didn't even do that properly. Making it rely on DPMI allocation and revising FPU save/restore functions to not make the compiler wreck up the final executable was very much needed, since it'd otherwise crash programs left-and-right (and even freeze the system!) for mysterious reasons. Munt being C++ is not very usable for TSR programs, and is relying on new/delete memory allocation pairs for itself. The very-small 4KiB stack for protected-mode interrupts also very much does not help at all.

I apologize to everyone that wanted MT-32 emulation on VSBHDASF. Any PRs that can add MT-32 emulation without wrecking up programs (or the system) is very much appreciated, but I have to pass on Munt for now.

Reply 104 of 120, by Cacodemon345

User metadata
Rank Newbie
Rank
Newbie

I don't have any machines with the codec in question so I can't fix it myself. It's also better that this gets fixed upstream.

Reply 105 of 120, by sergio_prado

User metadata
Rank Newbie
Rank
Newbie

Hello,
I tested this with my Libretto U100 (AC97), and when I run the program it completely crashes the system. Not even Ctrl+Alt+Del works.
By the way, I tested it with several versions, and this problem occurs in all of them. With the Baron-von-Riedesel fork it works perfectly.
Has this problem occurred with anyone else? Any tips?

Reply 106 of 120, by DarthSun

User metadata
Rank Member
Rank
Member
sergio_prado wrote on 2025-03-21, 22:47:
Hello, I tested this with my Libretto U100 (AC97), and when I run the program it completely crashes the system. Not even Ctrl+A […]
Show full quote

Hello,
I tested this with my Libretto U100 (AC97), and when I run the program it completely crashes the system. Not even Ctrl+Alt+Del works.
By the way, I tested it with several versions, and this problem occurs in all of them. With the Baron-von-Riedesel fork it works perfectly.
Has this problem occurred with anyone else? Any tips?

Well, laptops like these are blatantly incompatible with almost anything, these special drivers are only worth using with regular desktop computers.

The 3 body problems cannot be solved, neither for future quantum computers, even for the remainder of the universe. The Proton 2D is circling a planet and stepping back to the quantum size in 11 dimensions.

Reply 107 of 120, by sergio_prado

User metadata
Rank Newbie
Rank
Newbie
DarthSun wrote on 2025-03-21, 23:03:
sergio_prado wrote on 2025-03-21, 22:47:
Hello, I tested this with my Libretto U100 (AC97), and when I run the program it completely crashes the system. Not even Ctrl+A […]
Show full quote

Hello,
I tested this with my Libretto U100 (AC97), and when I run the program it completely crashes the system. Not even Ctrl+Alt+Del works.
By the way, I tested it with several versions, and this problem occurs in all of them. With the Baron-von-Riedesel fork it works perfectly.
Has this problem occurred with anyone else? Any tips?

Well, laptops like these are blatantly incompatible with almost anything, these special drivers are only worth using with regular desktop computers.

My laptop works fine with all SBEMU forks, including Baron-von-Riedesel's VSBHDA. Only with this one does the mentioned problem occur.

Reply 108 of 120, by DarthSun

User metadata
Rank Member
Rank
Member
sergio_prado wrote on 2025-03-22, 12:53:
DarthSun wrote on 2025-03-21, 23:03:
sergio_prado wrote on 2025-03-21, 22:47:
Hello, I tested this with my Libretto U100 (AC97), and when I run the program it completely crashes the system. Not even Ctrl+A […]
Show full quote

Hello,
I tested this with my Libretto U100 (AC97), and when I run the program it completely crashes the system. Not even Ctrl+Alt+Del works.
By the way, I tested it with several versions, and this problem occurs in all of them. With the Baron-von-Riedesel fork it works perfectly.
Has this problem occurred with anyone else? Any tips?

Well, laptops like these are blatantly incompatible with almost anything, these special drivers are only worth using with regular desktop computers.

My laptop works fine with all SBEMU forks, including Baron-von-Riedesel's VSBHDA. Only with this one does the mentioned problem occur.

I see, I didn't exactly follow the problem then.

The 3 body problems cannot be solved, neither for future quantum computers, even for the remainder of the universe. The Proton 2D is circling a planet and stepping back to the quantum size in 11 dimensions.

Reply 109 of 120, by Falcosoft

User metadata
Rank l33t
Rank
l33t
sergio_prado wrote on 2025-03-22, 12:53:
DarthSun wrote on 2025-03-21, 23:03:
sergio_prado wrote on 2025-03-21, 22:47:
Hello, I tested this with my Libretto U100 (AC97), and when I run the program it completely crashes the system. Not even Ctrl+A […]
Show full quote

Hello,
I tested this with my Libretto U100 (AC97), and when I run the program it completely crashes the system. Not even Ctrl+Alt+Del works.
By the way, I tested it with several versions, and this problem occurs in all of them. With the Baron-von-Riedesel fork it works perfectly.
Has this problem occurred with anyone else? Any tips?

Well, laptops like these are blatantly incompatible with almost anything, these special drivers are only worth using with regular desktop computers.

My laptop works fine with all SBEMU forks, including Baron-von-Riedesel's VSBHDA. Only with this one does the mentioned problem occur.

Have you tried both the P4/SSE2 optimized and the normal/x87 version of the driver (VSBHDAP4 vs. VSBHDA)?

Website, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper
x86 microarchitecture benchmark (MandelX)

Reply 110 of 120, by Cacodemon345

User metadata
Rank Newbie
Rank
Newbie

Reminder that all VSBHDASF releases are compiled with DJGPP, and it has the potential to mis-compile the program due to it heavily using assembly code to perform its functions, so while it may work for many people, I can't guarantee that it will work on each and every system upstream VSBHDA and SBEMU will work on.

This does not mean that majority of the systems will not run VSBHDASF; a lot of them will do (even the more finicky Skylake/Kabylake desktops and laptops), more than what one will think.

Reply 111 of 120, by vico

User metadata
Rank Member
Rank
Member
Cacodemon345 wrote on 2025-02-12, 21:02:

I don't have any machines with the codec in question so I can't fix it myself. It's also better that this gets fixed upstream.

The issue has been fixed in the new VSBHDA version 1.6

Reply 113 of 120, by DarthSun

User metadata
Rank Member
Rank
Member
Cacodemon345 wrote on 2025-06-11, 16:17:

https://github.com/Cacodemon345/VSBHDASF/releases/tag/v1.6.2

This release merges all VSBHDA v1.6 changes.

The previous ones work great for me, but I downloaded this one too. Excellent programming performance!!!

The 3 body problems cannot be solved, neither for future quantum computers, even for the remainder of the universe. The Proton 2D is circling a planet and stepping back to the quantum size in 11 dimensions.

Reply 115 of 120, by vico

User metadata
Rank Member
Rank
Member

I think this latest version of VSBHDASF is broken, at least on an HDA sound card.
I've tried games like Charlie the Duck, Super Angelo, and Sint Nicolaas, but I can't get them to run with MPU-401 sound.

Reply 116 of 120, by Cacodemon345

User metadata
Rank Newbie
Rank
Newbie
vico wrote on 2025-06-12, 17:49:

I think this latest version of VSBHDASF is broken, at least on an HDA sound card.
I've tried games like Charlie the Duck, Super Angelo, and Sint Nicolaas, but I can't get them to run with MPU-401 sound.

I remember it working just fine on VirtualBox with its HD Audio emulation with Doom.

Reply 117 of 120, by vico

User metadata
Rank Member
Rank
Member
Cacodemon345 wrote on 2025-06-12, 17:52:

I remember it working just fine on VirtualBox with its HD Audio emulation with Doom.

I tested it on my real PC, it would be nice if someone else could test this latest version to give more feedback.

Reply 118 of 120, by wierd_w

User metadata
Rank Oldbie
Rank
Oldbie

I tested an older version on a very old intel NUC awhile back, and the driver works fine.
I was able to get general midi / MPU401 emulation working with a generic GM soundfont (pilfered from my linux system) to work with several games.

Trying to get a suitable slowdown for an older i5 however, has proven to NOT be fine, which is a problem, because many of the games I want to play have speed related crash issues.

Reply 119 of 120, by Falcosoft

User metadata
Rank l33t
Rank
l33t
vico wrote on 2025-06-12, 17:49:

I think this latest version of VSBHDASF is broken, at least on an HDA sound card.
I've tried games like Charlie the Duck, Super Angelo, and Sint Nicolaas, but I can't get them to run with MPU-401 sound.

I have just tested the new release with my Intel HDA/Realtek codec (Lenovo T430) and it works well the same way as the previous version. MIDI is tested with MegaMid, DosMid and Duke Nukem 3D.
Digital audio is tested with Duke Nukem 3D, AXS, Implulse tracker.

Website, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper
x86 microarchitecture benchmark (MandelX)