mirror of https://github.com/bsnes-emu/bsnes.git
Update to bsnes v027r05? release.
Another WIP, this one's really just for myself to look over at work tomorrow. Changed any.hpp again to not auto upcast fundamental types, as it causes problems such as downcasting references to long doubles and such. Sucks how limited the any type is by forced casting 100% of the time, but whatever ... no endian issues possible now, at least. I added property.hpp and bound that to the Audio class (not to Video or Input yet). It's a lot more complicated than the old integral identifier cap/get/set functions, but I need the char*-named list functionality to allow changing driver-specific settings from the GUI one day. Not too much done there yet. Need to work on it more, I'd like to make bconfig use property.hpp rather than the IntegerSetting + StringSetting classes. Tried to make property.hpp read in a config file without bstring, talk about pain ... ugh. Tried to move bstring into nall, failed miserably. When strcpy(char*, const char*) is in the global namespace and strcpy(string&, const char*) is not, the compiler gets angry. Not going to work. Really should go object-oriented entirely and ditch libc functions, but ... that's a _lot_ of code rewriting on my part. Need to think about it more first. Removed bbase.h dependency from bstring, miu and xkas. Now I just need to do something about bkeymap.h, and things will be looking a lot better for code sanity. Nach wrote the _seventh(!!)_ libco driver tonight, an implementation using setjmp / longjmp. Pretty neat, overhead is ~20x, which puts it only slightly worse off than Windows Fibers on my machine. Using it in bsnes slows the emulator down by <1%, but it should be portable across all Unix-derivative systems now. This means eg a PS3, Alpha, SPARC, etc port should be completely doable now, just need someone to compile it. Planning to position libco as a competitor to GNU Pth, so that leaves me with: SDL -> vai wxWidgets -> miu GNU Pth and pthreads -> libco boost and Loki -> nall std::string -> bstring Good times. Now I just need to register inventedhere.org for all of these libraries. > but it's pointless since the sound quality of the S-DSP isn't good > enough to make a difference. The only thing we could possibly bypass would be the driver / API resampling our audio (eg 32khz -> 44khz native). Running each SNES channel through its own hardware channel is just silly. Either use an API that bypasses the mixer, or don't. And yes, there's lots of ways to "enhance" the audio. Replacing gaussian with a higher end interpolation, bypassing the clipping, etc. But then you end up with "better" (in most cases), but less accurate sound. > is anyone currently working on an enhancement snes emu? ZSNES adds cubic spline audio interpolation, SNES9x adds "hi-res" mode7, ZSNES/XBOX adds rumble pad support to most games. Other than smaller things like that, not really. I've talked about adding things like rumble, a new MMC to map more than 64mbits, CD-audio and video playback capabilities. Nobody seemed all that interested. Eh, maybe if someone finds and sends me one of those SNES CD player addons used by that one English teaching game, I'll add support for that to bsnes and then rig something like Der Langrisser to use it :P [No archive available]
This commit is contained in:
parent
a15d15047c
commit
a85ff8c437