VOGONS


CMS Dev Kit

Topic actions

First post, by SirNickity

User metadata
Rank Oldbie
Rank
Oldbie

Does anyone know if Creative ever released a CMS / Game Blaster development kit? I'm looking for code examples and stuff. I know the 1099 IC datasheet has some info in it. I've also read the Nerdy Pleasures blog that describes the auto-detection process. That's probably 95% right there, just wondering what I might be missing, and would like some fully-baked demo code to help guide the way.

Reply 1 of 16, by cyclone3d

User metadata
Rank l33t++
Rank
l33t++

Check these out:
https://velesoft.speccy.cz/saa1099-cz.htm

https://github.com/stripwax/SAASound/

Yamaha modified setupds and drivers
Yamaha XG repository
YMF7x4 Guide
Aopen AW744L II SB-LINK

Reply 2 of 16, by SirNickity

User metadata
Rank Oldbie
Rank
Oldbie

Not specifically for CMS, but very helpful nonetheless. Thanks! 😀 That cleared up some uncertainty I had about the current-sink audio outputs.

Did Creative never release their own development kit for this card? It was their first, so maybe they weren't quite that well prepared yet.

Reply 3 of 16, by pan069

User metadata
Rank Oldbie
Rank
Oldbie

I don't know if Creative ever released an official SDK for the Game Blaster and the C/MS. However, in the early 90's I bought a Sound Blaster programming book written by two authors from the Netherlands, the book is in Dutch (I still have it on my bookshelf today), but there seems to be an English version of it as well on Amazon (never read it though):

https://www.amazon.com/Sound-Blaster-Book-Jos … k/dp/0782113206

I think this book has all the information you're looking for, it's very detailed! Unfortunately the Amazon page doesn't have a "Look inside" option so you can't have a peek at the chapters. However, this is a quick translation of the chapters in my Dutch version:

Chapter 1: Introduction
Chapter 2: Starting with Sound Blaster (MVC) and the Sound Blaster Pro
Chapter 3: Sound Blaster capabilities
Chapter 4: Playing games and making music
Chapter 5: Extensions
Chapter 6: MIDI
Chapter 7: Introduction to the programming chapters
Chapter 8: Programming the FM chip (i.e. Ad Lib)
Chapter 9: Programming the C/MS chips
Chapter 10: DSP programming
Chapter 11: Programming MIDI
Chapter 12 The mixer chip of the Sound Blaster Pro

Appendix A: Port usage
Appendix B: Registers of the FM chip
Appendix C: Registers of the Mixer chip
Appendix D: DPS commands
Appendix E: Overview of the C/MS chip functions
Appendix F: Overview of the C/MS notes, octaves and their frequencies
Appendix G: Overview of MIDI controllers and mode changes
Appendix H: Overview of MIDI notes, octaves and MIDI values
Appendix I: Overview of manufacture ID
Appendix J: Overview of MIDI status- & data bytes

From the chapters it might not seem so, but this is very much a programming book (at least, mine is). All code examples are in Pascal 😎 .

Hope this helps...

Last edited by pan069 on 2019-05-23, 11:19. Edited 2 times in total.

Reply 4 of 16, by Scali

User metadata
Rank l33t
Rank
l33t
pan069 wrote:

However, in the early 90's I bought a Sound Blaster programming book written by two authors from the Netherlands

These authors were members of the Dutch demogroup Ultra Force, best known for their Vectordemo:
http://www.pouet.net/prod.php?which=3540

Another member of that group was Arjan Brussee, also known from Jazz Jackrabbit and co-founder of Guerrilla Games.

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

Reply 7 of 16, by cyclone3d

User metadata
Rank l33t++
Rank
l33t++

Oh great.. Now I am going to have to order a copy at some point.

Yamaha modified setupds and drivers
Yamaha XG repository
YMF7x4 Guide
Aopen AW744L II SB-LINK

Reply 9 of 16, by Scali

User metadata
Rank l33t
Rank
l33t

To answer the original question:
I have some unofficial CMS documentation, written by Jerry Joplin.
You can find it here: http://www.dcee.net/Files/Programm/Sound/
In that document (CMSCHIPS), he writes:

The information contained in this document is a combination of
information found in the Sound Blaster Software Developer's Kit, and
that learned by painful experience.

That implies that there exists an official "Sound Blaster Software Developer's Kit", which includes information on programming CMS/Game Blaster.
I have never seen it though.

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

Reply 10 of 16, by cyclone3d

User metadata
Rank l33t++
Rank
l33t++

Hmmmm..... so after a bit of google-fu, I found the catalog that lists the SDK:
http://ibm-pc.org/manuals/other/creative/Soun … Accessories.PDF (too big to upload to this page)

And then I went back to the main page of that site and started looking through what was there and found the Sound Blaster Series Hardware Programming guide:
http://ibm-pc.org/manuals/other/creative/Soun … Blaster-HPG.pdf

