Page 1 of 3

Drakan patch - if your game crashes on GeForce

Posted: Sun Aug 03, 2008 11:05 pm
by Shelim
Hello

My friend Kronikarz and I worked with disassembler and hex editor with intention to find out why Drakan keeps crash on GeForce 6, GeForce 7, GeForce 8 and propably GeForce 9 (?)

Our attemption proved successful. We manage to update Drakan core file so it crashes no longer. We are currently testing solution on both problematic cards as well as some older hardware.

First version of our patch will be released probably tomorrow evening, standard GMT time. It will include update program, however it will require to have all official and _none_ unofficial patched applied.

If you don't trust me, you can scan the patch with any antivirus software available on internet, hovewer I have no reason in making fake patch to so unpopular game (by the way, I regreat that it is so unpopular).

Hope to find our work useful and see you tomorrow.

~Shelim

Posted: Sun Aug 03, 2008 11:10 pm
by Shelim
I cannot edit my message, so I'm going to make it clear:

<b>This patch solve the problem with initial cut scene crashing!</b>

Posted: Mon Aug 04, 2008 1:21 am
by AXE
Most interesting: and am glad to hear that someone is still working on this type of thing.

Fortunately for me I dont have a Gforce card, or I would help test this!

I hope to hear more feedback on this, and then may incorporate it into the gold pack for download.

Posted: Mon Aug 04, 2008 7:36 am
by Outlaw Wyvern
That's excellent, Shelim.
Thanks to you and Kronikarz for hard work.

Posted: Mon Aug 04, 2008 2:35 pm
by Shelim
A bit earlier than we anticipate, but - unfortunately - we had no chance to test multilayer capability of new patch. If you could provide feedback - especially how it work between version 445 and 445+, we'll be very glad.

If we could get access to the machine on which occurs famous "Alwarren bug", we'll try to fix it too (on ours computers it does not happen)

Okay, here is download link:
http://dl.getdropbox.com/u/82366/drakan ... 445%2B.exe

Please provide any feedback in this topic (I've subscribed it and I'll receive notification on any reply)

~Shelim

Posted: Mon Aug 04, 2008 2:37 pm
by Shelim
* multi player, not multilayer of course. Stupid dictionary doesn't know that word and made auto correction ;-)

Posted: Mon Aug 04, 2008 7:01 pm
by Arokhs Twin
Excellent work, glad somebody has finally fixed this problem. If the patch causes multiplayer issues then it's not really a problem as the patch only really applies to single player. The regular 445 patch could be used for multiplayer and the new patch for single player. This should be OK for most people.

Posted: Mon Aug 04, 2008 7:13 pm
by Drakon Rider
there are also some bugs in multiplayer part of engine that causes dedicated server to crash when running big enough levels with a number of active players... the crash occurs in random time after level running and possibly depends on a combination of messages from network players...

the level with this bug frequently occur is Dragons Quest (current version DQtest 8.0sp4a)... unfortunately it is now too few players online to test it with about 4..6 players running around.

i found it tries to modify Dragon.rfl file - can you provide a list of patch bytes (better with a description what it change) so i can combine it with a SP1 for Dragon.rfl ?

Posted: Mon Aug 04, 2008 7:30 pm
by Eris
Woow! Cool! That really works. Thanks a lot.
BTW, I just played Alwarren from developer mode and game didn't crash at the end of the level. I picked up Bellhammer and lightning weapon and was using iamgoddess cheat but don't think that should make many difference.

!BUT! When I tried to connect to Ati's server, I've got the expected invalid map error, which says that my level doesn't match the one on the server. Then I successfully cracked dragon.rfl with DR's patch and again wasn't able to connect to SPB2, got the same error.
So, if you're planning to play multi someday, I would suggest you to make a backup copy of dragon.rfl before cracking the game.
Or, Shelim, maybe you could include the restoring feature in your crack, so we could use crack, start a new game, make a save and then restore it again back to play some multi.
Actually I don't even know what to do now. I'll probably install Drakan again somewhere in another directory and get dragon.rfl from there... Though on the other hand, in any case I can't play multi due to my inet, it's got a great down speed, but too slow up for Drakan, otherwise I would spend all my evenings in the game waiting for players... So it's very cool I cracked my game and the alwarren bug is now fixed. I'll finally be able to finish the game again after this couple of years.

Posted: Mon Aug 04, 2008 8:19 pm
by Shelim
Okay, here is downgrade from 445+ to 445 for playing in multi player:
http://dl.getdropbox.com/u/82366/drakan ... 445%2B.exe

I was unsure if Drakan checks CRC of Dragon.rfl. Unfortunately it does.

-=List of raw assembly changes=-

We found out that Frame capture feature of 2D GUI used by Drakan is no longer support on nVidia GeForce 6 and newer. You can see it by comparing the menu on both types of cards: on working cards you'll see previous menu a bit shaded when you enter next one. On trouble cards background is completely black.

Creators of game should foresee that function preparing (propably) virtual frame may fall and return null pointer (0x00000000). On working cards it succeed always, however. Creators checked returned pointer every time EXCEPT one place: selection of difficulty level.

This pointer points probably on object of class which has at least one abstract parent. This class were used on two function calls during leaving of that troubling menu. We were unable to find out what this two function eventually do through, but they seems to be non-essential for game process.

Our patch adds two assembler commands that skips problematic calls. As adding new command to disassembly is but impossible, we had to change existing ones. We simply "jump over" that two function calls with no checking if they will work or not. This is why we doesn't recommend installing patch on working machines.

Because there are two problematic places in code (one during entering new game and one during escaping to main menu), we had to add two jumps in different places.

List of changed bytes:
0x0013FC0D: 6A to EB
0x0013FC0E: 01 to 1D

0x0013FCDC: 6A to EB
0x0013FCDD: 01 to 24

~Shelim

Posted: Mon Aug 04, 2008 8:29 pm
by Eris
Thx, that helped :)

Posted: Sat Aug 09, 2008 12:55 am
by mage150
Wow if you guys could work on like making it so we can have more functionality with the engine we could make a whole new game. Forget fixing problems could we work on customizing the engine?

We could revive this community and start a new.

Posted: Sat Aug 09, 2008 9:39 pm
by Shelim
To tell the truth there are two main problems with that:

First, there are problems with law. If we start making addon to Drakan, we can end with some legal action taken by Surreal against us. I saw already few such project (related to other games) which ended like this.

Second, both Kronikarz and I are currently busy with other projects. Kronikarz is writing his own 3D engine in C++, while I am going to write small 3D multiplayer demo-game in my recent purchase - commercial C4 engine - to test it's features.

Posted: Sun Aug 10, 2008 3:45 am
by mage150
I wish the net code for Drakan could get fixed and the few problems we have with level editing, I miss being able to map mod

Posted: Sun Aug 10, 2008 1:53 pm
by Shelim
Net code, huh?
This is most difficult thing to patch, because we had to not only understand how Drakan works but also how it's net protocols works. And this is challenge for at least few weeks, which we don't have to spare.

But there is chance that we will be able to help with editor. If it won't be too time consuming, of course. What exactly do you want?