Dolphin, the GameCube and Wii emulator - Forums

Full Version: Few Little tweaks to help dolphin Run a little better.
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
First off i just want to say thank you for reading this... Lets get to it..

Sense Dolphin can only run on up to 3 cores I figured i would write a little guide for people that may or may not want to tweak dolphin for a little extra performance. While There is no magic fix to make everything run like butter i hope this might help some people that have older hardware that they may be using to help out running games under dolphin.. I wrote this guide in hopes it will help people.. Sense dolphin and sometimes games like to start on cpu 0 which most windows processes start on this will help dolphin not get as much cpu time taken away if you have other applications running in the background.

What you will need

Your computer running windows 7,8


Software needed

"Windows"
Dolphin
Your games Tongue

This link to binary to hexadecimal calculator

http://www.mathsisfun.com/binary-decimal...erter.html


Like i said sense Dolphin only will run up to 3 cores (one being if LLE audio is set to run on a separate thread.) Where going to make dolphin only run with up to 3 cores without using primary core 0 aka CPU core 1..

Why would we do this you ask its simple.. While windows is ok at managing system load its nice to start a program on a cpu core or thread that's not currently already active or b has a process already spawned on it. The way most systems typically load balance is to eather a split the workload between 2 cores or B use one core tell cpu load reaches over 100% eg 0-100 is one core 101-200 is 2 201-300 is 3 and so on and so forth.

So lets get to it...

To start dolphin on core 2-4 which would represent a 3 core system you could a go into the task manager and turn off the afinity for core 0 on dolphin or b set it in a short cut to always start on core 1-3 i opt for the second as it will just allow you to launch dolphin already configured.

C:\Windows\System32\cmd.exe /c start "Dolphin" /affinity E "C:\Dolphin-x64\Dolphin.exe"
This example right here will let you start dolphin on core 1-3 while ignoring the primary core..

How did you get that number you ask Simple with a binary calculator.

000000000001 would represent core 1 only 0=off 1=on that's if you had 24 cores.. "note even if you only have 4 cores or 6 you must just suplment 0 for each core you do not have.." 000000000001

Affinity E represents 000000001110 all 0s are off and core 4 3 2 are on while the first core is off..

Setting priority on applicaton startup.

C:\Windows\System32\cmd.exe /c start/high "Dolphin" /affinity E "C:\Dolphin-x64\Dolphin.exe"

You can also invoke start/high start/above start/normal " Dont ever use start/realtime" Not unless you want a nice non responsive system.. This will just allow you to give dolphin a little more cpu time "Handy with older cpu's"



Hope this helps ill also write this up for Linux and mac as they are a little more involved as taskset has a different hex system then windows

Please note if you just have a dual core system without HT you can ignore this as you have no way to spawn dolphin on more cores then you already have.. But if you do have a HT processor you can spawn dolphin on THE HT threads.. Sense windows mac and linux treat HT as logical cpu's
All you're really doing is crippling the kernel's ability to perform optimal scheduling.
(08-26-2014, 04:49 PM)tueidj Wrote: [ -> ]All you're really doing is crippling the kernel's ability to perform optimal scheduling.

Per application will not hurt any other process... So long as you do not set it for any system services.. If the mods feel this thread is in approate feel free to delete it.
No, it will just hurt the process that you are trying to "help", because you've blocked it from being able to use particular cores for some arbitrary reason even though the kernel values all cores equally.
(08-26-2014, 05:04 PM)tueidj Wrote: [ -> ]No, it will just hurt the process that you are trying to "help", because you've blocked it from being able to use particular cores for some arbitrary reason even though the kernel values all cores equally.

While you are correct windows should value all cores as equals there are times when setting process affinity does in fact help.. While it may or not make much of a difference on your system its not going to hurt your computer.. The downside is your constricting the application to a set number of cores.. The upside is it does seem to help where applications that draw large amounts of memory seem to benefit from it.

From testing with setting the affinity from all cores to all other cores then 0 Dolphin does seem a little more normalized..
I never said it would hurt my computer, it's just pointless and is no more helpful than other snake-oil suggestions like RAM optimizers and registry cleaners.
(08-26-2014, 07:13 PM)tueidj Wrote: [ -> ]I never said it would hurt my computer, it's just pointless and is no more helpful than other snake-oil suggestions like RAM optimizers and registry cleaners.

its a little bit different then a ram optimizer. While programs that might write small data into L2 cash 10k or less would not benefit from this as Dolphin seems to like alot of ram and alot of large l2 writes.. After 2 days of playing with it core / thread bound vs auto most games seem to benift from it.. (Legend of zelda TP just seems to have issues with or without it.. Could be my disk was kinda scratched when i did the dump of it might have affected the dump will redump and test.)