Due to touchscreen quick tap function, binding runs into problems
with the default setting that works well on other platforms. Using
a nonzero value avoids that problem.
* workerized RA
* Workerized (non-async) web player, using OPFS
This patch eliminates the need for asyncify and uses modern filesystem
APIs instead of the deprecated, unmaintained BrowserFS.
This is a WIP patch because it won't fully work until these two
Emscripten PRs land and are released:
https://github.com/emscripten-core/emscripten/pull/23518https://github.com/emscripten-core/emscripten/pull/23021
The former fixes an offscreen canvas context recreation bug, and the
latter adds an equivalent to BrowserFS's XHR filesystem (but without
the hazardous running-XHR-on-the-main-thread problem).
The biggest issue is that local storage of users who were using the
old version of the webplayer will be gone when they switch to the new
webplayer. I don't have a good story for converting the old BrowserFS
IDBFS contents into the new OPFS filesystem (the move is worth doing
because OPFS supports seeking and reading only bits of a file, and
because BrowserFS is dead).
I've kept around the old libretro webplayer under
pkg/emscripten/libretro-classic, and with these make flags you can
build a non-workerized RA that uses asyncify to sleep as before:
make -f Makefile.emscripten libretro=$CORE HAVE_WORKER=0 HAVE_WASMFS=0 PTHREAD=0 HAVE_AL=1
I also moved the default directory for core content on emscripten to
not be a subdirectory of the local filesystem mount, because it's
confusing to have a subdirectory that's lazily fetched and not
mirrored to the local storage. I think it won't impact existing users
of the classic web player because they already have a retroarch.cfg in
place.
* Get fetchfs working without manifest support
* makefile fixes
* fix scaling, remove zip dependency
* Support asset/cheats/etc downloaders for emscripten
- Add http transfer support for emscripten
- At the task_http level, not the net_http level --- so no netplay
or webdav.
- Change default paths to be more like other platforms
- Gives us smaller bundles and a faster boot time
- Had to work around a task queue bug on Emscripten
- I made the smallest possible change to do it, but it may be better
to fix in rthread.c
* Load an emscripten file_packager package on first run
If no ozone assets are present, load a libretro_minimal package
created using Emscripten's built-in file packager.
* updated readme, removed indexer from wasmfs libretro-web
* Put back zip dependency, load asset bundle into opfs on first run
* fix upload path
* Remove unused function
* easy testing setup for two multithreaded conditions
1. make PROXY_TO_PTHREAD=1 (slower)
2. make PROXY_TO_PTHREAD=0 (bad audio, because doesn't sleep in
openal.c)
* Remove condition on sleep in openal
also make input_driver check existence of drv->axis, drv->button
before calling them.
* Fix resizing under EGL
* Don't force config file path on emscripten
* Add time.h include to netplay, default HAVE_NETPLAYDISCOVERY to 0
* Remove nearly all proxied joypad calls under emscripten
* Fix file uploads under firefox
* Fix safari API uses, but Safari still hangs in OPFS filesystem mount
I think this can be fixed by moving the backend creation off the main
thread.
* Move filesystem init into emscripten C entry point
* Setup filesystems off of main thread
* re-set default player to async
Also improve Safari compatibility under proxy-to-pthread condition
* Safari upload file fixes
* Remove some excess prints
* Fix typo
* disable default overlays except on Android and iOS
* add flicker warnings to BFI/Subframes/rolling scan
and remove the prohibitions against other settings, since those conflicts are handled automagically anyway
* formatting nit
* 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.
* 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
* 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
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.