Jump to content

[HOWTO - RAMDRIVE] Increasing SWTOR System Performance


Lemon_King

Recommended Posts

I run SWTOR on an Alienware M11x with i7, 335m GF, 8gb ram and am trying to follow your guide to set up a ram drive as I have FPS issues in WZs and Fleet. Apparently I'm not as computer savvy as I thought and am having trouble. I downloaded ImDisk - first of all what exactly do I put into the ImDisk program to create the appropriate drive (I'm not familiar with the code - do I just copy/paste that into Run.exe? Do I 'mount' drive T with 1500 Mb before beginning the rest of the process?)

 

You have to execute all code in cmd (winlogo+R, type cmd, press ok), this includes the creation of the ramdisk and all other 'code' steps described by Lemon_King.

 

I followed your instructions without setting anything up on ImDisk first and when I got to the last step of 'Creating Folder Junctions' I received messages after each line of code I pasted in:

 

'make sure all required file system drivers are loaded and volume is not corrupted', 'local volumes are required to complete the operation', 'volume does not contain a recognized file system'.

 

This error you get probs because a ramdisk was not created yet (or better your computer does not know T:) so the linking steps can fail, because it has no valid target.

 

I feel a bit out of my league here and would appreciate any help. Thanks in advance.

 

If you have much trouble you can always use the aLL-IN-ONE batchscript I made, that does all the steps Lemon_King discribed. This can also mount, dismount and remove the setup. http://www.swtor.com/community/showpost.php?p=2892331

Link to comment
Share on other sites

  • Replies 877
  • Created
  • Last Reply

Top Posters In This Topic

Ok, I tried this...

 

imdisk -a -s 1500M -f \\.\awealloc -m T: -p "/fs:ntfs /q /y"

 

One thing that has to change "-f \\.\awealloc" command should look like this "-f awealloc" in the original form, it says it can't find awealloc but in second form for it can....

 

Cool, I'll check it out if I can do something with it in my scrip for non 64bit users.

Link to comment
Share on other sites

I achieve pretty satisfactory results with Fancycache since I only have 6GB I found that settup up a ramdrive isn't worth the effort. (2GB is the most you can spare really if using a ramdrive).

 

Initial loading of specific assets still result in some light stuttering (logically) but basically with the LRU algoritm the Data which is loaded by the game is just being kept in memory when its loaded until the 2GB (this is my cachesize) is full. Then it starts overwriting the least recently used data and start all over again. For most worlds its more then sufficient even when explored the whole map, most of the data is still retained in cache.

 

Read hit rate when running the game for a while is around 50-60% which is pretty high imo. (starting from 2/3% before running the game)

 

I also use 'Read-only cache' strategy and 4KB block size since this yields the best performance in my case.

Link to comment
Share on other sites

Uh oh, what did I do wrong here...?

 

I did all the steps listed on the original post, restarted, opened ImDisk and ran my batch file. It opened up with the opening Bioware graphic which I haven't seen since I first installed the game, then went to a black screen and froze. An error popped up in the background that I saw when I ctrl+alt+del out that said 'SpecNodeCache unavailable for writing'.

 

Should I reinstall the whole game?

Link to comment
Share on other sites

I appreciate all the work you've guys done to try to fix this issue. Upon trying to setup a ramdisk myself I ran into some issues. First, I only have 4gb of ram so I decided to try what I've read around about creating a 200mb ramdisk.

 

When I tried this, I always receive an error upon starting the game stating it requires 2gb of free space (which I of course have).

 

Upon trying to set the ramdisk to 1.5g I obviously ran into issues with capping out my RAM and my game randomly crashed.

 

I am going to try setting it to 1g to see if it will even run the game, but I'm hoping someone could shed some light on the issues I'm having and if possible how to completely remove the ramdisk and be able to start the game like normal. (I have used the manual methods for removing junctions as well as used the batch script to remove to no avail.)

Link to comment
Share on other sites

I achieve pretty satisfactory results with Fancycache since I only have 6GB I found that settup up a ramdrive isn't worth the effort. (2GB is the most you can spare really if using a ramdrive). performance in my case.

 

In my case, Fancycache didn't seem to make a difference; I was already running on an SSD and the all-in-one batch ramdrive, though.

Link to comment
Share on other sites

I appreciate all the work you've guys done to try to fix this issue. Upon trying to setup a ramdisk myself I ran into some issues. First, I only have 4gb of ram so I decided to try what I've read around about creating a 200mb ramdisk.

 

When I tried this, I always receive an error upon starting the game stating it requires 2gb of free space (which I of course have).

 

Upon trying to set the ramdisk to 1.5g I obviously ran into issues with capping out my RAM and my game randomly crashed.

 

I am going to try setting it to 1g to see if it will even run the game, but I'm hoping someone could shed some light on the issues I'm having and if possible how to completely remove the ramdisk and be able to start the game like normal. (I have used the manual methods for removing junctions as well as used the batch script to remove to no avail.)

 

The files DiskCacheStatic / DiskCacheStream are already taking more then 500 MB RAM, so 200 MB already to small and I am not surprised the game says u don't have enough space (while u don't have it in the RAMDRIVE)

 

If u are planing to RAMDRIVE with 4GB I suggest to the only following changes different then the original solution.....

imdisk -a -s 600M -m T: -p "/fs:ntfs /q /y"

mkdir T:\SWTOR\swtor

mklink /J "%userprofile%\AppData\Local\SWTOR" "T:\SWTOR\"

mklink /J "T:\SWTOR\swtor\settings" "<SWTOR Install Location>\Star Wars - The Old Republic\SWTOR\retailclient\settings"

 

Which pratically don't do anything about DiskCacheArena which is already 1GB big so u can't pratically cache it with 4GB memory but only takes DiskCacheStatic / DiskCacheStream to RAMDRIVE...

 

If u have 32bit system (XP, Vista), I advice use the following command in RAMDISK creation, it will let u use the operation system invisible memory for the ramdrive....

 

imdisk -a -s 600M -f awealloc -m T: -p "/fs:ntfs /q /y"

 

U can further follow the tips in this post

 

http://www.swtor.com/community/showpost.php?p=3023091

Edited by floriwie
Link to comment
Share on other sites

I got a 120SSD agility 3 so will this help or not really?

 

A RAMDRIVE is still 100 times faster then a SSD and SSD are really good reading information about it but no so writing information on it....

 

This 3 files "DiskCacheStatic / DiskCacheStream / DiskCacheArena" are constantly reading and writing data....and so much writing action is not good for SSDs, the drive will die much quicker.....

Link to comment
Share on other sites

Don't get me wrong, its totally awesome that you came up with this work around for

FPS drop and such, but to put it simply most of us aren't that computer literate.

 

I think Ill just wait for them to fix their crap engine. Its not the consumers job to come up with work around's, its the Publisher/developers problem to fix there non working product.

 

that is all.

Edited by Papa_Shadow
Link to comment
Share on other sites

I think Ill just wait for them to fix their crap engine. Its not the consumers job to come up with work around's, its the Publisher/developers problem to fix there non working product.

 

Have they even acknowledged it as a problem yet?

Link to comment
Share on other sites

Don't get me wrong, its totally awesome that you came up with this work around for

