Dev's Limit Breaking 101 Techniques
-
The problem with asteroids not being able to be rendered is due to how FL computes unique IDs.
Because after a certain size of the position vector the unique id computation function fails, asteroids will no longer be spawned.At Freeworlds, we simply made the function always return “some” id, no matter if its a broken ID.
Maybe adoxa can fix the code for larger vectors, the function responsible is:
unsigned long __cdecl CmnAsteroid::compute_cube_id(class Vector const &)
in common.dll (062A6010)
-
Okay, open up common.dll (v1.1), jump to offset 0x460a9, change 7 to 8, same at 0x460af. That should increase it to ~260k (x and z, respectively; y remains at ~65k), presumably at the expense of removing them further from the center, from 256 to 512 (big deal). As you may have guessed by now, use 9 instead of 8 to increase to ~520k (1024 from the center).
-
adoxa wrote:
Okay, open up common.dll (v1.1), jump to offset 0x460a9, change 7 to 8, same at 0x460af. That should increase it to ~260k (x and z, respectively; y remains at ~65k), presumably at the expense of removing them further from the center, from 256 to 512 (big deal). As you may have guessed by now, use 9 instead of 8 to increase to ~520k (1024 from the center).I just replied, but my connection failed :-x
Anyway, great that you found it. But -weeehh- I use common.dll version 1.0… Is there a way to recalculate the offsets? Or doesn’t it work that way?
In Common.dll 1.0:
0x460a9 = 59
0x460af = 0CI guess these are totally unrelated values, being a different version?
-
w0dk4 wrote:
The problem with asteroids not being able to be rendered is due to how FL computes unique IDs.
Because after a certain size of the position vector the unique id computation function fails, asteroids will no longer be spawned.At Freeworlds, we simply made the function always return “some” id, no matter if its a broken ID.
Maybe adoxa can fix the code for larger vectors, the function responsible is:
unsigned long __cdecl CmnAsteroid::compute_cube_id(class Vector const &)
in common.dll (062A6010)
Hi! Had overlooked your post. Thanks for the info though (not that I can do anything with it, but Adoxa apparently does!)
Maybe I should just abandon the idea and simply use customized dynamic asteroids. I remember someone found out you can redefine the normal asteroid models as dynamic asteroids, and have up to nine fields overlap each other.
And then, IIRC, there is a value in constants ini that can modify collision damage.
(Which brings up another idea that might be a cool project for Adoxa: enable the game to have the constants in constants.ini redefined in per star system. Would that be possible?)
-
I’d argue that there is no good reason to be using 1.0 anymore. I urge anyone still working with it to move to 1.1, if only for the security features provided by 1.1’s cheating detection and most importantly FLHook. Having both client and server running 1.1 does not matter so long as the server does, but it’s a lot easier to develop a mod with only one version
-
adoxa wrote:
Sigh, just when I thought everyone was using 1.1… 0x463c9 & f.
:worship: Thx!!!
friendly fire wrote:
I urge anyone still working with it to move to 1.1,
I must confess I have no ideas how to that…
And I have some recollection it was disadvised against on the old (TRL) forum. Can’t remember what the reason was, but it was a good oen. Apparently, the issue has been overcome, but I’d like to know what & how.
Besides, although I have a legally purchased copy, I have a no-cd version that ‘fell off a truck’, and that’s a 1.0 . Is there a no-cd patch for 1.1?
-
adoxa wrote:
Sigh, just when I thought everyone was using 1.1… 0x463c9 & f.IT WORKS!
-
Syd wrote:
freelancer.exe wasnt change in 1.1, just patch your freelancer to 1.1 and everything is like beforeCool. Where and/or how?
(I’m stubborn and carry on with 1.0 for a while, but it can’t hurt to at least now where and how to patch. But - what was the good reason the old school modders advised against patching? Or did I just imagine that?)
-
Moonhead wrote:
Cool. Where and/or how?http://download.microsoft.com/download/5/4/2/542a372f-d540-468d-a653-2cdced8d1d0d/flpatch.exe
-
Crazy wrote:
Moonhead wrote:
Cool. Where and/or how?http://download.microsoft.com/download/5/4/2/542a372f-d540-468d-a653-2cdced8d1d0d/flpatch.exe
Thx!
I suppose I need to run this with every fresh-install (and also can get rid of it, by fresh-installing the game without patching?
I won’t patch now, coz I’m too lazy to find out what might have changed. I wanna simply add more Order NPCs to my little mod now
-
If you ever go multiplayer with your mod (IE get a server up), you’ll be cursing this decision over and over, trust me.
-
FriendlyFire wrote:
If you ever go multiplayer with your mod (IE get a server up), you’ll be cursing this decision over and over, trust me.Well ok maybe I should. But a few question, if I may:
1. What files are actually affected by the patch (you don’t have to go into details, but I wanna know what I might loose / have to again? I mean DLL wise mainly, but also other files I might not think off… Also, I need to know what existing files in my mods I need to update
2. I build all my mods over Xerx’s OpenSP and that includes:
- a common.dll file in \Exe,
- a contents.dll file in \DLLS\BIN
and both happen to be 1.0 files (in fact it’s version 1.0.1223.11). Is there a 1.1 version of Xerx’s OpenSP? (Or another OpenSP that works as well? OpenSP meaning: no storyline, sort of a solo emulation of MP)
3. Where should I expect conflicts if I accidently (e.g. becaus there is still some 1.0 stuf in one of my older mods) use a combination of files from both 1.1 and 1.0?
-
The Freelancer Update v1.1 is primarily a server update addressing server stability and cheating. There are some client side fixes, the most important being a multiplayer ID generation issue. There is really no need to install the update unless you are running a server or are unable to play multiplayer because you can’t get an ID. The update itself contains no localized text, therefore it is applicable for use for the English, French, and German versions of the game. An English, French, or German readme file will be installed depending on the language version of the target operating system.
Doesn’t seemt too bad, but what about the content.dll?
-
If you have WinRAR or 7-Zip, just download the EXE patch, right click on it and extract it as you would a standard archive. You’ll be able to see for yourself exactly what files are changed by the update.
As for OpenSP, I do not know about this, but I think there were newer versions than Xerx’s one. All I know is that most mods want, at one point or another, to go MP and that you want to be ready for this.
-
Moonhead wrote:
1. What files are actually affected by the patchThese are the files updated in flpatch.exe (the 1.1. patch made by Microsoft):
Freelancer\DLLS\BIN\Content.dll
Freelancer\EXE\CheatMessage.txt
Freelancer\EXE\ReadmePatch.htm
Freelancer\EXE\FLServer.exe
Freelancer\EXE\Common.dll
Freelancer\EXE\DALib.dll
Freelancer\EXE\RemoteClient.dll
Freelancer\EXE\Server.dll -
Regarding OpenSP, there’s also my SP from MP tool. This takes the new character data used by MP and turns it into restart.fl, used by New Game.
You should also be aware that 1.0 save games are not really compatible with 1.1. The internal mission number changed, so after Mission 2 (iirc) you will not be able to advance level. It can be fixed by getting FlCodec, decoding your save games, searching for and adding one to MissionNum, if it’s greater than 5 (1.0 is consecutive, but 1.1 jumps from 5 to 7). There’s no need to re-encode, so just save and that’s it. You don’t even need to exit Freelancer.
-
adoxa wrote:
Regarding OpenSP, there’s also my SP from MP tool. This takes the new character data used by MP and turns it into restart.fl, used by New Game.:worship: Adoxa, you should be the new UN ambassador and the world would truly become a better place.
adoxa wrote:
You should also be aware that 1.0 save games are not really compatible with 1.1. The internal mission number changed, so after Mission 2 (iirc) you will not be able to advance level. It can be fixed by getting FlCodec, decoding your save games, searching for and adding one to MissionNum, if it’s greater than 5 (1.0 is consecutive, but 1.1 jumps from 5 to 7). There’s no need to re-encode, so just save and that’s it. You don’t even need to exit Freelancer.Thx for the info! I don’t have any worhtwhile savegames (yet).
So, it seems safe to path up to 1.1. now…
- all the hacks in my common.dll can be redone with FLHack (and the starsystem’s asteroid limit manually woth the info provided earlier in this thread - I’ll write it down to not forget)
- OpenSP is provided
- The Planets Visibility Hack is in Freelancer.exe so it is left untouched (Btw I still have the text from Friendly Fire’s original post, saved from TLR, and I will post it, to express gratitude and pay honour. Like Adoxa’s hacks, it contributed to improve to kick-ass-ness of my time on earth. )
Wooee!