update to latest cnc-ddraw

This commit is contained in:
FunkyFr3sh
2023-08-17 21:45:20 +02:00
committed by GitHub
parent 7b42c38af9
commit 7ef35e95f4
5 changed files with 242 additions and 285 deletions
+13 -26
View File
@@ -1,10 +1,10 @@
/*
Bicubic Catmull-Rom 9 taps (Fast) - ported by Hyllian - 2020
The following code is licensed under the MIT license: https://gist.github.com/TheRealMJP/bc503b0b87b643d3505d41eab8b332ae
Ported from code: https://gist.github.com/TheRealMJP/c83b8c0f46b63f3a88a5986f4fa982b1
Samples a texture with Catmull-Rom filtering, using 9 texture fetches instead of 16.
See http://vec3.ca/bicubic-filtering-in-fewer-taps/ for more details
ATENTION: This code only work using LINEAR filter sampling set on Retroarch!
Modified to use 5 texture fetches
*/
#if defined(VERTEX)
@@ -84,8 +84,6 @@ COMPAT_VARYING vec4 TEX0;
#define SourceSize vec4(TextureSize, 1.0 / TextureSize) //either TextureSize or InputSize
#define outsize vec4(OutputSize, 1.0 / OutputSize)
#define mul(c,d) (d*c)
void main()
{
// We're going to sample a a 4x4 grid of texels surrounding the target UV coordinate. We'll do this by rounding
@@ -105,7 +103,6 @@ void main()
vec2 w1 = 1.0 + f * f * (-2.5 + 1.5 * f);
vec2 w2 = f * (0.5 + f * (2.0 - 1.5 * f));
vec2 w3 = f * f * (-0.5 + 0.5 * f);
// vec2 w3 = 1.0 - w0 - w1 - w2;
// Work out weighting factors and sampling offsets that will let us use bilinear filtering to
// simultaneously evaluate the middle 2 samples from the 4x4 grid.
@@ -121,30 +118,20 @@ void main()
texPos3 *= SourceSize.zw;
texPos12 *= SourceSize.zw;
vec4 c00 = COMPAT_TEXTURE(Source, vec2(texPos0.x, texPos0.y));
vec4 c10 = COMPAT_TEXTURE(Source, vec2(texPos12.x, texPos0.y));
vec4 c20 = COMPAT_TEXTURE(Source, vec2(texPos3.x, texPos0.y));
float wtm = w12.x * w0.y;
float wml = w0.x * w12.y;
float wmm = w12.x * w12.y;
float wmr = w3.x * w12.y;
float wbm = w12.x * w3.y;
vec4 c01 = COMPAT_TEXTURE(Source, vec2(texPos0.x, texPos12.y));
vec4 c11 = COMPAT_TEXTURE(Source, vec2(texPos12.x, texPos12.y));
vec4 c21 = COMPAT_TEXTURE(Source, vec2(texPos3.x, texPos12.y));
vec3 result = vec3(0.0f);
vec4 c02 = COMPAT_TEXTURE(Source, vec2(texPos0.x, texPos3.y));
vec4 c12 = COMPAT_TEXTURE(Source, vec2(texPos12.x, texPos3.y));
vec4 c22 = COMPAT_TEXTURE(Source, vec2(texPos3.x, texPos3.y));
result += COMPAT_TEXTURE(Source, vec2(texPos12.x, texPos0.y)).rgb * wtm;
result += COMPAT_TEXTURE(Source, vec2(texPos0.x, texPos12.y)).rgb * wml;
result += COMPAT_TEXTURE(Source, vec2(texPos12.x, texPos12.y)).rgb * wmm;
result += COMPAT_TEXTURE(Source, vec2(texPos3.x, texPos12.y)).rgb * wmr;
result += COMPAT_TEXTURE(Source, vec2(texPos12.x, texPos3.y)).rgb * wbm;
// initialize some variables
vec4 c1, c2, c3, wx, wy = vec4(0.,0.,0.,0.);
// junk vec4 used only to round out the non-square 3x4 matrices
vec4 dummy = vec4(0.,0.,0.,1.);
wx = vec4(w0.x, w12.x, w3.x, 1.0);
wy = vec4(w0.y, w12.y, w3.y, 1.0);
c1 = vec4(mul(wx, mat4(c00, c10, c20, dummy)));
c2 = vec4(mul(wx, mat4(c01, c11, c21, dummy)));
c3 = vec4(mul(wx, mat4(c02, c12, c22, dummy)));
FragColor = mul(wy, mat4(c1, c2, c3, dummy));
FragColor = vec4(result * (1./(wtm+wml+wmm+wmr+wbm)), 1.0);
}
#endif
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
+105 -135
View File
@@ -24,9 +24,9 @@ boxing=false
; Real rendering rate, -1 = screen rate, 0 = unlimited, n = cap
; Note: Does not have an impact on the game speed, to limit your game speed use 'maxgameticks='
maxfps=0
maxfps=-1
; Vertical synchronization, enable if you get tearing - (Requires 'renderer=auto/opengl/direct3d9')
; Vertical synchronization, enable if you get tearing - (Requires 'renderer=auto/opengl*/direct3d9*')
; Note: vsync=true can fix tearing but it will cause input lag
vsync=false
@@ -34,7 +34,7 @@ vsync=false
; Note: Only works if stretching is enabled. Sensitivity will be adjusted according to the size of the window
adjmouse=true
; Preliminary libretro shader support - (Requires 'renderer=opengl') https://github.com/libretro/glsl-shaders
; Preliminary libretro shader support - (Requires 'renderer=opengl*') https://github.com/libretro/glsl-shaders
; 2x scaling example: https://imgur.com/a/kxsM1oY - 4x scaling example: https://imgur.com/a/wjrhpFV
shader=Shaders\cubic\catmull-rom-bilinear.glsl
@@ -42,8 +42,8 @@ shader=Shaders\cubic\catmull-rom-bilinear.glsl
posX=-32000
posY=-32000
; Renderer, possible values: auto, opengl, gdi, direct3d9 (auto = try direct3d9/opengl, fallback = gdi)
renderer=opengl
; Renderer, possible values: auto, opengl, openglcore, gdi, direct3d9, direct3d9on12 (auto = try direct3d9/opengl, fallback = gdi)
renderer=auto
; Developer mode (don't lock the cursor)
devmode=false
@@ -58,16 +58,19 @@ savesettings=1
; Should the window be resizable by the user in windowed mode?
resizable=true
; Upscaling filter for the direct3d9 renderer
; Upscaling filter for the direct3d9* renderers
; Possible values: 0 = nearest-neighbor, 1 = bilinear, 2 = bicubic (16/32bit color depth games only)
d3d9_filter=2
; Enable upscale hack for high resolution patches (Supports C&C1, Red Alert 1 and KKND Xtreme)
vhack=false
; cnc-ddraw config program language, possible values: auto, english, chinese, german, spanish, russian, hungarian, french
; cnc-ddraw config program language, possible values: auto, english, chinese, german, spanish, russian, hungarian, french, italian
configlang=auto
; cnc-ddraw config program theme, possible values: Windows10, Cobalt XEMedia
configtheme=Windows10
; Where should screenshots be saved
screenshotdir=.\Screenshots\
@@ -88,56 +91,45 @@ noactivateapp=true
; Note: Usually one of the following values will work: 60 / 30 / 25 / 20 / 15 (lower value = slower game speed)
maxgameticks=-1
; Windows API Hooking, Possible values: 0 = disabled, 1 = IAT Hooking, 2 = Microsoft Detours, 3 = IAT+Detours Hooking (All Modules), 4 = IAT Hooking (All Modules)
; Note: Change this value if windowed mode or upscaling isn't working properly
; Note: 'hook=2' will usually work for problematic games, but 'hook=2' should be combined with renderer=gdi
hook=4
; Force minimum FPS, possible values: 0 = disabled, -1 = use 'maxfps=' value, -2 = same as -1 but force full redraw, 1-1000 = custom FPS
; Note: Set this to a low value such as 5 or 10 if some parts of the game are not being displayed (e.g. menus or loading screens)
minfps=0
; Disable fullscreen-exclusive mode for the direct3d9/opengl renderers
; Disable fullscreen-exclusive mode for the direct3d9*/opengl* renderers
; Note: Can be used in case some GUI elements like buttons/textboxes/videos/etc.. are invisible
nonexclusive=false
; Force CPU0 affinity, avoids crashes/freezing, *might* have a performance impact
; Note: Disable this if the game is not running smooth or there are sound issues
singlecpu=false
; Available resolutions, possible values: 0 = Small list, 1 = Very small list, 2 = Full list
; Note: Set this to 2 if your chosen resolution is not working, set to 1 if the game is crashing
; Note: Set this to 2 if your chosen resolution is not working or does not show up in the list
; Note: Set this to 1 if the game is crashing on startup
resolutions=0
; Child window handling, possible values: 0 = Disabled, 1 = Display top left, 2 = Display top left + repaint, 3 = Hide
; Note: Disables upscaling if a child window was detected
; Note: Disables upscaling if a child window was detected (to ensure the game is fully playable, may look weird though)
fixchilds=2
; Enable the following setting if your cursor doesn't work properly when upscaling is enabled
hook_peekmessage=false
; Undocumented settings
d3d9_adapter=0
opengl_core=false
d3d9on12=false
; Undocumented settings - You may or may not change these (You should rather focus on the settings above)
releasealt=true
game_handles_close=false
fixnotresponding=false
hook=4
guard_lines=200
max_resolutions=0
limit_bltfast=false
game_handles_close=false
accuratetimers=false
fixpitch=true
fixwndprochook=false
novidmem=true
fixnotresponding=false
locktopleft=false
lock_surfaces=false
releasealt=true
gdilinear=false
allow_wmactivate=false
dinputhook=false
flipclear=false
fixmousehook=true
bpp=0
rgb555=false
hook_peekmessage=false
fpupreserve=true
no_dinput_hook=false
@@ -149,7 +141,7 @@ fpupreserve=true
; Switch between windowed and fullscreen mode = [Alt] + ???
keytogglefullscreen=0x0D
; Maximize window without frame = [Alt] + ???
; Maximize window = [Alt] + ???
keytogglemaximize=0x22
; Unlock cursor 1 = [Ctrl] + ???
@@ -180,27 +172,23 @@ maxgameticks=60
; Age of Empires
[empires]
renderer=opengl
nonexclusive=true
adjmouse=true
resolutions=2
; Age of Empires: The Rise of Rome
[empiresx]
renderer=opengl
nonexclusive=true
adjmouse=true
resolutions=2
; Age of Empires II
[EMPIRES2]
renderer=opengl
nonexclusive=true
adjmouse=true
; Age of Empires II: The Conquerors
[age2_x1]
renderer=opengl
nonexclusive=true
adjmouse=true
@@ -210,19 +198,37 @@ resolutions=2
guard_lines=300
minfps=-2
; Age of Wonders
[AoWSM]
windowed=true
fullscreen=false
renderer=gdi
hook=2
; Age of Wonders 2
[AoW2]
windowed=true
fullscreen=false
renderer=gdi
hook=2
resolutions=2
renderer=opengl
singlecpu=false
; Age of Wonders 2
[AoW2Compat]
resolutions=2
renderer=opengl
singlecpu=false
; Age of Wonders 2 Config Tool
[aow2Setup]
resolutions=2
; Age of Wonders: Shadow Magic
[AoWSM]
resolutions=2
renderer=opengl
singlecpu=false
; Age of Wonders: Shadow Magic
[AoWSMCompat]
resolutions=2
renderer=opengl
singlecpu=false
; Age of Wonders: Shadow Magic Config Tool
[AoWSMSetup]
resolutions=2
; Anstoss 3
[anstoss3]
@@ -237,10 +243,6 @@ adjmouse=true
[AN]
adjmouse=true
; Amerzone
[AMERZONE]
fpupreserve=true
; Atlantis
[ATLANTIS]
renderer=opengl
@@ -255,9 +257,13 @@ fixchilds=0
[BGMain]
resolutions=2
; BALDR FORCE EXE
[BaldrForce]
noactivateapp=true
; Blade & Sword
[comeon]
maxgameticks=62
maxgameticks=60
fixchilds=3
; Blood II - The Chosen / Shogo - Mobile Armor Division
@@ -267,26 +273,22 @@ noactivateapp=true
; Carmageddon
[CARMA95]
fpupreserve=true
noactivateapp=true
flipclear=true
; Carmageddon
[CARM95]
fpupreserve=true
noactivateapp=true
flipclear=true
; Carmageddon 2
[Carma2_SW]
fpupreserve=true
noactivateapp=true
; Captain Claw
[claw]
adjmouse=true
noactivateapp=true
fpupreserve=true
renderer=opengl
nonexclusive=true
; Command & Conquer: Sole Survivor
@@ -413,7 +415,6 @@ boxing=false
; Caesar III
[c3]
renderer=opengl
nonexclusive=true
adjmouse=true
@@ -432,25 +433,21 @@ adjmouse=true
; Close Combat 2: A Bridge Too Far
[cc2]
adjmouse=true
renderer=opengl
nonexclusive=true
; Close Combat 3: The Russian Front
[cc3]
adjmouse=true
renderer=opengl
nonexclusive=true
; Close Combat 4: The Battle of the Bulge
[cc4]
adjmouse=true
renderer=opengl
nonexclusive=true
; Close Combat 5: Invasion: Normandy
[cc5]
adjmouse=true
renderer=opengl
nonexclusive=true
; Call To Power 2
@@ -461,22 +458,12 @@ boxing=false
; Corsairs Gold
[corsairs]
adjmouse=true
renderer=gdi
hook=2
; Divine Divinity
[div]
resolutions=2
singlecpu=false
; Dune 2000
[dune2000]
fpupreserve=true
; Dune 2000 - CnCNet
[dune2000-spawn]
fpupreserve=true
; Dragon Throne: Battle of Red Cliffs
[AdSanguo]
maxgameticks=60
@@ -485,7 +472,6 @@ limit_bltfast=true
; Dark Reign: The Future of War
[DKReign]
renderer=opengl
maxgameticks=60
; Dungeon Keeper 2
@@ -500,9 +486,16 @@ adjmouse=false
maintas=false
boxing=false
; Diablo
[Diablo]
devmode=true
; Diablo: Hellfire
[hellfire]
devmode=true
; Escape Velocity Nova
[EV Nova]
renderer=opengl
devmode=true
hook_peekmessage=true
rgb555=true
@@ -514,21 +507,12 @@ adjmouse=true
maxgameticks=60
fixnotresponding=true
; Fallout
[falloutw]
dinputhook=true
; Fallout 2
[FALLOUT2]
dinputhook=true
; Fairy Tale About Father Frost, Ivan and Nastya
[mrazik]
guard_lines=0
; Future Cop - L.A.P.D.
[FCopLAPD]
renderer=opengl
nonexclusive=true
adjmouse=true
@@ -539,28 +523,32 @@ maxgameticks=60
; Gangsters: Organized Crime
[gangsters]
adjmouse=true
renderer=opengl
nonexclusive=true
; Grand Theft Auto
[Grand Theft Auto]
fixwndprochook=true
singlecpu=false
; Grand Theft Auto: London 1969
[gta_uk]
fixwndprochook=true
singlecpu=false
; Grand Theft Auto: London 1961
[Gta_61]
fixwndprochook=true
singlecpu=false
; Heroes of Might and Magic II: The Succession Wars
[HEROES2W]
adjmouse=true
; Heroes of Might and Magic III
[Heroes3]
game_handles_close=true
; Heroes of Might and Magic III HD Mod
[Heroes3 HD]
game_handles_close=true
; Hard Truck: Road to Victory
[htruck]
maxgameticks=25
@@ -570,13 +558,11 @@ noactivateapp=true
; Invictus
[Invictus]
adjmouse=true
fixwndprochook=true
renderer=opengl
; Interstate 76
[i76]
adjmouse=true
fpupreserve=true
; Infantry Online
[infantry]
@@ -591,7 +577,13 @@ singlecpu=false
fixmousehook=true
noactivateapp=true
releasealt=true
novidmem=true
; Jagged Alliance 2: Unfinished Business
[JA2UB]
singlecpu=false
fixmousehook=true
noactivateapp=true
releasealt=true
; Jagged Alliance 2: Wildfire
[WF6]
@@ -599,7 +591,6 @@ singlecpu=false
fixmousehook=true
noactivateapp=true
releasealt=true
novidmem=true
; Jagged Alliance 2 - UC mod
[JA2_UC]
@@ -607,7 +598,6 @@ singlecpu=false
fixmousehook=true
noactivateapp=true
releasealt=true
novidmem=true
; Jagged Alliance 2 - Vengeance Reloaded mod
[JA2_Vengeance]
@@ -615,7 +605,6 @@ singlecpu=false
fixmousehook=true
noactivateapp=true
releasealt=true
novidmem=true
; Kings Quest 8
[Mask]
@@ -636,12 +625,10 @@ vhack=true
; KKND2: Krossfire
[KKND2]
noactivateapp=true
renderer=gdi
hook=2
; Lionheart
[Lionheart]
locktopleft=true
hook_peekmessage=true
; Majesty Gold
[Majesty]
@@ -657,16 +644,10 @@ adjmouse=true
; Mech Warrior 3
[Mech3]
fpupreserve=true
nonexclusive=true
; Moorhuhn
[Moorhuhn]
dinputhook=true
; Moorhuhn 2
[Moorhuhn2]
dinputhook=true
releasealt=true
; New Robinson
@@ -687,7 +668,6 @@ adjmouse=true
; Pax Imperia
[Pax Imperia]
renderer=opengl
nonexclusive=true
; Railroad Tycoon II
@@ -699,24 +679,17 @@ adjmouse=true
adjmouse=true
fixchilds=1
; Septerra Core
[septerra]
hook=2
; Sim Copter
[SimCopter]
renderer=opengl
nonexclusive=true
; Settlers 3
[s3]
renderer=opengl
nonexclusive=true
; Star Trek - Armada
[Armada]
armadahack=true
renderer=opengl
nonexclusive=true
adjmouse=true
maintas=false
@@ -724,13 +697,11 @@ boxing=false
; Star Wars: Galactic Battlegrounds
[battlegrounds]
renderer=opengl
nonexclusive=true
adjmouse=true
; Star Wars: Galactic Battlegrounds: Clone Campaigns
[battlegrounds_x1]
renderer=opengl
nonexclusive=true
adjmouse=true
@@ -738,25 +709,30 @@ adjmouse=true
[StarCraft]
game_handles_close=true
; Stronghold Crusader HD
[Stronghold Crusader]
adjmouse=true
; Space Rangers
[Rangers]
locktopleft=true
hook_peekmessage=true
; Stronghold Crusader HD
[Stronghold Crusader]
resolutions=2
stronghold_hack=true
adjmouse=true
; Stronghold Crusader Extreme HD
[Stronghold_Crusader_Extreme]
resolutions=2
stronghold_hack=true
adjmouse=true
; Stronghold HD
[Stronghold]
resolutions=2
stronghold_hack=true
adjmouse=true
; Sim City 3000
[SC3]
fpupreserve=true
minfps=-2
; Shadow Watch
@@ -765,27 +741,22 @@ adjmouse=true
; Shadow Flare
[ShadowFlare]
renderer=opengl
nonexclusive=true
adjmouse=true
maintas=false
boxing=false
; Theme Park World
[TP]
fixwndprochook=true
; Total Annihilation (Unofficial Beta Patch v3.9.02)
[TotalA]
resolutions=2
lock_surfaces=true
singlecpu=false
fixwndprochook=true
; Total Annihilation Replay Viewer (Unofficial Beta Patch v3.9.02)
[Viewer]
resolutions=2
lock_surfaces=true
singlecpu=false
fixwndprochook=true
; Three Kingdoms: Fate of the Dragon
[sanguo]
@@ -793,16 +764,21 @@ maxgameticks=60
noactivateapp=true
limit_bltfast=true
; RollerCoaster Tycoon
[rct]
no_dinput_hook=true
singlecpu=false
maxfps=0
adjmouse=true
; Twisted Metal
[TWISTED]
renderer=opengl
nonexclusive=true
maxgameticks=25
minfps=5
; Twisted Metal 2
[Tm2]
renderer=opengl
nonexclusive=true
maxgameticks=60
adjmouse=true
@@ -829,7 +805,6 @@ adjmouse=true
fixmousehook=true
noactivateapp=true
releasealt=true
novidmem=true
; Worms Armageddon
[WA]
@@ -838,14 +813,9 @@ width=0
height=0
resizable=false
; Wizards and Warriors
[deep6]
renderer=gdi
hook=2
; War Wind
[WW]
renderer=opengl
minfps=-1
; Zeus and Poseidon
[Zeus]