Commit graph

217 commits

Author SHA1 Message Date
Leon Styhre 71f1f6806f Fixed multiple issues with the new emulator find mechanism. 2021-06-20 12:30:14 +02:00
Leon Styhre 183cdddfa0 Implemented a new mechanism for finding emulators and cores. 2021-06-19 14:09:14 +02:00
Leon Styhre fa624f9f2c Changed the logic for the systems configuration file, it now loads from the resources directory.
Also renamed the file from es_systems.cfg to es_systems.xml
2021-06-16 18:54:04 +02:00
Leon Styhre 2adff3643e The screen is now blanked when launching games to eliminate some flickering and other issues. 2021-03-27 13:51:50 +01:00
Leon Styhre ec33d8a612 Added a proper function to check whether to keep running in the background while a game is launched. 2021-03-27 13:49:09 +01:00
Leon Styhre 083e0a12e9 Improved launching of Steam games by keeping ES-DE running in the background. 2021-03-24 20:13:33 +01:00
Leon Styhre 87e6837980 Complete overhaul of VolumeControl with fixes for some related bugs. 2021-03-18 21:55:56 +01:00
Leon Styhre 101c7f888f (Windows) Fixed an issue where a forward slash instead of a backslash was added to the ROM directory. 2021-03-10 19:49:06 +01:00
Leon Styhre 47f5b889d5 Changed some platform enumerators to make them more clear and consistent. 2021-02-07 20:49:52 +01:00
Leon Styhre a300632ab8 Fixed an issue where the gamelist filter index would be incorrectly updated. 2021-02-05 17:01:45 +01:00
Leon Styhre c9c5e53066 Fixed an issue where empty grouped collections would be removed upon startup. 2021-02-04 19:57:13 +01:00
Leon Styhre 7ab7dcc7c6 Added 1-to-1 directory structure matching for game ROMs and media files. 2021-01-31 19:53:55 +01:00
Leon Styhre 079eccc169 Added a check for missing core files when using the %EMUPATH% variable.
Also refactored and simplified the code from the recent commits related to this.
2021-01-11 18:22:24 +01:00
Leon Styhre 267a47fdbd Expanded the usability of the %COREPATH% variable. 2021-01-10 22:55:17 +01:00
Leon Styhre 77978ee83a Fixed multiple issues related to the gamelist sorting options. 2021-01-08 20:30:21 +01:00
Leon Styhre d2d6813a54 Fixed multiple issues with the UI modes. 2021-01-05 10:45:32 +01:00
Leon Styhre 6dfd8e0cfc Renamed the %ROM_RAW% variable to %ROMRAW% 2020-12-26 20:19:04 +01:00
Leon Styhre 327676d7d7 Renamed CollectionSystemManager to CollectionSystemsManager. 2020-12-23 18:06:30 +01:00
Leon Styhre b0b12591e0 (Windows) Added the %COREPATH% variable logic. 2020-12-20 14:30:31 +01:00
Leon Styhre debf072a0e Rewrote some code from C to C++ 2020-12-16 23:59:00 +01:00
Leon Styhre 024e073e86 Added support for %COREPATH% variable and reverted to a single Unix es_systems.cfg template file. 2020-12-15 18:42:38 +01:00
Leon Styhre e5fcb51f57 Added support for multiple search results for ScreenScraper.
Also fixed some other scraping issues and added some additional scraper logging.
2020-11-14 15:30:49 +01:00
Leon Styhre 0bb8737211 Made the game counter more logical. 2020-11-10 18:48:16 +01:00
Leon Styhre 3aa10177cf Fixed multiple issues with hidden games. 2020-11-08 18:33:28 +01:00
Leon Styhre 1a6bec2e3b Overhaul of settings code. 2020-11-05 18:18:11 +01:00
Leon Styhre a2d05d0bd1 Simplified the detection of folders in gamelists. 2020-10-31 11:32:18 +01:00
Leon Styhre 005952addf Rewrote and moved the quick selector letter index generation. 2020-10-30 18:34:05 +01:00
Leon Styhre f753fef1c5 Added a discrete game counting function. 2020-10-30 12:53:35 +01:00
Leon Styhre 2dc8b85aee Fixed a game counting issue for grouped custom collections. 2020-10-30 11:49:51 +01:00
Leon Styhre d01be2ecba Small refactoring of CollectionSystemManager. 2020-10-25 19:42:25 +01:00
Leon Styhre e51c7ddf8c Made filters applicable per custom collection (if grouped). 2020-10-25 18:55:01 +01:00
Leon Styhre 127d900212 Changed to case insensitive sorting of the custom collections. 2020-10-22 21:23:16 +02:00
Leon Styhre 1a0b2f8bb7 Multiple improvements to the handling of custom collections.
Also improved the random game and random system functions.
2020-10-21 21:56:31 +02:00
Leon Styhre d7372df031 Greatly simplified the handling of hidden games. 2020-10-18 19:14:34 +02:00
Leon Styhre da37e2c11a Implemented proper memory cleanup when deleting FileData objects.
This fixes a memory leak which was most prominent during application shutdown.
2020-10-17 17:35:50 +02:00
Leon Styhre 1c831249da Moved game counting to the sort function and improved the custom collection handling. 2020-09-21 18:13:27 +02:00
Leon Styhre e56fdf3df6 Improved handling and sorting of folders. 2020-09-20 20:25:32 +02:00
Leon Styhre d4e614c0c1 Added jump to folder to the quick selector and improved the folder sorting. 2020-09-20 12:17:38 +02:00
Leon Styhre 14e2ede448 Moved a sorting function to the proper location inside the correct class. 2020-09-17 22:18:13 +02:00
Leon Styhre d4f5b2d20d Text scrolling now stops when launching a game and when the screensaver starts.
Also did some additional code cleanup.
2020-09-17 22:00:07 +02:00
Leon Styhre 541f7202d8 Added copying of macOS systems template upon application startup. 2020-08-19 22:17:32 +02:00
Leon Styhre 6dd1078e09 Added temporary game launch notification popup. 2020-08-15 15:41:11 +02:00
Leon Styhre 3ca9f5478a Fixed an issue where detection of folder-only views was not working. 2020-08-07 23:33:05 +02:00
Leon Styhre 22ed97c6d8 Fixed an issue where hiding a folder was not immediately reflected in the gamelist.
Improved the debug logging for hidden games as well and adjusted the hidden text opacity slightly.
2020-08-06 18:16:31 +02:00
Leon Styhre 408be5120c Multi-scraper folder scraping and folder scraper exclusions added.
A quick-skip shortcut was added to the multi-scraper as well and some minor changes were done to the ScreenScraper debug logging.
2020-08-06 15:12:04 +02:00
Leon Styhre 9f240394ed Added option to exclude files from the multi-scraper.
Two new scraper filters were added as well, 'Favorite games' and 'No game video'.
2020-08-06 11:27:16 +02:00
Leon Styhre 1ba59d98d9 Changed raw game launch command logging from Info to Debug. 2020-08-05 15:07:17 +02:00
Leon Styhre 5283881edf Improved custom script execution for the game-start and game-end events.
Also did some minor cosmetic changes to the script logging.
2020-08-05 14:49:54 +02:00
Leon Styhre 9f04458bbd Launching a game inside a folder now also updates the folder's last played timestamp. 2020-07-30 14:21:20 +02:00
Leon Styhre 5f7ffe98c8 Added metadata flag to mark whether a file should be counted as a game.
This is useful for DOS games for instance, to exclude files such as installers, setup files etc.
2020-07-29 19:01:49 +02:00
Leon Styhre b60c86e40f Added option to sort folders on top of the gamelists. 2020-07-28 19:44:17 +02:00
Leon Styhre ea59d9f9c4 Fixed multiple issues with random selection of systems and games. 2020-07-28 15:19:54 +02:00
Leon Styhre b21dbc4ada (Windows) Improved handling of hidden files and folders. 2020-07-27 13:06:46 +02:00
Leon Styhre b5485b4ca9 Changed log levels from numbers to text. 2020-07-26 23:30:45 +02:00
Leon Styhre 329a8da441 Properly implemented hiding of games.
Also added a flag to force the Full UI mode from the command line.
2020-07-26 22:19:29 +02:00
Leon Styhre 496e653ae7 Fixed an issue on Unix where hidden games folders would crash the application. 2020-07-26 15:21:41 +02:00
Leon Styhre fb38cf9248 Fixed an issue where the screensaver would start immediately after returning from a game. 2020-07-20 09:54:38 +02:00
Leon Styhre 0a410863cb (Windows) Added a menu option to run ES in the background while a game is launched.
Suspending ES while launching a game has proven unreliable on Windows, but on some installations it works so it makes sense to let the user select it. It makes for a better and more seamless experience if it works as intended.
2020-07-19 22:08:14 +02:00
Leon Styhre 34da214a8d Disabled launch animations temporarily as they don't work as expected and a proper fix is planned for later. 2020-07-19 19:53:11 +02:00
Leon Styhre 6c79224eea Added proper game launch function for Unix. 2020-07-18 23:07:02 +02:00
Leon Styhre 8fcb56cfb3 Made game launching on Windows much more seamless.
Also added an option to hide the taskbar.
2020-07-18 13:21:44 +02:00
Leon Styhre 40be69cd64 Deletion of a game now removes its media files and its entry in the gamelist.xml file. 2020-07-13 20:13:48 +02:00
Leon Styhre 29d2ccf201 Added %ESPATH% support to the ROMDirectory setting. 2020-07-10 21:20:52 +02:00
Leon Styhre 472a973f66 Added %ESPATH% variable support and fixed some other minor issues with the launch command. 2020-07-10 20:58:53 +02:00
Leon Styhre 3cad68be13 Added %EMUPATH% logic for Unix. 2020-07-10 19:53:33 +02:00
Leon Styhre 31da561695 Complete UTF-16 (Unicode) support added for Windows.
ROM names with Unicode characters are supported, as well as running ES from a directory that has Unicode characters in its name.
2020-07-10 18:32:23 +02:00
Leon Styhre d1f8c3e385 Changed 'launch string' to 'launch command' and the setting 'EnableSounds' to 'EnableNavigationSounds'. 2020-07-08 17:06:34 +02:00
Leon Styhre 2bea3021c3 Added proper emulator launch function for Windows and added logic for the new %EMUPATH% variable. 2020-07-07 21:27:48 +02:00
Leon Styhre 76aa239855 Initial update to make the application build and run on Windows.
Much more work will be needed to get the Windows port working properly.
2020-07-03 20:23:51 +02:00
Leon Styhre 0387d515fb Update to fully support Clang/LLVM.
Also a general cleanup of CMakeLists.txt and many small code changes to satisfy Clang that complained quite a lot and actually wouldn't compile the binary at all at first.
2020-06-25 19:52:38 +02:00
Leon Styhre 6b62065595 Large code cleanup and code documentation update.
The initial code cleanup of es-app is now complete as of this commit.
2020-06-23 20:07:00 +02:00
Leon Styhre 67aa6b3dbd Huge code cleanup and code documentation update.
Includes lots of conversions from tabs to spaces. Only cosmetic code changes in this commit.
2020-06-21 14:25:28 +02:00
Leon Styhre 49161df0e6 Renamed platform.cpp/platform.h to Platform.cpp/Platform.h
The naming convention for the rest of the application is to start the file names with a capital letter.
2020-06-21 12:26:21 +02:00
Leon Styhre fb0ab2f06c Added a ROM path variable for use with es_systems.cfg and custom collections.
The variable %ROMPATH% now expands to the ROMDirectory setting in es_settings.cfg which removes the need for absolute ROM paths (although absolute paths are still supported). Custom collections with absolute paths can still be loaded for backward compatibility with old custom collections.
2020-06-18 17:09:32 +02:00
Leon Styhre 7cefe6a2bd Moved quick selector letter index generation to gamelist sorting loop. This increases (non-optimized) sort time with around 1,5 - 4,5% but the game option GUI opens way faster now due to the caching of the letter index. Also made the quick selector more intuitive. 2020-06-11 21:08:48 +02:00
Leon Styhre 90735d44e3 Major update to scraper including support for new media handling logic, ability to download more media file types (screenshot, cover, marquee, 3D box) and an improved scraper GUI. As well a rewrite of the navigation sound code. 2020-06-06 13:10:33 +02:00
Leon Styhre f2f7d34bb6 Monster commit. Rewrote gamelist sorting logic and made per-gamelist sort settings session-permanent. Cleaned up a lot of code and started to reformat for 100 characters line length. 2020-05-24 10:29:29 +02:00
Leon Styhre f806285e06 Added support for per-game launch string override (emulator override), configurable in the game meta data edit screen 2020-05-19 17:53:34 +02:00
Leon Styhre fbec408dfa Rewrote media handling to look for images and videos in a configurable media directory (by matching the ROM names) instead of being configured per game as XML tags 2020-05-18 19:00:43 +02:00
Leon Styhre ffcf52c710 Made game launching more seamless and prevent minimizing of window when switching applications. Also added menu entry to choose between normal fullscreen mode and borderless fullscren mode 2020-05-15 17:51:32 +02:00
Leon Styhre 1007f19bdc Added functionality to show favorites on top of the gamelists (mostly ported from batocera-emulationstation) 2020-05-15 17:42:36 +02:00
Jools Wills 46047894f3
Merge pull request #578 from verybadsoldier/feature/save_metadata_on_change
Added an option to save meta data instantly when changed.
2019-12-18 04:06:23 +00:00
verybadsoldier a136179fc9 save also metadata that have default values. they might not had default values on start so they have to be saved 2019-12-13 21:38:01 +01:00
John Rassa 28ed6ed04e ensure change flag cleared for new FileData 2019-09-03 22:39:19 -04:00
Tomas Jakobsson 9de16045c9 whitespace cleanup
fix faulty line endings
silence warnings on windows
2019-08-25 17:23:02 +02:00
Cristi Mitrana c84290e7fb Makes the display of system's name in Collections configurable.
* adds a new configuration option ("CollectionShowSystemInfo" = bool), in the 'Game Collections Settings' GUI. Defaults to previous behavior (true).
* reloads the Collection when the configuration is changed.
2019-07-12 10:32:01 +03:00
jrassa 72edb792d2 implement scripting support 2019-03-26 20:02:42 -04:00
Cristi Mitrana 70bbcb0b1e Fix getThumbnailPath ignoring the 'image' tag when 'LocalArt' is not set 2019-02-12 09:11:50 +02:00
Jools Wills 9af271d36f add setting for searching for local game art - defaults to off 2019-02-09 17:27:34 +00:00
Rael Gugelmin Cunha 065fd8edf1 Skip mame bios/devices 2018-11-04 15:26:03 -02:00
joemommasfat ed2511e215 add sortname to gamelist.xml to sort by a different name 2018-04-24 23:07:25 -06:00
John Rassa 99f7330475 fix for several small issues in Windows build 2018-04-13 16:53:39 -07:00
Tomas Jakobsson 3f3e1ceb16 Move MameNameMap out of the source and into mamenames.xml 2018-02-09 18:32:05 +01:00
Tomas Jakobsson 421e4a23df The final traces of boost has been eliminated 2018-01-30 19:21:09 +01:00
Tomas Jakobsson 3d3fb2c277 Switched over the last functions in Utils.cpp to Utils::String, step 3 of 5 in the quest to remove boost::filesystem 2018-01-27 18:04:28 +01:00
Tomas Jakobsson ed2eb3d4d0 Move more functionality from Util.cpp to utils/StringUtil.cpp in the quest too remove the need for boost 2018-01-27 02:12:16 +01:00
Tomas Jakobsson c1f8e7294c Update and rename some Utils::FileSystem functions
Replace boost::filesystem::is_directory
with    Utils::FileSystem::isDirectory

