Naram Qashat [Sun, 21 Mar 2021 00:40:21 +0000 ]
Correct a few warnings Visual Studio was complaining about.
Naram Qashat [Sun, 21 Mar 2021 00:25:12 +0000 ]
Cleanup a few comments and strings.
Naram Qashat [Sun, 21 Mar 2021 00:05:50 +0000 ]
Use C++17 std::filesystem functions instead of my own.
Naram Qashat [Sat, 20 Mar 2021 23:00:24 +0000 ]
Remove now unnecessary using std::placeholders.
Naram Qashat [Sat, 20 Mar 2021 22:46:24 +0000 ]
Replace std::rand with RNG based on actual DS RNG.
(This also means the playback of songs with randomness in them will be deterministic now.)
Naram Qashat [Sat, 20 Mar 2021 21:57:33 +0000 ]
Correct size of file ID in INFOEntry structures to 32-bit.
Naram Qashat [Sat, 20 Mar 2021 21:45:09 +0000 ]
Replace std::not1 with a lamba.
Naram Qashat [Sat, 20 Mar 2021 08:37:51 +0000 ]
Ignore Visual Studio 2019's warning about using TerminateThread.
Naram Qashat [Sat, 20 Mar 2021 08:37:08 +0000 ]
Use std::make_unique where possible.
Naram Qashat [Sat, 20 Mar 2021 07:57:20 +0000 ]
Remove some now unnecessary codecvt lines.
Naram Qashat [Fri, 19 Mar 2021 22:52:14 +0000 ]
Move TagList's code to get tag order into its own function.
Also uses a lambda instead of binding.
Naram Qashat [Fri, 19 Mar 2021 22:51:40 +0000 ]
Ignore Visual Studio 2019's arithmetic overflow warning.
It is obnoxious and only in the IDE and not at compile-time.
Naram Qashat [Fri, 19 Mar 2021 20:25:21 +0000 ]
Replace memcpy/memset with std::copy_n/std::fill_n.
Naram Qashat [Fri, 19 Mar 2021 19:58:49 +0000 ]
Correct typos in the function names in the loads of GSF and SNSF.
(This probably came about from copying the code from the 2SF player and not fixing the names.)
Naram Qashat [Fri, 19 Mar 2021 19:54:35 +0000 ]
Remove the copy constructors from SBNK, SDAT and SSEQ.
(They were probably holdovers from copying the code from the NCSF creation tools.)
Naram Qashat [Fri, 19 Mar 2021 18:27:11 +0000 ]
A few more conversion changes:
* To go along with the previous change, XSFConfig now had internal get/set value functions that use type traits to choose between the enum and non-enum versions. (This also means I do not need to manually double-cast enums now.)
* Fix bug with the Windows API string conversions, so they do not include the trailing null byte in the output string.
* Added function to trim trailing 0s (and the decimal point if necessary) from a string that came from a double.
Naram Qashat [Fri, 19 Mar 2021 15:57:21 +0000 ]
Some conversion replacements:
* Replace the (w)stringify functions with the standard std::to_(w)string functions.
* Replace convertTo with versions that use type_traits to determine which standard string conversion function to call, as well as handle enums specically.
Naram Qashat [Fri, 19 Mar 2021 15:27:57 +0000 ]
Replace deprecated wstring_convert with Windows API functions.
Naram Qashat [Fri, 19 Mar 2021 14:58:12 +0000 ]
Remove last modification date from files.
(I never remember to update these and besides, GitHub history can show when they were last modified.)
Naram Qashat [Tue, 16 Mar 2021 02:34:25 +0000 ]
Various updates:
* Fix build with Visual Studio, updating projects to Visual Studio 2019 (as that is what I have installed).
* Changed C++ language standard to C++ 17.
* Add files for in_2sf's spu from Coda's recent commit.
* Add files for zlib now that it is being included as a submodule (removes the need for the zlib DLL as well).
* Remove common.props (due to the aforementioned zlib inclusion as well as the winamp headers also being in the project now).
* Minor NCSF file in the SSEQ player, the check for when to process tracks should've been >=, not >.
Naram Qashat [Fri, 12 Feb 2021 02:32:35 +0000 ]
Merge pull request
#5 from ahigerd/master
Update for modern compilers, update 2sf core, add MSVC cross-compile support
Adam Higerd [Fri, 12 Feb 2021 02:08:46 +0000 ]
use .PHONY instead of FORCE
Adam Higerd [Thu, 11 Feb 2021 23:32:11 +0000 ]
switch to git submodule for zlib
Adam Higerd [Thu, 11 Feb 2021 23:16:28 +0000 ]
2sf: fix JIT enable, fix sample rate
Adam Higerd [Thu, 11 Feb 2021 22:42:05 +0000 ]
fix mingw build, clean up new warnings
Adam Higerd [Thu, 11 Feb 2021 20:39:00 +0000 ]
add sharp interpolator option, fix makefile dependencies
Adam Higerd [Thu, 11 Feb 2021 20:36:17 +0000 ]
update for C++17 compliance, update to latest 2sf, add WINE cross-compile makefiles
Naram Qashat [Sat, 08 Aug 2020 03:27:08 +0000 ]
[Framework] Super minor cleanups.
Naram Qashat [Sat, 08 Aug 2020 03:25:58 +0000 ]
[NCSF] Super minor cleanups.
Naram Qashat [Sat, 08 Aug 2020 03:24:33 +0000 ]
[NCSF] Minor possible fix in sample increment
* While I am unsure if this would've ever happened, this will prevent the locations from being out-of-bounds.
Naram Qashat [Sat, 08 Aug 2020 03:22:39 +0000 ]
[NCSF] Enable portamento when setting those registers.
(Thanks to Coda Highland for the fix.)
Naram Qashat [Sat, 08 Aug 2020 03:18:16 +0000 ]
[NCSF] <stdexcept> is actually needed...
(It probably never triggered any errors in the past because of it being implicitly included by some other header file.)
Naram Qashat [Fri, 31 Jul 2020 14:00:12 +0000 ]
[NCSF] Fix PSG output.
* Changed the base timer and actually utilize the note number from the note definition even for PSG. Thanks to Kurausukun for informing me about the issue and helping to provide a sample to demonstrate the issue.
* Correct the frequency output in the debug sound view (using DeSmuME's method directly resulted in frequencies that were 3 octaves higher than what they should have been).
Naram Qashat [Tue, 07 Jul 2020 03:59:19 +0000 ]
[NCSF] Small typo (or rather non-removal) in the previous fix
Naram Qashat [Tue, 07 Jul 2020 03:01:09 +0000 ]
Merge remote-tracking branch 'origin/master'
Naram Qashat [Tue, 07 Jul 2020 03:01:02 +0000 ]
Prevent .vs from being committed
Naram Qashat [Tue, 07 Jul 2020 00:54:59 +0000 ]
[NCSF] Apply channel modulation fix from fincs
Naram Qashat [Fri, 10 Nov 2017 17:04:31 +0000 ]
Merge pull request
#2 from zeromus/patch-1
Update XSFPlayer_2SF.cpp
zeromus [Thu, 09 Nov 2017 21:15:56 +0000 ]
Update XSFPlayer_2SF.cpp
Make it substantially more obvious how to hack the 2sf player to output at a different samplerate by removing the secret implicit 44100 based calculation
Naram Qashat [Wed, 10 Dec 2014 04:06:40 +0000 ]
[NCSF] Update version and README for the previous change.
Naram Qashat [Sat, 06 Dec 2014 23:41:35 +0000 ]
Fix unsigned underflow with a loop offset of 0 on an ADPCM SWAV.
Also a minor optimization when reading the SWAVs.
Naram Qashat [Sat, 08 Nov 2014 04:30:12 +0000 ]
[NCSF] Update README file for the previous 2 commits.
Naram Qashat [Mon, 27 Oct 2014 08:15:11 +0000 ]
[NCSF] Applied sinc modification from kode54:
Sinc mode should not scale the window, just the sinc pulse.
Naram Qashat [Sun, 26 Oct 2014 03:12:53 +0000 ]
[NCSF] Utilize the PLAYER blocks in the SDAT if they exist.
Backwards compatibility is kept by treating the lack of PLAYER info as
if all channels are able to be allocated.
Naram Qashat [Fri, 24 Oct 2014 23:58:46 +0000 ]
[NCSF] Very minor cleanups.
Naram Qashat [Fri, 24 Oct 2014 08:28:29 +0000 ]
[2SF] A few commits from the asmjit project.
Naram Qashat [Fri, 24 Oct 2014 03:27:37 +0000 ]
[NCSF] Bump version number for the previous fixes.
Naram Qashat [Fri, 24 Oct 2014 03:21:37 +0000 ]
Adding a .gitignore to stop git from trying to version certain files.
Naram Qashat [Fri, 24 Oct 2014 03:19:16 +0000 ]
[NCSF] Documented what FSS functions were originally used.
* Changed default of modDelay to 0.
* Also minor cleanup.
Naram Qashat [Fri, 24 Oct 2014 03:05:57 +0000 ]
[NCSF] Reversed the order of the PSG and Noise channel allocations.
This was suggested by fincs as the proper way to fix channels being
cutoff incorrectly.
(Also moved volume assignment so it was less duplicated.)
Naram Qashat [Fri, 24 Oct 2014 03:03:52 +0000 ]
[NCSF] Changed sinc interpolation to a Nuttall 3-term Window on suggestion from kode54.
Naram Qashat [Fri, 24 Oct 2014 01:52:35 +0000 ]
[NCSF] Fixed unintentional infinite loop in the previous attack rate calculation fix.
Naram Qashat [Fri, 24 Oct 2014 01:40:50 +0000 ]
[NCSF] Changes to the Sound View debug window:
* No longer has the hold/busy items.
* Source Address replaced with State.
Naram Qashat [Wed, 22 Oct 2014 23:44:45 +0000 ]
[NCSF] Partial fix to channels being unintentionally cut off.
Naram Qashat [Wed, 22 Oct 2014 21:55:03 +0000 ]
[NCSF] Minor correction to the attack rate calculation.
(Basically, it should never allow the same volume level as the previous
calculation.)
Naram Qashat [Wed, 22 Oct 2014 21:30:48 +0000 ]
[NCSF] Corrected attack rate calculation.
Naram Qashat [Mon, 20 Oct 2014 06:33:26 +0000 ]
[NCSF] Minor edit with the debug Sound View so it doesn't use a reference.
Naram Qashat [Sat, 18 Oct 2014 08:35:07 +0000 ]
[NCSF] Bump version number for the previous volume fixes.
Naram Qashat [Sat, 18 Oct 2014 08:32:32 +0000 ]
[NCSF] One more volume fix, the default volume is 127, not 64.
Naram Qashat [Sat, 18 Oct 2014 08:20:53 +0000 ]
[NCSF] Correctly handle the SSEQ volume from the INFO block.
Naram Qashat [Thu, 16 Oct 2014 05:43:49 +0000 ]
[NCSF] REALLY remove minor instance of variable shadowing.
Naram Qashat [Thu, 16 Oct 2014 00:28:01 +0000 ]
[NCSF] Remove minor instance of variable shadowing.
Naram Qashat [Wed, 15 Oct 2014 22:03:10 +0000 ]
[NCSF] Move track allocation into the SSEQ command handler.
This was suggested by fincs after I found some sequences that appeared
to do track allocations later in them than expected originally.
Naram Qashat [Tue, 14 Oct 2014 01:21:03 +0000 ]
[NCSF] Minor code changes to reduce code duplication.
* Made a function in the Override struct to centralize where it
determines whether to use the override value or not.
* Made a function that returns the number of bytes that a command needs,
and used that to remove all the conditionals for processing a command to
instead handle that within the IF command itself.
Thanks to fincs and Henke37 for the suggestions to do this.
Naram Qashat [Mon, 13 Oct 2014 22:00:29 +0000 ]
[NCSF] Implemented the random, variable, and conditional commands. Also fixed loop counter.
Naram Qashat [Tue, 07 Oct 2014 21:45:05 +0000 ]
Reverted the sound changes back to the original FSS code, but with the fix to clamp the total volume.
Also commented out the code that uses the SSEQ's volume, it seems as if
the DS doesn't use it so I probably shouldn't be using it either.
Naram Qashat [Mon, 06 Oct 2014 00:17:36 +0000 ]
[NCSF] Removed the Cnv_Scale function as it seemed to cause sounds to be too loud in some cases.
Naram Qashat [Mon, 06 Oct 2014 00:00:09 +0000 ]
[NCSF] Fix volume issues with a little help from the Nintendo DS SDK.
Also added a clone of DeSmuME's Sound View that is only build during a
debug build, which helped to identify the above issues.
Naram Qashat [Sun, 28 Sep 2014 19:30:52 +0000 ]
Made note of update to zlib 1.28. (Should actually say 1.2.8, but I'll fix that in the future.)
Naram Qashat [Sun, 28 Sep 2014 18:43:16 +0000 ]
[NCSF] Should've updated the version number before.
Naram Qashat [Sun, 28 Sep 2014 04:13:39 +0000 ]
[NCSF] Minor comment fix from the previous NCSF commit.
Naram Qashat [Sun, 28 Sep 2014 04:12:43 +0000 ]
[2SF] Update from asmjit.
Naram Qashat [Sun, 28 Sep 2014 04:07:18 +0000 ]
[NCSF] Interpolation changes:
* Removed Cosine, 4-Point B-Spline, 6-Point B-Spline, and 6-point
Osculating.
* Added 4-Point Legrange and 6-Point Legrange.
* Changed wording of the Sinc interpolation to mention that it is
16-point.
Naram Qashat [Thu, 25 Sep 2014 17:08:47 +0000 ]
Removing this file as it doesn't help since common.props is already tracked, trying another route.
Naram Qashat [Thu, 25 Sep 2014 16:58:31 +0000 ]
Trying to get git to ignore changes I make to common.props in the future (have to be able to change it to build the DLLs).
Naram Qashat [Thu, 25 Sep 2014 16:39:52 +0000 ]
This should've never got committed as it was, oops.
Naram Qashat [Thu, 25 Sep 2014 16:28:21 +0000 ]
* Small Makefile changes.
* Removed a couple files that were not being used.
* Cleanups found with clang's -Weverything (and shutting it up about a
lot of things that were ridiculous, as well as ignoring some of the
warnings still coming up).
Naram Qashat [Wed, 24 Sep 2014 18:00:04 +0000 ]
[2SF] Minor edit of a preprocessor line.
Naram Qashat [Wed, 24 Sep 2014 17:58:55 +0000 ]
Lots of changes in regards to strings, as follows:
* Removed my custom String class, as well as removed the really old
Unicode ConvertUTF, the UTF Converter, and the UTF Encode/Decode
functions.
* Replaced the above with using standard C++ std::wstring_convert and
std::codecvt_utf8.
* Added headers adapted from llvm's libc++ project for allowing the
above C++ classes to exist with GCC and Clang when libc++ isn't being
used.
* Used std::string over std::wstring whenever possible.
* Added header adapted from llvm's libc++ project to create special
versions of the ifstream and ofstream classes that would utilize _wfopen
on non-MSVC Windows compilers, so those compilers could access files on
Windows that use characters outside the current codepage.
* Removed the -static-libgcc and -static-libstdc++ flags from the
Makefile for non-MSVC builds. The generated DLLs will require extra DLLs
from either Cygwin or MinGW (whichever is used to compile), I've only
tested with MinGW and for some reason they crash Winamp on exit, I have
no idea why.
Naram Qashat [Mon, 22 Sep 2014 15:11:14 +0000 ]
Some recent fixes from asmjit.
Naram Qashat [Fri, 19 Sep 2014 00:02:22 +0000 ]
Replaced the Makefile with one that handles things better.
* g++ compiled DLLs seem to not be seen by Winamp when the
-static-libgcc and -static-libstdc++ flags are used.
* clang++ compiled DLLs seem to cause Winamp to crash on exit.
Naram Qashat [Wed, 17 Sep 2014 23:51:45 +0000 ]
* Fixes for gcc and clang (while they can compile the code, the DLLs made aren't functional, but oh well).
* [2SF] Used more up-to-date asmjit, despite the ugly looking code.
Naram Qashat [Mon, 15 Sep 2014 18:27:18 +0000 ]
[GSF] Copied a few things from kode54's viogsf.
Naram Qashat [Mon, 08 Sep 2014 20:57:24 +0000 ]
Fix compile issue with the last commit.
Naram Qashat [Mon, 08 Sep 2014 20:52:49 +0000 ]
Use std::copy_n/std::fill_n instead of std::copy/std::fill where possible.
Naram Qashat [Mon, 08 Sep 2014 19:06:52 +0000 ]
Minor cleanups in the framework.
Naram Qashat [Mon, 08 Sep 2014 18:51:19 +0000 ]
A few more cases of using #pragma once instead of include guards.
Naram Qashat [Mon, 08 Sep 2014 18:47:36 +0000 ]
Use #pragma once instead of include guards.
Naram Qashat [Mon, 08 Sep 2014 18:16:54 +0000 ]
[SNSF] Make the SNSF sinc resampler use Lanczos instead.
Naram Qashat [Mon, 08 Sep 2014 18:16:23 +0000 ]
Somehow I've had the wrong include directory in the project files all this time, and thus was missing a file as well. Oops.
Naram Qashat [Mon, 08 Sep 2014 17:53:30 +0000 ]
[2SF] Minor template removal.
Naram Qashat [Mon, 08 Sep 2014 16:20:28 +0000 ]
Updating the VBA-M code to revision 1231.
Naram Qashat [Tue, 17 Jun 2014 14:40:29 +0000 ]
Reverted Sinc interpolation back to the Lanczos window.
Naram Qashat [Tue, 28 May 2013 02:34:22 +0000 ]
[SNSF] Replaced most uses of fill/copy with fill_n/copy_n, and a few other minor code cleanups.
Naram Qashat [Thu, 23 May 2013 10:02:16 +0000 ]
[SNSF] Massive code cleanup, as well as removing as much unused code/variables as possible.
Naram Qashat [Thu, 16 May 2013 23:35:37 +0000 ]
[GSF] Minor changes.
Naram Qashat [Thu, 16 May 2013 06:09:56 +0000 ]
[GSF] Somehow these were not committed earlier.
Naram Qashat [Thu, 16 May 2013 05:25:34 +0000 ]
[GSF] Some more code cleanup, also removed a few files that were unneeded.
Naram Qashat [Tue, 14 May 2013 05:07:18 +0000 ]
[GSF] Massive code cleanup.
(As an aside, blargg's code style makes me go blarg myself.)
Naram Qashat [Fri, 10 May 2013 23:31:06 +0000 ]
[GSF] Removed Types.h because all it really was doing now was including stdint.