Jump to content

Quarterly Producer Letter for Q2 2024 ×

[HOWTO - RAMDRIVE] Increasing SWTOR System Performance


Lemon_King

Recommended Posts

I upgraded the RAM in my machine from 6GB to 12GB and used the script. It worked great. I look forward to seeing your GUI where it becomes easier to choose which assets that we want to place on the RAM drive.

 

Where I noticed the most difference is in the fleet. Normally during peak server times, I get a black screen where just my UI is present, with this I no longer get that. I can't say for sure yet on planet loading times, but going to compare a little more.

 

Thanks a bunch!!!

Link to comment
Share on other sites

  • Replies 877
  • Created
  • Last Reply

Top Posters In This Topic

I might be off here, but it looks like it's moving the game's DiskCacheArena from the hard drive to a much faster RAM drive. What exactly and how much is being written to and read from that cache I couldn't tell you but, it should be much faster in RAM.

 

The only drawback I can see, assuming you have sufficient memory not to tax your system, is that the cache is being moved to volatile memory and disappears every time you reboot the computer. That means the cache will have to be restarted from scratch every time you play after a reboot, and that translates to longer load times early on in your game play session. If you play for hours on end, using that cache for longer periods, you'll probably see better performance the longer you play.

 

I'm going to at least skim all 78 pages of this post (*gasp*), but I saw this relatively early in and thought I should comment.

 

