* 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
* Less string copies
* Some general cleanups
* Add extra param to runloop_message_queue_push so we can pass size_t
of the message
* Consistent conventions for local variable usage for certain things
- remove a lot of duplicated code across mac/ios/appletvos
- restore ability to use either login or app_store_connect_api_key
- pull version string from version.all instead of app store connect
- allow building from alternate branch
- allow skipping upload or making it publicly available
* 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>