mirror of
https://github.com/bsnes-emu/bsnes.git
synced 2025-09-01 20:33:39 +02:00
Update to v085 release.
byuu says: A new release for the new year. Changelog: fixed auto joypad polling edge case; fixes Ys 5 controls fixed Justifier polling code; Lethal Enforcers should be fully responsive once again rewrote SNES S-SMP processor core (~20% code reduction) fixed Game Boy 8x16 sprite mode; fixed some sprites in Zelda: Link's Awakening treat Game Boy HuC1 RAM enable flag as writable flag instead; fixes Pokemon Card GB created far faster XML parser; bsnes can now load XML files once again updated to mightymo's most recent cheat code database internal color calculations now performed at 30-bits per pixel gamma slider now acts as fine-tuned gamma ramp option Linux OpenGL driver will output at 30bpp on capable displays Linux port defaults to GTK+ now instead of Qt (both are still available)
This commit is contained in:
@@ -18,7 +18,7 @@ string SMPcore::disassemble_opcode(uint16 addr) {
|
||||
auto dp = [&](unsigned n) { return hex<3>((regs.p.p << 8) + read(addr + 1 + n)); };
|
||||
auto ab = [&] {
|
||||
unsigned n = (read(addr + 1) << 0) + (read(addr + 2) << 8);
|
||||
return string{ hex<4>(addr & 0x1fff), ":", hex<1>(addr >> 13) };
|
||||
return string{ hex<4>(n & 0x1fff), ":", hex<1>(n >> 13) };
|
||||
};
|
||||
|
||||
auto mnemonic = [&]() -> string {
|
||||
|
@@ -166,7 +166,7 @@ void SMPcore::op_set_addr_bit() {
|
||||
break;
|
||||
case 4: //eor addr:bit
|
||||
op_io();
|
||||
regs.p.c ^= (rd & (1 << bit));
|
||||
regs.p.c ^= (bool)(rd & (1 << bit));
|
||||
break;
|
||||
case 5: //ldc addr:bit
|
||||
regs.p.c = (rd & (1 << bit));
|
||||
|
@@ -27,7 +27,7 @@ void Application::run() {
|
||||
}
|
||||
|
||||
Application::Application(int argc, char **argv) {
|
||||
title = "bsnes v084.08";
|
||||
title = "bsnes v085";
|
||||
|
||||
application = this;
|
||||
quit = false;
|
||||
|
@@ -1,34 +0,0 @@
|
||||
#ifndef NALL_CONCEPT_HPP
|
||||
#define NALL_CONCEPT_HPP
|
||||
|
||||
#include <nall/static.hpp>
|
||||
#include <nall/utility.hpp>
|
||||
|
||||
namespace nall {
|
||||
//unsigned count() const;
|
||||
template<typename T> struct has_count { enum { value = false }; };
|
||||
|
||||
//unsigned length() const;
|
||||
template<typename T> struct has_length { enum { value = false }; };
|
||||
|
||||
//unsigned size() const;
|
||||
template<typename T> struct has_size { enum { value = false }; };
|
||||
|
||||
template<typename T> unsigned container_size(const T& object, typename mp_enable_if<has_count<T>>::type = 0) {
|
||||
return object.count();
|
||||
}
|
||||
|
||||
template<typename T> unsigned container_size(const T& object, typename mp_enable_if<has_length<T>>::type = 0) {
|
||||
return object.length();
|
||||
}
|
||||
|
||||
template<typename T> unsigned container_size(const T& object, typename mp_enable_if<has_size<T>>::type = 0) {
|
||||
return object.size();
|
||||
}
|
||||
|
||||
template<typename T> unsigned container_size(const T& object, typename mp_enable_if<std::is_array<T>>::type = 0) {
|
||||
return sizeof(T) / sizeof(typename std::remove_extent<T>::type);
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
@@ -1,30 +0,0 @@
|
||||
#ifndef NALL_DETECT_HPP
|
||||
#define NALL_DETECT_HPP
|
||||
|
||||
/* Compiler detection */
|
||||
|
||||
#if defined(__GNUC__)
|
||||
#define COMPILER_GCC
|
||||
#elif defined(_MSC_VER)
|
||||
#define COMPILER_VISUALC
|
||||
#endif
|
||||
|
||||
/* Platform detection */
|
||||
|
||||
#if defined(_WIN32)
|
||||
#define PLATFORM_WIN
|
||||
#elif defined(__APPLE__)
|
||||
#define PLATFORM_OSX
|
||||
#elif defined(linux) || defined(__sun__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__)
|
||||
#define PLATFORM_X
|
||||
#endif
|
||||
|
||||
/* Endian detection */
|
||||
|
||||
#if defined(__i386__) || defined(__amd64__) || defined(_M_IX86) || defined(_M_AMD64)
|
||||
#define ARCH_LSB
|
||||
#elif defined(__powerpc__) || defined(_M_PPC) || defined(__BIG_ENDIAN__)
|
||||
#define ARCH_MSB
|
||||
#endif
|
||||
|
||||
#endif
|
@@ -1,24 +0,0 @@
|
||||
#ifdef NALL_DSP_INTERNAL_HPP
|
||||
|
||||
void DSP::resamplePoint() {
|
||||
while(resampler.fraction <= 1.0) {
|
||||
double channel[settings.channels];
|
||||
|
||||
for(unsigned n = 0; n < settings.channels; n++) {
|
||||
double a = buffer.read(n, -1);
|
||||
double b = buffer.read(n, -0);
|
||||
|
||||
double mu = resampler.fraction;
|
||||
|
||||
channel[n] = mu < 0.5 ? a : b;
|
||||
}
|
||||
|
||||
resamplerWrite(channel);
|
||||
resampler.fraction += resampler.step;
|
||||
}
|
||||
|
||||
buffer.rdoffset++;
|
||||
resampler.fraction -= 1.0;
|
||||
}
|
||||
|
||||
#endif
|
@@ -1,18 +0,0 @@
|
||||
#ifndef NALL_FOREACH_HPP
|
||||
#define NALL_FOREACH_HPP
|
||||
|
||||
#include <type_traits>
|
||||
#include <nall/concept.hpp>
|
||||
|
||||
#undef foreach
|
||||
|
||||
#define foreach2(iter, object) foreach3(iter, object, foreach_counter)
|
||||
#define foreach3(iter, object, foreach_counter) \
|
||||
for(unsigned foreach_counter = 0, foreach_limit = container_size(object), foreach_once = 0, foreach_broken = 0; foreach_counter < foreach_limit && foreach_broken == 0; foreach_counter++, foreach_once = 0) \
|
||||
for(auto &iter = object[foreach_counter]; foreach_once == 0 && (foreach_broken = 1); foreach_once++, foreach_broken = 0)
|
||||
|
||||
#define foreach_impl(...) foreach_decl(__VA_ARGS__, foreach3(__VA_ARGS__), foreach2(__VA_ARGS__), foreach_too_few_arguments)
|
||||
#define foreach_decl(_1, _2, _3, N, ...) N
|
||||
#define foreach(...) foreach_impl(__VA_ARGS__)
|
||||
|
||||
#endif
|
@@ -1,5 +1,6 @@
|
||||
shader language=GLSL
|
||||
fragment~ filter=linear
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<shader language="GLSL">
|
||||
<fragment filter="linear"><![CDATA[
|
||||
uniform sampler2D rubyTexture;
|
||||
uniform vec2 rubyInputSize;
|
||||
uniform vec2 rubyTextureSize;
|
||||
@@ -17,3 +18,5 @@ shader language=GLSL
|
||||
|
||||
gl_FragColor = texture2D(rubyTexture, coord);
|
||||
}
|
||||
]]></fragment>
|
||||
</shader>
|
||||
|
@@ -1,5 +1,6 @@
|
||||
shader language=GLSL
|
||||
vertex~
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<shader language="GLSL">
|
||||
<vertex><![CDATA[
|
||||
uniform vec2 rubyTextureSize;
|
||||
|
||||
void main() {
|
||||
@@ -21,8 +22,9 @@ shader language=GLSL
|
||||
gl_TexCoord[4].xy = gl_TexCoord[0].xy + dg2;
|
||||
gl_TexCoord[4].zw = gl_TexCoord[0].xy - dx;
|
||||
}
|
||||
]]></vertex>
|
||||
|
||||
fragment~ filter=nearest
|
||||
<fragment filter="nearest"><![CDATA[
|
||||
uniform sampler2D rubyTexture;
|
||||
|
||||
const float mx = 0.325; // start smoothing wt.
|
||||
@@ -67,3 +69,5 @@ shader language=GLSL
|
||||
|
||||
gl_FragColor.xyz = w1 * c10 + w2 * c21 + w3 * c12 + w4 * c01 + (1.0 - w1 - w2 - w3 - w4) * c11;
|
||||
}
|
||||
]]></fragment>
|
||||
</shader>
|
||||
|
@@ -1,11 +1,13 @@
|
||||
shader language=GLSL
|
||||
vertex~
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<shader language="GLSL">
|
||||
<vertex><![CDATA[
|
||||
void main() {
|
||||
gl_Position = ftransform();
|
||||
gl_TexCoord[0] = gl_MultiTexCoord0;
|
||||
}
|
||||
]]></vertex>
|
||||
|
||||
fragment~ filter=nearest
|
||||
<fragment filter="nearest"><![CDATA[
|
||||
uniform sampler2D rubyTexture;
|
||||
uniform vec2 rubyTextureSize;
|
||||
|
||||
@@ -38,3 +40,5 @@ shader language=GLSL
|
||||
|
||||
gl_FragColor = averageColor;
|
||||
}
|
||||
]]></fragment>
|
||||
</shader>
|
||||
|
@@ -1,5 +1,6 @@
|
||||
shader language=GLSL
|
||||
vertex~
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<shader language="GLSL">
|
||||
<vertex><![CDATA[
|
||||
uniform vec2 rubyTextureSize;
|
||||
|
||||
void main() {
|
||||
@@ -23,8 +24,9 @@ shader language=GLSL
|
||||
gl_TexCoord[3] = gl_TexCoord[0] - offsety; //top
|
||||
gl_TexCoord[4] = gl_TexCoord[0] + offsety; //bottom
|
||||
}
|
||||
]]></vertex>
|
||||
|
||||
fragment~ filter=nearest
|
||||
<fragment filter="nearest"><![CDATA[
|
||||
uniform sampler2D rubyTexture;
|
||||
uniform vec2 rubyTextureSize;
|
||||
|
||||
@@ -49,3 +51,5 @@ shader language=GLSL
|
||||
|
||||
gl_FragColor = col;
|
||||
}
|
||||
]]></fragment>
|
||||
</shader>
|
||||
|
@@ -1,4 +1,6 @@
|
||||
shader~ language=HLSL
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<shader language="HLSL">
|
||||
<source><![CDATA[
|
||||
texture rubyTexture;
|
||||
|
||||
float4 vec;
|
||||
@@ -24,3 +26,5 @@ shader~ language=HLSL
|
||||
{
|
||||
pass p0 { PixelShader = compile ps_2_0 DiffColorPass(); }
|
||||
}
|
||||
]]></source>
|
||||
</shader>
|
||||
|
Reference in New Issue
Block a user