I've been using DataRAM's RAMdisk software, and it has a 'best of both worlds' solution for this - it can be set to automatically load and unload and windows start/shutdown, and save its current state to a file. This moves the 'recreation' delay to windows start time (might be noticeable) and windows shutdown time (when you're walking away from the computer anyway). But more importantly, it keeps the state of the drive.

 

For moving non-volatile files to a RAMdisk without having to rebuild your symlinks every time, it'd be nice. You could also keep separate harddisk files for each game you want to speed up, then just load the one for the game you're playing that day. Good utility.

 

Now, back to reading this (excellent) thread...

Link to comment
Share on other sites

I presume the saved settings and exported .xml files will be saved to the local SWTOR folder. But as I don't run the PTR I can't really tell yet. If there might be a fix needed ofc I will change the batchscript.

 

Oh, yeah it turned out to be pretty easy...

 

mklink "<SWTOR Install Location>\Star Wars - The Old Republic\publictest\DiskCacheArena" "T:\DiskCacheArena"

 

followed by adding to the batch...

 

mkdir T:\SWTOR\publictest

mklink /J "T:\SWTOR\publictest\settings" "<SWTOR Install Location>\publictest\settings"

Link to comment
Share on other sites

I'm going to at least skim all 78 pages of this post (*gasp*), but I saw this relatively early in and thought I should comment.

 

I've been using DataRAM's RAMdisk software, and it has a 'best of both worlds' solution for this - it can be set to automatically load and unload and windows start/shutdown, and save its current state to a file. This moves the 'recreation' delay to windows start time (might be noticeable) and windows shutdown time (when you're walking away from the computer anyway). But more importantly, it keeps the state of the drive.

 

For moving non-volatile files to a RAMdisk without having to rebuild your symlinks every time, it'd be nice. You could also keep separate harddisk files for each game you want to speed up, then just load the one for the game you're playing that day. Good utility.

 

Now, back to reading this (excellent) thread...

While you are right that those can save and load ramdrives at bootup, it is pointless in our case. The DiskCacheArena is cleared anyway, to load fresh data. The same happens to the two cache files on local. The settings folder we link back to a real disk so at boot no settings are lost, and the game just recreates the cache files.

 

Saving an images (without cache files) is recomended by me if you add allot of asset files to the ramdisk, so you can load (saved only once after setup) the complete image at once instead of copying files when mounting.

Link to comment
Share on other sites

Oh, yeah it turned out to be pretty easy...

 

mklink "<SWTOR Install Location>\Star Wars - The Old Republic\publictest\DiskCacheArena" "T:\DiskCacheArena"

 

followed by adding to the batch...

 

mkdir T:\SWTOR\publictest

mklink /J "T:\SWTOR\publictest\settings" "<SWTOR Install Location>\publictest\settings"

 

Tought so they put PTR stuff in a different folder than the real game. Seeing this I won't have to make changes to the batchscript once 1.2 goes live.

Link to comment
Share on other sites

While you are right that those can save and load ramdrives at bootup, it is pointless in our case. The DiskCacheArena is cleared anyway, to load fresh data. The same happens to the two cache files on local. The settings folder we link back to a real disk so at boot no settings are lost, and the game just recreates the cache files.

 

Saving an images (without cache files) is recomended by me if you add allot of asset files to the ramdisk, so you can load (saved only once after setup) the complete image at once instead of copying files when mounting.

 

Of course, I haven't had a chance to try this yet, but from my reading, it looked like you had to at least have the scheduler batch file recreate a symlink on the RAMdisk back to the harddrive. It also handles the scheduler work itself so you don't have to mess with it (at the expense of having an advert on their configuration dialog. Thought it might be a useful tool for folks less comfortable with a CLI.

 

It also runs sooner after startup, from what I've read, so you can do things like put your windows pagefile on a RAMdisk without the system complaining. Why not run 0 pagefile? Because I still run into games from time to time that simply won't run without a pagefile, even with 12G of RAM installed.

 

Edit: I obviously hadn't gotten to the parts of the thread with the All-In-One scripts. Very nice work, and should make this solution usable for those less familiar with their machine's guts. Also, in addition to the great script work and support, I'd like to thank the participants for mentioning FancyCache and its settings. I'd not heard of that before, and it seems like a great 'general' solution to the problems that usually need custom ramdisk solutions. I'm looking forward to playing with that.

Edited by atteSmythe
Link to comment
Share on other sites

@Ocmer

I'm unsure what your intent is with your C# app in terms of monetization.

 

If you are not planning on monetizing this, I and others would gladly contribute to the project if you were to host the source on github.

 

Also, github is an ideal place to host your batch file as it gives a consistent place for people to get the latest version, an easy way to see what has changed and a process for others to contribute changes to the file. I believe I've just defined source control systems in general, but you get the point.

Link to comment
Share on other sites

Hello Ocmer_

do you think you can setup a option in your GUI Tool, for Users with another Ramdrive?

Because, i use a Software Version, with load and Save Fuctions, and if i can choose in your tool, my Ramdrive and set up all Assets and so, without create a new Ramdrive with new link. Its fine for me. :)

Link to comment
Share on other sites

Hello Ocmer_

do you think you can setup a option in your GUI Tool, for Users with another Ramdrive?

Because, i use a Software Version, with load and Save Fuctions, and if i can choose in your tool, my Ramdrive and set up all Assets and so, without create a new Ramdrive with new link. Its fine for me. :)

 

This is something I tought about it aswell, but would complicate things first. The reason is the mklink in command only accepts the links when the target is available (this is for folders, not files) thus meaning a ramdisk has to be mounted before hand.

 

I'll verify if I can create a folder junction where the target is not present, by calling the system32.dll directly (as that has to be used to create a junction). If this is possible or not I was thinking anyway to separate the setup/remove and mount program, but thell still need info in a form of a .ini file which I implented.

 

For now, I'll try to quickly to update the batchfile with the suggestion of 'exca' and code example of 'Morsk' to let asset files loop by given variables. Meaning this opens the door to include just the files the user wants. Doing so I'll try to add ure suggestion aswell, which only impacts not creating ramdrive before hand, and asking a y/n question if an ramdrive is created before hand.

Link to comment
Share on other sites

Changed the ALL-IN-ONE batchfile to version 4.0.0

This has code reduction and the ability to add the asset files you, as the user, wants!

Be warned now, to use this new version, first remove the setup with the current version you have, and then you are good to go. This will now always be needed before you make changes, as I cannot keep track if an users changes asset files between two continuous setup runs.

 

Changelog batchscript

  • v4.0.0 // 2012-03-21;
    • Reduced code quite a bit by use of call functions (thnx 'Morsk').
    • Ability to add only the asset files you want, not fixed in code anymore (thnx 'exca').
    • Ability to autostart the launcher after mounting.
    • Ability to skip the Imdisk parts, for use with another program (thnx 'Black-Mage').

 

Further note on C# program

Planning to apply the same as batchscript v4.0.0 and up, to first remove the setup before making changes. The added asset files (and other settings) will be saved to an .ini file. This file will be read in if it exists and lock the setup button until the setup is first removed. Only then the user can make new changes.

 

Also the .ini file can be used by a smaller program (no GUI) that can only mount the ramdrive, and can then be used as program during Windows startup. Maybe I'll seperate the setup/remove and mount completely in two programs.

Edited by Ocmer_
Link to comment
Share on other sites

hum i test only all in one, and i see 0 changement in PvP.

 

but my card work only less to 50%....

 

in out to pvp BG, i play with 110 fps.

 

i7 ati 5850

6Go ddr3

 

seven 64 bit familial.

 

 

bf3 60 fps all time

 

skyrime 50 fps all time

 

tera 60 fps all time ( tera is best MMO graphic actual )

 

all other game its *********** good.

 

where is the problem in PVP swtor ****

Edited by snowgar
Link to comment
Share on other sites

Small update on c# program;

 

Managed to save and load settings to/from and xml file (thnx to exca).

 

At startup the program checks if this file exists and if it does it locks up all elements except the remove button. This will prevent people to make changes while an setup is already active. It can find installpath and local path automatically again by register. Calculates the ramsize needed automatically (Arena and local are hardcoded). Changing the ramdrive letter is still possible (need to build in a check for it tough).

 

Also ran a first test with the creation of the setup, selected asset files are being linked nicely now thus that works. It was able to create symlinks with no ramdisk present thus meaning it won't have to mount one to setup.

 

@Black-Mage this is then something for you, as you can setup the whole thing without even having to mount one yet. After that you can copy the assets to a ramdrisk with a program of your chooice.

 

The only thing that I noticed was when going into command and list a dir;

the mklink of files showed <symlink> and of my program aswell <symlink> but

the mklink of dirs showed <junction> and of my program showed <symlinkd>.

Now I don't know the difference at this point, I don't gonna focus on that yet as I ran SWTOR perfectly with it aswell.

 

Now TODO is create the remove part of the script, create a logo, check if the program needs administrator rights, add ramdiskmount option (can be serparate). Ability to autostart the launcher after mounting. Oh and I need to check what .net version at least is required to run this program.

Edited by Ocmer_
Link to comment
Share on other sites

IT didn't do either of that as well. Load times are still low, and I still get spikes.

 

Decrease, not eliminate. The only way to eliminate the media access spikes would be to fit ALL the data files on a RAM disk. This is intended to move the ones:

a) Most frequently accessed regardless of content played

