Commit graph

163 commits

Author SHA1 Message Date
Sergey Stepanov
3459c7e8d6 Add VP9 encoder option 2024-02-15 14:06:28 +03:00
Sergey Stepanov
61b4108dce
Disable save states tests for Nestopia
Savestates are broken in the Nestopia version 1ae59e3. Wait when new version (revert) is pushed into the nightly repo.
2024-02-13 19:37:23 +03:00
Sergey Stepanov
ce7aa1be62
Disable frame duplication by default
It breaks newer PCSX rearmed versions by pushing dozen of frames in bursts.

To implement a proper support later.
2024-02-13 18:50:38 +03:00
Sergey Stepanov
a6e56a208c Pin nano string options during Retro callbacks 2024-02-10 21:13:49 +03:00
Sergey Stepanov
b7b530fe60
Update libretro.h 2023-11-26 22:39:52 +03:00
Sergey Stepanov
4fbfa1d4e3
Fix possible NPEs 2023-11-26 22:39:46 +03:00
Sergey Stepanov
e6e537d799 Add a generic S3 provider for cloud saves 2023-11-13 21:33:12 +03:00
Sergey Stepanov
2e91feb861 Add initial automatic aspect ratio change
Depending on the configuration param coreAspectRatio, video streams may have automatic aspect ratio correction in the browser with the value provided by the cores themselves.
2023-11-03 01:12:22 +03:00
Sergey Stepanov
5d65ff14d5
Fix test 2023-10-26 16:39:00 +03:00
sergystepanov
7f2f1d70b1
Add configurable debouncer for spammy Libretro callbacks 2023-10-25 21:41:36 +03:00
Sergey Stepanov
6525106116
Update video encoders 2023-10-24 12:55:27 +03:00
Sergey Stepanov
3e116fcc52
Drop users when coordinator is lost 2023-10-21 18:45:38 +03:00
Sergey Stepanov
10507d9c53 Reorder shutdown functions 2023-10-21 00:34:15 +03:00
Sergey Stepanov
10c4cd9b7f Add start/stop frontend lock 2023-10-20 22:43:51 +03:00
Sergey Stepanov
38dc69e4a2 Show hanged rooms 2023-10-20 22:43:51 +03:00
Sergey Stepanov
377306dc80 Clean frontend tests 2023-10-20 22:43:51 +03:00
Sergey Stepanov
da7059dc79 Tame logs 2023-10-20 22:43:51 +03:00
Sergey Stepanov
7977bce8a3
Fix dangling rooms when multiplaying 2023-10-18 21:29:21 +03:00
Sergey Stepanov
494ac0ed3b
Add empty rooms watcher 2023-10-17 21:39:16 +03:00
Sergey Stepanov
e8cec39476 Report on broken config when downloading Libretro cores 2023-10-17 19:23:00 +03:00
Sergey Stepanov
d698660c19 Allow changing video resolution during the stream 2023-10-17 15:16:45 +03:00
Sergey Stepanov
b1b33713d6 Add the initial libyuv support
The main benefit of libyuv, apart from shortening the video pipeline, is quite noticeable latency and CPU usage decrease due to various assembler/SIMD optimizations of the library. However, there is a drawback for macOS systems: libyuv cannot be downloaded as a compiled library and can only be built from the source, which means we should include a cropped source code of the library (~10K LoC) into the app or rise the complexity of macOS dev and run toolchains. The main target system -- Linux, and Windows will use compiled lib from the package managers and macOS will use the lib included as a shortened source-code.

