Please upgrade your browser for the best possible experience.

Chrome Firefox Internet Explorer
×

RAMDISK for SWTOR (increased performance)

STAR WARS: The Old Republic > English > General Discussion
RAMDISK for SWTOR (increased performance)

Ocmer_'s Avatar


Ocmer_
04.06.2012 , 06:22 PM | #1
Ramdisk certain gamefile to increase performance

If you had positive outcome using this method, please rate this post!
This thread is also available in French found here.

This thread is a continuation of a thread that was started by Lemon_King. He made the initial thread how to setup SWTOR with a ramdisk manually. Over time this evolved to written bachscripts and currently we have a complete program written in C# with a simple userinferface.

If you are interested in why we place certain gamefiles on the ramdisk or see a basic speedtest on a ramdisk look in this post where it is tried to explain the reason behind the increased performance. This includes less hitching, faster texture loading and even on some systems FPS increase depending on added files.

Does this violate the rules or can I get a ban? - no
Spoiler

Requirements
This solution is made for those that are running Windows Visa/7 64bit and have at least 6 GB ram available. Also the disk(s) where Windows and SWTOR are installed on need to have NTFS as filesystem.

Also the program we use to create a ramdisk is Imdisk. Imdisk is a small and lightweight ramdrisk program that can be accessed by both commandline or an API. As we have manual, batch or program methods this was a good choice.

Note; the at least 6GB ram requirement is good enough to use for adding the DiskCacheArena and local cache files on the ramdisk (adding fx asset file with it is also quite possible). Adding more asset files, will require more internal ram.

Available methods
Note; for a more in depth explanation of what the program or batch does to the SWTOR game file,
read the manual setup method as it will describe the basic thing.


What to place on the ramdisk
  • This biggest effect will be by placing the cache files on the ramdisk;
    • DiskCacheArena
    • Local cache
  • Start with the asset file that contains effects (most used asset);
    • swtor_main_art_fx.tor
Spoiler

Note; for those we add more, keep in mind that your Windows and SWTOR still need it's basic amount of memory,
so that you do not cap your internal ram with asset files. I would say keep about 4 to 4,5GB free for programs.


Additional improvements
Common errors
Spoiler

Manual recovery
Spoiler

Ocmer_'s Avatar


Ocmer_
04.06.2012 , 06:22 PM | #2
SWTOR Unleashed

A program to automate the setup and removal process to use this game (SWTOR) with an ramdisk. This includes creating a ramdrive, copying file and creating the needed links. You as user can select what files you want to have on the ramdrive, depending on your needs and maximal available ram.

Administrator rights
This progam requires administrator rights to run, thus for those that have UAC enabled will receive this warning to allow the program full acces. This is needed bacause the program needs to move, rename and delete files. On top of that it also needs to create a ramdrive and symbolic links.

Patching the game
In the current state, this program does not check and intercept patching of the game. In normal cases it should not be a big problem unless you selected asset files to place on the ramdrive. If the launcher needs to patch one of these asset files, it stops and returns an unable to patch error and will display a repair link. Do not press repair but simply close the launcher, open this program again and press play retail. This will remove the setup and the game is able to patch correctly. After that you can of course play unleashed again.

Passing arguments
This program accepts three different arguments that can control the program without showing an GUI.
You can create a shortcut to the program and give one of the arguments after the quoted path with a space.

For example the program is placed in; C:\SWTOR Unleashed v3.x\SWTOR Unleashed.exe
Thus the shortcut target will be; "C:\SWTOR Unleashed v3.x\SWTOR Unleashed.exe" argument

The three possible arguments are;
  • unleashed ; this will start SWTOR with a ramdisk setup
  • retail ; this will start SWTOR without a ramdisk setup
  • remove ; this will dismount and remove an active setup

Download
Download SWTOR Unleashed v3.0

Screenshots
Main Window - Window About - Window settings
Every window can be closed when pressing escape.

