mirror of https://github.com/mgba-emu/mgba.git
GBA Video: Fix interpolation issues with OpenGL renderer
This commit is contained in:
parent
9fa607b30f
commit
80a8074608
1
CHANGES
1
CHANGES
|
@ -16,6 +16,7 @@ Emulation fixes:
|
|||
- GBA SIO: Normal mode transfers with no clock should not finish (fixes mgba.io/i/2811)
|
||||
- GBA Timers: Cascading timers don't tick when disabled (fixes mgba.io/i/2812)
|
||||
- GBA Video: Disable BG target 1 blending when OBJ blending (fixes mgba.io/i/2722)
|
||||
- GBA Video: Fix interpolation issues with OpenGL renderer
|
||||
Other fixes:
|
||||
- Core: Allow sending thread requests to a crashed core (fixes mgba.io/i/2784)
|
||||
- FFmpeg: Force lower sample rate for codecs not supporting high rates (fixes mgba.io/i/2869)
|
||||
|
|
|
@ -289,12 +289,12 @@ static const char* const _renderMode2 =
|
|||
" }\n"
|
||||
" loadAffine(int(incoord.y), mat, offset);\n"
|
||||
" float y = fract(incoord.y);\n"
|
||||
" float start = 0.75;\n"
|
||||
" float start = 2. / 3.;\n"
|
||||
" if (int(incoord.y) - range.x < 4) {\n"
|
||||
" y = incoord.y - float(range.x);\n"
|
||||
" start = 0.;\n"
|
||||
" start -= 1.;\n"
|
||||
" }\n"
|
||||
" float lin = start + y * 0.25;\n"
|
||||
" float lin = start + y / 3.;\n"
|
||||
" vec2 mixedTransform = interpolate(mat, lin);\n"
|
||||
" vec2 mixedOffset = interpolate(offset, lin);\n"
|
||||
" int paletteEntry = fetchTile(ivec2(mixedTransform * incoord.x + mixedOffset));\n"
|
||||
|
@ -340,12 +340,12 @@ static const char* const _renderMode35 =
|
|||
" }\n"
|
||||
" loadAffine(int(incoord.y), mat, offset);\n"
|
||||
" float y = fract(incoord.y);\n"
|
||||
" float start = 0.75;\n"
|
||||
" float start = 2. / 3.;\n"
|
||||
" if (int(incoord.y) - range.x < 4) {\n"
|
||||
" y = incoord.y - float(range.x);\n"
|
||||
" start = 0.;\n"
|
||||
" start -= 1.;\n"
|
||||
" }\n"
|
||||
" float lin = start + y * 0.25;\n"
|
||||
" float lin = start + y / 3.;\n"
|
||||
" vec2 mixedTransform = interpolate(mat, lin);\n"
|
||||
" vec2 mixedOffset = interpolate(offset, lin);\n"
|
||||
" ivec2 coord = ivec2(mixedTransform * incoord.x + mixedOffset);\n"
|
||||
|
@ -401,12 +401,12 @@ static const char* const _renderMode4 =
|
|||
" }\n"
|
||||
" loadAffine(int(incoord.y), mat, offset);\n"
|
||||
" float y = fract(incoord.y);\n"
|
||||
" float start = 0.75;\n"
|
||||
" float start = 2. / 3.;\n"
|
||||
" if (int(incoord.y) - range.x < 4) {\n"
|
||||
" y = incoord.y - float(range.x);\n"
|
||||
" start = 0.;\n"
|
||||
" start -= 1.;\n"
|
||||
" }\n"
|
||||
" float lin = start + y * 0.25;\n"
|
||||
" float lin = start + y / 3.;\n"
|
||||
" vec2 mixedTransform = interpolate(mat, lin);\n"
|
||||
" vec2 mixedOffset = interpolate(offset, lin);\n"
|
||||
" ivec2 coord = ivec2(mixedTransform * incoord.x + mixedOffset);\n"
|
||||
|
|
Loading…
Reference in New Issue