Dev's Limit Breaking 101 Techniques
-
Because modifying the entries in effect_types.ini seems to have no effect unless the right value in the exe is changed. It wasn’t until some of the other values that LS found i could edit the view distances on certain effect types from the ones i modified in the EXE file.
As an example LS found this in the 1.1 exe,
EFT_EQUIP_ATTACHED_INSANELY_LARGE
– 500f in freelancer.exe, 0x212FC8 = on-screen radius of effects
– 1000f in freelancer.exe, 0x212FD8 = unknown, likely the first value of pbubble
– 5000f in freelancer.exe, 0x212FDC = visual cutoff range of effects (second value of pbubble)If you don’t edit the values there, especially for the pbubble max setting, it doesn’t matter what you type into the effect_types.ini setting, nothing happens. It was only until i changed the setting in the exe that the effect was visible from 50k away
He’s compiling a list of all the effects addresses so for those that want specific effects to work, they will. Why choose from only 3 fx types to change when you can use all of them?
As an example, suppose i want to see engine fx made viewable from further away, without the corresponding exe address for the relevant engine trail fx, no amount of modifying the effect types file will change that unless i have the address for the that effect type
-
I set a breakpoint on the insane max value and it did indeed get updated from effect_types.ini. You do still have an entry for it in freelancer.ini?
The initial pbubble calculation looks to be:
r = distance? - radius scale = 1 - something // usually 0 or close to it d = min + (max - min) * scale // so it'll be max or close to it if (d >= r) ...
-
Are these EXE entries even used if the appropriate INI settings are changed and existing?
What I’d especially like to know is whether it’s possible to make entirely new effect types without any negative consequences.
-
@ adoxa
Yes, i do have an entry for it in freelancer.ini. Only sense i seem to get with regard to the view values was to edit the exe file at the address LS told me to go for that particular effect type. I modified the pbubble max setting to 50k, now it works. I’m as mystified as you are why it works for me this way but it does lol
@ FF
LS is your man to answer that, all i know is he has a complete list of the fx in the effect types file and one or two unused ones i believe, that he’s located in the exe file with relevant addresses and initial values
-
The types in effect_types.ini are hardcoded into freelancer.exe - the exe offsets are the default values, which are overwritten when the ini is read. It is not possible to create new types - what is in effect_types.ini is all there is, apart from EFT_CUSTOM_EFFECTS. Actually, it’s not used in that many places, so I could probably write a plugin for additional types. Could be some time, though…
-
I’m just baffled by why my effect_types.ini isn’t being read. It has an entry in freelancer ini, no matter what changes i make in effect_types.ini, it has no effect in game for me.
I even ran an experiment and commented the file out in freelancer ini to see if it would have any effect. Game runs fine without it, and used the values from the exe file for those effect types. It even displays my custom effect from 50k away after i modified the exe earlier.
Only changes that seem to work for me are direct modifications on the exe file itself… strange
-
I’m starting to feel enlightened. I’m now of the opinion this is all down to which version of the exe ppl are using. I have the no cd version which i can guarantee reads the values in the exe file and uses those. It ignores the values in ithe effect types file, that’s a given. I was discussing this with Lancer and he had the same problem, especially after i removed that file and the game still ran happily. With the version 1.0 & standard 1.1 exe file, i’m sure values are recognised in the effects type ini, not the case with the no cd exe.
-
After searching for nocd and finding the GameCopyWorld site, my exe was the same as “Freelancer v1.0 [ENGLISH] No-CD/Fixed EXE”. Switching to “Freelancer v1.0 [MULTI] Unprotected EXE” also triggers the breakpoint from the ini. There goes that theory…
Would you be willing to try running a debugger? Go to OllyDbg and get version 2. Run it, open freelancer.exe, add -w to the arguments. After a bit, you’ll be paused at the entry point. Press Shift+Tab twice to get to the data pane and Ctrl+G to goto an address. Type in 612fdc to go to the “insane” pbubble max value. Right-click within the data pane and select Float->32-bit float, now it should show as 5000.000 (or whatever you’ve changed it to). Click it, right-click it, select Breakpoint->Hardware… and press OK - it’ll turn red. Now press F9 to run Freelancer and it shouldn’t be long before it stops at 004FD840, after reading it from effect_types.ini. Press F9 to continue and it shouldn’t stop again (until it actually needs it). (Unfortunately, starting up and loading games are a little slower through the debugger.)
-
Ah, that’s made it quite obvious. Either you’ve gotten a little carried away with editing and changed something you shouldn’t have, or whoever unprotected it got it slightly wrong. Here’s the relevant diff.
-005C8890 456666656374547970.. ASCIIZ "EffectType" +005C8890 036666656374547970.. ASCIIZ "\x03ffectType" ```So jump to file offset 0x1c8890, change 03 back to 45 and your effect_types.ini will be working again.
-
– 1.74f in common.dll, 0x13DFAC, 0x13DFDC - multiplier for fill_dist in CmnAsteroid::CAsteroidField::near_field calculation, increase this to make FL render asteroid fields from greater distances ~w0dk4 (~OutCast for 1.1 version of offset)
I was thrilled to discover this was found out. Unfortunately it doesn’t work
I could find the value at the offset mentioned, changed it, but still beyond 130K from a system’s center, asteroids are not rendered; only the billboards and dyniamic asteroids are there.
Does anybody actually know how to create a proper asteroid field beyond the 130K from the system center?
Thanks!
-
I’m sure I used it before and it worked.
-
FriendlyFire wrote:
I’m sure I used it before and it worked.Can you remember what value you replaced the 1.74 with?
I’ve tried 17.4, 9.99 and 0.174 (the last one after the first two failed, to see if it should be decreased instead of increased)
-
Moonhead wrote:
– 1.74f in common.dll, 0x13DFAC, 0x13DFDC - multiplier for fill_dist in CmnAsteroid::CAsteroidField::near_field calculation, increase this to make FL render asteroid fields from greater distances ~w0dk4 (~OutCast for 1.1 version of offset)
I was thrilled to discover this was found out. Unfortunately it doesn’t work
I could find the value at the offset mentioned, changed it, but still beyond 130K from a system’s center, asteroids are not rendered; only the billboards and dyniamic asteroids are there.
Does anybody actually know how to create a proper asteroid field beyond the 130K from the system center?
Thanks!
It does work. It’s in the FW:ToW mod right now. Maybe there’s something else you’re missing?
-
– 1.25f in freelancer.exe, 0x1C9804, 0x1C9804 = multiplier for distance at which brackets around non-targeted ships in space will appear (1.25 = ~3km, 37.5 = ~93km, etc)
I messed with this and encountered a side effect. It messes with the tractor beam effect, or at least did in my mod making it invisible. Soon as i reset the value, it was back to normal.
-
Sushi wrote:
It does work. It’s in the FW:ToW mod right now. Maybe there’s something else you’re missing?
I believe you people when you say it works! Just doesn’t do it for me, sofar.
I’ll look into it again, and maybe upload or link to a minimod regarding this. Or, if I fix it, let you know what I did wrong (might be useful for other people).