FPS drop and such, but to put it simply most of us aren't that computer literate.

 

I think Ill just wait for them to fix their crap engine. Its not the consumers job to come up with work around's, its the Publisher/developers problem to fix there non working product.

 

that is all.

 

Nobody has to use the tips here....

 

SWTOR is really interesting game and some people were about the quit the game because of the FPS problems (my game experience was also horrible before this tip)....

 

I think the reason to leave this game should not be that there is FPS problem but u don't like the mechanics, or story, or something...but not a FPS problem that u get with a top end PC.....

 

So if u are one of them looking for one last resort, give it a try.....

Link to comment
Share on other sites

Have they even acknowledged it as a problem yet?

 

Clearly...Yes its a problem.

 

As most the player's I see posting on these boards run more than adequate system's, far beyond the minimum spec and still suffer issue's....Yet are able to run COD /Crysis, WOW, LOTRO and many other games on max setting's with no issue's what so ever.

 

To the OP...Stand up Job for your effort in figuring this out, pity Bioware didn't do the same.

Link to comment
Share on other sites

Clearly...Yes its a problem.
If they have not acknowledged it as a problem, then it isn't a problem (according to them) and so they shall devote no effort towards fixing it.

 

What we think is irrelevant except as it affects our willingness to continue subscribing.

Link to comment
Share on other sites

The files DiskCacheStatic / DiskCacheStream are already taking more then 500 MB RAM, so 200 MB already to small and I am not surprised the game says u don't have enough space (while u don't have it in the RAMDRIVE)

 

I'm playing for almost 2 months with a ramdisk of 1.5GB with all cache files and the asset fx file on it. Never had any problems while playing or random crashes.

 

The only time I get an error is saying I don't have 2GB space free but that is because I forgot to mount the ramdisk, so of course the game cannot create files on it.

Link to comment
Share on other sites

I got a 120SSD agility 3 so will this help or not really?

 

I got the same SSD and even I noticed improvement.

 

I did speedtest with the Imdisk ramdisk few days back:

Hmm was actually curious about the read/write speed of a ramdisk.

I used default (non OC'd) memory speed (think it around 1000MHz) with Imdisk.

 

-----------------------------------------------------------------------

CrystalDiskMark 3.0.1 x64 © 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)

Link to comment
Share on other sites

Uh oh, what did I do wrong here...?

 

I did all the steps listed on the original post, restarted, opened ImDisk and ran my batch file. It opened up with the opening Bioware graphic which I haven't seen since I first installed the game, then went to a black screen and froze. An error popped up in the background that I saw when I ctrl+alt+del out that said 'SpecNodeCache unavailable for writing'.

 

Should I reinstall the whole game?

 

What did you actually do now? Did you used your own batch file?

Seeing cinamatic again means lost of settings and the other message I've never seen or being reported here.

Link to comment
Share on other sites

If i have to do this **** that i don't understand *** im doing then im going to just cancel my sub.

 

Screw you bioware.

 

dont let the door hit you on the way out.

 

If you really have the specs in your sig you should not have these kind of problems.

Maybe someone else bought you the stuff and you just have no clue how to use it

properly?

 

If executing a batch is beyond your capabilities then i would guess you probably

will not go far in this game either.

Link to comment
Share on other sites

After seeing all of this yesterday, I got pretty interested. Been seeing some great performance increases, particularly since I have 16GB of RAM and can put essentially everything that's been mentioned so far onto a ramdisk(I'm using 6GB, but 5GB would probably work - I just wanted the extra gig just in case). To that end, I went ahead and modified Ocmer_'s all-in-one batch file so that it has an option to include the dynamic character asset files, as well. Ocmer_, I stuck to your general style, and didn't change anything other than what I added. Here's the new code:

 

@echo off
:: ----------------------------------------------------------------------------------
:: USER SETTINGS [ set <name>=<variable>  ; Do not add spaces!! ]
:: ----------------------------------------------------------------------------------

:: Give the diskletter you want to use as ramdsik
:: Give a letter followed by a colon (T: by default)
set RamDrive=T:

:: Give the ramdisk size, [interger+suffix] M for MegaByte or G for GigaByte 
:: Increase size of the ramdisk if you want to add more asset files.
:: If AddDynamicAssetFiles and AddFxFile are set to yes, 6G is recommended.
:: Default is 1500M (1.5GB) this can hold the cache and fx asset file.
set RamSize=6G

:: Declare if you want to include any asset files onto the ramdisk
:: This has to be reflected in the mountscript aswell. Use yes or no (no by default) 
:: WARNING: if set to yes, you might get an error while patching SWTOR if so
:: to continue the patch remove the ramdisk setup, patch the game, reapply ramdisk
set AddFxFile=yes

:: Declare if you want to include the dynamic character asset files.
:: It works similarly to AddFxFile.
set AddDynamicAssetFiles=yes

:: ----------------------------------------------------------------------------------
:: GET INSTALLPATH AND LOCALPATH
:: ----------------------------------------------------------------------------------
for /F "skip=2 tokens=3,*" %%i in ('reg query "HKEY_LOCAL_MACHINE\software\wow6432node\bioware\star wars-the old republic" /v "Install Dir" 2^>nul') do set InstallPath=%%j
for /F "skip=2 tokens=3,*" %%i in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Local AppData" 2^>nul') do set AppLocal=%%j
if not defined InstallPath goto ErrorPathFinding
if not defined AppLocal goto ErrorPathFinding

:: ----------------------------------------------------------------------------------
:: MENU
:: ----------------------------------------------------------------------------------
cls
echo  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo  º                                                                            º
echo  º          RAMDISK SETUP OR REMOVAL FOR STAR WARS THE OLD REPUBLIC           º
echo  º                                                                            º
echo  º                Created by: Ocmer_   Forumthread: Lemon_King                º
echo  º                           Updated by: Kaouthakis                           º
echo  º                                                                            º
echo  ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo Script Settings:
echo     - Ramdisk driveletter:  %RamDrive%
echo     - Ramdisk size:         %RamSize%
echo     - Include Fx asset:     %AddFxFile% (if yes, warning with patching applies)
echo     - Include Character:    %AddDynamicAssetFiles% (warning: needs 6GB ramdisk)
echo.
echo Menu:
echo     [s] Setup and prepare SWTOR for a ramdisk.
echo     [R] Remove the ramdisk setup for SWTOR.
echo     [M] Mount a ramdrive for SWTOR (separate smaller script available!)
echo     [D] Dismount the ramdrive to free memory (Mount again if you want to play)
echo     [Q] Quit this script.
echo.
choice /c:srmdq /n /m "Press one of the menu items:"
if errorlevel 5 goto EOF
if errorlevel 4 goto DISMOUNT
if errorlevel 3 goto MOUNT
if errorlevel 2 goto REMOVE
if errorlevel 1 goto SETUP

:: ----------------------------------------------------------------------------------
:: SETUP RAMDISK
:: ----------------------------------------------------------------------------------
:SETUP
cls

:: Start off with dismounting the ramdrive if it exist, and remount it
:: This is also needed if people decide to change the size and add asset files
if exist %RamDrive% imdisk -D -m %RamDrive%
imdisk -a -s %RamSize% -m %RamDrive% -p "/v:SWTOR_RAM /fs:ntfs /q /y"
mkdir "%RamDrive%\SWTOR\swtor"

