A core needs to have "/" in its list of supported extensions to indicate support for loading directories.
If a core additionally supports the disk control interface, also support loading of directories as disk images.
Two new settings added to Settings / Input / Menu Control:
- disable left analog stick in menu navigation
- disable right analog stick in menu navigation
Since the corresponding logic is already a distinct logic flow in
input driver, no change was necessary to analog-to-digital settings
or the like.
* sort remaps by connected controller if option is enabled
* ensure dir name is valid based on input device name
* Fix comments
* Fix forbidden mixed declarations and code
* fixing build errors
* fix additional build warning/error
* Resolved code review change requests
* Changed strlcat to strlcpy as per recommendation
* Retrigger checks
* Use proper path separator.
* Ensure default value is toggled off.
* Ensure that gamepad device name is valid.
* Added check for null thumbnail path. Applies to 16951
* Moved null check up the code to cover multiple accesses to the thumbnail path.
* Checked for null values before trying to get logo icons for playlists
* Rolled back the thumbnail_path_gfx changes and instead added
deinitialization of the icon thumbnails when a list was not a playlist.
* 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
- 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
* This change allows playlist icons to be replaced with Logos. the art is loaded to the Thumbnail Named_Logos folder. It is treated the same as other thumbnails for naming and for automatic download. There is a settings menu option to turn it on and off. It is off by default. This only applies to the xmb menu driver.
* Removed commented out code against the style guide.
* Code cleanup for C89 compatibitity
* Cleaned up errors from Automated CI.
* Cleaned up comments.
* Update gfx_display.c
change strcpy to strlcpy
* Update gfx_thumbnail_path.c
fix code formatting
* Update xmb.c
code formatting changes
Allow thumbnails (boxart, title, screenshot) to be loaded in any
other supported format as well, currently jpg, bmp, tga.
Support is for local thumbnails only, downloads are not changed.
PNG format is always preferred. Menu option added for control,
since trying for multiple thumbnail files may impact performance
on slow storage media.
Handle refresh rate as float in general, and add also extra
attributes (interlaced, doublescan) for video modes.
Make it possible to select exact mode (interlaced / doublescan modes
will not be selected), and allow close matches such as 49.5 Hz
for PAL 50 Hz.
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>
it is more convenient to provide the URL via make option rather than
rely on hardcoded value in the code base. it provides more flexibility
in case of different servers for stable, daily, canary, community, ...
and instead of parsing a file in the filesystem to obtain target name of
the device on which lakka is running, we can provide the target name at
build time as well. the target name is used for the full path URL for
the download of updates.
there is no need to have these values editable via retroarch frontend
and saved in the config file. it is safer to provide them at build time
and have them set this way.
Extended RETROK_ values with 18 new items, commonly found on
"multimedia" keyboards.
Mapping added for SDL, X11, Wayland, dinput, winraw keymaps.
Keyboard tester function of Remote Retropad extended to cover new keys.
One fix in Android mapping for #12986
* iOS/tvOS: Hide MoltenVK from Core List, again
* iOS/tvOS: Don't show certain core management options
* apple: Manage macOS/iOS/tvOS from one workspace
* iOS/tvOS: update-cores.sh tweaks
* Add FlatUX Theme, Remove Retired Themes
With some help from @gouchi, I decided to try and add the FlatUX theme, which has been in the retroarch-assets repository for years. FlatUX was designed to merge the FlatUI and Retroactive themes into a single, unified design.
With the addition of FlatUX, the Retroactive and Neoactive themes will be retired. This PR removes them both from the menus. The theme files will be removed from retroarch-assets, but are archived on baxy-retroarch-themes.
* Edited Language Files to Add FlatUX, Remove Retired Themes
Edited the language files to Add FlatUX and remove the Retroactive and Neoactive themes.
* Fixed Language Files Again
I apologize for my errors. Let's see if this gets it right.
* Updated IT Language File
* iOS/tvOS: bundle cores as frameworks as opposed to dylibs
* iOS/tvOS: update plist to indicate controller support
* iOS/tvOS: living within the sandbox
* iOS/tvOS: import content through share sheet
* iOS/tvOS: default audio sync off due to crash on background
* iOS/tvOS: don't try altkit if there's no reason to
* iOS/tvOS: enumerate cores for appstore distribution
* This PR contains Add To Favorite functionality. It allows moving content to another playlist or to Create a new playlist with the selected content.
* Update retroarch.c
Fixed ISO C90 variable declaration at top of code.
* Update menu_cbs_ok.c
Fixed variable declaration for ISO requirement.
* Add grab_mouse interface for Android
Makes mouse grabbing and 'Game Focus' work on Android with a real mouse
Properly handle relative mouse motion events on Android (SDK 28 and newer)
* Enable workflow_dispatch on CI Android
* Update android_mouse_calculate_deltas callsites
* Add RETRO_DEVICE_MOUSE to android_input_get_capabilities
* Use Handler to trigger UI events (toggle mouse, immersive mode) with 300ms delay
* Enable input_auto_mouse_grab by default for Android
* Handle RARCH_DEVICE_MOUSE_SCREEN in Android input driver
* Add android.hardware.type.pc to manifest
* Don't attempt to set pointer speed via scaling in android_mouse_calculate_deltas
* Keep x/y values within viewport resolution for screen mouse
* Use video_driver_get_size to get width/height
---------
Co-authored-by: Bernhard Schelling <14200249+schellingb@users.noreply.github.com>
- When enabled, any touch inputs not in a hitbox are used to create pointing device input for the core.
- Mouse: 1-, 2-, 3-touch inputs are LMB, RMB, and MMB
- Lightgun: allows input from overlay buttons or multi-touch mappings
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.
* (Ozone) Fix crash when deleting last playlist from sidebar
* (Ozone) Respect navigation wraparound in sidebar
* (Ozone) Fix sidebar after loading configuration
Autoconfig profile may be useful for e.g. submitting to autoconfig
repo. Construction of the filename is moved to a separate function
and reused for message.
* Add sublabels for "port x controls" entries
Due to the port-specific indexes, sublabels for these entries
are handled specially. Some simplification/generalization was
applied and hand-crafted string joining was removed from a few
places, though it remains still in other places.
Preparation for #16121 (this commit does not do anything yet with
file names).
* Further simplifications around joypad_index
Removed a few labels, now unused, and the left/right check, as it
fell back to the default which is given anyway in advance.
Adds support for sub-frame shaders to vulkan/glcore/dx10-11-12.
Builds on the concept already present for frame duplication in use for BFI, to present multiple 'sub' frames per real frame to the shaders, so they can run at a higher framerate than the content framerate. Must be enabled via subframe shaders setting under synchronization settings to be active.
Will allow BFI to be implemented inside of the shaders, among any other use for the higher framerate shader authors can devise.
CurrentSubFrame and TotalSubFrames have been available inside the shaders to track what they want to do on an given subframe. TotalSubFrames will always be 1 when the setting is disabled (and when in menu/ff/pause). Framecount will not increment on sub-frames, as it does not for injected bfi frames now. Should not interfere with any existing shaders that do not check for subframes.
Loading the last used disc for multi-disc content was automatic.
However, in some cases it is not wanted, as described in #16018
Option is added for controlling the function. Disabling the
option will also implicitly disable index saving.
commit 793d41c303206b43932ddcefd44a45836def55eb
Author: Ophidon <jrogers2@gmail.com>
Date: Fri Jan 19 23:12:31 2024 -0500
Build Fix 2
Move declarations of iterators.
commit c0e959b3d3cd773a66a17cfe034f08eaa53d525a
Author: Ophidon <jrogers2@gmail.com>
Date: Fri Jan 19 22:57:01 2024 -0500
Build Fix
Help string was 14 characters too long for c89.
commit fc5506c7906bf82d6f88b7b0d7e4764d58d90622
Author: Ophidon <jrogers2@gmail.com>
Date: Fri Jan 19 22:40:45 2024 -0500
BFI Updates
Significant BFI updates.
- Adds BFI to dx10/11/12 in general.
- Updates existing BFI menu option descriptions to be somewhat more clear in how to use correctly.
- Adds Variable Strobe length via new 'Dark Frames' bfi sub-choice. Only valid at 180hz and above, as it must work with whole frames.
- Algorithm to auto select 'decent' Dark Frames choice, for any given selected BFI refresh rate. Will also avoid defaults that can cause Image Retention at any Hz higher than 120. (Impossible to avoid at 120 if you have an affected screen... get an OLED :D ) .
- Some sanity checking on selecting BFI or the other synchronizations options like Swap Interval > 1, that don't play well with BFI.
Thumbnail packs are no longer available, but the option was still
present as "legacy thumbnail downloader". Since it serves no
purpose any more, it is removed from the code.
Right now close is based on core unload. There are several places where
cores are unloaded without the intention of stopping the emulation (for
instance whenever Netplay is started, core is updated, etc).
Moreover scheduling a quit under some of those events causes a task
queue deadlock (as per issue #15313) and freezed retroarch.
This fix moves the quit on close to a "manual" check, placed in the
relevant places (close content menu option, close content event (which
also covers hotkeys), etc.)
- Allow starting netplay host while a netpacket core is running without restart
- Allow connecting to a host while a netpacket core is running without restart
- Avoid clients getting stuck in connection loop if the host has the content paused while a client connects by automatically unpausing
* ensure game placard is loaded on main thread
* show on-screen indicator while disconnected
* show server unreachable message in achievements menu
* remove comment
There are cases when mixer exists without ffmpeg. In such cases,
some music content can still be added to the mixer for playback.
Logic added to separate the two cases.
This line generates a warning during compilation:
menu/menu_displaylist.c:11925:46: warning: '%d' directive output may be truncated writing between 1 and 3 bytes into a region of size 2 [-Wformat-truncation=]
11925 | "Mode %d", toc->track[i].mode);
| ^~
menu/menu_displaylist.c:11925:40: note: directive argument in the range [0, 255]
11925 | "Mode %d", toc->track[i].mode);
| ^~~~~~~~~
In file included from /usr/include/stdio.h:936,
from ./libretro-common/include/file/file_path.h:26,
from menu/menu_displaylist.c:27:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:64:10: note: '__builtin___snprintf_chk' output between 7 and 9 bytes into a destination of size 7
64 | return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
65 | __bos (__s), __fmt, __va_arg_pack ());
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Since the value of the track mode should be either 1 or 2, a modulo 10 should not limit the displayed value, and it removes the warning.
* Input: Udev: Fix touch support building against older kernel headers
* Input: Udev: Fix Touch Deep Debug compile issues
* Input: Joypad: Udev: Joypad: Add Change detection for udev events
This is handy with controllers like the Nintendo Joycons that have a daemon
app in the background to handle combining them into one controller(Joycond)
Since the device was already added, but joycond clamped permissions on evdev
retroarch was never updating the controller input change, this fixes that issue.
Note: Needs a patch in joycond as well, to send change uevent.
This shouldnt cause any issues with other controllers, as the kernel probably
will never send change events for these device types.
* Lakka: Add canary builds to updater
Earlier refactor f121847e00
has removed CMD_EVENT_AUDIO_START (and stop), however on PS2 it
causes no sound, so it is added back behind a compiler switch.
* 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>
* High Hz Synchronization
Makes adjustment to driver_adjust_system_rates and related functions to handle Hz skew adjustment for high refresh rates better, especially when using effective refresh modifiers like swap interval or BFI.
* Reorder for Build Fix
Reorder declaration for build fix
* Lakka: Switch: Decouple From LibNX builds.
* Lakka: Always show Power Management Settings menu
* Lakka: Switch: Add Nintendo Switch Options Menu, and First Option
* Lakka: Switch: Add CEC Toggle
* Lakka: Switch: Add Bluetooth ERTM Toggle
* Retroarch: unix platform: Always display battery meter even when the device reports it as unknown
This is useful for most arm devices that have unknown battery status until charger state changes
* Retroarch: Lakka: Remove Gamemode stuff from build
Lakka will never include this, as it only runs base system, and retroarch.