Widescreen hack and some other fixes aka AiO Patch

Discuss Drakan: Order of the Flame with fellow players and post any technical problems here where an 'unofficial' support team will try and help you. Gameplay help questions can go here too.

Moderators: Arokhs Twin, yangez93

UCyborg
Dragon
Posts: 424
Joined: Sun Jul 07, 2013 7:24 pm
Location: Slovenia

Re: Widescreen hack and some other fixes aka AiO Patch

Postby UCyborg » Fri Jul 22, 2016 9:59 pm

I found 2 more bugs in the editor. Any time you use paint tool in 3D window, memory leak occurs. The jump in one codepath goes right past the calls that free it. And there's some sync issue when it comes to communicating STOMP time, resulting in memory leak, usually when you press STOP.

One odd thing I've noticed, the editor still likes to crash on slower computers, most commonly when flying with camera around, the same issue that I thought was completely fixed by replacing SendMessage with SendNotifyMessage. Don't know what to make of that... I first noticed it on my laptop, but can reproduce it on my main rig if I slow down the CPU and set process affinity to one core.

Given that I'm making patches for the editor, I'm now learning the bare basics about creating levels. I see there must still be default value of 30 in editor's code somewhere for Fog Limit in Layer Visibility window. The instructions say you're supposed to calculate layer visibility each time you create new layer, if that's the case, there's no quick way to make old levels look good with 200% fog depth. :(

I'll upload the update sometime this weekend.
"When a human being takes his life in depression, this is a natural death of spiritual causes. The modern barbarity of 'saving' the suicidal is based on a hair-raising misapprehension of the nature of existence." - Peter Wessel Zapffe

UCyborg
Dragon
Posts: 424
Joined: Sun Jul 07, 2013 7:24 pm
Location: Slovenia

Re: Widescreen hack and some other fixes aka AiO Patch

Postby UCyborg » Sat Jul 23, 2016 9:52 pm

Update is up! I played with the editor a bit, it would be possible to increase rendering distance for the old levels, but it looks like this requires some manual tuning. The function for calculating layer visibility isn't the smartest and gets some calculations wrong, to the point of making some levels unplayable. You get bits of level not render that should be visible from certain POV, some preventing progression, and some hidden from view that are rendered regardless.

Aside the parts that need manual tweaking, results are quite nice, double visible distance without popping up. This is where dgVoodoo really shines, as the FPS can take quite a hit. So to conclude, it's doable, just can't click Calculate Visibility and say done!
"When a human being takes his life in depression, this is a natural death of spiritual causes. The modern barbarity of 'saving' the suicidal is based on a hair-raising misapprehension of the nature of existence." - Peter Wessel Zapffe

User avatar
Arokhs Twin
Site Admin
Posts: 1222
Joined: Wed Jul 18, 2001 9:36 pm
Location: United Kingdom
Contact:

Re: Widescreen hack and some other fixes aka AiO Patch

Postby Arokhs Twin » Sun Jul 24, 2016 1:04 pm

Nice one. I've updated the link on the main site page.
By fire and by blood I join with thee in the Order of the Flame!
Webmaster of Arokh's Lair

Drakon Rider-16
Hatchling
Posts: 7
Joined: Thu Jul 28, 2016 11:00 pm

Re: Widescreen hack and some other fixes aka AiO Patch

Postby Drakon Rider-16 » Thu Jul 28, 2016 11:22 pm

I see a lot of hacking of code was done in past years and it is soon will be 20th anniversary :) . May be someone may try to make Depth of Field simulation in output render result of engine ? I tried to write about it when Shelim project of massive modding of 3D output starts but I see still no result in DOF simulation. I think it is possible because many stereo-renders works fine so engine send ready Z-coordinate to D3D (or may be to DirectDraw). So the DOF wrapper only need to add polygon edge blur based on Z-coord. And also texture blur.

UCyborg
Dragon
Posts: 424
Joined: Sun Jul 07, 2013 7:24 pm
Location: Slovenia

Re: Widescreen hack and some other fixes aka AiO Patch

Postby UCyborg » Sat Jul 30, 2016 8:52 am

10th Anniversary Mod seems to have become abandonware. Someone made a texture pack for Hill of Fire, they also cover a lot of terrain in other Mountain World levels. I imported those textures in game databases, there is just a simple check in both the game engine and the editor that validates the width and if's not power of 2 in size up-to 256, it bails out. The mod boasts with support for textures up to 2048 in size, but already struggles with a bunch of 512x512 ones performance-wise, plus the increased loading times. I think size doesn't matter as much as long as they aren't too small, unless you're going to stare at them up really close. If mod were to be useful, it would need some major optimizations as the wrapper is pretty bad, slows things down even without any shaders on top if it and it breaks the game's bump mapping feature. Shelim made a graphics hack and didn't even test it with all stock rendering options? And then people wonder why they have diagonal lines and invisible Arokh.