:: Check if local SWTOR is a junction already
for %%F in ("%applocal%\SWTOR") do set ATTRIBS=%%~aF
if %ATTRIBS:~8,1% == l goto SkipBackup

:: Remove old backup and rename original current SWTOR folder
if exist "%AppLocal%\SWTOR_Original" rmdir "%AppLocal%\SWTOR_Original" /S /Q
ren "%applocal%\SWTOR" SWTOR_Original

:SkipBackup
:: If for some reason SWTOR_Original does not exist on this point, recreate it
:: Tho settings will be lost now if this line has to be executed!
if not exist "%AppLocal%\SWTOR_Original" mkdir "%AppLocal%\SWTOR_Original\swtor\settings"

:: Create local SWTOR junction to the SWTOR folder on the ramdisk
if exist "%AppLocal%\SWTOR" rmdir "%AppLocal%\SWTOR" /S /Q
mklink /J "%AppLocal%\SWTOR" "%RamDrive%\SWTOR"

:: Create settings junction to SWTOR_Original in local
mklink /J "%RamDrive%\SWTOR\swtor\settings" "%AppLocal%\SWTOR_Original\swtor\settings"

:: Create DiskCacheArena junction to the ramdrive
if exist "%InstallPath%\swtor\DiskCacheArena" del "%InstallPath%\swtor\DiskCacheArena"
mklink "%InstallPath%\swtor\DiskCacheArena" "%ramdrive%\DiskCacheArena"

:: Check if user wants to have the fx asset file to be included
if %AddFxFile% == yes goto AddAssetFiles

:: Check if the fx asset file is a link or not (if so repair is needed)
for %%F in ("%InstallPath%\Assets\swtor_main_art_fx_1.tor") do set ATTRIBS=%%~aF
if %ATTRIBS:~8,1% == l (
 if not exist "%InstallPath%\Assets\swtor_main_art_fx_1_ORIG.tor" goto ErrorAssetFx
 del "%InstallPath%\Assets\swtor_main_art_fx_1.tor"
 ren "%InstallPath%\Assets\swtor_main_art_fx_1_ORIG.tor" swtor_main_art_fx_1.tor
) else (
 if exist "%InstallPath%\Assets\swtor_main_art_fx_1_ORIG.tor" del "%InstallPath%\Assets\swtor_main_art_fx_1_ORIG.tor"
)

:: Check if other asset files are linked
for %%F in ("%InstallPath%\Assets\swtor_main_art_dynamic_cape_1.tor") do set ATTRIBS=%%~aF
if %ATTRIBS:~8,1% == l (
 if not exist "%InstallPath%\Assets\swtor_main_art_dynamic_cape_1_ORIG.tor" goto ErrorAssetCape
 del "%InstallPath%\Assets\swtor_main_art_dynamic_cape_1.tor"
 ren "%InstallPath%\Assets\swtor_main_art_dynamic_cape_1_ORIG.tor" swtor_main_art_dynamic_cape_1.tor
) else (
 if exist "%InstallPath%\Assets\swtor_main_art_dynamic_cape_1_ORIG.tor" del "%InstallPath%\Assets\swtor_main_art_dynamic_cape_1_ORIG.tor"
)

for %%F in ("%InstallPath%\Assets\swtor_main_art_dynamic_chest_1.tor") do set ATTRIBS=%%~aF
if %ATTRIBS:~8,1% == l (
 if not exist "%InstallPath%\Assets\swtor_main_art_dynamic_chest_1_ORIG.tor" goto ErrorAssetChest
 del "%InstallPath%\Assets\swtor_main_art_dynamic_chest_1.tor"
 ren "%InstallPath%\Assets\swtor_main_art_dynamic_chest_1_ORIG.tor" swtor_main_art_dynamic_chest_1.tor
) else (
 if exist "%InstallPath%\Assets\swtor_main_art_dynamic_chest_1_ORIG.tor" del "%InstallPath%\Assets\swtor_main_art_dynamic_chest_1_ORIG.tor"
)

for %%F in ("%InstallPath%\Assets\swtor_main_art_dynamic_chest_tight_1.tor") do set ATTRIBS=%%~aF
if %ATTRIBS:~8,1% == l (
 if not exist "%InstallPath%\Assets\swtor_main_art_dynamic_chest_tight_1_ORIG.tor" goto ErrorAssetChestTight
 del "%InstallPath%\Assets\swtor_main_art_dynamic_chest_tight_1.tor"
 ren "%InstallPath%\Assets\swtor_main_art_dynamic_chest_tight_1_ORIG.tor" swtor_main_art_dynamic_chest_tight_1.tor
) else (
 if exist "%InstallPath%\Assets\swtor_main_art_dynamic_chest_tight_1_ORIG.tor" del "%InstallPath%\Assets\swtor_main_art_dynamic_chest_tight_1_ORIG.tor"
)

for %%F in ("%InstallPath%\Assets\swtor_main_art_dynamic_hand_1.tor") do set ATTRIBS=%%~aF
if %ATTRIBS:~8,1% == l (
 if not exist "%InstallPath%\Assets\swtor_main_art_dynamic_hand_1_ORIG.tor" goto ErrorAssetHand
 del "%InstallPath%\Assets\swtor_main_art_dynamic_hand_1.tor"
 ren "%InstallPath%\Assets\swtor_main_art_dynamic_hand_1_ORIG.tor" swtor_main_art_dynamic_hand_1.tor
) else (
 if exist "%InstallPath%\Assets\swtor_main_art_dynamic_hand_1_ORIG.tor" del "%InstallPath%\Assets\swtor_main_art_dynamic_hand_1_ORIG.tor"
)

for %%F in ("%InstallPath%\Assets\swtor_main_art_dynamic_head_1.tor") do set ATTRIBS=%%~aF
if %ATTRIBS:~8,1% == l (
 if not exist "%InstallPath%\Assets\swtor_main_art_dynamic_head_1_ORIG.tor" goto ErrorAssetHead
 del "%InstallPath%\Assets\swtor_main_art_dynamic_head_1.tor"
 ren "%InstallPath%\Assets\swtor_main_art_dynamic_head_1_ORIG.tor" swtor_main_art_dynamic_head_1.tor
) else (
 if exist "%InstallPath%\Assets\swtor_main_art_dynamic_head_1_ORIG.tor" del "%InstallPath%\Assets\swtor_main_art_dynamic_head_1_ORIG.tor"
)

for %%F in ("%InstallPath%\Assets\swtor_main_art_dynamic_lower_1.tor") do set ATTRIBS=%%~aF
if %ATTRIBS:~8,1% == l (
 if not exist "%InstallPath%\Assets\swtor_main_art_dynamic_lower_1_ORIG.tor" goto ErrorAssetLower
 del "%InstallPath%\Assets\swtor_main_art_dynamic_lower_1.tor"
 ren "%InstallPath%\Assets\swtor_main_art_dynamic_lower_1_ORIG.tor" swtor_main_art_dynamic_lower_1.tor
) else (
 if exist "%InstallPath%\Assets\swtor_main_art_dynamic_lower_1_ORIG.tor" del "%InstallPath%\Assets\swtor_main_art_dynamic_lower_1_ORIG.tor"
)