Creators
  • Ocmer_
    • Nozomi (Hidden Beks [EN])
    • Nadeko (Hidden Beks [EN])
  • Exca
    • Universe (Huntmaster [FR])
    • Exca (Huntmaster [FR])
  • Tilz (Huntmaster [FR])
  • Ugleez (Huntmaster [FR])

Changelog
Spoiler

Ocmer_'s Avatar


Ocmer_
04.06.2012 , 06:23 PM | #3
ALL-IN-ONE BATCH VERSION 4.0.0

This batscript will setup a ramdisk for the DiskCacheArena and local cache files. It is possible to add asset files but this require settings work in the script prior running it.

The mount script can be used to mount the ramdisk, create the necessary files and if given start the launcher, for this there is no input needed from you as user. The ALL-IN-ONE batchscript can do the same but then you have to select an menu item

Please be aware when using asset files on the ramdisk that the game can return an error when it wants to patch, remove the setup prior patching, and run the setup again after patching.

INSTRUCTIONS (PLEASE READ)

Spoiler


SCRIPT SETTINGS

Spoiler


ALL-IN-ONE v4.0.0
Please read the instructions and changing settings before using.
Always run as administrator, as I cannot guarantee correct exectution without.


Spoiler


MOUNTSCRIPT v4.0.0
To be used for the creating the ramdrive with asset files if needed (no interaction needed).
This can also be used as startup script for Windows if preferred.


Spoiler


CHANGELOG

Spoiler

Ocmer_'s Avatar


Ocmer_
04.06.2012 , 06:24 PM | #4
MANUAL

Ok so I write this post just for consistency and for those who are interested what the program or batchscrip now actually do. I start off right away and assume you have installed Imdisk by now, as I will use that to create the ramdisk. In this example it will be T:

This focuses on getting the big DiskCacheArena and the local cachefiles on the ramdisk, additional asset files are not described here but goes with the same method. The following commands may need to be filled in (will be yellow) and run them in cmd.exe run as administrator.

Creating a ramdisk

The following code will create a ramdisk T: that has a size of 1,5GB and is formatted as NTFS.
Code:
imdisk -a -s 1500M -m T: -p "/fs:ntfs /q /y"

Linking DiskCacheArena to the ramdisk

First you need to find the installation path of the game, once in the root folder navigate into the folder "swtor".
There should a file called "DiskCacheArena", delete that file.

Now run the following code the create a link (the game recreate this file hench the delete).
Code:
mklink "<SWTOR Install Location>\swtor\DiskCacheArena" "T:\DiskCacheArena"
Linking local cache to the ramdisk

Now this is a bit difficult as the two cache files are deleted and remade by the game itself, even during gameplay, we cannot link those as it will just delete the link files. Thus we put the whole 'SWTOR' folder that resides in your local appdata on the ramdisk, but this folder contains also your settings, and on a ramdisk everthing is lost on a reboot.

To link this folder to the ramdisk (so the cachefiles will be build on it) we have to linkback to the settings folder, so your ingame settings are not lost.

First we start of creating the required folder on the ramdisk with the following code.
Code:
mkdir T:\SWTOR\swtor
Then navigate to '%localappdata%' or 'C:\Users\username\AppData\Local' and rename the 'SWTOR' folder you see there to 'SWTOR_Original'. We create then a link for 'SWTOR' to the ramdisk.
Code:
mklink /J "%localappdata%\SWTOR" "T:\SWTOR\"
Now we have a link to the ramdisk, to link back to the settings that are now in 'SWTOR_Original' use the following code.
Code:
mklink /J "T:\SWTOR\swtor\settings" "%localappdata%\SWTOR_Original\swtor\settings"
After a reboot

Due to the nature the ramdisk still being ram, it will be wiped when a reboot has occurred. Therefore after each reboot you have to recreate the ramdisk and it's content.
Code:
imdisk -a -s 1500M -m T: -p "/fs:ntfs /q /y"
mkdir T:\SWTOR\swtor
mklink /J "T:\SWTOR\swtor\settings" "%localappdata%\SWTOR_Original\swtor\settings"
Asset files

