Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bugfix/issue42 #607

Open
wants to merge 54 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
ca7a9ed
Added symlink support on removeCommonPath
Devenor Mar 25, 2015
ea84dd1
Activate C++11 for clang
Jul 12, 2015
399c160
Remove #error in VolumeControl for Mac
Jul 12, 2015
0962dc8
Suppress inconsistent missing override warnings
Jul 12, 2015
ed568dd
ifndef'd a couple of usings which clang didn't like on OS X
Jul 12, 2015
d0ddcb1
ifndef'd a call in Window's ctor that was segfaulting on OS X
Jul 12, 2015
57cbb12
Split some double >'s to make clang happy on OS X
Jul 12, 2015
28c6c44
Ignore dotfiles when scanning directories
Jul 12, 2015
96269a5
Tidy up test code
Jul 12, 2015
29ebda2
Proper shutdown and restart on linux
masterfool Aug 24, 2015
276a207
When sorting by rating or playcount, break ties with filename
aslater Aug 30, 2015
5748744
MSVC 2015 fixes
aslater Aug 30, 2015
ce00f5f
Make system sort type persistent
aslater Aug 30, 2015
ccd61da
Merge pull request #1 from displaced/master
wolf-sigma Feb 6, 2016
b51496f
Merge pull request #2 from aslater/master
wolf-sigma Feb 6, 2016
f64c6bc
MacOS Build Instructions
wolf-sigma Feb 6, 2016
7eb4ff4
Update README.md
wolf-sigma Feb 6, 2016
6ac76cb
Update README.md
wolf-sigma Feb 6, 2016
196d917
Allow Hidden Files
wolf-sigma Feb 14, 2016
89eabc3
Logger bug in hidden file feature
wolf-sigma Feb 15, 2016
3b46a2a
Updated README.md to state project goals
Herdinger Feb 19, 2016
fbee69e
Added specifiable config directory
Herdinger Feb 19, 2016
3f8749c
Dummied out Volume Control
Herdinger Feb 19, 2016
5ead4b5
Fixed build on OSX
Herdinger Feb 19, 2016
7c21e3e
Merge branch 'master' of https://github.com/Herdinger/EmulationStation
Herdinger Feb 19, 2016
2b4bfa9
Merge pull request #1 from masterfool/patch-1
Herdinger Feb 20, 2016
0867034
Merge pull request #2 from Devenor/master
Herdinger Feb 20, 2016
03c5115
Fixed Linux Build
Herdinger Feb 23, 2016
54c9561
Fixed OSX and Windows build
Herdinger Feb 23, 2016
1985dcf
Added md5 and crc32 hashing utility
Herdinger Feb 23, 2016
2dffd09
Added a --no-splash option for disableing the ES logo
Herdinger Feb 25, 2016
0cd4e13
Updated README to reflect changed configuration directory
Herdinger Feb 26, 2016
6d032f9
Merged https://github.com/t3hi3x/EmulationStation
Herdinger Mar 2, 2016
7379353
Fixed various compiler warnings (Initializer order, string compares
Herdinger Mar 3, 2016
28df88f
Added basic include consistency
Herdinger Mar 3, 2016
2a17103
Replaced remaining ifdefs with pragma
Herdinger Mar 3, 2016
6dbfabf
Fixed wrong include
Herdinger Mar 3, 2016
a23dc8e
Fixed build with MSVC 2015
wolf-sigma Mar 4, 2016
5fa0eeb
Update README.md
seriema Mar 13, 2016
93f6e11
Merge pull request #13 from seriema/patch-1
wolf-sigma Mar 13, 2016
8486646
Added UI Options (Hidden Files + Splash Screen)
wolf-sigma Mar 25, 2016
63aa696
Pulled in RetroPie's Changes
wolf-sigma Mar 26, 2016
9e92fa8
adding some CI scripts
wolf-sigma Mar 26, 2016
d504b69
Slight CI Changes
wolf-sigma Mar 26, 2016
6c60acb
Update README.md
wolf-sigma Mar 27, 2016
793392b
Remove "direct launch" feature
wolf-sigma Apr 2, 2016
e3befb7
Merge pull request #18 from Herdinger/RetroPie-master
wolf-sigma Apr 2, 2016
c6bfeb8
Ability to switch displays
wolf-sigma Apr 3, 2016
cbf8638
Added the --config-directory command line option.
Herdinger Apr 16, 2016
f11df2c
Fixed #29
Herdinger May 3, 2016
c46131e
Wrap the checks for _MSC_VER value inside a check for the existence o…
John-Gee May 7, 2016
76c1538
Merge pull request #32 from John-Gee/master
Herdinger May 9, 2016
54a3c3e
Resolving https://github.com/Herdinger/EmulationStation/issues/31
wolf-sigma Jul 14, 2016
47c39ec
Fixed issue 42, the OS will now restart and shutdown if emulationstat…
Aug 10, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,7 @@ CMakeCache.txt
CMakeFiles
cmake_install.cmake
Makefile
*.cmake

# .idea
.idea/*
17 changes: 7 additions & 10 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,11 @@ if(DEFINED BCMHOST)
add_definitions(-D_RPI_)
endif()

option(XdgOsx "XdgOsx" OFF)
if(XdgOsx)
add_definitions(-DUSE_XDG_OSX)
endif()

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

if(MSVC)
Expand All @@ -68,17 +73,9 @@ if(MSVC)
add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") #multi-processor compilation
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP") #multi-processor compilation
endif()

if(CMAKE_COMPILER_IS_GNUCXX)
#check for G++ 4.7+
execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE G++_VERSION)
if (G++_VERSION VERSION_LESS 4.7)
message(SEND_ERROR "You need at least G++ 4.7 to compile EmulationStation!")
endif()

else()
#set up compiler flags for GCC
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wno-attributes -O3") #support C++11 for std::, optimize
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -O3") #support C++11 for std::, optimize
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -O3") #-s = strip binary
endif()

Expand Down
112 changes: 77 additions & 35 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,15 @@
Fork Reasons
============

Since I recently discovered the EmulationStation project I was sad to see that there wasn't a commit in nearly a year and following a big Pull Request backlog.

This fork tries to incorporate all useful work done by other contributers, fixing bugs and supplying new features.

Long term goals I see are more configurability (specificing directories for meta data, setting rom language preference etc.), full crossplatform support adhering to platform idioms and as a strech goal full libretro support.

This project is still in its infancy and I just skimmed over the codebase, so don't expect anything super soon.


EmulationStation
================

Expand All @@ -11,7 +23,9 @@ A cool guy named petrockblog made a script which automatically installs many emu
Download
========

Download a pre-compiled version at [emulationstation.org](http://emulationstation.org#download).
Download an official pre-compiled version at [emulationstation.org](http://emulationstation.org#download).

You can also download nightly binaries (assuming it builds) from Dropbox: https://www.dropbox.com/sh/qr4h23hgtuer3nl/AACzJWKoyNAu0kLkprwMv3b5a?dl=0


I found a bug! I have a problem!
Expand All @@ -27,6 +41,8 @@ cd YourEmulationStationDirectory
git pull
cmake .
make

chmod +x emulationstation
```

- If your problem still isn't gone, the best way to report a bug is to post an issue on GitHub. Try to post the simplest steps possible to reproduce the bug. Include files you think might be related (except for ROMs, of course). If you haven't re-run ES since the crash, the log file `~/.emulationstation/es_log.txt` is also helpful.
Expand Down Expand Up @@ -75,60 +91,51 @@ Complete Raspberry Pi build instructions at [emulationstation.org](http://emulat

(If you don't know how to use CMake, here are some hints: run cmake-gui and point it at your EmulationStation folder. Point the "build" directory somewhere - I use EmulationStation/build. Click configure, choose "Visual Studio [year] Project", fill in red fields as they appear and keep clicking Configure (you may need to check "Advanced"), then click Generate.)

**On MacOS**

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.
[HomeBrew] (http://brew.sh/)

**Keep in mind you'll have to set up your emulator separately from EmulationStation!**
[XCode Dev Tools] (http://osxdaily.com/2014/02/12/install-command-line-tools-mac-os-x/)

**~/.emulationstation/es_input.cfg:**
When you first start EmulationStation, you will be prompted to configure an input device. The process is thus:
```bash
brew install cmake freeimage freetype eigen boost sdl2

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 (e.g. page up/page down).
Then, generate and build the Makefile with CMake:
```bash
cd YourEmulationStationDirectory
cmake .
make
chmod +x emulationstation

3. You can review your mappings by pressing up and down, making any changes by pressing A.
```

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

The new configuration will be added to the `~/.emulationstation/es_input.cfg` file.
When first run, an example systems configuration file will be created at `$CONFIG_DIR/es_systems.cfg`.
Where `$CONFIG_DIR` is by platform:

**Both new and old devices can be (re)configured at any time by pressing the Start button and choosing "CONFIGURE INPUT".** 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.
**On Windows:**

**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.**
`My Documents/EmulationStation/`

**On Linux:**

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 - only display games defined in a gamelist.xml file.
--ignore-gamelist - do not parse any gamelist.xml files.
--draw-framerate - draw the framerate.
--no-exit - do not display 'exit' in the ES menu.
--debug - show the console window on Windows, do slightly more logging
--windowed - run ES in a window, works best in conjunction with --resolution [w] [h].
--vsync [1/on or 0/off] - turn vsync on or off (default is on).
--scrape - run the interactive command-line metadata scraper.
```
`$XDG_CONFIG_HOME/EmulationStation/` which usually defaults to `~/.config/EmulationStation/`

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

`~/Library/Application Support/org.emulationstation.EmulationStation/`by default
and the same as Linux if EmulationStation is build with `cmake -DXdgOsx=ON`

Writing an es_systems.cfg
=========================
Alternatively you can specify `$CONFIG_DIR` through the `--config-directory [path]` command line option.

Complete configuration instructions at [emulationstation.org](http://emulationstation.org/gettingstarted.html#config).

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 two places for an es_systems.cfg file, in the following order, stopping after it finds one that works:
* `~/.emulationstation/es_systems.cfg`
* `/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!
Expand Down Expand Up @@ -182,6 +189,41 @@ The following "tags" are replaced by ES in launch commands:

See [SYSTEMS.md](SYSTEMS.md) for some live examples in EmulationStation.

**Keep in mind you'll have to set up your emulator separately from EmulationStation!**

**$CONFIG_DIR/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 (e.g. page up/page down).

3. You can review your mappings by pressing up and down, making any changes by pressing A.

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

The new configuration will be added to the `$CONFIG_DIR/es_input.cfg` file.

**Both new and old devices can be (re)configured at any time by pressing the Start button and choosing "CONFIGURE INPUT".** 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 - only display games defined in a gamelist.xml file.
--ignore-gamelist - do not parse any gamelist.xml files.
--draw-framerate - draw the framerate.
--no-exit - do not display 'exit' in the ES menu.
--debug - show the console window on Windows, do slightly more logging
--windowed - run ES in a window, works best in conjunction with --resolution [w] [h].
--vsync [1/on or 0/off] - turn vsync on or off (default is on).
--scrape - run the interactive command-line metadata scraper.
```

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

gamelist.xml
============

Expand Down
14 changes: 14 additions & 0 deletions ci/macos.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#/bin/bash

BINARY_LOCATION="/foo/bar"
SOURCE_LOCATION="/other/foo/bar"

function main()
{
cd "$SOURCE_LOCATION"
cmake .
make
cp emulationstation "$BINARY_LOCATION"
}

main
14 changes: 14 additions & 0 deletions ci/raspbian_arm.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#/bin/bash

BINARY_LOCATION="/foo/bar"
SOURCE_LOCATION="/other/foo/bar"

function main()
{
cd "$SOURCE_LOCATION"
cmake .
make
cp emulationstation "$BINARY_LOCATION"
}

main
14 changes: 14 additions & 0 deletions ci/ubuntu_x86_64.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#/bin/bash

BINARY_LOCATION="/foo/bar"
SOURCE_LOCATION="/other/foo/bar"

function main()
{
cd "$SOURCE_LOCATION"
cmake .
make
cp emulationstation "$BINARY_LOCATION"
}

main
Empty file added ci/windows_x86.bat
Empty file.
Loading