Essence UCS

Launcher Essence UCS

  • fixed compatibility issues in Windows 10
  • updated examples of configurations for working with the original client
  • Like
Reactions: Apocalypse
List of all changes:
  •  Error #416: Incorect scene drawing with changed drawing range
  •  Error #419: Some options in uoptions.ecd[AddOptions] failes to find default value for override
  •  Error #421: Set uoptions.ecd[ConfigFile]$enabled: OFF cause crashing
  •  Error #425: Breaked validation (wrong messages: Duplicated item for entry in Containers section)
  •  Error #443: ECD parser failed in some scenarios
  •  Error #447: Improve stability (fixed memory allocation bugs)
  •  Error #449: Loading guard don't work correct
  •  Feature #246: Ability to add custom mounts past ML clients
  •  Feature #415: Possibility to customize list of fonts in UNIFONT elements in options
  •  Feature #417: Override unifonts height (helpfull for adding custom fonts)
  •  Feature #418: Allow to use any font in ToolTips
  •  Feature #422: Add new way to override UserLanguageCodeString option
  •  Feature #423: Allow to show client restart notice with own UCS option
  •  Feature #424: Replace line height for tooltips (required for using custom fonts)
  •  Feature #426: Hide invisible Foliage tiles (for example if character under land)
  •  Feature #434: Protocol extension API
  •  Feature #435: Implemet FoV support for LoS
  •  Feature #436: Add support for controling LoS by server
  •  Feature #437: New option - Inertness shading for LoS
  •  Feature #438: Improve shadows colors for LoS
  •  Feature #439: LoS implementation
  •  Feature #440: Add suspend mode
  •  Feature #441: Custom gump extension API
  •  Feature #442: Acromage minigame
  •  Feature #444: add ability for playing sound
  •  Feature #445: Add void keys for *.ecd
  •  Feature #446: Implement memory manager and memory profile
  •  Feature #448: Add customizable main menu bar
  •  Miscellaneous #420: Move mainconf.ecd[UOConfigFile] section to uoptions.ecd[ConfigFile]
  •  Miscellaneous #451: Add option for forcing patch session terminate after each patch
List of all changes:
  •  Error #242: Uncorrect work of trasparent tiles with encreased update range
  •  Error #397: Customized journal crash client while relogin
  •  Error #398: Custom icon not correct replace original one
  •  Error #399: Autologin option break main menu and caused client to crash after closing client window.
  •  Error #403: Quiting to main menu cause login and passw field draws incorect
  •  Error #409: Customized journal caused crashes sometimes after reopenning\relogin
  •  Feature #401: Add option for hiding title in skills gump
  •  Feature #402: After disconnecting or quiting to main menu music don't switch to main theme
  •  Feature #404: Music not restore after turning off and on in options menu
  •  Feature #405: Music buferization (if new music can't play imidiatly it will change automaticaly after some time)
  •  Feature #406: Add ability to hide logo screen while client loading
  •  Feature #407: Update journal gump imidiatly after applying changes in options gump
  •  Feature #408: Add ability to select font using in jornal gump
  •  Feature #410: Add to config ability to enable\disable messages on the left side of the screen
  •  Feature #411: Add option for chage font in options gump
  •  Feature #412: Add option for customizing font and color in skill icons
  •  Feature #413: Customizable color defines
  •  Feature #414: Expand text paser with new tags, including styles and classes
