Monday, April 16, 2012

[REL FA] Remove the automatic Sim-Speed regulator.

This was posted earlier but was removed because _Remmy_ feared it would give some players an advantage in competitive matches online. However further testing reveals that GPGNET actually will not let you play ANY type of game if it detects the EXE has been modified. And as it was his only objection and he posted saying he was going away for a month I decided it was safe to re-post.



So without further delay...



In a nutshell this is what this patch does:



Disables SupCom:FA's automatic game speed adjuster. This allows you to run the game at any speed you want reguardless of what the game "thinks" your computer is capable of.



Yes thats right, if you load up an mid to late game, saved game and with ren_shownetworkstats it says the game is running at -4. With this patch you can actually override that -4 and run the game at +10 if you want too.



Now don't get too excited, it's not a miracle worker. If you look at the DATA number on ren_shownetworkstats once this goes over 0 there starts to be stutters and responsiveness issues. However on my single core rig once the game sets my speed to -2 I can set it at 0 and see only slight stuttering that I can't even notice most of the time. The data field is kinda like a list of tasks your proccessor has yet to get too. The more that stack up the more problems your going to see.



Just keep in mind that the games ability to speed up and slow down the game on it's own are now gone. If you send your 100 restorers over to some poor saps base you will likely be watching a slideshow till you manually adjust the game speed as the game cannot do it for you anymore.



Remember! once you patch you will not be able to play online until you restore the backup ForgedAlliance.exe that you or the patch program made!



To use, just extract this to where ForgedAlliance.exe is. Make a backup of ForgedAlliance.exe and then double click My Speed.exe and click patch.



This patch was made in a way that it should be able to patch any current or future version of FA. However it was only tested on the boxed DVD version running 3599 and 3603 beta. If you got the game through steam or something it may not work. But give it a shot and see, it may not find anything to patch, it may totally screw up the exe, or it might work perfectly. Just be sure to make a backup of ForgedAlliance.exe before running. If it fails for whatever reason I'll need a copy of the exe and I'll see if I can patch that version.



Once to the main menu start a new skirmish game (or load an saved one that had "game speed" set to adjustable) and be sure that the "game speed" map option is set to adjustable. Once in game use the keypad + or - to adjust the game speed as you see fit. This works for campaigns and old saved games too. Use the console command ("~" once in game) "ren_shownetworkstats" to better see what kind of load your computer has currently. once you play a few times you really won't need this open. But if you look at the max speed number there that is what the game speed would be if the desired speed was higher or the same than it is.



http://sites.google.com/site/ouchsdownl ... edirects=0



Enjoy! Oh, and be sure to let me know how it works for you.|||Thx cool stuff.



You proved all the people wrong who said it was impossible to make something like this.



Just tried it on win 7 and it works fine.|||the question still remains; what happens when you've got it installed, and i don't?



does your SupCom magically run ahead of time, and know what my orders are before I know what my orders are?|||BulletMagnet|||In theory, it should work in LAN/IP though, right? At least if both people have it?|||well in theory yes... But I think the desync stability would rely on the person with the worst computer to lower the speed to the point very little data is waiting to be processed. (like below 10 for sure)



So yeah, it should work but it would be hard to handle given a mass of units might be colideing across the map that that particular player couldn't see.



But a lower ping might allow for higher amounts of that data number. So haveing a lan party with friends might mean you could agressively raise the speed as if you were playing against the ai.



But it would be better to just let the game handle it and not use the patch for multiplayer over the internet I think. I supect LAN games might be different though.



but hey give a shot and let everyone know. :)|||Mooilo|||I think it will work in multiplayer games, just start to stutter, when someones comp cant simulate all the stuff in time and others have to wait for results.



And again this game is a simulation so nobodys game can be faster than another persons game....|||Yeah okay, I deleted the old topic assuming it would cause people to be able to speed up/kick people in ranked games, now I see that is not the case, great work !|||I would like to provide an option that would make the game less harsh when decideing what speed to run at.



