VOGONS


SBVGM (DOS) VGM Player

Topic actions

Reply 60 of 530, by OPLx

User metadata
Rank Member
Rank
Member
ElBrunzy wrote:

OPLx : maybe you dont like forum ? But what I prefer with vogons is that I end up talking with guys like you. I feel so lucky to be so. Can I ask you some question ? : What went you into coding computers ? How come you are interested in music so much ? What is the relationship of coding an music in your life ? What soundcard do you prefer to use when into coding ? Is there reasons you use closed sources for your sbvgm player projet ?

feel free to answer or not, I just felt like an journalist 😁

I don't mind the forums at all and appreciate all your comments and feedback.

Long, long ago (OK, maybe not that long ago), I got interested in computers primarily because one could make games on them and of course wanted to do game programming (this was back in the 90s DOS era). I've always liked music and as a result programming and music seemed to be a natural fit for me. Also, because it takes a lot less time to write music on a computer than program a game or something graphically complex! 😀

I have always had a love for the OPL2 from when it was originally introduced in the Adlib sound card. Years ago on the Sega Genesis (Sega Megadrive) I had heard the music from Streets of Rage and was very impressed by the sound. Looking into what the Sega hardware could do, I noticed that it had an FM chip and a "classic" square wave tone generator. I remembered that my Sound Blaster 1.5 had the optional C/MS chips and wondered how would such music sound on the PC. Unfortunately, I sold that original Sound Blaster ... Fast forward to (I think 2012) and I was thinking about the idea of music with the YM3812 and C/MS and started to do some research.