List of all changes:
  •  Error #368: Wrong colors in Pixelate and scanlinesTV filters
  •  Error #370: Screen shaking on stairs with FPS mod
  •  Feature #344: Make Journal gump customizable
  •  Feature #369: MMX optimization for AdMame filter
  •  Feature #372: Replace background for account and password edit boxes at login screen
  •  Feature #373: Configuration for width, height and distance between color boxes in character creation gump
  •  Feature #374: Override color for text in textbox on location selection screen
  •  Feature #375: Replacing background for textbox on location selection screen
  •  Feature #376: Customizing font and default encoding in Message Boxe Gump
  •  Feature #377: Add StackGump for GumpAPI
  •  Feature #378: Fixe client bug with ANSI fonts in some cases (invisible chars)
  •  Feature #379: Add special button in paperdoll which sends serial of mobile
  •  Feature #380: Add draw mode fir paperdoll which allows to fix black borders in equipment gumps
  •  Feature #381: Replacing colored status gump for other one
  •  Feature #382: Replacing font and hue for name in statuses
  •  Feature #383: Custimization for skills gump
  •  Feature #384: Customization for Journal Gump
  •  Feature #385: Add filters in Journal gump
  •  Feature #386: Customizing CMD special prefix messages
  •  Feature #387: New hotkeys layout for CMD special types
  •  Feature #388: Add fonts shadows for journal gump
  •  Feature #389: Add user option which change brightness for text in journal
  •  Feature #390: fix ansi to unicode conversation
  •  Feature #391: Increase buffer for journal (number of text lines)
  •  Feature #392: New user option, which allows to hide overlay text on left side of screen
List of all changes:
  •  Error #349: EssenceUCS.Environment.Internet.DownloadFile(String url)
  •  Error #357: Possiblity to run client twice
  •  Error #360: Parsing dtable.inf errors
  •  Error #361: Downloading several patches at once failed
  •  Error #362: Fixed broken patch sections (types)
  •  Error #363: Errors in loading files from packs without license
  •  Error #365: Generating damaged sprofile.bin if _sprofile.esk contained capital characters for file names
  •  Error #366: UCS window crashed on some PC configurations
  •  Feature #364: Add validation for loading files to prevent loading them from HDD without license
It's rather massive update on this time, which add many different new hacks, here list of all changes:
  •  Error #327: Replacing War\Peace btns in paperdoll not work properly
  •  Error #331: Some callbacks in paperdoll from 0x01 to 0x09 dont work correct with types over 0x09
  •  Error #339: Critical bug cause UCS sometime to crash while loading
  •  Feature #328: Increse FPS (for scene update)
  •  Feature #329: Add Minimize callback for paperdoll config
  •  Feature #330: Add center allign option for titile label in paperdoll config
  •  Feature #332: Add minimized gumpid for paperdoll in config
  •  Feature #333: Fix mouse cursor behaviour in single thread mod (cursor flipping)
  •  Feature #334: Allow to disable coloring cursor in peace mod for facet #0
  •  Feature #335: Add special cursors for LMB and RMB press states
  •  Feature #336: Add way to customize cursor walking distance
  •  Feature #337: Add new text controll to gumpapi
  •  Feature #338: Add new section for confirmation gump for gumpapi
  •  Feature #340: Add ability to insert UCS most user common settings in options gump
  •  Feature #341: Make options gump customizable
  •  Feature #342: Make status bars and character status customizable
  •  Feature #343: Add abbility to customize status content and modify data in 0x11 packet
  •  Feature #345: Allow to override default options values and forsing set them
Changelog:
  •  Error #322: Exception handler window creation failed for errors in separated threads
  •  Error #323: Russian speech not work in client
  •  Error #324: Critical errors in patcher system
  •  Error #325: Self updating errors caused problems with patches
  •  Improvement #317: Enable playing music and sound in background
  •  Improvement #318: Reduce CPU usage for audio engine
  •  Improvement #319: Add to configs IDs for titile and death music
  •  Improvement #320: Restore music after returning from about screen and while connecting\creating character
  •  Improvement #321: Replacing opening url in web-browser
Meanwhile, Ultima Client Shell was updated. Here is the list of updates:
  •  Error #313: UO Intro video caused client crash;
  •  Error #314: Bad compatibility with Windows 8, 8.1, and Windows 10;
  •  Improvement #232: Added self-patching option and the client data patch feature;
  •  Improvement #233: Changing the contents of .emp files by client patch;
  •  Improvement #312: Added support to UTF with BOM encoding for *.ecd;
  •  Improvement #316: Created an exception window for UCS with ability to send crush report to the bug tracker.
