diff --git a/gamedir/Shaders/cubic/catmull-rom-bilinear.glsl b/gamedir/Shaders/cubic/catmull-rom-bilinear.glsl index 55fb05d04..cfe00bff0 100644 --- a/gamedir/Shaders/cubic/catmull-rom-bilinear.glsl +++ b/gamedir/Shaders/cubic/catmull-rom-bilinear.glsl @@ -1,150 +1,137 @@ -/* - 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! -*/ - -#if defined(VERTEX) - -#if __VERSION__ >= 130 -#define COMPAT_VARYING out -#define COMPAT_ATTRIBUTE in -#define COMPAT_TEXTURE texture -#else -#define COMPAT_VARYING varying -#define COMPAT_ATTRIBUTE attribute -#define COMPAT_TEXTURE texture2D -#endif - -#ifdef GL_ES -#define COMPAT_PRECISION mediump -precision COMPAT_PRECISION float; -#else -#define COMPAT_PRECISION -#endif - -COMPAT_ATTRIBUTE vec4 VertexCoord; -COMPAT_ATTRIBUTE vec4 COLOR; -COMPAT_ATTRIBUTE vec4 TexCoord; -COMPAT_VARYING vec4 COL0; -COMPAT_VARYING vec4 TEX0; - -uniform mat4 MVPMatrix; -uniform COMPAT_PRECISION int FrameDirection; -uniform COMPAT_PRECISION int FrameCount; -uniform COMPAT_PRECISION vec2 OutputSize; -uniform COMPAT_PRECISION vec2 TextureSize; -uniform COMPAT_PRECISION vec2 InputSize; - -void main() -{ - gl_Position = MVPMatrix * VertexCoord; - COL0 = COLOR; - TEX0.xy = TexCoord.xy; -} - -#elif defined(FRAGMENT) - -#if __VERSION__ >= 130 -#define COMPAT_VARYING in -#define COMPAT_TEXTURE texture -out mediump vec4 FragColor; -#else -#define COMPAT_VARYING varying -#define FragColor gl_FragColor -#define COMPAT_TEXTURE texture2D -#endif - -#ifdef GL_ES -#ifdef GL_FRAGMENT_PRECISION_HIGH -precision highp float; -#else -precision mediump float; -#endif -#define COMPAT_PRECISION mediump -#else -#define COMPAT_PRECISION -#endif - -uniform COMPAT_PRECISION int FrameDirection; -uniform COMPAT_PRECISION int FrameCount; -uniform COMPAT_PRECISION vec2 OutputSize; -uniform COMPAT_PRECISION vec2 TextureSize; -uniform COMPAT_PRECISION vec2 InputSize; -uniform sampler2D Texture; -COMPAT_VARYING vec4 TEX0; - -// compatibility #defines -#define Source Texture -#define vTexCoord TEX0.xy - -#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 - // down the sample location to get the exact center of our "starting" texel. The starting texel will be at - // location [1, 1] in the grid, where [0, 0] is the top left corner. - vec2 samplePos = vTexCoord * SourceSize.xy; - vec2 texPos1 = floor(samplePos - 0.5) + 0.5; - - // Compute the fractional offset from our starting texel to our original sample location, which we'll - // feed into the Catmull-Rom spline function to get our filter weights. - vec2 f = samplePos - texPos1; - - // Compute the Catmull-Rom weights using the fractional offset that we calculated earlier. - // These equations are pre-expanded based on our knowledge of where the texels will be located, - // which lets us avoid having to evaluate a piece-wise function. - vec2 w0 = f * (-0.5 + f * (1.0 - 0.5 * f)); - 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. - vec2 w12 = w1 + w2; - vec2 offset12 = w2 / (w1 + w2); - - // Compute the final UV coordinates we'll use for sampling the texture - vec2 texPos0 = texPos1 - 1.; - vec2 texPos3 = texPos1 + 2.; - vec2 texPos12 = texPos1 + offset12; - - texPos0 *= SourceSize.zw; - 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)); - - 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)); - - 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)); - - // 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)); -} -#endif +/* + 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) + +#if __VERSION__ >= 130 +#define COMPAT_VARYING out +#define COMPAT_ATTRIBUTE in +#define COMPAT_TEXTURE texture +#else +#define COMPAT_VARYING varying +#define COMPAT_ATTRIBUTE attribute +#define COMPAT_TEXTURE texture2D +#endif + +#ifdef GL_ES +#define COMPAT_PRECISION mediump +precision COMPAT_PRECISION float; +#else +#define COMPAT_PRECISION +#endif + +COMPAT_ATTRIBUTE vec4 VertexCoord; +COMPAT_ATTRIBUTE vec4 COLOR; +COMPAT_ATTRIBUTE vec4 TexCoord; +COMPAT_VARYING vec4 COL0; +COMPAT_VARYING vec4 TEX0; + +uniform mat4 MVPMatrix; +uniform COMPAT_PRECISION int FrameDirection; +uniform COMPAT_PRECISION int FrameCount; +uniform COMPAT_PRECISION vec2 OutputSize; +uniform COMPAT_PRECISION vec2 TextureSize; +uniform COMPAT_PRECISION vec2 InputSize; + +void main() +{ + gl_Position = MVPMatrix * VertexCoord; + COL0 = COLOR; + TEX0.xy = TexCoord.xy; +} + +#elif defined(FRAGMENT) + +#if __VERSION__ >= 130 +#define COMPAT_VARYING in +#define COMPAT_TEXTURE texture +out mediump vec4 FragColor; +#else +#define COMPAT_VARYING varying +#define FragColor gl_FragColor +#define COMPAT_TEXTURE texture2D +#endif + +#ifdef GL_ES +#ifdef GL_FRAGMENT_PRECISION_HIGH +precision highp float; +#else +precision mediump float; +#endif +#define COMPAT_PRECISION mediump +#else +#define COMPAT_PRECISION +#endif + +uniform COMPAT_PRECISION int FrameDirection; +uniform COMPAT_PRECISION int FrameCount; +uniform COMPAT_PRECISION vec2 OutputSize; +uniform COMPAT_PRECISION vec2 TextureSize; +uniform COMPAT_PRECISION vec2 InputSize; +uniform sampler2D Texture; +COMPAT_VARYING vec4 TEX0; + +// compatibility #defines +#define Source Texture +#define vTexCoord TEX0.xy + +#define SourceSize vec4(TextureSize, 1.0 / TextureSize) //either TextureSize or InputSize +#define outsize vec4(OutputSize, 1.0 / OutputSize) + +void main() +{ + // We're going to sample a a 4x4 grid of texels surrounding the target UV coordinate. We'll do this by rounding + // down the sample location to get the exact center of our "starting" texel. The starting texel will be at + // location [1, 1] in the grid, where [0, 0] is the top left corner. + vec2 samplePos = vTexCoord * SourceSize.xy; + vec2 texPos1 = floor(samplePos - 0.5) + 0.5; + + // Compute the fractional offset from our starting texel to our original sample location, which we'll + // feed into the Catmull-Rom spline function to get our filter weights. + vec2 f = samplePos - texPos1; + + // Compute the Catmull-Rom weights using the fractional offset that we calculated earlier. + // These equations are pre-expanded based on our knowledge of where the texels will be located, + // which lets us avoid having to evaluate a piece-wise function. + vec2 w0 = f * (-0.5 + f * (1.0 - 0.5 * f)); + 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); + + // 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. + vec2 w12 = w1 + w2; + vec2 offset12 = w2 / (w1 + w2); + + // Compute the final UV coordinates we'll use for sampling the texture + vec2 texPos0 = texPos1 - 1.; + vec2 texPos3 = texPos1 + 2.; + vec2 texPos12 = texPos1 + offset12; + + texPos0 *= SourceSize.zw; + texPos3 *= SourceSize.zw; + texPos12 *= SourceSize.zw; + + 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; + + vec3 result = vec3(0.0f); + + 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; + + FragColor = vec4(result * (1./(wtm+wml+wmm+wmr+wbm)), 1.0); +} +#endif diff --git a/gamedir/ddraw.ini b/gamedir/ddraw.ini index d338ff0a2..8678dfa18 100644 --- a/gamedir/ddraw.ini +++ b/gamedir/ddraw.ini @@ -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]