Commit graph

355 commits

Author SHA1 Message Date
jdgleaver c37f540b72 Core Info Cache Improvements
- Core info cache can now be enabled/disabled on all platforms via a new `Settings > Core > Cache Core Info Files` option
- Core info cache file has been renamed from `.cache` to `core_info.cache` (i.e. it is no longer a 'hidden' file on Unix platforms, so can be deleted easily)
- The core info cache file is now compressed (rzip) to further reduce disk IO
- The presence of a `core_info.refresh` file in the core info directory will force a one-time refresh of the info cache. This file is generated automatically when toggling on the `Cache Core Info Files` option, and we will also add it to core info file packaging such that updating info files (either manually or via the online updater) will force a refresh
- The core info cache no longer contains 'core is locked' and 'firmware missing' data fields; these are 'dynamic' properties that must be determined at runtime
- The 'core is locked' status is now determined on core info intialisation by parsing the core directory listing, rather than by performing indivdual 'lock file exists' checks. This minimises file IO, and greatly improves performance on devices with slow storage
- While parsing the core info cache file, we now avoid unnecessary `strdup()`s when adding entries to the resultant cache list
- Memory leaks (potential and real) have been fixed, and safety checks added
- Build errors have been fixed
2021-05-06 15:00:55 +01:00
bulzipke e96cbcac04 (3DS) Build core info cache 2021-05-04 23:01:17 +09:00
jdgleaver 3bc2758d51 (core_info) Prevent potential hash collisions when searching for cores 2021-04-28 17:52:15 +01:00
jdgleaver f4511f6fa4 (core_info) Performance optimisations + code clean-ups/refactors 2021-04-26 14:30:31 +01:00
twinaphex 4c4d5e5837 (core_info.c) Cleanups 2021-04-20 19:46:11 +02:00
Autechre dbe1061742
Refactors (#12057)
* lock_file_path here will never be empty

* Simplify path_mkdir - final return value can become false, and sret
variable can go
2021-02-21 11:09:11 +01:00
twinaphex c744baeb89 Add ctype variants to stdstring and use it in RA 2020-09-27 22:15:32 +02:00
twinaphex 5f2688c4cf Cleanup 2020-09-05 19:37:31 +02:00
jdgleaver bd80f02f11 (Android/Play Store Builds) Add option to switch all installed cores to Play Store versions 2020-09-02 17:13:03 +01:00
jdgleaver 4799d2d955 (Android/Play Store) Add frontend support for core installation via Play Feature Delivery 2020-08-28 16:30:54 +01:00
twinaphex 56640bf7c9 (jdgleaver) Cleanups 2020-08-27 12:10:14 +02:00
twinaphex ea6bf9b9fc Cleanup core_info_set_core_lock 2020-08-26 20:22:56 +02:00
twinaphex 6478d20e55 (core_info/UWP) Use non-heap based versions for string_list 2020-08-26 18:43:19 +02:00
jdgleaver 7a07cc1305 Fix 'Set Core Association' regression 2020-08-26 15:18:39 +01:00
twinaphex ad61d8ff92 Simplify config_get_entry 2020-08-26 02:17:37 +02:00
twinaphex 6af6d5eb1c (jdgleaver) Initialize string lists properly to prevent memory leaks 2020-08-25 13:25:27 +02:00
twinaphex 8a479e6006 Create dir_list_initialize/dir_list_deinitialize 2020-08-24 18:56:25 +02:00
twinaphex ea4a74a005 Use string_list_initialize/deinitialize for core_info.c 2020-08-24 01:02:35 +02:00
twinaphex 4ec216dc0b Get rid of file_path_str 2020-08-22 01:06:10 +02:00
twinaphex ad7db2e2b8 Move path variables off heap size; prevent potential memory
fragmentation
2020-08-18 12:44:14 +02:00
Autechre 8cb861798e
Merge pull request #11075 from francescotintori/francesco/playlist_autofix
Playlist base content directory paths
2020-07-28 16:10:20 +02:00
francescotintori 9744fcb76a Adds base content directory support in playlists. If playlist base content directory does not match configuration parameter 'rgui_browser_directory', all entries paths are automatically fixed to match parameter 'rgui_browser_directory'.
Functionality is enabled if new parameter 'playlist_autofix_paths' is enabled.
2020-07-27 20:59:56 +02:00
twinaphex 9db00e4143 Start using video_driver_get_flags_wrapper again 2020-07-27 06:40:30 +02:00
twinaphex b9e471d22a Revert "Video context driver cleanups - less functions to go through with"
This reverts commit cd1d760a38.
2020-07-26 23:12:05 +02:00
twinaphex 26d915c1f2 Revert "(core_info.c) Cleanup"
This reverts commit ab8f3115da.
2020-07-26 23:11:53 +02:00
twinaphex b604200730 Revert "Cleanup core_info_hw_api_supported"
This reverts commit 9f653f27b0.
2020-07-26 23:11:38 +02:00
twinaphex 9f653f27b0 Cleanup core_info_hw_api_supported 2020-07-26 08:29:17 +02:00
twinaphex ab8f3115da (core_info.c) Cleanup 2020-07-26 08:22:04 +02:00
twinaphex cd1d760a38 Video context driver cleanups - less functions to go through with
public scope
2020-07-26 08:00:49 +02:00
twinaphex a3242daa5d Silence more warnings 2020-07-23 05:51:04 +02:00
twinaphex 270a22ce0b core_info_hw_api_supported - silence warning array subscript has type
'char'
2020-07-23 05:18:15 +02:00
twinaphex 55d9456cbb More static code analyzer fixes 2020-06-29 20:14:14 +02:00
twinaphex fe14bc6e07 (core_info.c) Get rid of calloc 2020-06-29 03:46:27 +02:00
twinaphex 021625fd4a Revert "Move static functions to top of files"
This reverts commit 02b542e2a5.
2020-06-26 18:40:26 +02:00
twinaphex 02b542e2a5 Move static functions to top of files 2020-06-26 18:15:38 +02:00
twinaphex dd2844a2ac Convert calloc to malloc where possible 2020-06-24 19:45:09 +02:00
twinaphex 0cdea62072 (core_info.c) Try to avoid config_get_string 2020-06-24 11:57:58 +02:00
jdgleaver 160b864d32 Prevent unnecessary string duplication when parsing core info files 2020-06-22 15:03:47 +01:00
jdgleaver 80f36e16d0 Add option to selectively 'lock' (prevent modification of) installed cores 2020-06-18 17:36:33 +01:00
twinaphex b46a316df9 (core info) Pass pointer around to some functions 2020-06-13 07:29:26 +02:00
twinaphex 34af28461f Move core info global state to retroarch.c 2020-06-13 07:21:00 +02:00
jdgleaver 445921ac5d Core info search optimisations + improved core selection logic + clean-ups 2020-06-06 13:59:28 +01:00
twinaphex 8b796d3b47 Add TODO/FIXME notes for globals 2020-05-29 05:27:13 +02:00
jdgleaver 9f4a9e9cd6 Core updater improvements 2020-05-27 17:02:43 +01:00
Francisco Javier Trujillo Mata 1eeb3dcf30 Adapt PS2 port to new SDK with newlib support (CDVDFS support is missing) 2020-05-20 20:13:19 +02:00
jdgleaver 9eb8472805 Only write config files to disk when parameters change 2020-04-27 17:06:35 +01:00
twinaphex 05cf2ee8ba (core_info.c) Move globals to single struct 2020-03-06 18:13:36 +01:00
twinaphex 4493ece2f2 Cleanup 2020-02-16 20:27:22 +01:00
twinaphex e54e12876b Header cleanups 2020-01-25 17:51:07 +01:00
twinaphex b94b9e2adb Go back to plain strlcpy/strlcat - probably best to look at
opportunities to reduce these calls vs. replacing them with
unsafe macros
2019-09-23 00:19:01 +02:00
twinaphex 76f4cf5cc5 Start using STRLCAT_CONST/STRLCAT_CONST_INCR/STRLCPY_CONST 2019-09-20 20:39:34 +02:00
twinaphex db624a7c99 Start cleaning up the rather messy manual assignment 2019-09-20 02:03:26 +02:00
twinaphex ab515daa0c Try to get rid of file_path_str 2019-09-18 18:12:57 +02:00
twinaphex ed77d46cc9 Cut down on some strlcat usage where not necessary 2019-09-18 04:58:52 +02:00
Twinaphex 753be84ae0 (Apple) Silence some warnings 2019-09-14 17:15:30 +02:00
twinaphex 96ba8b6928 Cleanups 2019-08-10 04:34:15 +02:00
Brad Parker 80cb762cdb samples/tasks/database buildfix 2019-07-29 16:30:53 -04:00
twinaphex 95c5d22c5a Split up mmdevice enumeration string list to separate
file
2019-07-25 05:42:23 +02:00
Brad Parker 2db48d39f4 fix comparison 2019-07-23 23:05:09 -04:00
Brad Parker 61ab9249fc add "required hw api" to core info files, block content loading if core is incompatible with current graphics API/version 2019-07-23 22:44:45 -04:00
twinaphex c85707336b Fix LGTM warning - declaration hides parameter 2019-07-18 19:07:27 +02:00
twinaphex 41a2fabb4e Create config_file_new_from_path_to_string 2019-07-18 12:03:50 +02:00
twinaphex a465971556 core_info_get_display_name - use config_file_new_from_string 2019-07-18 00:43:03 +02:00
twinaphex 319e708738 core_info_list_iterate - use config_file_from_string 2019-07-16 19:01:43 +02:00
jdgleaver 0be44e57ad Overhaul default playlist core association 2019-06-26 17:42:26 +01:00
twinaphex d9b4afe04a Quick buildfix 2019-05-10 18:34:18 +02:00
twinaphex 74388d8490 Remove string_concat 2019-05-10 18:05:58 +02:00
twinaphex b270ea6b79 Revert "(MSVC 2003) core_info - remove all_ext from heap - fixes crash with MSVC2003"
This reverts commit 50a57b03a1.
2019-05-10 08:31:18 +02:00
twinaphex 50a57b03a1 (MSVC 2003) core_info - remove all_ext from heap - fixes crash with MSVC2003
and makes for easier code
2019-05-05 14:23:29 +02:00
twinaphex cce4aa9c86 (core_info.c) Use string_concat for constants 2019-05-01 00:21:50 +02:00
twinaphex bc2bdd5734 config_file_read not needed anymore 2019-04-30 13:37:10 +02:00
Twinaphex 1819584d74 (General) Fix some warnings
(OSX) Add HAVE_STB_FONT
2019-04-30 11:38:47 +02:00
twinaphex 3b24565b66 Be more careful with dangling pointer 2019-04-28 10:17:03 +02:00
twinaphex 2b5b67d663 Simplify core_info code 2019-04-28 05:15:21 +02:00
twinaphex 5044537625 (core_info.c) Small opts for core_info.c 2019-04-27 14:23:07 +02:00
twinaphex 2c47d571aa Use path_is_valid instead of filestream_exists when we only
need to know if a file exists on the filesystem
2019-04-27 14:01:50 +02:00
twinaphex 3e72c502a8 strlen optimizations :
- use STRLEN_CONST for constant strings, translates to sizeof
which should be computed at compile-time
- found some places where we are needlessly calling strlen two
times instead of just once
2019-04-27 04:21:10 +02:00
twinaphex 7201d0bf22 Revert "Use path_is_valid instead of filestream_exists where possible -"
This reverts commit 88e3abd6fd.
2019-04-26 13:46:21 +02:00
twinaphex 88e3abd6fd Use path_is_valid instead of filestream_exists where possible -
stat should be faster than fopen
2019-04-26 13:33:25 +02:00
twinaphex 16e2db25c4 Prefer config_file_read instead of config_file_new when we are
sure the path cannot be a directory path
2019-04-22 01:23:50 +02:00
twinaphex 69168ec6bc Core info list iteration was calling path_stat two times on the same
paths - unnecessary file I/O is an issue with UWP/WinRT so let's cut
this down to only one path_stat. config_file_read function created -
acts the same as config_file_new except it doesn't check if the path
provided is actually a directory, which in turn would lead to another path_stat call
2019-04-22 01:13:19 +02:00
twinaphex e5800cf733 Cleanups 2019-04-21 05:47:24 +02:00
jdgleaver 8a2cd64889 Always use core display name when populating playlists 2019-03-07 16:54:46 +00:00
jdgleaver 9bcc80320d Core Info: Use basename when searching core paths (fixes issues when core directory is on a symlinked filesystem) 2019-03-06 16:42:09 +00:00
Brad Parker 4f0d61a2ac update copyright 2019-02-22 19:13:36 -05:00
twinaphex c98b2e2292 Buildfixes and more static code analysis warning fixes 2019-01-10 22:24:43 +01:00
twinaphex 9c5c0aea58 Start replacing WinRT ifdefs so that Windows Phone 8 can be detected
too
2019-01-02 13:30:58 +01:00
krzys-h 48d82929ff (UWP) Add support for loading cores from optional packages 2019-01-01 16:21:47 +01:00
Francisco Javier Trujillo Mata 0880bd00b0 PS2 is compiling with null drivers 2018-11-09 22:40:50 +01:00
Jesse Bryan f6a0b09e7d general: renamed rpcname to systemid 2018-08-21 09:41:16 -05:00
Jesse Bryan c276f9349a discord: remove hardcoded values and use new attribute 2018-08-20 20:55:44 -05:00
Brad Parker 9f60a6d17c fix Core Information not appearing after 73f2710 2018-08-15 16:11:05 -04:00
Brad Parker a1aefc901c Qt WIMP GUI 2018-04-30 14:33:05 -04:00
twinaphex c9e48cd9de Cleanups / get rid of more dependencies 2018-04-10 04:31:19 +02:00
twinaphex 6f0fc2426d (database_info/task_database) Get rid of list_special dependencies 2018-04-10 04:13:45 +02:00
twinaphex 3016edce0a Move retroarch.h dependencies out of core_info.c 2018-04-10 04:00:01 +02:00
twinaphex 8ca8f92aeb No more configuration.h dependencies in core_info.c 2018-04-10 03:02:10 +02:00
twinaphex 8b4b5e88ce Update 2018-04-09 22:20:51 +02:00
twinaphex 86c826350e Start moving dependencies out of certain files 2018-04-09 22:18:25 +02:00
twinaphex c830d0273d (core_info.c) cleanup memory allocations 2018-02-04 23:07:24 +01:00