Giter Club home page Giter Club logo

sdatstuff's Introduction

NCSF/SDAT Utilities
By Naram Qashat (CyberBotX) [[email protected]]

(If you need to email me, please include NCSF in the subject line.)

Special thanks to fincs for FeOS Sound System, as well as the DeSmuME
team for their open-source Nintendo DS emulator.

2SF Tags to NCSF Version History
--------------------------------
v1.0 - 2013-03-30 - Initial Version
v1.1 - 2012-03-30 - Added option to rename the NCSFs, requested by Knurek.
v1.2 - 2012-04-10 - Made it so a file is not overwritten when renaming if
                    a duplicate is found.
v1.3 - 2012-12-08 - Minor cleanup of PseudoReadFile to not use a pointer.

2SF to NCSF Version History
---------------------------
v1.0 - 2014-10-29 - Initial Version
v1.1 - 2012-12-08 - Minor cleanup of PseudoReadFile to not use a pointer.

NDS to NCSF Version History
---------------------------
v1.0 - 2013-03-25 - Initial Version
v1.1 - 2013-03-26 - Merged SDAT Strip's verbosity into the SDAT class'
                    Strip function.
                  - Modified how excluded SSEQs are handled when stripping.
                  - Corrected handling of files within an existing SDAT.
v1.2 - 2013-03-28 - Made timing to be on by default, with 2 loops.
                  - Added options to change the fade times.
v1.3 - 2013-03-30 - Only remove files from the destination directory that
                    were created by this utility, instead of all files.
                  - Slightly better file checking when copying from an
                    existing SDAT, will check by data only if checking by
                    filename and data doesn't give any results.
v1.4 - 2014-10-15 - Improved timing system by implementing the random,
                    variable, and conditional SSEQ commands.
v1.5 - 2014-10-26 - Save the PLAYER blocks in the SDATs as opposed to
                    stripping them.
                  - Detect if the NDS ROM is a DSi ROM and set the prefix
                    of the NCSFLIB accordingly.
                  - Fixed removal of output directory if there are no
                    SSEQs found.
v1.6 - 2014-11-07 - Added functionality for an SMAP-like file to be used
                    to include/exclude SSEQs.
v1.7 - 2014-12-09 - Added functionality to strip the SBNKs and SWARs of
                    the SDAT prior to saving it.
                  - Minor cleanup of PseudoReadFile to not use a pointer.

SDAT Strip Version History
--------------------------
v1.0 - 2013-03-25 - Initial Version
v1.1 - 2013-03-26 - Merged verbosity of SDAT stripping into the SDAT class
                    and removed the static Strip function from this.
                  - Copied NDS to NCSF's include/exclude handling to here.
v1.2 - 2014-10-25 - Save the PLAYER blocks in the SDATs as opposed to
                    stripping them.

SDAT to NCSF Version History
----------------------------
v1.0 - 2013-03-25 - Initial Version
v1.1 - 2013-03-28 - Made timing to be on by default, with 2 loops.
                  - Added options to change the fade times.
v1.2 - 2014-10-15 - Improved timing system by implementing the random,
                    variable, and conditional SSEQ commands.
v1.3 - 2014-12-08 - Minor cleanup of PseudoReadFile to not use a pointer.

These utilities are used to work with SDAT files from Nintendo DS ROMs. SDATs are
created through the Nintendo Nitro/TWL SDK for the DS. NCSF is a PSF-style music format
that uses the SDAT as it's "program".

Contains:
* 2SF Tags to NCSF v1.3 - A utility to copy tags from a 2SF set into an NCSF set.
*      2SF to NCSF v1.1 - A utility to take a 2SF set and create an NCSF set out of it.
*      NDS to NCSF v1.7 - A utility to take a Nintendo DS ROM and create an NCSF set out of it.
*       SDAT Strip v1.2 - A utility to take an SDAT and strip it of all unneccesary items.
                          (NOTE: Superceded by NDS to NCSF.)
*     SDAT to NCSF v1.3 - A utility to take an SDAT and create an NCSF out of it.
                          (NOTE: Superceded by NDS to NCSF.)
*       zlib DLL v1.2.8 - Required by 2SF Tags to NCSF, 2SF to NCSF, NDS to NCSF, and SDAT to NCSF.

WINDOWS
-------
For Windows, the binaries are included (these are command-line tools). If you do not
already have it, you will need the Microsoft Visual C++ 2010 Runtime installed. You
can obtain it here:

http://www.microsoft.com/en-us/download/details.aspx?id=5555

(NOTE: You will usually not require this runtime if you have Visual Studio installed,
or if you plan on installing Visual Studio. But you will need it if you do not have
Visual Studio installed.)

If you wish to compile these binaries under Windows yourself, you can do so with
Microsoft Visual Studio. You must use version 2010 or later. If you do not have
Microsoft Visual Studio, you can obtain the Express version of Microsoft Visual C++
from Microsoft, at:

http://www.microsoft.com/visualstudio/eng/downloads

You may use any Express version that is 2010 or later. Once you have Visual Studio
installed, you need to open the SDATStuff.sln file. If using a version of Visual
Studio later than 2010, you may be asked to upgrade the solution.

Of note, the utilities will not compile out of the box immediately. The zlib library
is also required. zlib can be obtained from here:

http://www.zlib.net/

You need to download the "compiled DLL" version.

Once you have this, you need to modify the value of zlibRootDir in common\common.props.
Just replace ZLIBFIXME with the directory to which you extracted the above file. Once
this has been done, you can compile the solution.

UNIX-LIKE OPERATING SYSTEMS
---------------------------
For Unix-like operating systems, you will need to compile the utilities yourself.
You will need a compiler that supports C++11, at the very least it's auto keyword
and the new return value syntax. For GCC, version 4.6 and later will work. For
Clang, nearly any version will work. You will also need the GNU version of Make.
This will usually be installed as either "make" or "gmake" depending. To build
the utilities, simply run "make" or "gmake" from this directory.

sdatstuff's People

Contributors

cyberbotx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

sdatstuff's Issues

Autotag BPM

Look for the tempo definition command and store the value in the tag data for the sequence.

Incorrect handling of notelengths of zero for finite samples

Notes with a note length of zero are incorrectly handled. They are often infinite, but what actually happens is that the note is allowed to play until the sample ends. Which doesn't happen if the sample is set to loop.

But some samples are not set to loop, yet they are played with a note length of zero. An example can be found in Plants vs Zombies in the end song (SEQ_BGM_ZOMBIES).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.