To my surprise the C/MS chips were actually SAA1099s and music on the Sam Coupe had used the envelope generator feature of the chips (this is not documented in the Creative Lab's C/MS chip programming information). I feel that SAA1099 is really an underused chip and got very curious. Again because of lack of time, I started looking for audio data to test my ideas and this is where the VGM format came in. My experiment was basically to see what the SAA1099 could do if it tried to emulate the NES' audio chip. Fortunately, I also found VGMs that use both the YM2413 and the AY-3-8910 simultaneously and thus was able to conclude my experiment of what music on the Sound Blaster 1.x with the C/MS chips would sound like. The VGMs in this case is from Xak: The Art of Visual Stage

I presently use a Sound Blaster 1.5 with two SAA1099's installed primarily for my sound programming. I have a Yamaha Waveforce 192XG for testing things on the OPL3 as well.

The only real reason why I haven't released SBVGMs sources openly is that it's actually because I have been wanting to go back and clean up some code and release everything along with some older FM programming projects I had done; I just simply need to find the time to do this once and for all, but I keep getting "distracted" with some of the other ideas that come to mind. I am anticipating that I will be able to release the source at some point in the future. 😀

Reply 61 of 530, by OPLx

User metadata
Rank Member
Rank
Member
ElBrunzy wrote:

How was the miracle warrior debug ? I really want to listen to that music on the adlib's opl. Maybe you can just recompile your code from tiny to small or something like it? I'm very eager to listen to that soundtrack from your very player!

Well, it turned out that it was not a memory issue at all, but an error in how initialization was being done depending on the sound hardware settings. Castle.vgm was the first VGM to have settings for both YM2413 and SN76489. Generally SBVGM will play if it detects at least one of the DOS sound hardware it supports. This particular VGM doesn't actually have any sound commands for the SN76489 though. I wonder if there are actually any VGMs that have commands for both the YM2413 and SN76489.

I have fixed the problem in v1.08 and you can from download here. Thank you for helping to find this bug! 😀

There might be some bugs with the simulation of the YM2413 ... I still need to see what I can do to get hold of an actual YM2413 to test with.

Reply 62 of 530, by Jepael

User metadata
Rank Oldbie
Rank
Oldbie

I have a question regarding CMS/SAA1099P support, I recall the VGM file format has no support for SAA1099P chips so it can't log GameBlaster audio.

Could this be suggested to people who are responsible for VGM file format specs? I mean, it's only dual SAA1099P at 7159090 Hz frequency so there should be room to implement commands for writing index/data pairs to first and second chip.

Reply 63 of 530, by OPLx

User metadata
Rank Member
Rank
Member
Jepael wrote:

I have a question regarding CMS/SAA1099P support, I recall the VGM file format has no support for SAA1099P chips so it can't log GameBlaster audio.

Could this be suggested to people who are responsible for VGM file format specs? I mean, it's only dual SAA1099P at 7159090 Hz frequency so there should be room to implement commands for writing index/data pairs to first and second chip.

From what I can tell, VGM v1.71 files support the SAA1099 chip and I am assuming that as a result, there is support for GameBlaster audio.

What may be the issue is that they simply haven't gotten around to creating VGMs that use GameBlaster audio. So far there seems to be only two packs that use the SAA1099: Packs using SAA1099.

Reply 64 of 530, by Jepael

User metadata
Rank Oldbie
Rank
Oldbie
OPLx wrote:

From what I can tell, VGM v1.71 files support the SAA1099 chip and I am assuming that as a result, there is support for GameBlaster audio.

Thank you for pointing this out - it appears I just did not know where to look for newer specs than 1.70.

Reply 65 of 530, by ElBrunzy

User metadata
Rank Oldbie
Rank
Oldbie

wow YEAH it's working with whole Miracle Warrior soundtrack!
SBVGM v1.08 by OPLx

Searching for sound hardware
* OPL2 at 388h

Loading C:\music\emul8\vgz\mwarrior\MI2BD8~1.VGM ...

Track: Castle
Game: Miracle Warriors - Seal of The Dark Lord
System: Sega Master System
Release: 1987/10/18
Converter: sherpa
Notes: ID: 85

VGM version: 1.10
SN76489: 3579540 Hz
YM2313 (OPLL): 3579540 Hz

Playing ...

I'm speechless, talk to you later

Reply 66 of 530, by ElBrunzy

User metadata
Rank Oldbie
Rank
Oldbie

I really enjoy listening to my favorite video game soundtrack on the adlib opl chip. I feel like I own to you something but there is little I can do. I tough that maybe I could take a picture of the environment where I use your software. http://junkskool.net/images/photos/Computer_s … 3mmx_studio.jpg

do you think your player could ever read the PSG chip ?

Reply 67 of 530, by OPLx

User metadata
Rank Member
Rank
Member
ElBrunzy wrote:

I really enjoy listening to my favorite video game soundtrack on the adlib opl chip. I feel like I own to you something but there is little I can do. I tough that maybe I could take a picture of the environment where I use your software. http://junkskool.net/images/photos/Computer_s … 3mmx_studio.jpg

do you think your player could ever read the PSG chip ?

Thank you for the kind words and photo! You don't owe me anything! 😀 I'm really happy that my small experiment turned out to be useful for others. Really like the Adlib card in the photo!

The play does support VGMs with PSG, but presently only play PSG audio through either the SAA1099 or SN76496 (on Tandy 1000). I could update the player to play PSG on the OPL2, but one aspect that would be lost is how the OPL2 handles noise versus the PSG chips. I presently don't have too much free time, but I'll keep this feature in mind for any possible updates in the future.

When I do have some time, the next thing I would like to do is fix the bug with playback of VGMs that were captured for the OPL3.

Reply 68 of 530, by SquallStrife

User metadata
Rank l33t
Rank
l33t

Did a quick video demo-ing Master System PSG playback, hope it's OK! 😀

Re: [retro swim] - An episodic video tour of SquallStrife's retro junk

VogonsDrivers.com | Link | News Thread

Reply 69 of 530, by OPLx

User metadata
Rank Member
Rank
Member
SquallStrife wrote:

Did a quick video demo-ing Master System PSG playback, hope it's OK! 😀

Re: [retro swim] - An episodic video tour of SquallStrife's retro junk

Oh wow! That really put a smile on my face! Thanks for making the video! 😀
I'm especially happy and thankful that it ran all right on your machine; awesome!

Reply 70 of 530, by SquallStrife

User metadata
Rank l33t
Rank
l33t
OPLx wrote:
SquallStrife wrote:

Did a quick video demo-ing Master System PSG playback, hope it's OK! 😀

Re: [retro swim] - An episodic video tour of SquallStrife's retro junk

Oh wow! That really put a smile on my face! Thanks for making the video! 😀
I'm especially happy and thankful that it ran all right on your machine; awesome!

My pleasure! 😀

VogonsDrivers.com | Link | News Thread

Reply 71 of 530, by ElBrunzy

User metadata
Rank Oldbie
Rank
Oldbie

Cool video on the tandy!!! This wonderboy soundtrack was awesome ! I would not go to buy an tandy for to hear the sn76489 on SBVGM but I'm always keeping an eye open for a Sound Blaster (w/ CMS) | Creative Music System | Game Blaster on ebay but those seem damn rare and expensive ...

I remember that the adlib rely on white noise to do some of his drum sample, like the hihat or maybe the ride, is that what you meant that would be lost or modified ?

Why I like your player is that it translate music notation recording on the video game of my childhood (sega master) and play it on an equally important soundcard to me, the adlib. Why dont you release a new version that unlock the PSG on the Adlib and we will see the white noise problem as it get by? You could call it beta, or not, as it's an experimentation 😉

Reply 72 of 530, by ElBrunzy

User metadata
Rank Oldbie
Rank
Oldbie

I have seend that for around 200$ I could buy off ebay a soundblaster 1.5 and two SAA1099 chips. This way I could play ALL the sbvgm music rip? Right ?

Reply 73 of 530, by OPLx

User metadata
Rank Member
Rank
Member
ElBrunzy wrote:

Cool video on the tandy!!! This wonderboy soundtrack was awesome ! I would not go to buy an tandy for to hear the sn76489 on SBVGM but I'm always keeping an eye open for a Sound Blaster (w/ CMS) | Creative Music System | Game Blaster on ebay but those seem damn rare and expensive ...

I remember that the adlib rely on white noise to do some of his drum sample, like the hihat or maybe the ride, is that what you meant that would be lost or modified ?

Why I like your player is that it translate music notation recording on the video game of my childhood (sega master) and play it on an equally important soundcard to me, the adlib. Why dont you release a new version that unlock the PSG on the Adlib and we will see the white noise problem as it get by? You could call it beta, or not, as it's an experimentation 😉

Ha ha ha ... Well if I can find some time I might be able to add support for PSG on OPL2 (and OPL3). I can't say for sure, but some experiments I did a while back putting the OPL2 into percussive mode allows some form of control on the noise generator ... I still need to spend time examining this though. The noise generated definitely won't sound like anything close to the SN76489's noise though.

The OPL3 has hardware support for square waveforms and it is possible to tweak the OPL2 parameters to have a close approximation. Things are still a bit busy on my end, but I'll consider adding this as a feature ...

Last edited by OPLx on 2016-12-06, 09:51. Edited 1 time in total.

Reply 74 of 530, by OPLx

User metadata
Rank Member
Rank
Member
ElBrunzy wrote:

I have seend that for around 200$ I could buy off ebay a soundblaster 1.5 and two SAA1099 chips. This way I could play ALL the sbvgm music rip? Right ?

Yes, this is true. Though it shouldn't cost you that much if you get a Sound Blaster 2.0 with GAL chips. I've seen on the forums here where some folks have used the GAL chips along with two SAA1099s with the Sound Blaster 2.0.

Reply 75 of 530, by ElBrunzy

User metadata
Rank Oldbie
Rank
Oldbie

Finally I bought a sb1.5 and pair of saa1099 chips. I also did build a computer (p1-233 freedos/win98). Took me a week, you see what your "sbvgm experiment" means to me? I received the soundblaster 1.5 today and did test it. Funny thing is that if I dont use the -a switch, sbvgm crash after detecting the soundblaster at port 220h (where it is, irq 5). If I use -a I can listen to the wonderful sega master system fm music on the ym2413. In the meantime I receive the saa1099 chips and morph the cards to a creatime music system game blaster, I did read the sbvgm -h literature and found that I can only force CMS on a soundblaster if it's type 1 or 3 ... damn I'm nervous now ... is my ct1320c is a type 1 or 3 soundcard ? what do you think ? I've spent prime money for the luxury of listening video game rip on your outstanding player!

Reply 76 of 530, by OPLx

User metadata
Rank Member
Rank
Member
ElBrunzy wrote:

Finally I bought a sb1.5 and pair of saa1099 chips. I also did build a computer (p1-233 freedos/win98). Took me a week, you see what your "sbvgm experiment" means to me? I received the soundblaster 1.5 today and did test it. Funny thing is that if I dont use the -a switch, sbvgm crash after detecting the soundblaster at port 220h (where it is, irq 5). If I use -a I can listen to the wonderful sega master system fm music on the ym2413. In the meantime I receive the saa1099 chips and morph the cards to a creatime music system game blaster, I did read the sbvgm -h literature and found that I can only force CMS on a soundblaster if it's type 1 or 3 ... damn I'm nervous now ... is my ct1320c is a type 1 or 3 soundcard ? what do you think ? I've spent prime money for the luxury of listening video game rip on your outstanding player!

Hello! Your sb1.5 is type 1 (it doesn't require the extra chip to enable using the SAA1099 chips), so I think you are fine. I'm curious though as to why the program crashes since it does not use any DMA or IRQ ports. If you have a chance, and don't mind, could you show me what your environment variables are? There is a chance that the auto-detect code is picking up on a setting that turns out not to be valid. Also are there any other sound cards in the computer?

I really appreciate that you went as far as to buy a sound card to listen to the music. Hopefully once those SAA1099 chips arrive, you'll be able to listen to the Master System music. 😀

By the way, I am still looking into adding support (at some point) for SN76489 playback on the OPL2 and OPL3. Some tests I did last week on the OPL3 worked out and I need to do some other tests on the OPL2, then figure out how to interpret the SN76489 noise channel on the OPL2 & OPL3. There's also some work that will need to be done on how the program decides on which chips to use based on the VGM. There are some Master System games that use both the YM2413 and SN76489 and in this case (at least for OPL2) both chips can't be played back so it will likely be a command line option.

By the way, here's a link that has some good information about the CT1320C: Sound Blaster 1.0 or 1.5?

Reply 77 of 530, by ElBrunzy

User metadata
Rank Oldbie
Rank
Oldbie

I did try to use a yamaha ds-xg ymf724 with the sb1.5 but it did refuse to disable the fm at port 388h or change it, so I just removed the card from the computer. It did add a a set blaster=a220, i5 d1 t4 on the autoexec.bat, I removed it and sbvgm crashed. Now the computer setup is with only a soundblaster 1.5 irq 5 baseport 220h and I removed the yamaha 724 card so the soundblaster is only sole one at 388h. Can it be I add a set blaster, your player seem to rely on it if I understand you right. I also removed any set blaster lines, so my guess is that I dont give youre player a chance 😁 I will try and add a set blaster string if you recommend it

Last edited by ElBrunzy on 2016-12-10, 14:59. Edited 1 time in total.

Reply 78 of 530, by Scali

User metadata
Rank l33t
Rank
l33t
OPLx wrote:

Some tests I did last week on the OPL3 worked out and I need to do some other tests on the OPL2, then figure out how to interpret the SN76489 noise channel on the OPL2 & OPL3.

How about simulating the noise channel digitally? There's source code available from SN76489 emulators (such as DOSBox). You could just simulate the noise bit-for-bit using the routine from an emulator, and then then find a way to replay the noise 'samples'? Either via the DAC of an SB, or using the trick to play samples on the OPL2/3?

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

Reply 79 of 530, by OPLx

User metadata
Rank Member
Rank
Member
ElBrunzy wrote:

I did try to use a yamaha ds-xg ymf724 with the sb1.5 but it did refuse to disable the fm at port 388h or change it, so I just removed the card from the computer. It did add a a set blaster=a220, i5 d1 t4 on the autoexec.bat, I removed it and sbvgm crashed. Now the computer setup is with only a soundblaster 1.5 irq 5 baseport 220h and I removed the yamaha 724 card so the soundblaster is only sole one at 388h. Can it be I add a set blaster, your player seem to rely on it if I understand you right. I also removed any set blaster lines, so my guess is that I dont give youre player a chance 😁 I will try and add a set blaster string if you recommend it

Is there any kind of message that is displayed when the program crashes? I never tested the program with two sound cards. My guess is that both cards FM chips should respond, but I am not sure if this is the case. I do have a PCI YMF724 based card that I guess I can try to test with to see if I can reproduce the crash. At minimum, I think I ought to add a command-line option to specify the base port where the FM chip can be found. Currently the program will check for the BLASTER environment variable first, if that does not exist, it will scan the valid Sound Blaster port range for a card. By the way your BLASTER environment variable should be BLASTER=A220 I5 D1 T1. The 'T1' part specifies SB1.0 or SB1.5 ... this could be what is leading to the crash, but I can not say for sure. Either way, I need to fix whatever is causing the crash to happen; the program should just display an error message instead. Please let me know if the BLASTER environment fixed things for you or not.   😀