Commit graph

64652 commits

Author SHA1 Message Date
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
github-actions
55b59262b9 Fetch translations from Crowdin 2025-02-24 00:15:28 +00:00
Bernhard Schelling
b725de086e
Fix netplay when using core netpacket interface after a recent change made for cheevos (#17619) 2025-02-23 04:26:02 -08:00
刘皓
b3376716f2
Add declaration for libnx_apply_overclock() in menu/menu_driver.c (#17620) 2025-02-23 04:25:49 -08:00
刘皓
c9ed5df025
Add PS3 build to GitHub Actions (#17621) 2025-02-23 04:25:39 -08:00
Eric Warmenhoven
84eb4f32e0
Small adjustment to coordinating mouse inputs (#17622) 2025-02-23 04:25:29 -08:00
sonninnos
4de34208ed Ozone: Messagebox font fix 2025-02-22 22:31:47 +02:00
github-actions
b5fd91972c Fetch translations from Crowdin 2025-02-22 00:13:39 +00:00
sonninnos
3c1a1a44ae
Vulkan: Add adaptive vsync support (#17611) 2025-02-21 12:34:32 -08:00
Eric Warmenhoven
f7d235f2d6
update core info list after updating core info files (#17613) 2025-02-21 12:34:06 -08:00
Hed0nium
bc1bc2431d
Update AUTHORS.h: Edit name (#17610) 2025-02-21 12:33:48 -08:00
Eric Warmenhoven
e26b3bca4e
allow mouse input while mouse overlay is active (#17615) 2025-02-21 12:33:27 -08:00
Eric Warmenhoven
273eb7bd7b
fix sublabel on "add to playlist" in quick menu (#17616) 2025-02-21 12:33:18 -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
sonninnos
61de3a3260
Integer scaling improvements (#17606) 2025-02-20 19:51:19 +02:00
sonninnos
fce67c1fab
Use core fps instead of display rate when counting dropped frames (#17605) 2025-02-20 14:10:08 +02:00
sonninnos
b5756a1b20
Prevent crash when Main Menu is empty (#17604) 2025-02-20 14:09:47 +02:00
github-actions
09a59edd6b Fetch translations from Crowdin 2025-02-20 00:14:51 +00: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
6ec4ffb2fa
apple, mouse overlay: fix relative mouse deltas (#17602)
makes sure that relative mouse movement deltas are based on last poll,
not last state check; checking state should not reset state
2025-02-20 00:59:14 +01:00
sonninnos
6c08bf003b
XMB: Title replace '/' with '-' instead of ' ' (#17603) 2025-02-19 21:49:55 +02:00
sonninnos
8f3347d9ab
GLUI: Limit save state thumbnail size (#17600) 2025-02-19 17:06:01 +02:00
sonninnos
b5e01422e1
XMB: Trigger bg-image load on theme change (#17599) 2025-02-19 17:05:34 +02:00
Eric Warmenhoven
8bf7e76f45
apple: enable corelocation location driver (#17595) 2025-02-19 04:04:17 +01:00
github-actions
d818cb8fe1 Fetch translations from Crowdin 2025-02-19 00:14:43 +00:00
Eric Warmenhoven
0ed66a79f1
glui: fix add to playlist icon in quick menu (#17596) 2025-02-18 22:55:04 +01:00
sonninnos
e4fe551924
Gray Dark+Light theme adjustments (#17597) 2025-02-18 20:47:10 +02:00
Steve Cox
087d11b750
for iOS: updated app icon to additional iconset (#17582) 2025-02-18 17:13:13 +01:00
Eric Warmenhoven
fe3e1b56b7
camera: don't reinit when core sets av info; don't poll if not allowed (#17588) 2025-02-18 17:12:18 +01:00
Joe Mattiello
9438d70ed9
Add CoreLocation location driver for macOS and iOS (#17591)
Signed-off-by: Joseph Mattiello <git@joemattiello.com>
2025-02-18 17:12:08 +01:00
sonninnos
73abaddd9c
GLUI: Add save state thumbnails (#17592) 2025-02-18 17:11:46 +01:00
Tomáš Kelemen
cd85a4dbf2
bluetoothctl: use two calls to disconnect/remove device (#17593)
the previous method does not remove the pairing of the selected device,
user must remove the pairing manually by modifying filesystem.

change tested on real system (Lakka-RPi4.aarch64).
2025-02-18 17:11:36 +01:00
Bernhard Schelling
754dbe37cc
Color the notification icon by message category (#17573)
Use yellow for warnings and red for errors, keep the current blue for everything else.
Additionally, flip the 'i' info icon upside down for warnings and errors so it becomes a '!' exclamation mark icon.
2025-02-17 01:38:16 +01:00
Eric Warmenhoven
cf867395f8
apple: enable midi driver in macos/ios builds (#17580) 2025-02-17 01:38:07 +01:00
github-actions
660cf1f449 Fetch translations from Crowdin 2025-02-17 00:16:46 +00: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
github-actions
73bc4092a1 Fetch translations from Crowdin 2025-02-16 00:15:52 +00:00
Joe Mattiello
eb2928eb0c
CoreMIDI add driver (#17569)
CoreMIDI install into build

Signed-off-by: Joseph Mattiello <git@joemattiello.com>
2025-02-15 18:57:09 +01:00
github-actions
83c0c1fc43 Fetch translations from Crowdin 2025-02-15 00:14:14 +00:00
github-actions
b4c15668bd Fetch translations from Crowdin 2025-02-14 00:14:34 +00:00
sonninnos
01a2da47a6
Ozone: Messagebox background asset fix (#17566) 2025-02-13 09:28:59 +01:00
Eric Warmenhoven
65e1436a23
iOS: set up shared gl context correctly (#17565) 2025-02-13 09:06:14 +01:00
github-actions
a6ea47df15 Fetch translations from Crowdin 2025-02-13 00:14:41 +00:00
LibretroAdmin
8a22b87101 Revert rich_label changes 2025-02-12 17:46:32 +01:00
sonninnos
106dc5d8b7
GLUI: Allow fullscreen thumbnail browsing (#17562) 2025-02-12 16:50:17 +01:00
LibretroAdmin
135a228ac1 menu_entry - rich_label gets merged into label - make struct smaller 2025-02-12 15:17:58 +01:00
LibretroAdmin
c864c50c9f (Menu) Cleanups 2025-02-12 14:52:17 +01:00
LibretroAdmin
ebd9abb5f6 Get rid of sublabel_cache 2025-02-12 14:25:12 +01:00
LibretroAdmin
824209178c setting_list - remove unused original_value 2025-02-12 13:56:21 +01:00
LibretroAdmin
8e2e2cdbac Style nits 2025-02-12 13:06:40 +01:00