cyberbotx / sdatstuff Goto Github PK
View Code? Open in Web Editor NEWTools for working with SDATs and NCSFs
Tools for working with SDATs and NCSFs
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.
Look for the tempo definition command and store the value in the tag data for the sequence.
Like what do I open and how do I open?
When the matcher finds a sequence whose name doesn't match an existing rule it asks for what to do with the sequence. Allow editing the include/exclude list during that prompt.
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
).
The error occurs whenever I try to convert MKDS music files.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.