One alternative for shader injection is ReShade. It can work for Drakan when used with dgVoodoo. Unfortunately, DOF doesn't seeem to work, maybe some settings need to be changed or maybe it's just the game. dgVoodoo is pretty nice and gives us much needed performance boost when crunching a lot of polygons. I wonder what the performance would be like if the engine had better memory management, all those allocations, de-allocations and particularly re-allocations with a lot of polygons.

One thing I'd still like to do in the future, if no one else will do it; updating layer visibility information in stock levels so we can have increased rendering distance. Would be great if you could just click Calculate Visibility and be done with it, but there is some manual tuning required as automatic function doesn't get everything right. Increased rendering distance and new textures would really bring some freshness to the game.

Code-wise, I'm out of ideas what I could improve further, given there is only disassembled mess to work with and I'm still generally newb when it comes to programming. It's just that things that I could improve were so obvious. And some things literally work only because...reasons. I'm still confused about those random crashes of the editor, replacing SendMessage with SendNotifyMessage in those 2 places really helped a lot, though some random crashes still remain. Ironically, it's more stable under WINE.
"When a human being takes his life in depression, this is a natural death of spiritual causes. The modern barbarity of 'saving' the suicidal is based on a hair-raising misapprehension of the nature of existence." - Peter Wessel Zapffe

Drakon Rider-16
Hatchling
Posts: 7
Joined: Thu Jul 28, 2016 11:00 pm

Re: Widescreen hack and some other fixes aka AiO Patch

Postby Drakon Rider-16 » Sat Jul 30, 2016 8:05 pm

As for memory management sort of fix i remember just increase multiplier in memory reallocation function. So it allocates more memory at once and it decreases chance of next re-allocation. It significally gain fps on very large polycount views. Though that was not very useful because such PCLs usually just poorly designed. So large polycount do not really adds good to level looking.

As for possibly more faster memory alloc speedup - i think using of VirtualAlloc in exact number of system pages are the most faster.Also it zeroes the allocated pages for free. But it may be very bad compatible with dynamic arrays in RiotEngine that looks like frequently uses increasing of allocated memory size with re-alloc.

UCyborg
Dragon
Posts: 424
Joined: Sun Jul 07, 2013 7:24 pm
Location: Slovenia

Re: Widescreen hack and some other fixes aka AiO Patch

Postby UCyborg » Sun Jul 31, 2016 12:28 am

Yup, that patch is included and it indeed helps with FPS. Just wanted to point out, just attach API Monitor to Drakan, tick GlobalReAlloc function and watch it spam in high poly scenes. But yeah, you're right about the poor design of some levels.

About game developers, they really must have been targeting very low-end PCs. There was even decision about software renderer, which they dropped in favor of hardware only renderer: http://www.gamasutra.com/view/feature/1 ... wares_.php That was a good move. How far we've come, today we have everything 3D accelerated.

Another interest thing I found in Dragon.rfl, basically, every in-game dialog/menu has associated plain WinForms dialog. They can be viewed with Resource Hacker. I wonder how that works.
"When a human being takes his life in depression, this is a natural death of spiritual causes. The modern barbarity of 'saving' the suicidal is based on a hair-raising misapprehension of the nature of existence." - Peter Wessel Zapffe

User avatar
LeoJaviex
Hatchling
Posts: 2
Joined: Tue Aug 02, 2016 5:00 pm
Location: Venezuela
Contact:

Re: Widescreen hack and some other fixes aka AiO Patch

Postby LeoJaviex » Tue Aug 02, 2016 5:11 pm

ALL-IN-ONE UNOFFICIAL PATCH FOR DRAKAN: OOTF
For new users: To put it briefly, this is all-in-one patch containing every known bug fix for the game and the editing tools. Please read the included Readme for the most up-to date information about the patch as it contains everything you need to know (list of fixes, installation procedure and more). The patch also increases game version number to distinguish it from vanilla Drakan. If you have any further questions, you can post them here.

Because all-in-one may sound confusing, it's meant as all-in-one when it comes to unofficial improvements to the game not made by the developers who made the game, but rather the community/fans of the game. Therefore, official patch 445 must be installed before applying AiO Patch. It would be possible to literally make All-in-One Patch including the official fixes, but would require distribution of patched game data files that official patches also alter, compared to AiO Patch, which only alters some of game's code.

