mirror of
https://github.com/daniel5151/ANESE.git
synced 2025-04-02 10:32:00 -04:00
I started looking into how to make the APU, and boy, let me tell ya, it's going to be a massive undertaking. Undoubtedly a fun undertaking, but still... Since it's a personal goal to get Super Mario Bros 2 running before new years (after all, that game has won game-of-the-year i don't even know _how_ many years in a row), i've decided to just use Blargg's venerable `nes_snd_emu` library for now. It took some wrestling, it it's in, and it works! Almost. I still don't know why enabling the Frame IRQ kills most games, but i'll look into that! Welp, on to bigger and better things! Namely: MMC1, which will give me Zelda and... Super Mario Bros 2!
132 lines
3.8 KiB
Text
Executable file
132 lines
3.8 KiB
Text
Executable file
Nes_Snd_Emu Change Log
|
|
----------------------
|
|
|
|
Nes_Snd_Emu 0.1.7
|
|
-----------------
|
|
- Created discussion forum: http://groups.google.com/group/blargg-sound-libs
|
|
|
|
- Added simplified version of APU to make it easy to get started
|
|
|
|
- Added Konami VRC6 and Namco 106 sound chip emulators
|
|
|
|
- Added support for APU's non-linear output
|
|
|
|
- Added demo of using SDL sound, along with helpful Sound_Queue
|
|
|
|
- Improved documentation
|
|
|
|
- Redid state snapshot support
|
|
|
|
|
|
Nes_Snd_Emu 0.1.5
|
|
-----------------
|
|
- Changed licensing to GNU Lesser General Public License (LGPL)
|
|
|
|
- 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)
|
|
|
|
- Implemented workaround for MSVC++ 6 compiler limitations, allowing it to work
|
|
on that compiler again
|
|
|
|
- Changed error return value of Blip_Buffer::sample_rate() 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 );
|
|
|
|
- Added sample clamping to Blip_Buffer::read_samples(), allowing higher volume
|
|
with little distortion
|
|
|
|
- Changed 'size_t' values in Blip_Buffer interface to 'long'
|
|
|
|
- Changed demo to generate a WAVE sound file rather than an AIFF file
|
|
|
|
- Updated to Blip_Buffer 0.3.2
|
|
|
|
|
|
Nes_Snd_Emu 0.1.4
|
|
-----------------
|
|
- Moved NSF player-related modules to Game_Music_Emu library
|
|
|
|
- Added note about compiler optimizer bugs and workaround for one that was
|
|
found
|
|
|
|
- Nes_Apu::write_register() now takes the actual memory address, rather than
|
|
register number (i.e. it now takes 0x4015 rather than 0x15). An assertion was
|
|
added to catch the old usage. See Nes_Apu.h.
|
|
|
|
- Replaced Blip_Buffer::buffer_size() and Blip_Buffer::units_per_sample() with
|
|
simpler functions (see Blip_Buffer.h and updated demo)
|
|
|
|
// old way
|
|
if ( !buf.buffer_size( sample_count ) )
|
|
out_of_memory();
|
|
buf.units_per_sample( clocks_per_sec / samples_per_sec );
|
|
|
|
// new way
|
|
int length = 1000 / 2; // 1/2 second buffer length
|
|
if ( !buf.sample_rate( samples_per_sec, length ) )
|
|
out_of_memory();
|
|
buf.clock_rate( clocks_per_sec );
|
|
|
|
- Renamed Nes_Apu::master_volume() to volume()
|
|
|
|
- Added Nes_Apu::output() to assign all oscillators in one call.
|
|
|
|
- Changed Nes_Apu_Reflector.cpp to better insulate it:
|
|
|
|
if ( load ) apu.noise.was_playing = true; // removed
|
|
if ( load ) apu.dmc.last_amp = apu.dmc.dac; // removed
|
|
if ( load ) apu.state_restored(); // added to end of reflect_apu()
|
|
|
|
- Expanded notes
|
|
|
|
- Updated to Blip_Buffer 0.3.0
|
|
|
|
- Improved demo code
|
|
|
|
- Made assertions more descriptive when they fail
|
|
|
|
- Fixed problem with Solstice and the noise oscillator
|
|
|
|
- Added usage.txt with full examples of use in a NES emulator
|
|
|
|
- Optimized Nes_Apu::earliest_irq() and irq_notifer() invocation
|
|
|
|
|
|
Nes_Snd_Emu 0.1.3
|
|
-----------------
|
|
- Added and moved documentation. References are now in header files.
|
|
|
|
- Nes_Apu has full support for frame and DMC IRQs.
|
|
|
|
- Nes_Apu supports Blip_Buffer's improved treble equalization.
|
|
|
|
- Added Nes_Apu_Reflector for saving and restoring the APU's sound state
|
|
to/from a file. Meant for emulators which freeze exact game state.
|
|
|
|
- Reworked Nes_Snd_Emu's interface; the inherent fixed frame rate has been
|
|
eliminated.
|
|
|
|
- Added NES_SND_EMU_QUALITY setting.
|
|
|
|
- Deprecated Nes_Channel and nes_sample_t; use Blip_Buffer and blip_sample_t
|
|
instead.
|
|
|
|
|
|
Nes_Snd_Emu 0.1
|
|
---------------
|
|
- Numerous changes from previous releases.
|