VOGONS


SBVGM (DOS) VGM Player

Topic actions

Reply 460 of 530, by ElBrunzy

User metadata
Rank Oldbie
Rank
Oldbie

I was not very precise, I meant .VGM (or .vgz) file music. For instance, in my case, with an SAA1099 (the CM/S counterpart of the SB 1.x) you can play Sega Master System's PSG music which are my favorite since it's the console I had as a kid.

About the YM2151 and YM2608, do you know the SAAYM ?

Reply 461 of 530, by RetroGC

User metadata
Rank Member
Rank
Member

I read about this, but as it's missing OKIM6258 I'm not shure if it could be really usefull for X68K music recording

My Videogames Music Channel:
https://www.youtube.com/c/RetroGamesClub

Reply 462 of 530, by SuperDeadite

User metadata
Rank Member
Rank
Member
RetroGC wrote on 2023-05-22, 07:32:

I read about this, but as it's missing OKIM6258 I'm not shure if it could be really usefull for X68K music recording

Majority of X68000 games use the Oki, but there many great ones that are FM only. YM2151 has a lot of nice arcade stuff too.

Regarding the YM2608, I don't know of any music on that chip that doesn't use the ADPCM.

Modules: CM-64, CM-500, SC-55MkII, SC-88 Pro, SY22, TG100, MU2000EX, PLG100-SG, PLG150-DR, PLG150-AN, SG01k, NS5R, GZ-50M, SN-U110-07, SN-U110-10, Pocket Studio 5, DreamBlaster S2, X2, McFly, E-Wave, QWave, CrystalBlaster C2, Yucatan FX, BeepBlaster

Reply 463 of 530, by iyatemu

User metadata
Rank Newbie
Rank
Newbie

I must say, I'm loving what SBVGM can do while really lamenting what it can't do. No CPU PCM support (or DMA/ADPCM support for SB16 or OPNA) seems bizarre when the MSX equivalent can manage.

Another thing I've noticed (which is actually fixable) is that it doesn't seem to reinitialize the OPL3 when starting a new song. Playing a song that uses 4-op followed by a song that uses 2-op ruins it in the worst case, or results in missing channels in the best case, as the channels are still linked for 4-operator output.

Reply 464 of 530, by OPLx

User metadata
Rank Member
Rank
Member
iyatemu wrote on 2023-08-14, 02:50:

I must say, I'm loving what SBVGM can do while really lamenting what it can't do. No CPU PCM support (or DMA/ADPCM support for SB16 or OPNA) seems bizarre when the MSX equivalent can manage.

Thank you for the feedback! The lack of CPU PCM support is partially due to the original experimental nature of the project (NES VGMs on SAA1099) and also that much of SBVGM's code is not written in assembly language to help reduce the amount of overhead when processing a VGM. Putting the things together by Scali has a nice write-up about some of the issues that come up on PC (at least on the slower machines). I lament the lack of CPU PCM support as well and would have definitely done things differently if that was one of the original goals back when it was initially written. I have been thinking about possible CPU PCM support for the 32-bit version though and other approaches to possibly improve the playback speed.

iyatemu wrote on 2023-08-14, 02:50:

Another thing I've noticed (which is actually fixable) is that it doesn't seem to reinitialize the OPL3 when starting a new song. Playing a song that uses 4-op followed by a song that uses 2-op ruins it in the worst case, or results in missing channels in the best case, as the channels are still linked for 4-operator output.

Do you mind pointing me to the VGM that causes this to happen and which version of SBVGM? It will come in handy in fixing the problem.

Reply 465 of 530, by iyatemu

User metadata
Rank Newbie
Rank
Newbie
OPLx wrote on 2023-08-14, 13:38:

have been thinking about possible CPU PCM support for the 32-bit version though and other approaches to possibly improve the playback speed.

I'll be happy as long as a 486DLC-40 can do it. 😀

OPLx wrote on 2023-08-14, 13:38:
iyatemu wrote on 2023-08-14, 02:50:

Another thing I've noticed (which is actually fixable) is that it doesn't seem to reinitialize the OPL3 when starting a new song. Playing a song that uses 4-op followed by a song that uses 2-op ruins it in the worst case, or results in missing channels in the best case, as the channels are still linked for 4-operator output.

Do you mind pointing me to the VGM that causes this to happen and which version of SBVGM? It will come in handy in fixing the problem.

https://vgmrips.net/packs/pack/miwaku-no-chousho-nec-pc-9801
followed by:
https://vgmrips.net/packs/pack/rusty-ibm-pc

