Commit Graph

2373 Commits

Author SHA1 Message Date
LibretroAdmin 739f2ff55c
Reduce calls to path_remove_extension - use fill_pathname instead (#17270)
* Reduce calls to path_remove_extension - use fill_pathname instead

* More fill_pathname usage
2024-12-20 21:40:58 -08:00
Zach Morris b16f04de0a
Add Named_Logos (#17216)
* Draft:  Add Named_Logos

* Allow selecting Content Logo as a thumbnail display

* Increase pl_thumbnail_download index

to 4 to match the 4 available thumb types

---------

Co-authored-by: Rob Loach <robloach@gmail.com>
2024-12-20 18:52:27 -08:00
libretroadmin 17fc55c762 fill_pathname_parent_dir_name - small cleanups 2024-12-19 21:05:43 +01:00
Eric Warmenhoven bee0d2226f
cleanup: minor tidying of unused code in task_http (#17251) 2024-12-11 22:54:26 -08:00
Eric Warmenhoven 7b29062e96
cloud sync: small bug fixes around handling deleted files (#17236) 2024-12-07 00:59:05 -08:00
Alex Kiraly 0b05b1e3f4
Fix CloudSync on Windows, enable by default (#16475)
* Make paths portable for CloudSync when building manifest

* Enable CloudSync on Windows builds

* Fix "fetech server file" - Forgot to commit this, oops!

* Fix definition conflict with gzguts.h

* "Enable Cloud Sync for Windows UWP builds"

---------

Co-authored-by: WindowsDEV <WindowsDEV@WindowsDEV-VM.lan>
2024-11-25 09:47:27 -08:00
Eric Warmenhoven b6f798655a
cloud sync: fix file resurrection (#17204) 2024-11-25 03:18:59 -08:00
libretroadmin 82e4504968 Revert "(pt. 2) static variables are initialized to '0' automatically as per C rules"
This reverts commit 47410df7a3.
2024-11-19 03:03:05 +01:00
libretroadmin 47410df7a3 (pt. 2) static variables are initialized to '0' automatically as per C rules 2024-11-18 15:59:46 +01:00
Eric Warmenhoven a26f6f6b45
webdav: fixes for reauth and parallelism (#17132) 2024-10-29 12:03:46 -07:00
sonninnos c847b02206
Integer overscale GPU screenshot crash fixes (#17118) 2024-10-26 06:45:45 -07:00
Joe Osborn fbf2c70e0d
replay format extended to support external tools (#17042)
- replays now start each frame with the number of key events (8 bit
unsigned int, then key events) and the number of input events (16 bit
unsigned int, then the input events)
- this makes it possible to parse replay files without any core
loaded, and makes replays more portable if cores change their polling
strategies
- external tools can now parse replay files
- old (vsn 0) replays will still play back, but new (vsn 1) replays
will not play on old RA
- replay files grow faster now, with each input poll now taking 8
bytes instead of 2
2024-10-04 12:47:34 -07:00
Viačasłaŭ 3019b926c2
Fix typos (#17068) 2024-10-01 17:36:33 -07:00
Eric Warmenhoven 1211b2d56a
Fix steam build (#17007) 2024-09-16 13:15:19 -07:00
zoltanvb 05844c649f
Autoconfig extension with alternative name/vid/pid (#16990)
If there are several variants of a controller, but their button
layout is exactly the same, allow alternative identifiers, e.g.:
input_device_alt1
input_vendor_id_alt3
input_product_id_alt9
2024-09-12 11:50:46 -07:00
zoltanvb 8c2d2f5d74
Make individual thumbnail downloads obey filename match setting. (#16826) 2024-09-10 17:36:25 -07:00
Eric Warmenhoven e38b9ff734
Fix scanning .chd files (#16986) 2024-09-10 15:47:37 -07:00
libretroadmin 5a539a31bd Transfer structs/enums over to task_screenshot.c 2024-09-10 23:17:19 +02:00
libretroadmin 29f011acef * Inline find_last_slash
* explore_load_icons - fill_pathname_slash is equivalent to usage
of strlen here, no need to call strlen
2024-09-10 16:02:06 +02:00
libretroadmin f2ad4071bc Buildfix for Android 2024-09-10 03:00:37 +02:00
libretroadmin f4ed638347 Rewrite libretro-common task_queue, use flags 2024-09-10 02:42:07 +02:00
libretroadmin 36bcbefc96 Cleanup some char variables - title variables will always be 128
in size
2024-09-10 00:15:23 +02:00
libretroadmin 13cf0fc79c Add more TODO/FIXME notes 2024-09-09 20:19:29 +02:00
libretroadmin 7f87a46744 More downsizing of variables 2024-09-09 16:18:32 +02:00
libretroadmin 73e5d955c3 Downgrade some more variables to NAME_MAX_LENGTH 2024-09-09 16:01:29 +02:00
libretroadmin e675ea7e29 Variable cleanups - add TODO/FIXME notes for spurious variable sizes 2024-09-09 15:22:08 +02:00
libretroadmin b8391e233f * PATH_MAX_LENGTH redefined from 4096 to 2048
* Massive reduction in heap space allocation, going from settings struct
264kb to 119Kb
* Use NAME_MAX_LENGTH for base paths/names, etc
* Use DIR_MAX_LENGTH for directory sizes
2024-09-09 05:47:32 +02:00
libretroadmin 9efb498bde (config_file) Use flags 2024-09-08 18:12:12 +02:00
zoltanvb 8562c16b4c
Fine-tune device reservation. (#16979)
- add reserved device check against device display name as well
- selected device name matching in menu with or without vid:pid
- cosmetical change in test input file
2024-09-08 03:10:21 -07:00
libretroadmin 99a763c4e8 Global - turn bools into flag 2024-09-05 10:05:57 +02:00
kwyxz fab86199a8
fixed warning + allow cli arguments on Haiku (#16887) 2024-08-17 09:58:49 -05:00
Eric Warmenhoven 079ef42a40
cloud sync: fix bug from #16871 (#16879)
https://github.com/libretro/RetroArch/pull/16871/files#r1715823706
2024-08-15 15:27:09 -07:00
kwyxz 4016b2524b
Allow building RetroArch with menu disabled (#16881)
* allow building with --disable-menu --disable-cheevos --disable-qt --disable-slang

* allow building with cheevos while disabling menus and qt
2024-08-15 15:26:59 -07:00
Eric Warmenhoven 12def933dc
cloud sync: add options to sync thumbnails and system files, default off (#16869) 2024-08-11 13:12:35 -07:00
Eric Warmenhoven 9c5a95a126
cloud sync: speed up sync a bit by uploading/downloading in parallel (#16871) 2024-08-11 13:12:27 -07:00
libretroadmin 857d1e4ddb Buildfix 2024-07-20 19:46:34 +02:00
libretroadmin afc9cb509a CXX_BUILDFIX buildfixes 2024-07-20 19:42:45 +02:00
Eric Warmenhoven 63799385fc
iCloud cloud sync driver (#16794) 2024-07-18 22:02:52 -07:00
Jay Paul c570a6a20a allow saves and configs to be optionally synced to cloud 2024-06-25 08:25:28 -05:00
libretroadmin 38f278519c Remove some header includes 2024-06-16 21:37:46 +02:00
libretroadmin c05ec27334 task_save_handler - rewrite code - put string on stack instead
of heap, avoid using strlcat
2024-06-16 18:44:08 +02:00
libretroadmin 850f1ff6f7 Put comment back 2024-06-16 16:56:19 +02:00
libretroadmin 4eb8b772ec (task_content.c) content_file_override_set - use strtok_r instead
of string_list
2024-06-16 16:54:57 +02:00
libretroadmin 3736aa963f (task_overlay) remove unused variable 2024-06-16 14:38:21 +02:00
libretroadmin 00e669b09a (task_overlay.c) No more string_list usage 2024-06-16 14:35:03 +02:00
libretroadmin e279592ce6 Cut down on some snprintf calls 2024-06-15 01:29:08 +02:00
Jamiras dfcf0c042c fix rewind not working when RetroAchievements cannot identify game 2024-06-12 13:17:52 -05:00
zoltanvb a8d77f618c Better support for multiple reserved devices of the same kind. 2024-06-05 18:17:54 -05:00
zoltanvb a9968e9e86 Controller device reservation / preference.
For each player, 2 new options are added:
- a reservation type (no reservation, preferred, reserved)
- a reserved device name

When handling port - player assignments, reserved devices
will be assigned to the respective player port. If reservation
type is "reserved", no other device can take that port
automatically.

Reservation config option and matching function lifted from:
PatrickStankard https://github.com/libretro/RetroArch/pull/16269

Test joypad driver was extended for more tests.

Co-authored-by: Patrick Stankard <me@patrickstankard.com>
2024-06-05 18:17:54 -05:00
LibretroAdmin 0792144fe3 Revert "Revert "Tweaked limit, amended comment.""
This reverts commit f432cd3f78.
2024-06-04 13:26:41 -05:00
LibretroAdmin d244ee4d80 Revert "Revert "Increase save state chunk size for all platforms""
This reverts commit d51911fac3.
2024-06-04 13:26:41 -05:00
LibretroAdmin d51911fac3 Revert "Increase save state chunk size for all platforms"
This reverts commit 9c4ac3546a.
2024-06-03 22:50:28 -05:00
LibretroAdmin f432cd3f78 Revert "Tweaked limit, amended comment."
This reverts commit c1bb2fd9a1.
2024-06-03 22:50:28 -05:00
Joe Osborn c1bb2fd9a1 Tweaked limit, amended comment. 2024-05-29 13:36:43 -05:00
Joe Osborn 9c4ac3546a Increase save state chunk size for all platforms
A rationale is given in the comments, but even a class 6 or class 10 SD card can handle reads and writes on the order of MB/s, which means a 4KB chunk size is just wasting time in syscalls.  This could maybe be fixed with a buffering reader but I don't feel comfortable tweaking libretro-common's VFS to handle that.  Instead, I thought it would be good to both remove an ifdef and increase the chunk size to 128KB.  For cores with small states this will should make state saving virtually instantaneous, and for cores with large states it should be a 32x speedup.
2024-05-29 13:36:43 -05:00
libretroadmin a6c82df0fd (task_database) Use size_t for size to prevent narrowing issue 2024-05-24 03:33:20 +02:00
libretroadmin 3e85a17d7a iFix warnings picked up by -fanalyzer 2024-05-23 23:50:23 +02:00
zoltanvb b37debff13 Fix for scanning PSP ISOs (and probably few others) 2024-05-19 12:23:25 -07:00
Eric Warmenhoven ee8d8b1689 iOS/tvOS: Post Apple App Store fixes
- both: default VRR true
- tvOS: default overlay off
- tvOS: default directory fix
- both: default language fix
- tvOS: jit support fix
2024-05-17 14:38:35 -07:00
Alex Kiraly c644487d8f
Enable Cloud Sync by default on Linux builds with network (#16456)
* Enable by cloudsync by default on Linux builds with network

* Make WebDAV C89-friendly
2024-04-23 16:57:38 -07:00
Barry Rowe 26a824caff
Revert of AI service changes (#16428) 2024-04-12 16:17:24 -07:00
libretroadmin d01197cf1b task_translation.c - silence some warnings 2024-04-06 22:24:22 +02:00
libretroadmin a4212061d4 Cleanup some unused variables 2024-04-06 20:12:15 +02:00
libretroadmin ba47f40487 intfstream_get_serial - use string_is_equal_fast - strlen has already
been calculated for system_name once
2024-04-06 19:53:59 +02:00
libretroadmin 46fab505b5 intfstream_get_serial - add string_starts_with conditionals 2024-04-06 19:50:33 +02:00
libretroadmin 6772579f10 Remove another unused variable 2024-04-06 19:23:23 +02:00
Alex Kiraly 5730ac51a5
Fixed SEGFAULT in WebDav task sync + type changes (#16345) 2024-03-18 12:08:40 -07:00
zoltanvb b27233b3b8
Test input joypad driver (#16370)
* Test driver for joypad inputs

Add a new joypad input driver:
- hide driver behind #ifdef and enable it in config_params.sh
- add a new config parameter to specify the test input file
- add aux files: additional config files that cancel out any binds
  that may be present in RA config, autoconfig profile for
  test joypads, test input file that matches controller test
  sequence

* Fixes and comments for test input driver.
2024-03-18 12:07:36 -07:00
Eric Warmenhoven 7379d33801
tvOS Top Shelf (#16302)
This puts the History and Favorites playlists (up to five items each)
in the Top Shelf menu. In order for this to be enabled you must build
it yourself and change the app identifiers for the TV app and Top
Shelf extension, and add both of them to an app group.
2024-02-27 23:20:32 -08:00
sonninnos 3c4dd50974
More widget additions and adjustments (#16287) 2024-02-25 20:23:08 -08:00
Viačasłaŭ Chalikin 997c7453a8
Fix narrator modes (#16179)
* Fix narrator

* Refactor accessibility
2024-02-08 21:14:23 -08:00
Eric Warmenhoven 79e43e2bd4
Fix many warnings (#16180)
Also change iOS/tvOS to use system zlib instead of compiling it in
2024-01-31 09:15:14 -08:00
zoltanvb 00d01c844e
Enable serial detection from GDI files. (#16171) 2024-01-28 08:51:20 -08:00
libretroadmin 71edae5955 Fix unused function warning 2024-01-25 16:04:11 +01:00
Daniel Byon fc10539f3c
Fix auto save state when state file does not already exist (#16084)
Co-authored-by: Daniel Byon <daniel@danielbyon.com>
2024-01-07 16:59:59 -08:00
zoltanvb 1e58df4f51
Flexible thumbnail improvements. (#16082)
- Move flag logic to task_push_pl_entry_thumbnail_download - this
enables individual "download thumbnails" entry to be also flexible
- Add a message when this download has been tried enough times
(i.e. 3)
- Optimize cases when full or short name is the same as standard
name, skip queries if so (both download and local file)
2024-01-07 07:57:39 -08:00
Eric Warmenhoven e428541f9a
Fix input autodetect notices sometimes not appearing (#16077) 2024-01-04 23:12:33 -08:00
Eric Warmenhoven 4220e5683d
Do CRC checks on PSP/PSP(PSN) content scan (#15623) 2024-01-01 21:57:44 -08:00
zoltanvb 8886b92455
Thumbnail fixes (#16062)
* Minor thumbnail improvements

- set standard name if only one entry is in the playlist
- use first database name for thumbnails if core has multiple

* Fix playlist thumbnail downloader

Playlist thumbnail downloader function was missed from the flexible
thumbnail name update, now it is added.
2024-01-01 17:23:18 -08:00
David G. F ab376eb669
Make auto-savestates not use the task queue (#16061)
Auto savestate (and its optional thumbnail) is generated on core unload
(quit, netplay start, etc). This ends up using the task-queue, which in
many cases deadlocks and/or causes a crash due to its asynchronous
nature.

Given that this is a state that must be generated before quiting or
reloading the core, it makes no sense to use the task queue, it should
be a synchronous job like for instance SRAM saving.

This should fix #15248 (tested by @schmurtzm)
2023-12-30 21:44:15 -08:00
David G. F ea87495a4e
Save improvements (#16053)
* Simplify autosave command function

* Simplify and split save and savestate logic

save.c contains "SRAM" saves and their logic, which uses no task/queue.
2023-12-28 11:10:46 -08:00
Eric Warmenhoven 99309a4d79
Cloud sync fixes - ignore .DS_Store files and re-sync on app foreground (#16055) 2023-12-28 11:10:13 -08:00
zoltanvb 3ce56c5b42
Flexible thumbnail matching (#16040)
Add logic to handle 3 possible thumbnail names, in following order:
- most exact name derived from content file (same name, with .png extension)
- usual name derived from playlist (usually coming from database)
- shortened name up to first bracket, chopping off region/publisher etc. info

For local file system, names are checked always.
For thumbnail downloads, names are checked each time the item comes up
in the playlist, meaning that it may take going back and forth 3 times
for a thumbnail to appear. However, as a positive change, failed thumbnail
downloads are not repeated for the same playlist, which was not the case
earlier.
2023-12-27 02:26:46 -08:00
libretroadmin 437d9ddbf1 (task_translation.c) Fix warning 2023-12-18 01:39:00 +01:00
libretroadmin 2980eb7e12 Silence some warnings 2023-12-17 05:11:18 +01:00
Jesse Talavera 17c9227a9c
Fix the build when XDelta is enabled on certain platforms (#15968)
* Rename the `MIN_MATCH` defined by xdelta3 to `XD3_MIN_MATCH`

- zlib defines its own macro by that name, but with a different value

* Don't redefine `SIZEOF_ARRAY` in xdelta3 if it already exists

* Don't define ssize_t in xdelta3, rely on libretro's definition instead

* Enable xdelta3 support in MSVC 2015-2019

* Fix some invalid MSBuild condition syntax

* Always build xdelta with XD3_USE_LARGESIZET as 1

* Fix an `#if` in task_patch.c

* Enable `HAVE_XDELTA` in the UWP build

* First crack at fixing Xdelta support for Android
2023-12-05 08:32:16 -08:00
Jesse Talavera-Greenberg cbf49a0b77
XDelta patch support (Take 2) (#15915)
* Add xdelta in deps

* Include <assert.h> in xdelta3.h

- Otherwise the static_assert calls can fail

* Build xdelta3 in Makefile.common

* Add xdelta support to the softpatching infrastructure

- The patching itself isn't fully implemented yet

* Adjust how xdelta3.h checks the sizes of some types

- Now checks max values instead of relying on autotools

* Add some enums that were excluded by the cherry-pick

* Remove stray whitespace

* Adjust SIZE macros in xdelta3.h

- Move them outside the XD3_USE_LARGEFILE64 block
- Add more SIZE declarations
- Make SIZEOF_UNSIGNED_LONG_LONG contingent on the presence of ULLONG_MAX

* Reintegrate xdelta support

* Enable support for xdelta's secondary compressors

- Necessary for some patches

* Fix some format specifiers

* Remove unnecessary files from xdelta

* Include xdelta3.h with a relative path

* Add xdelta3 headers to HEADERS variable

* Gate Xdelta support behind HAVE_XDELTA

- HAVE_XDELTA is on by default
- HAVE_PATCH is still required for HAVE_XDELTA to be meaningful
- Support is mostly contingent on the availability of LZMA
- Anything modern should be okay
- Legacy platforms (e.g. DOS) may need to have Xdelta support disabled
- At least until some other solution can be found

* Disable HAVE_XDELTA on platforms where the build recently failed

- These come from looking at the failed builds on GitHub
- These are guesses, and may turn out to be wrong

* Fix a potential memory leak

- Whoops, looks like I need to call two cleanup functions
- xd3_close_stream exists separately from xd3_free_stream

* Split the --help printout for --xdelta into its own strlcat call

- GCC was complaining about #ifdefs within macro arguments being non-portable

* Fix some incorrect printf format specifiers

* Modify Xdelta to adhere to C89

- It's mostly using RetroArch's INLINE macro instead of the inline keyword

* Slight cleanups

* Remove a stray comma that was hindering C89 builds

* Add XDelta support to CHANGES.md

* Change how the xdelta patch's name is computed

- To be in line with other recent refactoring

* Fix an incorrect merge

- Whoops, this part was from before I figured out how to get the size of a patched file

* Explain the song-and-dance behind computing a patched file's size

* Define some XDelta3-related constants to 0 on 32-bit platforms

* Adjust some Xdelta-related macro definitions

- Exclude the encoder, since we're not making patches
- Move some #defines to after inclusion of <stdint.h>, to fix undefined behavior
- Remove _WIN32_WINNT overrides, since they were for code that we're not using

* Fix Xdelta support

* Wrap an encoder-only function in `#if XD3_ENCODER`
2023-11-23 20:19:07 -08:00
Viačasłaŭ Chalikin 6b0313ed21
Fix: request builder for the AI Service (#15879) 2023-11-06 10:52:17 -08:00
zoltanvb aaff36d024
Small fixes for signedness warnings. (#15873) 2023-11-05 15:33:49 -08:00
Joe Osborn 3167529fbf
increase chunk size for reads/writes under emscripten (#15845) 2023-10-31 07:18:45 -07:00
Viačasłaŭ Chalikin 43105ab5c7
Add Belarusian language option (#15780) 2023-10-31 05:51:57 -07:00
Cpod12 274d47f957
Xunkar's AI service rework updated (#15640)
* AI service rework

* File missing

* Fixed C89 build

* Fixed usage of inline for C89 build

* Fixed an overlay unloading bug

Made sure to unload the overlay on release and when the server returns empty values in automatic modes.

* Fixed forward decl (c89)

* Fixed OpenGL texture loading

Moved image display to the main thread for now

* Changed some formatting slightly

* Fixed struct variable order and put brackets on newlines

* Moved pointer, fixed retroarch.cfg, and replaced strlcat with strlcpy

* Fixed catenation issue

* Fixed a few other catenation issues

* Fixed one more concatenation  issue

* Fixed concatenation issue

* Fixed a few other concatenation issues

* Fixed one more concatenation  issue

* potential fix for parsing issue

---------

Co-authored-by: Xunkar <329857+xunkar@users.noreply.github.com>
2023-10-24 00:27:06 -07:00
Eric Warmenhoven 793cb0cfa3
Fix ios-vulkan-ppsspp, and a small cloud save fix (#15801) 2023-10-15 05:45:03 -07:00
Joe Osborn 2baf9ec7e0
Enqueue replay record/playback until next frame (#15751)
* Enqueue replay record/playback until next frame

This fixes a bug where stdin commands activated via polling would
trigger replay record/playback in the middle of a frame, then input
checking would pull from them before the next frame came around---it
only makes sense to change the active replay in between frames, not
during them.

* fix comment syntax
2023-10-04 00:53:51 -07:00
libretroadmin c82401dcb4 input_device_info - slim down - we don't need config_path and some of
the char arrays can be much smaller
2023-08-30 08:34:21 +02:00
sonninnos 5533f3881f
Prevent directory creation on bogus thumbnail downloads (#15634) 2023-08-21 23:07:38 -07:00
sonninnos 3246bc6655
Add visibility option for save state notifications (#15616) 2023-08-18 12:38:36 -07:00
Eric Warmenhoven db39d78b8c
cloudsync: Don't sync playlists (#15608) 2023-08-16 22:04:55 -07:00
libretroadmin c5088ce2ca Silence some warnings and general cleanups 2023-08-16 22:08:01 +02:00
libretroadmin 5f94f36204 Explicit typecasts to bool 2023-08-16 17:10:59 +02:00