Replace boost::filesystem::is_regular_file
with    Utils::FileSystem::isRegularFile

Replace boost::filesystem::is_symlink
with    Utils::FileSystem::isSymlink

Replace boost::filesystem::exists
with    Utils::FileSystem::exists

Replace boost::filesystem::create_directory
with    Utils::FileSystem::createDirectory

Replace boost::filesystem::remove
with    Utils::FileSystem::removeFile
2018-01-23 12:07:20 +01:00
Jools Wills db72b21500
Merge pull request #337 from error454/perf
Majorly improved performance when fetching Mame names.
2018-01-09 12:32:26 +00:00
Zachary Burke 7d50301b46 Majorly improved performance when fetching Mame names.
After profiling UI filtering and startup I determined that
getCleanMameName was responsible for the incredibly long load times when
loading/filtering Mame ROMS. This function was using a linear search
over a pre-sorted array to find a corresponding Mame ROM Name from the
ROM name. It now uses a binary search which improves UI load/filter
responsiveness by a couple orders of magnitude.

Single core performance on my i7 for 10,000 iterations was 2.01 secs vs
7.77e-4 secs
2018-01-03 13:47:39 -08:00
Tomas Jakobsson 05caef2f28 Remove all namespace fs = boost::filesystem; 2017-12-28 15:03:11 +01:00
Tomas Jakobsson 5e8d6b7f45 Eliminated the need for boost::xpressive, boost::algorithm and boost::variant 2017-12-27 18:22:26 +01:00
Tomas Jakobsson 11b8dbfc43 Replaced boost::posix_time with Utils::Time 2017-12-01 18:49:56 +01:00
Tomas Jakobsson 9fbe95daa3 iterator -> const_iterator 2017-11-12 00:05:19 +01:00
Tomas Jakobsson a8fc560749 Header inclusion cleanup 2017-11-02 19:16:01 +01:00
Jools Wills d57dee245c
Merge pull request #242 from psyke83/PSFixes
Power Saving enhancements
2017-10-28 20:18:38 +01:00
Tomas Jakobsson cd2f2ee42b Use local game art ( image, marquee and video ) from romfolder/images if the gamelist didn't specify a path 2017-10-24 00:57:08 +02:00
Conn O'Griofa c08c24e615 Remove explicit calls to AudioManager::init() and fix deinit() behaviour
Ensure that deinit() removes the current sInstance so that the next call
to AudioManager::getInstance() will re-initialize audio correctly.

