VOGONS


SBVGM (DOS) VGM Player

Topic actions

Reply 20 of 530, by OPLx

User metadata
Rank Member
Rank
Member
lightmaster wrote:
OPLx: I've been playing a lot of adlib music in the past, without and with your Ganbatte! plugin. Already had those d00 and d01 […]
Show full quote

OPLx:
I've been playing a lot of adlib music in the past, without and with your Ganbatte! plugin. Already had those d00 and d01 vibrant music files and the rare ones and more.
Thank you for Ganbatte and SBVGM!!
Cheers

You're welcome! I'm glad that Ganbatte! has been useful for you. 😀

Reply 21 of 530, by ik777

User metadata
Rank Member
Rank
Member
OPLx wrote:
Supported VGM chipsets […]
Show full quote

Supported VGM chipsets

  • RP2A03 (NES APU)
  • SN76489 variants
  • SAA1099
  • YM3256
  • Y8590
  • YM3812 (OPL2)
  • YMF262 (OPL3)

Thank you for your great work. I always complained about many adlib musics were not as polished as arcade one.
Now it was not hardware fault, just PC composer was lazy about this.
Now I'm hearing Taito's Bubble bobble both arcade & PC using my Sound galaxy's YMF289 😀 .

By the way it is "Y8950" you refer MSX music chip? I confused you says 8590. And can you support OPLL(YM2413) also?
And I suggest an idea. "IGNORE PSG or OPN". This will be good if SBVGM support like some arcade or MSX FMPAC games.

Your effort made us not to buy expensive G.I.M.I.C. for OPL. Again thank you.

Reply 22 of 530, by OPLx

User metadata
Rank Member
Rank
Member
ik777 wrote:
Thank you for your great work. I always complained about many adlib musics were not as polished as arcade one. Now it was not ha […]
Show full quote
OPLx wrote:
Supported VGM chipsets […]
Show full quote

Supported VGM chipsets

  • RP2A03 (NES APU)
  • SN76489 variants
  • SAA1099
  • YM3256
  • Y8590
  • YM3812 (OPL2)
  • YMF262 (OPL3)

Thank you for your great work. I always complained about many adlib musics were not as polished as arcade one.
Now it was not hardware fault, just PC composer was lazy about this.
Now I'm hearing Taito's Bubble bobble both arcade & PC using my Sound galaxy's YMF289 😀 .

By the way it is "Y8950" you refer MSX music chip? I confused you says 8590. And can you support OPLL(YM2413) also?
And I suggest an idea. "IGNORE PSG or OPN". This will be good if SBVGM support like some arcade or MSX FMPAC games.

Your effort made us not to buy expensive G.I.M.I.C. for OPL. Again thank you.

