diff -rupN higan_v106-source.orig/higan/target-tomoko/tomoko.cpp higan_v106-source/higan/target-tomoko/tomoko.cpp
--- higan_v106-source.orig/higan/target-tomoko/tomoko.cpp	2017-12-27 23:48:31.103245742 +0100
+++ higan_v106-source/higan/target-tomoko/tomoko.cpp	2017-12-27 23:49:19.728586352 +0100
@@ -11,6 +11,9 @@ auto locate(string name) -> string {
   location = {Path::config(), "higan/", name};
   if(inode::exists(location)) return location;
 
+  location = {Path::shared(), "higan/", name};
+  if(inode::exists(location)) return location;
+
   directory::create({Path::local(), "higan/"});
   return {Path::local(), "higan/", name};
 }
diff -rupN higan_v106-source.orig/icarus/icarus.cpp higan_v106-source/icarus/icarus.cpp
--- higan_v106-source.orig/icarus/icarus.cpp	2017-12-27 23:48:31.109912227 +0100
+++ higan_v106-source/icarus/icarus.cpp	2017-12-27 23:49:02.672384569 +0100
@@ -11,6 +11,9 @@ auto locate(string name) -> string {
   location = {Path::config(), "icarus/", name};
   if(inode::exists(location)) return location;
 
+  location = {Path::shared(), "icarus/", name};
+  if(inode::exists(location)) return location;
+
   directory::create({Path::local(), "icarus/"});
   return {Path::local(), "icarus/", name};
 }