Files posted by UCyborg
This is All-in-One unofficial patch for Interstate '76 and its standalone expansion pack Interstate '76 Nitro Pack, which addresses most of the
critical issues with these games. It also includes Shane's netcode patches to be able to play normally over the internet when behind NAT.
Fixed some, worked-around other memory management bugs, which improves stability; mission 12 -> 13 transition works in I76, also no more need for EmulateHeap shim (the only semi-useful thing from Windows 95 compatibility mode), which doesn't actually fix anything. Fixed game freezing when clicking menu option if hardware sound acceleration is available. Fixed certain startup crashes/errors when initing graphics with 3D accelerated renderers enabled (Glide/D3D). Skipped some unnecessary CPU checking code containing privileged instructions (crashes at startup if privileged instruction exceptions aren't ignored by the OS). Corrected memory checking code to avoid error about insufficient memory when system has more than 2 GB of RAM. Fixed an issue with laggy physics simulation that occurs when the system has been running for several days. Fixed an issue with music playback not restarting during gameplay after the track has finished playing (another issue that occurs when the system has been running for extended periods of time). After the music track has finished playing during gameplay, the mission specific track will play again now instead of always the 1st music track. Rearview mirror refreshes every frame now. Includes Shane's netcode patch for compatibility with NAT, Nitro Pack version also forwards port on router when hosting the game (if UPnP is supported). Fixed registry handle leaks. Added frame rate limiter which defaults to limiting the game to run at 20 FPS to workaround bugs that occur at higher frame-rates, also lowers CPU usage in menus and during cutscenes. GDI windowed mode now works on Windows NT systems. Embedded manifest in executables: Marked as high-DPI aware. Requests version 6.00 of Common Controls Library to enable visual styles in those occassional message boxes. Executables have been flagged as compatible with DEP (Data Execution Prevention).
Nitro Pack specific:
Clicking Scenarios in main menu will no longer stop music playback.
DxWnd's virtual CD audio feature now works when the computer doesn't have any optical drives. Removed OS check from Nitro Pack's SPLASH.EXE (3D options are now always available). UPDATE 08/12/2019:
Fixed inconsistent handling of playing CD music between Interstate '76 and Nitro Pack (took care of regression from the first patch release plus I76 specific bug - same track is not supposed to loop). Fixed music volume controls so setting max volume in menus doesn't set it only to half. Game can now select the correct CD drive for music playback when computer has more than one. UPDATE 08/20/2019:
Fixed some oddities in Nitro Pack's NET DLLs. UPDATE 09/01/2019:
Fixed certain GDI object leaks. Call DestroyWindow on exit (no more game window on the screen if the process is still held by the debugger). Added frame limiter to the mission failed screen.
If you're patching Interstate '76, you must install Gold Patch first. Afterwards, simply extract contents of each game's folder into your own, overwriting original files. Then double-click on Disable_Interstate76_Compat_Shims.reg to disable redundant compatibility fixes that Windows applies. Depending on system configuration, install location etc., you may have to explicitly grant Modify permissions to Users group on installation folder (assuming we're running as user with limited rights).
Interstate '76 still manages to corrupt its state if you play the TRIP straight from start to finish. It's recommended to restart the game after mission 14 or 15, otherwise, it may eventually crash. Corrupted state can also observed at the mission start if the camera doesn't show player's car at the time the control is gained. Weapon sounds cutting off (regression from latest official patch). Some sounds don't play under certain circumstances, likely due to very low max sound limit (8). A3D wrapper is needed for Nitro Pack, otherwise all sounds play at 100% volume at player's position. On newer Windows versions, you may need to run the game with some kind of DDraw wrapper such as dgVoodoo or DxWnd with primary buffer selected as the renderer on DirectX tab in the game profile settings to avoid screen turning black while in menu/cutscenes.
This is All-in-One unofficial patch for The Suffering: Prison Is Hell and The Suffering: Ties That Bind, which provides all improvements and bugfixes
for the games in one convenient package.
Fixed the bug with game interpreting available hard disk space value incorrectly, preventing users from saving the game and the config file from being updated if they have more than 2 TB of free space on their hard drive. Widescreen support; all supported resolutions are selectable, FOV is adjusted according to the screen's aspect ratio, HUD and in-game FMVs are adjusted as well so they don't stretch with wide aspect ratios. Resolutions available in fullscreen mode are also available in windowed mode. Game's own threads are bound to run on the CPU's first core, this reduces the probability of 'black texture bug' occurrence. Game will now use the audio device selected in Riot Engine Configuration dialog instead of always using default device. Hardware accelerated DirectSound buffers are no longer explicitly requested and the default limit of sound buffers has been increased to prevent sound dropouts on typical modern PC. EAX option has been disabled in Riot Engine Configuration in Sound tab (EAX effects are not implemented). Added frame rate limiter which defaults to limiting the game to run at 59 FPS to workaround bugs that occur at higher frame-rates and provides better mouse response when monitor runs at 60 Hz and VSync is enabled. Game will set monitor's refresh rate to 60 Hz when in fullscreen mode. Ability to tweak mouse sensitivity value if using in-game sensitivity slider doesn't achieve desired effect. Removed bad DirectX check, game will launch without error or DirectPlay pop-up dialog on Windows 8+ if DirectPlay isn't present (which is the default). Made game's message loop more conventional (PeekMessage called without message filtering) to workaround the bug in Windows' Desktop Window Manager, which causes oddities in windowed mode; window being declared unresponsive and replaced with a ghost window after 5 seconds when it loses focus. It even happens that the DWM tries to replace the game window with a ghost window during normal gameplay. Use GetMessage in the message loop for the Riot Engine Configuration dialog rather than PeekMessage, this normalizes CPU usage of said dialog. Embedded manifest in executables:
-Marked as compatible with all existing Windows versions.
-Marked as high-DPI aware.
-Marked as UAC (User Account Control) aware.
-Requests version 6.00 of Common Controls Library to enable visual styles in Riot Engine Configuration dialog. Registry settings are written to HKEY_CURRENT_USER instead of HKEY_LOCAL_MACHINE. User files are redirected to Documents folder, in "My Games\The Suffering [TTB]". Removed all calls to RegFlushKey (not needed). Removed the call to OutputDebugString that was needlessly made every frame. Reordered icons in the .exe's resource so the Torque icon is the main one instead of the Riot Engine logo. Prison Is Hell specific:
Selecting anything but the first entry in the Display Driver drop-down list in Riot Engine Configuration dialog will no longer result in the empty Display Mode list, so the game can now be made to run on any monitor, not just the primary one. Fixed the bug with gamma setting not being applied at game startup. Textures now appear clearer when looked at from the distance. Don't grab keyboard exclusively when in fullscreen; Win key works and Alt-Tab behaves normally on modern Windows versions. Added window caption. Disabled screenshot feature (F10 key) since it crashes. Ties That Bind specific:
Registry settings are stored in a separate value called SettingsDX106 rather than SettingsDX105, which is used by the first game since the binary structures between the games aren't 100% compatible between each other. Fixed the bug with some sounds being delayed when 3D sound buffers are enabled. Added file (Common\System\System.odu) that turns off censorship of Creeper's famous part of dialog (for English version only). Installation
To install, simply extract contents of each game's folder into your own, overwriting original files.
Important: When applying the patch to The Suffering: Ties That Bind, copy the Common folder only if you have the English version of the game.
On wide resolutions, aspect ratio correction causes right side of the screen that should be blank to appear garbled when viewing Archives pages. Prison Is Hell specific:
Field of view calculation causes inventory icons to be rendered at wrong place and often appears invisible.
This is unofficial patch for retail, pre-Steam, aka. WON version of Half-Life, which main feature is allowing user to set any resolution supported by the system when running in OpenGL or Direct3D mode. Field of view is also adjusted correctly for wide displays. The patch also fixes the error about the game requiring at least 16 MB of physical memory that occurs on some systems. As a bonus, the fix for incorrect MP3 files being played in expansion packs is included when using the undocumented MP3 playback feature in Half-Life v22.214.171.124.
UPDATE 11/9/2018 (v1.1):
Fixed an issue with MP3 support being disabled and .asi plugins not being loaded if computer doesn't have an optical drive. Don't ignore request for start of MP3 playback if the last track number that is/was playing is the same. The patch includes patched files for the following games/patch versions:
Half-Life v126.96.36.199 Half-Life v188.8.131.52 Blue-Shift v184.108.40.206 Installation
Select the game/patch version that you have currently installed by navigating to the appropriate folder in this archive, then extract the contents of the folder to your game's installation directory.
You may have to disable DPI scaling in Half-Life shortcut's properties in the Compatibility tab to prevent issues like game window going outside of the monitor if your display scaling is set above 100%.
Useful command line arguments
Here are some interesting command line arguments that I found while digging through Half-Life's executable. These can be added to Half-Life shortcut's properties in the Target field after hl.exe, see https://pcgamingwiki.com/wiki/Glossary:Command_line_arguments
-noextracds - Prevent redundant switches to resolution 800x600 under certain circumstances before finally setting user selected resolution (highly recommended).
-lw - Forces the engine to start with horizontal menu resolution set to . Example: -lw 1920
-lh - Forces the engine to start with vertical menu resolution set to . Example: -lh 1080
-notopmost - Doesn't mark the game's windows as topmost in fullscreen mode.
The game defaults to running in 16-bit color mode. One of these can be passed to improve picture quality:
-32bpp - instructs the game to run in 32-bit color mode (highly recommended unless your PC is ancient).
-24bpp - instructs the game to run in 24-bit color mode.
MP3 playback feature
Ability to play MP3 files as a substitute for playing soundtrack from CD first appeared with patch 220.127.116.11. It's an undocumented feature that only became official with Steam version of Half-Life. Refer to the following list to see how to name MP3 files after ripping them from Half-Life CD:
Half-Life01.mp3 Prospero01.mp3 Half-Life12.mp3 Half-Life07.mp3 Half-Life10.mp3 Suspense01.mp3 Suspense03.mp3 Half-Life09.mp3 Half-Life02.mp3 Half-Life13.mp3 Half-Life04.mp3 Half-Life15.mp3 Half-Life14.mp3 Half-Life16.mp3 Suspense02.mp3 Half-Life03.mp3 Half-Life08.mp3 Prospero02.mp3 Half-Life05.mp3 Prospero04.mp3 Half-Life11.mp3 Half-Life06.mp3 Prospero03.mp3 Half-Life17.mp3 Prospero05.mp3 Suspense05.mp3 Suspense07.mp3 Important: The MP3 decoder used in the old version of Half-Life doesn't understand ID3v2 tags commonly added by CD ripping software and such MP3s won't be played. Make sure your ripping software offers ability to use ID3v1 tags instead. They may also be omitted entirely.
Half-Life: Opposing Force
Half-Life: Blue Shift
\Half-Life\bshift_unlocked\media (use Blue Shift: Unlocked v1.1 to convert your BS installation to HL mod)
FOV patch for Half-Life v18.104.22.168 and Blue-Shift causes the left and right sides of the screen to not black out when the game triggers that effect.
This is All in One unofficial patch for Drakan: Order of the Flame and the editing tools, combining fixes from all previously developed unofficial patches and adding a lot of my own improvements, including better widescreen support, making the multiplayer component fully functional on modern operating systems and over modern internet and generally making the game more stable. Official 445 Patch must be installed before applying this patch.
Changes compared to vanilla Drakan:
Fixed black menu background bug. Prevented crash after selecting difficulty or pressing ESC while on the difficulty selection screen. Fixed crash after exiting Alwarren. Removed special camera rotation mode from 'left' special combo (left-forward-attack). Removed special camera rotation mode from 'back' special combo (forward-backward-attack). Added 2 active 'hitting intervals' for 'left' special attack. Removed 'stuck in block' bug. Increased amount of allocated memory for one of rendering routines (increases FPS a bit in more complex levels). Removed part of problematic code that has to do with lens flare effects that causes crash during gameplay when there are lots of lightning effects, but you should still disable Lens Flare Effects under Graphics options, they cause quite significant lag spikes. Level of detail (LOD) value is set to zero -> fully detailed in-game objects regardless of camera distance, small performance decrease, original LOD feature wasn't exactly doing miracles neither when it comes to excessive polygon counts in certain player-created levels. This is also an easy fix for a crash which occurs when 'fov' command is used to set higher FOV than 93 due to original LOD calculation being tied to FOV. Added code that adjusts FOV based on your selected resolution's aspect ratio, so you see more things at once and actually utilize extra horizontal space if you have a wide monitor. Session creation failed error will no longer occur if running server on anything newer than Windows XP or under WINE (Linux) or when setting up listen server AFTER playing a multiplayer game on someone else's server (assuming ports server intends to use aren't in use by some other program). Fixed crash that occurs if Giant grabs you just after your death. Note that I only added an extra safeguard that prevents the crash, but doesn't fix the actual bug. Should the situation occur, the screen won't start fading to black like it normally would and the game won't end, but you can reload the last save and move on like nothing happened. Fixed ice effect not showing up on Arokh after being frozen by an enemy and game crashing the moment he is supposed to blow into pieces. This bug only occurred when bump mapping was enabled. Increased Max Fog Distance that can be set under Graphics options up to 200% (same as 'foghack' cheat), also overriding Max Fog Depth setting defined by level designer. Dedicated server stores graphics settings (the ones in Windows registry) separately. Useful because dedicated server window size is defined by game resolution setting and can't be resized. Minimizing the game when in fullscreen mode and connected to online game will no longer cause disconnect after 30 seconds. Same applies to minimized non-dedicated server, clients will no longer drop. NAT fix - server has been patched so that it no longer responds back to the client using the UDP port that was used on the client side to establish connection, but rather the port visible on the server side as the originating source of the first packet sent by client. This eliminates the most notorious 30s disconnect bug. Fixed crash that occurs when game contacts running machine that has no server running (no more crashing in multiplayer menu or while running server if contacting master server fails). Added some common resolutions for use in windowed mode. Fixed crash due to stack buffer overrun that occurs when entering Graphics menu on machines whose graphics hardware exposes a large number of resolutions. Default value of MasterServerList variable in Drakan.cfg has been changed to "master.qtracker.com:27900,gsm.qtracker.com:27900" since GameSpy is gone. Improvements in Second Edition of the AiO Patch:
Fixed game server crashing under certain circumstances (Windows version, installed updates, ...) when player connected to the server due to small assembly level detail I have overlooked when implementing NAT fix. Game settings that get stored in registry are now stored under local user's registry key instead of system-wide key (HKEY_CURRENT_USER instead of HKEY_LOCAL_MACHINE). Removed all calls to RegFlushKey API. Fixed some codepaths not closing registry key handle after use. Fixed Texture Filtering drop-down list in Riot Engine Options not indicating Trilinear Filter was selected. UPDATE 12/1/2015: Added proxy DLL with following features:
Automatically applies compatibility fixes required for the game to work properly on Windows 8+. Fixes game not remembering windowed/fullscreen setting if changed in-game. Populates windowed mode resolution list with the ones detected in the system. Adds borderless windowed mode, when window is in that mode, it will also minimize when it looses focus. Enables resizing of dedicated server window. Makes the game able to get the server list from Qtracker. UPDATE 6/15/2016:
Ported relevant engine fixes over to Level Editor's Engine.exe. Changed borderless window settings to off by default, they're kinda hacky. Borderless windowed mode code now places the window on correct monitor if you move it from the primary monitor and afterward set the correct resolution. Added option to set whether borderless window minimizes when it loses focus. Added option to make borderless window topmost. Added Direct3D resolution limit remover, the game can now run through the old Direct3D API at resolutions above 2048 pixels, if the hardware supports it. Added mini AiO Patch for the demo version. UPDATE 6/20/2016:
Fixed Direct3D resolution limit remover so it doesn't crash the game anymore on some Windows versions. Fixed the bug with quick-save not saving the correct music track ID to the save file under certain circumstance. Restored engine's original LOD feature, crash-free, with LOD factor configurable by the user. Skip FOV calculations unless the aspect ratio is actually greater than 4:3. Added compatibility database with some additional fixes for the game and the Level Editor. UPDATE 7/1/2016:
2 forgotten fixes for the Level Editor 3D Viewer. UPDATE 7/2/2016:
Respect Max Fog Depth property of the level, permanent 'foghack' is now optional setting, upper limit is still 60 (200%), vanilla Drakan has this at 30 (100%). Min Fog Depth lower limit decreased from 12 (40%) to 5 (16%). Added FOV multiplier setting. Level Editor: Fixed memory leak caused by original patch that fixed 3D view crash. UPDATE 7/8/2016:
Restored mipmapping feature, lost with a patch that addressed black menu bug. Increased maximum texture size limit to 1024x1024 (was 256x256). Made executables Large Address Aware, maybe it proves beneficial in the future. UPDATE 7/12/2016:
Level Editor Texture View Options dialog updated to accept maximum view size of 1024. Level Editor now releases handles to the 3D Viewer process and its thread. Added registry config with correct settings for running the editor through WINE. UPDATE 7/17/2016:
Level Editor: Fixed crashes and bugs that were caused by recursive calls to SendMessage API (SendNotifyMessage FTW!). UPDATE 7/23/2016:
Level Editor: Fixed 2 memory leaks (messaging problem), one occurred when communicating STOMP time (STOP button), the other when painting in 3D window. Level Editor: Changed default Level Properties regarding fog depth to be consistent with new engine limits. Level Editor: Changed default value of Fog Limit in Calculate Layer Visibility window to be consistent with new engine limits. UPDATE 7/31/2016:
Added updated Modeler. UPDATE 8/11/2016:
Level Editor: Fixed some stupid regression that caused 3D view to error when selecting models. UPDATE 8/14/2016:
Level Editor: Minor changes to used message sending APIs where STOMP time is involved, resolves memory leak when recording key frame. UPDATE 10/13/2016:
Updated most of the levels' visibility data, with exception of Ruined Village and Volcano (Max Fog Distance at 200% is effective now). Tweaked ballista and dragon NPCs to detect player sooner to compensate for larger viewing distance. UPDATE 11/13/2016:
Implemented technically more correct fix for players being disconnected from multiplayer server when the game is minimized in fullscreen mode. Controller Sensitivity slider under Options->Controls now allows minimum value of 0.1 (previous minimum was 0.6). UPDATE 12/21/2016:
Level Editor: 3D engine will idle unless the user is interacting with it instead of hogging the CPU while not doing anything. If game window doesn't have the focus, it will run at 15 FPS and sleep when the limit is reached to reduce CPU usage. Made game and Level Editor 3D engine's message loops more conventional (PeekMessage called without message filtering). Removed DisableProcessWindowsGhosting hack, not needed anymore due to above fix, game will never appear frozen unless it's actually frozen. UPDATE 12/24/2016:
Level Editor 3D engine: Added option Timeout that specifies how much time passes with no activity before PeekMessage function is redirected to GetMessage. Embedded manifest in executables that enables Visual Styles which makes editing tools look more faithful to Windows theme settings. UPDATE 2/2/2017:
Fixed the glitch with some things not being initialized on the level transition if the game was minimized and in fullscreen mode. Added dedicated server launcher which automatically restarts it if it crashes. UPDATE 2/8/2017:
Reverted fix from previous update due to severe stability issues. Fixed text corruption when multi-sample anti-aliasing is forced via graphics drivers (set Text Adjustment to Shifted in Graphics menu). Allow 2048x2048 textures. Taken care of some stupidities in dinput.dll, including doing things in DllMain that shouldn't be there. Added compatibility database install/uninstall script for easier (de)installation. UPDATE 2/16/2017:
Fixed some visual anomalies caused by new texel alignment code (scrollbar blur and vertical line through the map). UPDATE 3/4/2017:
Fixed some layer visibility glitches in Alwarren. Minor code fixes. UPDATE 3/8/2017:
Fixed another visibility glitch in Alwarren. UPDATE 5/10/2017:
Fixed regression from one of previous updates that caused dedicated server window to not refresh. Added option to specify refresh rate. UPDATE 5/31/2017:
Fixed some layer visibility glitches in Wartok Canyons (3 were also present in original level file, last one slipped in after visibility data update). 445SP1 Patch features intended for usage of special attack animations in NoWhere level are now activated only for specified levels (see 445SP1 section in Arokh.ini). 445SP1 Patch code for attack intervals was previously overwriting some unrelated code, this has been reverted. UPDATE 6/5/2017:
Corrected HTTP GET request to have standard compliant line endings (server browser works again!). Corrected issue with HTTP GET request not containing slash if URL lacked one. UPDATE 6/7/2017:
Game will no longer display "This is not the correct version of Drakan for this territory!" message and quit if system locale is set to Japanese. UPDATE 6/18/2017:
Fixed critical bug in Wartok Canyons since 5/31/2017 update, the floor with pushable stone to open wall door wasn't rendered. UPDATE 6/19/2017:
Added a backup copy of NPCs.odb file (Drakan\Common\NPC\NPCs.odb.bak). UPDATE 6/24/2017:
Level Editor 3D engine: Removed Timeout option, it's not needed anymore. Level Editor 3D engine: Hopefully no more hangs caused by dinput.dll. Fixed the remaining layer visibility glitches in Alwarren (hopefully that's everything). UPDATE 7/3/2017:
Layer visibility optimizations in Grotto and Wartok Canyons. UPDATE 7/31/2017:
Fixed a lot of layer visibility bugs in Ruined Village. UPDATE 8/3/2017:
Minor layer visibility fixes in Volcano. UPDATE 8/4/2017:
Another 2 missed layer glitches in Ruined Village were fixed. UPDATE 9/2/2017:
ReceiveCallback functions now handle socket errors so they won't crash the engine anymore, eg. it was possible to crash the server by sending it an oversized query packet. The crash that could occur when leaving Join Game menu may be gone as well. Replaced some duplicate memory management code in server query command processing functions with a call to common routine. When combining multiple query commands, responses will be broken down in multiple packets only when the size of the previous one is approaching the maximum. Added small routine to determine whether to tag the current query response packet with \queryid\#.# and/or \final\, previously this was under control of each query command processing function. Sending a query string that begins with \secure\ command won't crash the server anymore. \echo\ query command now responds with whatever was put as the second parameter. Allow specifying server region code in the Arokh.ini file. UPDATE 9/3/2017:
Game server will now notify master servers when it's shutting down. Added master.333networks.com as one of the default master servers. Added DirectSound DLL overrides in Drakan_Wine_Settings.reg. UPDATE 9/22/2017:
Server browser now uses GameSpy protocol by default to get the server list. Added more detailed status messages to the server browser, the original "Master Server Contacted" was very misleading. Fixed the bug when refreshing server list could randomly corrupt process' internal state, among other things causing inability to connect to any server and the game process deadlocking on exit. Resolved the problem with game temporarily freezing when multiplayer session ends and no players are connected. UPDATE 9/25/2017:
Just another minor layer fix in Ruined Village. UPDATE 2/17/2018:
Level Editor 3D engine: Empty DebugLog.txt will no longer be created. Level Editor 3D engine: Sounds will no longer be muted when window loses focus. Implemented per-user settings; config, saves and other data will be saved to user's Documents folder, in "My Games\Drakan". Added option to turn on/off redirection of user data to user's Documents folder. Screenshots will go to Screenshots subfolder and the old screenshots won't be overwritten. Added option to disable the usage of performance counter for timing. Game will no longer force-create registry key with A3D settings for old Aureal sound cards. Reverted change from previous update that caused "No Servers Listed" message in server browser remain on screen permanently. Deleting last user defined server from server browser will now delete servers.txt file from disk (only if the list is COMPLETELY empty), previously the file remained on disk with 1 server in it if the GUI was showing total of 0 servers. Replaced PeekMessage call with GetMessage in a message loop for Riot Engine Options dialog, taking care of excessive CPU utilization. Changed main loop to process all pending window messages before running a frame instead of just one per frame. Increased default limit of concurrent playing sounds from 20 to 64 (no more sound cutoffs without a DirectSound wrapper). Added missing trigger that turns off EAX Cave sound effect when leaving the cave in Ruined Village where 2 Scavengers attack an Orc. Game will now use the audio device selected in Riot Engine Options dialog instead of always using default device. It's now possible to select which monitor to use for fullscreen mode in Riot Engine Options dialog. Added FPS limiter. Restored compatibility with Windows 9x family of operating systems. Removed now redundant compatibility database from the archive, you may remove "Drakan SDB" entry from programs list or using Compatibility Administrator if you've installed it. UPDATE 3/30/2018:
Fixed regression introduced in previous update that causes dedicated server to get stuck in infinite loop on level change if its window is minimized. Screenshots made while in 32-bit display mode will no longer be black under certain circumstances due to engine's indifference regarding display buffer format. Removed incomplete crash fix for lens flare issue. UPDATE 4/20/2018:
Added missing exports to hook dinput.dll that might be expected by 3rd-party software. UPDATE 4/24/2018:
Fixed the item duplication bug that occurred when placing an item taking 2 horizontal slots at the far lower right side of the inventory. Fixed the 'sword block flying' glitch. UPDATE 5/1/2018:
Corrected the behavior of CPU feature detection function. UPDATE 5/5/2018:
Increased Controller Sensitivity minimum value to 0.3 (lower values reset at startup). UPDATE 5/8/2018:
Level Editor 3D engine: Inverted camera Y axis. Loading the game the first time after level transition is now faster if the save is from the same level and is not loaded via Load Game menu. Game will now load the Auto Save after level transition if the player hits any key on death fadeout screen and hasn't saved manually since. UPDATE 5/13/2018:
Fixed the bug in the server browser that could result in invalid servers being added to the server list. UPDATE 5/19/2018:
Now almost fully compatible with dgVoodoo2's fast video memory access. Lens flare effects should now render under most circumstances, they're also smooth under dgVoodoo2 (turn on Fast video memory access in the latter!). UPDATE 5/20/2018:
Crashes related to lens flare effects rendering are gone for good! UPDATE 5/21/2018:
Now it really works properly with dgVoodoo2's fast video memory access. UPDATE 6/4/2018:
Level Editor 3D engine: Allow system supported resolutions. Level Editor 3D engine: Added option to turn off window message based execution blocking during inactivity for cases when it causes problems. Added option to enable DSBCAPS_GLOBALFOCUS flag for DirectSound buffers. Copy Drakan.cfg from install folder to user's personal Drakan folder if (s)he doesn't have config file already. Prevent Windows from scaling game window at high DPI settings because it breaks the mouse (and is generally recommended for these types of games). Don't call SetWindowPos on fullscreen window, it's redundant and can permanently mess up other applications' window sizes and positions. Enabled enhanced GDI scaling at high DPI settings by default for the editing tools (supported on Windows 10 version 1703 and above). UPDATE 6/17/2018:
Disabled mplayer.com button in Multiplayer menu since the service is long gone. Dedicated server launcher now recognizes /abovenormal and /high parameters to set process priority of Drakan.exe (put them before anything else). Drakan dedicated server now inherits priority of its launcher process (DrakanServer.exe) also if it's higher than normal (if applicable). Moved SetErrorMode call to dinput.dll to allow dedicated server to be invoked by other means while keeping crash dialog disabled. Added VBScript script for dedicated server invocation. UPDATE 8/2/2018:
Minor code fixes. UPDATE 8/6/2018:
No longer required to specify levels in Arokh.ini 445SP1 section in Level#=levelfile.lvl format, just normally one per line. Automatically append file extension for the levels in 445SP1 section if missing. Fixed the issue from the previous update with MDL_SWITCH flag being accidentally reset. Fixed the inventory glitch which allowed items with width greater than 1 slot to be placed outside its boundaries. UPDATE 8/8/2018:
Don't allow quick weapon switching when Rynn is in middle of attack or stunned. Don't allow opening inventory when Rynn is stunned. UPDATE 8/18/2018:
Editing tools now remember 9 recently opened files (increased from 4 for Level Editor and from 6 for Modeler). Level Editor: Memory warning that always showed when setting number of undo levels above 4 now only appears on machines with low amount of installed physical memory. Level Editor: Default setting for undo levels has been increased to 20 (initial setting will still be 4 on machines with 64 MB or less memory.) Level Editor: Fixed the issue with message boxes related to undo setting popping up continuously if user closed the Level Properties dialog while undo number text box had keyboard focus. Level Editor: Level Properties dialog now allows setting number of undo levels up to 100 (previous maximum was 16). Level Editor: Now remembers number of undo levels across sessions. UPDATE 8/20/2018:
Allow loading 32-bit textures from texture databases as they're known to be handled properly by the Riot Engine. UPDATE 8/21/2018:
Fixed crash that can occur after failed DirectDraw surface creation during level load due to not all arguments being passed to debug error printing function. UPDATE 8/22/2018:
Reverted quick weapon switch block when stunned and added stow weapon block while mid-attack. UPDATE 8/24/2018:
Shortened the code dealing with lens flares. UPDATE 8/29/2018:
Updated lens flare visibility checking code to be able to read 32-bit floating point depth values. Added option to force usage of 32-bit depth mask. UPDATE 9/2/2018:
Level Editor: Added support for importing 32-bit textures (24-bit and 32.bit *.bmp files are no longer converted to 16-bit). Level Editor: Fixed the bug that caused pixel color values to be lower in the output image when exporting 16-bit textures. Level Editor: Fixed broken 32 -> 16-bit texture conversion code. Fixed a recent regression that caused lens flare visibility to be calculated incorrectly. UPDATE 9/4/2018:
Fixed another odd case of lens flares not working due to working with incorrect depth mask. UPDATE 10/28/2018:
Level Editor: Reduced "Brush Size" slider sensitivity in "Sculpt Tool" options dialog on the "Drawing" tab. Level Editor: Added Mechanist's DEM (Digital Elevation Model) importer, extending functionality of "File->Import->Heights from Bitmap..." option. Fixed broken alpha map of Texture24 in System.txd. Fixed layer visibility bug in Alwarren in the area with Barrier Crystal 5 that slipped in when layer visibility data was updated; it made the water that puts out the flames to remain invisible. Modified FPS limiter to accept values in decimal notation for more precise frame limiting. UPDATE 10/31/2018:
Level Editor 3D engine: Fixed hang that happens under certain circumstances when viewing certain models. Level Editor 3D engine: Process all messages in message queue before running a frame, like Drakan.exe. Level Editor 3D engine: Fixed broken execution blocking on inactivity (main thread is halted only when renderer is inactive), we're also calling timeEndPeriod(1) in such scenario! Round down MaxFPS value if performance counter is disabled. UPDATE 12/28/2018:
Skip enumeration of audio devices when starting dedicated server. Skip DirectMusic initialization when starting dedicated server. UPDATE 3/10/2019:
Disabled FPS limiter and VSync during loading. Added support for NAT-PMP and UPnP protocols for automatic port forwarding. UPDATE 3/14/2019:
Fixed an issue with port forwarding thread hanging the process for extended period of time if server is closed while waiting for NAT-PMP response.
This patch is intended to solve certain issues that occur on modern systems, related to game's usage of ancient DirectX APIs. It also enables the game to run via dgVoodoo DirectX wrapper. The main goal of this patch was to get the game running properly on all machines I have at home, which have graphics cards of all popular vendors (NVIDIA, AMD and Intel) and running Windows 10. The following changes have been implemented:
Pass DDCREATE_EMULATIONONLY for DirectDraw objects used for intro cinematics, prevents the Fatal error message on startup or black screen during cinematics, depending on graphics drivers.
Call SetAppCompatData(12, 0) in ddraw.dll to disable maximized windowed mode on Windows 8 and above, allows the game to run in real fullscreen mode on those systems and restores ability to change gamma with F2 and F3 keys.
Delay execution of DllMain logic of rendering libraries to the point when the LoadLibrary call returns (startup hang prevention and dgVoodoo compatibility).
Included registry fix which disables Windows' interfering with the game, launcher. This interference can make the game crash or not start when ran through launcher under certain circumstances.
Files in this archive were tested with retail version of the game, they may work with other versions, just make sure neither sft8lib.dll, D3D6Lib.dll or D3D7Lib.dll are present in the root game folder, the patch bundles updated ones in data\Stealth\Render and having the old ones in the root folder overriding the new ones is a recipe for disaster. It's also recommended to setup the game to use dgVoodoo 2 wrapper for the best experience, though it's not mandatory.
Extract the contents of Soulbringer folder into your own, overwriting original files.
Apply Disable_Soulbringer_Compat_Fixes.reg registry fix which takes care of launcher issues. This may not take effect until you right-click on Soulbringer.exe, go to compatibility tab and click OK to cause Windows to register new settings.
If you're not going to use dgVoodoo with the game, you should set Reduced color mode (8-bit) on all game executables' Compatibility tab (Soulbringer.exe, SoulbringeVC.exe, SoulbringeVCnoeax.exe), it won't actually downgrade the colors, but it allows for rendering modes enumeration to work properly. This is only needed on Windows 8 and above.
If you want software mode to not have garbled colors without dgVoodoo, apply Soulbringer_Palette_Fix_x86.reg (32-bit Windows) or Soulbringer_Palette_Fix_x64.reg (64-bit Windows). Note that the software mode doesn't work on Windows 8 and above without dgVoodoo.
Launch Soulbringer, click Video, make sure any DX6 option is selected then choose the desired game resolution. The ones with 4:3 aspect ratio are the best given that game can't deal with wider aspect ratios. Other modes can work, but run too fast without forcing VSYNC (60 Hz) or capping frame-rate to 60 FPS.
Click Advanced and make sure the EAX option is disabled unless you're sure you have a working setup that supports running DirectSound3D games with EAX effects and EAX Unified is installed.
There is a strange issue with game on Windows 8 and above, it doesn't pick up on all rendering modes unless Reduced color mode (8-bit) is selected from its Compatibility tab under Properties. When run for the very first time, it works though. It always works properly when run through dgVoodoo.
Contrary to what the game ReadMe says, DX6 mode actually seems to run faster than DX7 and doesn't have the problem activating VSYNC to keep the FPS at 60. Running too fast makes the game glitchy. The downside, text is blurry, needs some sort of fix related to texel alignment, ATI specific fix is called Altertnate Pixel Centers, PixelCenter (31 00 00 00) setting in registry, no idea how to set it on application basis on today's drivers, irrevelant solution for NVIDIA and Intel, doesn't work with dgVoodoo neither. Future version of dgVoodoo may have a fix for that.
With recent NVIDIA drivers, without using dgVoodoo, game may hang when tabbing out, press CTRL + ALT + DEL, then ESC to get to the desktop.
Applies to latest versions of: Max Payne, Max Payne 2
This patch is intended to solve issues related to game engine initializing Direct3D inside DllMain, which most notably causes the game to hang during startup with certain combinations of graphics hardware and drivers. Additionally, it is impossible to run the game through dgVoodoo Direct3D 8 to 11 wrapper, because Direct3D 11 runtime refuses to initialize from DllMain to prevent lockups.
The patch will solve above mentioned issues and possibly other problems that might be related to Direct3D initialization inside DllMain by delaying actual initialization to the point when execution flow returns from LoadLibrary API, therefore preventing any sort of lockup that would occur otherwise.
No compatibility modes should be applied to game executables, as they usually create more problems than they solve. Starting the game with affinity set to single core also isn't required anymore and will only serve to slow the game down a little.