Catch invalid UTF-8 error when loading config
Show a better error: https://groups.google.com/forum/m/#!topic/mpf-users/vVAf7JKA2uI
diff --git a/mpf/core/assets.py b/mpf/core/assets.py
index 56c66ee50..d5f2cba69 100644
--- a/mpf/core/assets.py
+++ b/mpf/core/assets.py
@@ -358,9 +358,14 @@ class BaseAssetManager(MpfController):
         root_path = os.path.join(path, asset_class['path_string'])
         self.log.debug("Processing assets from base folder: %s", root_path)
 
+        # ignore temporary files
+        ignore_prefixes = (".", "~")
+        # do not get fooled by windows or mac garbage
+        ignore_files = ("desktop.ini", "Thumbs.db")
+
         for path, _, files in os.walk(root_path, followlinks=True):
             valid_files = [f for f in files if f.endswith(
-                           asset_class['extensions'])]
+                           asset_class['extensions']) and not f.startswith(ignore_prefixes) and f != ignore_files]
             for file_name in valid_files:
                 folder = os.path.basename(path)
                 name = os.path.splitext(file_name)[0].lower()
diff --git a/mpf/file_interfaces/yaml_interface.py b/mpf/file_interfaces/yaml_interface.py
index 70b5010e5..b7dcc57c3 100644
--- a/mpf/file_interfaces/yaml_interface.py
+++ b/mpf/file_interfaces/yaml_interface.py
@@ -283,8 +283,10 @@ class YamlInterface(FileInterface):
     def get_show_file_version(filename):
         """Return show file version."""
         with open(filename) as f:
-            file_version = f.readline().split('show_version=')[-1:][0]
-
+            try:
+                file_version = f.readline().split('show_version=')[-1:][0]
+            except ValueError:
+                return 0
         try:
             return int(file_version)
         except ValueError:
['mpf/core/assets.py', 'mpf/file_interfaces/yaml_interface.py']