mirror of
https://github.com/bsnes-emu/bsnes.git
synced 2025-09-02 21:43:04 +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 dp = [&](unsigned n) { return hex<3>((regs.p.p << 8) + read(addr + 1 + n)); };
|
||||||
auto ab = [&] {
|
auto ab = [&] {
|
||||||
unsigned n = (read(addr + 1) << 0) + (read(addr + 2) << 8);
|
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 {
|
auto mnemonic = [&]() -> string {
|
||||||
|
@@ -166,7 +166,7 @@ void SMPcore::op_set_addr_bit() {
|
|||||||
break;
|
break;
|
||||||
case 4: //eor addr:bit
|
case 4: //eor addr:bit
|
||||||
op_io();
|
op_io();
|
||||||
regs.p.c ^= (rd & (1 << bit));
|
regs.p.c ^= (bool)(rd & (1 << bit));
|
||||||
break;
|
break;
|
||||||
case 5: //ldc addr:bit
|
case 5: //ldc addr:bit
|
||||||
regs.p.c = (rd & (1 << bit));
|
regs.p.c = (rd & (1 << bit));
|
||||||
|
@@ -27,7 +27,7 @@ void Application::run() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Application::Application(int argc, char **argv) {
|
Application::Application(int argc, char **argv) {
|
||||||
title = "bsnes v084.08";
|
title = "bsnes v085";
|
||||||
|
|
||||||
application = this;
|
application = this;
|
||||||
quit = false;
|
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
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
fragment~ filter=linear
|
<shader language="GLSL">
|
||||||
|
<fragment filter="linear"><![CDATA[
|
||||||
uniform sampler2D rubyTexture;
|
uniform sampler2D rubyTexture;
|
||||||
uniform vec2 rubyInputSize;
|
uniform vec2 rubyInputSize;
|
||||||
uniform vec2 rubyTextureSize;
|
uniform vec2 rubyTextureSize;
|
||||||
@@ -17,3 +18,5 @@ shader language=GLSL
|
|||||||
|
|
||||||
gl_FragColor = texture2D(rubyTexture, coord);
|
gl_FragColor = texture2D(rubyTexture, coord);
|
||||||
}
|
}
|
||||||
|
]]></fragment>
|
||||||
|
</shader>
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
shader language=GLSL
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
vertex~
|
<shader language="GLSL">
|
||||||
|
<vertex><![CDATA[
|
||||||
uniform vec2 rubyTextureSize;
|
uniform vec2 rubyTextureSize;
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
@@ -21,8 +22,9 @@ shader language=GLSL
|
|||||||
gl_TexCoord[4].xy = gl_TexCoord[0].xy + dg2;
|
gl_TexCoord[4].xy = gl_TexCoord[0].xy + dg2;
|
||||||
gl_TexCoord[4].zw = gl_TexCoord[0].xy - dx;
|
gl_TexCoord[4].zw = gl_TexCoord[0].xy - dx;
|
||||||
}
|
}
|
||||||
|
]]></vertex>
|
||||||
|
|
||||||
fragment~ filter=nearest
|
<fragment filter="nearest"><![CDATA[
|
||||||
uniform sampler2D rubyTexture;
|
uniform sampler2D rubyTexture;
|
||||||
|
|
||||||
const float mx = 0.325; // start smoothing wt.
|
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;
|
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
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
vertex~
|
<shader language="GLSL">
|
||||||
|
<vertex><![CDATA[
|
||||||
void main() {
|
void main() {
|
||||||
gl_Position = ftransform();
|
gl_Position = ftransform();
|
||||||
gl_TexCoord[0] = gl_MultiTexCoord0;
|
gl_TexCoord[0] = gl_MultiTexCoord0;
|
||||||
}
|
}
|
||||||
|
]]></vertex>
|
||||||
|
|
||||||
fragment~ filter=nearest
|
<fragment filter="nearest"><![CDATA[
|
||||||
uniform sampler2D rubyTexture;
|
uniform sampler2D rubyTexture;
|
||||||
uniform vec2 rubyTextureSize;
|
uniform vec2 rubyTextureSize;
|
||||||
|
|
||||||
@@ -38,3 +40,5 @@ shader language=GLSL
|
|||||||
|
|
||||||
gl_FragColor = averageColor;
|
gl_FragColor = averageColor;
|
||||||
}
|
}
|
||||||
|
]]></fragment>
|
||||||
|
</shader>
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
shader language=GLSL
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
vertex~
|
<shader language="GLSL">
|
||||||
|
<vertex><![CDATA[
|
||||||
uniform vec2 rubyTextureSize;
|
uniform vec2 rubyTextureSize;
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
@@ -23,8 +24,9 @@ shader language=GLSL
|
|||||||
gl_TexCoord[3] = gl_TexCoord[0] - offsety; //top
|
gl_TexCoord[3] = gl_TexCoord[0] - offsety; //top
|
||||||
gl_TexCoord[4] = gl_TexCoord[0] + offsety; //bottom
|
gl_TexCoord[4] = gl_TexCoord[0] + offsety; //bottom
|
||||||
}
|
}
|
||||||
|
]]></vertex>
|
||||||
|
|
||||||
fragment~ filter=nearest
|
<fragment filter="nearest"><![CDATA[
|
||||||
uniform sampler2D rubyTexture;
|
uniform sampler2D rubyTexture;
|
||||||
uniform vec2 rubyTextureSize;
|
uniform vec2 rubyTextureSize;
|
||||||
|
|
||||||
@@ -49,3 +51,5 @@ shader language=GLSL
|
|||||||
|
|
||||||
gl_FragColor = col;
|
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;
|
texture rubyTexture;
|
||||||
|
|
||||||
float4 vec;
|
float4 vec;
|
||||||
@@ -24,3 +26,5 @@ shader~ language=HLSL
|
|||||||
{
|
{
|
||||||
pass p0 { PixelShader = compile ps_2_0 DiffColorPass(); }
|
pass p0 { PixelShader = compile ps_2_0 DiffColorPass(); }
|
||||||
}
|
}
|
||||||
|
]]></source>
|
||||||
|
</shader>
|
||||||
|
Reference in New Issue
Block a user