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
Sergey Stepanov
62fc68e88b
Add optional static linking with vpx, x264, opus
2023-04-24 00:16:00 +03:00
Sergey Stepanov
ece1efad16
Add optional static linking with vpx, x264, opus
2023-04-23 23:51:38 +03:00
Sergey Stepanov
8893e1e5bf
Update config manager
2023-04-22 17:05:28 +03:00
Sergey Stepanov
eda90d74e6
Rename C.stop (it crashes PCSX on Ubuntu) wtf omegalol
2023-04-21 00:26:41 +03:00
Sergey Stepanov
ee58af488d
Advance 1 frame only with Mupen
2023-04-20 22:54:35 +03:00
Sergey Stepanov
c8eb672ecd
Fix missing return
2023-04-20 22:54:12 +03:00
Sergey Stepanov
f00c27a226
Clean nanoarch
2023-04-20 14:18:57 +03:00
Sergey Stepanov
853c7a6f81
Fix save/load for Mupen64
...
By passing function arguments into the synchronized un-libco loop, we can now save and restore Mupen game states without segfaults.
2023-04-16 13:24:28 +03:00
Sergey Stepanov
b48a6c92f6
Refactor nanoarch names
2023-04-16 13:24:28 +03:00
Sergey Stepanov
5034f86667
Save/Load without malloc
2023-04-16 13:24:28 +03:00
Sergey Stepanov
d830821ceb
Move last frame time init fn to the end
2023-04-16 13:24:28 +03:00
Sergey Stepanov
137397dbc1
Update Libretro env handlers
2023-04-16 13:24:28 +03:00
Sergey Stepanov
66dbdba863
Use explicit Libretro log levels instead of magic numbers
2023-04-16 13:24:28 +03:00
Sergey Stepanov
33099d098f
Use new page-segmentation friendly unsafe.Slice for mem restore
2023-04-16 13:24:28 +03:00
Sergey Stepanov
43cb05e088
Remove unused OS signal handlers in C
...
The idea is that we make just one OS signals handler on the C (CGO) side instead of Go and handle everything there from both, which is needed for proper termination process of multithreaded Libretro cores. But it leads to strange segfaults.
2023-04-16 13:24:28 +03:00
Sergey Stepanov
a1b24b0a85
Handle faster most called Libretro env getters
2023-04-16 13:24:28 +03:00
Sergey Stepanov
7c2b88716b
Update libretro.h
2023-04-16 13:24:28 +03:00
Sergey Stepanov
9325fddc1f
Make RETRO_ENVIRONMENT_GET_SAVESTATE_CONTEXT return RETRO_SAVESTATE_CONTEXT_NORMAL explicitly for NeoGEO
2023-04-16 13:24:28 +03:00
Sergey Stepanov
5920af5a36
Add RETRO_ENVIRONMENT_GET_SAVESTATE_CONTEXT for NeoGEO
2023-04-08 01:18:41 +03:00
Sergey Stepanov
7b0d212fc0
Simplify core options passing
2023-04-06 20:40:58 +03:00
Sergey Stepanov
e3ecd8fef0
Remove not needed rand seeding
2023-04-06 20:39:41 +03:00
sergystepanov
cfd5b1ae8d
Libretro cores config in yaml ( #392 )
...
Removes separate config files for Libretro cores stored in the cores folder and replaces them with options in the main config.yaml file.
2023-04-06 11:25:49 +03:00
Sergey Stepanov
b5cb33812b
Add dummy CLEAR_ALL_THREAD_WAITS_CB for Mupen64 core in order to support the threaded renderer
2023-04-04 17:59:24 +03:00
Sergey Stepanov
9178dab7dd
Fix N64 overlapping frame draw
2023-04-03 20:39:49 +03:00
Sergey Stepanov
0f66f35673
Add the initial RETRO_ENVIRONMENT_SET_MESSAGE support
2023-03-31 18:50:42 +03:00
Sergey Stepanov
b24e82c145
Fix disabled cloud save downloads
2023-03-26 00:14:19 +03:00
Sergey Stepanov
b6366e7b88
Update room tests
2023-03-18 23:50:05 +03:00
sergystepanov
3bb54fdad4
Clean API ( #391 )
...
Remove hard coupling between api (all the API data structures) and com (app clients communication protocol and logic).
2023-03-18 20:24:06 +03:00
Sergey Stepanov
cd056ee976
Bump to v3
2023-03-16 23:46:53 +03:00
Sergey Stepanov
faf347a44a
Make rand.Seed not deprecated
2023-02-17 18:12:38 +03:00