Last update: 7/31/2016

Download:
(Final) release, Second Edition (377/447)
Arokh's Lair, Google Drive, Dropbox, ModDB
MD5: 64583FC83046639CACD5B8E8DFE7C505
CRC32: 131F75D5

Bonus:
Hill of Fire - HD textures (credit goes to Mauva Malhar)

Complete list of changes compared to vanilla Drakan:
  • Fixed black menu background bug (occurs on newer graphics hardware).
  • Fixed 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, prevents the 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, also fixes crash when setting FOV to a higher value.
  • 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 no longer causes disconnect after 30 seconds.
  • 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 lot of available resolutions.
  • Default value of MasterServerList variable in Drakan.cfg has been changed to "gsm.qtracker.com:27900" since GameSpy is gone.
  • 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.
  • Fixed memory leak caused by original patch that fixed Level Editor 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 on close.
  • Added registry config with correct settings for running the editor through WINE.
UPDATE 7/17/2016:
  • Fixed Level Editor crashes and bugs that were caused by recursive calls to SendMessage API (SendNotifyMessage FTW!).
UPDATE 7/23/2016:
  • Fixed 2 memory leaks in the Level Editor, one occured when communicating STOMP time, the other when painting in 3D window.
  • Changed default Level Properties regarding fog depth to be consistent with new engine limits.
  • 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.
Wishlist:
  • Fixing in-game map to not stretch on wide monitors would be nice.
Some information below this point aren't relevant anymore. They're here only for historical reasons.

Hi everyone!

I recently got into Drakan again. Seeing community managed to squash most annoying bugs occuring on modern PCs, game pretty much works nicely with 445++ patch. Anyway, one thing that still bugged me, game offers every possible resolution your hardware can manage, but field of view remains at 80, which is OK for 4:3 resolutions, but kinda low for wide resolutions, everything's zoomed in. Command "fov" was also a no-go, since it crashed the game plus it's not fun to manually fix FOV every time. Oh, and there is also a slight problem with hosting multiplayer server, even with 10th Anniversary Mod, but more on that later.

So I decided to fire-up OllyDbg, hoping to figure something out. Long story short, I located the function which takes FOV as the parameter and some sub-function, which, among other things, calculates model Level of Detail value using some number calculated from FOV. 0.0 is maximum detail, higer values mean less detail as the camera moves away, anything negative is catastrophic, which is exactly what happens when you try to set FOV higher than 93.

Then, knowing what's the problem, I coded a small hack DLL with the following features:
  • Alters the model LoD calculation so it always returns 0 which fixes FOV related crash and makes characters, trees,... look nicer if looked at from the distance.
    EDIT: This is now part of patched Drakan.exe.
  • Automatic FOV adjustment for wide monitors.
  • Fixes "Session creation failed!" error on Vista and newer.
  • Ability to apply any combination of unofficial game patches on startup, configurable via configuration file.
    EDIT: Realized that the whole memory patching thing was stupid so all patches are now part of patched Drakan.exe and Dragon.rfl.
About that multiplayer bug...the problem is within inet_addr function. On Windows XP and earlier, it returns INADDR_ANY if empty string is passed to it, which is what Drakan does when setting up the server. But in later versions, the behavior was changed so it returns INADDR_NONE, which sorta tells the server to not listen on any network interface. Take a look here. This is easily solved by detouring inet_addr function and returning INADDR_ANY when empty string is passed. Also, the binary patch in Drakan.exe that comes with 10th Anniversary Mod only partially solves the problem, once the server is up, anyone who joins is kicked right after 30 seconds.

Before I move on to instructions on how to use the hack, I'd like to address something about Drakan's compatibility with modern flavors of Windows. It seems that patched Drakan doesn't require any compatibility fixes applied. But Windows is actually set to apply 3 so called compatibility shims to Drakan, which are:
  • EmulateCDFS - patched Drakan doesn't use CD in any way so this one is completely redundant.
  • IgnoreAltTab - this one is meant for applications which don't handle alt-tabbing well. Drakan does it perfectly well.
  • IgnoreLoadLibrary - don't know which DLL it's trying to ignore, but it also seems unnecessary.
