Repurpose vibrate_on_keypress to enable device's standard keypress feedback on overlay key/button state changes
- Add keypress_vibrate function ptr to input_driver_t (only implemented on Android for now)
- (Android) Remove APP_CMD_VIBRATE_KEYPRESS
- (Android) Add doHapticFeedback, called directly to avoid latency
* Add View feature
Add saving of a filter set in the Explore menu into a so called "View" file which then gets listed alongside playlists.
This also adds the ability to filter a category by range in the Explore menu and not just filter on exact matches.
* Menu improvements for explore and views
* Collapse ozone sidebar in view
* Fix problems with the sidebar in explore/view
* Ignore view files in the Qt playlists menu
* Add missing semicolon
* Support downloading thumbnails in views
== DETAILS
Looks like Wii U's mkdir() implementation doesn't like trailing
slashes either.
Since we already have an implementation to handle this, I just added
Wii U to it.
== DETAILS
Previous work to clean up the HTTP networking code surfaced a bug
in `socket_connect_with_timeout()` that caused connections to
immediately fail. Specifically, achievements stopped working because
the http task code path was rewritten to use
`socket_connect_with_timeout` instead of `socket_connect`.
The bug appears to come down to an unsupported socket option. The final
check is to try to read `SO_ERROR` from the socket, and on WIIU the
`getsockopt()` call returns -1 and sets `lastsocketerr()` (WIIU's
equivalent to errno) to 16.
The fix is to change the logic to only abort the connection if that
`getsockopt()` call succeeds *and* the error is set.
* VFS: Fix stream size after truncate / write calls
Those changes ensure the stream size get updated correctly after a
truncate or write call.
* File Stream: Fix file stream eof
After a write call, EOF would be incorrect because it was only updated
after a read call.
Avoids the internal strlen call inside strdup, and strdup is a deprecated
function starting from MSVC2005 anyways.
NOTE: Do NOT pass STRLEN_CONST as n parameter to strldup, it needs to
be at least +1 character higher than the strlen return value of the same
string
Reasons:
1 - Just a macro for strcpy
1.2 - doesn't have a return type unlike strlcpy, can't be used
for string concatenation
1.3 - unsafe compared to strlcpy
Do either manual string assignment per character or strlcpy, no
inbetween by resorting to strcpy
as deprecated.
* Use fill_pathname_join_special in the vast majority of cases where
we can ensure out_path is a new empty string
* Get rid of some extension concatenation with strlcat where encountered
* Some general cleanups with NULL termination of strings that get immediately
passed to strlcpy/strlcpy-adjacent functions
- was doing a strlen first on path to calculate the length
- stored at least three local variables for string constants
- did another memcmp check after doing the length comparison conditional first
Simplify all this into a simple string comparison checking if the
path starts with the string 'vfsonly://' and/or 'cdrom://' -
avoid both strlen and memcmp cost. Also removed the need for
stdstring.h header include - just translated STRLEN_CONST into
(sizeof(x)-1) - no header file dependency for the only usage of stdstring.h
in this file
(libretro-common) docs - document when string has to be non-NULL or else UB (undefined behavior)
(libretro-common) stdstring.c - string_hex_to_unsigned - make strlen call unneeded
* (joypad_connection) Small optimizations -
* Turn functions static where possible
* Hose strlen call out of loop
* (input_driver.c) General cleanups:
* Some small code/style nits
task_screenshot.c:
* Move widget callback function for screenshots to task_screenshot.c
(file_path.c):
* Turn get_pathname_num_slashes into static function
* path_linked_list_free - always returns true, so get rid of return value
* path_linked_list_new - fix function signature
* path_get_archive_delim - do not NULL-terminate string, already done by strlcpy later on
General:
* Slight optimizations - use int/size_t for loop counter variable instead of unsigned
* Take advantage of fact that strlcpy already NULL-terminates, so don't do this explicitly
outside if we're just going to end up calling strlcpy/fill_pathname_join on it anyway
* Work more with return values, prevent unnecessary local stack variables
when possible
* Reduce lines of code
* Move local stack variables to proper scope
When a shader preset is loaded now when there are more than one #reference line the parameter values will be loaded from the references after the first one
Multi reference settings working
Config fixes
Multi-Reference Loading Working, Checking for shader chain not working
Checking References is working
Improved path_linked_list_add_path
Simplify path list stuff
Fixed Static Definition
Fixes
Fixes
Fix to Trigger PR Update
Removed Legacy Orbis which got left in a merge
Memory Leak Fix
* CXX_BUILD buildfixes
* (D3D11) Buildfixes for CXX_BUILD
* (Linux/qb) Disable KMS for Linux when building for C89, headers use inline which is not
available for C89
* features_cpu: Return model name on non-x86 Linux platforms
Extract model name from /proc/cpuinfo.
* platform/unix: Rework identification of classic Arm CPUs
Identify pre-ARMv7 CPUs based on the machine hardware name starting with
"arm" instead of matching every individual variant. This will then
include the ARM926EJ-S which has armv5tejl as its machine hardware name.
* features_cpu: Fix clock for djgpp
* frontend_dos_set_fork: Fix wrong id names
* dos_input: Fix missing indexing
* dos_joypad: Fix wrong id name
* Fix menu drawing
Menu is already prescaled to VGA_WIDTH x VGA_HEIGHT in vga_menu_frame. We need
to always use those dimensions
* Change dos compilation from griffin to common
* Set vga menu size to 320x200
* Add DOS compilation in gitlab-ci.yml
* Support new elf2dol path in Makefile.griffin
* Fix NULL pointer dereference when no core info is available
* Fix double include of different versions of libogc
* Move ngc and wii to Makefile.common
Resulting binary is 60K *smaller*. This is surprising but probably due to
less inlining happening
* gx_gfx: Fix hang on gfx initialization
* Remove sthread_isself on NGC/Wii
It relies on pthread_equal that is not there for either legacy pthreads
or normal pthreads on those platforms
* Wii networking
* Missing includes in split
* Network fixes
* Fix logging of non-format string as a format
* Support for gx netlogger
* Network fix
* Network fixes
* Network info
* gx: Move config files to app directory
Otherwise it clashes between wiiU and vWii version with unpredictable
effects
* Added newlib changes
* Add action to launch PPSSPP simulator
* Remove legacy config for the stack and heap
* Add pthread
* Simplify kernel_functions and improve references to HAVE_KERNEL_PRX
* Add some flags
* Improve audio init/deinit
* Improve exit by clicking home
* Add CI for PSP1
* Update PSP.yml
* Fix old osx condition
Current code assumes that osx < 10.12 is equivalent to ppc osx. It's not
true as Leopard x86 is still < 10.12 but not ppc. As xcode compiles fat
binaries it includes osx x86 and compilation fails.
* Disable crtswitchres when no c++11 is available
Crtswitchres altually needs c++11. Since it's not that important to make
it compatible with lower c++, just disable if no c++11 is available
* Don't use firstObject on old Mac OS X.
It was introduced in 10.6, so on old ones just implement it ourselves
* Compile osx-ppc frontend
* osx-ppc: Build a fat binary
On 10.6 i386 xcode apparently refuses to build a pure ppc.
Settle for a fat binary.
COMMON: The common library can now be used independently by any number of features.
COMMON: The common library no longer restricts HAVE_SOCKET_LEGACY.
Netplay Task: Network interface scoring changed from byte-level to bit-level.
* Allow loading files from archive subdirectory
Common example is "games.7z#game1/version1.ext" current code assumes that
everything that is before last slash is part of filesystem directory which
is false in this case.
* Fix listing of archive subdirectories
Currently file_archive_get_file_list_cb returns 0 on skipped entries.
It's wrong as calling convention for it is "0 means to stop iterating".
So on first extensionless file or an explicitly listed directory
further listing has stopped