RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    Step-by-step: How to build EmulationStation on Windows

    Scheduled Pinned Locked Moved Ideas and Development
    emulationstatiobuildingwindows
    108 Posts 22 Posters 83.4k 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.
    • N
      Nismo @fieldofcows
      last edited by Nismo

      @fieldofcows sorry but still can't compile (never compiled before) what i'm doing wrong?

      1> ------ Operation Compilation omitted: project: INSTALL, configuration: Debug Win32 ------
      1> Project not selected to be compiled for this solution configuration
      2> ------ Operation Compilation omitted: project: PACKAGE, configuration: Debug Win32 ------
      2> Project not selected to be compiled for this solution configuration
      ========== Compile: 0 correct, 0 incorrect, 6 updated, 2 omitted ==========

      I'm trying to compile emulationstation-all debug win32

      And if I try to compile release:

      6> ------ Operation Compile started: project: ALL_BUILD, configuration: Release Win32 ------
      6> Building Custom Rule C: /src/EmulationStation/CMakeLists.txt
      6> CMake does not need to be re-run because C: \ src \ EmulationStation \ build \ CMakeFiles \ generate.stamp is up-to-date.
      7> ------ Operation Compile skipped: project: INSTALL, configuration: Release Win32 ------
      7> Project not selected to be compiled for this solution configuration
      8> ------ Operation Compile skipped: project: PACKAGE, configuration: Release Win32 ------
      8> Project not selected to be compiled for this solution configuration
      ========== Compile: 6 correct, 0 incorrect, 0 updated, 2 omitted ==========

      fieldofcowsF 1 Reply Last reply Reply Quote 0
      • fieldofcowsF
        fieldofcows @Nismo
        last edited by

        @Nismo That looks like it built correctly. If you look in your EmulationStation source directory there should be subdirectory named "Release" which should now contain your emulationstation.exe.

        N 2 Replies Last reply Reply Quote 0
        • N
          Nismo @fieldofcows
          last edited by Nismo

          @fieldofcows yes the directories are there but no .exe inside, only log files.

          Edit: it's ok, i was looking in the wrong release and debug folders inside "build" folder.

          Compiled ok, thanks a lot, now i'm trying to translate some menus.

          1 Reply Last reply Reply Quote 0
          • N
            Nismo @fieldofcows
            last edited by Nismo

            @fieldofcows Sorry mate but i have another problem, when i try to run my compiled program, it doesn't use the same libs than before, it requires mt-gd libs and more than before, now requires boost_thread, boost_chrono, boost_date_time, icuind57.dll and icuucd57.dll:

            • boost_chrono-vc140-mt-gd-1_61.dll
            • boost_date_time-vc140-mt-gd-1_61.dll
            • boost_filesystem-vc140-mt-gd-1_61.dll
            • boost_locale-vc140-mt-gd-1_61.dll
            • boost_system-vc140-mt-gd-1_61.dll
            • boost_thread-vc140-mt-gd-1_61.dll
            • icuind57.dll
            • icuucd57.dll

            No problem with boost libs, i have found compiled libs out there, but i can't find icuind57.dll and icuucd57.dll.

            Any tips?

            Edit: fixed by compiling minsizerelease.

            1 Reply Last reply Reply Quote 0
            • N
              Nismo
              last edited by

              @fieldofcows it's not working the no splash screen command in the last build?

              fieldofcowsF 1 Reply Last reply Reply Quote 0
              • fieldofcowsF
                fieldofcows @Nismo
                last edited by

                @Nismo said in Step-by-step: How to build EmulationStation on Windows:

                it's not working the no splash screen command in the last build

                Which fork of ES are you building? I've separated all the 'enhancements' out into separate commits and at the moment there isn't a branch that pulls in the latest of everything. I can put one together for you shortly if you want.

                N 1 Reply Last reply Reply Quote 1
                • N
                  Nismo @fieldofcows
                  last edited by Nismo

                  @fieldofcows can you do it for me? I'm using your fork I downloaded today.

                  Where I can find the commits you did?

                  fieldofcowsF 1 Reply Last reply Reply Quote 0
                  • fieldofcowsF
                    fieldofcows @Nismo
                    last edited by

                    @Nismo I tidied up my fork a while ago. The 'master' now tracks the retropie master. This branch is the previous one I built you and contains all modifications except the opacity bug fix. Will that one do for now?

                    N 1 Reply Last reply Reply Quote 0
                    • N
                      Nismo @fieldofcows
                      last edited by Nismo

                      @fieldofcows Yes!! thank you vey much!!! Nice christmas present.

                      I'm translating to my native language.

                      1 Reply Last reply Reply Quote 0
                      • N
                        Nismo
                        last edited by

                        @fieldofcows do I need to make this commits to that fork?

                        https://github.com/fieldofcows/EmulationStation/commit/59fe6a36cbafc0a94a5db8e877ad3f497c76efd5

                        fieldofcowsF 1 Reply Last reply Reply Quote 0
                        • fieldofcowsF
                          fieldofcows @Nismo
                          last edited by

                          @Nismo No. That one should build fine on Windows.

                          N 1 Reply Last reply Reply Quote 0
                          • N
                            Nismo @fieldofcows
                            last edited by

                            @fieldofcows Thanks again.

                            1 Reply Last reply Reply Quote 0
                            • trigger_deathT
                              trigger_death
                              last edited by trigger_death

                              @fieldofcows I'm having the same issues someone else is having with the following:

                              5>c:\src\emulationstation\es-gamedata\src\GameDataList.h(11): fatal error C1083: Cannot open include file: 'sqlite3.h': No such file or directory (compiling source file C:\src\EmulationStation\es-gamedata\src\GameData.cpp)
                              5>c:\src\emulationstation\es-gamedata\src\GameDataList.h(11): fatal error C1083: Cannot open include file: 'sqlite3.h': No such file or directory (compiling source file C:\src\EmulationStation\es-gamedata\src\GameDataList.cpp)
                              5>c:\src\emulationstation\es-gamedata\src\GameDataList.h(11): fatal error C1083: Cannot open include file: 'sqlite3.h': No such file or directory (compiling source file C:\src\EmulationStation\es-gamedata\src\GameDataFolder.cpp)
                              5>c:\src\emulationstation\es-gamedata\src\GameDataTags.h(11): fatal error C1083: Cannot open include file: 'sqlite3.h': No such file or directory (compiling source file C:\src\EmulationStation\es-gamedata\src\GameDataItem.cpp)
                              5>c:\src\emulationstation\es-gamedata\src\GameDataList.h(11): fatal error C1083: Cannot open include file: 'sqlite3.h': No such file or directory (compiling source file C:\src\EmulationStation\es-gamedata\src\GameDataTags.cpp)
                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                              4>C:\src\EmulationStation\es-core\src\platform.cpp(87): error C3861: 'open': identifier not found
                              4>C:\src\EmulationStation\es-core\src\platform.cpp(89): error C3861: 'close': identifier not found
                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                              4>C:\src\EmulationStation\es-core\src\Util.cpp(105): error C2440: 'initializing': cannot convert from 'const boost::filesystem::path::value_type *' to 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'
                              4>  C:\src\EmulationStation\es-core\src\Util.cpp(105): note: No constructor could take the source type, or constructor overload resolution was ambiguous
                              4>C:\src\EmulationStation\es-core\src\Util.cpp(106): error C2440: 'initializing': cannot convert from 'const boost::filesystem::path::value_type *' to 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>'
                              4>  C:\src\EmulationStation\es-core\src\Util.cpp(106): note: No constructor could take the source type, or constructor overload resolution was ambiguous
                              

                              Now the open()/close() issue you state would be fixed in your fork but I'm using your fork. Not sure about the sqlite and initializing issues.

                              I'm not sure if this is related, but when building a few of the libraries, VS stated a few projects were skipped.

                              fieldofcowsF 1 Reply Last reply Reply Quote 0
                              • fieldofcowsF
                                fieldofcows @trigger_death
                                last edited by

                                @trigger_death My 'master' branch is not the one to use anymore. It should be tracking the RetroPie branch but I think I've committed some stuff there by mistake. I generally do not use that one anymore.

                                I took a backup of the branch from the point where I was working on the video preview with Nismo and named it 'old_master'. You find it here: https://github.com/fieldofcows/EmulationStation/commits/old_master. This might be a good starting point if you want a Windows build. You can switch to it like this:

                                git clone https://github.com/fieldofcows/EmulationStation.git EmulationStation
                                cd EmulationStation
                                git checkout old_master
                                

                                I've got a few features to sort out and try to get merged back to retropie. When this is done I'll create a Windows build branch and keep it up to date with my latest developments.

                                trigger_deathT N 2 Replies Last reply Reply Quote 2
                                • trigger_deathT
                                  trigger_death @fieldofcows
                                  last edited by

                                  @fieldofcows Thanks it works. :D

                                  But about the Windows branch, does that mean there's currently separate branches for building on Windows and Linux systems? Because I was hoping to use this to debug before spending multiple hours building on my Pi.

                                  fieldofcowsF 1 Reply Last reply Reply Quote 0
                                  • N
                                    Nismo @fieldofcows
                                    last edited by Nismo

                                    @fieldofcows I'm very happy to know that we can have an up to date windows branch.

                                    Thank you very much.

                                    @trigger_death If the branchs are up to date I don't think you could have any problem.

                                    1 Reply Last reply Reply Quote 0
                                    • fieldofcowsF
                                      fieldofcows @trigger_death
                                      last edited by

                                      @trigger_death said in Step-by-step: How to build EmulationStation on Windows:

                                      But about the Windows branch, does that mean there's currently separate branches for building on Windows and Linux systems?

                                      That particular branch builds on Windows, Linux and Raspberry pi without problems.

                                      There is a simple fix that needs to be applied to the retropie ES which would allow it to build on Windows. I'll see if I can suggest a PR to get it included in the retropie fork. Although this is a RPi version, I don't see any harm in including this fix.

                                      1 Reply Last reply Reply Quote 1
                                      • trigger_deathT
                                        trigger_death
                                        last edited by trigger_death

                                        @fieldofcows I hope this isn't going too off topic but: Although you say it's well documented, I actually find this guide for Windows to be much more understandable than any of the other guides for Linux or the Raspberry Pi. However, I can't seem to find any guides on how to build & install EmulationStation on RetroPie. Do you have insight into that? It's not mentioned anywhere to where the output should be as well as how to setup the libraries.

                                        Edit: Nevermind, I've figured out how to do it and layed it out here.

                                        1 Reply Last reply Reply Quote 0
                                        • Z
                                          Zigurana
                                          last edited by

                                          This PR, which was merged in recently, broke my builds of ES under windows.
                                          Basically, what happened is that PugiXML is now an git submodule, which is much easier to maintain. However, when you rebase your view, it is not automatically included.
                                          You need to perform

                                           git submodule update --init
                                          

                                          in order to make that happen.

                                          Easy enough, but it took me a while to figure it out.

                                          @BuZz: will we do the same for nanosvg?

                                          If tetris has thought me anything, it's that errors pile up and that accomplishments dissappear.

                                          BuZzB 1 Reply Last reply Reply Quote 0
                                          • BuZzB
                                            BuZz administrators @Zigurana
                                            last edited by BuZz

                                            @Zigurana sorry, should have mentioned that. I probably need to update the readme too.

                                            If nanosvg is managed on git, we could.

                                            To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                                            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.