From 2da88b9e1563825007404590bf66b277cc299f11 Mon Sep 17 00:00:00 2001 From: Wanne Date: Sat, 11 Oct 2014 16:38:33 +0000 Subject: [PATCH] ExShell (New Version: 0.02(018.14282)) (by StaticZ) - Fixed: FPS limit ignored after minimize\restore application - Fixed: SuperEagle filter crashed application. - Fixed: Related paths for $StartPEPath: don't work. - Change startup initialization for more safety - Change using instruction sets: MMX, SSE, SSE2, AVX - Added: EPX upscale filter - Added: info about selected filters and game mode in OSD - Added: saving screenshots by PrntScr hotkey (Ctrl+PrntScr to save original image) - Added: separating FPS limit for focused and unfocused application window - Added: sending customise keyboard keys scancode at lose and get focus. - Added: minor checks and validations git-svn-id: https://ja2svn.mooo.com/source/ja2_v1.13_data@2166 4f8fa57e-7814-0410-bad4-adc449f26b7c --- gamedir/Tools/ExShell/exshell.ecd | 90 +++++++++----- gamedir/Tools/ExShell/read_me.txt | 15 +++ .../toolsadd/notepad++/ecd-highlight.xml | 64 ++++++++++ gamedir/Tools/ExShell/toolsadd/scancodes.htm | 116 ++++++++++++++++++ 4 files changed, 253 insertions(+), 32 deletions(-) create mode 100644 gamedir/Tools/ExShell/toolsadd/notepad++/ecd-highlight.xml create mode 100644 gamedir/Tools/ExShell/toolsadd/scancodes.htm diff --git a/gamedir/Tools/ExShell/exshell.ecd b/gamedir/Tools/ExShell/exshell.ecd index a6c68d455..82265f79a 100644 --- a/gamedir/Tools/ExShell/exshell.ecd +++ b/gamedir/Tools/ExShell/exshell.ecd @@ -2,30 +2,32 @@ ~ Encoding: only UTF-8 without BOM !!! ===== $unknown: OFF ~ !! Don't remove this... ===== ~ ===================================================================================== - -~ Using sections (exshell will look for walues in this sections in left-to right order) -$LoadProfile: { "ShellOptions", "EXSProfile01", "DefaultConf" } -~$LoadProfile: { "ShellOptions", "EXSProfile02", "DefaultConf" } - +~ see "ecd-format_eng.pdf"|"ecd-format_rus.pdf" for format and syntax description. ~ WARNING: This version supported only DirectDraw2 with screen mode 16 bpp (555 or 565). + +~$LoadProfile: "DefaultConf" +~ Using sections (exshell will look for walues in this sections in left-to right order) +$LoadProfile: { "ShellOptions", "JaggedAlliance2", "DefaultConf" } + ~ ===================================================================================== -[EXSProfile01] ~ Jagged Alliance 2: 1.13 ===== +[JaggedAlliance2] ~ Jagged Alliance 2 and it's mods ===== ~ ===================================================================================== $StartPEPath: "C:\Jagged Alliance 2 1.13\ja2.exe" -$StartPEArgs: "" + + ~ ===================================================================================== [DefaultConf] ~ Default configuration for all profiles ===== ~ ===================================================================================== -$StartPEPath: "game.exe" -$StartPEArgs: "-nomovie" +$StartPEPath: "game.exe" ~ Full or relative path to lunching application. +$StartPEArgs: "" ~ command line arguments for lunching application. ~ 0 - OFF, value is bit mask for allowed CPU cores, use to solve problems with multi core. -~ (i.e. #0001 - 1st core, #0002 - 2nd core, #0004 - 3rd core, #0008 - 4yh core and so on) +~ (i.e. #0001 - 1st core, #0002 - 2nd core, #0004 - 3rd core, #0008 - 4th core and so on) $CPUAffinity: #0001 ~ Offset to application entry point (WinMain procedure, it's not same for PE entry point) @@ -59,13 +61,14 @@ $ClipMCursor: YES ~ NOTE: NOT IMPLEMENTED !! ~ Set limit for screen update, use this to reduce CPU usage. Value NO or 0 means that there ~ are no limitation in exshell, but notice that running application can have own FPS limit. -~ Set value to YES to use VSYNC (Only for DirectDraw, for GDI it will be same as NO value) -$FPSMaxLimit: 60 +~ Second value is FPS limit for application when focus is lost. If value NO then 1st value +~ will be used. This will help to save your CPU load. +$FPSMaxLimit: { 60, 10 } ~ 1st and 2nd parameters - Original full screen game mode (it's not real window size) ~ 3rd parameter - color mode (for 16 bit commonly used 555 or 565, for 24\32 - 888, ~ for 256 color mode use value 0). -$FScreenMode: { 800, 600, 555 } ~ NOTE: 8\24\32 BIT MODES NOT IMPLEMENTED !! +$FScreenMode: { 640, 480, 555 } ~ NOTE: 8\24\32 BIT MODES NOT IMPLEMENTED !! ~ Real window settings (it can be larger then application resolution): ~ 1st parameter - if TRUE window will have border, if FALSE then it will be created without it. @@ -73,7 +76,7 @@ $FScreenMode: { 800, 600, 555 } ~ NOTE: 8\24\32 BIT MODES NOT IMPLEMENTED !! ~ real window sizes will be larger. Exactly border sizes depending on OS version and used theme. ~ 4th and 5th parameters - initial position for top-left corner of a window (X, Y) ~ 6th parameter - window background color (in R8G8B8 format) -$WindowFrame: { YES, 1600, 1200, 0, 0, #008080 } +$WindowFrame: { YES, 1920, 1080, 0, 0, #008080 } ~ NOTE: WINDOW BORDER NOT IMPLEMENTED !! ~ 1st parameter - Bliter type (render method): ~ 1 - GDI @@ -95,7 +98,7 @@ $WindowFrame: { YES, 1600, 1200, 0, 0, #008080 } ~ 1 - stretch with saving aspect ratio. ~ 2 - stretch to window size with saving aspect ratio (cutting sides). ~ 3 - stretch to window size. -$UsingBliter: { 1, 0, 5, 1 } +$UsingBliter: { 1, 0, 5, 0 } ~ Using filters for capture image. You can use any number of filters you want, they will be ~ applied in order they are declared. The output result of filter will become input data for @@ -105,24 +108,47 @@ $UsingBliter: { 1, 0, 5, 1 } ~ 1st parameter - upscale type (add #2000 for 2x, #3000 for 3x, #4000 for 4x, if supported): ~ #00 - None [ ] - don't use upscale filter (1x) ~ #01 - Simple [2x 3x 4x] - fastest, no smoothing, no filtering -~ #02 - Pixelate [2x 3x 4x] - retro style -~ #03 - Scanlines [2x ] - retro style -~ #04 - ScanlinesTV [2x ] - retro style +~ +~ #02 - Pixelate [2x 3x 4x] - retro style (old screen) +~ #03 - Scanlines [2x ] - retro style (old screen) +~ #04 - ScanlinesTV [2x ] - retro style (old screen) ~ #05 - MotionBlur [2x ] - blur effect for screen update -~ #10 - 2xSaI [2x ] -~ #11 - SuperEagle [2x ] -~ #12 - Super2xSaI [2x ] -~ #13 - AdMame [2x ] - RECOMENDED! (best speed for good quality) -~ #20 - lq [2x ] -~ #21 - hq [2x ] -~ #22 - xbra [2x 3x 4x] -~ #23 - xbrb [2x 3x 4x] -~ #24 - xbrc [2x 3x 4x] +~ +~ #10 - Eagle [--------] - good for saving graphics details +~ #11 - 2xSaI [2x ] - improved Eagle algorithm +~ #12 - SuperEagle [2x ] - similar to 2xSaI, but does more blending +~ #13 - Super2xSaI [2x ] - similar to 2xSaI, but smooths graphics +~ +~ #20 - EPX [2x ] - something average between Eagle family and HQ family +~ #21 - Scale [--------] - improved EPX +~ #22 - AdvMame [2x ] - improved EPX +~ +~ #30 - lq [2x ] - good for making graphics sharper +~ #31 - hq [2x ] - same as LQ, but more heavy interpolation +~ #32 - xbra [2x 3x 4x] - based on HQ +~ #33 - xbrb [2x 3x 4x] - based on HQ +~ #34 - xbrc [2x 3x 4x] - based on HQ +~ #35 - xbrz [--------] - improved XBR +~ ~ #01 - GrayScale [- - - ] - Convert colors to gray tons. ~ ??? - Scale2xSaI, Bilinear, BilinearPlus ~ NOTE: keys can contain addition parameters, depending on using filter (see description above). -~ $ImageFilter: #0001 -$ImageFilter: #2022 +$ImageFilter: #0001 +$ImageFilter: #2004 + +~ This options allow to send pressing event for specified keys to application before focus will be lost +~ and after focus restore. This can be used for setting game on pause, autosaveing or solving some +~ problems with sticking keys while switching windows. Common keys code are defined below, optionally +~ you can add #00E00000 for extended key code (E0). For example ALT+S can be described as events +~ {#38, #1F, #9F, #B8} or in case of right ALT {#E00038, #1F, #9F, #E000B8}. +~ You can add any number of key codes to array or use NO value to disable it, keys will be send from left +~ to right order. List of scan codes can be found in ./toolsadd/scancodes.htm +$GetFocusKey: { #B8,#E000B8 } ~ Break for: Left & Right ALT +$RemFocusKey: OFF ~ NOTE: bad coded, though in most cases its working. + +~ Press PrintScreen for saving screenshot or Ctrl+PrintScreen for saving unfiltered screenshot. +~ Allowed formats: "jpeg", "png", "bmp", "tiff", "gif" (note gif allows save only up to 256 colors) +$ScrnGrabImg: "png" ~ ===================================================================================== @@ -137,21 +163,21 @@ $UseDebugMod: YES ~ Disable all debug staff (OSD, console and other) $ShowOSDMenu: { YES, 30, 60, "Courier", 7, 18, 20, #B4B4B4, TRUE, #000000 } ~ enable, x, y, width, height, buggerW, buggerH, font, family, fontW, fontH, CP -$ShowConsole: { YES, 0, 0, #C0DE, 1006, 87, 4096, "Consolas", #00, 9, 26, 1251 } +$ShowConsole: { YES, 100, 100, #C0DE, 906, 87, 4096, "Consolas", #00, 9, 26, 1251 } $ConsoleWPal: { ~ 16 color RGB palette ~ #000000, #000080, #008000, #008080, #800000, #800080, #808000, #C0C0C0, ~ Default Windows ~ #808080, #0000FF, #00FF00, #00FFFF, #FF0000, #FF00FF, #FFFF00, #FFFFFF #000000, #000080, #008000, #008080, #800000, #800080, #808000, #C0C0C0, ~ Essence Theme - #808080, #0000FF, #00FF00, #00FFFF, #FF0000, #FF00FF, #FFFF00, #FFFFFF + #808080, #0000FF, #00FF00, #00FFFF, #FF0000, #FF00FF, #FFFF00, #FFFFFF } $ConsoleWait: NO ~ Pause console log at process termination ~ ===================================================================================== -[Localisation] ~ List for known locals ===== +[Localisation] ~ List for known locals (don't rename or delete) ===== ~ ===================================================================================== ~ Note: Don't rename this section and never use localised strings here!!! ~ format: LangCode (2 chars only), ANSI_CP, OEM_CP, Charset diff --git a/gamedir/Tools/ExShell/read_me.txt b/gamedir/Tools/ExShell/read_me.txt index 4b405a666..9ce37bb20 100644 --- a/gamedir/Tools/ExShell/read_me.txt +++ b/gamedir/Tools/ExShell/read_me.txt @@ -137,5 +137,20 @@ ExShell was tested for compatibility with this games: * Intial realise +(2014.10.09) ver 0.02 rev 018 build 14282 +------------------------------------------ + + * Fixed: FPS limit ignored after minimize\restore application + * Fixed: SuperEagle filter crashed application. + * Fixed: Related paths for $StartPEPath: don't work. + * Change startup initialization for more safety + * Change using instruction sets: MMX, SSE, SSE2, AVX + * Added: EPX upscale filter + * Added: info about selected filters and game mode in OSD + * Added: saving screenshots by PrntScr hotkey (Ctrl+PrntScr to save original image) + * Added: separating FPS limit for focused and unfocused application window + * Added: sending customise keyboard keys scancode at lose and get focus. + * Added: minor checks and validations + \ No newline at end of file diff --git a/gamedir/Tools/ExShell/toolsadd/notepad++/ecd-highlight.xml b/gamedir/Tools/ExShell/toolsadd/notepad++/ecd-highlight.xml new file mode 100644 index 000000000..716733a10 --- /dev/null +++ b/gamedir/Tools/ExShell/toolsadd/notepad++/ecd-highlight.xml @@ -0,0 +1,64 @@ + + + + + + + + 00~ 01 02 03 04 + # + + + + + + + " , : { } @ --> ( ) [ ] + + <-- + + --> + + + + + + + ru. en. + true false yes no on off + + + + + + + 00" 01 02" 03[ 04 05] 06$ 07 08: 09@ 10 11: 12%% 13 14%% 15 16 17, 17} 17$ 17[ 17@ 18 19 20 21 22 23 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gamedir/Tools/ExShell/toolsadd/scancodes.htm b/gamedir/Tools/ExShell/toolsadd/scancodes.htm new file mode 100644 index 000000000..8553b945c --- /dev/null +++ b/gamedir/Tools/ExShell/toolsadd/scancodes.htm @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
KeyMake (HEX)Break (HEX)
Num Lock45C5
Num DivideE0 35E0 B5
Num Multiply37B7
Num Minus4ACA
Num Plus4ECE
Num EnterE0 1CE0 9C
Num Dot53D3
Num 052D2
Num 14FCF
Num 250D0
Num 351D1
Num 44BCB
Num 54CCC
Num 64DCD
Num 747C7
Num 848C8
Num 949C9
Print ScreenE0 2A E0 37E0 B7 E0 AA
Scroll Lock46C6
PauseE1 1D 45 E1 9D C5
InsertE0 2A E0 52E0 D2 E0 AA
HomeE0 2A E0 47E0 C7 E0 AA
Page UpE0 2A E0 49E0 C9 E0 AA
DeleteE0 2A E0 53E0 D3 E0 AA
EndE0 2A E0 4FE0 CF E0 AA
Page DownE0 2A E0 51E0 D1 E0 AA
Arrow UpE0 2A E0 48E0 C8 E0 AA
Arrow LeftE0 2A E0 4BE0 CB E0 AA
Arrow DownE0 2A E0 50E0 D0 E0 AA
Arrow RightE0 2A E0 4DE0 CD E0 AA
PowerE0 5EE0 DE
SleepE0 5FE0 DF
Wake UpE0 63E0 E3
Esc0181
F13BBB
F23CBC
F33DBD
F43EBE
F53FBF
F640C0
F741C1
F842C2
F943C3
F1044C4
F1157D7
F1258D8
Tab0F8F
Caps Lock3ABA
Shift Left2AAA
Shift Right36B6
Ctrl Left1D9D
Ctrl RightE0 1DE0 9D
Alt Left38B8
Alt RightE0 38E0 B8
Win LeftE0 5BE0 DB
Win RightE0 5CE0 DC
ApplicationsE0 5DE0 DD
Space39B9
Enter1C9C
Back Space0E8E
10282
20383
30484
40585
50686
60787
70888
80989
90A8A
00B8B
Q1090
W1191
E1292
R1393
T1494
Y1595
U1696
I1797
O1898
P1999
A1E9E
S1F9F
D20A0
F21A1
G22A2
H23A3
J24A4
K25A5
L26A6
Z2CAC
X2DAD
C2EAE
V2FAF
B30B0
N31B1
M32B2
~29A9
-0C8C
=0D8D
\2BAB
[1A9A
]1B9B
;27A7
"28A8
<33B3
>34B4
?35B5
+ \ No newline at end of file