Commit graph

529 commits

Author SHA1 Message Date
sergystepanov
667d441b81
Enable legacy Github Docker Registry publishing workflow (#247)
* Update Docker publishing script
2020-11-25 00:22:37 +03:00
giongto35
75f11904c6
Update README.md 2020-11-13 19:21:10 +08:00
giongto35
b945e81895
Update README.md 2020-11-13 19:20:35 +08:00
sergystepanov
bd6e146e64
Fix errors/misuse with OpenGL-based core API (#237)
* Follow Go standard for naming constants

* Use reformatted pixFormats for Libretro cores

* Use OpenGL 2.1 Core profile bindings for render instead 4.1

* Cleanup the code

* SDL attributes should be set before the sdl.Init call

* Use simple vertical frame flip function instead imaging lib with OpenGL renderer

* Use the separate control flow for the macOS OpenGL context handling

* Add OpenGL pixel type/format switch based on cores callback

* Use unified log instead of fmt

* Clean code

* Remove unnecessary SDL init flag

* Printout errors with SDL / OpenGL functions

* Add CGO Libretro logging output

* Use main thread lock for windows and OpenGL context

* Remove Darwin OS switch

* Add extended OpenGL version info print

* Update Libretro cores info print

* Add game library module (#232)

* Add game library

* Add missing local game lib files

* Add missing return statement

* Use v2 suffix

* Bump the dependencies

* Update Libretro modules to support headless test runners

* Port old savestates tests as example for Libretro cores runner testing

* Add n64 core example game and a test

* Update room tests for various games

* Add frame dump support for CI builds

* Add frame rendering to image output for core testing

* Update ROM frame exporter in tests

* Disable Docker image publishing

* Add frame rendering output for non-gl cores for CI

* Add auto GL context override for headless, gpu-less machines (e.g. Github CI Xeon)

* Add Windows CI headless cores frame render config

* Add missing Mesa OpenGL drivers to Ubuntu CI

* Add mupen n64 core download into CI tests

* Add Linux, macOS, Windows core frame render tests into CI

* Remove unnecessary var

* Add some comments

* Revert Y flip

* Move OpenGL into a separate package

* Add SDL package

* Update modules
2020-11-04 18:59:12 +08:00
sergystepanov
50762e95c7
Remove excessive Libretro pixel format logging (#244) 2020-11-02 00:51:53 +08:00
sergystepanov
5d28d6f94b
Add missing Ubuntu packages in the guide (#243)
* Add missing Ubuntu packages in the guide

* Bump expected Go language version for the app
2020-10-31 01:38:45 +08:00
giongto35
ea0a433ee9
Update README.md 2020-10-20 11:24:52 +08:00
sergystepanov
8c55c6e142
Fix game sharing (#240)
Call save on the frontend and properly handle cloud save on the backend
2020-10-19 21:26:32 +08:00
giongto35
a31652c6cc
Update README.md 2020-10-17 03:44:23 +08:00
sergystepanov
83efc733a8
Add game library module (#232)
* Add game library

* Add missing local game lib files

* Add missing return statement

* Use v2 suffix

* Bump the dependencies
2020-10-10 21:42:06 +08:00
sergystepanov
a42aebec88
Migrate to v2 suffix (#231) 2020-10-04 23:21:03 +08:00
sergystepanov
dbdb99f19e
Fix Github CI Windows build (Msys2) (#236) 2020-10-04 23:11:02 +08:00
sergystepanov
453087ed28
Remove duplicate worker addresses during ping check (client, server) (#234) 2020-10-03 23:53:46 +08:00
sergystepanov
564b96df8d
Add anti-abuse debounce and throttle functions (#233) 2020-10-02 02:16:28 +08:00
sergystepanov
3c756eb548
Remove unused files (#230) 2020-10-02 00:54:14 +08:00
sergystepanov
04d21ef420
Add .editorconfig file for proper Markdown trailing spaces handling (#229) 2020-09-20 19:07:45 +08:00
sergystepanov
fdbeb32303
Force OpenGL compatible profile for the Docker compose config (#228) 2020-09-19 11:52:12 +08:00
sergystepanov
b9dc56d85a
Add initial xvfb system dependency for OpenGL cores support in the cloud environment (#226) 2020-09-16 23:26:06 +08:00
giongto35
10fa3c5170 Merge branch '88hcsif-multitap' 2020-09-13 03:42:34 +08:00
giongto35
611a70482a Merge conflict 2020-09-13 03:42:27 +08:00
giongto35
3d4e5c532b Update cloud morph announcement 2020-08-24 03:17:24 +08:00
giongto35
6f53f8f736
Split services (#219)
* Close channel to avoid routine leak

* Use unix socket

* Use socket
2020-07-07 18:12:03 +08:00
giongto35
7b736d455e
Merge Pr/173 with master (#218)
* Add the initial support for settings

* Rearrange init order for the settings and log modules

* Add import settings function

* Add initial settings display panel

* Add settings controls

* Add settings controls handlers

* Add garbage gui auto-builder for settings

* Add some custom binding handlers for settings

* Add super ineffective ¯\_(ツ)_/¯ keyboard bindings remap function

* Migrate keyboard to codes instead deprecated keyCodes

* Abort key remap on Esc

Co-authored-by: Sergey Stepanov <sergystepanov@gmail.com>
2020-07-04 04:24:13 +08:00
sergystepanov
45400c29fd
Drop release action support 2020-07-02 20:59:13 +03:00
Sergey Stepanov
01d3bac538
Filter out arm libs for Linux releases 2020-07-02 16:31:25 +03:00
88hcsif
e7162d2085
Fix race condition when closing encoders (#215)
* Fix race condition when closing encoders

* Apply PR feedback
2020-07-02 16:53:49 +08:00
88hcsif
3a8bf7ba7e
Regulate calls to the retro core based on the fps reported by the game. (#214)
👍
2020-07-01 17:51:01 +08:00
88hcsif
f7f044d039 Add multitap support to SNES
Change SNES emulator to Snes9X
Add client control to toggle multitap
2020-06-28 23:35:07 +01:00
88hcsif
42514fa09a Swap A and B for PS3 controller
Add PS3 controller mapping for Safari and Firefox
2020-06-28 23:35:06 +01:00
88hcsif
85bb99f8f8
Explicitly set RTP timestamp to cope with variable frame rate. (#211)
Set the timestamp as early as possible and propagate it through the pipeline.
2020-06-28 17:25:23 +08:00
sergystepanov
2703692d1a
Free save state buffer from malloc (#210) 2020-06-27 00:54:10 +08:00
88hcsif
2aa1ae4ecb
Add frame delay or frame rate stats to stat view. (#206)
Unfortunately Firefox does not expose frame delay stat.
Unfortunately Chrome and Safari do not expose frame rate stat.
2020-06-26 02:39:39 +08:00
sergystepanov
36894ad730
Swap the A/B buttons (#209) 2020-06-25 23:06:25 +08:00
88hcsif
c23347db08
Add basic N64 support on Mac (#205)
Note: mupen64plus lib unload is not working properly on Mac, so stopping and restarting N64 emulation will cause a crash
2020-06-25 22:46:12 +08:00
sergystepanov
5f653de602
Add HTTP port config for Coordinator and Worker (#208)
* Add HTTP port config for Coordinator and Worker

It is possible to config HTTP ports for both apps with --httpPort flag.

* Limit worker port scanner to 100 ports
2020-06-25 16:19:58 +08:00
Sergey Stepanov
a61d4585a1
Tidy Go modules after SDL2 addition 2020-06-18 19:22:09 +03:00
sergystepanov
43d5ca1737
Fix Chrome stereo issue (#202) 2020-06-18 18:56:00 +08:00
giongto35
be0eb458ad
Update README.md 2020-06-17 23:45:55 +08:00
Sergey Stepanov
ce5f1427f0
Add GL Mesa lib into the main Docker image 2020-06-17 14:35:41 +03:00
Sergey Stepanov
8b27445458
Integrate SDL2 into CI / Project 2020-06-17 14:00:50 +03:00
88hcsif
091b086bcb
N64 Support (#195)
* Allow HTTP access to Raspberry Pi over local network
Lower audio buffer maximum theoretical size to get the worker code to compile on Raspberry Pi

* Add https port flag to run https worker and coordinator on the same machine
Add https chain and key flags to allow to use an existing certificate and bypass letsencrypt
Note the ping address resolution is still broken with this configuration

* Add option to define a ping server in the coordinator
This is useful when it is not predicatable what address and port the worker will be runnning at
This only works when there is a single worker

* Free temporarily allocated CStrings
Store constant CString

* Only load core once and unload it when done

* Add Nintendo 64 support!
Disclaimer: only tested with Mupen64plus and Mupen64plusNext on Raspberry Pi.
It probably needs more work to run on every system and with other OpenGL libretro libraries.
Input controls are hacked together, it really needs analog stick and remapping support to play in a nicer way.
I am worried there might be a memory leak when unloading Mupen64plus but this needs further investigation.

* Add analog sticks + R2,L2,R3,L3 support

* Add client logic to control left analog stick via keyboard and touch
Add client logic to toggle between dpad mode and analog mode (even for joystick)
Might need to revisit if and when remapping is implemented
Tocuh sensitivity of analog stick is pretty high, might need tweaking

* Add cores for Raspberry Pi
Add N64 core for linux x86_64

* Reset use OpenGL flag on nanoarch shutdown (line lost in refactoring)
2020-06-17 18:07:10 +08:00
sergystepanov
9d17435d7e
Allow gh Docker repository push in forks 2020-06-16 22:09:36 +03:00
sergystepanov
6a42f9d989
Add missing Docker build check into CI 2020-06-16 15:15:53 +03:00
sergystepanov
f18ede0835
Require app build CI on PR 2020-06-15 22:16:26 +03:00
sergystepanov
782e6d71b1
Add Github Docker repo publisher (#197) 2020-06-16 00:15:25 +08:00
sergystepanov
27f8fdc117
Make it choose ws/wss protocol based on URL's protocol. (#196)
When you open the app with https: protocol it will chose wss secured socket connection instead of hardcoded addresses / domains.
2020-06-13 14:23:01 +08: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
giongto35
bf5b622b1a
Fix high CPU due to nonstop loop (#191) 2020-06-06 04:29:16 +08:00
giongto35
d84503fa75
Close channel to avoid routine leak (#188) 2020-05-31 03:28:36 +08:00