Commit Graph

1644 Commits

Author SHA1 Message Date
Joe Osborn f2a86f34d1
Remove unnecessary rigmarole around importing the script as a blob (#17642) 2025-03-01 17:34:05 -08:00
Joseph C. Osborn c29cd046d0 Fixes asset paths/double bundle path for web player 2025-02-28 18:44:31 +01:00
Joe Osborn c413bcc626
Threaded emscripten fixes (#17614)
* Actually read CLI args in emscripten

* Fix fetchfs manifest parsing, increase download chunk size

The chunk size should probably be made a parameter in the future.  The
larger chunk size trades longer hitches for fewer hitches.

* Add exec command driver and API functions for emscripten.

Under WASMFS, stdin/stdout can't be customized the way they can with
the JS FS implementation.  Also, this approach frees up stdin/stdout
and simplifies interaction with the command interface for web embedders.

* fixup upload paths, show use of new emscripten cmd interface

* Add JS library function names to EXPORTS as well as EXPORTED_FUNCTIONS for older emsdk versions
2025-02-24 09:25:05 -08:00
Joe Osborn 9005e1b9fe
Use correct key into message data to get last asset fetch time (#17607) 2025-02-21 07:40:49 +01:00
Joe Osborn 56014a27d6
Enable pthreads on Emscripten (#17586)
* 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/23518
https://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
2025-02-20 00:59:25 +01:00
Eric Warmenhoven 8bf7e76f45
apple: enable corelocation location driver (#17595) 2025-02-19 04:04:17 +01:00
Steve Cox 087d11b750
for iOS: updated app icon to additional iconset (#17582) 2025-02-18 17:13:13 +01:00
Eric Warmenhoven cf867395f8
apple: enable midi driver in macos/ios builds (#17580) 2025-02-17 01:38:07 +01:00
Steve Cox d58394b4e6
for iOS: update Launch Screen to match icon & UI color scheme; add subtle drag shadow to app icon (#17574)
* for iOS: update launch screen to match UI

* use higher resolution invader

* adjust Y constraint (diff invader body proportion)

* for iOS: update Launch Screen to match app icon/ui

* update iOS icon—match shadow on other platforms

* icon source svgs to media folder for others’ reuse

* iOS App Icon revision, fix asset index mismatch
2025-02-16 23:12:33 +01:00
Steve Cox 1170373494
update tvOS “Top Shelf” image (#17543) 2025-02-10 11:52:38 +01:00
Eric Warmenhoven 4c8da979a5
fix a couple minor warnings (#17526) 2025-02-06 20:22:36 +01:00
Eric Warmenhoven 92c3800731
apple: include b2 core in App Store builds (#17525) 2025-02-06 04:49:08 +01:00
LibretroAdmin 2870a0a8ad
Revert "Workerized emscripten retroarch (WIP) (#17484)" (#17492)
This reverts commit cacd5a9a23.
2025-01-30 21:35:58 +01:00
Joe Osborn cacd5a9a23
Workerized emscripten retroarch (WIP) (#17484)
* 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/23518
https://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
2025-01-30 19:58:18 +01:00
BinBashBanana ed1810de86
Emscripten improvements (#17422) 2025-01-29 05:29:16 +01:00
MrHuu c276577b52
(3DS) Add unique ID's (#17459)
- Anarch
- Ardens
- Dice
- DoubleCherryGB
- Fbneocps12
- Fbneoneogeo
- Numero
- Tamalibretro
- Uw8
2025-01-22 20:42:23 +01:00
Daniel Worley 565e1c7d2d
UWP: Fix slang shader compilation (#17447) 2025-01-20 22:10:57 +01:00
Eric Warmenhoven ef4512dd02
macOS: ensure bundled assets get extracted properly (#17444) 2025-01-20 21:38:29 +01:00
Eric Warmenhoven 6fda41900d
apple: include git hash in TestFlight message (#17445) 2025-01-20 21:38:20 +01:00
zoltanvb e71a1620b0
Update core list based on what is compiled for 1.20.0 stable version. (#17404) 2025-01-12 17:34:01 +01:00
zoltanvb 864ad02177
Quickfix: asset size has exceeded 4x30 MB, so now there are 5 chunks. (#17334) 2025-01-02 19:31:35 +01:00
LibretroAdmin 7d1d8322e6 Bump up to 1.20.0 2024-12-31 06:30:58 +01:00
Eric Warmenhoven b09b98ffd5
apple: include doukutsu_rs core in App Store builds (#17302) 2024-12-28 18:45:24 +01:00
Eric Warmenhoven 3989a62f60
Apple buildfix (#17294) 2024-12-27 20:36:12 +01:00
LibretroAdmin 18c85b5ccd Cleanups -
* 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
2024-12-27 15:13:45 +01:00
Eric Warmenhoven 4ab58f66ec
apple: tweaks to fastfile to better handle versions and dirty repos (#17278) 2024-12-22 19:38:56 -08:00
Eric Warmenhoven a7db10508c
ios9: re-enable web server/webdav server (#17275) 2024-12-21 11:39:44 -08:00
Eric Warmenhoven 47709fe0d5
apple: include bsnes-js core in App Store builds (#17267) 2024-12-18 10:03:54 -08:00
Eric Warmenhoven 569f9a3282
apple: fastlane improvements (#17266)
- 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
2024-12-18 10:03:42 -08:00
Eric Warmenhoven 62c725579a
apple: use gcd for task queue (#17248) 2024-12-11 22:55:46 -08:00
Eric Warmenhoven 3bdc71c20f
apple: include yabause core on app store (#17237) 2024-12-07 00:58:55 -08:00
Eric Warmenhoven 6475791e07
iOS: fix reopening a recently-creatd file, and build flag cleanup (#17223) 2024-12-01 10:48:52 -08:00
Alex Kiraly 0b05b1e3f4
Fix CloudSync on Windows, enable by default (#16475)
* 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>
2024-11-25 09:47:27 -08:00
Eric Warmenhoven b2af02f9fb
apple: include mrboom core in App Store builds (#17207) 2024-11-25 09:21:07 -06:00
Eric Warmenhoven b95c15cfdf
apple: include noods core on app store (#17198) 2024-11-24 02:50:51 -06:00
Camden Fullmer 89732bee54
Use the correct case for Xcode. (#17195) 2024-11-22 01:23:11 -08:00
Eric Warmenhoven aff99e3e10
apple: include holani core in App Store builds (#17190) 2024-11-19 00:18:24 -08:00
Eric Warmenhoven 7dfc001379
tvOS: bring minimum tvOS version of App Store builds back down to 13.0 (#17158) 2024-11-03 15:59:22 -08:00
Eric Warmenhoven f175d0e091
tvOS: Add Settings.app option to reset retroarch.cfg (#17143) 2024-10-30 21:49:55 -07:00
Eric Warmenhoven 1f99ba89ca
ios: buildfix (#17137) 2024-10-30 07:03:11 -07:00
Eric Warmenhoven cd574f7f33
tvOS: Add WebDAV server for adding files more easily (#17135)
Also update to latest (last) version of GCDWebServer.
2024-10-29 21:07:47 -07:00
Joey Parrish b36d8da5d3
docs: Add missing command to emscripten docs (#17097) 2024-10-14 04:21:18 -07:00
Eric Warmenhoven d362c88ac2
osx: prefer moltenvk from retroarch-apple-deps (#17086) 2024-10-12 11:59:17 -07:00
Eric Warmenhoven c60f4603cd
apple: Include vintaged stella2023 core in app store builds (#17085) 2024-10-10 04:57:19 -07:00
Eric Warmenhoven a565cae5d8
macOS: Update App Store packaging script (#17081) 2024-10-07 03:37:56 -07:00
Eric Warmenhoven 4d999c24a8
macOS: fix steam automation build (#17073) 2024-10-04 12:46:59 -07:00
Eric Warmenhoven 7ae8597765
macOS: Create App Store build (#17074) 2024-10-04 12:46:51 -07:00
Eric Warmenhoven 48b71d5cf8
tvOS: Fix creation of frameworks for App Store build (#17070) 2024-10-02 17:32:58 -07:00
Eric Warmenhoven ed574cd059
iOS/tvOS: Remove AltKit (#17069) 2024-10-01 17:36:02 -07:00
Eric Warmenhoven 1d2c9a8373
macOS: minor updates to GL build to fix compatibility with Xcode 16 (#17064) 2024-09-30 07:02:37 -07:00