These can be quickly disabled using registry fix I provided within archive. Now, let's assume you want to try out the hack right away, you have fresh installation of Drakan patched to 445 and admin rights in Windows:
  1. Extract Arokh.dll, Drakan.exe and Dragon.rfl from attached archive to your Drakan directory.
  2. You'll now need something to inject the DLL into Drakan when it starts, my favorite method is to set Windows to automatically do it every time the game is started, so extract Drakan.sdb from archive to Desktop.
  3. Go to Start menu->Programs->Accessories, right click on Command Prompt and select Run as administrator.
  4. Command window should open in your user profile directory, so now you just need to navigate to Desktop by typing in following command without quotes: "cd Desktop"
  5. Now that you arrived at your Desktop, type in the following command without quotes: "sdbinst Drakan.sdb"
  6. Message "Installation of Drakan SDB complete." should appear, meaning all went well and you have successfully installed custom compatibility database for Drakan which tells Windows to load Arokh.dll everytime you want to play.
  7. You're done, start Drakan as usual and enjoy!
These steps should work out-of-the box for Windows Vista and 7. You might need to adjust them a bit for Windows XP or Windows 8. In XP, you probably won't need to worry about running as admin unless you have limited user account, as for Windows 8, can't say anything about that since I sticked with 7.

You could achieve the same thing by downloading Microsoft Application Compatibility Toolkit from here and using Compatibility Administrator to create custom compatibility database with a special shim for Drakan called InjectDll and specify Arokh.dll as a parameter. In case you're familiar with the program and are using it to fix some other problematic programs/games, you'll probably want to add this fix to your existing database. WinJect 1.7 can also be used for DLL injection.

Any kind of feedback is appreciated!

PS: I forgot about compilation requirements, nothing fancy: Microsoft Visual C++ 6.0 or newer and Microsoft Detours 1.5

Edit: updated instructions for those who have User Account Control enabled since apparently you can't open command window with admin privileges right from the Desktop. Hopefully they will work for everyone now.

IMPORTANT UPDATE: I discovered alternative possible way to implement 445++ patch, not only solving crashes, but also fixing black menu background bug. Details in 14th post.
Great job, thanks friend. Recently i remembered this game and i'm going to play but in my spanish language and the patch AiO and 445.

So far no problems on a computer with Windows 7 64-bit.

UCyborg
Dragon
Posts: 424
Joined: Sun Jul 07, 2013 7:24 pm
Location: Slovenia

Re: Widescreen hack and some other fixes aka AiO Patch

Postby UCyborg » Fri Aug 05, 2016 10:13 am

Glad to hear it works well for you! AiO Patch is language neutral so there are no problems with different language versions, just need the matching 445 patch, which you already know, and the installer warns you if you try to install wrong version.

One rare issue that came up during testing was a random crash during gameplay, probably also happens with vanilla 445 version, judging from where it crashes in the code, though it shouldn't be much of a problem, especially if you save often. And another less known bug, if you save the game at the point where that gas trap activates (while the gas is hissing) where you retrieve Elemental Amulet, loading that save will result in degraded performance, assuming it writes some junk in the save file that slows things down.

In some cases, the old installer for the game just refuses to work so you can't install the game and the official patch any other way except by manually extracting the files. Unfortunately, nobody pinpointed out why exactly this happens.
"When a human being takes his life in depression, this is a natural death of spiritual causes. The modern barbarity of 'saving' the suicidal is based on a hair-raising misapprehension of the nature of existence." - Peter Wessel Zapffe

UCyborg
Dragon
Posts: 424
Joined: Sun Jul 07, 2013 7:24 pm
Location: Slovenia

Re: Widescreen hack and some other fixes aka AiO Patch

Postby UCyborg » Thu Aug 11, 2016 12:45 am

A really nasty bug (regression) slipped in the Level Editor around 12th of July, some silly mistake I made in the code that closed those stupid handles, viewing models in 3D would produce an error when selecting them in Databases window and not being able to view them unless 3D was closed and reopened.

I already uploaded fixed version, everything should work as it should now, at least not any worse. Sorry for the inconvenience.
"When a human being takes his life in depression, this is a natural death of spiritual causes. The modern barbarity of 'saving' the suicidal is based on a hair-raising misapprehension of the nature of existence." - Peter Wessel Zapffe

User avatar
mage150
Dragon
Posts: 167
Joined: Sun Aug 12, 2001 3:05 pm
Location: USA
Contact:

Re: Widescreen hack and some other fixes aka AiO Patch

Postby mage150 » Thu Aug 18, 2016 1:26 pm

UCyborg, you are like the best thing to ever happen to the Drakan community along with DrakonRider. I wish I had the coding knowledge the both of you had. I would have found a way to take control of the engine to make the game I wanted.
Moderator Of Arokh's Lair.

