2018-10-25 07:03:01 +02:00
# include <windows.h>
# include <stdio.h>
# include <d3d9.h>
2021-02-02 18:15:25 +01:00
# include "fps_limiter.h"
2020-10-13 09:20:52 +02:00
# include "config.h"
# include "dd.h"
2018-10-25 07:03:01 +02:00
# include "render_d3d9.h"
2020-10-13 09:20:52 +02:00
# include "render_gdi.h"
# include "render_ogl.h"
2019-04-06 05:35:23 +02:00
# include "hook.h"
2020-10-13 09:20:52 +02:00
# include "debug.h"
2022-09-08 06:57:15 +02:00
# include "dllmain.h"
2023-10-14 12:41:52 +02:00
# include "ini.h"
2024-05-06 01:23:59 +02:00
# include "versionhelpers.h"
2018-10-25 07:03:01 +02:00
2021-09-16 03:11:47 +02:00
static void cfg_init ( ) ;
2020-10-13 09:20:52 +02:00
static void cfg_create_ini ( ) ;
2023-09-22 00:38:42 +02:00
static BOOL cfg_get_bool ( LPCSTR key , BOOL default_value ) ;
static int cfg_get_int ( LPCSTR key , int default_value ) ;
static DWORD cfg_get_string ( LPCSTR key , LPCSTR default_value , LPSTR out_string , DWORD out_size ) ;
2024-06-01 07:29:48 +02:00
static DWORD cfg_get_game_section ( LPSTR buf , DWORD size ) ;
2018-10-25 07:03:01 +02:00
2023-09-22 01:47:00 +02:00
# define GET_INT(a,b,c) a = cfg_get_int(b, c); TRACE("%s=%d\n", b, a)
# define GET_BOOL(a,b,c) a = cfg_get_bool(b, c); TRACE("%s=%s\n", b, a ? "true" : "false")
# define GET_STRING(a,b,c,d) cfg_get_string(a, b, c, d); TRACE("%s=%s\n", a, c)
2021-06-11 20:30:43 +02:00
CNCDDRAWCONFIG g_config =
2023-11-14 17:16:23 +01:00
{ . window_rect = { . left = - 32000 , . top = - 32000 , . right = 0 , . bottom = 0 } , . window_state = - 1 , . upscaled_state = - 1 } ;
2020-10-13 09:20:52 +02:00
void cfg_load ( )
2018-10-25 07:03:01 +02:00
{
2021-09-16 03:11:47 +02:00
cfg_init ( ) ;
2018-10-25 07:03:01 +02:00
2024-02-03 21:44:15 +01:00
/* Optional settings */
2021-09-29 12:55:20 +02:00
2023-09-22 01:47:00 +02:00
GET_INT ( g_config . window_rect . right , " width " , 0 ) ;
GET_INT ( g_config . window_rect . bottom , " height " , 0 ) ;
GET_BOOL ( g_config . fullscreen , " fullscreen " , FALSE ) ;
GET_BOOL ( g_config . windowed , " windowed " , FALSE ) ;
GET_BOOL ( g_config . maintas , " maintas " , FALSE ) ;
2024-08-15 10:16:20 +02:00
GET_STRING ( " aspect_ratio " , " " , g_config . aspect_ratio , sizeof ( g_config . aspect_ratio ) ) ;
2024-08-16 07:51:05 +02:00
GET_BOOL ( g_config . boxing , " boxing " , FALSE ) ;
2023-09-22 01:47:00 +02:00
GET_INT ( g_config . maxfps , " maxfps " , - 1 ) ;
GET_BOOL ( g_config . vsync , " vsync " , FALSE ) ;
GET_BOOL ( g_config . adjmouse , " adjmouse " , TRUE ) ;
2024-02-08 22:54:16 +01:00
GET_STRING ( " shader " , " Shaders \\ interpolation \\ catmull-rom-bilinear.glsl " , g_config . shader , sizeof ( g_config . shader ) ) ;
2023-09-22 01:47:00 +02:00
GET_INT ( g_config . window_rect . left , " posX " , - 32000 ) ;
GET_INT ( g_config . window_rect . top , " posY " , - 32000 ) ;
GET_STRING ( " renderer " , " auto " , g_config . renderer , sizeof ( g_config . renderer ) ) ;
GET_BOOL ( g_config . devmode , " devmode " , FALSE ) ;
GET_BOOL ( g_config . border , " border " , TRUE ) ;
2023-09-22 02:08:26 +02:00
GET_INT ( g_config . save_settings , " savesettings " , 1 ) ;
2023-09-22 01:47:00 +02:00
GET_BOOL ( g_config . resizable , " resizable " , TRUE ) ;
GET_INT ( g_config . d3d9_filter , " d3d9_filter " , FILTER_CUBIC ) ;
2024-09-12 17:02:11 +02:00
GET_INT ( g_config . anti_aliased_fonts_min_size , " anti_aliased_fonts_min_size " , 13 ) ;
GET_INT ( g_config . min_font_size , " min_font_size " , 0 ) ;
2024-09-26 19:55:06 +02:00
GET_INT ( g_config . center_window , " center_window " , CENTER_WINDOW_AUTO ) ;
2024-10-03 14:13:59 +02:00
GET_STRING ( " inject_resolution " , " " , g_config . inject_resolution , sizeof ( g_config . inject_resolution ) ) ;
2023-09-22 01:47:00 +02:00
GET_BOOL ( g_config . vhack , " vhack " , FALSE ) ;
GET_STRING ( " screenshotdir " , " . \\ Screenshots \\ " , g_config . screenshot_dir , sizeof ( g_config . screenshot_dir ) ) ;
GET_BOOL ( g_config . toggle_borderless , " toggle_borderless " , FALSE ) ;
2023-11-14 17:16:23 +01:00
GET_BOOL ( g_config . toggle_upscaled , " toggle_upscaled " , FALSE ) ;
2020-09-30 10:14:30 +02:00
2023-09-22 00:38:42 +02:00
/* Compatibility settings */
2018-12-10 04:24:30 +01:00
2023-09-22 01:47:00 +02:00
GET_BOOL ( g_config . noactivateapp , " noactivateapp " , FALSE ) ;
GET_INT ( g_config . maxgameticks , " maxgameticks " , 0 ) ;
2024-05-31 21:43:33 +02:00
GET_INT ( g_config . limiter_type , " limiter_type " , LIMIT_AUTO ) ;
2023-09-23 17:48:06 +02:00
GET_INT ( g_config . minfps , " minfps " , 0 ) ;
2024-07-28 23:17:16 +02:00
GET_BOOL ( g_config . nonexclusive , " nonexclusive " , TRUE ) ;
2023-09-22 01:47:00 +02:00
GET_BOOL ( g_config . singlecpu , " singlecpu " , TRUE ) ;
GET_INT ( g_config . resolutions , " resolutions " , RESLIST_NORMAL ) ;
GET_INT ( g_config . fixchilds , " fixchilds " , FIX_CHILDS_DETECT_PAINT ) ;
2024-09-10 15:41:04 +02:00
GET_BOOL ( g_config . hook_peekmessage , " hook_peekmessage " , FALSE ) ;
2020-10-18 02:40:45 +02:00
2023-09-22 00:38:42 +02:00
/* Undocumented settings */
2023-08-19 23:14:34 +02:00
2024-09-12 18:11:08 +02:00
GET_BOOL ( g_config . fix_alt_key_stuck , " fix_alt_key_stuck " , FALSE ) ;
2023-09-22 01:47:00 +02:00
GET_BOOL ( GameHandlesClose , " game_handles_close " , FALSE ) ;
2024-09-12 18:11:08 +02:00
GET_BOOL ( g_config . fix_not_responding , " fix_not_responding " , FALSE ) ;
GET_BOOL ( g_config . no_compat_warning , " no_compat_warning " , FALSE ) ;
2023-09-22 01:47:00 +02:00
GET_INT ( g_config . guard_lines , " guard_lines " , 200 ) ;
GET_INT ( g_config . max_resolutions , " max_resolutions " , 0 ) ;
GET_BOOL ( g_config . lock_surfaces , " lock_surfaces " , FALSE ) ;
GET_BOOL ( g_config . flipclear , " flipclear " , FALSE ) ;
GET_BOOL ( g_config . rgb555 , " rgb555 " , FALSE ) ;
GET_BOOL ( g_config . no_dinput_hook , " no_dinput_hook " , FALSE ) ;
2024-05-12 21:35:28 +02:00
GET_BOOL ( g_config . center_cursor_fix , " center_cursor_fix " , FALSE ) ;
2024-05-22 23:23:27 +02:00
GET_STRING ( " fake_mode " , " " , g_config . fake_mode , sizeof ( g_config . fake_mode ) ) ;
2024-05-29 06:16:57 +02:00
GET_BOOL ( g_config . lock_mouse_top_left , " lock_mouse_top_left " , FALSE ) ;
2024-09-12 18:11:08 +02:00
GET_STRING ( " win_version " , " " , g_config . win_version , sizeof ( g_config . win_version ) ) ;
GET_INT ( g_config . hook , " hook " , 4 ) ;
2024-10-18 18:42:46 +02:00
GET_BOOL ( g_config . limit_gdi_handles , " limit_gdi_handles " , FALSE ) ;
2024-08-20 09:55:27 +02:00
GET_BOOL ( g_config . remove_menu , " remove_menu " , FALSE ) ;
2024-09-12 18:11:08 +02:00
GET_INT ( g_config . refresh_rate , " refresh_rate " , 0 ) ;
2018-10-25 07:03:01 +02:00
2023-09-22 00:38:42 +02:00
/* Hotkeys */
2018-10-25 07:03:01 +02:00
2023-09-22 01:47:00 +02:00
GET_INT ( g_config . hotkeys . toggle_fullscreen , " keytogglefullscreen " , VK_RETURN ) ;
2024-10-12 01:24:07 +02:00
GET_INT ( g_config . hotkeys . toggle_fullscreen2 , " keytogglefullscreen2 " , 0 ) ;
2023-09-22 01:47:00 +02:00
GET_INT ( g_config . hotkeys . toggle_maximize , " keytogglemaximize " , VK_NEXT ) ;
2024-10-12 01:24:07 +02:00
GET_INT ( g_config . hotkeys . toggle_maximize2 , " keytogglemaximize2 " , 0 ) ;
2023-09-22 01:47:00 +02:00
GET_INT ( g_config . hotkeys . unlock_cursor1 , " keyunlockcursor1 " , VK_TAB ) ;
GET_INT ( g_config . hotkeys . unlock_cursor2 , " keyunlockcursor2 " , VK_RCONTROL ) ;
GET_INT ( g_config . hotkeys . screenshot , " keyscreenshot " , VK_SNAPSHOT ) ;
2023-08-08 17:45:19 +02:00
2023-09-22 00:38:42 +02:00
/* Game specific settings */
2023-09-22 01:47:00 +02:00
GET_BOOL ( g_config . armadahack , " armadahack " , FALSE ) ;
GET_BOOL ( g_config . tshack , " tshack " , FALSE ) ;
GET_BOOL ( g_config . infantryhack , " infantryhack " , FALSE ) ;
GET_BOOL ( g_config . stronghold_hack , " stronghold_hack " , FALSE ) ;
GET_BOOL ( g_config . mgs_hack , " mgs_hack " , FALSE ) ;
2024-05-31 04:55:55 +02:00
GET_BOOL ( g_config . tlc_hack , " tlc_hack " , FALSE ) ;
2024-07-03 04:25:23 +02:00
GET_BOOL ( g_config . carma95_hack , " carma95_hack " , FALSE ) ;
2024-09-12 18:11:08 +02:00
GET_BOOL ( g_config . sirtech_hack , " sirtech_hack " , FALSE ) ;
2024-09-19 17:58:35 +02:00
GET_BOOL ( g_config . flightsim98_hack , " flightsim98_hack " , FALSE ) ;
2023-09-23 17:48:06 +02:00
GameHandlesClose = GameHandlesClose | | g_config . infantryhack ;
2023-10-17 18:13:35 +02:00
2024-05-29 06:16:57 +02:00
if ( g_config . lock_mouse_top_left )
g_config . adjmouse = FALSE ;
2024-08-15 10:16:20 +02:00
if ( g_config . aspect_ratio [ 0 ] )
g_config . maintas = TRUE ;
2023-10-17 18:13:35 +02:00
ini_free ( & g_config . ini ) ;
2018-10-25 07:03:01 +02:00
}
2020-10-13 09:20:52 +02:00
void cfg_save ( )
2018-10-25 07:03:01 +02:00
{
2020-10-13 09:20:52 +02:00
if ( ! g_config . save_settings )
2020-09-30 10:14:30 +02:00
return ;
2024-10-03 04:52:23 +02:00
/* Do not save settings while macOS maximize is active */
2024-10-03 04:27:04 +02:00
if ( IsMacOS ( ) & & ! g_config . window_rect . left & & ! g_config . window_rect . top )
return ;
2018-10-25 07:03:01 +02:00
char buf [ 16 ] ;
2021-06-11 20:30:43 +02:00
char * section = g_config . save_settings = = 1 ? " ddraw " : g_config . process_file_name ;
2018-10-25 07:03:01 +02:00
2020-10-13 09:20:52 +02:00
if ( g_config . window_rect . right )
2018-10-25 09:31:40 +02:00
{
2020-10-13 09:20:52 +02:00
sprintf ( buf , " %ld " , g_config . window_rect . right ) ;
WritePrivateProfileString ( section , " width " , buf , g_config . ini_path ) ;
2018-10-27 16:44:09 +02:00
}
2021-06-11 20:30:43 +02:00
2020-10-13 09:20:52 +02:00
if ( g_config . window_rect . bottom )
2018-10-27 16:44:09 +02:00
{
2020-10-13 09:20:52 +02:00
sprintf ( buf , " %ld " , g_config . window_rect . bottom ) ;
WritePrivateProfileString ( section , " height " , buf , g_config . ini_path ) ;
2018-10-27 16:44:09 +02:00
}
2020-10-13 09:20:52 +02:00
if ( g_config . window_rect . left ! = - 32000 )
2018-10-27 16:44:09 +02:00
{
2020-10-13 09:20:52 +02:00
sprintf ( buf , " %ld " , g_config . window_rect . left ) ;
WritePrivateProfileString ( section , " posX " , buf , g_config . ini_path ) ;
2018-10-25 09:31:40 +02:00
}
2020-10-13 09:20:52 +02:00
if ( g_config . window_rect . top ! = - 32000 )
2018-10-25 09:31:40 +02:00
{
2020-10-13 09:20:52 +02:00
sprintf ( buf , " %ld " , g_config . window_rect . top ) ;
WritePrivateProfileString ( section , " posY " , buf , g_config . ini_path ) ;
2018-11-07 23:28:19 +01:00
}
2020-10-13 09:20:52 +02:00
if ( g_config . window_state ! = - 1 )
2018-11-07 23:28:19 +01:00
{
2020-10-13 09:20:52 +02:00
WritePrivateProfileString ( section , " windowed " , g_config . window_state ? " true " : " false " , g_config . ini_path ) ;
2018-10-25 09:31:40 +02:00
}
2023-07-03 05:13:47 +02:00
2023-11-14 17:16:23 +01:00
if ( g_config . upscaled_state ! = - 1 )
2023-07-03 05:13:47 +02:00
{
2023-11-14 17:16:23 +01:00
WritePrivateProfileString ( section , " fullscreen " , g_config . upscaled_state ? " true " : " false " , g_config . ini_path ) ;
2023-07-03 05:13:47 +02:00
}
2018-10-25 07:03:01 +02:00
}
2020-10-13 09:20:52 +02:00
static void cfg_create_ini ( )
2018-10-25 07:03:01 +02:00
{
2021-06-11 20:30:43 +02:00
FILE * fh = fopen ( g_config . ini_path , " w " ) ;
2018-10-25 07:03:01 +02:00
if ( fh )
{
fputs (
2022-10-05 15:59:43 +02:00
" ; cnc-ddraw - https://github.com/FunkyFr3sh/cnc-ddraw \n "
2018-11-12 01:29:51 +01:00
" \n "
2018-10-25 07:03:01 +02:00
" [ddraw] \n "
2018-12-10 12:07:43 +01:00
" ; ### Optional settings ### \n "
" ; Use the following settings to adjust the look and feel to your liking \n "
" \n "
" \n "
2018-11-12 01:29:51 +01:00
" ; Stretch to custom resolution, 0 = defaults to the size game requests \n "
2018-10-25 07:03:01 +02:00
" width=0 \n "
" height=0 \n "
2018-11-12 01:29:51 +01:00
" \n "
2018-12-10 12:07:43 +01:00
" ; Override the width/height settings shown above and always stretch to fullscreen \n "
2018-11-12 01:29:51 +01:00
" ; Note: Can be combined with 'windowed=true' to get windowed-fullscreen aka borderless mode \n "
2018-10-25 07:03:01 +02:00
" fullscreen=false \n "
2018-11-12 01:29:51 +01:00
" \n "
2018-10-25 07:03:01 +02:00
" ; Run in windowed mode rather than going fullscreen \n "
" windowed=false \n "
2018-11-12 01:29:51 +01:00
" \n "
2021-06-16 05:57:19 +02:00
" ; Maintain aspect ratio \n "
2018-10-25 07:03:01 +02:00
" maintas=false \n "
2018-11-12 01:29:51 +01:00
" \n "
2024-08-16 07:51:05 +02:00
" ; Use custom aspect ratio - Example values: 4:3, 16:10, 16:9, 21:9 \n "
" aspect_ratio= \n "
" \n "
2021-06-16 05:57:19 +02:00
" ; Windowboxing / Integer Scaling \n "
2018-10-25 07:03:01 +02:00
" boxing=false \n "
2018-11-12 01:29:51 +01:00
" \n "
2018-11-20 13:52:19 +01:00
" ; Real rendering rate, -1 = screen rate, 0 = unlimited, n = cap \n "
2018-12-10 12:07:43 +01:00
" ; Note: Does not have an impact on the game speed, to limit your game speed use 'maxgameticks=' \n "
2021-02-18 11:14:26 +01:00
" maxfps=-1 \n "
2018-11-12 01:29:51 +01:00
" \n "
2023-08-08 17:45:19 +02:00
" ; Vertical synchronization, enable if you get tearing - (Requires 'renderer=auto/opengl*/direct3d9*') \n "
2020-10-06 21:08:29 +02:00
" ; Note: vsync=true can fix tearing but it will cause input lag \n "
2018-10-25 07:03:01 +02:00
" vsync=false \n "
2018-11-12 01:29:51 +01:00
" \n "
2021-06-16 05:57:19 +02:00
" ; Automatic mouse sensitivity scaling \n "
2018-11-12 01:29:51 +01:00
" ; Note: Only works if stretching is enabled. Sensitivity will be adjusted according to the size of the window \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2018-11-12 01:29:51 +01:00
" \n "
2023-08-08 17:45:19 +02:00
" ; Preliminary libretro shader support - (Requires 'renderer=opengl*') https://github.com/libretro/glsl-shaders \n "
2020-10-06 21:08:29 +02:00
" ; 2x scaling example: https://imgur.com/a/kxsM1oY - 4x scaling example: https://imgur.com/a/wjrhpFV \n "
2023-08-26 21:28:53 +02:00
" ; You can specify a full path to a .glsl shader file here or use one of the values listed below \n "
2023-08-29 18:24:32 +02:00
" ; Possible values: Nearest neighbor, Bilinear, Bicubic, Lanczos, xBR-lv2 \n "
2024-02-08 22:54:16 +01:00
" shader=Shaders \\ interpolation \\ catmull-rom-bilinear.glsl \n "
2018-11-12 01:29:51 +01:00
" \n "
2018-10-25 07:03:01 +02:00
" ; Window position, -32000 = center to screen \n "
" posX=-32000 \n "
" posY=-32000 \n "
2018-11-12 01:29:51 +01:00
" \n "
2023-08-08 17:45:19 +02:00
" ; Renderer, possible values: auto, opengl, openglcore, gdi, direct3d9, direct3d9on12 (auto = try direct3d9/opengl, fallback = gdi) \n "
2018-12-10 12:07:43 +01:00
" renderer=auto \n "
2018-11-12 01:29:51 +01:00
" \n "
" ; Developer mode (don't lock the cursor) \n "
2018-10-25 07:03:01 +02:00
" devmode=false \n "
2018-11-12 01:29:51 +01:00
" \n "
2018-12-10 12:07:43 +01:00
" ; Show window borders in windowed mode \n "
" border=true \n "
" \n "
2020-09-30 10:14:30 +02:00
" ; Save window position/size/state on game exit and restore it automatically on next game start \n "
" ; Possible values: 0 = disabled, 1 = save to global 'ddraw' section, 2 = save to game specific section \n "
2021-01-17 07:43:25 +01:00
" savesettings=1 \n "
2020-09-30 10:14:30 +02:00
" \n "
2021-06-05 02:51:24 +02:00
" ; Should the window be resizable by the user in windowed mode? \n "
2021-06-05 02:50:23 +02:00
" resizable=true \n "
2020-10-06 20:43:40 +02:00
" \n "
2023-08-08 17:45:19 +02:00
" ; Upscaling filter for the direct3d9* renderers \n "
2023-08-23 16:44:14 +02:00
" ; Possible values: 0 = nearest-neighbor, 1 = bilinear, 2 = bicubic, 3 = lanczos (bicubic/lanczos only support 16/32bit color depth games) \n "
2023-07-04 20:13:49 +02:00
" d3d9_filter=2 \n "
2021-01-17 22:49:42 +01:00
" \n "
2024-09-09 19:09:40 +02:00
" ; Disable font smoothing for fonts that are smaller than size X \n "
" anti_aliased_fonts_min_size=13 \n "
" \n "
" ; Raise the size of small fonts to X \n "
" min_font_size=0 \n "
" \n "
2024-09-26 19:55:06 +02:00
" ; Center window to screen when game changes the display resolution \n "
" ; Possible values: 0 = never center, 1 = automatic, 2 = always center \n "
" center_window=1 \n "
" \n "
2024-10-03 14:13:59 +02:00
" ; Inject a custom display resolution into the in-game resolution list - Example values: 960x540, 3840x2160 \n "
" ; Note: This setting can used for downscaling as well, you can insert resolutions higher than your monitor supports \n "
" inject_resolution= \n "
" \n "
2024-05-09 22:16:29 +02:00
" ; Enable upscale hack for high resolution patches (Supports C&C1, Red Alert 1, Worms 2 and KKND Xtreme) \n "
2021-05-15 00:41:50 +02:00
" vhack=false \n "
" \n "
2021-12-17 03:16:08 +01:00
" ; Where should screenshots be saved \n "
" screenshotdir=. \\ Screenshots \\ \n "
" \n "
2023-07-03 05:13:47 +02:00
" ; Switch between windowed/borderless modes with alt+enter rather than windowed/fullscreen modes \n "
" toggle_borderless=false \n "
" \n "
2023-11-14 17:16:23 +01:00
" ; Switch between windowed/fullscreen upscaled modes with alt+enter rather than windowed/fullscreen modes \n "
" toggle_upscaled=false \n "
" \n "
2018-12-10 12:07:43 +01:00
" \n "
2018-11-12 01:29:51 +01:00
" \n "
2018-12-10 12:07:43 +01:00
" ; ### Compatibility settings ### \n "
" ; Use the following settings in case there are any issues with the game \n "
" \n "
" \n "
2020-10-14 10:58:59 +02:00
" ; Hide WM_ACTIVATEAPP and WM_NCACTIVATE messages to prevent problems on alt+tab \n "
2018-12-10 12:07:43 +01:00
" noactivateapp=false \n "
" \n "
2021-02-19 03:24:11 +01:00
" ; Max game ticks per second, possible values: -1 = disabled, -2 = refresh rate, 0 = emulate 60hz vblank, 1-1000 = custom game speed \n "
2018-12-10 12:07:43 +01:00
" ; Note: Can be used to slow down a too fast running game, fix flickering or too fast animations \n "
2020-10-06 21:08:29 +02:00
" ; Note: Usually one of the following values will work: 60 / 30 / 25 / 20 / 15 (lower value = slower game speed) \n "
2018-10-31 11:48:41 +01:00
" maxgameticks=0 \n "
2018-11-12 01:29:51 +01:00
" \n "
2024-12-22 02:21:23 +01:00
" ; Method that should be used to limit game ticks (maxgameticks=): 0 = Automatic, 1 = TestCooperativeLevel, 2 = BltFast, 3 = Unlock, 4 = PeekMessage \n "
2024-05-31 21:43:33 +02:00
" limiter_type=0 \n "
" \n "
2021-05-29 15:29:57 +02:00
" ; Force minimum FPS, possible values: 0 = disabled, -1 = use 'maxfps=' value, -2 = same as -1 but force full redraw, 1-1000 = custom FPS \n "
2020-10-18 02:40:45 +02:00
" ; 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) \n "
" minfps=0 \n "
2020-01-23 08:58:22 +01:00
" \n "
2023-08-08 17:45:19 +02:00
" ; Disable fullscreen-exclusive mode for the direct3d9*/opengl* renderers \n "
2020-10-06 20:43:40 +02:00
" ; Note: Can be used in case some GUI elements like buttons/textboxes/videos/etc.. are invisible \n "
2024-07-28 23:17:16 +02:00
" nonexclusive=true \n "
2020-10-06 20:43:40 +02:00
" \n "
2020-09-27 05:13:15 +02:00
" ; Force CPU0 affinity, avoids crashes/freezing, *might* have a performance impact \n "
2023-08-13 20:35:36 +02:00
" ; Note: Disable this if the game is not running smooth or there are sound issues \n "
2020-09-27 05:13:15 +02:00
" singlecpu=true \n "
" \n "
2024-10-03 14:13:59 +02:00
" ; Available display resolutions, possible values: 0 = Small list, 1 = Very small list, 2 = Full list \n "
2023-08-11 19:05:11 +02:00
" ; Note: Set this to 2 if your chosen resolution is not working or does not show up in the list \n "
2023-08-13 20:35:36 +02:00
" ; Note: Set this to 1 if the game is crashing on startup \n "
2021-08-04 16:17:28 +02:00
" resolutions=0 \n "
" \n "
2024-08-17 14:23:29 +02:00
" ; Child window handling, possible values: 0 = Disabled, 1 = Display top left, 2 = Display top left + repaint, 3 = Hide, 4 = Display top left + hide \n "
2023-08-11 18:00:35 +02:00
" ; Note: Disables upscaling if a child window was detected (to ensure the game is fully playable, may look weird though) \n "
2021-08-10 14:12:06 +02:00
" fixchilds=2 \n "
" \n "
2024-09-12 17:48:51 +02:00
" ; Enable the following setting if your cursor doesn't lock to the window or it doesn't work properly when upscaling is enabled \n "
2024-09-10 15:41:04 +02:00
" hook_peekmessage=false \n "
" \n "
2023-08-11 18:00:35 +02:00
" \n "
2024-09-12 18:11:08 +02:00
" ; Undocumented compatibility settings - These will probably not solve your problem, you should rather focus on the settings above \n "
" fix_alt_key_stuck=false \n "
2023-08-11 18:00:35 +02:00
" game_handles_close=false \n "
2024-09-12 18:11:08 +02:00
" fix_not_responding=false \n "
" no_compat_warning=false \n "
2022-09-29 21:52:07 +02:00
" guard_lines=200 \n "
2022-10-11 23:13:04 +02:00
" max_resolutions=0 \n "
2022-09-17 13:46:45 +02:00
" lock_surfaces=false \n "
2022-09-13 07:41:01 +02:00
" flipclear=false \n "
2023-02-16 16:24:43 -08:00
" rgb555=false \n "
2023-07-28 13:53:57 +02:00
" no_dinput_hook=false \n "
2024-05-12 21:35:28 +02:00
" center_cursor_fix=false \n "
2024-05-22 23:23:27 +02:00
" ;fake_mode=640x480x32 \n "
2024-05-29 06:16:57 +02:00
" lock_mouse_top_left=false \n "
2024-09-03 18:07:16 +02:00
" ;win_version=95 \n "
2024-09-12 18:11:08 +02:00
" hook=4 \n "
2024-10-18 18:42:46 +02:00
" limit_gdi_handles=false \n "
2024-09-12 18:11:08 +02:00
" remove_menu=false \n "
" refresh_rate=0 \n "
2022-09-10 00:27:38 +02:00
" \n "
" \n "
2018-12-10 12:07:43 +01:00
" \n "
2021-09-29 12:55:20 +02:00
" ; ### Hotkeys ### \n "
" ; Use the following settings to configure your hotkeys, 0x00 = disabled \n "
" ; Virtual-Key Codes: https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes \n "
" \n "
" \n "
2021-09-29 13:12:23 +02:00
" ; Switch between windowed and fullscreen mode = [Alt] + ??? \n "
2021-09-29 12:55:20 +02:00
" keytogglefullscreen=0x0D \n "
" \n "
2024-10-12 01:24:07 +02:00
" ; Switch between windowed and fullscreen mode (single key) = ??? \n "
" keytogglefullscreen2=0x00 \n "
" \n "
2023-07-31 12:12:33 +02:00
" ; Maximize window = [Alt] + ??? \n "
2021-09-29 12:55:20 +02:00
" keytogglemaximize=0x22 \n "
" \n "
2024-10-12 01:24:07 +02:00
" ; Maximize window (single key) = ??? \n "
" keytogglemaximize2=0x00 \n "
" \n "
2021-09-29 13:12:23 +02:00
" ; Unlock cursor 1 = [Ctrl] + ??? \n "
2021-09-29 12:55:20 +02:00
" keyunlockcursor1=0x09 \n "
" \n "
2021-09-29 13:12:23 +02:00
" ; Unlock cursor 2 = [Right Alt] + ??? \n "
2021-09-29 12:55:20 +02:00
" keyunlockcursor2=0xA3 \n "
" \n "
" ; Screenshot \n "
" keyscreenshot=0x2C \n "
" \n "
" \n "
" \n "
2023-08-23 19:23:43 +02:00
" ; ### Config program settings ### \n "
" ; The following settings are for cnc-ddraw config.exe \n "
2023-08-21 12:34:45 +02:00
" \n "
" \n "
2024-08-01 09:27:01 +02:00
" ; cnc-ddraw config program language, possible values: auto, english, chinese, german, spanish, russian, hungarian, french, italian, vietnamese \n "
2023-08-23 19:23:43 +02:00
" configlang=auto \n "
" \n "
" ; cnc-ddraw config program theme, possible values: Windows10, Cobalt XEMedia \n "
" configtheme=Windows10 \n "
" \n "
2023-08-21 12:34:45 +02:00
" ; Hide the 'Compatibility Settings' tab in cnc-ddraw config \n "
" hide_compat_tab=false \n "
" \n "
" ; Allow the users to 'Restore default settings' via cnc-ddraw config \n "
" allow_reset=true \n "
" \n "
" \n "
" \n "
2018-12-10 12:07:43 +01:00
" ; ### Game specific settings ### \n "
" ; The following settings override all settings shown above, section name = executable name \n "
2018-11-12 01:29:51 +01:00
" \n "
" \n "
2024-12-14 02:01:38 +01:00
" ; 7th Legion \n "
" [legion] \n "
" maxgameticks=25 \n "
2024-12-14 19:11:31 +01:00
" singlecpu=false \n "
2024-12-14 02:01:38 +01:00
" \n "
2022-09-05 09:08:59 +02:00
" ; Atrox \n "
" [Atrox] \n "
2024-06-02 08:19:12 +02:00
" nonexclusive=true \n "
2022-09-05 09:08:59 +02:00
" \n "
2021-06-04 02:01:47 +02:00
" ; Atomic Bomberman \n "
" [BM] \n "
" maxgameticks=60 \n "
2018-11-14 09:12:56 +01:00
" \n "
2018-11-12 01:29:51 +01:00
" ; Age of Empires \n "
2018-10-29 05:47:01 +01:00
" [empires] \n "
2021-06-06 03:01:33 +02:00
" nonexclusive=true \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2021-06-10 03:50:07 +02:00
" resolutions=2 \n "
2018-10-29 05:47:01 +01:00
" \n "
2018-11-12 01:29:51 +01:00
" ; Age of Empires: The Rise of Rome \n "
2018-10-29 05:47:01 +01:00
" [empiresx] \n "
2021-06-06 03:01:33 +02:00
" nonexclusive=true \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2021-06-10 03:50:07 +02:00
" resolutions=2 \n "
2018-10-29 05:47:01 +01:00
" \n "
2024-07-08 23:29:04 +02:00
" ; Age of Empires: The Rise of Rome (RockNRor patch) \n "
" [EmpiresX_RockNRor] \n "
" nonexclusive=true \n "
" adjmouse=true \n "
" resolutions=2 \n "
" \n "
2018-11-12 01:29:51 +01:00
" ; Age of Empires II \n "
2018-10-26 05:27:10 +02:00
" [EMPIRES2] \n "
2021-06-06 03:01:33 +02:00
" nonexclusive=true \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2018-10-26 05:27:10 +02:00
" \n "
2018-11-12 01:29:51 +01:00
" ; Age of Empires II: The Conquerors \n "
2018-10-26 06:06:09 +02:00
" [age2_x1] \n "
2021-06-06 03:01:33 +02:00
" nonexclusive=true \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2018-10-26 06:06:09 +02:00
" \n "
2024-12-12 06:59:07 +01:00
" ; Abomination - The Nemesis Project \n "
" [abomb] \n "
" singlecpu=false \n "
" \n "
2022-09-22 10:43:08 +02:00
" ; American Conquest / Cossacks \n "
2021-06-04 15:36:50 +02:00
" [DMCR] \n "
2022-09-22 09:56:28 +02:00
" resolutions=2 \n "
2023-03-24 06:27:13 +01:00
" guard_lines=300 \n "
2021-06-04 15:36:50 +02:00
" minfps=-2 \n "
" \n "
2024-05-22 23:51:48 +02:00
" ; American Girls Dress Designer \n "
" [Dress Designer] \n "
" fake_mode=640x480x32 \n "
2024-05-28 22:23:47 +02:00
" nonexclusive=true \n "
2024-05-22 23:51:48 +02:00
" \n "
2024-10-16 16:48:19 +02:00
" ; Age of Wonders \n "
" [AoW] \n "
" resolutions=2 \n "
" nonexclusive=false \n "
" singlecpu=false \n "
" \n "
" ; Age of Wonders \n "
" [AoWCompat] \n "
" resolutions=2 \n "
" nonexclusive=false \n "
" singlecpu=false \n "
" \n "
" ; Age of Wonders Config Tool \n "
" [AoWSetup] \n "
" resolutions=2 \n "
" \n "
2021-06-04 02:01:47 +02:00
" ; Age of Wonders 2 \n "
" [AoW2] \n "
2023-08-11 13:13:10 +02:00
" resolutions=2 \n "
2024-08-20 11:01:48 +02:00
" nonexclusive=false \n "
2023-07-29 09:19:48 +02:00
" singlecpu=false \n "
" \n "
" ; Age of Wonders 2 \n "
" [AoW2Compat] \n "
2023-08-11 13:13:10 +02:00
" resolutions=2 \n "
2024-08-20 11:01:48 +02:00
" nonexclusive=false \n "
2023-07-29 09:19:48 +02:00
" singlecpu=false \n "
" \n "
2023-08-11 13:13:10 +02:00
" ; Age of Wonders 2 Config Tool \n "
" [aow2Setup] \n "
" resolutions=2 \n "
" \n "
2023-07-29 09:19:48 +02:00
" ; Age of Wonders: Shadow Magic \n "
" [AoWSM] \n "
2023-08-11 13:13:10 +02:00
" resolutions=2 \n "
2024-08-20 11:01:48 +02:00
" nonexclusive=false \n "
2023-07-29 09:19:48 +02:00
" singlecpu=false \n "
" \n "
" ; Age of Wonders: Shadow Magic \n "
" [AoWSMCompat] \n "
2023-08-11 13:13:10 +02:00
" resolutions=2 \n "
2024-08-20 11:01:48 +02:00
" nonexclusive=false \n "
2023-07-29 09:19:48 +02:00
" singlecpu=false \n "
2021-06-04 02:01:47 +02:00
" \n "
2023-08-11 13:13:10 +02:00
" ; Age of Wonders: Shadow Magic Config Tool \n "
" [AoWSMSetup] \n "
" resolutions=2 \n "
" \n "
2021-06-04 02:01:47 +02:00
" ; Anstoss 3 \n "
" [anstoss3] \n "
" renderer=gdi \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2021-06-04 02:01:47 +02:00
" \n "
" ; Anno 1602 \n "
" [1602] \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2018-10-30 19:38:32 +01:00
" \n "
2024-12-18 08:46:27 +01:00
" ; Army Men: World War / Army Men: Operation Meltdown \n "
" [amww] \n "
" maxfps=60 \n "
" maxgameticks=120 \n "
" minfps=-1 \n "
" \n "
2024-12-18 08:53:08 +01:00
" ; Army Men: Air Tactics \n "
" [Amat] \n "
" maxfps=60 \n "
" maxgameticks=120 \n "
" minfps=-1 \n "
" \n "
" ; Army Men: Toys in Space \n "
" [ARMYMENTIS] \n "
" maxfps=60 \n "
" maxgameticks=120 \n "
" minfps=-1 \n "
" \n "
2024-12-18 08:46:27 +01:00
" ; Army Men 2 \n "
" [ArmyMen2] \n "
" maxfps=60 \n "
" maxgameticks=120 \n "
" minfps=-1 \n "
" \n "
2021-06-04 02:01:47 +02:00
" ; Alien Nations \n "
" [AN] \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2021-06-04 02:01:47 +02:00
" \n "
2024-11-23 00:10:58 +01:00
" ; Another War \n "
" [AnotherWar] \n "
" singlecpu=false \n "
" \n "
2021-06-04 02:01:47 +02:00
" ; Atlantis \n "
" [ATLANTIS] \n "
2021-08-08 23:03:35 +02:00
" renderer=opengl \n "
2018-10-31 11:48:41 +01:00
" maxgameticks=60 \n "
2024-05-12 21:35:28 +02:00
" center_cursor_fix=true \n "
2018-10-31 00:33:21 +01:00
" \n "
2022-02-04 05:11:15 +01:00
" ; Airline Tycoon Deluxe \n "
" [AT] \n "
2024-06-25 23:14:11 +02:00
" lock_mouse_top_left=true \n "
2024-06-25 02:30:32 +02:00
" fixchilds=3 \n "
2022-02-04 05:11:15 +01:00
" \n "
2024-05-30 02:34:53 +02:00
" ; Arthur's Wilderness Rescue \n "
2024-05-30 03:00:57 +02:00
" [Arthur] \n "
2024-05-30 02:34:53 +02:00
" renderer=gdi \n "
" \n "
2024-08-30 12:06:21 +02:00
" ; Axis & Allies \n "
" [AxisAllies] \n "
2024-09-10 15:41:04 +02:00
" hook_peekmessage=true \n "
2024-08-30 12:06:21 +02:00
" maxgameticks=60 \n "
" \n "
2024-09-18 18:06:53 +02:00
" ; A Bug's Life Action Game \n "
" [bugs] \n "
" fix_not_responding=true \n "
" \n "
2024-09-08 08:21:05 +02:00
" ; Barney - Secret of the Rainbow \n "
" [Barney] \n "
" adjmouse=false \n "
" width=0 \n "
" height=0 \n "
" resizable=false \n "
" maintas=false \n "
" boxing=false \n "
" \n "
2022-10-15 20:05:44 +02:00
" ; Baldur's Gate II \n "
2022-10-15 20:11:43 +02:00
" ; Note: 'Use 3D Acceleration' must be disabled and 'Full Screen' must be enabled in BGConfig.exe \n "
2022-10-15 20:05:44 +02:00
" [BGMain] \n "
" resolutions=2 \n "
" \n "
2024-09-25 16:55:34 +02:00
" ; Balls of Steel v1.2 \n "
" [bos] \n "
2024-12-19 20:41:01 +01:00
" checkfile=. \\ barbarin.ddp \n "
2024-09-25 16:55:34 +02:00
" win_version=95 \n "
" \n "
2023-07-18 19:21:18 +02:00
" ; BALDR FORCE EXE \n "
" [BaldrForce] \n "
" noactivateapp=true \n "
" \n "
2021-06-04 02:01:47 +02:00
" ; Blade & Sword \n "
" [comeon] \n "
2023-08-01 13:54:22 +02:00
" maxgameticks=60 \n "
2021-08-10 16:45:40 +02:00
" fixchilds=3 \n "
2018-11-01 20:09:42 +01:00
" \n "
2021-06-06 03:01:33 +02:00
" ; Blood II - The Chosen / Shogo - Mobile Armor Division \n "
" [Client] \n "
" checkfile=. \\ SOUND.REZ \n "
" noactivateapp=true \n "
" \n "
2024-06-03 08:55:58 +02:00
" ; Blue's 123 Time Activities \n "
" [Blues123Time] \n "
" renderer=gdi \n "
" hook=3 \n "
" \n "
" ; Blue's Treasure Hunt \n "
" [Blue'sTreasureHunt-Disc1] \n "
" renderer=gdi \n "
" \n "
" ; Blue's Treasure Hunt \n "
" [Blue'sTreasureHunt-Disc2] \n "
" renderer=gdi \n "
" \n "
2024-06-03 20:09:37 +02:00
" ; Blue's Reading Time Activities \n "
" [Blue's Reading Time] \n "
" renderer=gdi \n "
" \n "
" ; Blue's ArtTime Activities \n "
" [ArtTime] \n "
" renderer=gdi \n "
" \n "
2024-08-17 07:37:43 +02:00
" ; Callus 95 - CPS-1 (Capcom Play System 1) emulator \n "
" [CALLUS95] \n "
2024-08-21 08:53:08 +02:00
" game_handles_close=true \n "
2024-08-21 04:54:06 +02:00
" windowed=true \n "
2024-08-21 04:56:49 +02:00
" toggle_borderless=true \n "
2024-08-17 07:37:43 +02:00
" devmode=true \n "
" \n "
" ; Callus 95 - CPS-1 (Capcom Play System 1) emulator \n "
" [CALLUS95p] \n "
2024-08-21 08:53:08 +02:00
" game_handles_close=true \n "
2024-08-21 04:54:06 +02:00
" windowed=true \n "
2024-08-21 04:56:49 +02:00
" toggle_borderless=true \n "
2024-08-17 07:37:43 +02:00
" devmode=true \n "
" \n "
2021-06-04 02:01:47 +02:00
" ; Carmageddon \n "
" [CARMA95] \n "
2022-09-13 07:41:01 +02:00
" flipclear=true \n "
2024-07-03 04:24:27 +02:00
" carma95_hack=true \n "
2021-06-04 02:01:47 +02:00
" \n "
" ; Carmageddon \n "
" [CARM95] \n "
2022-09-13 07:41:58 +02:00
" flipclear=true \n "
2024-07-03 04:24:27 +02:00
" carma95_hack=true \n "
2018-11-01 20:09:42 +01:00
" \n "
2024-05-28 20:53:50 +02:00
" ; Carmen Sandiego's Great Chase - NOT WORKING YET \n "
" [TIME32] \n "
" renderer=gdi \n "
2024-05-29 06:18:00 +02:00
" adjmouse=false \n "
2024-05-28 20:53:50 +02:00
" width=0 \n "
" height=0 \n "
" resizable=false \n "
" maintas=false \n "
" boxing=false \n "
" \n "
2021-06-18 03:51:12 +02:00
" ; Captain Claw \n "
" [claw] \n "
2023-08-04 10:18:47 +02:00
" adjmouse=true \n "
2021-06-18 03:51:12 +02:00
" noactivateapp=true \n "
2023-07-02 17:16:47 +02:00
" nonexclusive=true \n "
2021-06-18 03:51:12 +02:00
" \n "
2024-11-23 00:10:58 +01:00
" ; Championship Manager 99-00 \n "
" [cm9900] \n "
" singlecpu=false \n "
" \n "
2022-02-25 00:18:02 +01:00
" ; Command & Conquer: Sole Survivor \n "
" [SOLE] \n "
" maxgameticks=120 \n "
" maxfps=60 \n "
" minfps=-1 \n "
" \n "
2021-06-04 15:36:50 +02:00
" ; Command & Conquer Gold - CnCNet \n "
" [cnc95] \n "
" maxfps=125 \n "
" \n "
2021-06-04 02:01:47 +02:00
" ; Command & Conquer Gold \n "
" [C&C95] \n "
" maxgameticks=120 \n "
" maxfps=60 \n "
" minfps=-1 \n "
2021-06-21 01:45:52 +02:00
" \n "
" ; Command & Conquer: Red Alert - CnCNet \n "
" [ra95-spawn] \n "
" maxfps=125 \n "
2021-06-04 02:01:47 +02:00
" \n "
" ; Command & Conquer: Red Alert \n "
" [ra95] \n "
" maxgameticks=120 \n "
" maxfps=60 \n "
" minfps=-1 \n "
2021-06-21 01:45:52 +02:00
" \n "
" ; Command & Conquer: Red Alert \n "
" [ra95_Mod-Launcher] \n "
" maxgameticks=120 \n "
" maxfps=60 \n "
" minfps=-1 \n "
2021-06-04 02:01:47 +02:00
" \n "
" ; Command & Conquer: Red Alert \n "
" [ra95p] \n "
" maxfps=60 \n "
" minfps=-1 \n "
2018-11-09 20:39:45 +01:00
" \n "
2019-04-03 03:13:39 +02:00
" ; Command & Conquer: Tiberian Sun / Command & Conquer: Red Alert 2 \n "
2018-11-15 10:47:18 +01:00
" [game] \n "
2024-07-28 23:17:16 +02:00
" nonexclusive=false \n "
2019-04-03 03:13:39 +02:00
" checkfile=. \\ blowfish.dll \n "
2021-06-18 12:18:35 +02:00
" tshack=true \n "
2018-11-16 07:56:32 +01:00
" noactivateapp=true \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2018-11-30 02:55:51 +01:00
" maxfps=60 \n "
2020-10-18 02:40:45 +02:00
" minfps=-1 \n "
2021-06-16 05:57:19 +02:00
" maintas=false \n "
" boxing=false \n "
2018-11-15 10:47:18 +01:00
" \n "
2019-01-28 20:25:45 +01:00
" ; Command & Conquer: Tiberian Sun Demo \n "
" [SUN] \n "
2024-07-28 23:17:16 +02:00
" nonexclusive=false \n "
2019-01-28 20:25:45 +01:00
" noactivateapp=true \n "
2021-06-18 12:18:35 +02:00
" tshack=true \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2019-01-28 20:25:45 +01:00
" maxfps=60 \n "
2020-10-18 02:40:45 +02:00
" minfps=-1 \n "
2021-06-16 05:57:19 +02:00
" maintas=false \n "
" boxing=false \n "
2019-01-28 20:25:45 +01:00
" \n "
2019-01-28 20:40:20 +01:00
" ; Command & Conquer: Tiberian Sun - CnCNet \n "
2018-11-15 10:47:18 +01:00
" [ts-spawn] \n "
2024-07-28 23:17:16 +02:00
" nonexclusive=false \n "
2018-11-16 07:56:32 +01:00
" noactivateapp=true \n "
2021-06-18 12:18:35 +02:00
" tshack=true \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2018-11-30 02:55:51 +01:00
" maxfps=60 \n "
2020-10-18 02:40:45 +02:00
" minfps=-1 \n "
2021-06-16 05:57:19 +02:00
" maintas=false \n "
" boxing=false \n "
2018-11-15 10:47:18 +01:00
" \n "
2019-01-28 20:32:58 +01:00
" ; Command & Conquer: Red Alert 2 - XWIS \n "
" [ra2] \n "
2024-07-28 23:17:16 +02:00
" nonexclusive=false \n "
2019-01-28 20:32:58 +01:00
" noactivateapp=true \n "
2021-06-18 12:18:35 +02:00
" tshack=true \n "
2019-01-28 20:32:58 +01:00
" maxfps=60 \n "
2020-10-18 02:40:45 +02:00
" minfps=-1 \n "
2021-06-16 05:57:19 +02:00
" maintas=false \n "
" boxing=false \n "
2019-01-28 20:32:58 +01:00
" \n "
" ; Command & Conquer: Red Alert 2 - XWIS \n "
" [Red Alert 2] \n "
2024-07-28 23:17:16 +02:00
" nonexclusive=false \n "
2019-01-28 20:32:58 +01:00
" noactivateapp=true \n "
2021-06-18 12:18:35 +02:00
" tshack=true \n "
2019-01-28 20:32:58 +01:00
" maxfps=60 \n "
2020-10-18 02:40:45 +02:00
" minfps=-1 \n "
2021-06-16 05:57:19 +02:00
" maintas=false \n "
" boxing=false \n "
2019-01-28 20:32:58 +01:00
" \n "
2018-11-15 10:47:18 +01:00
" ; Command & Conquer: Red Alert 2: Yuri's Revenge \n "
" [gamemd] \n "
2024-07-28 23:17:16 +02:00
" nonexclusive=false \n "
2018-11-16 07:56:32 +01:00
" noactivateapp=true \n "
2021-06-18 12:18:35 +02:00
" tshack=true \n "
2018-11-30 02:55:51 +01:00
" maxfps=60 \n "
2020-10-18 02:40:45 +02:00
" minfps=-1 \n "
2021-06-16 05:57:19 +02:00
" maintas=false \n "
" boxing=false \n "
2018-11-15 10:47:18 +01:00
" \n "
2020-01-22 07:23:27 +01:00
" ; Command & Conquer: Red Alert 2: Yuri's Revenge - ?ModExe? \n "
" [ra2md] \n "
2024-07-28 23:17:16 +02:00
" nonexclusive=false \n "
2020-01-22 07:23:27 +01:00
" noactivateapp=true \n "
2021-06-18 12:18:35 +02:00
" tshack=true \n "
2020-01-22 07:23:27 +01:00
" maxfps=60 \n "
2020-10-18 02:40:45 +02:00
" minfps=-1 \n "
2021-06-16 05:57:19 +02:00
" maintas=false \n "
" boxing=false \n "
2020-01-22 07:23:27 +01:00
" \n "
2019-01-28 20:40:20 +01:00
" ; Command & Conquer: Red Alert 2: Yuri's Revenge - CnCNet \n "
2018-11-15 10:47:18 +01:00
" [gamemd-spawn] \n "
2024-07-28 23:17:16 +02:00
" nonexclusive=false \n "
2018-11-16 07:56:32 +01:00
" noactivateapp=true \n "
2021-06-18 12:18:35 +02:00
" tshack=true \n "
2018-11-30 02:55:51 +01:00
" maxfps=60 \n "
2020-10-18 02:40:45 +02:00
" minfps=-1 \n "
2021-06-16 05:57:19 +02:00
" maintas=false \n "
" boxing=false \n "
2018-11-15 10:47:18 +01:00
" \n "
2019-01-28 20:40:20 +01:00
" ; Command & Conquer: Red Alert 2: Yuri's Revenge - XWIS \n "
" [Yuri's Revenge] \n "
2024-07-28 23:17:16 +02:00
" nonexclusive=false \n "
2019-01-28 20:40:20 +01:00
" noactivateapp=true \n "
2021-06-18 12:18:35 +02:00
" tshack=true \n "
2019-01-28 20:40:20 +01:00
" maxfps=60 \n "
2020-10-18 02:40:45 +02:00
" minfps=-1 \n "
2021-06-16 05:57:19 +02:00
" maintas=false \n "
" boxing=false \n "
2019-01-28 20:40:20 +01:00
" \n "
2023-09-09 16:21:37 +02:00
" ; Commandos \n "
" [comandos] \n "
" maxgameticks=-1 \n "
" \n "
" ; Commandos \n "
" [comandos_w10] \n "
" maxgameticks=-1 \n "
" \n "
2024-08-25 09:07:50 +02:00
" ; Constructor \n "
" [Game_W95] \n "
" noactivateapp=true \n "
" \n "
2021-06-04 02:01:47 +02:00
" ; Caesar III \n "
" [c3] \n "
2021-06-06 03:01:33 +02:00
" nonexclusive=true \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2021-06-04 02:01:47 +02:00
" \n "
" ; Chris Sawyer's Locomotion \n "
2024-09-01 13:32:03 +02:00
" [LOCO/2] \n "
" checkfile=. \\ LOCO.EXE \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2021-06-04 02:01:47 +02:00
" \n "
" ; Cultures 2 \n "
" [Cultures2] \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2021-06-04 02:01:47 +02:00
" \n "
" ; Cultures 2 MP \n "
" [Cultures2MP] \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2021-06-04 02:01:47 +02:00
" \n "
" ; Close Combat 2: A Bridge Too Far \n "
" [cc2] \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2020-10-06 20:48:43 +02:00
" nonexclusive=true \n "
2020-10-02 22:33:07 +02:00
" \n "
2021-06-04 02:01:47 +02:00
" ; Close Combat 3: The Russian Front \n "
" [cc3] \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2020-10-06 20:45:20 +02:00
" nonexclusive=true \n "
2020-09-23 04:37:28 +02:00
" \n "
2021-06-04 02:01:47 +02:00
" ; Close Combat 4: The Battle of the Bulge \n "
" [cc4] \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2021-06-04 02:01:47 +02:00
" nonexclusive=true \n "
2020-09-24 10:29:18 +02:00
" \n "
2021-06-04 02:01:47 +02:00
" ; Close Combat 5: Invasion: Normandy \n "
" [cc5] \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2021-06-04 02:01:47 +02:00
" nonexclusive=true \n "
2020-09-24 10:29:18 +02:00
" \n "
2024-06-01 06:30:00 +02:00
" ; ClueFinders Math Adventures 1.0 \n "
" [TCFM32] \n "
" adjmouse=false \n "
" width=0 \n "
" height=0 \n "
" resizable=false \n "
" maintas=false \n "
" boxing=false \n "
" \n "
" ; ClueFinders Math Adventures 1.0 \n "
" [cfmath32] \n "
" adjmouse=false \n "
" width=0 \n "
" height=0 \n "
" resizable=false \n "
" maintas=false \n "
" boxing=false \n "
" \n "
2021-06-04 02:01:47 +02:00
" ; Call To Power 2 \n "
" [ctp2] \n "
2021-06-18 06:11:13 +02:00
" maintas=false \n "
" boxing=false \n "
2021-06-04 02:01:47 +02:00
" \n "
" ; Corsairs Gold \n "
" [corsairs] \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2020-09-24 10:29:18 +02:00
" \n "
2022-09-05 03:53:59 +02:00
" ; Divine Divinity \n "
" [div] \n "
" resolutions=2 \n "
" singlecpu=false \n "
" \n "
2024-12-18 07:34:36 +01:00
" ; Die by the Sword \n "
" [windie] \n "
" maxgameticks=30 \n "
" \n "
2021-06-15 09:40:55 +02:00
" ; Dragon Throne: Battle of Red Cliffs \n "
" [AdSanguo] \n "
" maxgameticks=60 \n "
" noactivateapp=true \n "
2024-05-31 21:43:33 +02:00
" limiter_type=2 \n "
2021-06-15 09:40:55 +02:00
" \n "
2021-06-04 02:01:47 +02:00
" ; Dark Reign: The Future of War \n "
" [DKReign] \n "
" maxgameticks=60 \n "
" \n "
2020-10-15 08:09:13 +02:00
" ; Dungeon Keeper 2 \n "
" [DKII] \n "
" maxgameticks=60 \n "
" noactivateapp=true \n "
" \n "
2024-12-14 04:37:57 +01:00
" ; Dreams to Realty \n "
" [windream] \n "
" maxgameticks=60 \n "
" \n "
2021-06-18 06:06:11 +02:00
" ; Deadlock 2 \n "
" [DEADLOCK] \n "
2021-08-10 14:12:06 +02:00
" fixchilds=0 \n "
2021-06-18 06:06:11 +02:00
" adjmouse=false \n "
2021-06-18 06:11:13 +02:00
" maintas=false \n "
" boxing=false \n "
2021-06-18 06:06:11 +02:00
" \n "
2023-07-18 02:22:07 +02:00
" ; Diablo \n "
" [Diablo] \n "
" devmode=true \n "
" \n "
" ; Diablo: Hellfire \n "
" [hellfire] \n "
" devmode=true \n "
" \n "
2024-09-02 17:30:24 +02:00
" ; Disney Trivia Challenge \n "
" [DisneyTr] \n "
2024-09-02 18:01:25 +02:00
" fixchilds=3 \n "
" lock_mouse_top_left=true \n "
" renderer=gdi \n "
2024-09-02 17:30:24 +02:00
" \n "
2024-11-23 04:13:50 +01:00
" ; Discoworld Noir \n "
" [dn] \n "
" fake_mode=640x480x16 \n "
" \n "
2024-12-25 02:19:33 +01:00
" ; Dominion - Storm Over Gift 3 \n "
" [dominion] \n "
" flipclear=true \n "
" \n "
2024-12-12 06:59:07 +01:00
" ; Excalibur 2555AD \n "
" [_FISH] \n "
" singlecpu=false \n "
" \n "
2023-02-27 20:45:08 +13:00
" ; Escape Velocity Nova \n "
" [EV Nova] \n "
2024-02-01 18:19:46 +01:00
" nonexclusive=true \n "
2024-09-10 15:41:04 +02:00
" hook_peekmessage=true \n "
2023-02-27 20:45:08 +13:00
" rgb555=true \n "
" keytogglefullscreen=0x46 \n "
2023-02-27 18:43:06 +01:00
" adjmouse=true \n "
2023-02-27 20:45:08 +13:00
" \n "
2021-08-18 16:25:45 +02:00
" ; Economic War \n "
" [EcoW] \n "
" maxgameticks=60 \n "
2024-09-12 18:11:08 +02:00
" fix_not_responding=true \n "
2021-08-18 16:25:45 +02:00
" \n "
2024-07-25 23:53:17 +02:00
" ; Emperor: Rise of the Middle Kingdom \n "
" [Emperor] \n "
" nonexclusive=true \n "
2024-07-28 04:39:22 +02:00
" adjmouse=true \n "
2024-07-25 23:53:17 +02:00
" \n "
2024-09-10 15:41:04 +02:00
" ; Enemy Infestation \n "
" [EI] \n "
2024-09-11 16:16:59 +02:00
" hook_peekmessage=true \n "
2024-09-10 15:41:04 +02:00
" \n "
2024-12-14 02:32:55 +01:00
" ; F-16 Agressor \n "
" [f-16] \n "
" resolutions=1 \n "
" \n "
2024-12-12 06:59:07 +01:00
" ; Fable \n "
" [FABLE] \n "
" singlecpu=false \n "
" \n "
2024-12-19 20:33:55 +01:00
" ; Fallout Tactics: Brotherhood of Steel \n "
2024-12-19 20:41:01 +01:00
" [BOS/2] \n "
" checkfile=. \\ binkw32.dll \n "
" hook_peekmessage=true \n "
" \n "
" ; Fallout Tactics: Brotherhood of Steel \n "
" [BOS_HR] \n "
2024-12-19 20:33:55 +01:00
" hook_peekmessage=true \n "
" \n "
2024-12-19 21:00:46 +01:00
" ; Fallout Tactics: Brotherhood of Steel \n "
" [FT Tools] \n "
" hook_peekmessage=true \n "
" \n "
2024-12-12 06:59:07 +01:00
" ; Falcon 4.0 (Microprose version) \n "
" [falcon4] \n "
" singlecpu=false \n "
" \n "
2024-09-19 17:58:35 +02:00
" ; Flight Simulator 98 \n "
" [FLTSIM95] \n "
" flightsim98_hack=true \n "
" \n "
" ; Flight Simulator 98 \n "
" [FLTSIM98] \n "
" flightsim98_hack=true \n "
" \n "
2022-09-28 04:19:09 +02:00
" ; Fairy Tale About Father Frost, Ivan and Nastya \n "
" [mrazik] \n "
2022-09-29 21:52:07 +02:00
" guard_lines=0 \n "
2022-09-28 04:19:09 +02:00
" \n "
2024-09-10 15:41:04 +02:00
" ; Final Liberation: Warhammer Epic 40000 \n "
" [Epic40k] \n "
" hook_peekmessage=true \n "
2024-12-23 21:18:07 +01:00
" maxgameticks=125 \n "
2024-09-10 15:41:04 +02:00
" \n "
2021-06-09 01:59:47 +02:00
" ; Future Cop - L.A.P.D. \n "
" [FCopLAPD] \n "
2022-10-07 01:05:35 +02:00
" nonexclusive=true \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2021-06-09 01:59:47 +02:00
" \n "
2024-06-03 20:09:37 +02:00
" ; Freddi 1 \n "
" [Freddi1] \n "
" renderer=gdi \n "
" \n "
2024-06-04 09:17:48 +02:00
" ; Freddi Fish : The Case of the Hogfish Rustlers of Briny Gulch \n "
" [Freddihrbg] \n "
" renderer=gdi \n "
" \n "
2024-06-03 22:26:16 +02:00
" ; Freddi Water Worries \n "
" [Water] \n "
" renderer=gdi \n "
" \n "
2024-06-03 03:04:28 +02:00
" ; Freddi Fish \n "
" [FreddiSCS] \n "
" renderer=gdi \n "
" \n "
" ; Freddi Fish \n "
" [FREDDI4] \n "
" renderer=gdi \n "
" hook=3 \n "
" \n "
" ; Freddi Fish's One-Stop Fun Shop \n "
" [FreddisFunShop] \n "
" renderer=gdi \n "
" \n "
" ; Freddi Fish: The Case of the Creature of Coral Cove \n "
" [freddicove] \n "
" renderer=gdi \n "
" \n "
" ; Freddi Fish: The Case of the Haunted Schoolhouse \n "
" [FreddiCHSH] \n "
" renderer=gdi \n "
" \n "
" ; Freddi Fish: Maze Madness \n "
" [Maze] \n "
" renderer=gdi \n "
" \n "
2024-09-02 12:03:39 +02:00
" ; Glover \n "
" [glover] \n "
2024-09-12 18:11:08 +02:00
" fix_not_responding=true \n "
2024-09-02 12:03:39 +02:00
" \n "
2021-06-15 09:40:55 +02:00
" ; G-Police \n "
" [GPOLICE] \n "
" maxgameticks=60 \n "
2024-12-12 06:59:07 +01:00
" singlecpu=false \n "
2021-06-15 09:40:55 +02:00
" \n "
2021-06-04 02:01:47 +02:00
" ; Gangsters: Organized Crime \n "
" [gangsters] \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2021-06-04 02:01:47 +02:00
" nonexclusive=true \n "
2024-12-23 07:25:12 +01:00
" fixchilds=0 \n "
" fake_mode=640x480x8 \n "
2020-10-22 21:40:46 +02:00
" \n "
2021-06-04 02:01:47 +02:00
" ; Grand Theft Auto \n "
" [Grand Theft Auto] \n "
" singlecpu=false \n "
2020-10-22 22:20:19 +02:00
" \n "
2021-06-04 15:36:50 +02:00
" ; Grand Theft Auto: London 1969 \n "
2021-06-04 02:01:47 +02:00
" [gta_uk] \n "
" singlecpu=false \n "
2020-10-22 22:20:19 +02:00
" \n "
2021-06-04 15:36:50 +02:00
" ; Grand Theft Auto: London 1961 \n "
2021-06-04 02:01:47 +02:00
" [Gta_61] \n "
" singlecpu=false \n "
2020-10-23 18:06:35 +02:00
" \n "
2023-11-04 02:56:15 +01:00
" ; Gruntz \n "
" [GRUNTZ] \n "
" adjmouse=true \n "
" noactivateapp=true \n "
" nonexclusive=true \n "
" \n "
2024-08-30 12:44:55 +02:00
" ; Girl Talk \n "
" [GirlTalk] \n "
" resolutions=2 \n "
2024-09-19 20:11:22 +02:00
" game_handles_close=true \n "
2024-08-30 12:44:55 +02:00
" \n "
2024-05-23 08:20:14 +02:00
" ; Jazz Jackrabbit 2 plus \n "
" [Jazz2] \n "
2024-09-09 19:17:00 +02:00
" inject_resolution=800x450 \n "
2024-05-23 08:20:14 +02:00
" \n "
2024-05-23 08:41:33 +02:00
" ; Jazz Jackrabbit 2 \n "
2024-05-23 08:39:27 +02:00
" [Jazz2_NonPlus] \n "
2024-09-09 19:17:00 +02:00
" inject_resolution=800x450 \n "
2024-05-23 08:39:27 +02:00
" \n "
2024-09-02 12:25:46 +02:00
" ; Jungle Storm \n "
" [Jstorm] \n "
" no_compat_warning=true \n "
2024-09-12 20:08:53 +02:00
" win_version=98 \n "
2024-09-02 12:25:46 +02:00
" \n "
2024-08-29 17:24:21 +02:00
" ; Hades Challenge \n "
" [HADESCH] \n "
" no_compat_warning=true \n "
" \n "
2021-06-15 09:40:55 +02:00
" ; Heroes of Might and Magic II: The Succession Wars \n "
" [HEROES2W] \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2021-06-15 09:40:55 +02:00
" \n "
2023-08-13 21:55:47 +02:00
" ; Heroes of Might and Magic III \n "
" [Heroes3] \n "
2024-06-03 00:07:29 +02:00
" renderer=opengl \n "
2023-08-13 21:55:47 +02:00
" game_handles_close=true \n "
2024-10-12 01:24:07 +02:00
" keytogglefullscreen2=0x73 \n "
2023-08-13 21:55:47 +02:00
" \n "
" ; Heroes of Might and Magic III HD Mod \n "
" [Heroes3 HD] \n "
2024-06-03 00:07:29 +02:00
" renderer=opengl \n "
2023-08-13 21:55:47 +02:00
" game_handles_close=true \n "
2024-10-12 01:24:07 +02:00
" keytogglefullscreen2=0x73 \n "
2024-06-12 02:47:31 +02:00
" \n "
2024-06-12 02:50:41 +02:00
" ; Heroes of Might and Magic III - Master of Puppets mod \n "
" [MoP] \n "
" game_handles_close=true \n "
2024-10-12 01:24:07 +02:00
" keytogglefullscreen2=0x73 \n "
2024-06-12 02:50:41 +02:00
" \n "
2024-06-12 02:47:31 +02:00
" ; Heroes of Might and Magic IV \n "
" [heroes4] \n "
2024-08-20 09:55:27 +02:00
" remove_menu=true \n "
2024-10-12 01:24:07 +02:00
" keytogglefullscreen2=0x73 \n "
2023-08-13 21:55:47 +02:00
" \n "
2021-06-04 02:01:47 +02:00
" ; Hard Truck: Road to Victory \n "
" [htruck] \n "
" maxgameticks=25 \n "
" renderer=opengl \n "
" noactivateapp=true \n "
2020-10-23 18:06:35 +02:00
" \n "
2024-10-18 18:42:46 +02:00
" ; Hooligans: Storm over Europe \n "
" [hooligans] \n "
" limit_gdi_handles=true \n "
" \n "
2024-12-16 00:50:50 +01:00
" ; Imperialism 2: The Age of Exploration \n "
" [Imperialism II] \n "
" adjmouse=false \n "
" width=0 \n "
" height=0 \n "
" resizable=false \n "
" maintas=false \n "
" boxing=false \n "
" \n "
2023-08-19 18:03:00 +02:00
" ; Icewind Dale 2 \n "
" ; Note: 'Full Screen' must be enabled in Config.exe \n "
2023-08-19 19:11:20 +02:00
" ; Note: 1070x602 is the lowest possible 16:9 resolution for the Widescreen patch (600/601 height will crash) \n "
2023-08-19 18:03:00 +02:00
" [iwd2] \n "
" resolutions=2 \n "
2024-09-09 19:17:00 +02:00
" inject_resolution=1070x602 \n "
2023-08-19 18:03:00 +02:00
" \n "
2021-06-04 02:01:47 +02:00
" ; Invictus \n "
" [Invictus] \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2021-06-04 23:20:05 +02:00
" renderer=opengl \n "
2021-04-02 00:24:22 +02:00
" \n "
2021-06-04 02:01:47 +02:00
" ; Interstate 76 \n "
" [i76] \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2021-05-04 22:49:22 +02:00
" \n "
2024-05-13 03:05:31 +02:00
" ; Infantry \n "
2022-02-05 04:03:00 +01:00
" [infantry] \n "
" resolutions=2 \n "
" infantryhack=true \n "
2022-10-11 23:13:04 +02:00
" max_resolutions=90 \n "
2022-02-05 04:03:00 +01:00
" \n "
2024-05-13 03:05:31 +02:00
" ; Infantry Steam \n "
" [FreeInfantry] \n "
" resolutions=2 \n "
" infantryhack=true \n "
" max_resolutions=90 \n "
" \n "
2021-06-02 01:52:45 +02:00
" ; Jagged Alliance 2 \n "
2021-05-05 17:47:35 +02:00
" [ja2] \n "
2022-09-05 05:51:15 +02:00
" singlecpu=false \n "
2024-09-12 18:11:08 +02:00
" sirtech_hack=true \n "
" fix_alt_key_stuck=true \n "
2023-07-27 09:50:19 +02:00
" \n "
" ; Jagged Alliance 2: Unfinished Business \n "
" [JA2UB] \n "
" singlecpu=false \n "
2024-09-12 18:11:08 +02:00
" sirtech_hack=true \n "
" fix_alt_key_stuck=true \n "
2021-09-09 03:49:54 +02:00
" \n "
" ; Jagged Alliance 2: Wildfire \n "
" [WF6] \n "
2022-09-05 05:51:15 +02:00
" singlecpu=false \n "
2024-09-12 18:11:08 +02:00
" sirtech_hack=true \n "
" fix_alt_key_stuck=true \n "
2021-09-09 03:49:54 +02:00
" \n "
" ; Jagged Alliance 2 - UC mod \n "
" [JA2_UC] \n "
2022-09-05 05:51:15 +02:00
" singlecpu=false \n "
2024-09-12 18:11:08 +02:00
" sirtech_hack=true \n "
" fix_alt_key_stuck=true \n "
2022-01-30 13:08:33 +01:00
" \n "
" ; Jagged Alliance 2 - Vengeance Reloaded mod \n "
" [JA2_Vengeance] \n "
2022-09-05 05:51:15 +02:00
" singlecpu=false \n "
2024-09-12 18:11:08 +02:00
" sirtech_hack=true \n "
" fix_alt_key_stuck=true \n "
2021-05-05 17:47:35 +02:00
" \n "
2024-08-28 15:27:42 +02:00
" ; Jeopardy! - NOT WORKING YET \n "
" [jeoppc] \n "
" singlecpu=false \n "
" \n "
2024-12-22 08:05:54 +01:00
" ; Karma Immortal Wrath \n "
" [karma] \n "
" maxgameticks=60 \n "
" limiter_type=4 \n "
" \n "
2021-06-04 04:42:28 +02:00
" ; Konung \n "
" [konung] \n "
2021-08-10 18:03:58 +02:00
" fixchilds=0 \n "
2021-06-04 04:42:28 +02:00
" \n "
" ; Konung 2 \n "
" [Konung2] \n "
2021-08-10 18:03:58 +02:00
" fixchilds=0 \n "
2021-06-04 04:42:28 +02:00
" \n "
2021-06-04 02:01:47 +02:00
" ; KKND Xtreme (With high resolution patch) \n "
" [KKNDgame] \n "
" vhack=true \n "
" \n "
" ; KKND2: Krossfire \n "
" [KKND2] \n "
" noactivateapp=true \n "
" \n "
2024-05-28 23:31:34 +02:00
" ; Knights and Merchants The Shattered Kingdom \n "
" [KaM_800] \n "
2024-05-31 21:43:33 +02:00
" limiter_type=2 \n "
2024-05-28 23:31:34 +02:00
" maxgameticks=60 \n "
" \n "
" ; Knights and Merchants The Shattered Kingdom \n "
" [KaM_1024] \n "
2024-05-31 21:43:33 +02:00
" limiter_type=2 \n "
2024-05-28 23:31:34 +02:00
" maxgameticks=60 \n "
" \n "
2024-12-24 06:30:15 +01:00
" ; Lode Runner 2 \n "
" [LR2] \n "
" no_dinput_hook=true \n "
" fake_mode=640x480x16 \n "
" \n "
2024-12-22 21:20:58 +01:00
" ; Last Bronx \n "
" [LB] \n "
" maxgameticks=30 \n "
" \n "
2024-08-15 12:10:34 +02:00
" ; Lapis (lapis.mgame.com) \n "
" [Lapis] \n "
2024-08-15 12:30:52 +02:00
" fixchilds=3 \n "
" lock_mouse_top_left=true \n "
2024-08-15 12:10:34 +02:00
" \n "
2024-09-01 13:32:03 +02:00
" ; LEGO LOCO - NOT WORKING YET \n "
" [LOCO] \n "
" checkfile=. \\ LEGO.INI \n "
" fake_mode=1024x768x16 \n "
" posX=0 \n "
" posY=0 \n "
" border=false \n "
" fullscreen=false \n "
" \n "
2024-05-30 04:32:14 +02:00
" ; Little Bear Kindergarten/Preschool Thinking Adventures: Parent's Progress Report \n "
2024-05-29 21:50:38 +02:00
" [LBPR] \n "
2024-05-29 22:27:03 +02:00
" adjmouse=false \n "
" width=0 \n "
" height=0 \n "
" resizable=false \n "
" maintas=false \n "
" boxing=false \n "
2024-05-29 21:45:12 +02:00
" \n "
2024-05-30 04:32:14 +02:00
" ; Little Bear Kindergarten/Preschool Thinking Adventures \n "
2024-05-29 21:45:12 +02:00
" [LBSTART] \n "
2024-05-29 22:27:03 +02:00
" adjmouse=false \n "
" width=0 \n "
" height=0 \n "
" resizable=false \n "
" maintas=false \n "
" boxing=false \n "
2024-05-29 21:45:12 +02:00
" \n "
2024-05-30 04:32:14 +02:00
" ; Little Bear Toddler Discovery Adventures \n "
" [LBT] \n "
" adjmouse=false \n "
" width=0 \n "
" height=0 \n "
" resizable=false \n "
" maintas=false \n "
" boxing=false \n "
" \n "
2024-09-10 15:41:04 +02:00
" ; Lionheart \n "
" [Lionheart] \n "
" hook_peekmessage=true \n "
" \n "
2024-12-12 22:31:01 +01:00
" ; Links Extreme \n "
" [EXTREME] \n "
" singlecpu=false \n "
" \n "
2024-11-23 03:36:38 +01:00
" ; Lost Vikings 2 \n "
" [LOSTV95] \n "
" fake_mode=320x240x16 \n "
" \n "
2024-12-12 06:59:07 +01:00
" ; Nightmare Creatures \n "
" [NC] \n "
" maxgameticks=30 \n "
" singlecpu=false \n "
" \n "
" ; Moto Racer (software mode) \n "
" [moto] \n "
" maxgameticks=59 \n "
" \n "
2024-05-30 07:20:44 +02:00
" ; Madeline 1st Grade Math \n "
" [madmath1] \n "
" nonexclusive=true \n "
" no_compat_warning=true \n "
" adjmouse=false \n "
" width=0 \n "
" height=0 \n "
" resizable=false \n "
" maintas=false \n "
" boxing=false \n "
2024-09-11 14:38:56 +02:00
" renderer=gdi \n "
" hook=2 \n "
" win_version=nt4 \n "
2024-05-30 07:20:44 +02:00
" \n "
" ; Madeline 1st Grade Math: Progress Report \n "
" [madpr] \n "
" nonexclusive=true \n "
" no_compat_warning=true \n "
" adjmouse=false \n "
" width=0 \n "
" height=0 \n "
" resizable=false \n "
" maintas=false \n "
" boxing=false \n "
2024-09-11 14:38:56 +02:00
" renderer=gdi \n "
" hook=2 \n "
" win_version=nt4 \n "
2024-05-30 07:20:44 +02:00
" \n "
" ; Madeline 2nd Grade Math \n "
" [madmath2] \n "
" nonexclusive=true \n "
" no_compat_warning=true \n "
" adjmouse=false \n "
" width=0 \n "
" height=0 \n "
" resizable=false \n "
" maintas=false \n "
" boxing=false \n "
2024-09-11 14:38:56 +02:00
" renderer=gdi \n "
" hook=2 \n "
" win_version=nt4 \n "
2024-05-30 07:20:44 +02:00
" \n "
2021-06-08 05:47:30 +02:00
" ; Majesty Gold \n "
" [Majesty] \n "
" minfps=-2 \n "
" \n "
" ; Majesty Gold HD \n "
" [MajestyHD] \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2021-06-08 05:47:30 +02:00
" \n "
" ; Majesty Gold HD \n "
" [MajestyHD - Old] \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2021-06-08 05:47:30 +02:00
" \n "
2021-08-08 21:16:26 +02:00
" ; Mech Warrior 3 \n "
" [Mech3] \n "
" nonexclusive=true \n "
" \n "
2021-05-11 21:53:12 +02:00
" ; Moorhuhn 2 \n "
" [Moorhuhn2] \n "
2024-09-12 18:11:08 +02:00
" fix_alt_key_stuck=true \n "
2021-05-11 21:53:12 +02:00
" \n "
2024-12-26 02:00:51 +01:00
" ; Metal Knight \n "
" [mk] \n "
" maxgameticks=60 \n "
" limiter_type=4 \n "
" \n "
2023-03-06 01:46:52 +01:00
" ; New Robinson \n "
" [ROBY] \n "
" adjmouse=true \n "
2024-09-10 15:41:04 +02:00
" hook_peekmessage=true \n "
2023-03-06 01:46:52 +01:00
" \n "
2024-12-23 19:06:39 +01:00
" ; Neo Sonic Universe \n "
" [nsu] \n "
2024-12-23 19:15:06 +01:00
" fake_mode=320x240x32 \n "
2024-12-23 19:06:39 +01:00
" \n "
2024-12-23 19:13:57 +01:00
" ; Neo Sonic Universe - battle mode \n "
" [nsu_battle] \n "
2024-12-23 19:15:06 +01:00
" fake_mode=320x240x32 \n "
2024-12-23 19:13:57 +01:00
" \n "
2024-05-31 23:35:13 +02:00
" ; Nancy Drew (All games) \n "
2024-05-21 06:03:22 +02:00
" [Game/3] \n "
2024-05-31 23:35:13 +02:00
" checkfile=. \\ Nancy.cid \n "
" limiter_type=1 \n "
" maxgameticks=120 \n "
2024-05-31 07:55:16 +02:00
" \n "
2024-12-21 08:01:29 +01:00
" ; NBA Full Court Press \n "
" [NBA_FCP] \n "
" fake_mode=640x480x8 \n "
" \n "
2023-09-01 23:24:51 +02:00
" ; Nox \n "
" [NOX] \n "
" checkfile=. \\ NOX.ICD \n "
" renderer=direct3d9 \n "
" nonexclusive=false \n "
" windowed=false \n "
2023-10-15 04:22:29 +02:00
" maxgameticks=125 \n "
2023-10-14 05:00:27 +02:00
" \n "
" ; Nox Reloaded \n "
" [NoxReloaded] \n "
2023-10-15 04:22:29 +02:00
" maxgameticks=125 \n "
2023-10-14 05:00:27 +02:00
" \n "
" ; Nox GOG \n "
" [Game/2] \n "
" checkfile=. \\ nox.cfg \n "
2023-10-15 04:22:29 +02:00
" maxgameticks=125 \n "
2023-09-01 23:24:51 +02:00
" \n "
2021-06-04 02:01:47 +02:00
" ; Outlaws \n "
" [olwin] \n "
2021-05-15 06:33:29 +02:00
" noactivateapp=true \n "
2021-06-04 02:01:47 +02:00
" maxgameticks=60 \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2021-05-15 06:33:29 +02:00
" renderer=gdi \n "
" \n "
2024-11-25 23:48:00 +01:00
" ; Pandora's Box Puzzle Game \n "
2024-11-26 00:36:30 +01:00
" [Pandora] \n "
2024-11-25 23:48:00 +01:00
" fixchilds=0 \n "
" \n "
2024-08-29 17:24:21 +02:00
" ; Paddle Bash Hotshot \n "
" [SPAGHSPaddle] \n "
" no_compat_warning=true \n "
" \n "
2024-06-03 03:04:28 +02:00
" ; Pajama Sam's Games to Play on Any Day \n "
" [PJGAMES] \n "
" renderer=gdi \n "
" \n "
" ; Pajama Sam \n "
" [PajamaTAL] \n "
" renderer=gdi \n "
" \n "
" ; Pajama Sam: No Need to Hide When It's Dark Outside \n "
" [PajamaNHD] \n "
" renderer=gdi \n "
" \n "
" ; Pajama Sam 3 \n "
" [Pajama3] \n "
" renderer=gdi \n "
" \n "
" ; Pajama Sam's One-Stop Fun Shop \n "
" [SamsFunShop] \n "
" renderer=gdi \n "
" \n "
2024-06-04 09:17:48 +02:00
" ; Pajama Sam DON'T FEAR THE DARK \n "
" [pjSam] \n "
" renderer=gdi \n "
" \n "
2024-06-04 19:43:31 +02:00
" ; Pajama Sam 3: You Are What You Eat From Your Head To Your Feet \n "
" [UKpajamaEAT] \n "
" renderer=gdi \n "
" \n "
2021-06-04 02:01:47 +02:00
" ; Pharaoh \n "
" [Pharaoh] \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2021-05-23 15:49:03 +02:00
" \n "
2024-06-02 09:44:34 +02:00
" ; Putt-Putt Saves The Zoo \n "
" [PUTTZOO] \n "
" renderer=gdi \n "
" hook=3 \n "
" \n "
2024-06-03 03:04:28 +02:00
" ; Putt-Putt's One-Stop Fun Shop \n "
" [PuttsFunShop] \n "
" renderer=gdi \n "
" \n "
" ; Putt-Putt and Pep's Dog On A Stick \n "
" [DOG] \n "
" renderer=gdi \n "
" \n "
" ; Putt-Putt Joins the Circus \n "
" [puttcircus] \n "
" renderer=gdi \n "
" \n "
" ; Putt-Putt Enters The Race \n "
" [UKPuttRace] \n "
" renderer=gdi \n "
" \n "
" ; Putt-Putt: Travels Through Time \n "
" [PuttTTT] \n "
" renderer=gdi \n "
" \n "
" ; Putt-Putt and Pep's Balloon-o-Rama \n "
" [Balloon] \n "
" renderer=gdi \n "
" \n "
2024-06-04 09:17:48 +02:00
" ; Putt-Putt Travels Through Time \n "
" [PUTTPUTTTTT] \n "
" renderer=gdi \n "
" \n "
" ; Putt-Putt Joins the Circus \n "
" [puttputtjtc] \n "
" renderer=gdi \n "
" \n "
2024-06-03 01:16:41 +02:00
" ; Pizza Syndicate \n "
" [Pizza2] \n "
" renderer=opengl \n "
" \n "
" ; Pizza Syndicate - Mehr Biss (Mission CD) \n "
" [Pizza_Mission] \n "
" renderer=opengl \n "
" \n "
2021-06-04 02:01:47 +02:00
" ; Pax Imperia \n "
" [Pax Imperia] \n "
" nonexclusive=true \n "
2021-05-24 09:48:11 +02:00
" \n "
2024-12-12 06:59:07 +01:00
" ; Panzer Dragoon \n "
" [PANZERDG] \n "
" singlecpu=false \n "
" \n "
2024-08-30 12:10:50 +02:00
" ; Play with the Teletubbies \n "
" [PlayWTT] \n "
" hook=3 \n "
" \n "
2024-11-23 00:06:44 +01:00
" ; Populous - The Beginning \n "
" [popTB] \n "
" singlecpu=false \n "
" \n "
2024-12-22 02:22:47 +01:00
" ; Rage of Mages \n "
" [rom] \n "
" maxgameticks=60 \n "
" limiter_type=4 \n "
" singlecpu=true \n "
" \n "
2021-06-15 09:40:55 +02:00
" ; Railroad Tycoon II \n "
" [RT2] \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2021-06-15 09:40:55 +02:00
" \n "
2024-05-31 04:13:31 +02:00
" ; Reader Rabbit Thinking Ages 4-6 (US) \n "
" [rrta32] \n "
" adjmouse=false \n "
" width=0 \n "
" height=0 \n "
" resizable=false \n "
" maintas=false \n "
" boxing=false \n "
" \n "
2024-05-27 01:52:44 +02:00
" ; Reader Rabbit Reading Ages 4-6 \n "
" [rrirjw32] \n "
" renderer=gdi \n "
" adjmouse=false \n "
" width=0 \n "
" height=0 \n "
" resizable=false \n "
2024-05-27 05:40:31 +02:00
" maintas=false \n "
" boxing=false \n "
2024-05-27 01:52:44 +02:00
" \n "
" ; Reader Rabbit Reading Ages 6-9 \n "
" [irj2w32] \n "
" renderer=gdi \n "
" adjmouse=false \n "
" width=0 \n "
" height=0 \n "
" resizable=false \n "
2024-05-27 05:40:31 +02:00
" maintas=false \n "
" boxing=false \n "
2024-05-27 01:52:44 +02:00
" \n "
2024-07-28 10:39:39 +02:00
" ; Real War \n "
" [RealWar] \n "
2024-07-28 10:49:52 +02:00
" maxgameticks=60 \n "
2024-07-28 10:39:39 +02:00
" limiter_type=3 \n "
" \n "
2024-12-14 05:17:17 +01:00
" ; Return to Krondor \n "
" [RtK] \n "
" fixchilds=3 \n "
" lock_mouse_top_left=true \n "
2024-12-14 19:11:31 +01:00
" singlecpu=false \n "
" limiter_type=2 \n "
2024-12-18 04:20:58 +01:00
" game_handles_close=true \n "
2024-12-25 19:45:35 +01:00
" maxgameticks=59 \n "
" anti_aliased_fonts_min_size=99 \n "
2024-12-14 05:17:17 +01:00
" \n "
2024-12-12 22:31:01 +01:00
" ; Rent-A-Hero \n "
" [Rent-A-Hero] \n "
" singlecpu=false \n "
" \n "
2021-06-15 09:40:55 +02:00
" ; ROAD RASH \n "
" [RoadRash] \n "
2023-01-17 04:54:07 +01:00
" adjmouse=true \n "
2024-04-26 01:23:28 +02:00
" nonexclusive=true \n "
2021-06-15 09:40:55 +02:00
" \n "
2024-12-12 06:59:07 +01:00
" ; Rising Lands (patched) \n "
" [Rising] \n "
" singlecpu=false \n "
" \n "
2024-06-08 21:28:18 +02:00
" ; Robin Hood - The Legend of Sherwood (GOG) \n "
" [Game/4] \n "
" checkfile=. \\ Robin Hood.exe \n "
" singlecpu=false \n "
2024-09-12 18:11:08 +02:00
" fix_not_responding=true \n "
2024-06-08 21:28:18 +02:00
" \n "
2024-12-12 06:59:07 +01:00
" ; Roland Garros 98 (software mode) \n "
" [rg98] \n "
" singlecpu=false \n "
" \n "
2024-07-11 01:50:13 +02:00
" ; Robin Hood - The Legend of Sherwood (Steam) \n "
" [_rh] \n "
" singlecpu=false \n "
2024-09-12 18:11:08 +02:00
" fix_not_responding=true \n "
2024-07-11 01:50:13 +02:00
" \n "
2024-06-08 21:28:18 +02:00
" ; Robin Hood - The Legend of Sherwood \n "
" [Robin Hood] \n "
" singlecpu=false \n "
2024-09-12 18:11:08 +02:00
" fix_not_responding=true \n "
2024-06-08 21:28:18 +02:00
" \n "
2024-06-02 08:53:07 +02:00
" ; Scooby-Doo(TM), Case File #1 The Glowing Bug Man - NOT WORKING YET \n "
" [Case File #1] \n "
" windowed=true \n "
" nonexclusive=true \n "
" fake_mode=640x480x32 \n "
" \n "
2024-12-19 06:58:42 +01:00
" ; Seven Kingdoms II \n "
" [7k2] \n "
" fake_mode=352x240x32 \n "
2024-12-19 07:14:37 +01:00
" fix_not_responding=true \n "
2024-12-19 06:58:42 +01:00
" \n "
2024-12-20 05:44:20 +01:00
" ; Swarog \n "
" [Swarog] \n "
" singlecpu=false \n "
2024-12-20 10:17:59 +01:00
" maxfps=60 \n "
" maxgameticks=60 \n "
" minfps=-1 \n "
2024-12-20 05:44:20 +01:00
" \n "
2022-10-05 22:36:59 +02:00
" ; Sim Copter \n "
" [SimCopter] \n "
" nonexclusive=true \n "
" \n "
2021-08-03 14:12:39 +02:00
" ; Settlers 3 \n "
" [s3] \n "
" nonexclusive=true \n "
" \n "
2021-06-09 06:03:06 +02:00
" ; Star Trek - Armada \n "
" [Armada] \n "
2021-06-09 07:24:17 +02:00
" armadahack=true \n "
2021-06-09 06:03:06 +02:00
" nonexclusive=true \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
" maintas=false \n "
" boxing=false \n "
2021-06-09 06:03:06 +02:00
" \n "
2024-11-26 03:05:16 +01:00
" ; Star Wars Rebellion \n "
" [REBEXE] \n "
" adjmouse=false \n "
" width=0 \n "
" height=0 \n "
" resizable=false \n "
" maintas=false \n "
" boxing=false \n "
" \n "
2021-06-04 02:01:47 +02:00
" ; Star Wars: Galactic Battlegrounds \n "
" [battlegrounds] \n "
2022-09-05 05:57:45 +02:00
" nonexclusive=true \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2021-05-24 10:20:12 +02:00
" \n "
2021-06-04 02:01:47 +02:00
" ; Star Wars: Galactic Battlegrounds: Clone Campaigns \n "
" [battlegrounds_x1] \n "
2022-09-05 05:57:45 +02:00
" nonexclusive=true \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2021-05-28 20:48:52 +02:00
" \n "
2023-02-19 21:37:13 +01:00
" ; Starcraft \n "
" [StarCraft] \n "
" game_handles_close=true \n "
" \n "
2024-09-10 15:41:04 +02:00
" ; Space Rangers \n "
" [Rangers] \n "
" hook_peekmessage=true \n "
" \n "
2024-06-03 03:04:28 +02:00
" ; SPYFox: Hold the Mustard \n "
" [mustard] \n "
" renderer=gdi \n "
" \n "
2024-06-04 19:43:31 +02:00
" ; SPY Fox: Some Assembly Required \n "
" [Spyfox2] \n "
2024-06-04 09:17:48 +02:00
" renderer=gdi \n "
" \n "
2024-06-03 03:04:28 +02:00
" ; SPY Fox in Dry Cereal (2008) \n "
" [SpyFox] \n "
" renderer=gdi \n "
" \n "
" ; SPY Fox in Dry Cereal (2001) \n "
" [SPYFOXDC] \n "
" renderer=gdi \n "
" \n "
" ; SPY Fox : Some Assembly Required \n "
" [SPYFOXSR] \n "
" renderer=gdi \n "
" \n "
" ; SPY Fox: Operation Ozone \n "
" [spyozon] \n "
" renderer=gdi \n "
" \n "
2024-06-04 09:17:48 +02:00
" ; SPY Fox: Operation Ozone \n "
" [spyfoxozu] \n "
" renderer=gdi \n "
" \n "
2023-08-07 10:15:52 +02:00
" ; Stronghold Crusader HD \n "
" [Stronghold Crusader] \n "
2023-08-14 20:53:36 +02:00
" resolutions=2 \n "
2023-08-07 10:15:52 +02:00
" stronghold_hack=true \n "
" adjmouse=true \n "
" \n "
2021-06-04 02:01:47 +02:00
" ; Stronghold Crusader Extreme HD \n "
" [Stronghold_Crusader_Extreme] \n "
2023-08-10 17:24:27 +02:00
" resolutions=2 \n "
2023-08-07 10:15:52 +02:00
" stronghold_hack=true \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2021-06-04 02:01:47 +02:00
" \n "
" ; Stronghold HD \n "
" [Stronghold] \n "
2023-08-10 17:24:27 +02:00
" resolutions=2 \n "
2023-08-07 10:15:52 +02:00
" stronghold_hack=true \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2021-06-04 02:01:47 +02:00
" \n "
2021-08-04 17:17:22 +02:00
" ; Sim City 3000 \n "
" [SC3] \n "
" minfps=-2 \n "
" \n "
2021-06-04 02:01:47 +02:00
" ; Shadow Watch \n "
" [sw] \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2024-12-14 19:11:31 +01:00
" maxgameticks=30 "
2021-06-04 02:01:47 +02:00
" \n "
2021-06-15 09:40:55 +02:00
" ; Shadow Flare \n "
" [ShadowFlare] \n "
" nonexclusive=true \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2021-06-15 09:40:55 +02:00
" \n "
2024-12-22 02:42:07 +01:00
" ; Squad Leader \n "
" [SquadLeader] \n "
" maxgameticks=30 \n "
" limiter_type=4 \n "
" \n "
2024-12-26 02:37:54 +01:00
" ; Soldiers At War \n "
" [SAW_Game] \n "
2024-12-26 07:42:40 +01:00
" maxgameticks=30 \n "
2024-12-26 02:37:54 +01:00
" limiter_type=4 \n "
" \n "
2024-12-12 06:59:07 +01:00
" ; The Curse Of Monkey Island \n "
" [COMI] \n "
" singlecpu=false \n "
" \n "
2022-09-10 00:34:09 +02:00
" ; Total Annihilation (Unofficial Beta Patch v3.9.02) \n "
2022-09-06 08:05:33 +02:00
" [TotalA] \n "
2023-08-18 14:04:37 +02:00
" max_resolutions=32 \n "
2022-09-17 13:46:45 +02:00
" lock_surfaces=true \n "
2022-09-17 09:00:58 +02:00
" singlecpu=false \n "
2022-09-06 08:05:33 +02:00
" \n "
2022-09-19 14:29:34 +02:00
" ; Total Annihilation Replay Viewer (Unofficial Beta Patch v3.9.02) \n "
" [Viewer] \n "
2023-08-18 14:04:37 +02:00
" max_resolutions=32 \n "
2022-09-19 14:29:34 +02:00
" lock_surfaces=true \n "
" singlecpu=false \n "
" \n "
2024-12-18 04:20:37 +01:00
" ; Virtual Springfield \n "
" [VIRTUAL] \n "
" game_handles_close=true \n "
" singlecpu=false \n "
" \n "
2023-08-18 11:22:09 +02:00
" ; Total Annihilation: Kingdoms \n "
" [Kingdoms] \n "
" game_handles_close=true \n "
2023-08-18 13:33:41 +02:00
" max_resolutions=32 \n "
2023-08-18 11:22:09 +02:00
" \n "
2024-06-28 20:58:05 +02:00
" ; The Missing on Lost Island \n "
" [Island] \n "
" lock_mouse_top_left=true \n "
" fixchilds=3 \n "
" \n "
2024-12-12 22:31:01 +01:00
" ; The Neverhood \n "
" [nhc] \n "
" singlecpu=false \n "
" \n "
2024-06-06 03:02:18 +02:00
" ; The X-Files DVD \n "
" [XFiles] \n "
" windowed=true \n "
" fullscreen=true \n "
2024-06-06 04:55:33 +02:00
" toggle_borderless=true \n "
2024-06-06 03:02:18 +02:00
" \n "
2024-05-31 04:55:55 +02:00
" ; The Learning Company Launcher \n "
" [TLCLauncher] \n "
" tlc_hack=true \n "
" adjmouse=false \n "
" width=0 \n "
" height=0 \n "
" resizable=false \n "
" maintas=false \n "
" boxing=false \n "
" \n "
2024-09-02 12:51:57 +02:00
" ; The Jungle Book Groove Party \n "
" [Jungle_vr] \n "
2024-09-12 18:11:08 +02:00
" fix_not_responding=true \n "
2024-09-02 12:51:57 +02:00
" \n "
2021-06-15 09:40:55 +02:00
" ; Three Kingdoms: Fate of the Dragon \n "
" [sanguo] \n "
" maxgameticks=60 \n "
" noactivateapp=true \n "
2024-05-31 21:43:33 +02:00
" limiter_type=2 \n "
2021-06-15 09:40:55 +02:00
" \n "
2024-08-31 17:00:53 +02:00
" ; Thomas & Friends - The Great Festival Adventure \n "
" [Thomas] \n "
" no_compat_warning=true \n "
" noactivateapp=true \n "
" \n "
2023-07-28 04:50:51 +02:00
" ; RollerCoaster Tycoon \n "
" [rct] \n "
2023-07-28 13:53:57 +02:00
" no_dinput_hook=true \n "
2023-07-28 04:50:51 +02:00
" singlecpu=false \n "
2023-07-28 07:02:03 +02:00
" maxfps=0 \n "
2023-07-28 09:53:04 +02:00
" adjmouse=true \n "
2023-07-28 04:50:51 +02:00
" \n "
2021-06-04 02:01:47 +02:00
" ; Twisted Metal \n "
" [TWISTED] \n "
" nonexclusive=true \n "
" maxgameticks=25 \n "
" minfps=5 \n "
2021-06-02 14:29:44 +02:00
" \n "
2021-06-04 02:01:47 +02:00
" ; Twisted Metal 2 \n "
" [Tm2] \n "
" nonexclusive=true \n "
" maxgameticks=60 \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2022-10-02 20:56:06 +02:00
" fixchilds=1 \n "
2021-06-16 05:57:19 +02:00
" maintas=false \n "
" boxing=false \n "
2021-06-03 20:39:29 +02:00
" \n "
2021-06-04 02:01:47 +02:00
" ; Tzar: The Burden of the Crown \n "
" ; Note: Must set 'DIRECTXDEVICE=0' in 'Tzar.ini' \n "
" [Tzar] \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2021-06-04 02:01:47 +02:00
" \n "
" ; Uprising \n "
" [uprising] \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2021-06-04 02:01:47 +02:00
" \n "
" ; Uprising 2 \n "
" [Uprising 2] \n "
2021-06-06 19:11:18 +02:00
" renderer=opengl \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2021-06-04 02:01:47 +02:00
" \n "
2024-12-27 02:44:37 +01:00
" ; Unreal \n "
" [Unreal] \n "
" noactivateapp=true \n "
" \n "
2023-10-20 03:59:35 +02:00
" ; Vermeer \n "
" [vermeer] \n "
2023-10-20 04:35:55 +02:00
" adjmouse=true \n "
2024-05-22 23:23:27 +02:00
" fake_mode=640x480x32 \n "
2023-10-20 03:59:35 +02:00
" \n "
2024-12-22 21:20:58 +01:00
" ; Virtua Fighter 2 \n "
" [VF2] \n "
" fake_mode=640x480x8 \n "
" \n "
2024-12-21 07:15:12 +01:00
" ; Wall Street Trader 2000 - NOT WORKING YET \n "
" [WSTrader] \n "
" nonexclusive=false \n "
" windowed=false \n "
" \n "
2024-08-05 05:56:08 +02:00
" ; WarCraft 2000: Nuclear Epidemic \n "
" [war2000] \n "
" resolutions=2 \n "
2024-08-05 05:56:43 +02:00
" guard_lines=600 \n "
2024-08-05 05:56:08 +02:00
" minfps=-2 \n "
" \n "
2024-12-23 21:18:07 +01:00
" ; Warhammer 40000: Chaos Gate \n "
" [WH40K] \n "
" maxgameticks=250 \n "
" \n "
2024-11-23 00:10:58 +01:00
" ; Weird War \n "
" [WeirdWar] \n "
" singlecpu=false \n "
" \n "
2021-09-09 03:55:10 +02:00
" ; Wizardry 8 \n "
" [Wiz8] \n "
2024-09-12 18:11:08 +02:00
" sirtech_hack=true \n "
" fix_alt_key_stuck=true \n "
2021-09-16 01:57:44 +02:00
" \n "
2023-12-17 17:03:05 +01:00
" ; Worms 2 \n "
" [worms2] \n "
2024-05-13 04:21:54 +02:00
" vhack=true \n "
2024-05-02 05:54:00 +02:00
" flipclear=true \n "
2023-12-17 17:03:05 +01:00
" game_handles_close=true \n "
2024-05-12 21:35:28 +02:00
" center_cursor_fix=true \n "
2023-12-17 17:03:05 +01:00
" \n "
2021-06-04 02:01:47 +02:00
" ; Worms Armageddon \n "
" [WA] \n "
2024-10-11 22:17:55 +02:00
" lock_mouse_top_left=true \n "
2021-06-04 02:01:47 +02:00
" \n "
2024-12-20 10:34:20 +01:00
" ; Wheel Of Fortune \n "
" [WHEEL] \n "
" singlecpu=false \n "
" \n "
2024-06-02 23:53:49 +02:00
" ; War Wind \n "
" [WW] \n "
" minfps=-1 \n "
" \n "
2024-12-28 01:54:39 +01:00
" ; Jeff Wayne's 'The War Of The Worlds' \n "
" [WoW] \n "
" singlecpu=false \n "
" minfps=-1 \n "
" \n "
2021-06-06 05:32:04 +02:00
" ; Zeus and Poseidon \n "
" [Zeus] \n "
2021-06-16 05:57:19 +02:00
" adjmouse=true \n "
2021-06-06 05:32:04 +02:00
" \n "
2024-12-12 22:31:01 +01:00
" ; Zork Nemesis \n "
" [znemesis] \n "
2024-12-26 02:58:09 +01:00
" fix_not_responding=true \n "
2024-12-12 22:31:01 +01:00
" singlecpu=false \n "
2024-12-22 04:00:48 +01:00
" maxgameticks=60 \n "
2024-12-22 03:53:41 +01:00
" limiter_type=4 \n "
2024-12-12 22:31:01 +01:00
" \n "
2018-10-25 07:03:01 +02:00
, fh ) ;
fclose ( fh ) ;
}
}
2023-08-05 05:02:49 +02:00
static void cfg_init ( )
2018-10-25 07:03:01 +02:00
{
2021-09-16 02:25:22 +02:00
/* get process filename and directory */
if ( GetModuleFileNameA ( NULL , g_config . game_path , sizeof ( g_config . game_path ) - 1 ) > 0 )
{
2022-09-08 04:20:51 +02:00
_splitpath ( g_config . game_path , NULL , NULL , g_config . process_file_name , g_config . process_file_ext ) ;
2021-09-16 02:25:22 +02:00
2022-09-08 04:20:51 +02:00
int len = strlen ( g_config . game_path ) - strlen ( g_config . process_file_name ) - strlen ( g_config . process_file_ext ) ;
char * end = strstr ( g_config . game_path + len , g_config . process_file_name ) ;
2021-09-16 02:25:22 +02:00
if ( end )
{
* end = 0 ;
}
else
{
g_config . game_path [ 0 ] = 0 ;
}
}
2024-02-16 22:55:17 +05:00
/* get dll filename and directory */
if ( GetModuleFileNameA ( g_ddraw_module , g_config . dll_path , sizeof ( g_config . dll_path ) - 1 ) > 0 )
{
_splitpath ( g_config . dll_path , NULL , NULL , g_config . dll_file_name , g_config . dll_file_ext ) ;
int len = strlen ( g_config . dll_path ) - strlen ( g_config . dll_file_name ) - strlen ( g_config . dll_file_ext ) ;
char * end = strstr ( g_config . dll_path + len , g_config . dll_file_name ) ;
if ( end )
{
* end = 0 ;
}
else
{
g_config . dll_path [ 0 ] = 0 ;
}
}
2023-12-08 00:51:16 +01:00
if ( ! GetEnvironmentVariableA ( " CNC_DDRAW_CONFIG_FILE " , g_config . ini_path , sizeof ( g_config . ini_path ) - 1 ) )
2022-09-08 04:20:51 +02:00
{
2024-02-16 22:55:17 +05:00
if ( strlen ( g_config . dll_path ) > 0 & & strlen ( g_config . dll_file_name ) > 0 )
2022-09-16 23:46:59 +02:00
{
2024-02-16 21:12:58 +01:00
_snprintf ( g_config . ini_path , sizeof ( g_config . ini_path ) - 1 , " %sddraw.ini " , g_config . dll_path ) ;
/* Use this here instead to sync .ini filename with .dll filename - by egornovivan @ github */
//_snprintf(g_config.ini_path, sizeof(g_config.ini_path) - 1, "%s%s.ini", g_config.dll_path, g_config.dll_file_name);
2023-12-08 00:51:16 +01:00
if ( GetFileAttributes ( g_config . ini_path ) = = INVALID_FILE_ATTRIBUTES )
{
cfg_create_ini ( ) ;
}
2022-09-16 23:46:59 +02:00
2023-12-08 00:51:16 +01:00
if ( GetFileAttributes ( g_config . ini_path ) = = INVALID_FILE_ATTRIBUTES )
{
2024-02-16 21:12:58 +01:00
/* This might not actually be needed, but we keep it for now */
strncpy ( g_config . ini_path , " . \\ ddraw.ini " , sizeof ( g_config . ini_path ) - 1 ) ;
2023-12-08 00:51:16 +01:00
}
}
else
2022-09-16 23:46:59 +02:00
{
strncpy ( g_config . ini_path , " . \\ ddraw.ini " , sizeof ( g_config . ini_path ) - 1 ) ;
}
}
if ( GetFileAttributes ( g_config . ini_path ) = = INVALID_FILE_ATTRIBUTES )
{
cfg_create_ini ( ) ;
2022-09-08 04:20:51 +02:00
}
2023-10-17 18:13:35 +02:00
ini_create ( & g_config . ini , g_config . ini_path ) ;
2024-06-01 07:29:48 +02:00
cfg_get_game_section ( g_config . game_section , sizeof ( g_config . game_section ) ) ;
2024-06-03 04:44:58 +02:00
2024-06-03 09:13:51 +02:00
TRACE ( " filename = %s \n " , g_config . process_file_name ) ;
TRACE ( " section = %s \n " , g_config . game_section [ 0 ] ? g_config . game_section : " ddraw " ) ;
2021-09-16 02:25:22 +02:00
}
2024-06-01 07:29:48 +02:00
static DWORD cfg_get_game_section ( LPSTR buf , DWORD size )
2021-09-16 02:25:22 +02:00
{
2024-06-01 07:29:48 +02:00
if ( ! buf | | size = = 0 )
return 0 ;
char tmp [ MAX_PATH ] = { 0 } ;
2023-10-14 05:00:27 +02:00
2024-05-06 02:00:58 +02:00
if ( IsWine ( ) )
2023-11-04 04:08:51 +01:00
{
char section [ MAX_PATH ] = { 0 } ;
_snprintf ( section , sizeof ( section ) - 1 , " %s/wine " , g_config . process_file_name ) ;
if ( ini_section_exists ( & g_config . ini , section ) )
{
2024-06-01 07:41:03 +02:00
strncpy ( buf , section , size ) ;
2024-06-01 07:29:48 +02:00
buf [ size - 1 ] = 0 ;
return strlen ( buf ) ;
2023-11-04 04:08:51 +01:00
}
}
2024-06-01 07:29:48 +02:00
if ( ini_section_exists ( & g_config . ini , g_config . process_file_name ) )
2023-10-17 18:13:35 +02:00
{
2024-06-01 07:29:48 +02:00
if ( ini_get_string ( & g_config . ini , g_config . process_file_name , " checkfile " , " " , tmp , sizeof ( tmp ) ) > 0 )
2019-04-03 03:13:39 +02:00
{
2024-06-01 07:29:48 +02:00
if ( FILE_EXISTS ( tmp ) )
{
2024-06-01 07:41:03 +02:00
strncpy ( buf , g_config . process_file_name , size ) ;
2024-06-01 07:29:48 +02:00
buf [ size - 1 ] = 0 ;
return strlen ( buf ) ;
}
2019-04-03 03:13:39 +02:00
}
2023-10-17 18:13:35 +02:00
else
2024-06-01 07:29:48 +02:00
{
2024-06-01 07:41:03 +02:00
strncpy ( buf , g_config . process_file_name , size ) ;
2024-06-01 07:29:48 +02:00
buf [ size - 1 ] = 0 ;
return strlen ( buf ) ;
}
2019-04-03 03:13:39 +02:00
}
2023-10-14 11:00:58 +02:00
2023-10-14 12:41:52 +02:00
for ( int i = 2 ; i < 10 ; i + + )
2023-10-14 05:00:27 +02:00
{
char section [ MAX_PATH ] = { 0 } ;
2023-10-14 11:00:58 +02:00
_snprintf ( section , sizeof ( section ) - 1 , " %s/%d " , g_config . process_file_name , i ) ;
2023-10-14 05:00:27 +02:00
2024-06-01 07:29:48 +02:00
if ( ini_section_exists ( & g_config . ini , section ) )
2023-10-17 18:13:35 +02:00
{
2024-06-01 07:29:48 +02:00
if ( ini_get_string ( & g_config . ini , section , " checkfile " , " " , tmp , sizeof ( tmp ) ) > 0 )
2023-10-14 05:00:27 +02:00
{
2024-06-01 07:29:48 +02:00
if ( FILE_EXISTS ( tmp ) )
{
2024-06-01 07:41:03 +02:00
strncpy ( buf , section , size ) ;
2024-06-01 07:29:48 +02:00
buf [ size - 1 ] = 0 ;
return strlen ( buf ) ;
}
2023-10-14 05:00:27 +02:00
}
}
}
2018-10-25 07:03:01 +02:00
2024-06-01 07:29:48 +02:00
buf [ 0 ] = 0 ;
return 0 ;
}
static DWORD cfg_get_string ( LPCSTR key , LPCSTR default_value , LPSTR buf , DWORD size )
{
if ( g_config . game_section [ 0 ] )
{
DWORD s = ini_get_string ( & g_config . ini , g_config . game_section , key , " " , buf , size ) ;
if ( s > 0 )
return s ;
}
return ini_get_string ( & g_config . ini , " ddraw " , key , default_value , buf , size ) ;
2018-10-25 07:03:01 +02:00
}
2023-09-22 00:38:42 +02:00
static BOOL cfg_get_bool ( LPCSTR key , BOOL default_value )
2018-10-25 07:03:01 +02:00
{
2019-01-28 21:11:34 +01:00
char value [ 8 ] ;
2020-10-13 11:29:52 +02:00
cfg_get_string ( key , default_value ? " Yes " : " No " , value , sizeof ( value ) ) ;
2018-10-25 07:03:01 +02:00
2019-01-28 21:11:34 +01:00
return ( _stricmp ( value , " yes " ) = = 0 | | _stricmp ( value , " true " ) = = 0 | | _stricmp ( value , " 1 " ) = = 0 ) ;
2018-10-25 07:03:01 +02:00
}
2023-09-22 00:38:42 +02:00
static int cfg_get_int ( LPCSTR key , int default_value )
2018-10-25 07:03:01 +02:00
{
2023-10-14 05:04:36 +02:00
char def_value [ 24 ] ;
_snprintf ( def_value , sizeof ( def_value ) - 1 , " %d " , default_value ) ;
2018-10-25 07:03:01 +02:00
2021-09-29 12:55:20 +02:00
char value [ 20 ] ;
2020-10-13 09:20:52 +02:00
cfg_get_string ( key , def_value , value , sizeof ( value ) ) ;
2018-10-25 07:03:01 +02:00
2021-09-29 12:55:20 +02:00
if ( strstr ( value , " 0x " ) )
{
return ( int ) strtol ( value , NULL , 0 ) ;
}
else
{
return atoi ( value ) ;
}
2018-10-25 07:03:01 +02:00
}