Commit graph

29 commits

Author SHA1 Message Date
sergystepanov
95d48ac192
Fix old Go non-existent build path error. (#347)
If you specify just an output path without a filename when building the app, it will say that "build output dir/ already exists and is a directory" then it'll crash the build process.
This is considered as a bug (https://github.com/golang/go/issues/41313) and was fixed in Go 1.16. The fix is for older versions.
2021-08-27 10:29:10 +03:00
Sergey Stepanov
a14e8d58b1
Fix version script call 2021-08-26 20:24:32 +03:00
Sergey Stepanov
a33b1a0ed6
Fix version script call 2021-08-26 20:19:46 +03:00
Sergey Stepanov
507dbf5729
Remove quotes from git version extractor 2021-08-26 18:52:13 +03:00
Sergy Stepanov
e4e160d9dc Update Makefile 2021-07-31 13:03:18 +03:00
sergystepanov
30d104ee98
Add version info into the apps (#330)
Both worker and coordinator display version number in the console during startup. Coordinator displays its version number in the top right corner of the index.html page.
2021-07-16 18:13:20 +03:00
Sergey Stepanov
763859283a
Use default Go file extension for builds 2021-04-09 20:59:15 +03:00
sergystepanov
65dcaf7820
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).
2021-04-07 18:50:34 +03:00
sergystepanov
602b9ea47c
Make executables ready for static linking (#307)
* Disable CGO (C libs) for coordinator

Needed for static linking.

* Fix "error strings should not be capitalized (ST1005)"

* 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 (SA1015)

* Fix SA9004

Only the first constant in this group has an explicit type (SA9004).

* Remove unused code in the webrtc package

* Fix S1000

Should use a simple channel send/receive instead of select with a single case (S1000).

* 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 worker app without libopusfile

* 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
2021-04-06 18:16:52 +03:00
sergystepanov
6584d8219c
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 (as 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
2021-01-30 01:29:01 +03:00
sergystepanov
1fcf34ee02
Add new Libretro core manager module (#249)
* Add initial external configuration files support.

These external configuration files allow changing app params at the runtime without recompilation.

* Find config files with specified directory in the tests

* Add aspect ratio recalculation config

* Clean code

* Add new configuration files into the Docker container image

* Add shared core and config paths into the Libretro cores config

* Split ROM <-> Emulator mapping between workers and coordinators

* Extract coordinator config

* Add shared worker/coordinator server config

* Add explicit embedded shared worker/coordinator struct for auto-config reflection fill

* Remove default stun/turn servers from the config

* Extract and add new ice servers config structures

* Update coordinator config params

* Add auto emulation lib loader based on the runtime OS/arch

* Update configuration structures

* Remove shared config embedding

* Add missing network config params

* Add game library external config

* Remove unused config parameters

* Add WebRTC encoder external options

* Add user dir for config search

* Update config loader

* Update config

* Add generic downloader with Grab lib implementation

* Add a simple file downloader backed by the grab lib

* Add initial Libretro core repos abstractions

* Expose compression info for Libretro cores repository records

* Add pipe-based abstract file downloader

* Refactor downloader

* Refactor Libretro repos

* Add worker coresync stubs

* Add multiprocess-safe HTTP-based core manager implementation

* Remove Libretro cores from the repo

* Keep custom N64 cores in te repo for now

* Add Libretro cores repo select in the config

* Fix http manager repo switch

* Cleanup code

* Add greedy Libretro lib loader

* Don't crash when arch map is not set

* Disable dynamic recompiler for pcsx core by default since it's could cause a crash

* Use global Libretro dynalib handler

* Shorten the default Libretro cores store path

* Update zip extractor implementation

* Remove explicit fig lib field markings

* Add config note to the README file

* Add GitHub repo backend for the core downloader

* Fix GitHub repo param list in the manager factory

* Add env variables reader with CLOUD_GAME prefix

* Re-optimize ice server info struct custom marshaler
2020-12-31 13:24:27 +03:00
Sergey Stepanov
01d3bac538
Filter out arm libs for Linux releases 2020-07-02 16:31:25 +03:00
giongto35
42d7e166e8
Update dev.run-docker for easier startup 2020-06-11 05:54:02 +08:00
sergystepanov
9d3e9c1a3b
Initial Docker rewrite (#190)
* Initial Docker rewrite

* Add rebuild

* Up

* Up

* Up

* Pre-release

* Pack assets with ext games

* Remove Makefile Docker because it's broken on Windows and a dup

* Add default container name

* Update docker-compose.yml

* Add app binaries into the system bin folder

* Update

* Update
2020-06-09 20:38:43 +08:00
Sergey Stepanov
0bf23d6995
Update release generation target 2020-05-28 13:08:23 +03:00
Sergey Stepanov
ee14bf82cb
Remove unused GO vendor experiment 2020-04-20 15:29:26 +03:00
giongto35
b29a4b15ea Fix run dev.docker. Thanks baxpace 2020-04-20 18:41:57 +08:00
sergystepanov
e2fc8696c8
Add multi-os Github release workflow (#159) 2020-04-09 04:01:02 +08:00
giongto35
59d4a3d9c2 update naming 2020-03-22 23:33:12 +08:00
giongto35
9558054449 Rename 2020-03-20 00:50:29 +08:00
giongto35
1342fabe15
Give option to join by zone + update README (#146)
* Update DREADME CrowdPlay

* Update README

* Update README.md

* Add zone control

* add zone

* Update MISC

* Update go mod
2019-12-09 03:02:35 +08:00
sergystepanov
eddf9091a2
Fix Go's dev tools script path 2019-12-01 13:56:37 +03:00
giongto35
c2b2309aea
Use homebrew rom. (#94)
* Update Makefile to not stop

* Add some homebrew rom

* Remove Contra.nes
2019-10-03 01:30:13 +08:00
giongto35
474cb7592e
Test server (#90)
* Update README

* Update Readme typo

* to Test server

* Update libretro system path
2019-09-22 23:36:45 +08:00
giongto35
40b3ca9d9f Update README + run Docker 2019-09-18 04:17:21 +08:00
Sadlil Rhythom
0e17092acb Refactor of cloud game overlord and overworker (#70)
* Introduce Makefile and go vendor directory for faster build

* WIP: Refactor cloud-game codebase with spliting overlord and worker binary

* Fix all issues and have a running build

* Complete first version of refactor
2019-09-12 03:35:21 +08:00
giongto35
a174501431 update Makefile 2019-09-09 02:54:20 +08:00
giongto35
f49a347de2 Update vendor and makefile (#76)
* Update dependencies

* Update vendor

* Update vendor with C package

* Update Make file
2019-09-01 04:56:27 +08:00
Sadlil Rhythom
f075846f74 Introduce Makefile and go vendor directory for faster build (#67) 2019-08-17 00:13:36 +08:00