Hello and thank you for your kind comments. There is support for the Y8950; Y8590 is a typing mistake (I've fixed it). YM2413 support is possible; I need to take a look at the datasheets and see how support could be added. I believe it has instrument data built in to the chip. I'm not sure if there is copyright on the data, but I may provide a means of allowing the user to supply their own instrument data instead.

I took a brief look at the OPN datasheets and won't be supporting that series because it is architecturally different than the OPL line. PSG support is more or less already "supported" by translating the commands to the what can be used on SAA1099. I have been looking at supporting the AY-3-8910 (via the SAA1099), but that will probably take some time.

Reply 23 of 530, by ik777

User metadata
Rank Member
Rank
Member

I informed your player my homeland old hardware community and one FM freak(also VOGONS member) like me uploaded some SBVGM videos to Youtube .

search SBVGM and could find out.

Reply 24 of 530, by OPLx

User metadata
Rank Member
Rank
Member
ik777 wrote:

I informed your player my homeland old hardware community and one FM freak(also VOGONS member) like me uploaded some SBVGM videos to Youtube .

search SBVGM and could find out.

Wow! I'm glad others are finding the program useful. Thank you for letting me know about the YouTube videos. 😀

Reply 25 of 530, by OPLx

User metadata
Rank Member
Rank
Member
MrKsoft wrote:

As I've been working to make VGMs of a lot of DOS music, I'm so incredibly happy to see this and be able to play them back on the original hardware. I've linked it on the OPL Archive. Thanks so much!

edit: Works great! Are there plans for support for memory above 640k? A few large VGMs from my archive (mostly the ones by Madbrain) fail to allocate enough memory to play.

Hello again! XMS support has been added (in v1.05); -x will need to be added at the end to trigger usage of it.

Since it was possible to load and playback the larger VGZ files, I came across a playback bug (VGM wait commands are being skipped) with some of the VGZs by Madbrain. SBVGM's playback timer (currently at 180 Hz update) needs to be increased since it seems that the original A2M files have updates as high as 500Hz. I'm not too entirely familiar with how Adlib Tracker ][ handles instrument macros and playback, but my initial guess is that instrument macros updates are the driven off the main timer update and then the actual note updates are a multiple of the main update. For example, "Oskari Returns to Soundblasterland" (OS_SBLAS.A2M) has a 525 Hz update (for instrument macros) and the tempo is at 75 Hz. I'm wanting to keep the player running on a 4.77 MHz machine, so I need to try some experiments to see if there's a better maintain this, without slowing things down (the program is written mostly in C and compiled with WATCOM ... not enough spare time to write and debug in assembler). It shouldn't be too hard to fix and I'll take a closer look as I have time.

Reply 26 of 530, by ElBrunzy

User metadata
Rank Oldbie
Rank
Oldbie

I was so eager to try your player with my adlib ymf opl2 hardware. But your vgm player, whatever awesome it is, failed at detecting my setup. It told me that the sb init failed. I got no soundblaster in there, so why bother init it at all? Maybe the guspnp sb emulation shit is at stake here, I usually disable it, who use sb emulation on a gus anyway ?

you could add a switch called "-a force adlib opl2 detection" I would use it to listen to my .vgm music collection. What vgm mean anyway ? Videogame General midi ?

Reply 27 of 530, by OPLx

User metadata
Rank Member
Rank
Member
ElBrunzy wrote:

I was so eager to try your player with my adlib ymf opl2 hardware. But your vgm player, whatever awesome it is, failed at detecting my setup. It told me that the sb init failed. I got no soundblaster in there, so why bother init it at all? Maybe the guspnp sb emulation shit is at stake here, I usually disable it, who use sb emulation on a gus anyway ?

you could add a switch called "-a force adlib opl2 detection" I would use it to listen to my .vgm music collection. What vgm mean anyway ? Videogame General midi ?

Thank you for the feedback. It sounds like the GUSPnP emulation is being detected first and therefore causing a conflict. During development, I (unfortunately) didn't have a GUSPnP to test with (as far as different hardware set ups to account for potential conflicts). By the way, which YMF chipset are you using and what address does the GUSPnP use for SB emulation? I just need to know this information so I can have a better idea of how to resolve the problem. From what I remember about GUS SB emulation, it will likely capture any writes to address 388h (which Adlib is typically at). For now, it looks like disabling the SB emulation is the way to go.

Actually, if you have actual YMF hardware it doesn't seem to make sense to have SB emulation enabled. Yamaha's YMF drivers have decent Sound Blaster support for their YMF hardware. In the next version, I'll add in a flag to force the Adlib detection as you have suggested once I get some other features that are being worked on at present completed. Hopefully it won't be too long.

By the way, VGM stands for Video Game Music. More information can be found here: https://vgmrips.net/

Reply 28 of 530, by Jepael

User metadata
Rank Oldbie
Rank
Oldbie
OPLx wrote:

Since it was possible to load and playback the larger VGZ files, I came across a playback bug (VGM wait commands are being skipped) with some of the VGZs by Madbrain. SBVGM's playback timer (currently at 180 Hz update) needs to be increased since it seems that the original A2M files have updates as high as 500Hz.

Hi OPLx, (I guess you made oplx.com ?)

Some original formats use far higher playback timers, like Wolf3D IMF uses a bit over 700Hz (source code had incorrect PIT frequency constant instead of 1193180), and Dosbox DRO uses 1000Hz. Monkey Island timer rate is about 473 Hz.

Are you doing the whole playback in the timer interrupt? If so, since this is mainly a music player, maybe doing only the timekeeping in the timer interrupt and the actual playback in main code would be the answer? I used this technique in some of my music players (at least in my prototype VGM player written in Turbo Pascal), but I did not consider so old machines anyway.

Reply 29 of 530, by ElBrunzy

User metadata
Rank Oldbie
Rank
Oldbie
OPLx wrote:

Thank you for the feedback. It sounds like the GUSPnP emulation is being detected first and therefore causing a conflict. During development, I (unfortunately) didn't have a GUSPnP to test with (as far as different hardware set ups to account for potential conflicts). By the way, which YMF chipset are you using and what address does the GUSPnP use for SB emulation? I just need to know this information so I can have a better idea of how to resolve the problem. From what I remember about GUS SB emulation, it will likely capture any writes to address 388h (which Adlib is typically at). For now, it looks like disabling the SB emulation is the way to go.

Actually, if you have actual YMF hardware it doesn't seem to make sense to have SB emulation enabled. Yamaha's YMF drivers have decent Sound Blaster support for their YMF hardware. In the next version, I'll add in a flag to force the Adlib detection as you have suggested once I get some other features that are being worked on at present completed. Hopefully it won't be too long.

By the way, VGM stands for Video Game Music. More information can be found here: https://vgmrips.net/

Yeah right, oplx, I did doublecheck that I had sb emulation with pnpcfg.exe and disabled it, apparently it was on. I often switch with official pnpcfg.exe and unofficial iwavecfg.exe. So now that I'm sure guspnp emulation is off and adlib opl2 is working... let's try your software !

now it tell me "* Sound Blaster at 220h" (really?!")
and then "loading C:\music\emul8\gm\wonder~2.vgm ..."
but no audio and "VGM not supported by player!" ... oh! the file's unssuported!
okay did try "zillio~4.vgm" but it dont play, it say "No sound hardware found for VGM!"
I'll try to kill "BLASTER=" from my set environment
haha it take longer to "search for sound hardware ..." but no ... no sound hardware found for VGM! 🙁

but it state that "* OPL2 at 388h" just before 🙁

I'm so eager to listen to video game music thru the opl2 of my adlib.

Reply 30 of 530, by OPLx

User metadata
Rank Member
Rank
Member
ElBrunzy wrote:
Yeah right, oplx, I did doublecheck that I had sb emulation with pnpcfg.exe and disabled it, apparently it was on. I often switc […]
Show full quote
OPLx wrote:

Thank you for the feedback. It sounds like the GUSPnP emulation is being detected first and therefore causing a conflict. During development, I (unfortunately) didn't have a GUSPnP to test with (as far as different hardware set ups to account for potential conflicts). By the way, which YMF chipset are you using and what address does the GUSPnP use for SB emulation? I just need to know this information so I can have a better idea of how to resolve the problem. From what I remember about GUS SB emulation, it will likely capture any writes to address 388h (which Adlib is typically at). For now, it looks like disabling the SB emulation is the way to go.

Actually, if you have actual YMF hardware it doesn't seem to make sense to have SB emulation enabled. Yamaha's YMF drivers have decent Sound Blaster support for their YMF hardware. In the next version, I'll add in a flag to force the Adlib detection as you have suggested once I get some other features that are being worked on at present completed. Hopefully it won't be too long.

By the way, VGM stands for Video Game Music. More information can be found here: https://vgmrips.net/

Yeah right, oplx, I did doublecheck that I had sb emulation with pnpcfg.exe and disabled it, apparently it was on. I often switch with official pnpcfg.exe and unofficial iwavecfg.exe. So now that I'm sure guspnp emulation is off and adlib opl2 is working... let's try your software !

now it tell me "* Sound Blaster at 220h" (really?!")
and then "loading C:\music\emul8\gm\wonder~2.vgm ..."
but no audio and "VGM not supported by player!" ... oh! the file's unssuported!
okay did try "zillio~4.vgm" but it dont play, it say "No sound hardware found for VGM!"
I'll try to kill "BLASTER=" from my set environment
haha it take longer to "search for sound hardware ..." but no ... no sound hardware found for VGM! 🙁

but it state that "* OPL2 at 388h" just before 🙁

I'm so eager to listen to video game music thru the opl2 of my adlib.

I think I might have an idea of what some of the problems you are running into are. I should have explained a bit more clearly in the README.TXT for SBVGM. Basically SBVGM attempts to playback VGMs that are typically "native" to hardware that would have been found under on PCs such as OPL2, OPL3. I am guessing that wonder~2.vgm uses hardware that was not readily available on PCs back during the DOS era (hence the "unsupported"). In the case of the "No sound hardware found for VGM" message, it's likely that the VGM file is using the SN76489 ... which is either found on Tandy-based PCs ... or simulated on the Sound Blaster 1.0/2.0 that has the C/MS (SAA1099) chipset.

Just in case those VGMs use the OPL2 chipset, could you point me to where I can download them from to test and verify?

Reply 31 of 530, by ElBrunzy

User metadata
Rank Oldbie
Rank
Oldbie
OPLx wrote:

I think I might have an idea of what some of the problems you are running into are. I should have explained a bit more clearly in the README.TXT for SBVGM. Basically SBVGM attempts to playback VGMs that are typically "native" to hardware that would have been found under on PCs such as OPL2, OPL3. I am guessing that wonder~2.vgm uses hardware that was not readily available on PCs back during the DOS era (hence the "unsupported"). In the case of the "No sound hardware found for VGM" message, it's likely that the VGM file is using the SN76489 ... which is either found on Tandy-based PCs ... or simulated on the Sound Blaster 1.0/2.0 that has the C/MS (SAA1099) chipset.

Just in case those VGMs use the OPL2 chipset, could you point me to where I can download them from to test and verify?

Sorry, I think it's entirely my fault for assuming too much. I made some more attentive reading of your readme.txt file and start to understand why it dont work. My .vgm (and .vgz) collection are entirely composed of sega master system music. The SMS had the ym2413 fm version or the sn76496 (who seem to be totally identical to the sn76489) for the psg version.

So if I look at the table on your readme.txt file I am in no luck playing the psg and the fm version of soundtrack. I see no support for the ym2413 and the SN76489 is only supported with CMS or gameBlaster. As I understand how your player work, I would need a cms or a gameblaster to hear the sn76489.

Here for instance you have the Y's soundtrack in vgm format with the sega psg http://www.smspower.org/Music/Ys-SMS-PSG and here with the sega fm http://www.smspower.org/Music/Ys-SMS-FM

I think there is a vgmplay player that work with emulation, but the idea I really like about your player is that it work natively with similar hardware. I know this is far fetched, but maybe you could add a switch to remove the "unsuported" limitation and see what it give ? 😵 Also, I'll take a look at my older soundcard, maybe I have one with the SAA1099 chipset or a SN76489 variant.

edit: Just as I re-read the thread, like ik777 mentioned, I too think it would be a good idea to add the opll support 🙄

Reply 32 of 530, by ElBrunzy

User metadata
Rank Oldbie
Rank
Oldbie

just to let you know that I did some further testing by adding an sb vibra 16 card who sport the ymf262 that your software detected allright. But when I try an FM based sega master system .vgm your player tell "VGM not supported by player!" (that's the ym2413 opll), I can understand that. But when I try to load an PSG based .vgm (the infamous sn76489) it return "No sound hardware found for VGM!". If I force -ps1 it say that it play the music but there is nothing to be heard.

I have a quite basic understanding of OPLx but my guess is that they are quite compatible, it's not with an old video game console sound chip that you will hit the opl2 or opl3 different limitations. Why not allow the user to force the output of the SN76489 to the selected soundcard? I'm pretty sure the only thing you can break while doing this is your ears 😉

Reply 33 of 530, by OPLx

User metadata
Rank Member
Rank
Member
ElBrunzy wrote:

just to let you know that I did some further testing by adding an sb vibra 16 card who sport the ymf262 that your software detected allright. But when I try an FM based sega master system .vgm your player tell "VGM not supported by player!" (that's the ym2413 opll), I can understand that. But when I try to load an PSG based .vgm (the infamous sn76489) it return "No sound hardware found for VGM!". If I force -ps1 it say that it play the music but there is nothing to be heard.

I have a quite basic understanding of OPLx but my guess is that they are quite compatible, it's not with an old video game console sound chip that you will hit the opl2 or opl3 different limitations. Why not allow the user to force the output of the SN76489 to the selected soundcard? I'm pretty sure the only thing you can break while doing this is your ears 😉

Thank you again for the feedback. Believe it or not, the last day or so has been spent restoring the hard drive of my main PC that I do development for SBVGM on. Fortunately the source code was not lost, but reinstalling software is taking quite some time. 🙁

The -ps1 option is only for supporting the SN76489 on the IBM PS/1 computer so you won't hear anything at all. I have been working on YM2413 support and if I can manage to get everything back to normal, I could release that version soon ... though there is a slightly hard to find bug in. On the FM side of things, SBVGM will only support OPLx variants. I had looked into possibly simulating the YM2151 (on the OPL3), but the FM algorithms are too different to justify the effort.

Please be a bit patient; I will try to release a version with YM2413 support soon. 😀

Reply 34 of 530, by OPLx

User metadata
Rank Member
Rank
Member
Jepael wrote:
Hi OPLx, (I guess you made oplx.com ?) […]
Show full quote
OPLx wrote:

Since it was possible to load and playback the larger VGZ files, I came across a playback bug (VGM wait commands are being skipped) with some of the VGZs by Madbrain. SBVGM's playback timer (currently at 180 Hz update) needs to be increased since it seems that the original A2M files have updates as high as 500Hz.

Hi OPLx, (I guess you made oplx.com ?)

Some original formats use far higher playback timers, like Wolf3D IMF uses a bit over 700Hz (source code had incorrect PIT frequency constant instead of 1193180), and Dosbox DRO uses 1000Hz. Monkey Island timer rate is about 473 Hz.

Are you doing the whole playback in the timer interrupt? If so, since this is mainly a music player, maybe doing only the timekeeping in the timer interrupt and the actual playback in main code would be the answer? I used this technique in some of my music players (at least in my prototype VGM player written in Turbo Pascal), but I did not consider so old machines anyway.

My apologize for not writing back sooner; I just noticed your message. 😢 Yes, I did make oplx.com ... need to "modernize" it at some point though ... 😒

The current playback routine is being handled in the timer interrupt. What you suggested about handling playback in main code is what I am hoping to do on the next release (v1.07 or greater). Straight-out port writes seem to be short enough time-wise, but the music plays back too fast. What I need work out is handling when the VGM delay commands so that it things would remain properly synced up.

What I currently test on is a PIII/450MHz machine. What I really wish though is that I had an older machine (4.77MHz) to test on. I've burned up a lot of time testing with emulators only to find out that things don't work out as expected on real hardware. Maybe in the future ... no space for another machine at the moment.

Reply 36 of 530, by OPLx

User metadata
Rank Member
Rank
Member
ElBrunzy wrote:

just to let you know that I did some further testing by adding an sb vibra 16 card who sport the ymf262 that your software detected allright. But when I try an FM based sega master system .vgm your player tell "VGM not supported by player!" (that's the ym2413 opll), I can understand that. But when I try to load an PSG based .vgm (the infamous sn76489) it return "No sound hardware found for VGM!". If I force -ps1 it say that it play the music but there is nothing to be heard.

I have a quite basic understanding of OPLx but my guess is that they are quite compatible, it's not with an old video game console sound chip that you will hit the opl2 or opl3 different limitations. Why not allow the user to force the output of the SN76489 to the selected soundcard? I'm pretty sure the only thing you can break while doing this is your ears 😉

Please go ahead and download v1.06; it has YM2413 support now. The YM2413 seems to be slightly different form how the YM3812 works internally; hopefully I'll be able to get my hands on actual YM2413 hardware so I can verify some things. I added AY-3-8910 support primarily for Xak: The Art of Visual Stage support. At least those with a Sound Blaster with C/MS chips or those who have a Game Blaster and Adlib installed can here what the SAA1099 and YM3812 sound like together! 😀

Reply 37 of 530, by ElBrunzy

User metadata
Rank Oldbie
Rank
Oldbie

Wow that was fast! Didnt expect that... and I'm so happy to see that you support the ym2413 via the adlib hardware. I just plugged an soundblaster to do some testing, it's already back in it's anti-static bag. Guess I'll have to grab a pack of beer on my way home tonight! 😅 ( <- tear of joy, not a sweatdrop )

Reply 38 of 530, by ElBrunzy

User metadata
Rank Oldbie
Rank
Oldbie

Sega Master System was my first console and then the Adlib my first soundcard on a pc. So listening to the soundtrack of my favorite video games on that very meaningfull hardware to me, felt like a very pleasant reborn, and I'm very gratefull for you made it possible.

Most sega master system score dumps are from the PSG's SN76489, but some of my favorites where recorded with YM2413 chip. I really enjoyed listening to wonderboy in monster land, phantasy star, Y's: The Vanished Omens. But for some reason Miracle Warriors: Seal of The Dark Lord keep on complaining that there is not enought memory to load the VGM file, really? I have 130mb of xms and 751kb of base, even the -x option is no help. I did try a clean boot with no high and just 500k of base but it dosent give, so might it be a misfired error?

The closest I got to a C/MS or GameBlaster is a reveal sc400 who look more like a soundblaster pro clone. I'll keep the look out for a card that feature dual ct-301 or SAA-1099 chips. But I'm thinking about planting a soundblaster with the ymf262 on that computer and installing windows98 to dual boot with freedos. Then I'll give vgmplay an other try, last time I did, could play many files translated on the fly but it was with software emulation so I felt not much interested, since you got me a taste for chip recording played on compatible hardware, I might give it another go!

Reply 39 of 530, by OPLx

User metadata
Rank Member
Rank
Member
ElBrunzy wrote:

Sega Master System was my first console and then the Adlib my first soundcard on a pc. So listening to the soundtrack of my favorite video games on that very meaningfull hardware to me, felt like a very pleasant reborn, and I'm very gratefull for you made it possible.

Most sega master system score dumps are from the PSG's SN76489, but some of my favorites where recorded with YM2413 chip. I really enjoyed listening to wonderboy in monster land, phantasy star, Y's: The Vanished Omens. But for some reason Miracle Warriors: Seal of The Dark Lord keep on complaining that there is not enought memory to load the VGM file, really? I have 130mb of xms and 751kb of base, even the -x option is no help. I did try a clean boot with no high and just 500k of base but it dosent give, so might it be a misfired error?

The closest I got to a C/MS or GameBlaster is a reveal sc400 who look more like a soundblaster pro clone. I'll keep the look out for a card that feature dual ct-301 or SAA-1099 chips. But I'm thinking about planting a soundblaster with the ymf262 on that computer and installing windows98 to dual boot with freedos. Then I'll give vgmplay an other try, last time I did, could play many files translated on the fly but it was with software emulation so I felt not much interested, since you got me a taste for chip recording played on compatible hardware, I might give it another go!

Glad it's mostly working! 😀 Do you mind telling me which VGM from Miracle Warriors didn't work? It looks like I need to fix some issues with how the memory manager/pager works. 😢 Does the reveal sc400 use or emulate the SAA1099? I never heard of this card before; it looks interesting though!