Filename
SoundBlaster-HPG.pdf
File size
485.41 KiB
Downloads
67 downloads
File license
Fair use/fair dealing exception

And then I went looking around some more and found the Sound Blaster Software Development Kit V2.. but the download was broken, so to the Internet Archive I went:
http://web.archive.org/web/20131215191001/htt … oundblaster.htm

Filename
SBK2.zip
File size
1.09 MiB
Downloads
87 downloads
File license
Fair use/fair dealing exception

After a quick look, I didn't see anything specific to the Gameblaster/CMS, but maybe it is buried in there somewhere.
In any case, definitely a very, very, very useful resource to have available.

Edit 1: found a page that has the sample programs that go along with the Sound Blaster Series Hardware Programming Guide - this zip has both the PDF and the sample program code:
https://www.phatcode.net/articles.php?id=243

Filename
sbhwpg.zip
File size
672.66 KiB
Downloads
88 downloads
File license
Fair use/fair dealing exception

Found Even more stuff from that same page:
https://www.phatcode.net/articles.php?id=234

Filename
sblast09.zip
File size
524.83 KiB
Downloads
66 downloads
File license
Fair use/fair dealing exception

And now the AWE32 SDK:
https://www.phatcode.net/articles.php?id=244

Filename
adip301.zip
File size
1.1 MiB
Downloads
64 downloads
File license
Fair use/fair dealing exception

/Edit 1

I'll probably package it all up and upload to vogonsdrivers.. just not able to access it where I am at.

Yamaha modified setupds and drivers
Yamaha XG repository
YMF7x4 Guide
Aopen AW744L II SB-LINK

Reply 11 of 16, by cyclone3d

User metadata
Rank l33t++
Rank
l33t++

And now I have found at least some of the C/MS Software Developers' Disk and what looks like at least part of the original Sound Blaster Developers' Disk:
https://www.pcorner.com/list/MUSIC/SBD.ZIP/INFO/

Filename
SBD.ZIP
File size
320.14 KiB
Downloads
92 downloads
File license
Fair use/fair dealing exception
The C/MS Software Developers' Disk ================================== […]
Show full quote

The C/MS Software Developers' Disk
==================================

This disk contains information, drivers and tools to assist
software developers to create music and special effects for their
software using the C/MS music card or Game Blaster Card.

It also supports the C/MS music portion of the Sound Blaster Card.

There are four sub-directories in this disks :

1) CMS-MIDI :
this sub-directory contains information and programs on a
MIDI like driver for C/MS. This driver accepts MIDI commands
( key-on, key-off, etc) and plays them on the the C/MS card.

2) SEG :
This sub-directory contains information and programs on a
special effect generator, which helps you to create special
effects for your program using the C/MS card.

3) CMS-DRV :
This sub-directory contains information and programs on a
program-loadable CMS driver. This driver accepts the music
notations of the Creative Music System (.CMS files) and plays
them as a background task.

4) CMS-SMF :
This sub-directory contains information and programs on a
program-loadable MIDI driver that accepts Standard MIDI Files
(SMF files) and plays the SMF file as a background task.

For the Sound Blaster Software Developer's Disk:

SOUND BLASTER SOFTWARE DEVELOPER'S DISK ======================================== This disk consists of routines and […]
Show full quote

SOUND BLASTER SOFTWARE DEVELOPER'S DISK
========================================
This disk consists of routines and library functions for the
Sound Blaster Card. Software developers are welcome to incoporate
these routines into their programs. Creative Labs, Inc. will not
charge any licencing fees for the usage of these routines as long
as they are used for programs that supports the Sound Blaster or
the Game Blaster.

Software developers may create voice files using the VOXKIT disk.
Compression and silence packing of the voice files are provided
in the VOXKIT.

You may use the the JOINTVOC.EXE program to joint voice files
together.

If you wish to import voice files from other system, you may use
the VOC-HDR.EXE program in the VOXKIT disk to add a header to it.
After this the file can be loaded by VOXKIT for further use.

CT-VOICE DRIVER
---------------
The CT-VOICE.DRV is a program loadable voice driver that allows
your program to play digitized voice recorded from the VOXKIT.
It handles the memory page-break interrupt and other low level
tasks for you.

TEST-CTV.EXE is a sample program which calls the CT-VOICE.DRV to
input and output sound.

(See CREATIVE VOICE DRIVER Literature for details)

CHK-VF.EXE
----------
This program allows you to check the structure of a voice file.
It tells you the size, number of blocks, sampling rate and packing
schemes used by the voice file.

eg.
>CHK-VF marker.voc

(See "Creative Voice File Format" literature for detail of structure)

SBC-LIB
=======
(Sound Blaster Card Library Functions for Microsoft C)