Playing "Painful Sigh" and then "Rising Sun" results in the channels remaining in their 4-op configuration retained from "Painful", this makes the bass very obviously loud and scratchy. Exiting the song and playing another track "Rusty" (the title track) still exhibits the same issue, however it's a little less pronounced, though there are obviously channels missing (since they're no longer connected to the output as carriers).
-This is in the latest version, 1.42.
-The OPL3 is on a CT1750 ASP set to the stock 220h, I5, D1/H5.
-I'm playing the VGMs from a file manager and set it to auto-activate the -x and -n0 playback flags. Not sure if this is an issue on my end and I need to set something myself to fix this.
-It could always be an issue of the VGM not logging an INIT/RST command and not actually SBVGM at all (but if SBVGM doesn't account for that, it should IMO).

Reply 466 of 530, by MrKsoft

User metadata
Rank Member
Rank
Member

I can confirm the issue as well switching between 4-op and 2-op mode with some of my own files as well. (But I forgot to report it earlier, my apologies!)
Try my cover of "Door into Summer" (OPL3 with 4-op enabled) followed by my cover of "Empty Beach" (which is OPL2 only) and things will sound rather strange.
(Tested on an ESS 1868F based card, so not a Sound Blaster specific issue. It also doesn't happen on the old version of the official VGMPlay with hardware passthrough)

Wafflenet OPL Archive - Preserving MS-DOS music in a unified format!

Reply 467 of 530, by OPLx

User metadata
Rank Member
Rank
Member
iyatemu wrote on 2023-08-14, 21:20:

I'll be happy as long as a 486DLC-40 can do it. 😀

I'll see what I can do; I'll need a decent block of time to try out different things though! 😄

iyatemu wrote on 2023-08-14, 21:20:
https://vgmrips.net/packs/pack/miwaku-no-chousho-nec-pc-9801 followed by: https://vgmrips.net/packs/pack/rusty-ibm-pc […]
Show full quote

https://vgmrips.net/packs/pack/miwaku-no-chousho-nec-pc-9801
followed by:
https://vgmrips.net/packs/pack/rusty-ibm-pc

Playing "Painful Sigh" and then "Rising Sun" results in the channels remaining in their 4-op configuration retained from "Painful", this makes the bass very obviously loud and scratchy. Exiting the song and playing another track "Rusty" (the title track) still exhibits the same issue, however it's a little less pronounced, though there are obviously channels missing (since they're no longer connected to the output as carriers).
-This is in the latest version, 1.42.
-The OPL3 is on a CT1750 ASP set to the stock 220h, I5, D1/H5.
-I'm playing the VGMs from a file manager and set it to auto-activate the -x and -n0 playback flags. Not sure if this is an issue on my end and I need to set something myself to fix this.
-It could always be an issue of the VGM not logging an INIT/RST command and not actually SBVGM at all (but if SBVGM doesn't account for that, it should IMO).

Thank you for the detailed information. There are so many different VGMs to test out against; some things just manage to slip through. I'll take a look at this as soon as I can.

Reply 468 of 530, by OPLx

User metadata
Rank Member
Rank
Member
MrKsoft wrote on 2023-08-15, 00:59:

I can confirm the issue as well switching between 4-op and 2-op mode with some of my own files as well. (But I forgot to report it earlier, my apologies!)

No worries at all! With my testing, I generally only play through a particular audio chip's VGMs ... it never occurred to me to try other combinations.

MrKsoft wrote on 2023-08-15, 00:59:

Try my cover of "Door into Summer" (OPL3 with 4-op enabled) followed by my cover of "Empty Beach" (which is OPL2 only) and things will sound rather strange.
(Tested on an ESS 1868F based card, so not a Sound Blaster specific issue. It also doesn't happen on the old version of the official VGMPlay with hardware passthrough)

I'll include yours and iyatemu's mentioned VGMs in a "mixed" VGM test list. I reckon the fix ought to be simple and I will include it with the next version.

Reply 469 of 530, by Scali

User metadata
Rank l33t
Rank
l33t

OPL2 and OPL3 VGM captures are quite annoying.
Some contain a full blob of register settings at the start, so the chip is properly reconfigured before the song plays.
With others, this is missing, so they assume the OPL chip to already be in the correct configuration at the start.

My player tries to reset an OPL2 or OPL3 to factory settings before playing any VGM, by just writing 0 to all registers (and on OPL3 you need to get the order right, because the second set of registers controls how the writes are interpreted).
It does the same again when you exit.
But I included a special mode to emulate dual OPL2 on OPL3 chips, by setting up the OPL3 as 20 2-op channels, panned hard-left and hard-right.

I suppose the most robust way would be to be able to force a few standard configurations for OPL2/OPL3 before playback, such as the dual-OPL2 setup above.
Or perhaps a simple bruteforce way: create some simple VGM files that only contain initialization commands, and then play a 'config' VGM just before the actual VGM, to get the configuration right.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 471 of 530, by OPLx

User metadata
Rank Member
Rank
Member

So it turns out the issue was how the OPL3 was set once the program ended. During shutdown, I made the assumption that disabling the OPL3 "new" mode (address $105) would also automatically cause it to revert back to the OPL2 compatible state. Apparently (to my surprise) it looks like disabling the "new" mode only prevents writing values to what would be considered "OPL3 only", but the operator connection settings (address $104) are still preserved though now in OPL2 mode 😲

Either way, it has been fixed and I learned a new and fascinating quirk about the OPL3. The fix will be in the next version of SBVGM.

Reply 472 of 530, by Scali

User metadata
Rank l33t
Rank
l33t

"(and on OPL3 you need to get the order right, because the second set of registers controls how the writes are interpreted)"
Prophetic words...

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 473 of 530, by OPLx

User metadata
Rank Member
Rank
Member
Scali wrote on 2023-08-16, 12:15:

"(and on OPL3 you need to get the order right, because the second set of registers controls how the writes are interpreted)"
Prophetic words...

From the Yamaha YMF262 Application Manual:
"If NEW='1', OPL3 operation is selected and data is written when A1='H'. To use OPL3 functions, write NEW='1' during initialization."

If would have thought setting NEW='0' would disable the OPL3 functions, but I guess not😅

Reply 474 of 530, by OPLx

User metadata
Rank Member
Rank
Member

SBVGM v1.43 is available from http://www.oplx.com/code/

This update includes:

  • Better OPL4 delays for fast machines.
  • Added PRE logging support for YM2203 and YM2608
  • Changed order of YMF262 PRE logging data
  • Added RP2A03 emulation on OPL3/OPL4.
  • Fixed bug where APU channels may not play on VGMs that set RP2A03 status at the start of playback.
  • Fixed bug where OPL3 would not properly play OPL2 VGMs right after playing and OPL3 VGM.

Notes
The OPL3 and OPL4 chipsets can now play RP2A03 (NES APU) VGMs (without DMC sample playback). The VGMs that sound "best" are any that don't rely on DMC such as:

OPL3/4 APU Noise Channel Caveats

  • VGMs that use a particular quirk of the APU's noise channel's high frequencies ranging about between 55930.4 Hz ~ 447443.2 Hz won't sound correct as the OPL3/4 can't play frequencies that high.
  • Noise "buzzing" (as cane be heard in Quick Man Stage) isn't (yet) supported; need more time researching this a bit more.

Reply 475 of 530, by iyatemu

User metadata
Rank Newbie
Rank
Newbie
OPLx wrote on 2023-08-19, 14:02:

[*]Fixed bug where OPL3 would not properly play OPL2 VGMs right after playing and OPL3 VGM.[/list]

So, funny story. I just tried it with SBVGM*32* v1.42 and it doesn't happen.

2-op plays fine after 4-op, but the bug only occurred with the non-32 version. It's already fixed so I'm not sure how much it matters, but what was the difference in handling between SBVGM and SBVGM32?

Edit: It seems like I just happen to be playing two files where the combined channels don't conflict with the combined ones.

Reply 476 of 530, by OPLx

User metadata
Rank Member
Rank
Member
iyatemu wrote on 2023-08-21, 20:40:

So, funny story. I just tried it with SBVGM*32* v1.42 and it doesn't happen.

2-op plays fine after 4-op, but the bug only occurred with the non-32 version. It's already fixed so I'm not sure how much it matters, but what was the difference in handling between SBVGM and SBVGM32?

Edit: It seems like I just happen to be playing two files where the combined channels don't conflict with the combined ones.

Yeah, it definitely happens in the 32-bit version. The only real difference between the 32-bit version and the 16-bit one is that the timer update rate in the 32-bit version is 540Hz versus 180Hz on the 16-bit version and the 32-bit version doesn't have the memory limitations that come with running in real mode. Hopefully once I get a chance to speed things up, I can raise those values.

Reply 477 of 530, by NHVintage

User metadata
Rank Newbie
Rank
Newbie

Hi - I'm testing out a newly rehabbed 486 machine I acquired with MSDOS 6.2.2 and Win3.1 and having issues getting SBVGM (or SBVGM32, they're acting the same) v1.43 to work. This copy of SBVGM (and the vgz files) is on a USB stick and they work fine on my 8088 Equity I+ and its SAAYM card. I use the ISA USB card on these two machines, which has been working flawlessly, but just in case, I tried copying everything to C: and running from there too with the same issue.

The 486 machine has a Soundblaster 16 with a Serda EWave wavetable daughterboard. When I try playing any file, I get 'Detected hardware can't play VGM!' I've tried using the -opl3330 switch and then (on a separate attempt) the -sbc switch with no change. I am booting to MS-DOS and not starting Win3.1 as its not needed here.

By way of checking the hardware and configuration I then used the Duke Nukem 3D setup program with "General Midi" for the music and the SB16 for the sound effects, and that works just fine.

On startup of MS-DOS the installed Soundblaster package runs a few different programs and sets a few different configuration parameters: In autoexec.bat, that includes:
SET SOUND=C:\SB16
SET BLASTER=A220 I5 D1 H5 P330 T6
SET MIDI=SYNTH:1 MAP:E
SET CTCM=C:\CTCM
C:\SB16\DIAGNOSE /S
C:\SB16\MIXERSET /P /Q
C:\CTCM\CTCU /S

CONFIG.SYS adds:
DEVICE=C:\CTCM\CTCM.EXE

I tried restarting with an autoexec.bat and config.sys that didn't have these settings and that only led to a 'no hardware' message, then attempts and using the flags when running it returned me to the "Hardware can't play VGM" issue.

Can anyone suggest things I can do to try diagnosing this issue, please? Or is the Soundblaster 16 incapable of playing VGMs for some reason, even on its wavetable header?

Thanks!

Reply 479 of 530, by OPLx

User metadata
Rank Member
Rank
Member
NHVintage wrote on 2023-11-12, 20:39:
Hi - I'm testing out a newly rehabbed 486 machine I acquired with MSDOS 6.2.2 and Win3.1 and having issues getting SBVGM (or SBV […]
Show full quote

Hi - I'm testing out a newly rehabbed 486 machine I acquired with MSDOS 6.2.2 and Win3.1 and having issues getting SBVGM (or SBVGM32, they're acting the same) v1.43 to work. This copy of SBVGM (and the vgz files) is on a USB stick and they work fine on my 8088 Equity I+ and its SAAYM card. I use the ISA USB card on these two machines, which has been working flawlessly, but just in case, I tried copying everything to C: and running from there too with the same issue.

The 486 machine has a Soundblaster 16 with a Serda EWave wavetable daughterboard. When I try playing any file, I get 'Detected hardware can't play VGM!' I've tried using the -opl3330 switch and then (on a separate attempt) the -sbc switch with no change. I am booting to MS-DOS and not starting Win3.1 as its not needed here.

By way of checking the hardware and configuration I then used the Duke Nukem 3D setup program with "General Midi" for the music and the SB16 for the sound effects, and that works just fine.

On startup of MS-DOS the installed Soundblaster package runs a few different programs and sets a few different configuration parameters: In autoexec.bat, that includes:
SET SOUND=C:\SB16
SET BLASTER=A220 I5 D1 H5 P330 T6
SET MIDI=SYNTH:1 MAP:E
SET CTCM=C:\CTCM
C:\SB16\DIAGNOSE /S
C:\SB16\MIXERSET /P /Q
C:\CTCM\CTCU /S

CONFIG.SYS adds:
DEVICE=C:\CTCM\CTCM.EXE

I tried restarting with an autoexec.bat and config.sys that didn't have these settings and that only led to a 'no hardware' message, then attempts and using the flags when running it returned me to the "Hardware can't play VGM" issue.

Can anyone suggest things I can do to try diagnosing this issue, please? Or is the Soundblaster 16 incapable of playing VGMs for some reason, even on its wavetable header?

Thanks!

Hmm, this is unexpected. SBVGM should detect the correct settings from the BLASTER environment variable. Do you have any other sound cards in this machine? Which VGM file(s) are you trying to play? As @DjLc mentioned, the only valid ports for the SB16's OPL3 chip are 388h (for OPL2) and 220h (for OPL3).

You could try running the program with -opl3220. Depending on which VGM file(s) you are trying to play the -sbc option won't work for an SB16.

----

While writing the above text, I suspect that you're trying to play some VGMs that use the SAA1099 on the SB16. The SB16 doesn't have this chip. Only the Sound Blaster 1.0 or 1.5/2.0 (if the C/MS chips are installed). VGMs with the SAA1099 will work fine on the SAAYM card as you already mentioned.