• New Horizons on Maelstrom
    Maelstrom New Horizons


    Visit our website www.piratehorizons.com to quickly find download links for the newest versions of our New Horizons mods Beyond New Horizons and Maelstrom New Horizons!

Sea Dogs: To Each His Own (TEHO) Technical Review

ChezJfrey

Freebooter
Storm Modder
The following contains no subjective commentary, and is an objective review of technical facts.

Sea Dogs: To Each His Own offers absolutely no improvements/fixes to the original COAS 2.8 Storm engine, despite any contrary claims.

File listing of TEHO:
Code:
 Directory of E:\SteamLibrary\steamapps\common\Sea Dogs To Each His Own\modules

07/01/2018  10:09 AM    <DIR>          .
07/01/2018  10:09 AM    <DIR>          ..
01/18/2018  12:06 PM            90,112 animals.dll
01/18/2018  12:06 PM           167,936 Animation.dll
01/18/2018  12:06 PM            69,632 artifact.dll
01/18/2018  12:06 PM            49,152 BackgroundShipTask.dll
01/18/2018  12:06 PM            61,440 BallSplash.dll
01/18/2018  12:06 PM           217,088 battle_interface.dll
01/18/2018  12:06 PM            77,824 blade.dll
01/18/2018  12:06 PM            77,824 Blot.dll
01/18/2018  12:06 PM            61,440 CameraDialog.dll
01/18/2018  12:06 PM            53,248 COLLIDE.dll
01/18/2018  12:06 PM            86,016 DIALOG.dll
07/01/2018  10:09 AM                 0 dir.txt
01/18/2018  12:05 PM           454,656 DX8RENDER.dll
01/18/2018  12:06 PM            86,016 GAMEUTILS.dll
01/18/2018  12:06 PM            77,824 GEOMETRY.dll
01/18/2018  12:06 PM           126,976 ISLAND.dll
01/18/2018  12:06 PM           151,552 Lighter.dll
01/18/2018  12:05 PM           413,696 Location.dll
01/18/2018  12:06 PM            73,728 locator.dll
01/18/2018  12:06 PM            81,920 MAST.dll
01/18/2018  12:06 PM            73,728 MODEL.dll
01/18/2018  12:05 PM           675,840 net.dll
01/18/2018  12:06 PM           151,552 PARTICLES.dll
01/18/2018  12:06 PM            65,536 PCS_CONTROLS.dll
01/18/2018  12:06 PM            94,208 PEOPLES_ON_SHIP.dll
01/18/2018  12:06 PM           229,376 rigging.dll
01/18/2018  12:06 PM           118,784 Sailors.dll
01/18/2018  12:06 PM            49,152 SCRIPT_LIBRIARY.dll
01/18/2018  12:06 PM           204,800 sea.dll
01/18/2018  12:06 PM            69,632 SeaCreatures.dll
01/18/2018  12:06 PM            90,112 seafoam.dll
01/18/2018  12:06 PM           192,512 sea_ai.dll
01/18/2018  12:06 PM            90,112 SEA_CAMERAS.dll
01/18/2018  12:06 PM           212,992 SEA_OPERATOR.dll
01/18/2018  12:06 PM            90,112 shadow.dll
01/18/2018  12:06 PM           139,264 ship.dll
01/18/2018  12:06 PM            73,728 sink_effect.dll
01/18/2018  12:06 PM            57,344 SOUND.dll
01/18/2018  12:06 PM           102,400 SoundService.dll
01/19/2018  11:31 AM    <DIR>          techniques
01/18/2018  12:06 PM            61,440 Teleport.dll
01/18/2018  12:06 PM            98,304 Tornado.dll
01/18/2018  12:06 PM            65,536 touch.dll
01/18/2018  12:06 PM            57,344 WaterRings.dll
01/18/2018  12:06 PM           208,896 WEATHER.dll
01/18/2018  12:05 PM           278,528 WorldMap.dll
01/18/2018  12:05 PM           544,768 XINTERFACE.dll
              46 File(s)      6,574,080 bytes
File listing of AoP2 City of Abandoned Ships:
Code:
 Directory of E:\Playlogic\Age of Pirates 2\modules

