Mon Feb 14, 2005 2:06 am by Moonhead
Luckily for you I saved the instructions how to do it. Forgot the name of the guy who wrote it; I believe he went under the nick "StoneD". It involved some small changes in the EXE file, which, according to some, is not allowed (so maybe the original post has been deleted?).
I saved it as an rtf doc, but of course the layout will not be rendered if I copy-and-paste it, so if it will be an unreadable mess, I can email the rtf to you. But I think it''ll do this way.
It has been some time ago when I did this myself, but if I remember correctly, I used Hex Workshop. I'm not at all an expert (actually had no clue what I was doing and didn't understand most of what he was talking about, but managed to get the desired result anyway) so I can't give any support besides posting the info. Here it is; I hope it 'll suite you.
=-=-=-=-=-=-=-=-=-==-=-=
Found the HUD display speed limit... there's two locations. One for Trade Lanes and one for the Cruise Engines! Actually, I think I found the first one last year before my comp died, but what the hell.
Before I continue, I have already submitted an FLMOD to TLR, however I suspect it won't get approved because it contains an EXE. If that is the case, I'll make a trainer version instead if people want.
For those who want to do it themselves or want some ammo in their struggle to learn Assembler, here's the juice :
Both are in freelancer.exe, so if you want to modify it, you'll have to either do it using some kind of memory editor, a trainer or by hacking a NO-CD patch version like I did :
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,[005D7E78
Where 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,eax
>004D5984: 7E19 jle .0004D599F -------- (3)
.004D5986: 8B8E3C030000 mov ecx,[esi[00000033C
.004D598C: 8B11 mov edx,[ecx
Where 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.
Didn't think I'd make it *that* easy, did you?
BTW, I've been watching a certain Monty Python film recently. FYI, etc. ;D
Edited by - moonhead on 2/14/2005 4:51:23 AM