Building the app with the no_libyuv tag will force it to use libyuv from the provided source files.
2023-10-15 18:55:53 +03:00
Sergey Stepanov
072b674fb1 Clean room init/deinit handlers 2023-10-15 18:55:53 +03:00
Sergey Stepanov
989d3b1c85 Move encoding libs to the top package level 2023-10-15 18:55:53 +03:00
Sergey Stepanov
f875d3fc42
Guard room creation with a mutex
Possible fix for the concurrent room creation while other is not destroyed properly.
2023-10-06 13:30:10 +03:00
Sergey Stepanov
cddf081b8f
Use locks in router with rooms 2023-10-06 01:12:27 +03:00
Sergey Stepanov
c1c4731640 Use faster Y flip of the video encoders (OpenGL/N64) 2023-09-29 22:36:14 +03:00
Sergey Stepanov
da51639625 Clean canvas.c 2023-09-24 14:22:34 +03:00
Sergey Stepanov
e83614068f MacOS fix 2023-09-23 20:43:46 +03:00
Sergey Stepanov
56d8c4a928
Clean canvas drawing functions 2023-09-23 20:27:12 +03:00
Sergey Stepanov
85cef0dfec Convert colors in C 2023-09-22 18:46:08 +03:00
Sergey Stepanov
8dd9e9c9be Use buffered file writer 2023-09-22 18:46:08 +03:00
Sergey Stepanov
196930281b Add the initial caged apps abstraction
In the current version of the application, we have strictly hardcoded the captured runtime application (FFI Libretro frontend) as well as the streaming transport (WebRTC). This commit makes it possible to choose these components at runtime.

In this commit, we no longer manage initially connected users separately from the rooms, and instead, we treat all users as abstract app sessions, rather than hardcoded WebRTC connections. These sessions may contain all the transport specifics, such as WebRTC and so on.

Rooms, instead of having the hardcoded emulator app and WebRTC media encoders, now have these components decoupled. In theory, it is possible to add new transports (e.g., WebTransport) and streaming apps (e.g., wrapped into an ffmpeg desktop app).
2023-09-16 20:12:24 +03:00
Sergey Stepanov
cccb3dce84 Fix some test on Arch 2023-09-16 20:12:24 +03:00
Sergey Stepanov
c27c88c0fa
Disable canvas pool with recording enabled for now 2023-08-24 00:14:25 +03:00
Sergey Stepanov
ddc841e8c6
Fold vpx/h264 struct options 2023-08-01 22:36:25 +03:00
Sergey Stepanov
49cb752b5c
Use implicit cast of app/game structs
That will make the code a bit tidier.
2023-08-01 22:27:21 +03:00
Sergey Stepanov
7fe3a893f6
Remove service package 2023-08-01 22:27:08 +03:00
Sergey Stepanov
b7fb079243
Derace the frontend when parallel testing 2023-08-01 22:25:55 +03:00
Sergey Stepanov
d7e8ca5ace
Remove SSL from the monitoring routes 2023-07-07 15:28:50 +03:00
Sergey Stepanov
8fef57aa8d
Use TLS with the monitoring / profiling routes 2023-07-06 00:04:05 +03:00
Sergey Stepanov
65b6e3208f
Fix lint warnings 2023-06-27 23:45:57 +03:00
Sergey Stepanov
d5bb271469
Add core hacks options 2023-06-23 18:39:36 +03:00
Sergey Stepanov
860c8b9d45 Add system param into the library 2023-06-16 14:12:41 +03:00
Sergey Stepanov
a6bcf5cd94
Fix scale option (it is slow) 2023-05-27 17:36:57 +03:00
sergystepanov
7668ef7bd8
Refactor media (#401)
* Encapsulate media
* Write audio by 4 bytes instead 2
* Update deps
2023-05-27 17:34:35 +03:00
Sergey Stepanov
2ed6e8724f
Add Alwa's Awakening (Demo) NES ROM 2023-05-22 18:34:58 +03:00
Sergey Stepanov
75e41e4fd0
Fix static x264 static link on Windows 2023-05-14 01:47:58 +03:00
Sergey Stepanov
b227260060 Embed config.yaml into both apps 2023-05-12 14:31:21 +03:00
Sergey Stepanov
9231120a55 Add base path for games in workers 2023-05-12 14:31:21 +03:00