07/01/2018  10:10 AM    <DIR>          .
07/01/2018  10:10 AM    <DIR>          ..
10/25/2008  01:50 PM            90,112 animals.dll
10/25/2008  01:50 PM           167,936 Animation.dll
10/25/2008  01:50 PM            69,632 artifact.dll
10/25/2008  01:41 PM            49,152 BackgroundShipTask.dll
10/25/2008  11:33 AM            61,440 BallSplash.dll
10/25/2008  01:50 PM           212,992 battle_interface.dll
10/25/2008  01:43 PM            77,824 blade.dll
10/25/2008  01:49 PM            77,824 Blot.dll
10/25/2008  01:49 PM            61,440 CameraDialog.dll
10/25/2008  01:49 PM            53,248 COLLIDE.dll
10/25/2008  01:49 PM            86,016 DIALOG.dll
07/01/2018  10:10 AM                 0 dir.txt
10/25/2008  01:49 PM           450,560 DX8RENDER.dll
10/25/2008  01:41 PM            86,016 GAMEUTILS.dll
10/25/2008  01:48 PM            77,824 GEOMETRY.dll
10/25/2008  01:48 PM           126,976 ISLAND.dll
10/25/2008  01:48 PM           151,552 Lighter.dll
10/25/2008  01:47 PM           413,696 Location.dll
10/25/2008  01:48 PM            73,728 locator.dll
10/25/2008  01:47 PM            81,920 MAST.dll
10/25/2008  01:47 PM            73,728 MODEL.dll
10/25/2008  01:43 PM           671,744 net.dll
10/25/2008  01:47 PM           151,552 PARTICLES.dll
10/25/2008  01:46 PM            65,536 PCS_CONTROLS.dll
10/25/2008  01:46 PM            94,208 PEOPLES_ON_SHIP.dll
10/25/2008  01:46 PM           217,088 rigging.dll
10/25/2008  01:41 PM           118,784 Sailors.dll
10/25/2008  01:46 PM            49,152 SCRIPT_LIBRIARY.dll
10/25/2008  01:46 PM           204,800 sea.dll
10/25/2008  01:45 PM            69,632 SeaCreatures.dll
10/25/2008  01:41 PM            90,112 seafoam.dll
07/09/2008  11:10 PM           188,416 sea_ai.dll
10/25/2008  01:45 PM            90,112 SEA_CAMERAS.dll
10/10/2008  03:56 PM           212,992 SEA_OPERATOR.dll
10/25/2008  01:43 PM            90,112 shadow.dll
10/25/2008  01:45 PM           131,072 ship.dll
10/25/2008  01:45 PM            73,728 sink_effect.dll
10/25/2008  01:45 PM            57,344 SOUND.dll
10/25/2008  01:43 PM           102,400 SoundService.dll
03/13/2017  11:25 PM    <DIR>          techniques
10/25/2008  01:45 PM            61,440 Teleport.dll
10/25/2008  01:45 PM            98,304 Tornado.dll
10/25/2008  01:45 PM            65,536 touch.dll
10/25/2008  01:45 PM            57,344 WaterRings.dll
10/25/2008  01:43 PM           208,896 WEATHER.dll
10/25/2008  01:42 PM           278,528 WorldMap.dll
10/25/2008  01:45 PM           544,768 XINTERFACE.dll
              46 File(s)      6,537,216 bytes
They are virtually the same, with every module the exact same number of bytes, except battle_interface.dll, DX8RENDER.dll and sea_ai.dll (excluding net.dll since it pertains only to the non-existent online mode).

I can only surmise to achieve this, the same source code, with virtually no changes, except for those few modules, was compiled under the same, old Visual Studio version (circa 2005-2008?), with default compiler options. Else, a newer VS version, with a newer compiler would undoubtedly result in different binary sizes. I also suspect, but can't confirm or deny, that program optimizations for the release build were actually disabled for TEHO, because my own experience in first attempting optimization for faster processing, resulted in immediate and numerous crashes, whereas disabling them allowed the program to run. This is because unoptimized builds often create some variable/array allocations to contain extra stack/buffer space and "temporaries" to remain in scope, that sometimes allows poor programming practices to "get away" with those types of bugs. See here for a brief explanation: Compiler optimization makes program crash

I eventually worked all those out for myself, and now compile/run the program with full speed optimization, but that required much code revamping, that is clearly not done in TEHO, because again, the line numbers for errors that are output to the logs are identical to the original.

Support for this can be seen a comparison of system.log files for TEHO vs. COAS. Here is my latest TEHO log:
Code:
Scanning modules\
Loading modules...
Loaded 45
Reset...
Initializing CORE...
Creating atoms space: 128
 done