What I need to know is what the max speed says, and what speed you actually run on with this patch applied late game.



Also post what processor you have and what the game settings were. (specifically the number of ai players, ai mod, and unit limit.)|||I'd love to know how you made it.|||DeadMG|||i suspect it involves short circuiting the instructions that watch how long it takes the game to process an entire sim-tick and instead forcing that to run at a set rate.



how hard would it be to look at a binary blob and find instruction call to the Windows threading API? if you found that, then you'd likely find the code nearby or jumping to that location.|||well I use Tsearch, OllyDbg, HxD, and diablo2oo2's Universal Patcher. [dup2] (all free :) )



You ever hear of a game trainer? that's all I really did here.



I used ren_shownetwork stats to see the current game speed.



Used tsearch to find where the current speed was stored in memory.



Used tsearch to test out various hacks and code injections in memory.



Used a OllyDbg to write and test the physical exe alterations.



Used dup2 to create a user friendly patch that even a moron could use and not screw things up.



used hxd to double check that the patch wrote in the exact spot and no where else.



and thats it really.



As far as to what the patch does, all it does is removes the function that allows FA to write the results of it's auto-regulation algorithm to that memory spot owned by the current speed variable displayed by ren_shownetwork.



I tried altering the algorithm to some degree with code injection but ultimately I went with the define your own speed method. (which only required editing 6 bytes btw...)



I would like to make changes to the algorithm so the game still has some control over things but I don't know how much this improves the speed on something like a quad core. So I might set it to be too harsh or not harsh enough. And that's why I wanted peoples input on how much better the game is for them on thier system.



But it really doesn't look like people care that much about it so I think I'm just going to leave things as is.



I don't know, I set out to fix a problem, and fixed it. So I'm happy with it, to hell with everyone else. :)|||At first I was doubtful. What can forcing the speed higher do, when the sim is already overburdened and forced to slow down? I ran the file, and tried the the first mission of the campaign. I was pleasantly surprised. Built a wave of 12 soul rippers, and did +10 speed carnage all the way to the end. I'll have to do some more testing, but is it possible that some of Supcom's slowdown issues are related to overzealous throttling?



Currently running a core i7.|||Bobucles|||I tried looking, but couldn't see much difference between +5 to +10 speed during the mayhem. The only stuttering I witnessed was purely graphical from too many effects on the screen. The units went pewpew, and the bases went boomboom without any problem. I don't know how much your changes are related, I'll swap the exes around later to check.



Supcom assumes every computer scores a 1000 on the simulation speed test. Is this somehow connected to the throttling issues?|||Just got around to doing a nice AI skirmish. 1 sorian, 1 cheating sorian, 500 units each.



The whole game seemed to run quite a bit faster. Normally, my game likes to gradually creep down to -10 speed and then stay there, even after everything dies. With the regulator, there seemed to be a big improvement in game speed as the map was getting cleared up. I had to turn the game speed down deliberately, as it was running too fast for my rusty skills!



I had one issue though. Just as the map finished, I think I ran out of RAM. The error log says "particle cap reached, discarding" or something like that, and the game was very high in memory usage. I don't have the 3GB mode enabled, so that probably did it in.



Overall I was quite pleased. If you're a doubter, it's definitely worth a try. It'd be great to see if anyone else notices a boost, so I can be sure it isn't all in my head.|||Bobucles|||Bobucles|||Just a question since I'm getting around to using this tool, what would happen if I were to go online without restoring the backup? Would I get banned by GPGnet immediately or just desync in every game I play?|||won't be banned, but GPGNet will detect that it's a corrupt executable, and will push back to chat-only mode.|||Okay, thanks!|||Testing it right now, if I want the game to maintain its speed as if it were always at +0, do I just leave it untouched? Because right now I'm encountering stuttering (to be expected), maxspeed says -4 but when I bring it to +10 it doesn't feel like a +10 at the start of the game.|||You can't make your processor run faster. If your maxsp is -4, you can't make it run at +10.

No comments:

Post a Comment