2016-03-01 15:47:10 +00:00
|
|
|
Game_Music_Emu Change Log
|
|
|
|
-------------------------
|
|
|
|
|
2016-12-16 20:33:44 +00:00
|
|
|
Game_Music_Emu 0.6.1
|
|
|
|
--------------------
|
|
|
|
|
2016-12-16 20:51:53 +00:00
|
|
|
- Moved repository to Bitbucket since Google Code announced they would
|
|
|
|
shutdown this year.
|
|
|
|
|
2016-12-16 20:33:44 +00:00
|
|
|
- Packaging improvements:
|
|
|
|
- Honor $LIB_SUFFIX for installed pkg-config metadata.
|
2016-12-16 20:51:53 +00:00
|
|
|
- Support setting BUILD_SHARED_LIBS to OFF to build libgme as a static
|
|
|
|
library. (Pass -DBUILD_SHARED_LIBS=OFF when running cmake).
|
|
|
|
Thanks to lachs0r.
|
2016-12-16 20:33:44 +00:00
|
|
|
|
2016-03-01 15:47:10 +00:00
|
|
|
Game_Music_Emu 0.6.0
|
|
|
|
--------------------
|
|
|
|
|
|
|
|
- Note: A 0.5.6 release was referenced but never tagged or packaged.
|
|
|
|
|
|
|
|
- SPC improvements:
|
|
|
|
- Switched to newer snes_spc 0.9.0 for SPC emulation. Uses fast DSP.
|
|
|
|
- Fixed Spc_Emu::gain().
|
|
|
|
- Fixed support for files <0x10200 bytes.
|
|
|
|
|
|
|
|
- Other bugfixes:
|
|
|
|
- Fixed a couple of GBS bugs, one involving access of memory after
|
|
|
|
realloc.
|
|
|
|
- Blip_Buffer works on systems where 'double' is a single-precision
|
|
|
|
floating-point type.
|
|
|
|
- Fix uninitialized buffer size in dual_resampler.
|
|
|
|
- Compilation warnings squashed out as of clang 3.3-pre and gcc 4.7.2.
|
|
|
|
|
|
|
|
- API changes/additions:
|
|
|
|
- Removed documentation of C++ interface, as the C interface in gme.h is
|
|
|
|
the only supported one.
|
|
|
|
- Added gme_enable_accuracy() for enabling more accurate sound emulation
|
|
|
|
options (currently affects SPC only).
|
|
|
|
|
|
|
|
- Build system improvements:
|
|
|
|
- Add pkg_config support.
|
|
|
|
- Fix build on case-insensitive systems.
|
|
|
|
- Allow for install on Cygwin.
|
|
|
|
- Fix install on multilib systems, such as many 64-bit distros (CMake must
|
|
|
|
be able to figure out your system's libsuffix, if any).
|
|
|
|
- C++ implementation symbols are not leaked into the resultant library
|
|
|
|
file (requires symbol visibility support).
|
|
|
|
|
|
|
|
- Sample player improvements:
|
|
|
|
- Can toggle fast/accurate emulation (with the 'A' key).
|
|
|
|
|
|
|
|
Game_Music_Emu 0.5.5
|
|
|
|
--------------------
|
|
|
|
- CMake build support has been added. You can build Game_Music_Emu as
|
|
|
|
a shared library and install it so that you do not have to include your
|
|
|
|
own copy if you know libgme will be present on your target system.
|
|
|
|
Requires CMake 2.6 or higher.
|
|
|
|
|
|
|
|
|
|
|
|
Game_Music_Emu 0.5.2
|
|
|
|
--------------------
|
|
|
|
- *TONS* of changes and improvements. You should re-read the new header
|
|
|
|
files and documentation as the changes will allow you to simplify your
|
|
|
|
code a lot (it might even be simpler to just rewrite it). Existing code
|
|
|
|
should continue to work without changes in most cases (see Deprecated
|
|
|
|
features in gme.txt).
|
|
|
|
|
|
|
|
- New file formats: AY, HES, KSS, SAP, NSFE
|
|
|
|
|
|
|
|
- All-new comprehensive C interface (also usable from C++). Simplifies
|
|
|
|
many things, especially file loading, and brings everything together in
|
|
|
|
one header file (gme.h).
|
|
|
|
|
|
|
|
- Information tags and track names and times can be accessed for all
|
|
|
|
game music formats
|
|
|
|
|
|
|
|
- New features supported by all emulators: end of track fading,
|
|
|
|
automatic silence detection, adjustable song tempo, seek to new time in
|
|
|
|
track
|
|
|
|
|
|
|
|
- Updated mini player example to support track names and times, echo,
|
|
|
|
tempo, and channel muting, and added visual waveform display
|
|
|
|
|
|
|
|
- Improved configuration to use blargg_config.h, which you can modify
|
|
|
|
and keep when you update to a newer libary version. Includes flag for
|
|
|
|
library to automatically handle gzipped files using zlib (so you don't
|
|
|
|
need to use Gzip_File_Reader anymore).
|
|
|
|
|
|
|
|
- GBS: Fixed wave channel to not reset waveform when APU is powered off
|
|
|
|
(affected Garfield). Also improved invalid bank selection (affected Game
|
|
|
|
& Watch and others).
|
|
|
|
|
|
|
|
- VGM: Added support for alternate noise shifter register
|
|
|
|
configurations, used by other systems like the BBC Micro.
|
|
|
|
|
|
|
|
- SPC: Removed IPL ROM dump from emulator, as none of the SPC files I
|
|
|
|
scanned needed it, and an SPC file can include a copy if necessary. Also
|
|
|
|
re-enabled supposed clamping in gaussian interpolation between the third
|
|
|
|
and fourth lookups, though I don't know whether it matters
|
|
|
|
|
|
|
|
- Added Music_Emu::load_mem() to use music data already in memory
|
|
|
|
(without copying it)
|
|
|
|
|
|
|
|
- Added Music_Emu::warning(), which reports minor problems when loading
|
|
|
|
and playing a music file
|
|
|
|
|
|
|
|
- Added Music_Emu::set_gain() for uniform adjustment of gain. Can only
|
|
|
|
be set during initialization, so not useful as a general volume control.
|
|
|
|
|
|
|
|
- Added custom operator new to ensure that no exceptions are thrown in
|
|
|
|
the library (I'd use std::nothrow if it were part of pre-ISO (ARM) C++)
|
|
|
|
|
|
|
|
- Added BLIP_BUFFER_FAST flag to blargg_config.h to use a lower quality
|
|
|
|
bandlimited synthesis in "classic" emulators, which might help
|
|
|
|
performance on ancient processors (measure first!). Don't use this
|
|
|
|
unless absolutely necessary, as quality suffers.
|
|
|
|
|
|
|
|
- Improved performance a bit for x86 platforms
|
|
|
|
|
|
|
|
- Text files now in DOS newline format so they will open in Notepad
|
|
|
|
properly
|
|
|
|
|
|
|
|
- Removed requirement that file header structures not have any padding
|
|
|
|
added to the end
|
|
|
|
|
|
|
|
- Fixed common bug in all CPU emulators where negative program counter
|
|
|
|
could crash emulator (occurred during a negative branch from the
|
|
|
|
beginning of memory). Also fixed related bug in Z80 emulator for
|
|
|
|
IX/IY+displacement mode.
|
|
|
|
|
|
|
|
- Eliminated all warnings when compiling on gcc 4.0. The following
|
|
|
|
generates no diagnostics:
|
|
|
|
|
|
|
|
gcc -S gme/*.cpp -o /dev/null -ansi -fno-gnu-keywords
|
|
|
|
-fno-nonansi-builtins -pedantic -W -Wabi -Wall -Wcast-align
|
|
|
|
-Wcast-qual -Wchar-subscripts -Wdisabled-optimization -Werror
|
|
|
|
-Winline -Wlong-long -Wmultichar -Winvalid-offsetof
|
|
|
|
-Wnon-virtual-dtor -Woverloaded-virtual -Wparentheses
|
|
|
|
-Wpointer-arith -Wredundant-decls -Wreorder -Wsign-compare
|
|
|
|
-Wsign-promo -Wunknown-pragmas -Wwrite-strings
|
|
|
|
|
|
|
|
|
|
|
|
Game_Music_Emu 0.3.0
|
|
|
|
--------------------
|
|
|
|
- Added more demos, including music player using the SDL multimedia
|
|
|
|
library for sound, and improved documentation
|
|
|
|
|
|
|
|
- All: Improved interface to emulators to allow simpler setup and
|
|
|
|
loading. Instead of various init() functions, all now support
|
|
|
|
set_sample_rate( long rate ) and load( const char* file_path ).
|
|
|
|
|
|
|
|
- All: Removed error return from start_track() and play(), and added
|
|
|
|
error_count() to get the total number of emulation errors since the
|
|
|
|
track was last started. See demos for examples of new usage.
|
|
|
|
|
|
|
|
- All: Fixed mute_voices() muting to be preserved after loading files
|
|
|
|
and starting tracks, instead of being cleared as it was whenever a track
|
|
|
|
was started
|
|
|
|
|
|
|
|
- VGM: Rewrote Vgm_Emu to support Sega Genesis/Mega Drive FM sound at
|
|
|
|
any sample rate with optional FM oversampling, support for alternate
|
|
|
|
YM2612 sound cores, and support for optional YM2413
|
|
|
|
|
|
|
|
- VGM: Added tempo control, useful for slowing 60Hz NTSC Sega Genesis
|
|
|
|
music to 50Hz PAL
|
|
|
|
|
|
|
|
- VGM: Removed Vgm_Emu::track_data(), since I realized that this
|
|
|
|
information is already present in the VGM header (oops!)
|
|
|
|
|
|
|
|
- GYM: Changed Gym_Emu::track_length() operation (see Gym_Emu.h)
|
|
|
|
|
|
|
|
- NSF: Added support for Sunsoft FME-7 sound chip used by Gimmick
|
|
|
|
soundtrack
|
|
|
|
|
|
|
|
- NSF: Fixed Namco 106 problems with Final Lap and others
|
|
|
|
|
|
|
|
- Moved library sources to gme/ directory to reduce clutter, and merged
|
|
|
|
boost/ functionality into blargg_common.h
|
|
|
|
|
|
|
|
- Added Gzip_File_Reader for transparently using gzipped files
|
|
|
|
|
|
|
|
|
|
|
|
Game_Music_Emu 0.2.4
|
|
|
|
--------------------
|
|
|
|
- Created a discussion forum for problems and feedback:
|
|
|
|
http://groups-beta.google.com/group/blargg-sound-libs
|
|
|
|
|
|
|
|
- Changed error return value of Blip_Buffer::sample_rate() (also for
|
|
|
|
Stereo_Buffer, Effects_Buffer, etc.) to blargg_err_t (defined in
|
|
|
|
blargg_common.h), to make error reporting consistent with other
|
|
|
|
functions. This means the "no error" return value is the opposite of
|
|
|
|
what it was before, which will break current code which checks the error
|
|
|
|
return value:
|
|
|
|
|
|
|
|
// current code (broken)
|
|
|
|
if ( !buf.sample_rate( samples_per_sec ) )
|
|
|
|
out_of_memory();
|
|
|
|
|
|
|
|
// quick-and-dirty fix (just remove the ! operation)
|
|
|
|
if ( buf.sample_rate( samples_per_sec ) )
|
|
|
|
out_of_memory();
|
|
|
|
|
|
|
|
// proper fix
|
|
|
|
blargg_err_t error = buf.sample_rate( samples_per_sec );
|
|
|
|
if ( error )
|
|
|
|
report_error( error );
|
|
|
|
|
|
|
|
- Implemented workaround for MSVC++ 6 compiler limitations, allowing it
|
|
|
|
to work on that compiler again
|
|
|
|
|
|
|
|
- Added sample clamping to avoid wrap-around at high volumes, allowing
|
|
|
|
higher volume with little distortion
|
|
|
|
|
|
|
|
- Added to-do list and design notes
|
|
|
|
|
|
|
|
- Added Music_Emu::skip( long sample_count ) to skip ahead in current
|
|
|
|
track
|
|
|
|
|
|
|
|
- Added Gym_Emu::track_length() and Vgm_Emu::track_length() for
|
|
|
|
determining the length of non-looped GYM and VGM files
|
|
|
|
|
|
|
|
- Partially implemented DMC non-linearity when its value is directly set
|
|
|
|
using $4011, which reduces previously over-emphasized "popping" of
|
|
|
|
percussion on some games (TMNT II in particular)
|
|
|
|
|
|
|
|
- Fixed Fir_Resampler, used for SPC and GYM playback (was incorrectly
|
|
|
|
using abs() instead of fabs()...argh)
|
|
|
|
|
|
|
|
- Fixed SPC emulation bugs: eliminated clicks in Plok! soundtrack and
|
|
|
|
now stops sample slightly earlier than the end, as the SNES does. Fixed
|
|
|
|
a totally broken CPU addressing mode.
|
|
|
|
|
|
|
|
- Fixed Konami VRC6 saw wave (was very broken before). Now VRC6 music
|
|
|
|
sounds decent
|
|
|
|
|
|
|
|
- Fixed a minor GBS emulation bug
|
|
|
|
|
|
|
|
- Fixed GYM loop point bug when track was restarted before loop point
|
|
|
|
had been reached
|
|
|
|
|
|
|
|
- Made default GBS frequency equalization less muffled
|
|
|
|
|
|
|
|
- Added pseudo-surround effect removal for SPC files
|
|
|
|
|
|
|
|
- Added Music_Emu::voice_names() which returns names for each voice.
|
|
|
|
|
|
|
|
- Added BLARGG_SOURCE_BEGIN which allows custom compiler options to be
|
|
|
|
easily set for library sources
|
|
|
|
|
|
|
|
- Changed assignment of expansion sound chips in Nsf_Emu to be spread
|
|
|
|
more evenly when using Effects_Buffer
|
|
|
|
|
|
|
|
- Changed 'size_t' values in Blip_Buffer interface to 'long'
|
|
|
|
|
|
|
|
- Changed demo to generate a WAVE sound file rather than an AIFF file
|
|
|
|
|
|
|
|
|
|
|
|
Game_Music_Emu 0.2.0
|
|
|
|
--------------------
|
|
|
|
- Redid framework and rewrote/cleaned up emulators
|
|
|
|
|
|
|
|
- Changed licensing to GNU Lesser General Public License (LGPL)
|
|
|
|
|
|
|
|
- Added Sega Genesis GYM and Super Nintendo SPC emulators
|
|
|
|
|
|
|
|
- Added Namco-106 and Konami VRC6 sound chip support to NSF emulator
|
|
|
|
|
|
|
|
- Eliminated use of static mutable data in emulators, allowing
|
|
|
|
multi-instance safety
|
|
|
|
|
|
|
|
|
|
|
|
Game_Music_Emu 0.1.0
|
|
|
|
--------------------
|
|
|
|
- First release
|