for %%F in ("%InstallPath%\Assets\swtor_main_art_dynamic_mags_1.tor") do set ATTRIBS=%%~aF
if %ATTRIBS:~8,1% == l (
 if not exist "%InstallPath%\Assets\swtor_main_art_dynamic_mags_1_ORIG.tor" goto ErrorAssetMags
 del "%InstallPath%\Assets\swtor_main_art_dynamic_mags_1.tor"
 ren "%InstallPath%\Assets\swtor_main_art_dynamic_mags_1_ORIG.tor" swtor_main_art_dynamic_mags_1.tor
) else (
 if exist "%InstallPath%\Assets\swtor_main_art_dynamic_mags_1_ORIG.tor" del "%InstallPath%\Assets\swtor_main_art_dynamic_mags_1_ORIG.tor"
)


goto Success

:AddAssetFiles
for %%F in ("%InstallPath%\Assets\swtor_main_art_fx_1.tor") do set ATTRIBS=%%~aF
if %ATTRIBS:~8,1% == l (
 if not exist "%InstallPath%\Assets\swtor_main_art_fx_1_ORIG.tor" goto ErrorAssetFx
 del "%InstallPath%\Assets\swtor_main_art_fx_1.tor"
 mklink "%InstallPath%\Assets\swtor_main_art_fx_1.tor" "%RamDrive%\swtor_main_art_fx_1.tor"
) else (
 if exist "%InstallPath%\Assets\swtor_main_art_fx_1_ORIG.tor" del "%InstallPath%\Assets\swtor_main_art_fx_1_ORIG.tor"
 ren "%InstallPath%\Assets\swtor_main_art_fx_1.tor" swtor_main_art_fx_1_ORIG.tor
 mklink "%InstallPath%\Assets\swtor_main_art_fx_1.tor" "%RamDrive%\swtor_main_art_fx_1.tor"
)

:CopyFxAsset
:: Check if the fx asset file is already on the ramdrive, else copy it
if exist "%RamDrive%\swtor_main_art_fx_1.tor" goto Success
copy "%InstallPath%\Assets\swtor_main_art_fx_1_ORIG.tor" %RamDrive%
ren "%RamDrive%\swtor_main_art_fx_1_ORIG.tor" swtor_main_art_fx_1.tor

:: Check if the user wants to add dynamic character asset files
if %AddDynamicAssetFiles% == yes goto AddDynamicAssetFiles

goto Success

:AddDynamicAssetFiles
:AddDynamicCapeFile
for %%F in ("%InstallPath%\Assets\swtor_main_art_dynamic_cape_1.tor") do set ATTRIBS=%%~aF
if %ATTRIBS:~8,1% == l (
 if not exist "%InstallPath%\Assets\swtor_main_art_dynamic_cape_1_ORIG.tor" goto ErrorAssetCape
 del "%InstallPath%\Assets\swtor_main_art_dynamic_cape_1.tor"
 mklink "%InstallPath%\Assets\swtor_main_art_dynamic_cape_1.tor" "%RamDrive%\swtor_main_art_dynamic_cape_1.tor"
) else (
 if exist "%InstallPath%\Assets\swtor_main_art_dynamic_cape_1_ORIG.tor" del "%InstallPath%\Assets\swtor_main_art_dynamic_cape_1_ORIG.tor"
 ren "%InstallPath%\Assets\swtor_main_art_dynamic_cape_1.tor" swtor_main_art_dynamic_cape_1_ORIG.tor
 mklink "%InstallPath%\Assets\swtor_main_art_dynamic_cape_1.tor" "%RamDrive%\swtor_main_art_dynamic_cape_1.tor"
)

:: Check if the cape asset file is already on the ramdrive, else copy it
if exist "%RamDrive%\swtor_main_art_dynamic_cape_1.tor" goto AddDynamicChestFile
copy "%InstallPath%\Assets\swtor_main_art_dynamic_cape_1_ORIG.tor" %RamDrive%
ren "%RamDrive%\swtor_main_art_dynamic_cape_1_ORIG.tor" swtor_main_art_dynamic_cape_1.tor

:AddDynamicChestFile
for %%F in ("%InstallPath%\Assets\swtor_main_art_dynamic_chest_1.tor") do set ATTRIBS=%%~aF
if %ATTRIBS:~8,1% == l (
 if not exist "%InstallPath%\Assets\swtor_main_art_dynamic_chest_1_ORIG.tor" goto ErrorAssetChest
 del "%InstallPath%\Assets\swtor_main_art_dynamic_chest_1.tor"
 mklink "%InstallPath%\Assets\swtor_main_art_dynamic_chest_1.tor" "%RamDrive%\swtor_main_art_dynamic_chest_1.tor"
) else (
 if exist "%InstallPath%\Assets\swtor_main_art_dynamic_chest_1_ORIG.tor" del "%InstallPath%\Assets\swtor_main_art_dynamic_chest_1_ORIG.tor"
 ren "%InstallPath%\Assets\swtor_main_art_dynamic_chest_1.tor" swtor_main_art_dynamic_chest_1_ORIG.tor
 mklink "%InstallPath%\Assets\swtor_main_art_dynamic_chest_1.tor" "%RamDrive%\swtor_main_art_dynamic_chest_1.tor"
)

:: Check if the chest asset file is already on the ramdrive, else copy it
if exist "%RamDrive%\swtor_main_art_dynamic_chest_1.tor" goto AddDynamicChestTightFile
copy "%InstallPath%\Assets\swtor_main_art_dynamic_chest_1_ORIG.tor" %RamDrive%
ren "%RamDrive%\swtor_main_art_dynamic_chest_1_ORIG.tor" swtor_main_art_dynamic_chest_1.tor

:AddDynamicChestTightFile
for %%F in ("%InstallPath%\Assets\swtor_main_art_dynamic_chest_tight_1.tor") do set ATTRIBS=%%~aF
if %ATTRIBS:~8,1% == l (
 if not exist "%InstallPath%\Assets\swtor_main_art_dynamic_chest_tight_1_ORIG.tor" goto ErrorAssetChestTight
 del "%InstallPath%\Assets\swtor_main_art_dynamic_chest_tight_1.tor"
 mklink "%InstallPath%\Assets\swtor_main_art_dynamic_chest_tight_1.tor" "%RamDrive%\swtor_main_art_dynamic_chest_tight_1.tor"
) else (
 if exist "%InstallPath%\Assets\swtor_main_art_dynamic_chest_tight_1_ORIG.tor" del "%InstallPath%\Assets\swtor_main_art_dynamic_chest_tight_1_ORIG.tor"
 ren "%InstallPath%\Assets\swtor_main_art_dynamic_chest_tight_1.tor" swtor_main_art_dynamic_chest_tight_1_ORIG.tor
 mklink "%InstallPath%\Assets\swtor_main_art_dynamic_chest_tight_1.tor" "%RamDrive%\swtor_main_art_dynamic_chest_tight_1.tor"
)