initializing complete
Initializing DirectX 8
ERROR: Techniques: Find duplicate technique name: rain
Techniques: 22 shaders compiled.
Techniques: 231 techniques compiled.
Techniques: compiled by 133029214 ticks.
Using FMOD 00040805
Sound inited ok !!!
FMOD: Speaker mode STEREO
isDLCActive 0
DLCcount 7
iDLC 0 app_id 240480 isAvailable 1  name Sea Dogs: To Each His Own - The Caleuche
isDLCActive 0
bDisableHyperThreading: 0
Total logical: 4, Total cores: 2, Total physical: 1
Intel CPU: Yes, SSE: On, HyperThreading: On
Can't load texture resource\textures\MAINMENU\RUSSIAN\GUADELOUPEMASK.TGA.tx
Can't load texture resource\textures\.tx
Can't load texture resource\textures\.tx
Can't load texture resource\textures\.tx
bDisableHyperThreading: 0
Total logical: 4, Total cores: 2, Total physical: 1
Intel CPU: Yes, SSE: On, HyperThreading: On
Incorrect data in action [idle_11] of animation file man_B.ani
User data repeated
Can't load texture resource\textures\AMMO\NOTEXTURE.TGA.tx
Can't load texture resource\textures\AMMO\NOTEXTURE.TGA.tx
Can't load texture resource\textures\AMMO\NOTEXTURE.TGA.tx
Warning: NPCharacter <Carrier_420>-> trace node not found
Warning: NPCharacter <Carrier_421>-> trace node not found
Warning: NPCharacter <Carrier_422>-> trace node not found
Warning: NPCharacter <Carrier_420>-> trace node not found
Warning: NPCharacter <Carrier_421>-> trace node not found
Warning: NPCharacter <Carrier_422>-> trace node not found
Can't sound resume -2 !!!! Sound is not playig !!!!
Warning: NPCharacter <Carrier_420>-> trace node not found
Warning: NPCharacter <Carrier_422>-> trace node not found
Warning: NPCharacter <Carrier_421>-> trace node not found
Warning: NPCharacter <Carrier_420>-> trace node not found
Warning: NPCharacter <Carrier_422>-> trace node not found
Warning: NPCharacter <Carrier_421>-> trace node not found
Warning: NPCharacter <Carrier_420>-> trace node not found
Warning: NPCharacter <Carrier_422>-> trace node not found
Warning: NPCharacter <Carrier_422>-> trace node not found
Warning: NPCharacter <Carrier_421>-> trace node not found
Warning: NPCharacter <Carrier_420>-> trace node not found
Warning: NPCharacter <Carrier_421>-> trace node not found
Can't load texture resource\textures\.tx
Can't sound resume -2 !!!! Sound is not playig !!!!
Can't load texture resource\textures\.tx
bDisableHyperThreading: 0
Total logical: 4, Total cores: 2, Total physical: 1
Intel CPU: Yes, SSE: On, HyperThreading: On
Incorrect data in action [idle_11] of animation file man_B.ani
User data repeated
Can't load texture resource\textures\AMMO\NOTEXTURE.TGA.tx
Can't load texture resource\textures\AMMO\NOTEXTURE.TGA.tx
Can't load texture resource\textures\AMMO\NOTEXTURE.TGA.tx
Can't sound resume -2 !!!! Sound is not playig !!!!
Can't load texture resource\textures\.tx
Can't sound resume -2 !!!! Sound is not playig !!!!
Can't load texture resource\textures\.tx
bDisableHyperThreading: 0
Total logical: 4, Total cores: 2, Total physical: 1
Intel CPU: Yes, SSE: On, HyperThreading: On
Can't load texture resource\textures\AMMO\NOTEXTURE.TGA.tx
Can't load texture resource\textures\AMMO\NOTEXTURE.TGA.tx
Can't load texture resource\textures\AMMO\NOTEXTURE.TGA.tx
Can't sound resume -2 !!!! Sound is not playig !!!!
DLCcount 7
iDLC 0 app_id 240480 isAvailable 1  name Sea Dogs: To Each His Own - The Caleuche
isDLCActive 0
iDLC 1 app_id 452520 isAvailable 1  name Sea Dogs: To Each His Own - The Final Lesson
isDLCActive 0
iDLC 2 app_id 452521 isAvailable 1  name Sea Dogs: To Each His Own - Flying the Jolly Roger
isDLCActive 0
iDLC 3 app_id 452522 isAvailable 1  name Sea Dogs: To Each His Own - Hero of the Nation
isDLCActive 0
iDLC 4 app_id 0 isAvailable 0  name
iDLC 5 app_id 0 isAvailable 0  name
iDLC 6 app_id 0 isAvailable 0  name
Release d3d8
Undefined error
Release d3d
Undefined error
Unloading
System exit and cleanup:
Mem state: User memory: 2231  MSSystem: 2032  Blocks: 127
Leak: '.\xiutil.cpp' line 77, size 11
Leak: '.\xiutil.cpp' line 77, size 11
Leak: '.\xiutil.cpp' line 77, size 11
Leak: '.\xiutil.cpp' line 77, size 11
Leak: '.\xiutil.cpp' line 77, size 11
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: '.\Sources\file_service.cpp' line 338, size 168
Leak: '.\Sources\file_service.cpp' line 338, size 88
A glance at a recent COAS log shows the same memory leaks, with the EXACT same source files, with the EXACT same line numbers, for xiutil.cpp, string.h, file_service.cpp; the TEHO developers have changed nothing.

