Free Web Hosting Provider - Web Hosting - E-commerce - High Speed Internet - Free Web Page
Search the Web

Back to my main page

SPC-FIX
version 1.00 (February 5, 2000)
© 2000 by Ismail "Slipgate" Saeed
isaeed@erols.com

Click to download latest version (1.00)

What follows is basically a reprint of the text documentation included with SPC-FIX.
E-mail with questions, comments, complaints, feedback, or anything else.

Disclaimer:

        There are no warranties expressed or implied on this program and what
it may do to your system.  It shouldn't do anything to you at all, but if it
does, I'm not responsible.

Purpose:

        This program eliminates the length and fade tags from newer SPC
files.  The purpose is if you, like me, like to listen to SPCs as you will
rather than obey a set timelimit, and if your player (like mine) does not
allow you to tell it to just ignore that time tag information.  This
eliminates the length and fader tags (the fader tag is how long the SPC
should be fading at its end, unused if there is no time tag) of an SPC file.
It will NOT modify an SPC file that does not have this information in it, and
will not harm or modify any non-SPC files it is run on.  It's "bulletproof"
(or so it would seem... I've got a version number on it mainly in case I need
to update it, but I haven't seen any reason to do so in all my testing).

        Please note, that I don't expect this to be considered an earth-
shattering program.  I wrote it as a quick thing over less than four hours to
serve my needs, and decided to release it in case it served yours as well.

How to use:

        This is a DOS command line based program.  You folks that like
Windows and are uncomfortable in DOS (Or if you are comfortable in DOS but
don't want to go to a DOS box to run this), never fear.

        FROM DOS:
        From a DOS command prompt, just type:

        spc-fix <filepath>

        where <filepath> is the path/filename of a file for the program
        to open.  If you don't specify one, it will merely display a message
        saying it requires one.  In this circumstance be SURE to type file
        and directory names in DOS shorthand, it is not designed to handle
        Windows' long filenames.

        FROM WINDOWS:
        Just drag an SPC file onto the program and let go of the mouse
        button.  That causes Windows to run the program with the file you
        dragged on to it as its <filepath>, basically, if you're
        unfamiliar with it.  It'll operate on that file like above.  If you
        run the program without specifying a file to it, it'll behave just
        like it would in the same case above.

What it does to a file, in exquisite detail, to assuage your fears:

        First it verifies that the specified file exists.  If it doesn't, it
reports an error and exits.  If the file exists and is usable, it checks it
to see if it's an SPC file.  If it isn't, it reports as much and exits.   If
it is, it checks to see if it needs this type of processing.  If not, it lets
you know and exits.  If it does need this type of processing, it does it, and
then tells you it has and exits.  Only in the last case does it EVER write to
the file in any way.  However, if you insist on keeping a backup of your file
first just in case, be my guest.

Advanced notes:

        This program returns ERRORLEVEL parameters you can react to, batch
file authors.  Here are what the ERRORLEVEL returns it gives signify:
0 - The SPC file mentioned is successfully found, opened, verified as an SPC
file, verified to have extended header information, and surgically altered in
the way this program was designed to do.  Basically, normal execution.
1 - No file was specified.
2 - File access problems (at ANY time during operation).  This can include
the file being unwritable-to because of protection or corruption.
3 - This file wasn't an SPC file.
4 - The file WAS an SPC file, but had no need for processing, either because
of no extended header information, or no time tag to worry about.

        On another note, this program is coded in assembly, not in any high
level language like C.  Just on an "if you want to know" basis.

Thanks to:

        Thanks to Matt Conte for being kind of cool :)

        Thanks to Joshua "TerraEpon" Kaufman, Andrew "Eyeglazer" Vant, and
Eric "Brainstrm2" Garneau for helping me debug and verify this program and
its work, or for other stuff that transpired during the time I worked on
coding this.

        Thanks to Anthony "Night Viper or Swedish Fish?" Soto for being as
disinterested as possible, as always :).

        Thanks to the SPCPLAY/SPCAMP/ZSNES authors for releasing the details
of the SPC file format in the documentation of SPCPLAY, which is what made me
able to write this program.