:: Check if the chest tight asset file is already on the ramdrive, else copy it
if exist "%RamDrive%\swtor_main_art_dynamic_chest_tight_1.tor" goto AddDynamicHandFile
copy "%InstallPath%\Assets\swtor_main_art_dynamic_chest_tight_1_ORIG.tor" %RamDrive%
ren "%RamDrive%\swtor_main_art_dynamic_chest_tight_1_ORIG.tor" swtor_main_art_dynamic_chest_tight_1.tor

:AddDynamicHandFile
for %%F in ("%InstallPath%\Assets\swtor_main_art_dynamic_hand_1.tor") do set ATTRIBS=%%~aF
if %ATTRIBS:~8,1% == l (
 if not exist "%InstallPath%\Assets\swtor_main_art_dynamic_hand_1_ORIG.tor" goto ErrorAssetHand
 del "%InstallPath%\Assets\swtor_main_art_dynamic_hand_1.tor"
 mklink "%InstallPath%\Assets\swtor_main_art_dynamic_hand_1.tor" "%RamDrive%\swtor_main_art_dynamic_hand_1.tor"
) else (
 if exist "%InstallPath%\Assets\swtor_main_art_dynamic_hand_1_ORIG.tor" del "%InstallPath%\Assets\swtor_main_art_dynamic_hand_1_ORIG.tor"
 ren "%InstallPath%\Assets\swtor_main_art_dynamic_hand_1.tor" swtor_main_art_dynamic_hand_1_ORIG.tor
 mklink "%InstallPath%\Assets\swtor_main_art_dynamic_hand_1.tor" "%RamDrive%\swtor_main_art_dynamic_hand_1.tor"
)

:: Check if the hand asset file is already on the ramdrive, else copy it
if exist "%RamDrive%\swtor_main_art_dynamic_hand_1.tor" goto AddDynamicHeadFile
copy "%InstallPath%\Assets\swtor_main_art_dynamic_hand_1_ORIG.tor" %RamDrive%
ren "%RamDrive%\swtor_main_art_dynamic_hand_1_ORIG.tor" swtor_main_art_dynamic_hand_1.tor

:AddDynamicHeadFile
for %%F in ("%InstallPath%\Assets\swtor_main_art_dynamic_head_1.tor") do set ATTRIBS=%%~aF
if %ATTRIBS:~8,1% == l (
 if not exist "%InstallPath%\Assets\swtor_main_art_dynamic_head_1_ORIG.tor" goto ErrorAssetHead
 del "%InstallPath%\Assets\swtor_main_art_dynamic_head_1.tor"
 mklink "%InstallPath%\Assets\swtor_main_art_dynamic_head_1.tor" "%RamDrive%\swtor_main_art_dynamic_head_1.tor"
) else (
 if exist "%InstallPath%\Assets\swtor_main_art_dynamic_head_1_ORIG.tor" del "%InstallPath%\Assets\swtor_main_art_dynamic_head_1_ORIG.tor"
 ren "%InstallPath%\Assets\swtor_main_art_dynamic_head_1.tor" swtor_main_art_dynamic_head_1_ORIG.tor
 mklink "%InstallPath%\Assets\swtor_main_art_dynamic_head_1.tor" "%RamDrive%\swtor_main_art_dynamic_head_1.tor"
)

:: Check if the head asset file is already on the ramdrive, else copy it
if exist "%RamDrive%\swtor_main_art_dynamic_head_1.tor" goto AddDynamicLowerFile
copy "%InstallPath%\Assets\swtor_main_art_dynamic_head_1_ORIG.tor" %RamDrive%
ren "%RamDrive%\swtor_main_art_dynamic_head_1_ORIG.tor" swtor_main_art_dynamic_head_1.tor

:AddDynamicLowerFile
for %%F in ("%InstallPath%\Assets\swtor_main_art_dynamic_lower_1.tor") do set ATTRIBS=%%~aF
if %ATTRIBS:~8,1% == l (
 if not exist "%InstallPath%\Assets\swtor_main_art_dynamic_lower_1_ORIG.tor" goto ErrorAssetLower
 del "%InstallPath%\Assets\swtor_main_art_dynamic_lower_1.tor"
 mklink "%InstallPath%\Assets\swtor_main_art_dynamic_lower_1.tor" "%RamDrive%\swtor_main_art_dynamic_lower_1.tor"
) else (
 if exist "%InstallPath%\Assets\swtor_main_art_dynamic_lower_1_ORIG.tor" del "%InstallPath%\Assets\swtor_main_art_dynamic_lower_1_ORIG.tor"
 ren "%InstallPath%\Assets\swtor_main_art_dynamic_lower_1.tor" swtor_main_art_dynamic_lower_1_ORIG.tor
 mklink "%InstallPath%\Assets\swtor_main_art_dynamic_lower_1.tor" "%RamDrive%\swtor_main_art_dynamic_lower_1.tor"
)

:: Check if the lower asset file is already on the ramdrive, else copy it
if exist "%RamDrive%\swtor_main_art_dynamic_lower_1.tor" goto AddDynamicMagsFile
copy "%InstallPath%\Assets\swtor_main_art_dynamic_lower_1_ORIG.tor" %RamDrive%
ren "%RamDrive%\swtor_main_art_dynamic_lower_1_ORIG.tor" swtor_main_art_dynamic_lower_1.tor

:AddDynamicMagsFile
for %%F in ("%InstallPath%\Assets\swtor_main_art_dynamic_mags_1.tor") do set ATTRIBS=%%~aF
if %ATTRIBS:~8,1% == l (
 if not exist "%InstallPath%\Assets\swtor_main_art_dynamic_mags_1_ORIG.tor" goto ErrorAssetMags
 del "%InstallPath%\Assets\swtor_main_art_dynamic_mags_1.tor"
 mklink "%InstallPath%\Assets\swtor_main_art_dynamic_mags_1.tor" "%RamDrive%\swtor_main_art_dynamic_mags_1.tor"
) else (
 if exist "%InstallPath%\Assets\swtor_main_art_dynamic_mags_1_ORIG.tor" del "%InstallPath%\Assets\swtor_main_art_dynamic_mags_1_ORIG.tor"
 ren "%InstallPath%\Assets\swtor_main_art_dynamic_mags_1.tor" swtor_main_art_dynamic_mags_1_ORIG.tor
 mklink "%InstallPath%\Assets\swtor_main_art_dynamic_mags_1.tor" "%RamDrive%\swtor_main_art_dynamic_mags_1.tor"
)

:: Check if the cape asset file is already on the ramdrive, else copy it
if exist "%RamDrive%\swtor_main_art_dynamic_mags_1.tor" goto Success
copy "%InstallPath%\Assets\swtor_main_art_dynamic_mags_1_ORIG.tor" %RamDrive%
ren "%RamDrive%\swtor_main_art_dynamic_mags_1_ORIG.tor" swtor_main_art_dynamic_mags_1.tor

goto Success


:: ----------------------------------------------------------------------------------
:: REMOVE RAMDISK
:: ----------------------------------------------------------------------------------
:REMOVE
cls

:: If ramdisk exist dismount it
if exist %RamDrive% imdisk -D -m %RamDrive%

:: Delete DiskArenaCache
if exist "%InstallPath%\swtor\DiskCacheArena" del "%InstallPath%\swtor\DiskCacheArena"