Play long enough, with rain in the picture, and that other old error will surface and crash the game:

Undefined error
Assert failed in .\WaterRings.cpp line 144, expression string _iPointer

A review of the TEHO Steam forum confirms this is a known, long-standing problem among TEHO users...well, it's been around since COAS too, and since the source appears to be 99.9% identical and unchanged, would be expected.

Upon further review of the TEHO Steam forum and other, various crashes of unkown origin, are met with suggestion to perhaps try removing the options file, to allow recreation. I know why this sometimes "resolves"...it can sometimes temporarily relieve a situation where the option file read methods that contain a memory heap corruption error; heap corruption is insidious, and often does not result in immediate failure/bugs, but much further down the process, when a memory block that got inadvertently stomped, is needed for something else, and boom! Crash.

So, it's built with an outdated VS/compiler version, the source is unchanged and still contains all the old bugs, heap corruptions, index out-of-bounds problems, leaks, null/bad pointer dereferencing and a host of other issues that have always existed -- no improvement.

A curious thing noted in the system log pertaining to FMOD. The log displays FMOD 00040805. That is the version that the source code header files for the fmodex API; this matches original fmodex.dll, shipped with COAS, version 4.8.5 (circa 2006, 12 years ago). Curiously, TEHO ships with fmodex.dll, version 4.20.6. Again, the TEHO log output indicating 4.8.5, is from the source FMOD header file version, not a detection of the actual .dll version, resident in the app directory. Since the major version number is identical, FMOD has a tendencey to be binary compatible among major version numbers for even a slightly older set of header/api source files than the actual .dll used. This often allows a program to be compiled with 4.8.5, but simply dropping in 4.20.6 binary .dll into use, still works. The "curious" part is why that one? Apparently, version 4.20.6 introduced a bunch of crashes for other games, when it came out. See here: fmodex.dll error

One game in particular had frequent crashing with 4.20.6 -- Half Life:

faulting module fmodex.dll, version 0.4.20.6, fault address 0x000346a1.

Fault Module Name: fmodex.dll
Fault Module Version: 0.4.20.6

Faulting application hl.exe,
version 1.1.1.1,
time stamp 0x48feaf5a,
faulting module fmodex.dll,
version 0.4.20.6,
time stamp 0x4949daf9

Problem Event Name: APPCRASH
Application Name: hl.exe
Application Version: 1.1.1.1
Application Timestamp: 48feaf5a
Fault Module Name: fmodex.dll
Fault Module Version: 0.4.20.6
Fault Module Timestamp: 4949daf9

This happens way too frequently (50+ times).

Why not simply update both the FMOD binary and source files to a newer version? Because FMOD has changed their APIs and one has to do some rework to the source? Isn't that what you are charging users money for?

There are of course the "solutions" given to the users: "don't quick-save, it's evil," "don't enable rain, we have an option to disable because crashes," and, " DX9 implementation was botched, there will be a rollback to DX8," from the developers in their forum, but one would presume a "developer" would hunt down the culprits in the code and just fix them...but maybe that's just me thinking too much.
 
Big thanks for putting all cards on the table for us and let me tell you that you definitely don´t think too much! I played all previous pirate games from Akella and Seaward.ru and know exactly what you are talking about. Let´s all hope that they will allow modding soon so that people like you can help to create a better performing game. But i´m afraid they won´t because i think that they were only asking the community about what they want, to win time and money and have their freedom.
 
