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.