:: Delete local SWTOR link
for %%F in ("%AppLocal%\SWTOR") do set ATTRIBS=%%~aF
if %ATTRIBS:~8,1% == l (
 rmdir "%AppLocal%\SWTOR" /S /Q
 if not exist "%AppLocal%\SWTOR_Original" mkdir "%AppLocal%\SWTOR\swtor\settings"
 if exist "%AppLocal%\SWTOR_Original" ren "%AppLocal%\SWTOR_Original" SWTOR
) else (
 if exist "%AppLocal%\SWTOR_Original" rmdir "%AppLocal%\SWTOR_Original" /S /Q
)

:: Check if fx needs a repair
for %%F in ("%InstallPath%\Assets\swtor_main_art_fx_1.tor") do set ATTRIBS=%%~aF
if %ATTRIBS:~8,1% == l (
 if not exist "%InstallPath%\Assets\swtor_main_art_fx_1_ORIG.tor" goto ErrorAssetFx
 del "%InstallPath%\Assets\swtor_main_art_fx_1.tor"
 ren "%InstallPath%\Assets\swtor_main_art_fx_1_ORIG.tor" swtor_main_art_fx_1.tor
) else (
 if exist "%InstallPath%\Assets\swtor_main_art_fx_1_ORIG.tor" del "%InstallPath%\Assets\swtor_main_art_fx_1_ORIG.tor"
)

:: Check if other asset files need repairing
for %%F in ("%InstallPath%\Assets\swtor_main_art_dynamic_cape_1.tor") do set ATTRIBS=%%~aF
if %ATTRIBS:~8,1% == l (
 if not exist "%InstallPath%\Assets\swtor_main_art_dynamic_cape_1_ORIG.tor" goto ErrorAssetCape
 del "%InstallPath%\Assets\swtor_main_art_dynamic_cape_1.tor"
 ren "%InstallPath%\Assets\swtor_main_art_dynamic_cape_1_ORIG.tor" swtor_main_art_dynamic_cape_1.tor
) else (
 if exist "%InstallPath%\Assets\swtor_main_art_dynamic_cape_1_ORIG.tor" del "%InstallPath%\Assets\swtor_main_art_dynamic_cape_1_ORIG.tor"
)

for %%F in ("%InstallPath%\Assets\swtor_main_art_dynamic_chest_1.tor") do set ATTRIBS=%%~aF
if %ATTRIBS:~8,1% == l (
 if not exist "%InstallPath%\Assets\swtor_main_art_dynamic_chest_1_ORIG.tor" goto ErrorAssetChest
 del "%InstallPath%\Assets\swtor_main_art_dynamic_chest_1.tor"
 ren "%InstallPath%\Assets\swtor_main_art_dynamic_chest_1_ORIG.tor" swtor_main_art_dynamic_chest_1.tor
) else (
 if exist "%InstallPath%\Assets\swtor_main_art_dynamic_chest_1_ORIG.tor" del "%InstallPath%\Assets\swtor_main_art_dynamic_chest_1_ORIG.tor"
)

for %%F in ("%InstallPath%\Assets\swtor_main_art_dynamic_chest_tight_1.tor") do set ATTRIBS=%%~aF
if %ATTRIBS:~8,1% == l (
 if not exist "%InstallPath%\Assets\swtor_main_art_dynamic_chest_tight_1_ORIG.tor" goto ErrorAssetChestTight
 del "%InstallPath%\Assets\swtor_main_art_dynamic_chest_tight_1.tor"
 ren "%InstallPath%\Assets\swtor_main_art_dynamic_chest_tight_1_ORIG.tor" swtor_main_art_dynamic_chest_tight_1.tor
) else (
 if exist "%InstallPath%\Assets\swtor_main_art_dynamic_chest_tight_1_ORIG.tor" del "%InstallPath%\Assets\swtor_main_art_dynamic_chest_tight_1_ORIG.tor"
)

for %%F in ("%InstallPath%\Assets\swtor_main_art_dynamic_hand_1.tor") do set ATTRIBS=%%~aF
if %ATTRIBS:~8,1% == l (
 if not exist "%InstallPath%\Assets\swtor_main_art_dynamic_hand_1_ORIG.tor" goto ErrorAssetHand
 del "%InstallPath%\Assets\swtor_main_art_dynamic_hand_1.tor"
 ren "%InstallPath%\Assets\swtor_main_art_dynamic_hand_1_ORIG.tor" swtor_main_art_dynamic_hand_1.tor
) else (
 if exist "%InstallPath%\Assets\swtor_main_art_dynamic_hand_1_ORIG.tor" del "%InstallPath%\Assets\swtor_main_art_dynamic_hand_1_ORIG.tor"
)

for %%F in ("%InstallPath%\Assets\swtor_main_art_dynamic_head_1.tor") do set ATTRIBS=%%~aF
if %ATTRIBS:~8,1% == l (
 if not exist "%InstallPath%\Assets\swtor_main_art_dynamic_head_1_ORIG.tor" goto ErrorAssetHead
 del "%InstallPath%\Assets\swtor_main_art_dynamic_head_1.tor"
 ren "%InstallPath%\Assets\swtor_main_art_dynamic_head_1_ORIG.tor" swtor_main_art_dynamic_head_1.tor
) else (
 if exist "%InstallPath%\Assets\swtor_main_art_dynamic_head_1_ORIG.tor" del "%InstallPath%\Assets\swtor_main_art_dynamic_head_1_ORIG.tor"
)

for %%F in ("%InstallPath%\Assets\swtor_main_art_dynamic_lower_1.tor") do set ATTRIBS=%%~aF
if %ATTRIBS:~8,1% == l (
 if not exist "%InstallPath%\Assets\swtor_main_art_dynamic_lower_1_ORIG.tor" goto ErrorAssetLower
 del "%InstallPath%\Assets\swtor_main_art_dynamic_lower_1.tor"
 ren "%InstallPath%\Assets\swtor_main_art_dynamic_lower_1_ORIG.tor" swtor_main_art_dynamic_lower_1.tor
) else (
 if exist "%InstallPath%\Assets\swtor_main_art_dynamic_lower_1_ORIG.tor" del "%InstallPath%\Assets\swtor_main_art_dynamic_lower_1_ORIG.tor"
)

for %%F in ("%InstallPath%\Assets\swtor_main_art_dynamic_mags_1.tor") do set ATTRIBS=%%~aF
if %ATTRIBS:~8,1% == l (
 if not exist "%InstallPath%\Assets\swtor_main_art_dynamic_mags_1_ORIG.tor" goto ErrorAssetMags
 del "%InstallPath%\Assets\swtor_main_art_dynamic_mags_1.tor"
 ren "%InstallPath%\Assets\swtor_main_art_dynamic_mags_1_ORIG.tor" swtor_main_art_dynamic_mags_1.tor
) else (
 if exist "%InstallPath%\Assets\swtor_main_art_dynamic_mags_1_ORIG.tor" del "%InstallPath%\Assets\swtor_main_art_dynamic_mags_1_ORIG.tor"
)

goto Success

:: ----------------------------------------------------------------------------------
:: MOUNT RAMDISK FOR SWTOR (NEEDED AFTER REBOOT, SEPARATE SCRIPT AVAILABLE)
:: ----------------------------------------------------------------------------------
:MOUNT
cls

