Windows Update: heavy CPU usage after .NET framework update

I'm seeing some pretty heavy load, something like 90-100% on all cores and my temperature maxing out to 84°C!


After a quick look at Task Manager, TrustedInstaller.exe is the cause but what it's really doing is running a setup task for the .NET framework.

I don't mind that Microsoft is doing optimisation on their huge .NET library, but at the same time I would appreciate if it didn't try to cook my hardware while it's at it. I spent quite a pretty penny on my notebook and would like to keep it running for as long as possible.

How Microsoft treats my notebook CPU during updates.

Go to your "Services" manager by typing in "services.msc" into the Start Menu. This will show you a list of services on your system.


Search for the entries beginning with "Microsoft .NET Framework NGEN" and check the status. If it's running, go to it's properties and stop it. An additional but optional step you can take is disabling it.

You should see an instant drop in CPU usage after doing this.


Nintendo 3DS (and 3DS XL): Upgrading firmware to v4.1-4.5

The information was a little hard to come by so I figured I'd write something up. At time of writing, v6.2 update, v7.0 is the latest firmware available.

The main reason why most people would want any firmware between 4.1-4.5 is to use the Gateway card. The Gateway card lets you bypass the region locks which make it incredibly difficult to get the exact games you want.

If you're looking for a "PS3 way" to upgrade (download a specific firmware and upgrade it via storage) then you're outta luck.  The 3DS requires you to log online and get the latest firmware via the eStore. There's no choices there, only the latest and greatest patches.



In order to upgrade to a specific version of firmware, you have to buy a game which was made during that time when the firmware was "latest".

Note: This only works for upgrading. It is not possible to downgrade using this method!

To check which firmware each game is running, check out It has a very nice filter which tells you exactly which firmware the game is using (scroll to the far right). Sort it by firmware so it's easier to find the right region.

Once you've picked the game you want to buy, run it. The game will check your firmware and if your firmware is older than the one it came with, you'll be asked to upgrade to the firmware included with the game.

IMG_20131209_162849As shown here.

Game titles by version

Just in case the site goes down, there is another list at EurAsia wiki.

Firmwares have a letter at the end signifying the region it was intended for. U or USA, E for Europe, J for Japan. I'm not quite sure what firmwares ending with T and K stand for but I assume it's Taiwan and Korea.

I've sorted this list by firmware and region to make things easier.

Firmware v4.5

4.5.0U Shin Megami Tensei IV
4.5.0E Animal Crossing - New Leaf
4.5.0E Animal Hospital
4.5.0E Donkey Kong Country Returns 3D
4.5.0E Fire Emblem - Awakening
4.5.0E Games Festival 1
4.5.0E LEGO City Undercover - The Chase Begins
4.5.0E LEGO Legends of Chima - Lavals Journey
4.5.0E Luigi's Mansion 2
4.5.0E Pokémon Mystery Dungeon - Gates to Infinity
4.5.0J Luigis Mansion 2
4.5.0U Donkey Kong Country Returns 3D
4.5.0U LEGO City Undercover - The Chase Begins
4.5.0U Luigis Mansion - Dark Moon
4.5.0U Pokemon Mystery Dungeon - Gates to Infinity
4.5.0U Turbo - Super Stunt Squad

Firmware v4.4

4.4.0E Around the World with Hello Kitty and Friends
4.4.0E Castlevania Lords of Shadow - Mirror of Fate
4.4.0E Croods, The - Prehistoric Party!
4.4.0E Fast & Furious - Showdown
4.4.0E Jewel Quest Mysteries 3 - The Seventh Gate
4.4.0E Monster High - Skultimate Roller Maze
4.4.0E Monster Hunter 3 Ultimate
4.4.0E My Riding Stables 3D - Jumping for the Team
4.4.0E Paper Mario - Sticker Star
4.4.0E Project X Zone
4.4.0E Secrets of the Titanic
4.4.0E Sonic & All-Stars Racing Transformed
4.4.0E Viking Invasion 2: Tower Defense
4.4.0E Zero Escape - Virtues Last Reward
4.4.0J Castlevania Lords of Shadow - Mirror of Fate
4.4.0J Dragon Quest VII - Eden no Senshitachi
4.4.0J Layton Kyouju to Choubunmei A no Isan
4.4.0J Pokemon Fushigi no Dungeon - Magnagate to Mugendai no Meikyuu
4.4.0J Super Robot Taisen UX
4.4.0T Mario Tennis Open
4.4.0T New Super Mario Brothers 2
4.4.0T Shin Megami Tensei IV
4.4.0U Brain Age - Concentration Training
4.4.0U Castlevania Lords of Shadow - Mirror of Fate
4.4.0U Etrian Odyssey IV - Legends of the Titan
4.4.0U Fire Emblem - Awakening
4.4.0U Mario Tennis Open
4.4.0U Monster Hunter 3 Ultimate
4.4.0U Naruto Powerful Shippuden
4.4.0U Shin Megami Tensei - Devil Summoner - Soul Hackers

