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

    Updated EmulationStation for Windows

    Scheduled Pinned Locked Moved Projects and Themes
    emulationstatiowindows
    741 Posts 97 Posters 541.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.
    • f.carusoF
      f.caruso @dukeblooders
      last edited by

      @dukeblooders

      Can we use a folder path for {random:} ? Or what game properties can be used ? I tried to add some properties in my gamelist, but I doesn't work.

      No {random:image}, {random:thumbnail}, {random:marquee} only. It takes random scrapped resources only.

      I saw a delay property for videos, can we use a similar property for images ?

      No...

      @maxiducoli

      No. I tried to do that in a CEmu launcher written in c#.
      But it's complex code, and it's very far from perfect.
      I didn't try with pcsx2.

      Also, you can find me on discord. The easiest one is Batocera's Discord...

      M dukebloodersD 4 Replies Last reply Reply Quote 0
      • M
        maxiducoli @f.caruso
        last edited by

        @f-caruso
        In Pcsx2 Just copy a already configured xnput INI and works perfecto. The problem is dinput, cause change on diferents controllers

        1 Reply Last reply Reply Quote 0
        • dukebloodersD
          dukeblooders @f.caruso
          last edited by

          @f-caruso
          OK I managed to make it work, thanks.

          1 Reply Last reply Reply Quote 0
          • M
            maxiducoli @f.caruso
            last edited by

            @f-caruso

            Can you send me the source code of Cemu Launcher and maybe i could help or do some executable for ous.
            i have Discord but i dont know how to use jja my user is maxiducoli too.

            I see PCSX2 source and have a plugin named OnePAD. This plugin use gamecontrollerdb.txt and is like joysticks out the box of batocera or autoconfig of RetroArch. Can you compile this source for windows? Just the DLL. I can´t undertand too much of C++ and my HDD its only os 160GB and Visual Studio is too large for all my programs + Visual Studio Community. I can´t install for now.

            See that.

            /* OnePAD - author: arcum42(@gmail.com)

            • Copyright (C) 2009
            • Based on ZeroPAD, author zerofrog@gmail.com
            • Copyright (C) 2006-2007
            • This program is free software; you can redistribute it and/or modify
            • it under the terms of the GNU General Public License as published by
            • the Free Software Foundation; either version 2 of the License, or
            • (at your option) any later version.
            • This program is distributed in the hope that it will be useful,
            • but WITHOUT ANY WARRANTY; without even the implied warranty of
            • MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
            • GNU General Public License for more details.
            • You should have received a copy of the GNU General Public License
            • along with this program; if not, write to the Free Software
            • Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
              */

            #include "joystick.h"
            #include "resources.h"
            #include <signal.h> // sigaction

            //////////////////////////
            // Joystick definitions //
            //////////////////////////

            // opens handles to all possible joysticks
            void JoystickInfo::EnumerateJoysticks(std::vector<std::unique_ptr<GamePad>> &vjoysticks)
            {
            uint32_t flag = SDL_INIT_JOYSTICK | SDL_INIT_HAPTIC | SDL_INIT_EVENTS | SDL_INIT_GAMECONTROLLER;

            if ((SDL_WasInit(0) & flag) != flag) {
                // Tell SDL to catch event even if the windows isn't focussed
                SDL_SetHint(SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS, "1");
            
                if (SDL_Init(flag) < 0)
                    return;
            
                // WTF! Give me back the control of my system
                struct sigaction action = {};
                action.sa_handler = SIG_DFL;
                sigaction(SIGINT, &action, nullptr);
                sigaction(SIGTERM, &action, nullptr);
            
                SDL_JoystickEventState(SDL_QUERY);
                SDL_GameControllerEventState(SDL_QUERY);
                SDL_EventState(SDL_CONTROLLERDEVICEADDED, SDL_ENABLE);
                SDL_EventState(SDL_CONTROLLERDEVICEREMOVED, SDL_ENABLE);
            
                { // Support as much Joystick as possible
                    GBytes *bytes = g_resource_lookup_data(onepad_res_get_resource(), "/onepad/res/game_controller_db.txt", G_RESOURCE_LOOKUP_FLAGS_NONE, nullptr);
            
                    size_t size = 0;
                    // SDL forget to add const for SDL_RWFromMem API...
                    void *data = const_cast<void *>(g_bytes_get_data(bytes, &size));
            
                    SDL_GameControllerAddMappingsFromRW(SDL_RWFromMem(data, size), 1);
            
                    g_bytes_unref(bytes);
            
                    // Add user mapping too
                    for (auto const &map : g_conf.sdl2_mapping)
                        SDL_GameControllerAddMapping(map.c_str());
                }
            }
            
            vjoysticks.clear();
            
            for (int i = 0; i < SDL_NumJoysticks(); ++i) {
                vjoysticks.push_back(std::unique_ptr<GamePad>(new JoystickInfo(i)));
                // Something goes wrong in the init, let's drop it
                if (!vjoysticks.back()->IsProperlyInitialized())
                    vjoysticks.pop_back();
            }
            

            }

            void JoystickInfo::Rumble(unsigned type, unsigned pad)
            {
            if (type >= m_effects_id.size())
            return;

            if (!(g_conf.pad_options[pad].forcefeedback))
                return;
            
            if (m_haptic == nullptr)
                return;
            
            int id = m_effects_id[type];
            if (SDL_HapticRunEffect(m_haptic, id, 1) != 0) {
                fprintf(stderr, "ERROR: Effect is not working! %s, id is %d\n", SDL_GetError(), id);
            }
            

            }

            JoystickInfo::~JoystickInfo()
            {
            // Haptic must be closed before the joystick
            if (m_haptic != nullptr) {
            for (const auto &eid : m_effects_id) {
            if (eid >= 0)
            SDL_HapticDestroyEffect(m_haptic, eid);
            }

                SDL_HapticClose(m_haptic);
            }
            
            if (m_controller != nullptr) {
            

            #if SDL_MINOR_VERSION >= 4
            // Version before 2.0.4 are bugged, JoystickClose crashes randomly
            // Note: GameControllerClose calls JoystickClose)
            SDL_GameControllerClose(m_controller);
            #endif
            }
            }

            JoystickInfo::JoystickInfo(int id)
            : GamePad()
            , m_controller(nullptr)
            , m_haptic(nullptr)
            , m_unique_id(0)
            {
            SDL_Joystick *joy = nullptr;
            m_effects_id.fill(-1);
            // Values are hardcoded currently but it could be later extended to allow remapping of the buttons
            m_pad_to_sdl[PAD_L2] = SDL_CONTROLLER_AXIS_TRIGGERLEFT;
            m_pad_to_sdl[PAD_R2] = SDL_CONTROLLER_AXIS_TRIGGERRIGHT;
            m_pad_to_sdl[PAD_L1] = SDL_CONTROLLER_BUTTON_LEFTSHOULDER;
            m_pad_to_sdl[PAD_R1] = SDL_CONTROLLER_BUTTON_RIGHTSHOULDER;
            m_pad_to_sdl[PAD_TRIANGLE] = SDL_CONTROLLER_BUTTON_Y;
            m_pad_to_sdl[PAD_CIRCLE] = SDL_CONTROLLER_BUTTON_B;
            m_pad_to_sdl[PAD_CROSS] = SDL_CONTROLLER_BUTTON_A;
            m_pad_to_sdl[PAD_SQUARE] = SDL_CONTROLLER_BUTTON_X;
            m_pad_to_sdl[PAD_SELECT] = SDL_CONTROLLER_BUTTON_BACK;
            m_pad_to_sdl[PAD_L3] = SDL_CONTROLLER_BUTTON_LEFTSTICK;
            m_pad_to_sdl[PAD_R3] = SDL_CONTROLLER_BUTTON_RIGHTSTICK;
            m_pad_to_sdl[PAD_START] = SDL_CONTROLLER_BUTTON_START;
            m_pad_to_sdl[PAD_UP] = SDL_CONTROLLER_BUTTON_DPAD_UP;
            m_pad_to_sdl[PAD_RIGHT] = SDL_CONTROLLER_BUTTON_DPAD_RIGHT;
            m_pad_to_sdl[PAD_DOWN] = SDL_CONTROLLER_BUTTON_DPAD_DOWN;
            m_pad_to_sdl[PAD_LEFT] = SDL_CONTROLLER_BUTTON_DPAD_LEFT;
            m_pad_to_sdl[PAD_L_UP] = SDL_CONTROLLER_AXIS_LEFTY;
            m_pad_to_sdl[PAD_L_RIGHT] = SDL_CONTROLLER_AXIS_LEFTX;
            m_pad_to_sdl[PAD_L_DOWN] = SDL_CONTROLLER_AXIS_LEFTY;
            m_pad_to_sdl[PAD_L_LEFT] = SDL_CONTROLLER_AXIS_LEFTX;
            m_pad_to_sdl[PAD_R_UP] = SDL_CONTROLLER_AXIS_RIGHTY;
            m_pad_to_sdl[PAD_R_RIGHT] = SDL_CONTROLLER_AXIS_RIGHTX;
            m_pad_to_sdl[PAD_R_DOWN] = SDL_CONTROLLER_AXIS_RIGHTY;
            m_pad_to_sdl[PAD_R_LEFT] = SDL_CONTROLLER_AXIS_RIGHTX;

            if (SDL_IsGameController(id)) {
                m_controller = SDL_GameControllerOpen(id);
                joy = SDL_GameControllerGetJoystick(m_controller);
            } else {
                joy = SDL_JoystickOpen(id);
            }
            
            if (joy == nullptr) {
                fprintf(stderr, "onepad:failed to open joystick %d\n", id);
                return;
            }
            
            // Collect Device Information
            char guid[64];
            SDL_JoystickGetGUIDString(SDL_JoystickGetGUID(joy), guid, 64);
            const char *devname = SDL_JoystickNameForIndex(id);
            
            if (m_controller == nullptr) {
                fprintf(stderr, "onepad: Joystick (%s,GUID:%s) isn't yet supported by the SDL2 game controller API\n"
                                "Fortunately you can use AntiMicro (https://github.com/AntiMicro/antimicro) or Steam to configure your joystick\n"
                                "The mapping can be stored in OnePAD2.ini as 'SDL2 = <...mapping description...>'\n"
                                "Please report it to us (https://github.com/PCSX2/pcsx2/issues) so we can add your joystick to our internal database.",
                        devname, guid);
            

            #if SDL_MINOR_VERSION >= 4 // Version before 2.0.4 are bugged, JoystickClose crashes randomly
            SDL_JoystickClose(joy);
            #endif

                return;
            }
            
            std::hash<std::string> hash_me;
            m_unique_id = hash_me(std::string(guid));
            
            // Default haptic effect
            SDL_HapticEffect effects[NB_EFFECT];
            for (int i = 0; i < NB_EFFECT; i++) {
                SDL_HapticEffect effect;
                memset(&effect, 0, sizeof(SDL_HapticEffect)); // 0 is safe default
                SDL_HapticDirection direction;
                direction.type = SDL_HAPTIC_POLAR; // We'll be using polar direction encoding.
                direction.dir[0] = 18000;
                effect.periodic.direction = direction;
                effect.periodic.period = 10;
                effect.periodic.magnitude = (Sint16)(g_conf.get_ff_intensity()); // Effect at maximum instensity
                effect.periodic.offset = 0;
                effect.periodic.phase = 18000;
                effect.periodic.length = 125; // 125ms feels quite near to original
                effect.periodic.delay = 0;
                effect.periodic.attack_length = 0;
                /* Sine and triangle are quite probably the best, don't change that lightly and if you do
                 * keep effects ordered by type
                 */
                if (i == 0) {
                    /* Effect for small motor */
                    /* Sine seems to be the only effect making little motor from DS3/4 react
                     * Intensity has pretty much no effect either(which is coherent with what is explain in hid_sony driver
                     */
                    effect.type = SDL_HAPTIC_SINE;
                } else {
                    /** Effect for big motor **/
                    effect.type = SDL_HAPTIC_TRIANGLE;
                }
            
                effects[i] = effect;
            }
            
            if (SDL_JoystickIsHaptic(joy)) {
                m_haptic = SDL_HapticOpenFromJoystick(joy);
            
                for (auto &eid : m_effects_id) {
                    eid = SDL_HapticNewEffect(m_haptic, &effects[0]);
                    if (eid < 0) {
                        fprintf(stderr, "ERROR: Effect is not uploaded! %s\n", SDL_GetError());
                        return;
                    }
                }
            }
            
            fprintf(stdout, "onepad: controller (%s) detected%s, GUID:%s\n",
                    devname, m_haptic ? " with rumble support" : "", guid);
            
            m_no_error = true;
            

            }

            const char *JoystickInfo::GetName()
            {
            return SDL_JoystickName(SDL_GameControllerGetJoystick(m_controller));
            }

            size_t JoystickInfo::GetUniqueIdentifier()
            {
            return m_unique_id;
            }

            bool JoystickInfo::TestForce(float strength = 0.60)
            {
            // This code just use standard rumble to check that SDL handles the pad correctly! --3kinox
            if (m_haptic == nullptr)
            return false; // Otherwise, core dump!

            SDL_HapticRumbleInit(m_haptic);
            
            // Make the haptic pad rumble 60% strength for half a second, shoudld be enough for user to see if it works or not
            if (SDL_HapticRumblePlay(m_haptic, strength, 400) != 0) {
                fprintf(stderr, "ERROR: Rumble is not working! %s\n", SDL_GetError());
                return false;
            }
            
            return true;
            

            }

            int JoystickInfo::GetInput(gamePadValues input)
            {
            float k = g_conf.get_sensibility() / 100.0; // convert sensibility to float

            // Handle analog inputs which range from -32k to +32k. Range conversion is handled later in the controller
            if (IsAnalogKey(input)) {
                int value = SDL_GameControllerGetAxis(m_controller, (SDL_GameControllerAxis)m_pad_to_sdl[input]);
                value *= k;
                return (abs(value) > m_deadzone) ? value : 0;
            }
            
            // Handle triggers which range from 0 to +32k. They must be converted to 0-255 range
            if (input == PAD_L2 || input == PAD_R2) {
                int value = SDL_GameControllerGetAxis(m_controller, (SDL_GameControllerAxis)m_pad_to_sdl[input]);
                return (value > m_deadzone) ? value / 128 : 0;
            }
            
            // Remain buttons
            int value = SDL_GameControllerGetButton(m_controller, (SDL_GameControllerButton)m_pad_to_sdl[input]);
            return value ? 0xFF : 0; // Max pressure
            

            }

            void JoystickInfo::UpdateGamePadState()
            {
            SDL_GameControllerUpdate();
            }

            SDL and load allmost all joysticks.

            I hope you can understandme.

            Bye!

            1 Reply Last reply Reply Quote 0
            • M
              maxiducoli @f.caruso
              last edited by

              @f-caruso

              This is the Xinput Lillypad.ini CFG for ALL Xinput controllers (if you install SCP Toolkit you can use every controller for PCSX2 with out config the buttons.

              M 1 Reply Last reply Reply Quote 0
              • M
                maxiducoli @maxiducoli
                last edited by

                @maxiducoli said in Updated EmulationStation for Windows:

                @f-caruso

                This is the Xinput Lillypad.ini CFG for ALL Xinput controllers (if you install SCP Toolkit you can use every controller for PCSX2 with out config the buttons.

                [General Settings]

                Last Config Path=inis

                Last Config Name=LilyPad.lily

                Force Cursor Hide=0

                Mouse Unfocus=1

                Background=1

                Multiple Bindings=0

                DirectInput Game Devices=1

                XInput=1

                DualShock 3=0

                Multitap 1=0

                Multitap 2=0

                Escape Fullscreen Hack=0

                Disable Screen Saver=0

                Logging=0

                Save State in Title=0

                GH2=0

                Turbo Key Hack=0

                Vista Volume=1

                Close Hacks=0

                Keyboard Mode=2

                Mouse Mode=0

                Volume=100

                [Pad 0 0]

                Mode=1

                Auto Analog=0

                [Pad 0 1]

                Mode=1

                Auto Analog=0

                [Pad 0 2]

                Mode=1

                Auto Analog=0

                [Pad 0 3]

                Mode=1

                Auto Analog=0

                [Pad 1 0]

                Mode=1

                Auto Analog=0

                [Pad 1 1]

                Mode=1

                Auto Analog=0

                [Pad 1 2]

                Mode=1

                Auto Analog=0

                [Pad 1 3]

                Mode=1

                Auto Analog=0

                [Device 0]

                Display Name=XInput Pad 0

                Instance ID=XInput Pad 0

                API=4

                Type=3

                Binding 0=0x00040000, 0, 20, 65536, 0, 0, 0

                Binding 1=0x00040001, 0, 22, 65536, 0, 0, 0

                Binding 2=0x00040002, 0, 23, 65536, 0, 0, 0

                Binding 3=0x00040003, 0, 21, 65536, 0, 0, 0

                Binding 4=0x00040004, 0, 19, 65536, 0, 0, 0

                Binding 5=0x00040005, 0, 16, 65536, 0, 0, 0

                Binding 6=0x00040006, 0, 17, 65536, 0, 0, 0

                Binding 7=0x00040007, 0, 18, 65536, 0, 0, 0

                Binding 8=0x00040008, 0, 26, 65536, 0, 0, 0

                Binding 9=0x00040009, 0, 27, 65536, 0, 0, 0

                Binding 10=0x0004000C, 0, 30, 65536, 0, 0, 0

                Binding 11=0x0004000D, 0, 29, 65536, 0, 0, 0

                Binding 12=0x0004000E, 0, 31, 65536, 0, 0, 0

                Binding 13=0x0004000F, 0, 28, 65536, 0, 0, 0

                Binding 14=0x00200010, 0, 24, 65536, 0, 0, 1

                Binding 15=0x00200011, 0, 25, 65536, 0, 0, 1

                Binding 16=0x01020012, 0, 33, 87183, 0, 0, 13172

                Binding 17=0x02020012, 0, 35, 87183, 0, 0, 13172

                Binding 18=0x01020013, 0, 32, 87183, 0, 0, 13172

                Binding 19=0x02020013, 0, 34, 87183, 0, 0, 13172

                Binding 20=0x01020014, 0, 37, 87183, 0, 0, 13172

                Binding 21=0x02020014, 0, 39, 87183, 0, 0, 13172

                Binding 22=0x01020015, 0, 36, 87183, 0, 0, 13172

                Binding 23=0x02020015, 0, 38, 87183, 0, 0, 13172

                FF Binding 0=Constant 0, 0, 0, 0, 65536, 1, 0

                FF Binding 1=Constant 0, 1, 0, 0, 0, 1, 65536

                [Device 1]

                Display Name=XInput Pad 1

                Instance ID=XInput Pad 1

                API=4

                Type=3

                Binding 0=0x00040000, 1, 20, 65536, 0, 0, 0

                Binding 1=0x00040001, 1, 22, 65536, 0, 0, 0

                Binding 2=0x00040002, 1, 23, 65536, 0, 0, 0

                Binding 3=0x00040003, 1, 21, 65536, 0, 0, 0

                Binding 4=0x00040004, 1, 19, 65536, 0, 0, 0

                Binding 5=0x00040005, 1, 16, 65536, 0, 0, 0

                Binding 6=0x00040006, 1, 17, 65536, 0, 0, 0

                Binding 7=0x00040007, 1, 18, 65536, 0, 0, 0

                Binding 8=0x00040008, 1, 26, 65536, 0, 0, 0

                Binding 9=0x00040009, 1, 27, 65536, 0, 0, 0

                Binding 10=0x0004000C, 1, 30, 65536, 0, 0, 0

                Binding 11=0x0004000D, 1, 29, 65536, 0, 0, 0

                Binding 12=0x0004000E, 1, 31, 65536, 0, 0, 0

                Binding 13=0x0004000F, 1, 28, 65536, 0, 0, 0

                Binding 14=0x00200010, 1, 24, 65536, 0, 0, 1

                Binding 15=0x00200011, 1, 25, 65536, 0, 0, 1

                Binding 16=0x01020012, 1, 33, 87183, 0, 0, 13172

                Binding 17=0x02020012, 1, 35, 87183, 0, 0, 13172

                Binding 18=0x01020013, 1, 32, 87183, 0, 0, 13172

                Binding 19=0x02020013, 1, 34, 87183, 0, 0, 13172

                Binding 20=0x01020014, 1, 37, 87183, 0, 0, 13172

                Binding 21=0x02020014, 1, 39, 87183, 0, 0, 13172

                Binding 22=0x01020015, 1, 36, 87183, 0, 0, 13172

                Binding 23=0x02020015, 1, 38, 87183, 0, 0, 13172

                FF Binding 0=Constant 1, 0, 0, 0, 65536, 1, 0

                FF Binding 1=Constant 1, 1, 0, 0, 0, 1, 65536

                [Device 12]

                Display Name=XInput Pad 2

                Instance ID=XInput Pad 2

                API=4

                Type=3

                [Device 13]

                Display Name=XInput Pad 3

                Instance ID=XInput Pad 3

                API=4

                Type=3

                f.carusoF 1 Reply Last reply Reply Quote 0
                • f.carusoF
                  f.caruso @maxiducoli
                  last edited by

                  @maxiducoli
                  What do you want me to do with all this ? It's not really related to ES.
                  Plus, it's not the good place for that kind of exchanges. Find me on Discord.
                  I can't see you on any server I'm in. Please, name servers you are in so I can find you.

                  1 Reply Last reply Reply Quote 0
                  • P
                    porterballs
                    last edited by

                    @f-caruso hi was just wondering if you will update the gamesdb scraper at some point, I want to use your screenscraper one but I cant choose to have only 2d boxes! Thanks

                    f.carusoF 1 Reply Last reply Reply Quote 0
                    • f.carusoF
                      f.caruso @porterballs
                      last edited by

                      @porterballs said in Updated EmulationStation for Windows:

                      gamesdb

                      Done + Added ability to use Box as image for screenscraper. You can download the latest version.

                      P 1 Reply Last reply Reply Quote 2
                      • P
                        porterballs @f.caruso
                        last edited by

                        @f-caruso thank you much appreciated :)

                        1 Reply Last reply Reply Quote 0
                        • CarissaIsWierdC
                          CarissaIsWierd
                          last edited by

                          @f-caruso I had arrows before (see here) that now show as question marks after the 'Unicode Strings' update :/

                          f.carusoF 1 Reply Last reply Reply Quote 0
                          • f.carusoF
                            f.caruso @CarissaIsWierd
                            last edited by f.caruso

                            @CarissaIsWierd The version of your theme I have does'nt have all these options, so I can't test what you did...
                            EDIT : Found & fixed

                            1 Reply Last reply Reply Quote 1
                            • CarissaIsWierdC
                              CarissaIsWierd
                              last edited by

                              @f-caruso Did you do something to the way "folderImage" & "gameImage" are displayed in the past month? If you check my theme I shared with you, folders and games without images show up like this, when before they used minSize like games with images do. Do I need to add something different to fix it?

                              f.carusoF 1 Reply Last reply Reply Quote 0
                              • f.carusoF
                                f.caruso @CarissaIsWierd
                                last edited by

                                @CarissaIsWierd Check the new release it should solve your case.

                                S 1 Reply Last reply Reply Quote 1
                                • PittStoneP
                                  PittStone
                                  last edited by

                                  @f-caruso @jdrassa Will it be possible to use animated Gifs for the Covers? Not only .png or .jpg. It would be Awesome to have a Animated Cover like this: Animated Cover

                                  mituM 1 Reply Last reply Reply Quote 0
                                  • mituM
                                    mitu Global Moderator @PittStone
                                    last edited by mitu

                                    @PittStone said in Updated EmulationStation for Windows:

                                    It would be Awesome to have a Animated Cover like this: Animated Cover

                                    That's not a GIF, is a video file. You can add it as video in ES.

                                    PittStoneP 1 Reply Last reply Reply Quote 0
                                    • PittStoneP
                                      PittStone @mitu
                                      last edited by

                                      @mitu Hi, nope i right click on it and JDownloader downloaded it as a .gif! It doesn't matter if this example is a video or a gif! My question is whether it will even be possible to use this as an animated gif.

                                      1 Reply Last reply Reply Quote 0
                                      • mituM
                                        mitu Global Moderator
                                        last edited by

                                        @PittStone said in Updated EmulationStation for Windows:

                                        Hi, nope i right click on it and JDownloader downloaded it as a .gif

                                        Imgur allows you to upload short video files. The actual video behind that it's an MP4 video - https://i.imgur.com/193xjy7.mp4.

                                        My question is whether it will even be possible to use this as an animated gif.

                                        I don't think it's possible without adding a GIF decoder (not included right now in EmulationStation) and playing it as a video in ES - at which point you're better just adding it as video.

                                        PittStoneP 1 Reply Last reply Reply Quote 0
                                        • PittStoneP
                                          PittStone @mitu
                                          last edited by PittStone

                                          @mitu If you look at my update from the Magazine Theme, you can see that the cover is permanently displayed on the left and the videosnap is also played on the right.

                                          But it is possible with a gif decoder. Then something should be in a next update. :D
                                          It would be very nice to have this for a Raspberry pi 3, too.

                                          1 Reply Last reply Reply Quote 0
                                          • S
                                            santo-vfx @f.caruso
                                            last edited by santo-vfx

                                            @f-caruso have you, or anyone, observed this issue in fabricecaruso's build(windows)?
                                            last played is not showing some systems' entries. It is showing the games (inside last played) from nes, snes, nintendo64, fds, mastersystem, psx etc. but not showing from fba, model2, pspmini etc. entries are being added to gamelist.xml files. but not visible inside last played. jdrassa's build is perfectly fine here.
                                            i have changed the list view to "lastplayed, descending" in select(button) menu and also tried different options. looks like some of the systems are getting filtered out inside the lastplayed.
                                            btw, this is my first post. so hello everyone:)

                                            f.carusoF 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.