Git Product home page Git Product logo

batocera-emulationstation's Introduction

EmulationStation

EmulationStation is a cross-platform graphical front-end for emulators with controller navigation.

Building

EmulationStation uses some C++11 code, which means you'll need to use at least g++-4.7 on Linux, or Visual Studio 2015 on Windows, to compile.

EmulationStation has a few dependencies. For building, you'll need CMake, SDL2, FreeImage, FreeType, cURL, RapidJSON, LibVLC, SDLMixer. You also should probably install the fonts-droid package which contains fallback fonts for Chinese/Japanese/Korean characters, but ES will still work fine without it (this package is only used at run-time). Your distro may also offer a "system developer" group of packages that includes essential compilation tools, it is recommended to install that first.

On Debian/Ubuntu: All of this can be easily installed with apt-get:

sudo apt-get install libsdl2-dev libsdl2-mixer-dev libfreeimage-dev libfreetype6-dev \
  libcurl4-openssl-dev rapidjson-dev libasound2-dev libgl1-mesa-dev build-essential \
  libboost-all-dev cmake fonts-droid-fallback libvlc-dev libvlccore-dev vlc-bin libint-dev gettext

On Fedora: All of this can be easily installed with dnf (with rpmfusion activated) :

sudo dnf install SDL2-devel freeimage-devel freetype-devel curl-devel \
  alsa-lib-devel mesa-libGL-devel cmake \
  vlc-devel rapidjson-devel 

On Arch/Manjaro: All of this can be easily installed with pacman:

sudo pacman -S base-devel cmake freeimage sdl2_mixer sdl2 rapidjson boost

On Solus: All of this can be easily installed with eopkg:

sudo eopkg it -c system.devel sdl2-devel freeimage-devel freetype2-devel curl-devel \
  rapidjson-devel alsa-lib-devel mesalib-devel vlc-devel sdl2-mixer-devel \
  libcec-devel

Note this Repository uses a git submodule - to checkout the source and all submodules, use

git clone --recursive https://github.com/batocera-linux/batocera-emulationstation.git

or

git clone https://github.com/batocera-linux/batocera-emulationstation.git
cd batocera-emulationstation
git submodule update --init

To setup compilation, generate and build the Makefile with CMake:

cmake .

And then begin compilation:

make

On the Raspberry Pi:

Complete Raspberry Pi build instructions at emulationstation.org. You'll still have to run the instructions for Debian/Ubuntu as mentioned above first.

If the Pi uses the legacy/Broadcom driver, install the libraspberry-dev package before running cmake to configure the build.

On the Pi 4 specifically, since the legacy GL drivers are not supported anymore, you must use the following command in place of the cmake command:

cmake -DUSE_MESA_GLES=On .

On Windows:

FreeImage