In short, all the major errors and problems should be fixed by now, including problems with client compatibility; and the problems that negatively affected client’s stability were solved. Besides, full support of UTF8 encoding for file’s settings was added (earlier only UTF8 without BOM was working), as well as the new system of exceptions (errors) management. Users can now send the bug report via the bug tracker with just one click. However, perhaps the most fascinating aspect of the current update is the system of client updates, which includes:
  •  .mul files as well as the UCS package files defragmentation in real time;
  •  Low memory consumption;
  •  Patch sessions are now introduced for increase and decrease of HDD file saving. In case there are several patches available for patching, they are updated coherently, while all of the updates are saved at once in the end or earlier, in case there is a shortage of disk memory or for the management of the future patches.)
  •  Self-update of client files;
  •  The possibility to add, remove, move and rename the files in the packages;
  •  Added signing of files option, compression of patch packages, and the check of data integrty before and after update;
  •  Different approaches to data editing for the more optimal update of various data type. Here is the full list of supported algorithms:
    • Rewrited – simple file replacement;
    • TextFile – Text files update by the LCS (Longes Common-Subsequence) algorithm for its lines, with encoding, where possible, in ANSI in order to lower the size;
    • MulIndex – replacement and update of packages in indexed .mul files of the client;
    • MulFixed – replacement and updated in .mul files of the client for the fixed size of a package;
    • LocalDic – the update of the localization text of the client (cliloc.enu, cliloc.fra et cetera) with encoding, where possible, in ANSI to lower the size;
    • MulFonts – the update of fonts in the client in ANSI as well as in Unicode (fonts are not .mul containers with fixed size of a package despite its extension;
    • TileData – the update of tiledata.mul. Due to tiledata being one of the most updated files of the client, it requires an individual update approach;
    • Surfaces – graphics files update (gampidx.mul, gumpart.mul, texidx.mul, texmaps.mul, artid.mul, art.mul). While these are the simply index files, this algorithm is preferable since it compares not the binary data, but the decoded images. In other words, we can save the same image .PNG with compression or without, where the size of an image and its binary file content will change, while the images will remain identical;
    • MulAnims – animation files update (anim*.idx, anim*.mul). Frames themselves are individually compared and updated as well as their metadata (information of the position of frames). Basically, everything that was described for Surfaces is relevant here too;
    • MapLands – map updates (map*.mul). Similarly to the case of tiledata.mul, the current file type is one of the most frequently updated and therefore requires an individual patching approach;
    • MapTiles – update of statics (staidx*.mul, statics*.mul). Not only is this the most frequently updated type of data, it is also one of the complex one in terms of updates and data comparison. Distinctive feature of this algorithm is the analysis and update of files not by the packages of indexes, but by the groups of packages, with the unification of repeated blocks with the following update of update packages and their indexes. In other words, this algorithm is uniting the similar packages in real time thus compressing the size of statics (in case we are using the transparent water tiles, we are talking about hundreds of megabytes of data) and, therefore, the patch of statics itself becomes considerably lower.

  •  The following algorithms are planned but not yet implemented:
    • TextsLoc – the update of localization of client files (*.enu, *.jpn and others, besides cliloc.*). The size of these files are insufficient and they are rarely updated;
    • UopPackg – the updated of files in containers (*.uop). Despite the impressive size of these files, they are not flexible to work with and are almost never modified;
    • MapFacet – minimap update (facet0*.mul). These files are basically a single big-sized image and its partly update is complex to achieve.

Here is the table, which portrays the amount of code that was involved in the project, including the Ultima Client shell (which is the giant in terms of its complexity and the amount of code involved) and the client:

pic-20160615-005732.png


The table above should hint why it took so long for another UCS update as well as for the UO: Quintessence project, which is now being prepared for its early pre-alpha period.
Back