Firmware v4.3

4.3.0U Art Academy - Lessons for Everyone
4.3.0E Angry Birds Trilogy
4.3.0E Ben 10 - Omniverse
4.3.0E El Profesor Layton y la Máscara de los Prodigios
4.3.0E Il Layton e la maschera dei Miracoli
4.3.0E Naruto Powerful Shippuden
4.3.0E Pro Evolution Soccer 2013 3D
4.3.0E Professeur Layton et le Masque des Miracles
4.3.0E Professor Layton und die Maske der Wunder
4.3.0E Puzzler Brain Games
4.3.0E Rise of the Guardians
4.3.0E Survivor 3D - The Ultimate Adventure
4.3.0J Fantasy Life
4.3.0J Inazuma Eleven Go 2 - Chrono Stone - Neppuu
4.3.0J Tobidase Doubutsu no Mori
4.3.0T Naruto SD Powerful Shippuden
4.3.0U Hotel Transylvania
4.3.0U Paper Mario Sticker Star
4.3.0U Pro Evolution Soccer 2013 3D
4.3.0U Professor Layton and the Miracle Mask
4.3.0U Style Savvy - Trendsetters

Firmware v4.2

4.2.0T The Legend of Zelda - Ocarina of Time 3D
4.2.0T Biohazard Revelations

Firmware v4.1

4.1.0U Lalaloopsy Carnival of Friends
4.1.0E Bowling Bonanza 3D
4.1.0E Disney Epic Mickey - Power of Illusion
4.1.0E Disney Princess: My Fairytale Adventure
4.1.0E Freakyforms Deluxe
4.1.0E Hotel Transylvania
4.1.0E Imagine - Fashion World 3D
4.1.0E Jewel Master - Atlantis 3D
4.1.0E LEGO The Lord of the Rings
4.1.0E LEGO The Lord of the Rings
4.1.0E New Art Academy
4.1.0E New Super Mario Bros. 2
4.1.0E Pippi Longstocking 3D
4.1.0E Rabbids Rumble
4.1.0E Sherlock Holmes - The Mystery of the Frozen City
4.1.0E Shin Megami Tensei - Devil Survivor Overclocked
4.1.0E Spy Hunter
4.1.0E Transformers Prime - The Game
4.1.0J AKB48+Me
4.1.0J Bravely Default - Flying Fairy
4.1.0J E.X. Troopers
4.1.0J Project X Zone
4.1.0J Sengoku Musou Chronicle 2nd
4.1.0J Tohoku Daigaku Karei Igaku Kenkyuusho - Kawashima Ryuuta Kyouju Kanshuu - Monosugoku Nou wo Kitaeru 5-Funkan no Oni Training
4.1.0T Nintendogs + Cats - French Bulldog and New Friends
4.1.0T Nintendogs + Cats - Shiba and New Friends
4.1.0T Nintendogs + Cats - Toy Poodle & New Friends
4.1.0T Star Fox 64 3D
4.1.0U Adventure Time - Hey Ice King! Whyd You Steal Our Garbage?!
4.1.0U Code of Princess
4.1.0U Disney Epic Mickey - The Power of Illusion
4.1.0U Disney Princess - My Fairytale Adventure
4.1.0U Finding Nemo - Escape to the Big Blue
4.1.0U Harvest Moon 3D - A New Beginning
4.1.0U Imagine - Fashion Life
4.1.0U LEGO The Lord of the Rings
4.1.0U Myst
4.1.0U New Super Mario Bros 2
4.1.0U Rabbids Rumble
4.1.0U Scribblenauts Unlimited
4.1.0U Skylanders Giants
4.1.0U The Trash Pack
4.1.0U Wipeout 3
4.1.0U Wreck-It Ralph
4.1.0U Zero Escape - Virtues Last Reward


Migrating from Google Code to Github and keeping revision history

