ANESE/thirdparty/nes_snd_emu
Daniel Prilik cfe1d2b94d Mapper 1 Support
So, lots of early assumptions proved to be wrong.
This meant that there was a bunch of code that had to be rewritten.

1) iNES format stores ROMs in 16k / 8k chunks, but that does _not_
   mean that all mappers bank along those lines!

I rewrote the entire ROM File parsing logic, and instead of chunking
the raw ROM into banks at the iNES parsing stage, it is done on a
mapper-per-mapper basis

2) Cartridges are _not_ just dumb data storage devices, and can have
   cycle-dependant logic!

To be fair, I knew I would have to cross this bridge someday. I had
to expand the Cartridge / Mapper interfaces to expose more of the
NES's. This is in both directions: Giving the Cartridge acess to the
NES's cycling logic, and also giving the NES a direct way to get
mirror modes from the cartridge (dynamically)

I was hoping that getting Mapper 1 working would also get Zelda
working, but alas, it's crasahing for some reason! As usual, I
suspect it's some shitty timings, and I can confirm, I am failing
a bunch of the NMI timing tests...

I _really_ don't want to go back into the hellhole that is the PPU,
but gosh darnit, I wanna play Zelda!

But hey, at least Megaman II works now :D

PS: I've been working on this commit for probably, oh, 8h total?
Not all at once mind you, it's been over the span of several days.
Now that i'm back in Toronto, i've been a bit busy, what with the
holidays, and old friends, and Wolfenstein II / DOOM taking up my
time.
2017-12-27 16:34:48 -05:00
..
boost >tfw you fix windows and break osx 2017-12-20 10:15:03 -05:00
nes_apu Mapper 1 Support 2017-12-27 16:34:48 -05:00
changes.txt APU courtesy of Blargg's 💯 nes_snd_emu library 2017-12-20 00:00:56 -05:00
LGPL.txt APU courtesy of Blargg's 💯 nes_snd_emu library 2017-12-20 00:00:56 -05:00
notes.txt APU courtesy of Blargg's 💯 nes_snd_emu library 2017-12-20 00:00:56 -05:00
readme.txt APU courtesy of Blargg's 💯 nes_snd_emu library 2017-12-20 00:00:56 -05:00
usage.txt APU courtesy of Blargg's 💯 nes_snd_emu library 2017-12-20 00:00:56 -05:00

Nes_Snd_Emu 0.1.7: NES Sound Emulator
-------------------------------------
This is a portable Nintendo Entertainment System (NES) 2A03 APU sound chip
emulator library for use in a NES emulator. Its main features are high
accuracy, sound quality, and efficiency. Also included are Namco 106 and Konami
VRC6 expansion sound chip emulators.

Licensed under the GNU Lesser General Public License (LGPL); see LGPL.TXT.
Copyright (C) 2003-2005 Shay Green.

Website: http://www.slack.net/~ant/libs/
Forum  : http://groups-beta.google.com/group/blargg-sound-libs
Contact: hotpop.com@blargg (swap to e-mail)


Getting Started
---------------
Build a program consisting of demo.cpp, Simple_Apu.cpp, and all source files in
the nes_apu/ directory. Running the program should generate a WAVE sound file
"out.wav" of random tones.

See notes.txt for more information, and respective header (.h) files for
reference. Visit the discussion forum to get assistance.


Files
-----
notes.txt                  General notes about the library
changes.txt                Changes since previous releases
LGPL.TXT                   GNU Lesser General Public License

usage.txt                  Two ways of using Nes_Apu in a NES emulator
demo.cpp                   Shows how to use Simple_Apu in an emulator
Simple_Apu.h               Simpler interface for APU for getting started
Simple_Apu.cpp
Wave_Writer.hpp            WAVE sound file writer used for demo output
Wave_Writer.cpp
Sound_Queue.h              Synchronous sound queue for use with SDL sound
Sound_Queue.cpp

nes_apu/                   Core library modules
  Nes_Apu.h                NES APU emulator
  Nes_Apu.cpp
  Nes_Oscs.h
  Nes_Oscs.cpp
  blargg_common.h          Common services
  blargg_source.h
  Blip_Synth.h             Sound synthesis buffer
  Blip_Buffer.h
  Blip_Buffer.cpp
                           Optional modules
  apu_snapshot.cpp         Snapshot support
  apu_snapshot.h
  Nes_Vrc6.h               Konami VRC6 sound chip emulator
  Nes_Vrc6.cpp
  Nes_Namco.h              Namco 106 sound chip emulator
  Nes_Namco.cpp
  Nonlinear_Buffer.h       Sample buffer that emulates APU's non-linearity
  Nonlinear_Buffer.cpp
  Multi_Buffer.h
  Multi_Buffer.cpp

boost/                     Substitute for boost library if it's unavailable

-- 
Shay Green <hotpop.com@blargg> (swap to e-mail)