:: Prepair ramdisk, mount if needed
if not exist %RamDrive% imdisk -a -s %RamSize% -m %RamDrive% -p "/v:SWTOR_RAM /fs:ntfs /q /y"
if exist "%RamDrive%\SWTOR" rmdir "%RamDrive%\SWTOR" /S /Q
mkdir "%RamDrive%\SWTOR\swtor"

:: Create settings junction to SWTOR_Original in local
mklink /J "%RamDrive%\SWTOR\swtor\settings" "%AppLocal%\SWTOR_Original\swtor\settings"

:: Copy fx asset file to the ramdisk if needed
if not %AddFxFile% == yes goto EOF
if exist "%RamDrive%\swtor_main_art_fx_1.tor" goto CopyDynamicCape
if not exist "%InstallPath%\Assets\swtor_main_art_fx_1_ORIG.tor" goto ErrorAssetFx
copy "%InstallPath%\Assets\swtor_main_art_fx_1_ORIG.tor" %RamDrive%
ren "%RamDrive%\swtor_main_art_fx_1_ORIG.tor" swtor_main_art_fx_1.tor 

:: Copy dynamic asset files to the ramdisk if needed
:CopyDynamicCape
if not %AddDynamicAssetFiles% == yes goto EOF
if exist "%RamDrive%\swtor_main_art_dynamic_cape_1.tor" goto CopyDynamicChest
if not exist "%InstallPath%\Assets\swtor_main_art_dynamic_cape_1_ORIG.tor" goto ErrorAssetCape
copy "%InstallPath%\Assets\swtor_main_art_dynamic_cape_1_ORIG.tor" %RamDrive%
ren "%RamDrive%\swtor_main_art_dynamic_cape_1_ORIG.tor" swtor_main_art_dynamic_cape_1.tor 

:CopyDynamicChest
if exist "%RamDrive%\swtor_main_art_dynamic_chest_1.tor" goto CopyDynamicChestTight
if not exist "%InstallPath%\Assets\swtor_main_art_dynamic_chest_1_ORIG.tor" goto ErrorAssetChest
copy "%InstallPath%\Assets\swtor_main_art_dynamic_chest_1_ORIG.tor" %RamDrive%
ren "%RamDrive%\swtor_main_art_dynamic_chest_1_ORIG.tor" swtor_main_art_dynamic_chest_1.tor

:CopyDynamicChestTight
if exist "%RamDrive%\swtor_main_art_dynamic_chest_tight_1.tor" goto CopyDynamicHand
if not exist "%InstallPath%\Assets\swtor_main_art_dynamic_chest_tight_1_ORIG.tor" goto ErrorAssetChestTight
copy "%InstallPath%\Assets\swtor_main_art_dynamic_chest_tight_1_ORIG.tor" %RamDrive%
ren "%RamDrive%\swtor_main_art_dynamic_chest_tight_1_ORIG.tor" swtor_main_art_dynamic_chest_tight_1.tor

:CopyDynamicHand
if exist "%RamDrive%\swtor_main_art_dynamic_hand_1.tor" goto CopyDynamicHead
if not exist "%InstallPath%\Assets\swtor_main_art_dynamic_hand_1_ORIG.tor" goto ErrorAssetHand
copy "%InstallPath%\Assets\swtor_main_art_dynamic_hand_1_ORIG.tor" %RamDrive%
ren "%RamDrive%\swtor_main_art_dynamic_hand_1_ORIG.tor" swtor_main_art_dynamic_hand_1.tor 

:CopyDynamicHead
if exist "%RamDrive%\swtor_main_art_dynamic_head_1.tor" goto CopyDynamicLower
if not exist "%InstallPath%\Assets\swtor_main_art_dynamic_head_1_ORIG.tor" goto ErrorAssetHead
copy "%InstallPath%\Assets\swtor_main_art_dynamic_head_1_ORIG.tor" %RamDrive%
ren "%RamDrive%\swtor_main_art_dynamic_head_1_ORIG.tor" swtor_main_art_dynamic_head_1.tor 

:CopyDynamicLower
if exist "%RamDrive%\swtor_main_art_dynamic_lower_1.tor" goto CopyDynamicMags
if not exist "%InstallPath%\Assets\swtor_main_art_dynamic_lower_1_ORIG.tor" goto ErrorAssetLower
copy "%InstallPath%\Assets\swtor_main_art_dynamic_lower_1_ORIG.tor" %RamDrive%
ren "%RamDrive%\swtor_main_art_dynamic_lower_1_ORIG.tor" swtor_main_art_dynamic_lower_1.tor 

:CopyDynamicMags
if exist "%RamDrive%\swtor_main_art_dynamic_mags_1.tor" goto EOF
if not exist "%InstallPath%\Assets\swtor_main_art_dynamic_mags_1_ORIG.tor" goto ErrorAssetMags
copy "%InstallPath%\Assets\swtor_main_art_dynamic_mags_1_ORIG.tor" %RamDrive%
ren "%RamDrive%\swtor_main_art_dynamic_mags_1_ORIG.tor" swtor_main_art_dynamic_mags_1.tor 

goto EOF

:: ----------------------------------------------------------------------------------
:: DISMOUNT THE RAMDRIVE TO FREE MEMORY BETWEEN GAME SESSIONS
:: ----------------------------------------------------------------------------------
:DISMOUNT
cls

imdisk -D -m %RamDrive%
goto EOF

:: ----------------------------------------------------------------------------------
:: MESSAGES
:: ----------------------------------------------------------------------------------
:ErrorPathFinding
cls
echo  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo  º                                                                            º
echo  º                                   ERROR                                    º
echo  º                                                                            º
echo  ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo This script could not find the needed locations on your computer by reading out
echo the required registery. The needed locations that are needed are the
echo installation path of SWTOR and the path to the local application.
echo.
echo This error might occur aswell as you try to run this script on a non 64-bit
echo Windows as this script only looks in the 64-bit registery.
echo
echo If this script fails and you are running a 64-bit version of windows please
echo follow the manual steps explained on the ramdisk thread by Lemon_King.
echo.
pause
goto EOF

:ErrorAssetFx
cls
echo  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo  º                                                                            º
echo  º                                   ERROR                                    º
echo  º                                                                            º
echo  ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo This script could not find the original fx asset file on your computer. This is
echo needed for both removing the fx asset file from the setup or be able to copy
echo it to the ramdisk to set it up.
echo.
echo As this error only occurs when the filename that is been used by SWTOR is a
echo link already and then this script (and the mountscript) will look for a renamed
echo original fx asset file, that is located in the same asset folder.
echo.
echo Note: if used with [M]ount, make sure you used [s]etup first again with the
echo if you changed usersettings AddFxFile to yes, else the files are not made yet.
echo.
echo If you have the original fx asset file on a different location please place it 
echo back in the asset folder of the game with the name:
echo "swtor_main_art_fx_1_ORIG.tor"
echo.
pause
goto EOF