b) Actually written to (which can be slower than reading on some media)

 

Personally, it seems to have decreased my load times by about 1/3. Where the loading bar used to be a slow, painful crawl all the way across, it's now slow and painful for the first and last third, and almost instant across the middle.

 

There may be other bottlenecks on other systems. This is a solution to only one specific problem.

Link to comment
Share on other sites

Hey guys....

I did everything to improve Frames but in BG's its just not working...

I did the Ram thing and yes it improved, but frames still go down in bg-fights to about 25FPS...

I installed the lates drivers, installed DX9, tryied every grafik setting from very High to very low (with settings lowed in cfg files) but they are at 25fps in BG's all the time..

the odd thing is that it doesnt matter if grafik-settings are high or low..

 

My System:

 

AMD FX-8120

Nvidia GTX 570

12GIG Kinston-Hyper-X ram

 

well i supose my system is more than enough for this game but well it isnt working as it should..

you guys are my last hope, maybe u have an idea that could help...

Link to comment
Share on other sites

Hey guys....

I did everything to improve Frames but in BG's its just not working...

I did the Ram thing and yes it improved, but frames still go down in bg-fights to about 25FPS...

I installed the lates drivers, installed DX9, tryied every grafik setting from very High to very low (with settings lowed in cfg files) but they are at 25fps in BG's all the time..

the odd thing is that it doesnt matter if grafik-settings are high or low..

 

My System:

 

AMD FX-8120

Nvidia GTX 570

12GIG Kinston-Hyper-X ram

 

well i supose my system is more than enough for this game but well it isnt working as it should..

you guys are my last hope, maybe u have an idea that could help...

 

In all honesty, if the lowest FPS your seeing is 25, count yourself lucky. 60 would be ideal of course, 30 is acceptable, anything over 20 is close enough(in my opinion) considering the not so optimized engine.

Edited by Aesten
Link to comment
Share on other sites

C# program update;

 

setup and remove works, my next problem is the formatting of a disk.

I can create a ramdisk using Imdisk's libraries but I does not have an auto format (or I missed it badly).

 

At setup I can create a batchscript, equavalent on the given settings, and you guys can use that to mount the ramdrive. Removing the setup will then also remove the batchscript.

 

Also I'm worried I have to request elavated permissions (thus UAC can pop in) to mess (rename/move/delete) with local files.

 

Anyway I think I can make it like this for the moment and you guys can use it untill I or someone else comes with a solution to internally format a given disk with any popups or user interaction.

Link to comment
Share on other sites

Batty, I have an SSD and even with it you'll still get the performance drops.

 

I run the game on a laptop with a regular 500GB 7200RPM hard drive and I don't get any noticeable performance drops, ever.

 

 

 

I game on a laptop because I travel frequently for work.

Link to comment
Share on other sites

Dear Ocmer, thanks a lot for the script. I'd just like you to clarify one thing, because of all the new warnings I get from script...

 

I copied new 4.0.0. ramdrive setup script, but wasn't careful to remove old setup (I did restart computer before running new script, but didn't run remove setup with old script).

 

Is this ok, if not, where can I get old script to remove old setup first?

Link to comment
Share on other sites

Dear Ocmer, thanks a lot for the script. I'd just like you to clarify one thing, because of all the new warnings I get from script...

 

I copied new 4.0.0. ramdrive setup script, but wasn't careful to remove old setup (I did restart computer before running new script, but didn't run remove setup with old script).

 

Is this ok, if not, where can I get old script to remove old setup first?

 

It should be fine if you ran the script with at least the same asset files you used to setup with script 3.1.3 or less. (this can be either fx asset, dynamic assets or both). Adding more should have no impact either.

 

The problem comes when people setup the assets with 3.1.3 and then decided to not include them in 4.0.0 thus they stay linked, but not copied to the ramdrive.

Edited by Ocmer_
Link to comment
Share on other sites


×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.