Dev's Limit Breaking 101 Techniques
-
I can’t remember if this has been mentioned before but i don’t see this in the overall list of hacks. I’m talking about the tradelane speed indicator which normally maxes out at 999 irrespective of what the tradelane speed is set to.
This hack was originally by StoneD. He’d obviously been watching Holy Grail while writing this
HUD Speed display limiter - Cruise
.004D592B: D815807E5D00 fcom d,[005D7E80 << Checking against 300.0, real(4) float
.004D5931: DFE0 fstsw ax
.004D5933: F6C441 test ah,041 ;“A”004D5936: 0F8575FFFFFF jne .0004D58B1 –—? (2)
.004D593C: DDD8 fstp st(0)
.004D593E: D905807E5D00 fld d,[005D7E80
.004D5944: DC15787E5D00 fcom q,[005D7E78Where the > is, the HEX offset is 0xD5936. Change “0F85” to “90E9”. This changes the JNE (Jump if Not Equal) to simply JuMP.
This code seems to be some kind of half-hearted attempt to prevent the CPU from doing something constantly when
it doesn’t need to. Previous lines involved in the loop do traverse several DLLs (common.dll, msvcrt.dll, server.dll)
so it may impact low spec comps if you do this. I doubt it though.HUD Speed display limiter - Trade Lanes
.004D5979: 3DE7030000 cmp eax,0000003E7 ;" _" !! 999 !!
.004D597E: 898644030000 mov [esi[000000344,eax004D5984: 7E19 jle .0004D599F -------- (3)
.004D5986: 8B8E3C030000 mov ecx,[esi[00000033C
.004D598C: 8B11 mov edx,[ecxWhere the > is, the HEX offset is 0xD5984. Change “7E” to “EB”. This changes the JLE (Jump if Less or Equal) to simply JuMP.
FYI, the actual tradelane speed is 2,500.
Now, I know from past experience that people will ask, so to summarize, do thusly :
I. Fetch thyself an Editor of Hex. Tis not an issue whither it be share, free or pay-ware. An goodly one is HIEW.
II. Readst thou thine manual for thine Editor of Hex.
III. Makest thyself an copy of Freelancer.exe. Test.exe t’would be good.
IV. Open Test.exe in thine Editor of Hex.
V. Shouldst thou desire to remove yonder Cruise limit, instruct thine Editor of Hex to go to this Offset : D5936
VI. At this location, thou wilst find two bytes, 0F and 85. Change to 90 and E9.
VII. Shouldst thou desire to remove yonder Trade Lane limit, instruct thine Editor of Hex to go to this Offset : D5984
VIII. At this location, thou wilst find but a single byte, and it shalt be 7E. Change this to EB.
IX. Savest thine changes.
X. Quiteth thou from thine Editor of Hex.
XI. Clicketh doubly so upon yonder Test.exe.
XII. Play.I’ve tried the last one and it works and now displays the correct speed while travelling through the tradelane. Not tried the first one
-
That’s because FL can make cruise go slightly faster when you form up… I’m much more annoyed by how it continuously switches back and forth between 299 and 300.
As for limit cruise display, I guess it’d just be a matter of finding where the value to show is stored, change the comparison value too and you’d have it.
-
Gibbon, is it possible to limit cruise display limit to 600?
"Cos when you are grouping with npcs speed reaches 700+ sometimes? looks weired.@Gibbon:
HUD Speed display limiter - Cruise
.004D592B: D815807E5D00 fcom d,[005D7E80 << Checking against 300.0, real(4) float
You just need to change the 300f to 600f (the same value is used for the check and display). The above disassembly shows the float in question is at 0x5D7E80. Subtract 0x400000 from that to get the file offset and you have 0x1D7E80. So change the 300f at 0x1D7E80 in freelancer.exe to 600f.
-
Thanks for the heads up there Motah. As i mentioned earlier this wasn’t my find, just a tutorial i had lying around which i didn’t see on the overall list. I knew the last part of what i posted worked as i now have tradelanes that show the correct speed, just not got round to testing the other bit yet lol
-
Hey guys, i found something made me ….Er…
Ok, here it is:
– 6250000f in server.dll, 0x84ADC, 0x86AEC = square of NPC disappear distance in MP
– 6250000f in server.dll, 0x84ADC, 0x86AEC = square of maximum effect draw distance (vis_beam) ~FriendlyFire
– 6250000f in server.dll, 0x84ADC, 0x86AEC = square of distance from the center of the system over which bases no longer wish you well when un-docking (note: this is the same number as NPC disappear distance - as long as you have a good NPC persistance range, and good loot_unseen_radius = (radius) & loot_unseen_life_time = (time outside radius) in constants.ini, increasing this is safe) ~fox -
And what exactly is the problem with those values? If you look at the top, you’ll see they’re for 1.0 and 1.1, respectively. The fact that they’re the same isn’t uncommon as most compilers will reuse identical constants as much as possible to reduce file size.
-
NeXoSE wrote:
Hey guys, i found something made me ….Er…Ok, here it is:
– 6250000f in server.dll, 0x84ADC, 0x86AEC = square of NPC disappear distance in MP
– 6250000f in server.dll, 0x84ADC, 0x86AEC = square of maximum effect draw distance (vis_beam) ~FriendlyFire
– 6250000f in server.dll, 0x84ADC, 0x86AEC = square of distance from the center of the system over which bases no longer wish you well when un-docking (note: this is the same number as NPC disappear distance - as long as you have a good NPC persistance range, and good loot_unseen_radius = (radius) & loot_unseen_life_time = (time outside radius) in constants.ini, increasing this is safe) ~foxIndeed, this is a valid point. In the “square of distance from center of system that bases no longer wish you farewell”, I noticed that this was in fact the same as the NPC disappear distance, which was in fact the same as the effect distance. Although I noted this in that particular offset, I should probably note that in the other two as well.
In this particular case, increasing this number is safe as long as you have well-defined loot constants in contstants.ini, and a reasonable NPC persistence range.
This is, I believe, the only three offsets on the list that conflict with eachother, though as always you should exercise caution (and make backups!) when doing these edits.
-
Here’s one that may be of interest:
1.85f in Freelancer.exe, 0x1C9020, 0x1C9020 = aspect ratio of the cinematics
I’ve added a “Full screen cinematics” option to FL Hack. (It doesn’t modify that variable, but where it reads it, using the actual ratio of the resolution.)
-
While you’re at the cinematics, have you found a way yet to completely disable every undock sequence? I better ask first before I look into it myself and waste time