FreeType2 (you'll need to compile)

SDL2

cURL (you'll need to compile or get the pre-compiled DLL version)

RapisJSON (you'll need the include/rapidsjon added to the include path)

SDL Mixer

LibVlc (x86 sdk files are present in .7z files)

CMake (this is used for generating the Visual Studio project)

set ES_LIB_DIR=c:\src\lib

mkdir c:\src\batocera-emulationstation\build
cd c:\src\batocera-emulationstation\build /D

cmake -g "Visual Studio 14 2015 x86" .. -DEIGEN3_INCLUDE_DIR=%ES_LIB_DIR%\eigen -DRAPIDJSON_INCLUDE_DIRS=%ES_LIB_DIR%\rapidjson\include -DFREETYPE_INCLUDE_DIRS=%ES_LIB_DIR%\freetype-2.7\include -DFREETYPE_LIBRARY=%ES_LIB_DIR%\freetype-2.7\objs\vc2010\Win32\freetype27.lib -DFreeImage_INCLUDE_DIR=%ES_LIB_DIR%\FreeImage\Source -DFreeImage_LIBRARY=%ES_LIB_DIR%\FreeImage\Dist\x32\FreeImage.lib -DSDL2_INCLUDE_DIR=%ES_LIB_DIR%\SDL2-2.0.9\include -DSDL2_LIBRARY=%ES_LIB_DIR%\SDL2-2.0.9\build\Release\SDL2.lib;%ES_LIB_DIR%\SDL2-2.0.9\build\Release\SDL2main.lib;Imm32.lib;version.lib -DBOOST_ROOT=%ES_LIB_DIR%\boost_1_61_0 -DBoost_LIBRARY_DIR=%ES_LIB_DIR%\boost_1_61_0\lib32-msvc-14.0 -DCURL_INCLUDE_DIR=%ES_LIB_DIR%\curl-7.50.3\include -DCURL_LIBRARY=%ES_LIB_DIR%\curl-7.50.3\builds\libcurl-vc14-x86-release-dll-ipv6-sspi-winssl\lib\libcurl.lib -DVLC_INCLUDE_DIR=%ES_LIB_DIR%\libvlc-2.2.2\include -DVLC_LIBRARIES=%ES_LIB_DIR%\libvlc-2.2.2\lib\msvc\libvlc.lib;%ES_LIB_DIR%\libvlc-2.2.2\lib\msvc\libvlccore.lib -DVLC_VERSION=1.0.0 -DSDLMIXER_INCLUDE_DIR=%ES_LIB_DIR%\SDL2_mixer-2.0.4\include -DSDLMIXER_LIBRARY=%ES_LIB_DIR%\SDL2_mixer-2.0.4\lib\x86\SDL2_mixer.lib

Launching outside of Batocera

To launch Batocera EmulationStation, it is recommended to build it with batocera.linux instead. However, you can run a barebones version of ES (perhaps you want to tweak some menus without waiting for the entirety of Batocera to compile) if you provide the appropriate folder structure and files for it. If you launch Batocera EmulationStation this way outside of Batocera, expect a lot of things to not actually be functional (eg. emulator launching, the background music player, the webserver, etc.), such things can only work with an environment set up identically to Batocera. Before attempting this, it is recommended to have built batocera.linux at least once to have the appropriate configuration files for Batocera Emulationstation. They can also conveniently be taken from an existing Batocera install, from the same paths relative to root being target. For example: /usr/share/emulationstation/

Create the appropriate directories for ES's configuration files and resources, then copy them in from Batocera (instructions assuming you've already built batocera.linux):

sudo mkdir /etc/emulationstation
sudo chmod a+w /etc/emulationstation
cp -r ~/batocera.linux/output/x86_64/target/usr/share/emulationstation/ /etc/

(This would be where /usr/share/emulationstation/ is used instead if copying from an existing Batocera install).

Then create the /userdata directory in your root, give it the correct permissions, and copy in the data from Batocera's datainit folder:

sudo mkdir /userdata
sudo chmod a+w /userdata
cp -r ~/batocera.linux/output/x86_64/target/usr/share/batocera/datainit/* /userdata

Then run ./emulationstation.sh to start up EmulationStation. This will give you enough to navigate menus and change settings, however since we aren't truly inside of Batocera you'll find that none of the emulators launch and none of the secondary functions (such as the background music player) work.

If you want to see the full Batocera EmulationStation experience, it is recommended to build batocera.linux instead.

Configuring

~/.emulationstation/es_systems.cfg: When first run, an example systems configuration file will be created at ~/.emulationstation/es_systems.cfg. ~ is $HOME on Linux, and %HOMEPATH% on Windows. This example has some comments explaining how to write the configuration file. See the "Writing an es_systems.cfg" section for more information.

Keep in mind you'll have to set up your emulator separately from EmulationStation if not launching from within Batocera!

~/.emulationstation/es_input.cfg: When you first start EmulationStation, you will be prompted to configure an input device. The process is thus:

  1. Hold a button on the device you want to configure. This includes the keyboard.

  2. Press the buttons as they appear in the list. Some inputs can be skipped by holding any button down for a few seconds.

  3. You can review your mappings by pressing up and down, making any changes by pressing South (B on SNES).

  4. Choose "SAVE" to save this device and close the input configuration screen.

The new configuration will be added to the /etc/emulationstation/es_input.cfg file.

Both new and old devices can be (re)configured at any time by pressing the Start button and choosing "MAP CONTROLLER". From here, you may unplug the device you used to open the menu and plug in a new one, if necessary. New devices will be appended to the existing input configuration file, so your old devices will remain configured.

If your controller stops working, you can delete the ~/.emulationstation/es_input.cfg file to make the input configuration screen re-appear on next run.

You can use --help or -h to view a list of command-line options. Briefly outlined here:

--resolution [width] [height]   try and force a particular resolution
--gamelist-only                 skip automatic game search, only read from gamelist.xml
--ignore-gamelist               ignore the gamelist (useful for troubleshooting)
--draw-framerate                display the framerate
--no-exit                       don't show the exit option in the menu
--no-splash                     don't show the splash screen
--debug                         more logging, show console on Windows
--scrape                        scrape using command line interface
--windowed                      not fullscreen, should be used with --resolution
--fullscreen-borderless			fullscreen, non exclusive.
--vsync [1/on or 0/off]         turn vsync on or off (default is on)
--max-vram [size]               Max VRAM to use in Mb before swapping. 0 for unlimited
--force-kid             		Force the UI mode to be Kid
--force-kiosk           		Force the UI mode to be Kiosk
--force-disable-filters         Force the UI to ignore applied filters in gamelist
--home							Force the .emulationstation folder (windows)
--help, -h                      summon a sentient, angry tuba

As long as ES hasn't frozen, you can always press F4 to close the application.

Writing an es_systems.cfg

Complete configuration instructions at emulationstation.org.

The es_systems.cfg file contains the system configuration data for EmulationStation, written in XML. This tells EmulationStation what systems you have, what platform they correspond to (for scraping), and where the games are located.

ES will check the following location for its es_systems.cfg file:

  • /etc/emulationstation/es_systems.cfg

The order EmulationStation displays systems reflects the order you define them in.

NOTE: A system must have at least one game present in its "path" directory, or ES will ignore it! If no valid systems are found, ES will report an error and quit!

See SYSTEMS.md for some live examples in EmulationStation.

The following "tags" are replaced by ES in launch commands:

%ROM% - Replaced with absolute path to the selected ROM, with most Bash special characters escaped with a backslash.

%BASENAME% - Replaced with the "base" name of the path to the selected ROM. For example, a path of "/foo/bar.rom", this tag would be "bar". This tag is useful for setting up AdvanceMAME.

%ROM_RAW% - Replaced with the unescaped, absolute path to the selected ROM. If your emulator is picky about paths, you might want to use this instead of %ROM%, but enclosed in quotes.

%HOME% - Replaced with the home folder.

%SYSTEM% - Replaced with the current selected system name.

%EMULATOR% - Replaced with the current selected emulator.

%CORE% - Replaced with the current selected core.

gamelist.xml

The gamelist.xml file for a system defines metadata for games, such as a name, image (like a screenshot or box art), description, release date, and rating.

If at least one game in a system has an image specified, ES will use the detailed view for that system (which displays metadata alongside the game list).

You can use ES's scraping tools to avoid creating a gamelist.xml by hand. There are two ways to run the scraper:

  • If you want to scrape multiple games: press start to open the menu and choose the "SCRAPER" option. Adjust your settings and press "SCRAPE NOW".
  • If you just want to scrape one game: find the game on the game list in ES and press select. Choose "EDIT THIS GAME'S METADATA" and then press the "SCRAPE" button at the bottom of the metadata editor.

You can also edit metadata within ES by using the metadata editor - just find the game you wish to edit on the gamelist, press Select, and choose "EDIT THIS GAME'S METADATA."

A command-line version of the scraper is also provided - just run emulationstation with --scrape (currently broken).

The switch --ignore-gamelist can be used to ignore the gamelist and force ES to use the non-detailed view.

If you're writing a tool to generate or parse gamelist.xml files, you should check out GAMELISTS.md for more detailed documentation.

Themes

By default, EmulationStation will use ES-Carbon. Additional themes can be installed into /etc/emulationstation/themes.

If you want to know more about making your own themes (or editing existing ones), read THEMES.md or check out the wiki page.

batocera-emulationstation's People

Contributors

aloshi avatar azvarel avatar benjdero avatar coiotato avatar digitallumberjack avatar dmanlfc avatar emerrepengo avatar evoflash72 avatar fabricecaruso avatar genetik57 avatar heloisatech avatar hew-ux avatar hex007 avatar igungor avatar james1191991 avatar jdorigao avatar joao-pedro-barbosa avatar joolswills avatar jrassa avatar lbrpdx avatar n2qz avatar nadenislamarre avatar paradadf avatar pjft avatar psyke83 avatar rockaddicted avatar rtissera avatar seeiis avatar tomaz82 avatar tovarichtch avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

batocera-emulationstation's Issues

Hide statistics from main screen

In main screen there are statistics for each system (how many games from particular system are in favourites, which game was last played). It would be great to have some switch to turn it off or hide it -- anyway get back earlier look, which was just great and not overloaded with informations..

All game tags label localization not work in Video UI mode.

Swith ES to other language than English, then use some theme with Game Tag display such as "Developer, Last Played, Released Date" and etc (all about 8 labels). In Detail / Simple UI mode, everything works fine until switch to the new "Video Mode", all those label won't be translated into the system language correctly, it show back to English ag. I tested both Supersweet and Fundamental theme on batocera and EmuElec and got same result.

Problem when create grid.xml

Hi!

When I create an xml file for each type of gamelist separately for the theme.xml principal, detailed, basic mode works fine but grid mode does not recognize programming well. It has to be programmed in the main xml for a correct display of that gamelist mode. Is it a possible ES error?

Each xml created for each type of gamelist is included in the main theme.xml:
< include >./gamelistview/detailed.xml</ include >
< include >./gamelistview/basic.xml</ include >
< include >./gamelistview/grid.xml</ include >

Is there any idea or solution of what may be the problem?

Clock format isn't configurable

Currently, unless I'm mistaken, it seems that the clock can only show in "24 hour notation", or rather %H:%M.

I was wondering if the clock format could be configured to show a different format, such as the "12-hour notation" of %I:%M, or even a "12-hour expanded notation" with a designator like AM/PM, such as %I:%M %p.

One could even allow theming of the clock by using the %I:%M %P format for the "12-hour expanded notation" and then allowing a forceUppercase theme rule to be applied to the clock view. 😃

Disabling L2 for pcengine

If my kid presses L2 in pcengine emulation than we got this notice "6-button mode selected" and until L2 is pressed again playing is not possible. It would be great to have some switch in ES to disable that uniq "feature".

ES menu to set ap extentions for particular systems/extentions config file in every system rom folder

I know that this is additional complexity but current situation is quite frustrating for new users.

Currently is you e.g. add amigacd32 Worms games which is my case composed of cue, iso and wav files, I see it double on the gamelist because both cue and iso are considered to be games. In such situation I have two options. 1. to change extension of is iso file and edit cue file, 2. to copy es_systems.cfg to /userdata and edit that file and remove .iso/.ISO extensions for system amigacd32 -- but I can do that only via ssh, /usr/share/emulationstation/es_systems.cfg is not available via smb share.

What I suggest is making ES menu - checklist with extensions for every system. In default all extensions would turn on and user would have opportunity to turn off some of them. In above example with amigacd32 and my copy of Worms I would simply turn off iso/ISO extension.

The other option is to set it via e.g. extentions.txt in every system rom folder. In such case user would be able to edit such system via samba share.

Snes9x "REDUCE SLOWDOWN" does not work

There is a new option in SNES with Snes9x system settings "REDUCE SLOWDOWN". That is, IMHO linked to Retroach Snes9x specific option "Reduce Slowdown (Hack, Unsafe)". But changing option in ES has no impact upon Retroarch.

IMG_6264

IMG_6262

heart favorites on gamelist -- es_carbon

There is "yes [heart]" label on gamelist for games added to favourites. In case of non-favoreites game there is "No". This is related to es-carbon theme with detail style gamelist view.

Flac file a ES background music

ES is already linked with libflac. It would be great to have an option to use flac files as background files. I tried
if (extension == ".mp3" || extension == ".ogg" || extension == ".flac" )
in es-core/src/AudioManager.cpp (line 159) but it does not work.

CMake Error

Hi. I am trying to build a batocera-emulationstation on my OrangePi PC board

Linux RetrOrangePi 5.2.14-sunxi 5.97 SMP Thu Sep 19 01:04:45 CEST 2019 armv7l armv7l armv7l GNU/Linux

But I get the following error, how can I fix it?

root@RetrOrangePi:~# git clone --recursive https://github.com/batocera-linux/batocera-emulationstation.git
Cloning into 'batocera-emulationstation'...
remote: Enumerating objects: 30972, done.
remote: Total 30972 (delta 0), reused 0 (delta 0), pack-reused 30972
Receiving objects: 100% (30972/30972), 22.00 MiB | 2.42 MiB/s, done.
Resolving deltas: 100% (18963/18963), done.
Submodule 'external/pugixml' (https://github.com/zeux/pugixml.git) registered for path 'external/pugixml'
Cloning into '/root/batocera-emulationstation/external/pugixml'...
remote: Enumerating objects: 12, done.
remote: Counting objects: 100% (12/12), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 8666 (delta 4), reused 8 (delta 3), pack-reused 8654
Receiving objects: 100% (8666/8666), 6.19 MiB | 3.04 MiB/s, done.
Resolving deltas: 100% (5982/5982), done.
Submodule path 'external/pugixml': checked out '7247a823b72259a2b814696838d02f7424a8ce0e'
root@RetrOrangePi:~# cd batocera-emulationstation
root@RetrOrangePi:~/batocera-emulationstation# git submodule update --init
root@RetrOrangePi:~/batocera-emulationstation# mkdir build
root@RetrOrangePi:~/batocera-emulationstation# cd build
root@RetrOrangePi:~/batocera-emulationstation/build# cmake ..
-- The C compiler identification is GNU 7.4.0
-- The CXX compiler identification is GNU 7.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CEC enabled
libMali.so found
-- Looking for XOpenDisplay in /usr/lib/arm-linux-gnueabihf/libX11.so;/usr/lib/arm-linux-gnueabihf/libXext.so
-- Looking for XOpenDisplay in /usr/lib/arm-linux-gnueabihf/libX11.so;/usr/lib/arm-linux-gnueabihf/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Found X11: /usr/lib/arm-linux-gnueabihf/libX11.so
-- Found Freetype: /usr/lib/arm-linux-gnueabihf/libfreetype.so (found version "2.8.1")
-- Looking for FreeImage...
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1")
-- Checking for module 'freeimage'
--   No package 'freeimage' found
-- Found FreeImage: optimized;/usr/lib/arm-linux-gnueabihf/libfreeimage.so;debug;/usr/lib/arm-linux-gnueabihf/libfreeimage.so
-- Could NOT find SDLMIXER (missing: SDLMIXER_INCLUDE_DIR SDLMIXER_LIBRARY)
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found SDL2: /usr/local/lib/libSDL2main.a;/usr/local/lib/libSDL2.so;-lpthread
-- Found CURL: /usr/lib/arm-linux-gnueabihf/libcurl.so (found version "7.58.0")
-- Checking for module 'libvlc>=1.0.0'
--   Found libvlc, version 3.0.8
-- VLC library found
-- Found VLC: /usr/include/vlc
-- Found Rapidjson: /usr/include
-- Looking for libCEC...
-- Checking for module 'libcec'
--   No package 'libcec' found
-- Could not locate libCEC
-- Found ALSA: /usr/lib/arm-linux-gnueabihf/libasound.so (found version "1.1.3")
-- Found Intl: /usr/include
-- Native language support enabled.
Building the pot file
LANG = ar
LANG = ca
LANG = de
LANG = el
LANG = es
LANG = es_MX
LANG = eu_ES
LANG = fr
LANG = hu
LANG = it
LANG = jp_JP
LANG = ko
LANG = nb_NO
LANG = nl
LANG = nn_NO
LANG = pl
LANG = pt_BR
LANG = pt_PT
LANG = ru_RU
LANG = sv_SE
LANG = tr
LANG = zh_CN
LANG = zh_TW
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
OPENGLES_INCLUDE_DIR (ADVANCED)
   used as include directory in directory /root/batocera-emulationstation/es-core
   used as include directory in directory /root/batocera-emulationstation/es-core
   used as include directory in directory /root/batocera-emulationstation/es-core
   used as include directory in directory /root/batocera-emulationstation/es-core
   used as include directory in directory /root/batocera-emulationstation/es-core
   used as include directory in directory /root/batocera-emulationstation/es-core
   used as include directory in directory /root/batocera-emulationstation/es-core
   used as include directory in directory /root/batocera-emulationstation/es-core
   used as include directory in directory /root/batocera-emulationstation/es-core
   used as include directory in directory /root/batocera-emulationstation/es-app
   used as include directory in directory /root/batocera-emulationstation/es-app
   used as include directory in directory /root/batocera-emulationstation/es-app
   used as include directory in directory /root/batocera-emulationstation/es-app
   used as include directory in directory /root/batocera-emulationstation/es-app
   used as include directory in directory /root/batocera-emulationstation/es-app
   used as include directory in directory /root/batocera-emulationstation/es-app
   used as include directory in directory /root/batocera-emulationstation/es-app
   used as include directory in directory /root/batocera-emulationstation/es-app
SDLMIXER_INCLUDE_DIR (ADVANCED)
   used as include directory in directory /root/batocera-emulationstation/es-core
   used as include directory in directory /root/batocera-emulationstation/es-core
   used as include directory in directory /root/batocera-emulationstation/es-core
   used as include directory in directory /root/batocera-emulationstation/es-core
   used as include directory in directory /root/batocera-emulationstation/es-core
   used as include directory in directory /root/batocera-emulationstation/es-core
   used as include directory in directory /root/batocera-emulationstation/es-core
   used as include directory in directory /root/batocera-emulationstation/es-core
   used as include directory in directory /root/batocera-emulationstation/es-core
   used as include directory in directory /root/batocera-emulationstation/es-app
   used as include directory in directory /root/batocera-emulationstation/es-app
   used as include directory in directory /root/batocera-emulationstation/es-app
   used as include directory in directory /root/batocera-emulationstation/es-app
   used as include directory in directory /root/batocera-emulationstation/es-app
   used as include directory in directory /root/batocera-emulationstation/es-app
   used as include directory in directory /root/batocera-emulationstation/es-app
   used as include directory in directory /root/batocera-emulationstation/es-app
   used as include directory in directory /root/batocera-emulationstation/es-app
SDLMIXER_LIBRARY (ADVANCED)
    linked by target "es-core" in directory /root/batocera-emulationstation/es-core
    linked by target "emulationstation" in directory /root/batocera-emulationstation/es-app

-- Configuring incomplete, errors occurred!
See also "/root/batocera-emulationstation/build/CMakeFiles/CMakeOutput.log".
See also "/root/batocera-emulationstation/build/CMakeFiles/CMakeError.log".

I only found a similar ticket in the EmulationStation repository without an answer
https://github.com/Aloshi/EmulationStation/issues/749

help on changing path

hi, want to change the default path from /userdata/system/configs/emulationstation to something else please any one can help?
i want to do this to make it work with retropie

non-complete scraping and favourites

If scrapping is somehow not compete (e.g. missing manual) and game was "favourite" then after such scrapping such game is not in "favourites" any more.

Counting screenshots as screenshots

Actually I didn't check it out yet but what is the "unit" for screenshots collection after excluding screenshots out of "all games" ? Is it "game" like it was before? If it does it would be great to turn it into "screenshots". I mean the main screen and info about games in particular systems. In case of screenshots it should be like e.g "5 screenshots".

Set a background color behind a video element.

Hello,

I would like to set a background color to a video tag element like this :

<video name="md_video">
         <pos>0.308 0.369</pos>
         <maxSize>0.2005 0.2680</maxSize>
         <delay>1.0</delay>
         <zIndex>44</zIndex>
         <color>000000</color>
</video>

But it seems the <color> feature isn't available for this element. So I think its an improvment, not a bug.

Why I'm looking for this feature ? On some vertical arcade games the video screen resolution doesn't overide properly the screenshot area of a mixed picture with screenshot+boxart+cartridge+marquee.

I did a video here to illustrate : https://www.youtube.com/watch?v=hh8kmRI7akk

You can see on the CRT screen, the screenshot picture overflows behind the video preview. And it's not really pretty.

I know the <showSnapshotNoVideo> tag to automatically swith between picture and video. But we can't recreate a full mixed picture with separated elements like using the <image name="md_marquee">. Because, it requires new media supports like : md_boxard, md_screenshot.

Kind regards.

Wrong controller icon width

After last commit to ES I got strange controller icon in all themes. It's "compressed". It is related not only do Carbon theme but also other themes.
IMG_5700

Incorrect number of games

If I disable some extension in particular system (eg. IMG in PCEngine CDROM) then overall number of games displayed in main screen includes these disabled, hidden positions. So eg. overall number is 25 but when you enter into PCEngine CDROM you see only 13 games (in my case).

In other words pcenginecd.HiddenExt has no impact upon counting of systems eg. in pcenginecd, but it is the same in every other system.
I use beta for x86_64 v29 coming from 14.10.2020 but I can confirm that also in stable 5.27.2.

Odroid N2 8bitdo Question

Hello,

I have a question regarding using 8bitdo SN30pro and 8bitdo Retro Receiver. On a Ubuntu build, ES does not detect the controller until I set the Retro Receiver mode to MacOS via Select + Right on the Dpad.

On batocera, it detects the controller as "Sony Computer Entertainment Wireless Controller" right after pairing with the Retro Receiver, which is a very good solution.

My question is, where is this code changed? Within ES or kernel or OS?

ES crashes if gamelist is too long in Chinese or Japanese with character/kanji.

This issue also happens in RetroPie ES. But I think it's better to open an issue here since Batocera supports Chinese without any extra operation. If users use a long game list with over 2K or so games, and if game list is in Chinese or Japanese with many many characters coded in 3 bytes, ES would crash when scrolling down the game list for a little longer. The higer resolution is, the sooner ES crashes. ES just quits with SIGSEV signal.
ERROR Interrupt signal SIGSEGV received.
Maybe there is a memory leakage on font caching?

How to disable "latency reduction" just for one game

If you turn on latency reduction for particular system (eg. SNES) then you can not turn off that for one game. In "use run-ahead frames" available options are "auto" and number starting with "1". I miss option "off".

excluding screenshots out of "all games"

Hi,
it would be great to have an option to exclude screenshots from all-games collection.
Even if screenshots collection is not visible among other collections, screenshots are counted
as games in "all-games" collection and are visible in that collection.

heart for favorites in es_carbon

Yesterday I made git clone and build the whole system. As in detailed gamelist view in es_carbon, near below video I see [heart] in case of games with favourite tag.

splash screen shown once just before game

If there is a splash image (eg. png file) set in /boot/splash then it will be shown before launch of the core - but only once.

When other game or even the same one is launched again then no splash is shown. System is RPI3, maybe splash goes to some framebuffer and running core clears that and this is why next time this framebuffer is empty?

"Hard GPU Sync" option in ES

There is in Retroarch other system to deal with a lag. That is "Hard GPU Sync" and "Hard GPU Sync Frames". It can be added to ES "Latency Reduction" menu. I think that it is very useful and will help to tune lag even better without fighting with retroarch configurations saving.

Shaders from ES vs shaders from retroarch

It seems to that there is a sort of non-coherency between ES and retroarch. E.g. when you set up ZFAST shader in ES you can turn it off with L1/L2 + hotkey without return -- to get it back you have to save a state, exit and run the game again. I think that the best solution is to set up in ES retroarch configuration in a way to disable switching shaders through retroarch.

System view order no longer following the order of es_systems.cfg

Previously, the order of systems in system view would follow the order of es_systems.cfg. That broke sometime this week with no option within EmulationStation to fix this order.

Not sure if this change was intentional or not, but wanted to bring attention to it.

Trying to understand automatic gamepad detection

First of all thanks for all the hard work on Batocera!

This is not an issue per se, hopefully this is the right place to ask this!

I noticed than your version of ES has a feature that I Would like to implement on the ES version I use (The one from Retropie)

Automatic gamepad detection when you already have another setup.

if I set my 1st gamepad in Retropie (lets say P1) and I connect another one, I have to go into the menu with P1 and manually go into the setup input screen so I can set up another gamepad, if for any reason I don't have the P1 gamepad connected there is no way to enter the menu until I connect the P1 gamepad and go request the input setup manually, or reboot without the P1 gamepad connected.

In Batocera as soon as I connect a new gamepad I get a nice pop-up asking me if I want to set it up, even if I have P1 disconnected.

Could you point me in the right direction as to where this happens in the code? or the commit where this was implemented?

Been trying to do it for a while, but my knowledge of C++ is very limited.

Thanks!

carousel transition with slide mode in detailed system view is not smoothless between first and last system

Carousel transition and SLIDE transition works fine when I'm in main screen. Notwithstanding is it es-videogame or es-carbon transition is fine and transition between last and first system is the same like between evey other pair.

BUT. When I'm in detailed system view and switch to other system (quick switch) there is a problem. Transition between last and first system (in my case between Atari ST and Favorites) is not so smoothless and differs to in-system transition between other pair. It looks like switching from last to first means fast switching through all system between.

vulkan graphics backend and shaders

In last beta upgrade (31.X) in per system setting there is a new option "Graphics backend" with choice between opengl and vulkan.
Problem is that if you turn on vulkan options then shaders does not work, even if you can still change and select shaders.

Windows Build

Has anyone been able to create a Windows build for this? I've had a lot of trouble. Finally got through the CMake process and opened the project in VC++ 2010 Express, and I'm getting tons of syntax errors.

For example

batocera\es-core\src\math/Vector3f.h(34): error C2143: syntax error : missing ';' before '}'

and that line looks like

const Vector3f operator- (const float& _other) const    { return { mX - _other, mY - _other, mZ - _other }; }

The problem there is the { right after the return is causing a syntax error. I'm not sure what to do next. If anyone has a Windows build they wouldn't mind sharing, I'd be very grateful.

Battery text isn't optional or themeable

I really like the new battery percentage text!

I've been trying out my theme with the new update, though, and I realized that I can't change the font (or font size) of the battery percentage text.

I also realized that I can't toggle it on or off. Its always there if the "SHOW BATTERY STATUS" option is enabled.

Gamecube & Wii: cannot use "Stretch to Window" for Aspect Ratio

The emulator Dolphin itself supports "Stretch to Window" as the aspect ratio. However, this setting is always overwritten by Batocera when a ngc/wii game is launched. Via EmulationStation's Games Settings menu, it's possible to force 16/9 or force 4/3 , but it just cannot choose "Stretch to Window".

Can you add "Stretch to Window" option for Gamecube/Wii (perhaps via Per System Advanced Configuration)? Alternatively, can you add a parameter in batocera.conf for users to specify the aspect ratio for Gamecube/Wii?

Wrong text for left joystick in gamepad configuration

When configuring a gamepad, the text for configuration of the left analog down and right is wrong.
OGA
As you can see, the last two directions should be "left analog down" and "left analog right". It is likely the same with translations in other languages (confirmed with French at least).
I've seen this problem on raspberry pi3 and odroid go advance builds.

Add "CRTSwitchRes" to "Per system advanced configuration"

When using a VGA-2-RGB/Component cable to connect a CRT TV or monitor, enabling CRTSwitchRes is said to be the preferred video output solution because it sets the CRT to the internal resolution of the used core.
Some cores offer the option to add a TV overscan to this internal output resolution (like Mednafen Beetle PSX, Genesis Plus GX and Stella), but most currently don´t. This results in the image to be streched too much horizontally on a real 4:3 CRT TV due to the missing overscan borders, and on some games and console emulations, the image is cut on the left and the right (with having not the "original" display aspect ratio at the same time).

A good example can be found at https://wiki.nesdev.com/w/index.php/Overscan: The real horizontal resolution of the original NES (NTSC) with overscan is 280px while only 256px are used (with 24px of borders added to the left and right).
None of the cores I tested allowed to add this overscan area of 24px or set it themselves with an appropriate option, and thus CRTSwitchRes just switched to the 256px on all cores, not 280px as it should be. This results in the image to be streched 24px wider when output to the CRT TV.

Since some cores allow adding those overscan borders (like mentioned above) while others don´t, I would prefer a per system advance configuration if I want to use CRTSwitchRes or my self-defined resolution instead (e.g. enabling it for PSX, but disabling it for NES where I would "manually" set it to a custom resolution of 280px x 240px for now).

ES menu for global.shaders

Besides shadeset (i.e. zfast) it would be great to have a menu to deal with global.shaders. Maybe in one list?

How to disable "latency reduction" just for one game, part 2

In #651 problem is partially solved. Thanks!
But now it looks like that:
IMG_6261

#651 lets set "Use Second Instance for Run-Ahead" to OFF but still Run-Ahead is functional. It would be great if in ES "USE RUN A-HEAD FRAMES" there is an option "0" (null) linked to general option "Run-Ahead to Reduce Latency" (on/off) in Retroarch.

Error while finishing compilation (linking process)

When you tries to compile it in raspberry pi 4 with raspbian buster it doesn't work (fail in linking process).

Linking CXX executable ../emulationstation
/usr/bin/ld: /opt/vc/lib/libvchiq_arm.so: undefined reference to symbol 'vcos_generic_mem_free'
/usr/bin/ld: //opt/vc/lib/libvcos.so: error al añadir símbolos: DSO faltante desde línea de orden
collect2: error: ld returned 1 exit status
make[2]: *** [es-app/CMakeFiles/emulationstation.dir/build.make:1092: emulationstation] Error 1
make[1]: *** [CMakeFiles/Makefile2:358: es-app/CMakeFiles/emulationstation.dir/all] Error 2
make: *** [Makefile:152: all] Error 2

But retropie-emulationstation compiles and works fine.

Probably this error could happen by "Makefile ld" bad configuration?

Also I compile in ArchLinux and compile and works fine, this error just appear in RP4 with 4.19.x and 5.4.x kernels

image

Greetings!

problem with compilation

I got something like that:
/data2/misc/BATOCERA/new/batocera.linux/output/rpi3/host/bin/msgmerge: error while opening "/data2/misc/BATOCERA/new/batocera.linux/output/rpi3/build/batocera-emulationstation-4069144527e9ad5d6720b7dcc4a2bb64b64e4751/locale/lang/uk_UK/LC_MESSAGES/emulationstation2.po" for reading: No such file or directory

Starting game with slide transition turn-on

It would be great to have an option to turn off this fancy effect when slide mode is turn-on. I mean this zooming in video picture just before switching to retroarch. I like slide effect very much (esp. since when I found vram switch) but this zooming effect is something I would like to turn off.

Game description in Chinese display issues.

In any ES theme ( like es-theme-Simple ) used the Detailed gamelist view style ,it will display the game descriptions which typed in part of the gamelist.xml.

The descriptions in English or another EUR languages, It will display rightly. It will automatically line feed and automatically scroll, but the descriptions in Chinese does not.(The Chinese descriptions is not download with the SCRAPER , I translated it and type it in. )

The descriptions in Chinese Can't line feed automatically, If the descriptions text is too long in a line , the overflow part will disappear, I can't see it.

So , is anybody knows how to fix it?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.