This was a tricky one, and I ran into a few problems trying to move DCX over from GoogleCode to Github.

  • Usernames on Google Code are emails. When you bring them over, your commit messages are littered with potentially private email addresses that your committers don't want to share with the world (well, it's mainly spambots that they don't want to share with).
  • Windows. If you're trying to do this on Windows, forget it. Save yourself the hassle and grab Linuxmint, Ubuntu or whichever flavour you prefer and run it in Virtualbox. It won't cost you anything and takes less than an hour to download and install.

The time spent setting up Linux will be well worth it compared to trying to finish ANY of this on Windows.

Seriously, don't fight Windows. It wasn't made to work there.

Setting up

Find your terminal and make yourself a folder to work with. This is where all your magic will happen.

mkdir code

cd code

We'll need to install a few things. Enter your password when prompted.

sudo apt-get install subversion

sudo apt-get install git

sudo apt-get install git-svn

sudo apt-get install tig

I don't think I need to explain why subversion and git are necessary.

git-svn is the "in-between" software which imports SVN data into a format git can understand. It also sorts arranges the SVN branches into git branches.

The tool tig is VERY useful for checking your changes as they stand after pulling the repository into your computer (and before pushing it onto Github).

Generating a list of usernames

Check out a copy of your GoogleCode repository in a folder called "googlecode" (replacing DCX with whatever your project name is)

svn checkout googlecode

cd googlecode

This one is straight from John Albin's bag of tricks and it's a real winner!

svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > ../authors.txt

cd ..

It fetches all the usernames from commit messages, sorts, removes duplicates and saves them to a file called "authors.txt".

Open up this file (using vim or a text editor of any sort) and you should see something like this: = <>

Keep the left column as is, but feel free to change the right column. = Twig Nguyen <>

The name and email on the right will be used in the git history. Once all the changes are finished, save and close.

Pulling the repository onto your computer

Because Google doesn't allow shell access to the SVN repository, you can't simply dump and copy the files out.

What we have to do is use git-svn and pull them out using SVN and save it in git.

git svn clone -A authors.txt --stdlayout gitsvn

Depending on how big your repository is, this may take a while.

Once it's done, take a look at how it's set up so far by typing:

cd gitsvn

git status

# On branch master
nothing to commit, working directory clean

The "trunk" is now called "master" branch in git. This was your stable channel. Type "tig" to see what's going on, and if the usernames were migrated correctly. Select the commit (arrow keys) and open the commit details with the Enter button.

If you're happy with how it is, time to push it into github! Make sure that your account has been set up properly by typing:

ssh -T


If you run into errors, please follow the information on these two pages to help troubleshoot your woes.


Once it's up and running, you can link github to your local git repository.

git remote add origin

git fetch origin

git merge origin/master

git push origin master

To summise what just happened. We added a "remote" location pointing to your github project and called it "origin" as this is your new home. You fetch the current details about it and then merge in the origin's master branch into your master branch, melding the gitsvn repository with the github repository.

As soon as that's done, we push all our existing files from gitsvn into the empty repository at origin (github). This again should take some time.

For most people, this should be enough.

SVN branches aren't done yet!

If you use SVN branches, then they're not in github yet!

Now for the mind bending bit and training your brain a little about Subversion branches and git branches.

SVN branches.... yeah, it can get messy.

To switch to another branch such as "dcxutf":

git checkout dcxutf

tig (optional)

git push origin dcxutf

Switching the branch means that git will delete any files specific to "master" and revive any files from "dcxutf", along with any changes to files mutual to both branches. It's quick and easy.

Use tig again to check if revision history and changes were migrated properly. Then finally pushing the branch upstream into origin (github).

Repeat this process for any branches you wish to keep.

Cleaning up

Make sure that everything has been pushed into github. Browse your project page a little and you can see things appear instantly.

Once you're done, feel free to remove anything from the "code" folder you made in the very first step.


Linux/Bash: Execute Variable for Quick and Dirty Command Line Shortcuts

Whilst in the process of moving my personal SVN repositories into a new home, I realised I had quite a few. Thought it'd be handy to write a short one liner to help myself out.

REPO="repository_name" ; CMD="svnadmin dump $REPO > $REPO.dump" ; eval $CMD

Replace repo each time you need to run it and you're run when you're ready!

A few days late, but happy Halloween!

Copyright © Twig's Tech Tips
Theme by BloggerThemes & TopWPThemes Sponsored by iBlogtoBlog