USXPM (UNIX-Style Xdelta Patch Maker) is ISXPM-Lite. You lose GUI but you gain speed and efficiency:
Special features
- Primary focus is creation of Steam game patches еliminating the need to compare old and new versions of the game at all by using direct change info from Steamdb game update page or premade changed files list;
- Using fast hybrid compare method (first check file size, only calculate and check CRC if sizes are the same) to compare old and new versions when Steamdb/changed files list is unavailable or when making patch for non-Steam game or non-game data;
- USXPM automatically calculates free space requirements for USXPM manual patch applier.
Usage
Download USXPM (3 Mb), unpack anywhere, specify old & new folders either in config file or as command line parameters, launch any of 3 main _USXPM*.bat files by double-clicking from File Explorer or from command line. Resulting patch folder by default will be created in the same folder from where you launched the _USXPM*.bat so choose the drive with enough free space.
Advanced users may add USXPM folder to PATH variable so that _USXPM*.bat files and tools could be launched from anywhere.
Typical usage scenarios
Steamdb patch info
- Specify old & new folders, easiest way is to edit _USXPM_CONFIG.txt
- Edit _STEAMDB_DATA.txt and copy/paste data from steamdb page into there
- Launch _USXPM_STEAMDB.bat
Premade changed files list
- Specify old & new folders, easiest way is to edit _USXPM_CONFIG.txt
- Edit _READY_CHANGEDLIST.txt and copy/paste list of files there. Each line must contain relative filename. Both DOS (\) or UNIX (/) path separators are supported.
- Launch _USXPM_CHANGEDLIST_READY.bat
Hybrid compare
- Specify old & new folders, easiest way is to edit _USXPM_CONFIG.txt
- Launch _USXPM.bat
Pros and Cons
Steamdb info scenario (_USXPM_STEAMDB.BAT)
(+) Speed. Set of added/modified/removed filelists (equivalent to checker.ini in ISXPM) is made within seconds
(+) No HDD wear & tear as no files read from disk to create added/modified/removed filelists
(+) Detects removed files from Steamdb info. If the game is updated through rehash of loose files torrent old junked files which are not in the new version any more won't be deleted from disk during torrent rehash.
(+) Great for insignificant game updates which only touch several files and bulk of the game is unchanged.
(+) Correctly handles chain of multiple updates from Steamdb. For example, if game was at v1.0 and then several small updates v1.1, 1.2, 1.3 quickly released you may put steamdb info for all 3 updates in sequence into _STEAMDB_DATA.txt and you'll get a set of added/modified/removed filelists for the patch from v1.0 to v1.3.
(-) Only valid for Steam games
(-) Needs access to Internet and Steamdb site
(-) Need to manually copy and paste info from Steamdb page into _STEAMDB_DATA.txt
Premade changed files list scenario (_USXPM_CHANGEDLIST_READY.bat)
This method resembles Steamdb info method and has some of its pros:
(+) Can be used with any files, not just games
(+) Speed. Modified filelist is ready
(+) No HDD wear & tear as no files read from disk to create filelist
(+) Great for insignificant game updates which only touch several files and bulk of the game is unchanged.
(-) Does not handle added&removed filelists at all so it may be unsuitable for significant game updates which have many removed and/or completely new files.
(-) Needs ready list of changed files from forum or elsewhere.
Hybrid compare scenario (_USXPM.bat)
(+) Can be used with any files, not just games
(+) Great for big game updates which touch lots of game files
(+) Completely autonomous, only needs folders with old and new files
(+) Less hassle, no need to manage _STEAMDB_DATA.txt
(-) Slower as it actually reads files which have same size from disk to calculate hashes.
(-) Increased HDD wear & tear
(-) Can't detect removed files if game was updated through loose files torrent rehash
(-) Inefficient for insignificant game updates which only change several files (it will have to hash lots of equal-sized unchanged files)
Ways of specifying old and new folders
For all methods you must specify old and new folders either in _USXPM_CONFIG.txt or as command line parameters to _USXPM*.bat files.
The easiest way is to edit _USXPM_CONFIG.txt config file and set folders there. _USXPM_CONFIG.txt is read
A) from current folder (you may specify paths to folders relative to current one)
OR
B) from the folder where USXPM .bat files reside (you may need to specify full paths to folders)
It must have at least 2 lines - 1st line is old folder, 2nd line is new folder. Paths with spaces in folder names are supported.
_USXPM_CONFIG.txt can actually store many paths for many games, only first, second and last lines are used.
3rd/last line is patch root folder where PatchData subfolder with actual xdeltas will be created. This line is optional, if there are only 2 lines in _USXPM_CONFIG.txt then default location of patch root folder is {OldFolderName}_patch subfolder in current folder.
You may specify full path to custom patch location in the 3rd/last line e.g. if you specify %USERPROFILE%\Desktop\NewPatch then NewPatch folder with PatchData subfolder will be created on your desktop.
Example _USXPM_CONFIG.txt
d:\temp\Gothic Remake ----> old version of the game
d:\Games\Gothic Remake ----> new version of the game
d:\temp\Crimson Desert \
d:\Games\Crimson Desert \ these lines are not currently used but may be moved up if you need
d:\temp\Samson / to make a patch for a new version of one of these games
d:\Games\Samson /
c:\temp\Patch ----> custom location for patch root on drive C:
Alternatively advanced users may specify old and new folder paths as command line parameters to _USXPM*.bat files. Paths to folders relative to current one are supported.



No comments:
Post a Comment