Cloud Game Versions Save

Web-based Cloud Gaming service for Retro Game

v2.6.1

2 years ago

Fixes for v2.6.0.

v2.6.0

2 years ago

Changelog:

ed33460 Don't crash emulator on no core config
Add new prod deployment script (#341)
66a1394 Upgrade Go version to 1.17 (#345)
c865e83 Expose a multi process mutex lock file config
b4b199c Add public ping address option for worker
431d215 Update server HTTPS configuration (#337)
2657dfb Rename manual production deployment workflow
4ec18fc Enable manual production deployments
a3d2549 Remove old is_mobile init param
f779073 Use different default monitoring port in worker
Both coordinator and worker use the same port number for the monitoring server which leads to a conflict. 
This fix resolves that.
54deb36 Remove font-awesome CSS ref from the index page
d3e16a4 Make Google Analytics injection optional (#336)
This allows switching GA client statistics on the client by setting these params in the config.yaml file:
 analytics:
   inject: false/true
   gtag: (your tag)
By default, GA analytics will be disabled.
ff56250 Delete not used font-awesome.css
3abb1d4 Use orientation-based video / canvas stretching (#335)
30d104e Add version info into the apps (#330)
Both worker and coordinator display version numbers in the console during startup. 
The coordinator displays its version number in the top right corner of the index.html page.
cbabe69 Track connected user count of workers. (#328)
If a worker (game) is shared, then without tracking players it's impossible to tell when it becomes 
available for a new game which leads to emulator share and crashes.
35ee35d Remove the port binding for docker config (#326)
2378288 Fix player select with touch controls (#325)
(Re)Add MAME (FinalBurn Neo) core record into the default config file
Use OS aware file path concat with ROMs
Update README.md
Update dependencies

v2.5.4

2 years ago

v2.5.3

2 years ago

v2.5.2

2 years ago

v2.5.1

2 years ago

Fixes auto-save.

v2.5.0

3 years ago

Experimental build with auto-generated executables for Linux, macOS, Windows.

Changelog [:

65dcaf7 : Enable release builds with v-tags (#310)
  Re-enable release builds push into Github releases page when new v-prefixed tags are pushed (i.e. v2.4.2)
602b9ea : Make executables ready for static linking (#307)
  Disable CGO (C libs) for coordinator
  Remove unused code in the webrtc package
  Fix ST1005 "error strings should not be capitalized"
  Fix SA1015 Using time. Tick leaks the underlying ticker, consider using it only in endless functions, 
  tests, and the main package and use time.NewTicker here.
  Fix SA9004 Only the first constant in this group has an explicit type
  Fix S1000 Should use a simple channel send/receive instead of select with a single case
  Force dir creation/check for core downloader
  Update Makefile release script
  Disable ASLR for worker builds
  Remove WORKER_BUILD_PARAMS flag from the CI
  Don't force recompilation in release
  Add Debian packages installer script
  Build and test worker app without libopusfile
  Add opus wrapper without opusfile
  Make install.sh executable
  Add opus lib in Win builds
  Make insecure HTTPS requests when downloading libs
  Add ca-certificates for Docker build stage (Go mod download works only with SSL certificates installed)
  Move libx264 wrapper into the repo (that way we can get rid of a lot of not needed external Go dependencies)
  Update the dependencies
d778a7e : Allow to disable default Pion interceptors (#306)
  For performance reasons.
cbab5a1 : Add deprecation note for libx264 < v160 (#301)
  Deprecation due to libx264 version below v160 shouldn't work properly, and it's hard to support both v155, v160 in Golang.
7ebd945 : Remove jQuery (#299)
  Remove jQuery
  Remove browser (vendor) prefixes for some CSS properties
  Use simple device orientation test
  Realign D-pad pointers
  Make GameBoy text unselectable
  Cleanup console.log
  Keep 90% size on mobile browsers due to gh-ribbon overlap
  Remove legacy `unselectable="on"` attributes
  Align UI buttons
  Remove not used UI elements
  Change Options button
  Don't show player change message when not in a game
  Add click/touch handler for circle-pad
c7e67d5 : Use just one video/audio RTP codec (#298)
  Negate exact matches with multiple video codecs when a negotiated list of codecs will be stripped of partially matched ones.
  As an example, if we want to use the h264 codec along with vp8 then in some browsers we'll have the exact match on vp8 and 
  some partial matches on h264 (different browsers have different SDP Fmtp) which leads to the forced use of vp8 when the app 
  is streaming h264.
  As a workaround, we should add only one codec (vp8 or h264) into the list.
f1613ea : Use identical core images for build/target stages in the main Docker file. (#296)
  It is possible that the official Go Docker image used in the build stage may produce an executable file dynamically linked 
  with some old libs that may not be present in the target OS image.
  Therefore use of identical Docker images is the better option.
ccf082e : Set controller types explicitly (#295)
a779353 : Reduce coordinator dependencies tree (#292)
  Reduce coordinator dependencies tree
  Parallelize build/check
  Update dependencies
d5780ac : Fix Pion WebRTC codecs (#289)
  Since Pion's webrtc v3.0.13 and this fix if both peers have some fmtp set then codecs should match exactly.
  By default Pion defines a list of supported codecs with fmtp set but different browsers set their own fmtp values by default
  as well therefore they may not match.
  To fix this we can define our own list of codecs on the server with empty fmtp so it will match any client codecs.
  See: https://github.com/pion/webrtc/blob/e5c8c659caa915041dd6dbcaacbb85fe28733820/rtpcodec.go#L99
f4c3a8c : Add new YUV converter with avg color calc (#287)
  Add new YUV converter with 2x2 pixel matrix YUV color estimation.
  The new YUV color converter, as opposed to the original one, uses more precise color calculations based on 
  four neighboring pixels' average color values which helps a great deal with image aliasing / shimmering artifacts.
  By default, it runs in the multithreaded mode with the game frames sliced between 2*(CPU cores) goroutines.
  In case if this estimation mode doesn't work as expected it is possible to switch back to the original mode.
  The default encoder is switched to x264 since it's faster now.
fa28197 : Refactor and update VPX codec (#285)
  Refactor and update VPX codec
  Add VPX codec options support
  Add generic video encoding pipe
  Tweak in/out channels for the pipe
  Update YUV encoder
  Clean VP8 encoder
4c883cf : Fix x264 build trash (#282)
  Check x264 lib version with some conditional hacks for versions < 159
98ca6e7 : Skip normal ErrServerClosed errors
0f54e0f : Fix copy-by-value of sync.Lock in the monitoring server struct
bd701f1 : Use modified x264 lib (#275)
  Use modified x264 lib
  Add x264 system lib
  Set x264 version 155 for Debian (Buster)
  Add h264 config params
b56069c : Fix stream freeze (#279)
  Fix D-pad key and overlay
  Add Video element error reporting
  Terminate clientside ws ping on the connection terminate
c37c2c3 : Fix D-pad key and overlay
92d0dd7 : Refactor input for safe concurrency (#278)
  Extract input stuff
  Move D-pad option into the main screen
  Add mutex lock on the whole input user sessions struct
55208e5 : Update the Go version to 1.16 in the CI
5de666d : Fix small bug, to not respond on Empty Packet
c01ddc8 : Don't hide save/load after the help show
7bc9661 : Add experimental core's SRAM save/load (#273)
  Add experimental core's SRAM save/load
  Clean room.go
  Update Save RAM states
  Update dependencies
  Extract emulator states into a separate module
  Google Cloud saves don't support save RAM persistence, but save state (.dat) files only.
  Add emulator storage path into the configuration file
  Verify offline storage path
6584d82 : Disable PIE (ASLR) build mode for Windows (#272)
  Since Go version 1.15 ASLR security mode is enabled by default for Windows builds. 
  In order to make it work without random NPE crashes in the cores (for example in PSX games during load),
  you have to (re)compile every core with ASLR support or just disable this mode.
  See: https://github.com/golang/go/issues/35192
816b210 : Client game screen configuration support (#269)
  Move game screen to a separate [stream] module
  Add a simple canvas video mirror for post-processing
  Add video mirroring to the options
69bc3cb : Use new OPUS buffer every audio frame for less garbage
76b7caf : Refactor OPUS encoder for quality and speed (#262)
  Refactor OPUS encoder for quality and speed.
  Use OPUS low delay mode:
  (https://www.opus-codec.org/docs/opus_api-.1.3/group__opus__ctlvalues.html#ga592232fb39db60c1369989c5c5d19a07)
  Slightly tweak linear resample function and disable it on 48kHz input
  Rewrite OPUS encoder as a struct with some internal buffer
  Use OPUS 192Kbps preset by default
  Add encoder callback function on a full buffer
  Reuse OPUS output buffer
  Add write limiter for samples
f7152c7 : Fix control buttons width
28f0409 : Use host network by default in docker-compose
f05e149 : Remove unnecessary logging
949f713 : Remove unnecessary rotation
9df10f5 : Add explicit file close when reading game size
328236e : Add explicit file close when reading game size
70170a6 : Use embedded mutex for emulator structs
fa46267 : Fix wording
d141898 : Remove old game save files name separator
646e0d6 : Change wording for worker rooms and sessions inside
7984534 : Remove unused in workers ws upgrade function
6b8cad6 : Clean room run check condition
8a41c83 : Update GitHub CI build
07b7479 : Update Docker configs
072f7b5 : Remove NeoGeo from the default cores list
6f4e27d : Optimize images
924d6ad : Fix Docker run for bridged Docker network in Windows, macOS (#259) 
  Add port and IP config and env params for bridged Docker network in Windows, macOS
  - CLOUD_GAME_WEBRTC_ICEIPMAP -- replaces IP of any ICE candidates on the server
  - CLOUD_GAME_WEBRTC_ICEPORTS_MIN/MAX -- limits WebRTC random port range on the server
a77985f : Add fallback repo for not found cores (#258)
  Add fallback repo for not found cores
162c4b9 : Update README.md Add disclaimer about Docker.
9c984aa : Add SSL certificates for HTTPS downloads
348d853 : Use an interceptor for changing video timestamps (#255)
fe1c5dc : Remove useless lock in the custom track sample struct
44a8b24 : Show server modules info properly
0898fb0 : Migrate to pion/webrtc v3 (#254)
  Add initial pion/webrtc v3 migration
  Use custom timestamps when sending video packets

v2.0.0

4 years ago

Integrate with libretro to be flexible on retro games. Nearest service finding. There is only single entrypoint: cloudretro.io. Don't need to pick region.