Commit Graph

318 Commits

Author SHA1 Message Date
twinaphex 28cac5c5a4 Add HAVE_CORE_INFO_CACHE - disable this for Steam build 2021-10-14 15:57:28 +02:00
twinaphex c412ecf7e9 Buildfix 2021-09-20 15:54:07 +02:00
twinaphex fa00455af1 Address feedback 2021-09-20 15:43:57 +02:00
Autechre cbfa8d6400
Move coreinfo_get_ptr internal state back to core_info.c (#13020) 2021-09-20 15:43:27 +02:00
jdgleaver f0a510c8a6 Remove core path from core info cache 2021-08-23 11:47:08 +01:00
jdgleaver e306dd8eeb Automatically disable core info cache when core info directory is read-only 2021-07-19 16:39:18 +01:00
twinaphex fb8c73508b Apply diff patch taking care of issues 2021-05-24 18:40:40 +02:00
twinaphex 33de17548b Fix regression caused by core info file caching - Downloads was no
longer showing up in Load Content
2021-05-22 16:25:05 +02:00
twinaphex 925c459aed Use single snprintf instead of multiple strlcpy/strlcat calls in
several places
2021-05-18 23:18:09 +02:00
twinaphex 3b64752f4f Simplify strlcpy/strlcat combinations to single snprintf 2021-05-18 20:01:51 +02:00
Autechre 53a266728b
Merge pull request #12368 from jdgleaver/core-info-fix 2021-05-07 14:28:18 +02:00
jdgleaver a671b6394c (Core Info) Fix core detection on platforms that support cores with multiple file extensions 2021-05-07 10:58:09 +01:00
jdgleaver dec1fd097c Skip whitespace when writing compressed core info cache files 2021-05-07 10:16:21 +01:00
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