| unterwulf Saint-Petersburg, Russia, 15.11.2024, 11:27 |
SBMIX questions (Developers) |
Hi, Recently I was looking for a DOS utility for changing Sound Blaster (more precisely ViBRA16C-based ASUS I-A16C card) mixer parameters and SBMIX by BTTR software was one of the top results in Google, so I tried it. It worked, but had no means to change PC Speaker volume which was crucial for me as I planned to use the card with internal speaker as a primary output device (PC Speaker output from motherboard is connected to the card and the card output is connected to the internal speaker of PC case, so no need in external speakers). Hopefully, SBMIX comes with the source code, so I was thinking maybe I could modify it to support PC Speaker channel as well. I was able to find Sound Blaster Hardware Programming Guide [1] and it turned out that registers that SBMIX fiddles with are of CT1745 mixer chip which, as the document claims, is only used in Sound Blaster 16 cards. As per [1] Sound Blaster Pro sports CT1345 mixer chip which registers differ from what SBMIX is changing, yet SBMIX claims to target Sound Blaster Pro and compatibles. I have no Sound Blaster Pro in my possession to check this myself, but according to [1] SBMIX shouldn't work for Sound Blaster Pro. So I wonder if it's just a vague usage of Sound Blaster Pro term in SBMIX documentation or [1] is not a dependable source of information. Since SBMIX is such a nice tiny program, I thought it would be fun to reimplement it in pure assembly to see how smaller it would be comparing to a Pascal implementation. It turned out to be about 2K bytes (so 4x times smaller than the unpacked version and 2x times smaller than the packed one). I'm planning to publish it somewhere on the internet and want to ask your opinion on how to do it properly. 1. Should I change the name of the utility? From one hand, the command-line interface is completely the same, so it can be used as a drop-in replacement. From the other hand, it can cause confusion. Although, AFAIK it was a common practice in DOS times to reuse the same name (probably due to lack of information). 2. Should I mention BTTR Software in the command help screen? (Like 'Copyright (c) 1997-2020 BTTR Software'). The only source code reused is ASM routines for changing SB registers which are itself seem to be taken from some SB programming guide, but the look and command-line interface are blatantly stolen from you. 3. Should I stick to 'MODIFIED' BSD LICENSE? I'd rather change it to the MIT license, but won't if you object. Before I reimplemented it in assembly, I made a patch for the Pascal version which adds PC Speaker volume changing feature. If you are interested, I'd be more than happy to share it with you. Thank you for your software and this forum (I'm a long-time reader). [1] https://pdos.csail.mit.edu/6.828/2018/readings/hardware/SoundBlaster.pdf |
|
| Zyzzle 15.11.2024, 11:58 @ unterwulf |
SBMIX questions |
> Before I reimplemented it in assembly, I made a patch for the Pascal > version which adds PC Speaker volume changing feature. If you are > interested, I'd be more than happy to share it with you. I'm very interested in both your optimized-ASM version and your Pascal patch. I've been looking for just this utility which allows adjustment of the PC-speaker volume on SB. I missed its absence in SBMIXER for years. Not sure if a PM is required or if you may openly share where you've uploaded your optimized version. |
|
| unterwulf Saint-Petersburg, Russia, 15.11.2024, 13:28 @ Zyzzle |
SBMIX questions |
> I'm very interested in both your optimized-ASM version and your Pascal
> patch.
I feel it's better to wait for an answer from the authors before publishing the derived work.
But I don't see how publishing the patch hurts anyone, so here it is:
|
|
| ecm Düsseldorf, Germany, 15.11.2024, 15:59 @ unterwulf |
SBMIX questions |
> 2. Should I mention BTTR Software in the command help screen? (Like > 'Copyright (c) 1997-2020 BTTR Software'). The only source code reused is > ASM routines for changing SB registers which are itself seem to be taken > from some SB programming guide, but the look and command-line interface are > blatantly stolen from you. You certainly can't go wrong with including attribution like that. > 3. Should I stick to 'MODIFIED' BSD LICENSE? I'd rather change it to the > MIT license, but won't if you object. I messaged Robert about this. Hopefully he's fine with this. (I didn't contribute anything to SBMIX so it's not for me to decide.) --- |
|
| rr Berlin, Germany, 13.01.2025, 21:31 @ unterwulf |
SBMIX questions |
> As per [1] Sound Blaster Pro sports CT1345 mixer chip which
> registers differ from what SBMIX is changing, yet SBMIX claims to target
> Sound Blaster Pro and compatibles.
>
> I have no Sound Blaster Pro in my possession to check this myself, but
> according to [1] SBMIX shouldn't work for Sound Blaster Pro. So I wonder if
> it's just a vague usage of Sound Blaster Pro term in SBMIX documentation or
> [1] is not a dependable source of information.
I have no idea. I'm no regular SBMIX user and don't own an original SB Pro, although it was my first sound card in the nineties. (Mine had the Panasonic CD-ROM interface, IIRC.)
SBMIX was written by Michal. I did some testing and bugfixing only.
> Since SBMIX is such a nice tiny program, I thought it would be fun to
> reimplement it in pure assembly to see how smaller it would be comparing to
> a Pascal implementation. It turned out to be about 2K bytes (so 4x times
> smaller than the unpacked version and 2x times smaller than the packed
Very nice.
IIRC, we (Michal and me) didn't want to go the "fully in asm" route, because HLL constructs and an existing RTL make a life a little easier and we both love(d) Pascal.
> one). I'm planning to publish it somewhere on the internet and want to ask
> your opinion on how to do it properly.
How about https://codeberg.org/?
> 1. Should I change the name of the utility? From one hand, the command-line
> interface is completely the same, so it can be used as a drop-in
> replacement. From the other hand, it can cause confusion. Although, AFAIK
> it was a common practice in DOS times to reuse the same name (probably due
> to lack of information).
Um, I tend to say Yes to a different name.
Maybe "SBMIXA" or "SBMIX/A"? I'm very creative at names, I know. --- |
Thread view
Mix view
), I guess, he would be fine with the MIT license.