This is a library of Sound Blaster functions for your Microsoft C
programs.

At this moment, only the function are available :

Card detection and Interrupt jumper detection

( See SBC-LIB.DOC in the \LIB\ sub-dir for details.)

DETECT (function)
================
(Sound Card Detection Functions for Microsoft C)

This is a sound card detection functions for your Microsoft C programs.
It is similar to the first function in SBC-LIB, but being smaller in
size, it can be used by those who just need to detect the presence of
either C/MS Card (Game Blaster) or Killer Card (Sound Blaster)

The only function available is Card detection.

( See DETECT.DOC in the \LIB\ sub-dir for details.)

CTV-MOD
=======

CTV-MOD.OBJ is an object file which is linkable to your Microsft C
programs.

Unlike CT-VOICE.DRV, it is a routine that accepts pure voice data,
without any header nor compression scheme.

The following functions are included :

1) ctv_detect : Card detection
2) ctv_speaker : On/Off DAC output to speaker
3) ctv_output : Output 8-bit data by DMA to DAC
4) ctv_pause : Pause the DMA output
5) ctv_continue : Continue the paused DMA output
6) ctv_halt : Halt the DMA output
7) ctv_uninstall : Uninstall, speaker output off

========== ************** ========

Yamaha modified setupds and drivers
Yamaha XG repository
YMF7x4 Guide
Aopen AW744L II SB-LINK

Reply 12 of 16, by cyclone3d

User metadata
Rank l33t++
Rank
l33t++

And here is the C/MS programming documentation that apparently came with the Sound Blaster 1.5 that had C/MS chips installed:
www.vcfed.org/forum/showthread.php?2383 ... tem-(C-MS)

Filename
CMS Programming Information.zip
File size
82.26 KiB
Downloads
108 downloads
File license
Fair use/fair dealing exception

Yamaha modified setupds and drivers
Yamaha XG repository
YMF7x4 Guide
Aopen AW744L II SB-LINK

Reply 13 of 16, by MobyGamer

User metadata
Rank Member
Rank
Member

Nice work!! I'd never seen the official docs before.

Your reward is the official Adlib programmer's reference, which I just scanned last week: ftp://ftp.oldskool.org/pub/drivers/adli ... %20Manual/

Reply 14 of 16, by cyclone3d

User metadata
Rank l33t++
Rank
l33t++

Thanks!

I had some other links I had found as well but they were blocked where I was.

Now that I have gone through them, I have found some more CMS and SB and AWE32 stuff:

This page has a bunch of stuff, including the documentation for the original version of the Sound Blaster Developers' Kit - a lot of the files are in .arj, so I am extracting and zipping up the ones I am posting here:
http://www.dcee.net/Files/Programm/Sound/

SBDEVKIT manual:

Filename
SBDEVKIT.zip
File size
47.62 KiB
Downloads
100 downloads
File license
Fair use/fair dealing exception

Windows Sound Blaster Dev Kit (no documentation)

Filename
SB_DEV_KIT_Windows.zip
File size
54.24 KiB
Downloads
86 downloads
File license
Fair use/fair dealing exception

Programming CMS Chips v1.0 (references "Programming the AdLib/Sound Blaster FM Music Chips Version 2.0")

Filename
CMSCHIPS.zip
File size
4.07 KiB
Downloads
93 downloads
File license
Fair use/fair dealing exception

Yamaha modified setupds and drivers
Yamaha XG repository
YMF7x4 Guide
Aopen AW744L II SB-LINK

Reply 15 of 16, by cyclone3d

User metadata
Rank l33t++
Rank
l33t++

Here are some links for development information and tools from the old Creative web site. Some of the downloads are even available here:

http://web.archive.org/web/19980501015146/htt … vcnr/guide.html

http://web.archive.org/web/19980501000142/htt … nr/adipfaq.html

http://web.archive.org/web/19980501000128/htt … nr/sbhwfaq.html

http://web.archive.org/web/19990220061944/htt … tp/ftp-dev.html

Yamaha modified setupds and drivers
Yamaha XG repository
YMF7x4 Guide
Aopen AW744L II SB-LINK

Reply 16 of 16, by SirNickity

User metadata
Rank Oldbie
Rank
Oldbie

Holy smokes, this is great. I was able to find the old Sound Blaster development kit because I knew it existed and what it was called. I wasn't sure what existed for the CMS given how early it was for Creative. All I had to go on was that quote from the unofficial docs (which I downloaded), and where the Nerdy Pleasures blog mentioned how Creative left out some features (like the envelope generator and the noise channel slaving to an oscillator.) Both of these imply that documentation existed, but there isn't anything in the 2nd Edition SBDK that I have, aside from a brief mention that CMS is "being phased out."

Really happy to see the code examples. There's often a delta between the documentation and the hardware, but code doesn't lie. 😁