Commit Graph

82 Commits

Author SHA1 Message Date
adelikat 9751fd5a1a Move interfaces and base implemenations from emulation to emulation.common 2013-11-04 01:39:19 +00:00
adelikat 7b03fc0bc0 Move Buffer.cs and Util.cs from BizHawk.Emulation to BizHawk.Common, and add 1234832983 usings 2013-11-04 00:36:15 +00:00
adelikat fe7da7c5b5 move disc stuff out of BizHawk.Emulation into a new project BizHawk.Emulation.DiscSystem, updated namesspaces in those files, set up other projects with the right references and usings 2013-11-03 23:45:44 +00:00
zeromus 0acbb11e97 move HawkFile to BizHawk.Common along with a small web of dependencies and then add "using BizHawk.Common" to 100 files 2013-10-27 22:07:40 +00:00
goyuken 53f9e002f4 n64: disable certain debug messages for now as they're causing crashing problems.
fix audio, hopefully.  sounds fine on diddy kong racing.
2013-05-02 00:33:44 +00:00
goyuken 6b350e58c9 n64: audio stuff, but all commented out for now 2013-05-01 22:26:08 +00:00
goyuken e911a17a4e nes: vrc6: clean up some comments of left over crud. no actual changes 2013-01-11 19:49:32 +00:00
goyuken 1666febbee NES: savestates now function properly for "SUNSOFT-5B" board, only affects Gimmick (J)? 2013-01-09 16:42:00 +00:00
goyuken 1cdc51f789 dual gameboy: sound 2012-12-29 17:11:19 +00:00
goyuken 5f854466ab sound: fudge up some parameters of BufferedAsync. the most noticeable difference is that PAL NES with clock throttle no longer sounds horrible 2012-12-23 20:26:43 +00:00
goyuken ff6539d268 nes: related to the last commit, fix mapper 116, mmc5, vrc6 2012-12-18 03:17:10 +00:00
goyuken 0e0359613d mmc5 audio: oops 2012-12-15 15:17:23 +00:00
goyuken bab873fa13 mmc5: fix bug in pcm audio that i didn't even know about because nothing ever uses it at all. sunsoft 5b: implement audio. affects Gimmick(J). note that the audio emulation is rather incomplete. 2012-12-14 21:06:58 +00:00
goyuken 6ca1886933 MMC5: audio. PCM is untested because i don't know of anything at all that actually uses it. 2012-12-14 18:41:16 +00:00
goyuken 4e0796814d VRC6 audio: restructure to send deltas directly to the NES apu, simplifying some things. This would be pointless masturbation by itself, but this method will also lead to easier emulation of MMC5 audio. 2012-12-14 15:17:14 +00:00
goyuken 3bcb00f9b9 vrc6 audio: fix off-by-one in frequency counts 2012-12-14 14:38:39 +00:00
goyuken e31f4380e2 nes: vrc7: change patchset to one recommended by nesdev. i dunno... sounds better? maybe? 2012-12-14 01:36:01 +00:00
goyuken a1065942ed old VRC6 sound moved to attic/ 2012-12-10 20:26:59 +00:00
goyuken c3a74edd7f VRC6 sound: cleanup, implement $9003 2012-12-10 16:09:49 +00:00
goyuken 49f16bcb20 nes: vrc6: new audio implementation. sounds awesome 2012-12-10 01:13:12 +00:00
goyuken b9f37d7ed8 dcfilter: more correct algorithm. doesn't sound any different. speed unchanged. 2012-12-09 20:02:43 +00:00
goyuken cb4288ada4 rearrange the api of DCFilter a bit to make it less dumb. nothing of real importance 2012-12-09 15:58:55 +00:00
goyuken 210d415e3d Add Blargg's "blip_buf" as an unmanaged dll. license is LGPL; if I like the way it works, I'll rewrite it with MIT code. Implement it as the new resampling output track for NES. Small (~3%)? speedup. Should sound better, especially when the emulator can't quite keep speed. 2012-12-09 03:13:47 +00:00
goyuken e6058e6bd8 break some stuff. FDS can eject and insert disk sides now 2012-10-26 18:51:08 +00:00
goyuken b40897bb77 sound api changes. added a new ISyncSoundProvider, which works similarly to ISoundProvider except the source (not the sink) determines the number of samples to process. Added facilities to metaspu, dcfilter, speexresampler to work with ISyncSoundProvider. Add ISyncSoundProvider to IEmulator. All IEmulators must provide sync sound, but they need not provide async sound. When async is needed and an IEmulator doesn't provide it, the frontend will wrap it in a vecna metaspu. SNES, GB changed to provide sync sound only. All other emulator cores mostly unchanged; they just provide stub fakesync alongside async, for now. For the moment, the only use of the sync sound is for realtime audio throttling, where it works and sounds quite nice. In the future, sync sound will be supported for AV dumping as well. 2012-10-11 00:44:59 +00:00
goyuken b28b677be2 dcfilter: reject out of range filterwidth 2012-10-10 11:56:49 +00:00
goyuken 19e5325afa DCFilter: allow variable filterwidth. 2600 tia: use a rather aggressive (~172hz cutoff) dc filter. this coefficient is reasonably close to actual hardware behavior. 2012-10-10 00:56:48 +00:00
goyuken b6e4d9996e DCFilter: add a "push" mode more suited to being placed between a resampler and a metaspu
Gambatte: change the order of output from "GB => resampler => metaspu => DCFilter" to "GB => resampler => DCFilter => metaspu".
This doesn't change anything under most circumstances, except when playing the emulator in slow motion (for instance, 50% throttle).  There, the metaspu sometimes adds silence to the output, which isn't actually silence if it has a different DC offset than the audio it's being mixed with.  Well, 50% throttle sound output will always suck anyway...
2012-09-29 22:38:47 +00:00
goyuken 36df8e4aab fix default patch set for VRC7 2012-09-24 17:34:17 +00:00
beirich b04189b6b1 gen: rewind is working, savestates are not working [yet]. will fix more tomorrow 2012-09-17 05:48:24 +00:00
goyuken 1e6a9415c1 add Sound.Utilities.DCFilter and use it in gambatte
haven't decided yet whether i like the idea; it's mostly about playing nice with other audio mixing (from other applications)
well, it's not bad anyway...
2012-09-11 21:30:50 +00:00
goyuken f18eb2fef2 gambatte now has sound! output from the core is original 2MEGAHURTZ audio, but libspeexdsp handles it fine.
seems to be a lot of DC offset at times; not sure if there's a good way to remove it
2012-09-09 00:41:11 +00:00
goyuken 408a4d6102 add comment to BufferedAsync explaining its value 2012-09-08 16:02:14 +00:00
goyuken 71652b25dc cleanup/simplify SpeexResampler 2012-09-07 20:12:47 +00:00
goyuken 001b28c60e replace junk and bad license resamplers with libspeexdsp (using p/invoke). MIT licensed, sounds pretty decent.
the p/invoke wrapper class is a hackjob i was using for testing and will be replaced.
2012-09-07 18:49:18 +00:00
goyuken b0e3a332d8 abstract resampling functionality into IStereoResampler for testing purposes
add two example resamplers that implement this: LinearResampler and CubicResampler.  both are very basic and sound like shit compared to libresample4j
ultimately, a single good resampler with a better license than libresample4j should be selected and used
2012-09-05 21:21:35 +00:00
goyuken 0430ec91c8 add resampler based on libresample4j (LGPL)
hook that up to libsnes, so libsnes audio now goes through libresample4j and then metaspu
it sounds ok
2012-09-05 18:52:17 +00:00
goyuken 2a2caa492c add linear resampler (not activated in code). sounds about the same as the other two (ie, no major bugs) on the opening to Golden Axe 2012-08-19 17:46:13 +00:00
beirich 4ba8fcf227 ym2612: Implement detune. Implement a somewhat better resampler, still not a Good One. 2012-08-19 04:41:34 +00:00
beirich f42b96ba7d ym2612: fix EG Rate calculation. Fix Attack Rate exponential formulation. 2012-08-10 04:46:29 +00:00
beirich 32bc79be06 ym2612 mothaaaaafukkkkaaaaaaa 2012-08-07 05:48:30 +00:00
adelikat e8e64bca62 NES - VRC6 sound! 2012-08-05 00:11:32 +00:00
adelikat 6e8d38fabe NES - disable vrc6 sound for now 2012-08-04 00:57:26 +00:00
adelikat 70f07346b1 NES - start VRC6 sound, currently sounds terrible 2012-08-03 02:08:42 +00:00
zeromus 3a336b9ef4 nes-mapper 67 2012-06-11 06:32:44 +00:00
zeromus cff7ba6d24 nes-fix lagrange point, including sound 2012-06-07 20:52:49 +00:00
goyuken a313d3910d Add sound output to sound card while dumping is occurring. Uses a proxy ISoundProvider (DualSound.cs) to guarantee emulation sound core and dumping routine are unaffected, while sending "best effort" sound to system output. Doesn't sound great, but simple and functional. 2012-05-09 20:21:23 +00:00
beirich 700ac116dd ym2612: more ports processed, DAC now plays in stereo 2012-04-29 18:33:21 +00:00
beirich 239cb213f0 ym2612: some progress on operators 2012-04-29 17:41:39 +00:00
beirich 59eb4b4abe ym2612: support TimerA and TimerB 2012-04-29 06:05:15 +00:00