Remove explicit calls to AudioManager::init() and instead rely on
Sound::play() to initialize audio when needed.
2017-09-28 20:32:37 +01:00
pjft 01a55ba6a2 Added support for custom Game Collection creation
- Create from a theme folder
- Create by specifying a name
- Refactored collection creation to be on-demand rather than on startup
2017-08-17 16:09:37 +01:00
pjft d0cdbf2159 Adding support for Virtual Systems
- Refactoring System Environment data
- Added Virtual System Manager class
- Added "all", "favorites" and "last played" systems
- Added GuiInfoPopup class for notifications
- Added Favorites to metadata, as well as a shortcut to toggle favorites
- Added warning if enabling systems but themes don't support it
- Added "filter by favorites" per system
- Adjusted "Go to Random Game" behavior to account for the fact that we now have an "All Games" system
- Added "sort by system name" for the collections
2017-07-07 20:16:21 +01:00
pjft 80526c777e Fixing whitespaces and indentation (tabs) 2017-05-18 12:51:45 +01:00
pjft 7f84eeea94 Adding generic gamelist filter funcionality for ES, specifically genre, players, ratings and publisher/developer 2017-04-28 12:05:20 +01:00
pjft 77e09864d9 Adding metadata to folders 2017-04-04 09:20:22 +01:00
fieldofcows 25e1067794 Add video view that is based on detail view but allows themes to include a video preview of the selected game along with a marquee image 2016-12-12 09:34:01 +00:00
Alex Jones 454a18f9ec Trust the gamelist by not checking whether files exist and also improve the algorithm for parsing the gamelist. 2016-08-10 17:48:56 +01:00
Jools Wills 53f69bf61b add a getDisplayName function, which is used for rom display, and make getCleanName again strip paratheses, which is used in the scraper backends. 2016-03-29 16:33:19 +01:00
Jools Wills b3c38b9782 don't strip info from the parentheses in the gameslists - it's useful! 2015-09-19 02:25:31 +01:00
Aloshi bc72990f39 Changed 'emulationstation' folder to 'es-app' because I forgot executables don't have extensions on Linux
Half of the ES code has been missing for 5 days because I am incompetent
2014-06-25 12:02:36 -05:00