mirror of
https://github.com/1dot13/source.git
synced 2026-07-29 13:52:17 +02:00
Essence XWnd Shell - Tool (Version: (2014.09.28) ver 0.01 rev 011 build 14271) (by StaticZ)
- This tool can upscale and use different graphic filters to display JA2 1.13 with better graphics - For more infos see "Tools\ExShell\read_me.txt" - Additional infos and screenshot results (for different filters) on the Bears Pit: http://www.ja-galaxy-forum.com/ubbthreads.php/topics/336350/1 - INFO: Using upscaling and filters improves the graphics, but on the other side slows down the game!! git-svn-id: https://ja2svn.mooo.com/source/ja2_v1.13_data@2160 4f8fa57e-7814-0410-bad4-adc449f26b7c
This commit is contained in:
@@ -0,0 +1,166 @@
|
||||
~ EssenceUCS: uoconfig.ecd =====
|
||||
~ 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" }
|
||||
|
||||
~ WARNING: This version supported only DirectDraw2 with screen mode 16 bpp (555 or 565).
|
||||
|
||||
~ =====================================================================================
|
||||
[EXSProfile01] ~ Jagged Alliance 2: 1.13 =====
|
||||
~ =====================================================================================
|
||||
|
||||
$StartPEPath: "C:\Jagged Alliance 2 1.13\ja2.exe"
|
||||
$StartPEArgs: ""
|
||||
|
||||
|
||||
~ =====================================================================================
|
||||
[DefaultConf] ~ Default configuration for all profiles =====
|
||||
~ =====================================================================================
|
||||
|
||||
$StartPEPath: "game.exe"
|
||||
$StartPEArgs: "-nomovie"
|
||||
|
||||
~ 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)
|
||||
$CPUAffinity: #0001
|
||||
|
||||
~ Offset to application entry point (WinMain procedure, it's not same for PE entry point)
|
||||
~ use "no" or #00000000 value to allow exshell found it itself. Using incorrect offset will
|
||||
~ cause problems with exshell loading or application crashing. If you get such problems
|
||||
~ try to set offset manually (it's rather easy to find it throw disassembler, like IDA).
|
||||
~ Note: take attention that this offset usually differs for each executable file, so if
|
||||
~ you get it from somewhere check executable version and checksum to be sure that it's
|
||||
~ really extracted from same executable file.
|
||||
$WinMainOffs: NO
|
||||
|
||||
~ By default exshell capture image from 1st created window. But as few applications create
|
||||
~ several windows (notice that they can be invisible) you possibly will be required to use
|
||||
~ another one. To do this you will need caption text. Notice, that it can be not constant
|
||||
~ value, so in this case better use window class name. 1st argument - window class name,
|
||||
~ 2nd - window caption. If both of them are defined then exshell will search window that
|
||||
~ satisfy both conditions. You can set 1st or\and 2rd parameter to NO to disable filter.
|
||||
~ 3rd parameter - new window caption, if you want to replace original one. To keep original
|
||||
~ one use value NO.
|
||||
~ NOTE: To get list of creating window classes and captions run your application and look
|
||||
~ in console output (See keys $UseDebugMod, $ShowConsole, $ConsoleWPal, $ConsoleWait).
|
||||
$ApplCaption: { NO, NO, NO }
|
||||
|
||||
~ 0 - OFF, value in ms for pause (normally values more 1 ms not recommended to use, though
|
||||
~ in some cases can be used for slowing game). Use it if application always load 100% cpu.
|
||||
$MainLoopLow: 1
|
||||
|
||||
~ If true use mouse cursor clipper inside game window client area. This means that it will
|
||||
~ be impossible to move cursor out of window until it has focus.
|
||||
$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
|
||||
|
||||
~ 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 !!
|
||||
|
||||
~ 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.
|
||||
~ 2nd and 3rd parameters - window client area size (width and height). NOTE: if you use border,
|
||||
~ 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 }
|
||||
|
||||
~ 1st parameter - Bliter type (render method):
|
||||
~ 1 - GDI
|
||||
~ 2 - Direct2D ~ NOTE: NOT IMPLEMENTED !!
|
||||
~ 2nd parameter - Interpolation method:
|
||||
~ 0 - None
|
||||
~ 3rd parameter - Image position (in case if it occupies only part of the screen)
|
||||
~ 1 - draw image at bottom-left corner of the screen
|
||||
~ 2 - draw image at screen bottom, on the center for width
|
||||
~ 3 - draw image at bottom-right corner of the screen
|
||||
~ 4 - draw image at screen left, on the center for height
|
||||
~ 5 - align image on screen center (recommended)
|
||||
~ 6 - draw image at screen right, on the center for height
|
||||
~ 7 - draw image at top-left corner of the screen
|
||||
~ 8 - draw image at screen top, on the center for width
|
||||
~ 9 - draw image at top-right corner of the screen
|
||||
~ 4th parameter - Output source image scaling type:
|
||||
~ 0 - don't change size (it doesn't influence size change by the scaletype filter)
|
||||
~ 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 }
|
||||
|
||||
~ 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
|
||||
~ next filter. At least one filter must be declared (if you want get original image use "None"
|
||||
~ filter). Note: all filters must be declare in one section, otherwise they will be skipped.
|
||||
~ Don't declare filters before $UsingBliter key, otherwise they will be skipped.
|
||||
~ 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
|
||||
~ #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]
|
||||
~ #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
|
||||
|
||||
|
||||
~ =====================================================================================
|
||||
[ShellOptions] ~ EXShell global options =====
|
||||
~ =====================================================================================
|
||||
|
||||
$UseLanguage: "RU" ~ LangCode from entries in Localisation section
|
||||
|
||||
$UseDebugMod: YES ~ Disable all debug staff (OSD, console and other)
|
||||
|
||||
~ enable, toffx, toffy, font, lfWeight [1..9, 4 -default, 7 - bold], lfHeight, texth, tcolr, fsize, fcolr
|
||||
$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 }
|
||||
|
||||
$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
|
||||
}
|
||||
|
||||
$ConsoleWait: NO ~ Pause console log at process termination
|
||||
|
||||
|
||||
~ =====================================================================================
|
||||
[Localisation] ~ List for known locals =====
|
||||
~ =====================================================================================
|
||||
~ Note: Don't rename this section and never use localised strings here!!!
|
||||
~ format: LangCode (2 chars only), ANSI_CP, OEM_CP, Charset
|
||||
~ for default values, 1st argument is missed.
|
||||
|
||||
$elangcodepage:{ 1251, 850, 0 } ~ Default
|
||||
$elangcodepage:{ "EN", 1250, 850, 0 } ~ English
|
||||
$elangcodepage:{ "RU", 1251, 866, 204 } ~ Русский
|
||||
$elangcodepage:{ "SP", 1252, 850, 0 } ~ Espanol
|
||||
$elangcodepage:{ "GE", 1252, 850, 0 } ~ Deutsch
|
||||
$elangcodepage:{ "IT", 1253, 850, 0 } ~ Italiano
|
||||
$elangcodepage:{ "FR", 1253, 850, 0 } ~ Francais
|
||||
@@ -0,0 +1,141 @@
|
||||
______ ______ ______ ______ __ __ ______ ______
|
||||
/\ ___\ /\ ___\ /\ ___\ /\ ___\ /\ "-.\ \ /\ ___\ /\ ___\
|
||||
\ \ __\ \ \___ \ \ \___ \ \ \ __\ \ \ \-. \ \ \ \____ \ \ __\
|
||||
\ \_____\ \/\_____\ \/\_____\ \ \_____\ \ \_\\"\_\ \ \_____\ \ \_____\
|
||||
\/_____/ \/_____/ \/_____/ \/_____/ \/_/ \/_/ \/_____/ \/_____/
|
||||
__ __ __ __ __ __ _____ ______ __ __ ______ __ __
|
||||
/\_\_\_\ /\ \ _ \ \ /\ "-.\ \ /\ __-. /\ ___\ /\ \_\ \ /\ ___\ /\ \ /\ \
|
||||
\/_/\_\/_\ \ \/ ".\ \\ \ \-. \\ \ \/\ \ \ \___ \\ \ __ \\ \ __\ \ \ \____\ \ \____
|
||||
/\_\/\_\\ \__/".~\_\\ \_\\"\_\\ \____- \/\_____\\ \_\ \_\\ \_____\\ \_____\\ \_____\
|
||||
\/_/\/_/ \/_/ \/_/ \/_/ \/_/ \/____/ \/_____/ \/_/\/_/ \/_____/ \/_____/ \/_____/
|
||||
|
||||
|
||||
2014 (c) StaticZ <staticz@uoquint.ru>
|
||||
________________________________________________________________________________________
|
||||
|
||||
|
||||
CONTENT
|
||||
|
||||
1.0 About ExShell
|
||||
2.0 Install and Running
|
||||
3.0 Requirements
|
||||
4.0 Perfomance
|
||||
5.0 Tested Games
|
||||
6.0 Change Log
|
||||
|
||||
|
||||
|
||||
-------------------
|
||||
(1.0) About ExShell
|
||||
-------------------
|
||||
|
||||
"Essence XWnd Shell" aka ExShell is hook based application for force running old
|
||||
games (or ant other full screen applications) in windowed mode with different
|
||||
graphic filters (for example upscalers like 2xSaI). ExShell also provide some other
|
||||
abilities, like setting FPS limit or lowing CPU usage (see config for more details).
|
||||
|
||||
|
||||
|
||||
-------------------------
|
||||
(2.0) Install and Running
|
||||
-------------------------
|
||||
|
||||
For installing copy ExShell to any directory you whant and open exshell.ecd config
|
||||
file in any text editor (recomended Notepad++, you can import to it syntax higlight
|
||||
from *.xml file that are distributed with ExShell). To lunch your application you
|
||||
have to set path to it and it's screen resolution. The application you whant to run
|
||||
must be set in fullscreen mode (ja2.ini: SCREEN_MODE_WINDOWED = 0), otherwise you
|
||||
get many problems and errors.
|
||||
Check other options and see comments there for more details.
|
||||
|
||||
Important exshell.ecd entries:
|
||||
- Set $StartPEPath for profile [EXSProfile01] to the ja2.exe file (full path).
|
||||
- Set $FScreenMode to the same resoultion like JA2 1.13 (see: ja2.ini -> SCREEN_RESOLUTION)
|
||||
-> Also set SCREEN_MODE_WINDOWED = 0 in ja2.ini
|
||||
- Set $WindowFrame to the double size (if you use 2x upscaling filters) of your JA2 1.13 screen resolution
|
||||
- Set $ImageFilter to your liking. For best image quality set the filter to #2022
|
||||
-> This means 2x upscaling the screen resolution and using xbra filter
|
||||
|
||||
Be carefully, while saving
|
||||
config file, check that you use UTF8 (without BOM) encoding. Otherwise ExShell will
|
||||
have problems with reading it.
|
||||
|
||||
To start the JA2 1.13 with the exShell tool, just run the exshell.exe
|
||||
|
||||
Additional informations can be found on the Bears Pit Forum:
|
||||
http://www.ja-galaxy-forum.com/ubbthreads.php/topics/336350/1
|
||||
|
||||
|
||||
------------------
|
||||
(3.0) Requirements
|
||||
------------------
|
||||
|
||||
ExShell supports only windows x86 applications, that are based on DirectDraw or GDI.
|
||||
|
||||
System requirements:
|
||||
|
||||
Windows(R) XP/Vista/7
|
||||
DirectX 9.0
|
||||
Monitor, keybord, mouse, cheese, beer
|
||||
|
||||
|
||||
|
||||
----------------
|
||||
(4.0) Perfomance
|
||||
----------------
|
||||
|
||||
For compare speed of different filters, see table below. There values are average
|
||||
number of processor ticks for proccesing each pixel. All values were got by filtering
|
||||
screen 640x480 and dividing result for pixels count. As procesor ticks are very
|
||||
small values and exaclty value depends on many things, like current CPU loading
|
||||
the result where get as avarage for several minutes.
|
||||
_______________________
|
||||
| Filter Type | Speed |
|
||||
|---------------+-------|
|
||||
| None* | <1 |
|
||||
| Simple | 5 |
|
||||
| Pixelate | 10 |
|
||||
| Scanlines | 10 |
|
||||
| ScanlinesTV | 17 |
|
||||
| AdMame | 17 |
|
||||
| Super2xSaI | 117 |
|
||||
| 2xSaI | 121 |
|
||||
| HQ | 680 |
|
||||
| LQ | 685 |
|
||||
| XBR | 696 |
|
||||
*---------------^-------*
|
||||
|
||||
* According to exshell architecture "None filter" is real filter, that simply copy
|
||||
screen from one memmory block to other. So infact it's speed more depends on RAM
|
||||
speed then on CPU.
|
||||
|
||||
As you can see ower winner is AdMame, it is very fast and give nice result, close to
|
||||
smth similar for Super2xSaI.
|
||||
|
||||
|
||||
|
||||
------------------
|
||||
(5.0) Tested Games
|
||||
------------------
|
||||
|
||||
ExShell was tested for compatibility with this games:
|
||||
|
||||
1. Jagged Alliance 2: Feeding Ground [OK]
|
||||
2. Jagged Alliance 2: 1.13 [OK]
|
||||
3. Jagged Alliance 2: Metavira [OK]
|
||||
|
||||
|
||||
|
||||
----------------
|
||||
(6.0) Change Log
|
||||
----------------
|
||||
|
||||
|
||||
(2014.09.28) ver 0.01 rev 011 build 14271
|
||||
------------------------------------------
|
||||
|
||||
* Intial realise
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user