sergystepanov
86ee0cb380
Create the main data channel without negotiation
...
There is no point in previously pushing or pulling this channel, since we won't change any of its configuration parameters.
2026-06-09 15:10:07 +03:00
sergystepanov
67cd92da6b
Add IncludeLoopbackCandidate option
2026-06-08 16:47:31 +03:00
sergystepanov
14de2a1790
Disable automatic worker room assignment in busy rooms
2026-06-06 22:23:19 +03:00
sergystepanov
a4b4e0458f
Unify all WebRTC signaling in the API
...
Users, workers, and the coordinator will now send WebRTC signaling
information through a single API endpoint with a unified structure. The
payload should contain either an sdp or ice field for further processing
by the designated handlers.
Replaced API endpoints:
- (101) WebrtcOffer -> WebrtcSignal
Removed API endpoints:
- WebrtcAnswer (102)
- WebrtcIce (103)
2026-06-06 18:19:07 +03:00
sergystepanov
f72202684f
Remove Base64 encoding of wire data
2026-06-06 15:31:13 +03:00
sergystepanov
3388a0fbce
Create data channels when pushed to the server
2026-06-05 14:46:55 +03:00
sergystepanov
d6f2cfc5ef
Add the option switch for WebRTC initiator
2026-06-04 22:36:36 +03:00
sergystepanov
8c4b4bf96f
Add an option for initiating WebRTC offer on the client side
...
WebRTC negotiation will start in the browser with an offer. Added because a reversed negotiation (server's offer) doesn't work in Firefox-based browsers.
2026-06-04 22:36:35 +03:00
sergystepanov
240147f8f1
Set sane ws default message size
2026-06-04 22:36:34 +03:00
sergystepanov
337bf6149c
Add Trickle ICE support on the server
2026-06-04 22:36:32 +03:00
sergystepanov
4d5a1c7778
Remove INIT_WEBRTC API call
2026-06-04 22:36:31 +03:00
sergystepanov
e541f7e183
Add InitWebrtcStream API call
2026-06-04 22:36:31 +03:00
sergystepanov
4745b10572
Add remote and local ICE IP filters
2026-05-27 18:54:17 +03:00
sergystepanov
4c8a54b8f2
Update to ubuntu:plucky
...
Use the dynamic x264 library because the static libx264.a was removed from the packages in the latest Ubuntu.
2026-05-01 11:30:02 +03:00
sergystepanov
1d5bae0c62
Add analog triggers and pack axes into atomic int64
...
- Pack 4 analog axes (LX, LY, RX, RY) into single int64 for atomic access
- Pack L2/R2 analog triggers into single int32
- Reduce memory per port from 20 to 16 bytes
- Reduce atomic stores per SetInput from 5 to 3
- Add RETRO_DEVICE_INDEX_ANALOG_BUTTON support for analog trigger queries
- Fallback to digital (0/0x7FFF) for non-trigger analog button queries
Wire format: [BTN:2][LX:2][LY:2][RX:2][RY:2][L2:2][R2:2] (14 bytes)
2025-12-29 20:20:55 +03:00
sergystepanov
368bae8c07
Swap mutex to atomics in keyboard input
2025-12-28 21:25:33 +03:00
sergystepanov
58a19affcb
Clean SDL/OpenGL functions
2025-12-27 01:58:14 +03:00
sergystepanov
8754a5edfa
Tweak OpenGL framebuffer
...
Force alignment for GL ReadPixels and skip unbinding last framebuffer which makes it a bit faster.
2025-12-26 16:17:37 +03:00
sergystepanov
aeb41008c9
Remove room watchers
2025-12-24 21:25:03 +03:00
sergystepanov
059e19d790
Remove com.Uid from the API
2025-12-24 21:23:19 +03:00
sergystepanov
94e13cb93b
Clean api
2025-12-22 15:37:04 +03:00
sergystepanov
c800dd4bf9
Fix with go fix
2025-12-22 15:08:50 +03:00
sergystepanov
d45daeab7a
Tweak room join/creation logic
2025-12-15 18:42:41 +03:00
sergystepanov
b3ccea5f0e
Refactor media buffer
...
Mostly cleanup.
2025-12-15 15:52:46 +03:00
sergystepanov
3178086dd7
Revert due to weird 32KHz mGBA issues
...
(fix later)
2025-12-14 22:29:27 +03:00
sergystepanov
1e4e5b3c65
Clean media buffer
2025-12-14 22:15:28 +03:00
sergystepanov
7c8e74716d
Disable mGBA low-pass filter
2025-12-14 22:14:55 +03:00
sergystepanov
46a5799079
Fix media tests
2025-12-14 18:54:06 +03:00
sergystepanov
9feb788108
Make speexdsp statically linked
2025-12-14 17:01:04 +03:00
sergystepanov
9d54ea4c49
Add and use Speex audio resampler
2025-12-14 16:24:35 +03:00
sergystepanov
671e875f12
Add input cache for retropad, keyboard and mouse
2025-12-14 13:53:21 +03:00
sergystepanov
f708fce112
Revert "Try atomic-based locks in the same thread execution loop instead of a bunch of mutexes."
...
This reverts commit 460c466053 .
2025-12-14 13:30:45 +03:00
sergystepanov
460c466053
Try atomic-based locks in the same thread execution loop instead of a bunch of mutexes.
2025-12-14 13:18:34 +03:00
sergystepanov
84ad0a4cac
Add audio resampling option
...
You can now select between linear interpolation and nearest-neighbor resampling algorithms.
2025-12-13 23:56:38 +03:00
sergystepanov
129690e901
Fix map test
2025-11-22 22:21:05 +03:00
sergystepanov
9191861cab
Use iterators in the custom map implementation
2025-11-22 22:09:38 +03:00
sergystepanov
c05e42f597
Cleanup nanoarch.go
2025-11-22 21:20:16 +03:00
sergystepanov
09a0c9c3f2
Revert "Add user input caching"
...
This reverts commit 859d0c8f1a .
2025-11-22 17:46:07 +03:00
sergystepanov
859d0c8f1a
Add user input caching
2025-11-22 17:22:40 +03:00
sergystepanov
baaeaf43b1
Add config option for logging dropped frames
2025-11-22 12:32:56 +03:00
sergystepanov
76b376aef7
Add config option for skipping late video frames
2025-11-22 11:59:08 +03:00
sergystepanov
3df6a24a0a
Skip video frames when they are late
2025-11-21 22:35:33 +03:00
sergystepanov
5c6406c1e7
Implemented a busy loop for the emulation ticker.
...
This replaces the low-precision, OS-dependent time ticker with a CPU spin loop that performs continuous target frame time checks and corrections.
2025-11-21 20:13:27 +03:00
sergystepanov
bbad4539b1
Update libretro.h
2025-11-20 00:33:03 +03:00
sergystepanov
42b003db62
Verifies during startup if the system can run the emulator
...
This check can be disabled with the emulator.failFast = false config option. Right now it checks SDL2 video context creation.
2025-06-20 18:30:17 +03:00
sergystepanov
02210f1f8d
Remove unnecessary C bridge functions
2025-05-18 12:46:32 +03:00
sergystepanov
36da07f277
Use the actual state size when loading ROMs
2025-05-03 16:35:21 +03:00
sergystepanov
37a4a80996
Use the save state size before each save/load call
2025-05-03 15:55:26 +03:00
sergystepanov
9d4256306e
Add missing C function header for Go debugger
2025-05-02 10:34:22 +03:00
sergystepanov
ddfc9249ec
Fix some user slot race conditions
...
In cases where HasSlot() and Reserve() operations are delayed, multiple users may incorrectly be granted a slot due to race conditions.
2025-05-02 10:06:23 +03:00