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.
    • J
      jdrassa @fieldofcows
      last edited by

      @fieldofcows I was working off of the RetroPie fork. I pulled in the changes from yours and I am now able to build. Thanks.

      Get latest build of EmulationStation for Windows here

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

        @fieldofcows :
        After pulling in the latest changes on the RetroPie/master branch, I am now trying to compile with your video-view included.
        When first setting up my build environment, I followed the steps you described above, and all was well.
        Now, after pulling in these latest changes, I re-ran the long cmake command, and tried to build.
        I run into the following error: in viewcontroller.cpp, line15: #include <SDL2/SDL.h>, which gives me the error: 1> ViewController.cpp 1>C:\src\EmulationStation\es-app\src\views\ViewController.cpp(15): fatal error C1083: Cannot open include file: 'SDL2/SDL.h': No such file or directory .
        A simple enough message to understand, why I am getting it is another matter.
        When I go into my C:\src\lib\SDL2-2.0.5\include folder, SDL.h is there alright.
        This does not match with %ES_LIB_DIR%\SDL2-2.0.5\include\SDL2\SDL.h, which I think <SDL2/SDL.h> gets translated into?
        Sure enough, when I change it into just #include <SDL.h> I can build just fine.

        I am just wondering why I need to make that change, and apparently you do not.

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

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

          @Zigurana - the retropie ES branch contains a couple issues that prevent it from building in Windows. I have the fixes ready which I'll submit as a PR shortly. I was building from my fork which already included the fixes. The SDL2/SDL.h include was actually added for the video view so it's my fault that the Windows build breaks here when following the instructions in this post.

          There are two ways to fix it. The first is to do exactly what you've done and remove the SDL2/ from the beginning. The second is to add the parent directory of SDL2 into the include path. This is what happens on the RPi and Linux. I would suggest just fixing it the way you have done for now.

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

            @fieldofcows I'm trying to compile, i had the same error than @zigurana and i made the same change for #include <SDL.h> but i still have errors and i can't compile:

            Error C3861 'open': can't find identifier es-core C:\src\EmulationStation\es-core\src\platform.cpp 87

            Error C3861 'close': can't find identifier es-core C:\src\EmulationStation\es-core\src\platform.cpp 89

            Error C2440 'initializating': can't do conversion of 'const boost::filesystem::path::value_type *' a 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' es-core C:\src\EmulationStation\es-core\src\Util.cpp 105

            Error C2440 'initializating': can't do conversion of 'const boost::filesystem::path::value_type *' a 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' es-core C:\src\EmulationStation\es-core\src\Util.cpp 106

            Error LNK1104 can't open file '....\Debug\es-cored.lib' emulationstation C:\src\EmulationStation\build\es-app\LINK 1

            I translated some error because my VS2015 is not in english language so may differ a bit.

            Any help would be aprecciated.

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

              @Nismo In addition to the SDL change, have a look at this commit to my fork:

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

              This details the changes that need to be made in order to compile the RetroPie ES for Windows.

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

                @fieldofcows Thank you i'll take a look right now.

                1 Reply Last reply Reply Quote 0
                • 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
                                            • 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.