Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
   Below is the original readme.txt from 1999 when I released the
   code to public.

S3MLIB v1.0, a small 100% Assembler S3M-module player for GUS (and SB?)


DISCLAIMER (or something like that)
  You can use this for anything you want, except ripping it and saying
  that it's your own code. I like getting greetings a lot, too. :)
  If this player won't do what it's supposed to do (play a song), it's
  not my fault. Nor will I be liable for any damages this program could
  do (Yes, if you kill your hamster in frustration of using this player,
  I'm not to blame.)

  Very easy. :) See 'asmtest.asm' to see an example on how to use it
  in assembler programs linked with PMODE/W. If you want to use Watcom C,
  then check out 'wctest.c' for an example on how to do that. Use the
  batch files 'asmmake.bat' and 'wcmake.bat' to build the examples.
  You can also choose which drivers are compiled to the main library
  by editing 's3mconf.asm'. Not much to edit there, really, as that
  SB support is not finished. Also, sorry for not including an example
  on how to sync with music. It's not very difficult, though. :)

  I started developing this player in summer 1995 for our game
  project that was never really even started. The code was working
  in winter 1996 and it was used for our 64KB intro 'Pallo' that was
  hastily made in a few days before ASM96. After that, I tried to revise
  the code to support SB and fix some small glitches but I somehow lost
  interest when Gravis announced their withdrawal from the sound card
  market. Now, on spring 1999, I'm releasing this source code in case
  someone still needs a solid GUS-only S3M player. If you use this code
  for something, please e-mail me; knowing that someone uses my code
  would make me really happy. :)

 * You may find some comments in finnish. They're probably not very
   useful anyway, so just forget them :)

 * The timer reprogramming is ugly and messes up the system clock...

 * "Exception 00"s in some _rare_ occasions. Control-E by Dune/Orange does
   this in the middle of the song on pattern 03. Suspiciously, that
   pattern is completely empty. However, I chopped the song into four
   patterns, one of which is 03. This didn't give the error - it comes
   only when playing the full song. Weird...

 * GUS PnP cards don't seem to work with the player. Don't know why. I've
   tested this player on each of my Ultrasounds (Classic, MAX, Extreme)
   without any problems. If anyone knows something that might help, mail
   me. I modified the GF1 reset routine a bit, so it might work better

 * I don't really have time to mess with this anymore, so if someone
   would like to finish the SB support or do some bugfixes, go right
   ahead. Release your own versions if you please, even. Just tell me
   about it first. :)

 * Ultrasound is discontinued... Sniff.. :(

 * Fix that timer thing. It's no fun at all.

 * SB-support (started it already, but didn't have time to actually
   implement it). Anyone want to finish it? :)

 * Autodetect soundcards

  Brainpower        -   Did some testing with his GUS PnP and also gave some
                        clues on how to code for a SB.
  Salomon           -   For making some cool S3Ms and for testing with his
                        older revision GUS MAX.
  FreddyV/Useless   -   For releasing USMP, which I eyeballed a bit while
                        fixing that GF1 reset thing. Hope it works better...
  Advanced Gravis   -   For the excellent sound card that still sounds great
                        after so many years.


Protected mode S3M module player for Gravis Ultrasound cards






No releases published


No packages published