:ErrorAssetCape
cls
echo  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo  º                                                                            º
echo  º                                   ERROR                                    º
echo  º                                                                            º
echo  ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo This script could not find the original dynamic cape asset file on your computer. 
echo This is needed for both removing the cape asset file from the setup and to copy 
echo it to the ramdisk to set it up.
echo.
echo As this error only occurs when the filename that is been used by SWTOR is a
echo link already and then this script (and the mountscript) will look for a renamed
echo original cape asset file, that is located in the same asset folder.
echo.
echo Note: if used with [M]ount, make sure you used [s]etup first again with the
echo if you changed usersettings AddDynamicAssetFiles to yes, else the files are not 
echo made yet.
echo.
echo If you have the original cape asset file on a different location please place it 
echo back in the asset folder of the game with the name:
echo "swtor_main_art_dynamic_cape_1_ORIG.tor"
echo.
pause
goto EOF

:ErrorAssetChest
cls
echo  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo  º                                                                            º
echo  º                                   ERROR                                    º
echo  º                                                                            º
echo  ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo This script could not find the original dynamic chest asset file on your computer. 
echo This is needed for both removing the chest asset file from the setup and to copy 
echo it to the ramdisk to set it up.
echo.
echo As this error only occurs when the filename that is been used by SWTOR is a
echo link already and then this script (and the mountscript) will look for a renamed
echo original chest asset file, that is located in the same asset folder.
echo.
echo Note: if used with [M]ount, make sure you used [s]etup first again with the
echo if you changed usersettings AddDynamicAssetFiles to yes, else the files are not 
echo made yet.
echo.
echo If you have the original chest asset file on a different location please place it 
echo back in the asset folder of the game with the name:
echo "swtor_main_art_dynamic_chest_1_ORIG.tor"
echo.
pause
goto EOF

:ErrorAssetChestTight
cls
echo  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo  º                                                                            º
echo  º                                   ERROR                                    º
echo  º                                                                            º
echo  ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo This script could not find the original dynamic chest tight asset file on your  
echo computer. This is needed for both removing the chest asset file from the setup  
echo and to copy it to the ramdisk to set it up.
echo.
echo As this error only occurs when the filename that is been used by SWTOR is a
echo link already and then this script (and the mountscript) will look for a renamed
echo original chest tight asset file, that is located in the same asset folder.
echo.
echo Note: if used with [M]ount, make sure you used [s]etup first again with the
echo if you changed usersettings AddDynamicAssetFiles to yes, else the files are not 
echo made yet.
echo.
echo If you have the original chest tight asset file on a different location please  
echo place it back in the asset folder of the game with the name:
echo "swtor_main_art_dynamic_chest_tight_1_ORIG.tor"
echo.
pause
goto EOF

:ErrorAssetHand
cls
echo  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo  º                                                                            º
echo  º                                   ERROR                                    º
echo  º                                                                            º
echo  ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo This script could not find the original dynamic hand asset file on your computer. 
echo This is needed for both removing the hand asset file from the setup and to copy 
echo it to the ramdisk to set it up.
echo.
echo As this error only occurs when the filename that is been used by SWTOR is a
echo link already and then this script (and the mountscript) will look for a renamed
echo original hand asset file, that is located in the same asset folder.
echo.
echo Note: if used with [M]ount, make sure you used [s]etup first again with the
echo if you changed usersettings AddDynamicAssetFiles to yes, else the files are not 
echo made yet.
echo.
echo If you have the original hand asset file on a different location please place it 
echo back in the asset folder of the game with the name:
echo "swtor_main_art_dynamic_hand_1_ORIG.tor"
echo.
pause
goto EOF

:ErrorAssetHead
cls
echo  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo  º                                                                            º
echo  º                                   ERROR                                    º
echo  º                                                                            º
echo  ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo This script could not find the original dynamic head asset file on your computer. 
echo This is needed for both removing the head asset file from the setup and to copy 
echo it to the ramdisk to set it up.
echo.
echo As this error only occurs when the filename that is been used by SWTOR is a
echo link already and then this script (and the mountscript) will look for a renamed
echo original head asset file, that is located in the same asset folder.
echo.
echo Note: if used with [M]ount, make sure you used [s]etup first again with the
echo if you changed usersettings AddDynamicAssetFiles to yes, else the files are not 
echo made yet.
echo.
echo If you have the original head asset file on a different location please place it 
echo back in the asset folder of the game with the name:
echo "swtor_main_art_dynamic_head_1_ORIG.tor"
echo.
pause
goto EOF

:ErrorAssetLower
cls
echo  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo  º                                                                            º
echo  º                                   ERROR                                    º
echo  º                                                                            º
echo  ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo This script could not find the original dynamic lower asset file on your  
echo computer. This is needed for both removing the head asset file from the setup  
echo and to copy it to the ramdisk to set it up.
echo.
echo As this error only occurs when the filename that is been used by SWTOR is a
echo link already and then this script (and the mountscript) will look for a renamed
echo original lower asset file, that is located in the same asset folder.
echo.
echo Note: if used with [M]ount, make sure you used [s]etup first again with the
echo if you changed usersettings AddDynamicAssetFiles to yes, else the files are not 
echo made yet.
echo.
echo If you have the original lower asset file on a different location please place  
echo it back in the asset folder of the game with the name:
echo "swtor_main_art_dynamic_lower_1_ORIG.tor"
echo.
pause
goto EOF

:ErrorAssetMags
cls
echo  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo  º                                                                            º
echo  º                                   ERROR                                    º
echo  º                                                                            º
echo  ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
echo This script could not find the original dynamic mags asset file on your computer. 
echo This is needed for both removing the mags asset file from the setup and to copy 
echo it to the ramdisk to set it up.
echo.
echo As this error only occurs when the filename that is been used by SWTOR is a
echo link already and then this script (and the mountscript) will look for a renamed
echo original mags asset file, that is located in the same asset folder.
echo.
echo Note: if used with [M]ount, make sure you used [s]etup first again with the
echo if you changed usersettings AddDynamicAssetFiles to yes, else the files are not 
echo made yet.
echo.
echo If you have the original mags asset file on a different location please place it 
echo back in the asset folder of the game with the name:
echo "swtor_main_art_dynamic_mags_1_ORIG.tor"
echo.
pause
goto EOF

:Success
cls
echo  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
echo  º                                                                            º
echo  º                                  SUCCESS                                   º
echo  º                                                                            º
echo  ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
echo.
pause
goto EOF

:: ----------------------------------------------------------------------------------
:: END OF SCRIPT
:: ----------------------------------------------------------------------------------
:EOF
exit

 

Yes, it is rather significantly longer.

Link to comment
Share on other sites

After seeing all of this yesterday, I got pretty interested. Been seeing some great performance increases, particularly since I have 16GB of RAM and can put essentially everything that's been mentioned so far onto a ramdisk(I'm using 6GB, but 5GB would probably work - I just wanted the extra gig just in case). To that end, I went ahead and modified Ocmer_'s all-in-one batch file so that it has an option to include the dynamic character asset files, as well. Ocmer_, I stuck to your general style, and didn't change anything other than what I added. Here's the new code:

 

Yes, it is rather significantly longer.

 

Ha you beat me to it tho, was planning to do the exact same thing but with some form of easier error messaging, the way it is now, if an asset files is missing it just stops.

 

It'll work for now, thanks, untill I'll find some easier error messaging output.

 

Btw, a ramdisk of 4GB should be far enough for the 3 cache files, the fx and dynamic asset files.

 

Edited by Ocmer_
Link to comment
Share on other sites

×
×
  • Create New...