The trick we do with the asset files, as they have to be static on your harddrive and copied to the ramdisk (not moved!), is rename them, create a link and let the program copy the renamed file to the ramdisk, and rename the renamed file on the ramdisk back to the original name.

Ocmer_'s Avatar


Ocmer_
04.06.2012 , 06:25 PM | #5
Ramdisk what and why

A ramdisk is actually a piece of your memory that you use as it was actually a disk. Now you probably can imagine that the read/write speed on these disk are way higher than even a SSD. The only downfall is that if you reboot, the disk is wiped.

The files we focus on to put on the ramdisk are;
  • DiskCacheArena
  • Local SWTOR cache
  • Asset files

Now I assume for this explanation that you have both Windows and SWTOR on the same disk. If the game needs data, it will pause the game untill the load it done (some call it hitching). What I have read around the forums it seems that the data loaded (read) from the asset files, streamed by the local cache files (read/write action) to the large DiskCacheArena (write). Once the data is cached in that file the game then uses it (read).

Now you can see if it were on the same disk, that are quite some read/write actions performed on different files! Hench we want to especially put the cache files on the ram.

Imdisk ramdisk speed test with CrystalDiskMark 3.0.1
Code:
-----------------------------------------------------------------------
CrystalDiskMark 3.0.1 x64 (C) 2007-2010 hiyohiyo
Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]

Sequential Read : 4090.674 MB/s
Sequential Write : 5472.913 MB/s
Random Read 512KB : 3984.519 MB/s
Random Write 512KB : 5289.138 MB/s
Random Read 4KB (QD=1) : 561.441 MB/s [137070.6 IOPS]
Random Write 4KB (QD=1) : 512.815 MB/s [125198.9 IOPS]
Random Read 4KB (QD=32) : 1343.460 MB/s [327993.2 IOPS]
Random Write 4KB (QD=32) : 1040.265 MB/s [253971.0 IOPS]

Test : 1000 MB [T: 13.0% (194.3/1500.0 MB)] (x5)
Date : 2012/02/18 19:53:42
OS : Windows 7 Ultimate Edition SP1 [6.1 Build 7601] (x64)

Jadolerr's Avatar


Jadolerr
04.06.2012 , 06:52 PM | #6
Awesome, Ill give it a shot.
Remember, the force will be with you, always...
[≈[(((((((((╚[◘◘◘◘◘◘◘◘◘◘◘◘◘◘◘◘◘◘◘◘◘◘◘◘◘◘◘◘>

DrillThrall's Avatar


DrillThrall
04.06.2012 , 08:10 PM | #7
Thank you!
Lenovo IdeaPad Y570 model 086228 (HDD/SSD Hybrid)
Intel Core I7-2630QM 2.0G, 8GB DDR3 1333 RAM
Nvidia Optimus GeForce GT 555M

Madwooki's Avatar


Madwooki
04.06.2012 , 08:11 PM | #8
If you have to do all this to play a game you probably should look for a new game.

Ocmer_'s Avatar


Ocmer_
04.06.2012 , 08:19 PM | #9
Quote: Originally Posted by Madwooki View Post
If you have to do all this to play a game you probably should look for a new game.
Well it is your own choice to use this or not.

I just started this after I came across this solution by Lemon_King on his thread, and I just went along and created the batchscript and eventually now the compiled program written in C#. These two practically does everthing for you, only you need to start the game with this else the ramdisk is not created with the required files.

This actually started more as a personal project, as I already was interested in programming, but decided to give you guys the easy way aswell with the methods.
SWTOR Unleashed a program to ramdisk certain game files!
Support me for a 24 hour ingame clock!
Support me for a "focus target (of target) frame".

Jeryko's Avatar


Jeryko
04.06.2012 , 08:50 PM | #10
Quote: Originally Posted by Madwooki View Post
If you have to do all this to play a game you probably should look for a new game.
Yet people with medium to high-end computers are having issues and seeing performance increases with this.

You don't want to use it? Don't.