UCyborg
Dragon
Posts: 424
Joined: Sun Jul 07, 2013 7:24 pm
Location: Slovenia

Re: Widescreen hack and some other fixes aka AiO Patch

Postby UCyborg » Thu Aug 18, 2016 11:32 pm

I imagine it wouldn't be so easy due to lack of actual source code. Source code is the exact reason why old QUAKEs and DOOMs are so easily moddable with modern source ports.

Though you can find some pretty impressive projects for closed games, like whole multiplayer component for old GTAs. Most hassle-free approach for making a new game, if Riot Engine isn't sufficient, would probably be picking a different engine, but there is a learning curve.

I'm not an expert, regarding Drakan unofficial patches, they just tackle small bits of a large beast. Drakon Rider got some hints about some internal parts of the engine by one of the game devs so he was able to come up with 445SP1 patch in its current form. 445SP1 is the only thing made for Drakan that directly manipulate behavior of part of the game logic, like those weapon hit intervals and fix for the bug that causes player to be stuck in block-attack mode in some scenarios.

BTW, there is apparently an interesting series on YouTube, Handmade Quake. The guy is basically rewriting original Quake from scratch, explaining how the whole game is programmed, starting from zero.

http://philipbuuck.com/announcing-handmade-quake
https://www.youtube.com/playlist?list=P ... MarnfyNhHF
"When a human being takes his life in depression, this is a natural death of spiritual causes. The modern barbarity of 'saving' the suicidal is based on a hair-raising misapprehension of the nature of existence." - Peter Wessel Zapffe

UCyborg
Dragon
Posts: 424
Joined: Sun Jul 07, 2013 7:24 pm
Location: Slovenia

Re: Widescreen hack and some other fixes aka AiO Patch

Postby UCyborg » Thu Oct 13, 2016 9:45 pm

I've been playing a little with the level editor over the previous weekend and got most of the levels updated for increased viewing distance, only Ruined Village and Volcano still need to be done plus some optimizations of the current levels, so I decided to release what's done. The function in the editor that determines what is visible from one point and what not fluctuates in errors from one extreme to another, depending on the level, in some places parts of the geometry that are easily visible from one point is determined invisible, in other places, it's the other way around.

In Grotto, if you go straight from the start to ice cave with the Giant, the big chunk of the level that leads to the portal to the islands is rendered. I manually optimized that part, but the following parts still need to be done. These errors are also present in unmodified levels, but the impact is less severe due to shorter view distance.

Overall the game surely looks better with less fog in the way, just the FPS tends to dip to 40s in some places. It's much worse without dgVoodoo though, at least on my machine, it goes as low as 25.

I also changed some NPCs, dragons and those ballistas, to detect player sooner to compensate for larger view distance. This change isn't effective when loading existing save game, though it may work on transition to a yet unvisited level, but I haven't tried to be 100% sure.
"When a human being takes his life in depression, this is a natural death of spiritual causes. The modern barbarity of 'saving' the suicidal is based on a hair-raising misapprehension of the nature of existence." - Peter Wessel Zapffe

UCyborg
Dragon
Posts: 424
Joined: Sun Jul 07, 2013 7:24 pm
Location: Slovenia

Re: Widescreen hack and some other fixes aka AiO Patch

Postby UCyborg » Sun Nov 13, 2016 6:45 pm

Just a minor update:
  • 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).
"When a human being takes his life in depression, this is a natural death of spiritual causes. The modern barbarity of 'saving' the suicidal is based on a hair-raising misapprehension of the nature of existence." - Peter Wessel Zapffe

UCyborg
Dragon
Posts: 424
Joined: Sun Jul 07, 2013 7:24 pm
Location: Slovenia

Re: Widescreen hack and some other fixes aka AiO Patch

Postby UCyborg » Tue Dec 13, 2016 2:36 pm

I've re-uploaded the patch today because there was an overlooked issue with multiplayer since the previous update on level transition if the game was in fullscreen mode and minimized. The whole point of the new patch was basically the fact that with the first one, needless calls were made to the rendering APIs when they shouldn't be. All this messing around because for some reason the game is coded in the way that it drops network activity if the primary DirectDraw surface is lost.
"When a human being takes his life in depression, this is a natural death of spiritual causes. The modern barbarity of 'saving' the suicidal is based on a hair-raising misapprehension of the nature of existence." - Peter Wessel Zapffe


Return to “Drakan (PC) Game Discussion & Technical Support”

Who is online

Users browsing this forum: No registered users and 3 guests