Update to v083 release.
byuu says:
This release adds preliminary Nintendo / Famicom emulation. It's only
a week or two old, so a lot of work still needs to be done before it can
compete with the most popular NES emulators.
It's important to clarify: bsnes is primarily an SNES emulator. That
will always be its forte and my core focus. I have added Game Boy
support previously for Super Game Boy emulation, and I've added NES
support mostly for something fun to work on to break up the monotony of
working on one system for seven years now. Obviously, I'd like the
emulation to be accurate and highly compatible, but I simply cannot
afford to invest the same amount of time and money into any other
systems.
Still, either way the NES and GB emulation serve as fun side-diversions,
and allow for a unified emulator interface with all of bsnes' unique
features applied to all systems. My personal favorite feature is
mightymo's extended built-in cheat code database that now also includes
NES and Game Boy codes. And it even works in Super Game Boy mode now,
too!
I'm also not worried about speed at all: so long as NES/GB are faster
than SNES/compatibility, it's fine by me. Note that due to the NES audio
running at 1.78MHz, and Game Boy audio at 4MHz stereo, a more
sophisticated audio resampler was needed: Ryphecha (Mednafen author) has
graciously written a first-rate resampler: it is a band-limited
Kaiser-windowed polyphase sinc resampler. It is combined with two
highpass filters to remove DC bias. The filter itself is SSE optimized,
but even still, approximately 50% of CPU usage for NES/GB emulation goes
to the audio filtering alone. However, you now have the best sound
possible for NES and Game Boy emulation as a result.
The GUI has also been heavily re-structured to accommodate multiple
emulators from the same interface. As such, it's quite likely a few bugs
are still lurking here and there. Please report them and I'll iron them
out for the next release.
Changelog:
- license is now GPLv3
- re-structured GUI as a multi-system emulator
- added NES emulation [byuu, Ryphecha]
- added NES ICs: MMC1, MMC2, MMC3, MMC4, MMC5, VRC4, VRC6+audio, VRC7,
Sunsoft-5B+audio, Bandai-LZ93D50
- added NES boards: AxROM, BNROM, CNROM, ExROM, FxROM, GxROM, NROM,
PxROM, SxROM, TxROM, UxROM
- Game Boy emulation improvements [Jonas Quinn]
- SNES core outputs full 19-bit color (4-bit luma included) for more
accurate color reproduction (~5% speed hit)
- audio resampler is now a band-limited polyphase resampler [Ryphecha]
- cheat database includes NES+GB codes as well [mightymo, tukuyomi]
- lots of other changes
2011-10-14 10:05:25 +00:00
|
|
|
shader~ language=HLSL
|
|
|
|
texture rubyTexture;
|
|
|
|
|
|
|
|
float4 vec;
|
|
|
|
|
|
|
|
sampler s0 = sampler_state { texture = <rubyTexture>; };
|
|
|
|
float3 LightColor = { 1.0, 0.7, 0.5 };
|
|
|
|
float3 DarkColor = { 0.2, 0.05, 0.0 };
|
|
|
|
|
|
|
|
float4 DiffColorPass(in float2 Tex : TEXCOORD0) : COLOR0
|
|
|
|
{
|
|
|
|
vec.x = 0.5;
|
|
|
|
vec.y = 1.0;
|
|
|
|
float3 scnColor = LightColor * tex2D(s0, Tex).xyz;
|
|
|
|
float3 grayXfer = float3(0.3, 0.59, 0.11);
|
|
|
|
float gray = dot(grayXfer, scnColor);
|
|
|
|
float3 muted = lerp(scnColor, gray.xxx, vec.x);
|
|
|
|
float3 sepia = lerp(DarkColor, LightColor, gray);
|
|
|
|
float3 result = lerp(muted, sepia, vec.y);
|
|
|
|
return float4(result, 1);
|
|
|
|
}
|
|
|
|
|
|
|
|
Technique T0
|
|
|
|
{
|
|
|
|
pass p0 { PixelShader = compile ps_2_0 DiffColorPass(); }
|
|
|
|
}
|