RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

    EmulationStation often crashing when using themes other than the default

    Scheduled Pinned Locked Moved Help and Support
    troubleshootingthemeses themescrashingfreeze issues
    23 Posts 8 Posters 4.8k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • pjftP
      pjft @yewox50273
      last edited by

      Hi all.

      If you currently install the emulationstation-dev package from source and turn on threaded loading again, we just pushed a fix that we hope has addressed the previous issues.

      If someone who used to be able to replicate this consistently can try it out we'd love the feedback as we can't replicate it on our end.

      WeirdHW 1 Reply Last reply Reply Quote 0
      • S sleve_mcdichael referenced this topic on
      • WeirdHW
        WeirdH @pjft
        last edited by

        @pjft Sorry, lost track of this topic, mostly because my freezing was solved months ago by setting 'only parse gamelists' to on. I only just installed the -dev version yesterday, now with threaded loading set to true. Will report back if I encounter anything of note.

        1 Reply Last reply Reply Quote 1
        • LolonoisL
          Lolonois
          last edited by

          If I connect the dots here and in addition to the merged changes [1] @pjft was referring to, I see also the option that the file log might choke caused by a specific combination of many log writes, threaded loading and slower file operations by rpi3 and/or sd-card (or even undervoltaging, which is crucial to sd-card operations).

          While I am unable to reproduce it, it might be considered to reduce the log output of missing theme resources by lowering the log level (WARNING to DEBUG). It would reduce the probability of file log chokes and would also speed up the normal ES boot:

          diff --git a/es-core/src/ThemeData.cpp b/es-core/src/ThemeData.cpp
          index cb1b265..45b54a6 100644
          --- a/es-core/src/ThemeData.cpp
          +++ b/es-core/src/ThemeData.cpp
          @@ -517,11 +517,11 @@ void ThemeData::parseElement(const pugi::xml_node& root, const std::map<std::str
                                  if(!ResourceManager::getInstance()->fileExists(path))
                                  {
                                          std::stringstream ss;
          -                               ss << "  Warning " << error.msg; // "from theme yadda yadda, included file yadda yadda
          +                               ss << "  Message " << error.msg; // "from theme yadda yadda, included file yadda yadda
                                          ss << "could not find file \"" << node.text().get() << "\" ";
                                          if(node.text().get() != path)
                                                  ss << "(which resolved to \"" << path << "\") ";
          -                               LOG(LogWarning) << ss.str();
          +                               LOG(LogDebug) << ss.str();
                                  }
                                  element.properties[node.name()] = path;
                                  break;
          

          Additionally a mutex for log file write operations might be used as outlined here [2] to make fprintf() [3] thread safe.

          [1] github.com/RetroPie/EmulationStation/pull/774/files#diff-20f861dd5841312f45eb90d5a56cd5addad0657c66605d6235696a345907e15d
          [2] https://stackoverflow.com/questions/43427405/c-writing-to-a-file-in-multithreaded-program
          [3] https://github.com/RetroPie/EmulationStation/blob/52c04d77864287aa0ae7f484460966d8253079df/es-core/src/Log.cpp#L77

          1 Reply Last reply Reply Quote 0
          • First post
            Last post

          Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

          Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.