Thank you for the comprehensive technical report on our game! I have an experimental version of the engine compiled for MSVS 2012 with one of the latest versions of fmod api.
Some of the problems indicated by you are solved at the moment, most are not.
If you want evidence, then I am ready to provide it.
If I ask you for help, will you agree? I very much doubt it - nobody wants to share the source code.
We have normal support for Steam and widescreen monitors - something that is not in your game, and you have a solution to problems with memory leaks and interesting solutions.
for sea AI
But everyone will sit in his sandbox .... Sad,but true... :(
 
comparison - that's how it looks - The game is stable under Windows 10
Game based on CoAS

Code:
Scanning MODULES\\
Loading modules...
Loaded 44
Reset...
Initializing CORE...
Creating atoms space: 128
 done
initializing complete
Initializing DirectX 9
Techniques: 22 shaders compiled.
Techniques: 230 techniques compiled.
Techniques: compiled by 160432792 ticks.
Using FMOD 00040805
Sound inited ok !!!
FMOD: Speaker mode STEREO
Total logical: 8, Total cores: 4, Total physical: 1
Intel CPU: Yes, SSE: On, HyperThreading: On
System exit and cleanup:
Mem state: User memory: 0  MSSystem: 0  Blocks: 0
 
so, my latest system.log
Code:
Scanning modules\
Loading modules...
Loaded 44
Reset...
Initializing CORE...
Creating atoms space: 128
 done
initializing complete
Initializing DirectX 9
Techniques: 22 shaders compiled.
Techniques: 230 techniques compiled.
Techniques: compiled by 101947523 ticks.
Using FMOD 00011009
Sound inited ok !!!
FMOD: Speaker mode STEREO
Total logical: 4, Total cores: 2, Total physical: 1
SEA Init : Intel CPU: Yes, SSE: On, HyperThreading: On
Can't load texture resource\textures\.tx   ------>> // WTF with textures ? how to solve this problem ???
Can't load texture resource\textures\.tx
Release d3d9
Undefined error   ----> // who can help me with this ????
Release d3d
Undefined error
Unloading
System exit and cleanup:
Mem state: User memory: 3100  MSSystem: 2048  Blocks: 128
Leak: 'Technique.cpp' line 1048, size 72
 
The following contains no subjective commentary, and is an objective review of technical facts.

Sea Dogs: To Each His Own offers absolutely no improvements/fixes to the original COAS 2.8 Storm engine, despite any contrary claims.

File listing of TEHO:
Code:
 Directory of E:\SteamLibrary\steamapps\common\Sea Dogs To Each His Own\modules

07/01/2018  10:09 AM    <DIR>          .
07/01/2018  10:09 AM    <DIR>          ..
01/18/2018  12:06 PM            90,112 animals.dll
01/18/2018  12:06 PM           167,936 Animation.dll
01/18/2018  12:06 PM            69,632 artifact.dll
01/18/2018  12:06 PM            49,152 BackgroundShipTask.dll
01/18/2018  12:06 PM            61,440 BallSplash.dll
01/18/2018  12:06 PM           217,088 battle_interface.dll
01/18/2018  12:06 PM            77,824 blade.dll
01/18/2018  12:06 PM            77,824 Blot.dll
01/18/2018  12:06 PM            61,440 CameraDialog.dll
01/18/2018  12:06 PM            53,248 COLLIDE.dll
01/18/2018  12:06 PM            86,016 DIALOG.dll
07/01/2018  10:09 AM                 0 dir.txt
01/18/2018  12:05 PM           454,656 DX8RENDER.dll
01/18/2018  12:06 PM            86,016 GAMEUTILS.dll
01/18/2018  12:06 PM            77,824 GEOMETRY.dll
01/18/2018  12:06 PM           126,976 ISLAND.dll
01/18/2018  12:06 PM           151,552 Lighter.dll
01/18/2018  12:05 PM           413,696 Location.dll
01/18/2018  12:06 PM            73,728 locator.dll
01/18/2018  12:06 PM            81,920 MAST.dll
01/18/2018  12:06 PM            73,728 MODEL.dll
01/18/2018  12:05 PM           675,840 net.dll
01/18/2018  12:06 PM           151,552 PARTICLES.dll
01/18/2018  12:06 PM            65,536 PCS_CONTROLS.dll
01/18/2018  12:06 PM            94,208 PEOPLES_ON_SHIP.dll
01/18/2018  12:06 PM           229,376 rigging.dll
01/18/2018  12:06 PM           118,784 Sailors.dll
01/18/2018  12:06 PM            49,152 SCRIPT_LIBRIARY.dll
01/18/2018  12:06 PM           204,800 sea.dll
01/18/2018  12:06 PM            69,632 SeaCreatures.dll
01/18/2018  12:06 PM            90,112 seafoam.dll
01/18/2018  12:06 PM           192,512 sea_ai.dll
01/18/2018  12:06 PM            90,112 SEA_CAMERAS.dll
01/18/2018  12:06 PM           212,992 SEA_OPERATOR.dll
01/18/2018  12:06 PM            90,112 shadow.dll
01/18/2018  12:06 PM           139,264 ship.dll
01/18/2018  12:06 PM            73,728 sink_effect.dll
01/18/2018  12:06 PM            57,344 SOUND.dll
01/18/2018  12:06 PM           102,400 SoundService.dll
01/19/2018  11:31 AM    <DIR>          techniques
01/18/2018  12:06 PM            61,440 Teleport.dll
01/18/2018  12:06 PM            98,304 Tornado.dll
01/18/2018  12:06 PM            65,536 touch.dll
01/18/2018  12:06 PM            57,344 WaterRings.dll
01/18/2018  12:06 PM           208,896 WEATHER.dll
01/18/2018  12:05 PM           278,528 WorldMap.dll
01/18/2018  12:05 PM           544,768 XINTERFACE.dll
              46 File(s)      6,574,080 bytes
File listing of AoP2 City of Abandoned Ships:
Code:
 Directory of E:\Playlogic\Age of Pirates 2\modules

07/01/2018  10:10 AM    <DIR>          .
07/01/2018  10:10 AM    <DIR>          ..
10/25/2008  01:50 PM            90,112 animals.dll
10/25/2008  01:50 PM           167,936 Animation.dll
10/25/2008  01:50 PM            69,632 artifact.dll
10/25/2008  01:41 PM            49,152 BackgroundShipTask.dll
10/25/2008  11:33 AM            61,440 BallSplash.dll
10/25/2008  01:50 PM           212,992 battle_interface.dll
10/25/2008  01:43 PM            77,824 blade.dll
10/25/2008  01:49 PM            77,824 Blot.dll
10/25/2008  01:49 PM            61,440 CameraDialog.dll
10/25/2008  01:49 PM            53,248 COLLIDE.dll
10/25/2008  01:49 PM            86,016 DIALOG.dll
07/01/2018  10:10 AM                 0 dir.txt
10/25/2008  01:49 PM           450,560 DX8RENDER.dll
10/25/2008  01:41 PM            86,016 GAMEUTILS.dll
10/25/2008  01:48 PM            77,824 GEOMETRY.dll
10/25/2008  01:48 PM           126,976 ISLAND.dll
10/25/2008  01:48 PM           151,552 Lighter.dll
10/25/2008  01:47 PM           413,696 Location.dll
10/25/2008  01:48 PM            73,728 locator.dll
10/25/2008  01:47 PM            81,920 MAST.dll
10/25/2008  01:47 PM            73,728 MODEL.dll
10/25/2008  01:43 PM           671,744 net.dll
10/25/2008  01:47 PM           151,552 PARTICLES.dll
10/25/2008  01:46 PM            65,536 PCS_CONTROLS.dll
10/25/2008  01:46 PM            94,208 PEOPLES_ON_SHIP.dll
10/25/2008  01:46 PM           217,088 rigging.dll
10/25/2008  01:41 PM           118,784 Sailors.dll
10/25/2008  01:46 PM            49,152 SCRIPT_LIBRIARY.dll
10/25/2008  01:46 PM           204,800 sea.dll
10/25/2008  01:45 PM            69,632 SeaCreatures.dll
10/25/2008  01:41 PM            90,112 seafoam.dll
07/09/2008  11:10 PM           188,416 sea_ai.dll
10/25/2008  01:45 PM            90,112 SEA_CAMERAS.dll
10/10/2008  03:56 PM           212,992 SEA_OPERATOR.dll
10/25/2008  01:43 PM            90,112 shadow.dll
10/25/2008  01:45 PM           131,072 ship.dll
10/25/2008  01:45 PM            73,728 sink_effect.dll
10/25/2008  01:45 PM            57,344 SOUND.dll
10/25/2008  01:43 PM           102,400 SoundService.dll
03/13/2017  11:25 PM    <DIR>          techniques
10/25/2008  01:45 PM            61,440 Teleport.dll
10/25/2008  01:45 PM            98,304 Tornado.dll
10/25/2008  01:45 PM            65,536 touch.dll
10/25/2008  01:45 PM            57,344 WaterRings.dll
10/25/2008  01:43 PM           208,896 WEATHER.dll
10/25/2008  01:42 PM           278,528 WorldMap.dll
10/25/2008  01:45 PM           544,768 XINTERFACE.dll
              46 File(s)      6,537,216 bytes
They are virtually the same, with every module the exact same number of bytes, except battle_interface.dll, DX8RENDER.dll and sea_ai.dll (excluding net.dll since it pertains only to the non-existent online mode).

I can only surmise to achieve this, the same source code, with virtually no changes, except for those few modules, was compiled under the same, old Visual Studio version (circa 2005-2008?), with default compiler options. Else, a newer VS version, with a newer compiler would undoubtedly result in different binary sizes. I also suspect, but can't confirm or deny, that program optimizations for the release build were actually disabled for TEHO, because my own experience in first attempting optimization for faster processing, resulted in immediate and numerous crashes, whereas disabling them allowed the program to run. This is because unoptimized builds often create some variable/array allocations to contain extra stack/buffer space and "temporaries" to remain in scope, that sometimes allows poor programming practices to "get away" with those types of bugs. See here for a brief explanation: Compiler optimization makes program crash

I eventually worked all those out for myself, and now compile/run the program with full speed optimization, but that required much code revamping, that is clearly not done in TEHO, because again, the line numbers for errors that are output to the logs are identical to the original.

Support for this can be seen a comparison of system.log files for TEHO vs. COAS. Here is my latest TEHO log:
Code:
Scanning modules\
Loading modules...
Loaded 45
Reset...
Initializing CORE...
Creating atoms space: 128
 done
initializing complete
Initializing DirectX 8
ERROR: Techniques: Find duplicate technique name: rain
Techniques: 22 shaders compiled.
Techniques: 231 techniques compiled.
Techniques: compiled by 133029214 ticks.
Using FMOD 00040805
Sound inited ok !!!
FMOD: Speaker mode STEREO
isDLCActive 0
DLCcount 7
iDLC 0 app_id 240480 isAvailable 1  name Sea Dogs: To Each His Own - The Caleuche
isDLCActive 0
bDisableHyperThreading: 0
Total logical: 4, Total cores: 2, Total physical: 1
Intel CPU: Yes, SSE: On, HyperThreading: On
Can't load texture resource\textures\MAINMENU\RUSSIAN\GUADELOUPEMASK.TGA.tx
Can't load texture resource\textures\.tx
Can't load texture resource\textures\.tx
Can't load texture resource\textures\.tx
bDisableHyperThreading: 0
Total logical: 4, Total cores: 2, Total physical: 1
Intel CPU: Yes, SSE: On, HyperThreading: On
Incorrect data in action [idle_11] of animation file man_B.ani
User data repeated
Can't load texture resource\textures\AMMO\NOTEXTURE.TGA.tx
Can't load texture resource\textures\AMMO\NOTEXTURE.TGA.tx
Can't load texture resource\textures\AMMO\NOTEXTURE.TGA.tx
Warning: NPCharacter <Carrier_420>-> trace node not found
Warning: NPCharacter <Carrier_421>-> trace node not found
Warning: NPCharacter <Carrier_422>-> trace node not found
Warning: NPCharacter <Carrier_420>-> trace node not found
Warning: NPCharacter <Carrier_421>-> trace node not found
Warning: NPCharacter <Carrier_422>-> trace node not found
Can't sound resume -2 !!!! Sound is not playig !!!!
Warning: NPCharacter <Carrier_420>-> trace node not found
Warning: NPCharacter <Carrier_422>-> trace node not found
Warning: NPCharacter <Carrier_421>-> trace node not found
Warning: NPCharacter <Carrier_420>-> trace node not found
Warning: NPCharacter <Carrier_422>-> trace node not found
Warning: NPCharacter <Carrier_421>-> trace node not found
Warning: NPCharacter <Carrier_420>-> trace node not found
Warning: NPCharacter <Carrier_422>-> trace node not found
Warning: NPCharacter <Carrier_422>-> trace node not found
Warning: NPCharacter <Carrier_421>-> trace node not found
Warning: NPCharacter <Carrier_420>-> trace node not found
Warning: NPCharacter <Carrier_421>-> trace node not found
Can't load texture resource\textures\.tx
Can't sound resume -2 !!!! Sound is not playig !!!!
Can't load texture resource\textures\.tx
bDisableHyperThreading: 0
Total logical: 4, Total cores: 2, Total physical: 1
Intel CPU: Yes, SSE: On, HyperThreading: On
Incorrect data in action [idle_11] of animation file man_B.ani
User data repeated
Can't load texture resource\textures\AMMO\NOTEXTURE.TGA.tx
Can't load texture resource\textures\AMMO\NOTEXTURE.TGA.tx
Can't load texture resource\textures\AMMO\NOTEXTURE.TGA.tx
Can't sound resume -2 !!!! Sound is not playig !!!!
Can't load texture resource\textures\.tx
Can't sound resume -2 !!!! Sound is not playig !!!!
Can't load texture resource\textures\.tx
bDisableHyperThreading: 0
Total logical: 4, Total cores: 2, Total physical: 1
Intel CPU: Yes, SSE: On, HyperThreading: On
Can't load texture resource\textures\AMMO\NOTEXTURE.TGA.tx
Can't load texture resource\textures\AMMO\NOTEXTURE.TGA.tx
Can't load texture resource\textures\AMMO\NOTEXTURE.TGA.tx
Can't sound resume -2 !!!! Sound is not playig !!!!
DLCcount 7
iDLC 0 app_id 240480 isAvailable 1  name Sea Dogs: To Each His Own - The Caleuche
isDLCActive 0
iDLC 1 app_id 452520 isAvailable 1  name Sea Dogs: To Each His Own - The Final Lesson
isDLCActive 0
iDLC 2 app_id 452521 isAvailable 1  name Sea Dogs: To Each His Own - Flying the Jolly Roger
isDLCActive 0
iDLC 3 app_id 452522 isAvailable 1  name Sea Dogs: To Each His Own - Hero of the Nation
isDLCActive 0
iDLC 4 app_id 0 isAvailable 0  name
iDLC 5 app_id 0 isAvailable 0  name
iDLC 6 app_id 0 isAvailable 0  name
Release d3d8
Undefined error
Release d3d
Undefined error
Unloading
System exit and cleanup:
Mem state: User memory: 2231  MSSystem: 2032  Blocks: 127
Leak: '.\xiutil.cpp' line 77, size 11
Leak: '.\xiutil.cpp' line 77, size 11
Leak: '.\xiutil.cpp' line 77, size 11
Leak: '.\xiutil.cpp' line 77, size 11
Leak: '.\xiutil.cpp' line 77, size 11
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: 'd:\data\work\storm 2.8 vs 7.1\xinterface\questfilereader\..\..\common_h\templates\string.h' line 38, size 16
Leak: '.\Sources\file_service.cpp' line 338, size 168
Leak: '.\Sources\file_service.cpp' line 338, size 88
A glance at a recent COAS log shows the same memory leaks, with the EXACT same source files, with the EXACT same line numbers, for xiutil.cpp, string.h, file_service.cpp; the TEHO developers have changed nothing.

Play long enough, with rain in the picture, and that other old error will surface and crash the game:

Undefined error
Assert failed in .\WaterRings.cpp line 144, expression string _iPointer

A review of the TEHO Steam forum confirms this is a known, long-standing problem among TEHO users...well, it's been around since COAS too, and since the source appears to be 99.9% identical and unchanged, would be expected.

Upon further review of the TEHO Steam forum and other, various crashes of unkown origin, are met with suggestion to perhaps try removing the options file, to allow recreation. I know why this sometimes "resolves"...it can sometimes temporarily relieve a situation where the option file read methods that contain a memory heap corruption error; heap corruption is insidious, and often does not result in immediate failure/bugs, but much further down the process, when a memory block that got inadvertently stomped, is needed for something else, and boom! Crash.

So, it's built with an outdated VS/compiler version, the source is unchanged and still contains all the old bugs, heap corruptions, index out-of-bounds problems, leaks, null/bad pointer dereferencing and a host of other issues that have always existed -- no improvement.

A curious thing noted in the system log pertaining to FMOD. The log displays FMOD 00040805. That is the version that the source code header files for the fmodex API; this matches original fmodex.dll, shipped with COAS, version 4.8.5 (circa 2006, 12 years ago). Curiously, TEHO ships with fmodex.dll, version 4.20.6. Again, the TEHO log output indicating 4.8.5, is from the source FMOD header file version, not a detection of the actual .dll version, resident in the app directory. Since the major version number is identical, FMOD has a tendencey to be binary compatible among major version numbers for even a slightly older set of header/api source files than the actual .dll used. This often allows a program to be compiled with 4.8.5, but simply dropping in 4.20.6 binary .dll into use, still works. The "curious" part is why that one? Apparently, version 4.20.6 introduced a bunch of crashes for other games, when it came out. See here: fmodex.dll error

One game in particular had frequent crashing with 4.20.6 -- Half Life:



Why not simply update both the FMOD binary and source files to a newer version? Because FMOD has changed their APIs and one has to do some rework to the source? Isn't that what you are charging users money for?

There are of course the "solutions" given to the users: "don't quick-save, it's evil," "don't enable rain, we have an option to disable because crashes," and, " DX9 implementation was botched, there will be a rollback to DX8," from the developers in their forum, but one would presume a "developer" would hunt down the culprits in the code and just fix them...but maybe that's just me thinking too much.
How can that be? If I do a right click on "Properties" on the games icon it shows "Storm Engine ver. 2.9". So it has to be imo a FULLY UPDATED version from 2.8 before!! No offense against the developers from Black Mark studios. But did they an uncomplete / bad job in your opinion? Or do I miss something? :shrug
 
How can that be? If I do a right click on "Properties" on the games icon it shows "Storm Engine ver. 2.9". So it has to be imo a FULLY UPDATED version from 2.8 before!! No offense against the developers from Black Mark studios. But did they an uncomplete / bad job in your opinion? Or do I miss something? :shrug
This thread is already a few years old, and engine has been updated in that time.

It now does run on DX9, has quite a few bugs fixed and you will also notice it no longer has any "modules" folders.
 
Back
Top