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

    Video Preview in EmulationStation

    Scheduled Pinned Locked Moved Ideas and Development
    emulationstatioraspberry pivideo
    552 Posts 46 Posters 621.0k 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.
    • FloobF
      Floob
      last edited by

      That would be great if there is a centralised project to move the development of ES on RetroPie forward.
      I think everyone would love to see some progress with that front-end.

      You will find lots of guys happy to help out with the aesthetic side of themes such as @lilbud and @Rookervik

      You may get some ideas for the video playback from how Attract Mode does this:
      https://retropie.org.uk/forum/topic/93/attract-mode-with-retropie-alternative-to-emulationstation

      Please read the Docs before asking a new question.
      RetroPie Help Guides: https://goo.gl/3gcNsT

      1 Reply Last reply Reply Quote 1
      • RionR
        Rion @Floob
        last edited by

        @Floob said in Video Preview in EmulationStation:

        That looks really promising! Very impressive :)

        Perhaps you should collaborate with these guys:
        https://retropie.org.uk/forum/topic/3121/emulationstation-mod/220

        @Zigurana @jacobfk20 @ben_thatmustbeme

        Yes please do 😉

        FBNeo rom filtering
        Mame2003 Arcade Bezels
        Fba Arcade Bezels
        Fba NeoGeo Bezels

        1 Reply Last reply Reply Quote 1
        • R
          robertybob @fieldofcows
          last edited by

          @fieldofcows OMFG this makes me extremely happy!!!

          How does having a video preview affect theming? Does the positioning work the same as artwork?

          Also, what software are you using to play the video - Omxplayer?

          fieldofcowsF 1 Reply Last reply Reply Quote 2
          • GtBFilmsG
            GtBFilms
            last edited by

            Nice!

            I played about with attract mode previously because I like the idea of video previews but it became a bit unmanageable with long ROM lists.

            This looks like a happy medium, where I can have my video previews (and updated marquee image - nice!) without all the additional micro-managing involved in seperate attractmode menus.

            Looking forward to trying this out, thanks.

            RionR 1 Reply Last reply Reply Quote 1
            • fieldofcowsF
              fieldofcows @robertybob
              last edited by

              @robertybob So, I've added a new VideoGameListView which is based on the DetailedGameListView where the md_image item has been renamed to md_marquee and there is a new <video> component named "md_video". Probably best shown with an example:

              <theme>
              	<formatVersion>3</formatVersion>
              	<view name="video">
              		<image name="md_marquee">
              			<pos>0.0293 0.039</pos>
              			<origin>0.0 0.0</origin>
              			<size>0.5488 0.181</size>
              		</image>
              		<video name="md_video">
              			<pos>0.3050 0.472</pos>
              			<origin>0.5 0.5</origin>
              			<size>0.3740 0.3540</size>
              			<delay>1.0</delay>
              		</video>
              	    	<text name="md_publisher">
              			...
              

              Then the gamelist.xml is defined like this:

              	<game>
              		<path>./1944.zip</path>
              		<name>1944 - the loop master (000620 USA)</name>
              		<desc>1944 - the loop master (000620 USA)</desc>
              		<video>/home/pi/Games/config/videos/1944.xmv</video>
              		<marquee>/home/pi/Games/config/marquees/1944.png</marquee>
              		<rating>0.5</rating>
              		<releasedate>20000101T000000</releasedate>
              		<developer>Capcom / 8ing / Raizing</developer>
              		<publisher>2000 Capcom / 8ing / Raizing</publisher>
              		<genre>Shooter / Flying Vertical</genre>
              		<players></players>
              	</game>
              

              Any suggestions for how this can be improved are very welcome :)

              I am using libvlc for the video rendering. This renders into a buffer that then gets imported into an OpenGL texture for display. This will allow for some of the effects seen in Attract Mode videos in the future if we want to add them. I used vlc because I thought I could make use of the hardware acceleration on the rPI but it is not currently using it and, in fact, does not seem to be necessary at least on the rPI3 that I am using.

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

                This is absolutely amazing!!

                Please can you share with us a windows binary build? Please! Please!

                Thank you very much, great work. Regards.

                fieldofcowsF 1 Reply Last reply Reply Quote 0
                • RionR
                  Rion @GtBFilms
                  last edited by

                  @GtBFilms said in Video Preview in EmulationStation:

                  Nice!

                  I played about with attract mode previously because I like the idea of video previews but it became a bit unmanageable with long ROM lists.

                  This looks like a happy medium, where I can have my video previews (and updated marquee image - nice!) without all the additional micro-managing involved in seperate attractmode menus.

                  Looking forward to trying this out, thanks.

                  This is where emumovies comes in. They have tools that will make it easier to maintaining your video snaps.

                  A lifetime subscription is the way to go.
                  Have never regretted it one sec.

                  FBNeo rom filtering
                  Mame2003 Arcade Bezels
                  Fba Arcade Bezels
                  Fba NeoGeo Bezels

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

                    @Nismo I can share a Linux or RPi build but I haven't got a WIndows toolchain setup for EmulationStation yet. If I get time tomorrow I'll see what I can do.

                    Anyone else interested in giving this a try?

                    N FloobF 2 Replies Last reply Reply Quote 2
                    • hansolo77H
                      hansolo77 @Rion
                      last edited by

                      @Rion Well said. I'm a close friend of Circo and his emumovies. Been a lifetime member for years and years. Haven't updated my sets on my gaming PC in a while though, probably outta. Been working on setting up a RetroPie.

                      @fieldofcows I would definitely be willing to test this, but I know very little. I've only been a member of the site for like 3 days, and only just started building my RetroPie in the last 2. Perhaps some day. :)

                      Who's Scruffy Looking?

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

                        @fieldofcows of course i want to test.

                        Maybe i could try to install VS2010 in my computer and try to compile myself if you give me source code. But i never did before...

                        fieldofcowsF 1 Reply Last reply Reply Quote 1
                        • FloobF
                          Floob @fieldofcows
                          last edited by

                          @fieldofcows Sure, I could test it and put a video overview up if you like?

                          Please read the Docs before asking a new question.
                          RetroPie Help Guides: https://goo.gl/3gcNsT

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

                            @Nismo I'll try to see if it builds on Windows today. If you or anyone else want to try to build from source then you can download it from my github

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

                              Hey, good work!
                              The youtube vid is very promising.
                              The initial halting when going into the gamelist, is that because of the video loading / libvlc starting up ?

                              If you ever want to have someone else have look at your code, and you can handle stupid questions, don't hesitate to drop me a line. I am looking for a coding buddy myself, and combining efforts seems like a fun way to bring ES to the next level!

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

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

                                @fieldofcows I'm trying to compile to windows from Linux Lite (Ubuntu 16.04.1 LTS) using Mingw64.

                                First problem i encountered is Mingw64 can't find freeimage so i did this change on CMakeLists.txt:

                                #finding necessary packages
                                #-------------------------------------------------------------------------------
                                if(${GLSystem} MATCHES "Desktop OpenGL")
                                find_package(OpenGL REQUIRED)
                                else()
                                find_package(OpenGLES REQUIRED)
                                endif()
                                find_package(Freetype REQUIRED)
                                find_package(SDL2 REQUIRED)
                                find_package(Boost REQUIRED COMPONENTS system filesystem date_time locale)
                                find_package(Eigen3 REQUIRED)
                                find_package(CURL REQUIRED)
                                find_package(VLC REQUIRED)

                                #add ALSA for Linux
                                if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
                                find_package(ALSA REQUIRED)
                                endif()

                                FIND_PATH( FREEIMAGE_INCLUDE_PATH FreeImage.h
                                    /usr/include
                                    /usr/local/include
                                    /sw/include
                                    /opt/local/include
                                    DOC "The directory where FreeImage.h resides")
                                FIND_LIBRARY( FREEIMAGE_LIBRARY
                                    NAMES FreeImage freeimage libfreeimage libfreeimage-3.15.2
                                    PATHS
                                    /usr/lib64
                                    /usr/lib
                                    /usr/local/lib64
                                    /usr/local/lib
                                    /sw/lib
                                    /opt/local/lib
                                    DOC "The FreeImage library")
                                

                                #-------------------------------------------------------------------------------

                                Now i have not freeimage error while compiling, but any message about freeimage. I'm sure latest version of freeimage is installed.

                                Now Mingw64 can't find vlc library, and i don't know what to do or where to point. I have installed libvlc-dev.

                                This is my Mingw64 script:

                                cmake -DFREETYPE_INCLUDE_DIRS=/usr/include/freetype2/ -DFREETYPE_LIBRARY=/usr/include/freetype2/ft2build.h -DFREEIMAGE_INCLUDE_DIRS=/usr/include/ -DFREEIMAGE_LIBRARY=/usr/include/FreeImage.h -DSDL2_INCLUDE_DIR=/usr/include/SDL2/ -DSDL2_LIBRARY=/usr/include/SDL2/SDL.h -DBOOST_LIBRARYDIR=/usr/lib/x86_64-linux-gnu/ -DCURL_LIBRARY=/usr/include/curl/curl.h -DVLC_INCLUDE_DIR=/usr/include/vlc/ -DVLC_LIBRARY=/usr/include/vlc/libvlc.h -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_C_COMPILER=/usr/bin/x86_64-w64-mingw32-gcc -DCMAKE_CXX_COMPILER=/usr/bin/x86_64-w64-mingw32-c++

                                Any help whould be appreciate, thanx.

                                #-------------------------------------------------------------------------------

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

                                  @Nismo Is MinGW64 a supported build environment for EmulationStation? I don't know much about it but I would have thought you would need to build all the dependencies (including libvlc) using the mingw64 toolchain for this to work rather than trying to build against the linux headers and libraries.

                                  I was hoping to get a windows environment setup over the weekend but I didn't find much time. I did manage to get it nearly working though using Visual Studio 2015. It all builds but I'm getting link errors. It shouldn't take much to get it working except some of my time of which I don't have much!

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

                                    @fieldofcows if you read about mingw64 it's not much difference about compiling for windows from ubuntu, anyway if you need a PC with windows to make test and make an windows environment setup i can let you use mine trought teamviewer. No problems with that. Mi PC is your PC. If i can contribute with my computer, i'm happy to help with the project.
                                    intel core i7 4790k 8gb ram. Windows 10. You will work with an 250GB SSD because all my HDD are full.

                                    what do you think?

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

                                      @Nismo That's a kind offer however I've got development systems coming out my ears! When working on EmulationStation I build on my Linux system before copying the source over to RPi and building on that. The only reason I'm trying to setup a Windows build is to provide a pre-built binary for anyone that wants to try it on Windows.

                                      If you have an Ubuntu system, why don't you try building the native Linux version rather than waiting for a Windows build or messing about with MinGW?

                                      As I said, I'm nearly there and will drop a some prebuilt binaries somewhere so people can pick them up and try out the video preview.

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

                                        @fieldofcows I just install linux only for compiling... because for compiling in windows i need to install a lot of things, so i installed linux in a pendrive only for compiling but not successful.

                                        Also I want to compile the program because i want to translate to my native languaje. Whould be great if ES can read strings from an strings.xml file so we can translate it for the kids.

                                        The only reason i use windows is because of the games... you know... origin.. uplay... steam...

                                        My pc is your pc if you need it. Regards.

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

                                          @fieldofcows ok i finally managed to ming64 can find libs.

                                          For who interested you need to replace FindFreeImage.cmake and FindVLC.cmake inside EmulationStation-master\CMake\Packages with the new ones i provide to you:

                                          http://www.mediafire.com/file/moe07cryzc9i1ew/Findfreeimage_%26_findvlc.rar

                                          Now finally starts compilling but lot of errors and no success. This is the console log:

                                          http://www.mediafire.com/file/sbusqdaw19p3up9/console-log.txt

                                          Any help would be appreciated.

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

                                            @fieldofcows take a look at this source fork, this guy is mantaining support and has automated builds: https://github.com/Herdinger/EmulationStation maybe he can merge your commits and you don't need to compile anything and we can take advantage of the updated code.

                                            I finally tried to compile emulationstation on windows, but i have a lot of errors when compiling:

                                            EmulationStation-master\es-core\src\platform.cpp(87): error C3861: 'open': identifier not found
                                            EmulationStation-master\es-core\src\platform.cpp(89): error C3861: 'close': identifier not found

                                            EmulationStation-master\es-core\src\Util.cpp(105): error C2440: 'initializing' : cannot convert from 'const boost::filesystem3::path::value_type *' to 'std::basic_string<_Elem,_Traits,_Ax>'
                                            4> with
                                            4> [
                                            4> _Elem=char,
                                            4> _Traits=std::char_traits<char>,
                                            4> _Ax=std::allocator<char>
                                            4> ]
                                            4> Ningún constructor ha podido aceptar el tipo de origen o bien la resolución de sobrecarga del constructor era ambigua
                                            4>..............\EmulationStation-master\es-core\src\Util.cpp(106): error C2440: 'inicializando' : no se puede realizar la conversión de 'const boost::filesystem3::path::value_type *' a 'std::basic_string<_Elem,_Traits,_Ax>'
                                            4> with
                                            4> [
                                            4> _Elem=char,
                                            4> _Traits=std::char_traits<char>,
                                            4> _Ax=std::allocator<char>
                                            4> ]
                                            4> No constructor could take the source type, or constructor overload resolution was ambiguous
                                            4> HelpComponent.cpp

                                            EmulationStation-master\es-core\src\Window.cpp(248): error C3861: 'round': identifier not found
                                            EmulationStation-master\es-core\src\Window.cpp(249): error C3861: 'round': identifier not found
                                            EmulationStation-master\es-core\src\Window.cpp(344): error C3861: 'count_if': identifier not found

                                            And more similar errors.. i think the code needs to be a little modified to compile on windows, but i'm not a programmer so i'm stuck at this point.

                                            I'm able to compile if the source code is ok.

                                            I've uploaded the full log for who interested: http://www.mediafire.com/file/n974fz3sp7z2cq3/compilation-log.txt

                                            fieldofcowsF 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.