Compare commits

...

332 Commits

Author SHA1 Message Date
97f2ae0df9 Bump version to 3.5.3 2024-04-17 17:05:38 +07:00
c38ccaf050 Update translations 2024-04-17 16:37:16 +07:00
a137c5eb57 Remove Clarity Boost restriction 2024-04-17 16:35:07 +07:00
7bd071d527 Fix crashing on Chromium 124 2024-04-17 15:45:45 +07:00
6f9ae9a555 Move DEFAULT_FLAGS below ADDITIONAL CODE section 2024-04-17 08:07:01 +07:00
2008806507 Fix the star icon in Settings button 2024-04-16 17:09:12 +07:00
c758827232 Move handleDeepLink() to the app 2024-04-15 18:05:29 +07:00
9322480059 Minor fixes 2024-04-15 08:06:14 +07:00
992605690f Minor fixes 2024-04-15 07:56:42 +07:00
08f2db0846 Remove hash in handleDeepLink() 2024-04-15 07:53:01 +07:00
645155bee0 Add handleDeepLink() 2024-04-15 07:45:43 +07:00
e6dad23547 Update 02-feature-request.yml 2024-04-13 18:01:44 +07:00
04a26680d5 Update 01-bug-report.yml 2024-04-13 18:01:29 +07:00
8ff50ecab8 Delete .github/ISSUE_TEMPLATE/feature_request.md 2024-04-13 17:42:37 +07:00
e20f661c36 Add Feature Request form 2024-04-13 17:42:23 +07:00
f958244e43 Delete .github/ISSUE_TEMPLATE/bug_report.md 2024-04-13 17:34:35 +07:00
ec76731e37 Add Bug Report form 2024-04-13 17:33:51 +07:00
aedc617298 Fix screenshot button blocking Guide UI 2024-04-13 16:41:08 +07:00
d451cfeac9 Add "SafariWorkaround" flag 2024-04-13 10:33:07 +07:00
77c4e3981f Bump version to 3.5.2 2024-04-13 05:53:11 +07:00
1cb4038abf Fix typo when calling Response.clone() (#361) 2024-04-13 05:31:18 +07:00
ec6c3fc8a3 Minor fix in showGamepadToast() 2024-04-12 20:37:45 +07:00
b27f84b980 Fix region selection box not selecting correct value 2024-04-12 20:35:00 +07:00
37d0a0c6e2 Update translations 2024-04-12 18:38:05 +07:00
5d272425db Don't show Toast for virtual controller 2024-04-12 18:36:06 +07:00
6b5cdca51a Change stick decay's default value to 100 2024-04-12 18:31:21 +07:00
90a5613959 Change style of the MKB Settings button 2024-04-12 18:27:42 +07:00
1bdfa6c23f Change the toggling MKB key from F9 to F8 2024-04-12 18:06:35 +07:00
47fbbdcb59 Remote Play popup: use radio inputs & add Help button 2024-04-12 17:24:54 +07:00
69a8db092e Add "disableTelemetryProvider" patch 2024-04-12 15:44:09 +07:00
928a1484d7 Fix getPreferredServerRegion() when shortName is empty 2024-04-12 05:56:36 +07:00
65ca3dab0e Only remove the "Cloud Gaming" text when the screen is too small 2024-04-12 05:48:51 +07:00
35a783c53e Bump version to 3.5.1 2024-04-11 17:42:03 +07:00
afe3809061 Upper case server's short name in dropdown box 2024-04-11 17:31:44 +07:00
5eeb15f201 Prevent Remote Play from breaking in the future 2024-04-11 17:23:21 +07:00
71b4109385 Remove the "Cloud Gaming" text in header 2024-04-11 17:12:29 +07:00
8286429cc3 Add "patchStreamHud" patch 2024-04-11 17:12:15 +07:00
ae24005f08 Fix exception in fetch() 2024-04-11 17:11:59 +07:00
2626408cbe Fix the Guide/Nexus button not working in Remote Play 2024-04-11 15:09:59 +07:00
804f751646 Fix Remote Play 2024-04-11 12:43:46 +07:00
13a20f30e5 Fix Remote Play stopped working 2024-04-11 07:30:16 +07:00
46265f2ccd Show server's short name in header 2024-04-10 20:57:40 +07:00
93d77c3783 Fix not updating SCRIPT_VERSION 2024-04-08 17:50:47 +07:00
eeb7ab749a Bump version to 3.5.0 2024-04-08 17:20:47 +07:00
2af3dc315b Update translations 2024-04-08 16:52:29 +07:00
bd7b7d5ef5 Minor fixes 2024-04-07 15:16:27 +07:00
93b540d995 New setting: "combine audio & video streams" 2024-04-07 11:44:30 +07:00
9f26021ec6 Add Experimental text in Settings 2024-04-07 11:27:52 +07:00
bd8aedaf30 Add CheckForUpdate flag 2024-04-06 17:01:38 +07:00
414bc2268e Fix emitting "playing" event on normal videos 2024-04-06 16:54:41 +07:00
6b12b4add4 Use "await" keyword in interceptHttpRequests() 2024-04-06 16:41:21 +07:00
cdc64da95f Preload Remote Play right after getting server list 2024-04-06 15:31:59 +07:00
1a2fb6c89a Only init Settings UI when necessary 2024-04-06 15:29:40 +07:00
351cb0204b Preload Remote Play after injecting header buttons 2024-04-06 15:08:07 +07:00
f6a7a78be7 Fix exception in settings 2024-04-05 21:45:40 +07:00
66695b2fc2 Minor fix 2024-04-05 21:43:06 +07:00
6f8f425003 Fix scrollbar not hiding in Firefox 2024-04-05 21:31:47 +07:00
1966c7c127 Hide scrollbar setting in the app 2024-04-05 21:31:30 +07:00
67788bd365 Fix exception with Remote Play 2024-04-05 21:18:48 +07:00
bf9942ca4f Remote Play: fix not able to delete session after disconnecting 2024-04-05 17:06:01 +07:00
8d22533d7f Fix problem with Remote Play 2024-04-03 19:54:36 +07:00
7df5ac1e22 Bump version to 3.4.0 2024-04-03 07:38:41 +07:00
63f6db443a Show gamepad's vibration status in Toast 2024-04-03 07:06:14 +07:00
2a104cef24 Add "name" property to "select" elements 2024-04-03 06:46:36 +07:00
cc84e91d1c Add option to hide web page's scrollbar 2024-04-03 06:39:09 +07:00
c011a943ae Update translations 2024-04-03 06:38:57 +07:00
eef0946b01 Add support for Remote Play dialog in Android app 2024-04-02 21:47:02 +07:00
5b032d0ede Call AppInterface.showRemotePlayDialog() if available 2024-04-02 17:36:13 +07:00
6503707c54 Display Remote Play as popup instead of dialog 2024-04-02 17:18:27 +07:00
dc56e32357 Fix getting Remote Play consoles multiple times 2024-04-02 07:31:12 +07:00
33941a12d1 Preload Remote Play consoles by default 2024-04-02 07:01:06 +07:00
aebb7888d1 Adjust screenshot button's size 2024-03-31 13:31:00 +07:00
c051313092 Minor fix 2024-03-29 11:20:31 +07:00
244bebba01 Free memory after taking screenshot in the app 2024-03-24 16:13:39 +07:00
4376f37bd0 Bump version to 3.3.0 2024-03-23 17:33:59 +07:00
6ee55c6f30 Update translations 2024-03-23 17:32:50 +07:00
ea8dea99cd Add ADDITIONAL CODE block 2024-03-23 17:06:08 +07:00
805fc5dacb Update translations 2024-03-23 16:01:49 +07:00
12fc9e6353 New feature: apply video filters to screenshots 2024-03-23 15:55:46 +07:00
2eaca3e441 Add support for the screenshot feature in Android app 2024-03-23 11:27:17 +07:00
6d28e88b85 Merge branch 'main' of https://github.com/redphx/better-xcloud 2024-03-23 11:26:29 +07:00
259543cbaf Update README.md 2024-03-22 17:44:03 +07:00
ff9df84fb8 Don't render settings on unsupported features 2024-03-22 17:40:01 +07:00
2157d9cd41 Use BX_FLAGS to control feature flags 2024-03-22 17:24:05 +07:00
10e8a96a18 Update translations 2024-03-22 04:31:17 +07:00
7201efba9c Bump version to 3.2.5 2024-03-22 04:26:30 +07:00
e6504d246f Fix crashing on Kiwi v124 2024-03-22 04:21:55 +07:00
3847c27a1d Update issue templates 2024-03-21 09:45:23 +07:00
1e56e7b2a2 Fix loading time box not hidden sometimes 2024-03-20 17:56:21 +07:00
0d80edb7cb Swap position of "Low" & "High" values in "Visual quality" setting 2024-03-20 17:27:03 +07:00
b11a89037a Add back the "Off" option for "Touch controller > Availability" setting 2024-03-20 17:23:42 +07:00
ac08f657bb Add 18:9 screen ratio 2024-03-20 17:02:21 +07:00
469bac6693 Update README.md 2024-03-16 17:49:03 +07:00
fe16c28dc5 Bump version to 3.2.4 2024-03-16 17:29:09 +07:00
b2adc5b365 Add link to Android app 2024-03-16 17:17:45 +07:00
af5e92057d Use window.scrollTo() 2024-03-15 17:17:57 +07:00
d37a16169f Call AppInterface.onEvent() 2024-03-15 10:25:50 +07:00
447e93096b Rename "AndroidInterface" to "AppInterface" 2024-03-15 10:23:00 +07:00
94bddb0740 Support vibrating using Android API 2024-03-13 16:52:01 +07:00
357ee51999 Add "disableIndexDbLogging" patch 2024-03-12 17:20:33 +07:00
e47a0521c8 Fix Logitech G Cloud's controller name 2024-03-12 16:56:08 +07:00
6beb4b2f72 Fix "enableXcloudLogger" patch 2024-03-12 16:54:23 +07:00
a9254d0ad8 Add Indonesian translations 2024-03-12 16:21:08 +07:00
adf689d61d Bump version to 3.2.3 2024-03-10 20:47:21 +07:00
086385fbfb Update translations 2024-03-10 20:45:18 +07:00
705446ffb9 Fix language names 2024-03-10 20:21:45 +07:00
e366cb73e4 Stop exposing Toast class 2024-03-10 18:02:03 +07:00
d148fc708e Minor bug fixes 2024-03-10 18:01:36 +07:00
f75e22b5f6 Move Touch control settings to Controller tab 2024-03-10 17:57:16 +07:00
0f7ac4c372 Don't call MkbHandler.destroy() if the MKB feature is not enabled 2024-03-10 17:45:19 +07:00
a4874c76db Stop redrawing the "👀" emoji every seconds in the stats bar 2024-03-10 17:39:08 +07:00
397b3baa9b Avoid rendering the Settings multiple times 2024-03-10 16:20:53 +07:00
0330d0d811 Shorten name of the MKB controller 2024-03-10 07:54:08 +07:00
f8e035d98f Show a toast when a controller is connected/disconnected 2024-03-09 22:51:42 +07:00
1e7bc366ca Change STREAM_TARGET_RESOLUTION's default value back to "auto" 2024-03-09 21:29:19 +07:00
c207025df9 Bump version to 3.2.2 2024-03-08 17:16:36 +07:00
83b35dfc61 Update translations 2024-03-08 17:06:12 +07:00
e6ec664087 Update styling of disabled <select> 2024-03-08 17:03:23 +07:00
06790c8098 Use "accent-color" style on inputs 2024-03-08 16:50:53 +07:00
7310a009df Update style of the Reload page button 2024-03-08 16:50:25 +07:00
5392414abd Show Settings' reload button at the bottom when modifying settings 2024-03-07 18:36:47 +07:00
d78e55586e Update style of disabled <select> in Settings 2024-03-07 17:46:08 +07:00
77abc44f3d Add "STREAM_TOUCH_CONTROLLER_AUTO_OFF" setting 2024-03-07 17:39:37 +07:00
788ac3d527 Add "disableTakRenderer" patch 2024-03-07 09:12:30 +07:00
47ef5a9cd2 Fix "blockWebRtcStatsCollector" patch and add "blockGamepadStatsCollector" patch 2024-03-06 17:57:18 +07:00
7342da775f Bump version to 3.2.1 2024-03-05 18:02:07 +07:00
ba9642fe7e Reduce translations size 2024-03-05 17:54:27 +07:00
e547048c09 Migrate old local co-op setting 2024-03-05 17:18:04 +07:00
f110b9f2e9 Disable LOCAL_CO_OP_SEPARATE_TOUCH_CONTROLLER as it's too complicated 2024-03-05 08:00:53 +07:00
d191622a8d Add option to separate touch controller & controller 1 2024-03-05 06:32:27 +07:00
d48d2ba5f0 Disable "volume control" feature by default 2024-03-05 05:17:15 +07:00
5703f24418 refactor: update locale function's name (#277) 2024-03-05 05:15:46 +07:00
d2ddc2fd23 Bump version to 3.2 2024-03-03 16:08:18 +07:00
a00b0b6879 Update translations 2024-03-03 16:00:57 +07:00
83ff859798 Add link to list of supported local co-op games 2024-03-03 10:20:37 +07:00
0ef1e8a526 Add local co-op support 2024-03-03 09:08:53 +07:00
20caac4821 Bump version to 3.1.9 2024-03-01 17:19:09 +07:00
dac9823d5b Change default values of stream stats 2024-03-01 17:04:14 +07:00
bcdabbf1b9 Stop setting codec's default value to the best codec profile 2024-02-29 18:02:53 +07:00
11f3513b0c Fix no audio when the stream drops (#259) 2024-02-29 17:31:30 +07:00
9786c7c8ee Fix native MKB not working 2024-02-29 16:54:23 +07:00
e48b277535 Bump version to 3.1.8 2024-02-15 16:46:56 +07:00
e2dbf873a6 Update translations 2024-02-15 16:46:28 +07:00
6510eac0c3 Fix error while loading profile page 2024-02-15 16:23:06 +07:00
3dd83ace6c Fix mkb's note 2024-02-15 15:49:28 +07:00
45d8aed841 Bump version to 3.1.7 2024-02-15 11:08:02 +07:00
cf1d11185b Add a link for MKB's note 2024-02-14 17:54:03 +07:00
21f119e4eb Update translations 2024-02-14 17:45:05 +07:00
ebb7920d82 Fortnite: allow playing console version on mobile 2024-02-12 19:40:28 +07:00
5ca8eb754c Bump version to 3.1.6 2024-02-11 17:50:54 +07:00
506f89ea51 Fix game's gallery failed to load (#250) 2024-02-11 16:21:40 +07:00
9332f375b8 Cache base custom touch layouts 2024-02-10 15:05:13 +07:00
dbe0435669 Use async/await in TouchController.getCustomLayouts() 2024-02-10 14:57:11 +07:00
c1684abf27 Switch to another Remote Play server if one is down 2024-02-10 14:46:51 +07:00
07e4f9dffd Add REMOTE_PLAY_SERVER for switching Remote Play server 2024-02-09 21:52:58 +07:00
bb980d2cad Bump version to 3.1.5 2024-02-09 18:07:40 +07:00
102c796c69 Set USE_DEV_TOUCH_LAYOUT to "false" 2024-02-09 18:07:04 +07:00
2f7218d165 Update translations 2024-02-09 18:04:06 +07:00
b07318e07f Add BX_EXPOSED.test_touch_control() for layout testing 2024-02-09 17:57:25 +07:00
70a8fc9866 Test new structure of custom touch layout 2024-02-09 17:46:05 +07:00
2d9ee16531 Bump version to 3.1.4 2024-02-07 21:43:49 +07:00
21168803e0 Set default value of STREAM_CODEC_PROFILE to the best codec profile 2024-02-07 21:37:35 +07:00
3068aa8a06 Minor fix for touch control 2024-02-07 18:40:36 +07:00
b6b9ec49f6 Update touch support detection in Remote Play 2024-02-07 17:35:13 +07:00
4dc60f965f Minor fix 2024-02-07 15:22:27 +07:00
2142c4a83c Only request custom touch control when the game is focused 2024-02-07 15:15:53 +07:00
6b090194c9 Only show toast when the layout has been changed 2024-02-07 14:56:36 +07:00
a878150ec3 Show a toast with layout's name when switching touch control layout 2024-02-07 11:09:10 +07:00
5fb1dded42 Change default value of "STREAM_TARGET_RESOLUTION" to "1080p" 2024-02-07 10:53:12 +07:00
ac6879c189 Change default value of "STREAM_TOUCH_CONTROLLER" to "all" 2024-02-07 10:52:04 +07:00
b8efaf9648 Fix not loading Better xCloud after logging in 2024-02-06 22:53:53 +07:00
033ac31333 Bump version to 3.1.3 2024-02-03 07:16:46 +07:00
1f754d4a1d Add STREAM_STOPPED and STREAM_ERROR_PAGE events 2024-02-02 10:31:40 +07:00
0d39ccf8bf Typo 2024-02-02 10:04:59 +07:00
966d7f2f6c Hide touchscreen using bx-offscreen instead of bx-gone 2024-02-02 10:02:57 +07:00
fdbf618253 Add STREAM_MENU_SHOWN and STREAM_MENU_HIDDEN events 2024-02-02 09:59:42 +07:00
aaa7612293 Fix default touch control not showing sometimes 2024-02-01 20:22:18 +07:00
d578718958 Bump version to 3.1.2 2024-02-01 09:21:26 +07:00
46647dbffd Refactor + bug fixes (#245)
* Create DATA_CHANNEL_CREATED event

* Add BxEvent.dispatch()

* Dispatch STREAM_WEBRTC_CONNECTED event

* Fix not being able to hide touch control in Remote Play

* Fix touch bar again

* Listen to STREAM_LOADING & STREAM_STARTING events

* Add setupEvents() functions

* Show/hide touch controller using CSS instead

* Fix exception in LoadingScreen class

* Fix Remote Play stopped working
2024-02-01 09:20:17 +07:00
6f517d85b3 Bump version to 3.1.1 2024-01-31 07:28:44 +07:00
bf06ef6aa6 Custom layout selector (#243)
* Read layout from "layouts" property

* Support schema version 2

* Support switching custom layouts

* Fix custom touch layouts not working in Remote Play

* Fix game's layout not working when switching between games

* Fix loading custom layout before touch_layout_manager is ready

* Fix game's custom layout not working sometimes

* Set USE_DEV_TOUCH_LAYOUT to false
2024-01-31 07:26:53 +07:00
a90868ef2f Fix not showing custom touch controller layout sometimes 2024-01-30 09:40:07 +07:00
a132a1b1e0 Update README.md 2024-01-29 17:09:46 +07:00
a6c1e5f487 Bump version to 3.1 2024-01-29 16:04:18 +07:00
c3432ea125 Custom touch layout (#238)
* Expose Layout Manager

* Test layout

* Update better-xcloud.user.js

* Fix custom layout not being applied after switching off "Basic controls" setting

* Support custom layout in Remote Play

* Fix bug when showing/hiding touch controller

* Fix Remote Play

* Wait for 1s before displaying custom layout

* Support dev layouts

* Update translations

* Show notes in Settings

* Fix not being able to show touch controller
2024-01-29 15:48:21 +07:00
886a23e5ac Bump version to 3.0.5 2024-01-21 12:27:57 +07:00
309feca3f9 Only set "pointerEvents" property on touch-supported devices 2024-01-21 11:55:17 +07:00
82a9a91534 Fix Clarity Boost warning not working 2024-01-21 11:32:52 +07:00
7248dac3f6 Fix patches 2024-01-21 11:15:09 +07:00
9a0374923c Update translations 2024-01-16 06:46:44 +07:00
6952bad46d Bump version to 3.0.4 2024-01-16 06:44:33 +07:00
5afdbeb9f8 Increase maximum mouse's sensitivities to 200% 2024-01-15 17:35:38 +07:00
241cfae9a1 Optimize Preferences.get() 2024-01-15 17:28:34 +07:00
0b37ed40f6 Use getPref() & setPref() 2024-01-15 17:06:38 +07:00
dc4c1d7256 Reorganize patches 2024-01-15 17:00:42 +07:00
4add599f8e Optimize classList.remove() 2024-01-15 16:45:12 +07:00
7271478ebc Update translations 2024-01-15 16:29:39 +07:00
69d33719e6 Update README.md 2024-01-15 15:36:19 +07:00
5ce311f873 Fix the Stream Settings doesn't hide when clicking outside 2024-01-15 10:15:49 +07:00
fd127cf2fa Improve stick's responsiveness 2024-01-15 10:05:06 +07:00
cf65d12a84 Add a button to show MKB settings to the MKB overlay message 2024-01-14 17:01:45 +07:00
7838236d0d Remove "cursor: help" style from stats bar 2024-01-14 16:29:35 +07:00
1a77352f22 Fix the "Show stats when starting the game" setting doesn't work with Quick Glance mode 2024-01-14 16:27:29 +07:00
237d3919fa Optimize class prototypes 2024-01-14 16:15:42 +07:00
780deccae2 Optimize Safari's workaround 2024-01-14 15:55:16 +07:00
6dbc0990cd Optimize createElement() 2024-01-14 15:49:02 +07:00
83a8e1f847 Bump version to 3.0.3 2024-01-13 17:14:15 +07:00
5ccd04478d Reduce the chance that other Webpack extensions can cause the Patcher class not to work 2024-01-13 16:38:04 +07:00
da2a3c87bc Update Remote Play's CSS 2024-01-13 15:49:03 +07:00
a8996fe3a5 Fix minor CSS 2024-01-13 15:26:32 +07:00
89a5bbdd2e Fix strafing doesn't work (#216) 2024-01-13 15:15:50 +07:00
58f8f6e762 Update translations 2024-01-13 14:45:42 +07:00
401f8def06 Cut off button's label when it's too long 2024-01-12 18:30:49 +07:00
f560c225de Show stat's full name when hovering on it 2024-01-12 18:12:59 +07:00
d6b254b134 Don't show "0.00%" on stats bar 2024-01-12 17:57:33 +07:00
36a6259817 Put MKB settings before Touch Controller settings 2024-01-12 17:49:16 +07:00
76947a39de Update styling of the Connect button in the Remote Play dialog 2024-01-12 17:43:04 +07:00
151b87fb69 Change button's height from 32px to 36px 2024-01-12 17:14:35 +07:00
0a6bd5b763 Fix layout on small screen devices 2024-01-12 17:02:50 +07:00
477989d542 Update styling of buttons in header 2024-01-12 16:46:19 +07:00
15eaf76042 Add ButtonStyle enum 2024-01-12 16:03:45 +07:00
a495d3147b Update styling of Stream Settings 2024-01-12 15:28:27 +07:00
2fb61c1c44 Truncate long headers in Stream Settings dialog (#215) 2024-01-09 17:31:30 +07:00
0c45a7705d Bump version to 3.0.2.1 2024-01-08 20:40:46 +07:00
5655c5f3b6 Update styling of dialog 2024-01-08 20:36:55 +07:00
2a6713a038 Move the "Remote Play" button to header 2024-01-08 20:30:23 +07:00
ecd2d4af1d Bump version to 3.0.2 2024-01-08 17:22:37 +07:00
c0a14d59a1 Update translations 2024-01-08 16:58:44 +07:00
73b1142c1e Update styling of the Remote Play button 2024-01-08 16:56:57 +07:00
1b7fe7f7d0 Set UI_LOADING_SCREEN_WAIT_TIME default value to "true" 2024-01-08 08:54:54 +07:00
41da54a27c Add server name to the loading screen 2024-01-08 08:54:06 +07:00
649bb0452d Merge branch 'main' of https://github.com/redphx/better-xcloud 2024-01-08 08:53:28 +07:00
9c0949930f Add Phosphor Icons license 2024-01-08 08:06:23 +07:00
2ecb40e6ee Add a help button to the Remote Play dialog 2024-01-08 07:59:26 +07:00
3490ce47bb Update styling of the Remote Play button 2024-01-07 22:43:13 +07:00
bb912ae1b4 Replace Icon.BOOK with Icon.QUESTION 2024-01-07 22:34:05 +07:00
b3e10ce721 Update the help buttons in Stream Settings 2024-01-07 18:50:40 +07:00
7e6800b3ef In Settings, replace the "Remote Play" button with the "Help" button 2024-01-07 18:39:46 +07:00
32422e5a62 Catch exception in clearDbLogs() 2024-01-07 17:05:54 +07:00
75d4e6f65c Add a "Remote Play" button to the "Jump back in" list 2024-01-07 16:59:42 +07:00
675aac207f Bump version to 3.0.1 2024-01-06 19:08:17 +07:00
0c7a6153f2 Update translations 2024-01-06 18:03:08 +07:00
d3ce3dd26d Update translations 2024-01-06 17:38:25 +07:00
25d87c5367 Allow connecting to IPv6 address when Remote Playing 2024-01-06 16:46:34 +07:00
989634b52e Clear logs in DB 2024-01-06 16:04:07 +07:00
281787d955 Fix iPhone detection 2024-01-06 15:47:34 +07:00
9d4eaf8024 Fix StreamHud not collapsing when clicking on custom buttons 2024-01-06 15:38:00 +07:00
4c601234ef Fix the StreamHud buttons being wonky 2024-01-06 14:38:18 +07:00
e8de67c817 Optimize Patcher.#patchFunctionBind() 2024-01-06 12:05:08 +07:00
c3d37b7034 Another attempt to fix the StreamMenu buttons 2024-01-06 11:51:02 +07:00
03926451ec Fix some buttons not hiding when the System menu bar is collapsed 2024-01-06 11:12:41 +07:00
dac5b39097 Disable the MKB feature for mobile browsers 2024-01-06 10:36:41 +07:00
9332892353 Add "unsupported" property to Preferences.SETTINGS 2024-01-06 10:21:35 +07:00
00041eb911 Use a different method to disable StreamGate (#210) 2024-01-06 08:12:49 +07:00
6c996769b7 Update README.md 2024-01-05 17:18:52 +07:00
e4d6afc2d2 Bump version to 3.0 2024-01-04 21:05:56 +07:00
7b59a8cd5e Add Mouse & Keyboard support (#194)
* Add initial support for MKB

* Refactor icons

* Enable native MKB support for some games

* Move Stream settings & stats buttons to Stream HUD bar

* Split stream settings into tabs

* Use bx-gone class to show/hide Settings sidebar

* Update translations

* Update Toast class

* Press F9 to toggle MKB feature

* Disable Gamepad Disconnected screen

* Change from F9 key to F8 key

* Reverse back to F9 key + disable "disableGamepadDisconnectedScreen" patch

* Fix "disableGamepadDisconnectedScreen" patch

* Add fade in/out animations for Toast

* Fix Settings tabs not showing

* Fix touch controller not showing sometimes

* Add basic remapping screen

* Update MKB layout

* Add edit/save states

* Add borders to highlight Quick Settings tabs

* Get key name from key code

* Move the Dots button to the beginning

* Disable non-working native MKB games

* Optimize Patcher class: only apply "playing" patches when needed

* Refactor renderMkbSettings() to MkbRemapper class

* Refactor the rendering process of MkbRemapper

* Implement new method to control analog stick using mouse

Heavily inspired by Yuzu's "Mouse panning" feature

* Update README.md

* Refactor setting elements

* Reduce button prompt's font size

* Render mouse settings

* Add a warning in MKB remapper

* Update preset's structure

* Disable "contextmenu" event of dialog & its overlay

* Fix bug in MkbPreset.convert()

* Detect scrolling events while binding

* Convert wheel events to button press

* Fix minor bugs in Stream settings

* Fix RT mapping

* Add setValue() method to SettingElement

* Update preset after binding new key

* Update preset after changing mouse's settings

* Update UI of mouse's settings

* Update style

* Fixed action buttons at the bottom

* Add support for "exactTicks" param to Number Stepper element

* Don't render first & last markers

* Add basic LocalDb class

* Allow switching between presets

* Enable/disable elements when editing preset

* Update translations

* Refactor code

* Define  "CE = createElement" globally

* Add createButton()

* Add icons to buttons

* Implement the "Cancel" button

* Implement the "Rename" button

* Add styling for disabled buttons

* Implement "New" & "Copy" buttons

* Implement "Delete" button

* Refactor code

* Fix exception when creating Default preset

* Set default name when copying preset

* Implement "Save" button

* Implement "Activate" button

* Implement switching preset data

* Pre-calculate mouse's sensitivities + fix not converting preset before using

* Fix mouse buttons not working

* Remove "not working" line

* Show "right-click-to-unbind" text

* Bug fixes

* Add ENABLE_NATIVE_MKB_BETA flag

* Update styling

* Add mention to Yuzu emu

* Pre-calculate mouse's sensitivities in MkbPreset.convert()

* Update translations

* Add donation link

* Update translations

* Add "Map mouse to" setting

* Fix styling

* Bug fixes

* Implement requestPointerLock()

* Hide pointerLock message when StreamMenu is being shown

* Fix bugs in Chrome

* Fix a bug causing Remote Play not working

* Remove "Disable bandwidth checking" feature as it's useless

* Update README.md

* Update styling

* Add URL to document

* Temporary disable the "Controller shortcuts" feature as it conflicts with the MKB feature

* Update translations

* Update README.md
2024-01-04 21:04:27 +07:00
b73109d9b4 Update README.md 2023-12-29 17:42:36 +07:00
e3b7365910 Update README.md 2023-12-21 09:04:53 +07:00
bdfb23257c Update README.md 2023-12-20 14:40:54 +07:00
0870065a81 Bump version to 2.1.2 2023-12-19 18:10:50 +07:00
e0f0617b12 Update translations 2023-12-19 18:10:30 +07:00
38623cc086 Fix Remote Play (#188)
* Try to fix remote play not working when not using local network

* Fix Server badge reporting incorrect info

* Refactor remote play requests in window.fetch

* Fix exceptions

* Stop overriding WebSocket class

* Fix not connecting to IPv6 server as expected
2023-12-19 18:08:14 +07:00
bbce49791f Bump version to 2.1.1 2023-12-14 17:52:40 +07:00
d719f0c2b5 Update translations 2023-12-14 17:52:19 +07:00
622057980d Update README.md 2023-12-14 17:50:47 +07:00
24d608bc3e Redesign Quick Settings sidebar (#186)
* Redesign Quick Settings bar

* Move stream stats settings to quick settings bar

* Add "for" attributes to labels

* Minor optimization

* Stop rendering Toast

* Don't render UI elements when not playing
2023-12-14 17:44:12 +07:00
f55344b4cb Update README.md 2023-12-14 09:41:00 +07:00
6139fb386b Update README.md 2023-12-14 09:14:37 +07:00
f7c46c5ef3 Update README.md 2023-12-14 08:03:27 +07:00
f5b495efa8 Update README.md 2023-12-13 08:33:21 +07:00
eb4803492e Update README.md 2023-12-13 08:07:39 +07:00
47ef7da37b Bump version to 2.1 2023-12-12 17:55:41 +07:00
63896469e2 Update README.md 2023-12-12 17:52:19 +07:00
4ab265e370 Controller & device vibration (#184)
* Test vibration

* Modify vibration patterns

* Try another vibration patterns

* Update vibration patterns

* Add setting to toggle device vibration

* Disable device vibration based on setting

* Bug fixes

* Test PWM

* Rename GamepadVibration to VibrationManager

* Add setting to toggle controller vibration

* Add vibration intensity setting

* Move Controller settings to the top

* Fix device vibration intensity

* No longer parse "delayMs" and "repeat"

* Fix device vibration intensity

* Disable vibration features on unsupported browsers

* Add "step" property to Vibration intensity slider

* Disable PWA prompt & Stream Gate dialog

* Update translations
2023-12-12 17:37:04 +07:00
584509a53d Improve IPv6 server detection 2023-12-09 11:09:08 +07:00
f3b9ebdb22 Bump version to 2.0.5 2023-12-08 07:43:30 +07:00
abd1aae57a Add "enableConsoleLogging" patch 2023-12-08 07:35:45 +07:00
ccdb944b99 Fix the Settings button not showing for some users 2023-12-08 07:23:44 +07:00
b4149e718b Bump version to 2.0.4 2023-12-06 20:06:41 +07:00
7c22685e95 Update README.md 2023-12-05 14:50:32 +07:00
ad98eb60e1 Only call eval() once per patch group 2023-12-05 06:38:35 +07:00
049e65429a Fix not applying patches correctly 2023-12-03 16:36:02 +07:00
a5b77ae8c0 Improve Patcher class 2023-12-03 10:38:10 +07:00
49550eed0a Add "enableXcloudLogger" patch 2023-12-02 17:31:51 +07:00
01861e0ca5 Bump version to 2.0.3 2023-12-02 11:27:37 +07:00
12d6fbd9c8 Check patches one by one to improve performance 2023-12-02 11:10:36 +07:00
1b0b15de76 Update README.md 2023-12-02 10:31:46 +07:00
5eba0f0ed7 Optimize Patcher class 2023-12-02 10:22:50 +07:00
0a851e5417 Rearrange patches to improve performance 2023-12-02 09:54:37 +07:00
d38e5e8812 Fix Ukrainian translation 2023-12-02 09:14:12 +07:00
69261a7f1d Add Ukranian translations 2023-12-01 17:12:45 +07:00
96b20dcb19 Fix Remote Play's stream didn't close properly 2023-12-01 06:24:58 +07:00
c5a4af9f49 Fix cloud gaming opened instead of Remote Play 2023-12-01 06:20:51 +07:00
3c62d1356f Update device info for Remote Play 2023-12-01 05:57:26 +07:00
78bfc09749 Fix Remote Play's resolution setting not applying correctly 2023-11-30 21:58:34 +07:00
f3bf7a0230 Update translations 2023-11-30 20:57:15 +07:00
c9a2d92c47 Disable idle warning while remote playing 2023-11-30 20:52:23 +07:00
5f18026f85 Update README.md 2023-11-28 20:42:03 +07:00
f4c299e730 Bump version to 2.0.2 2023-11-28 20:34:41 +07:00
baf7893769 Update translations 2023-11-28 20:31:08 +07:00
26ef306bab Fix Remote Play not working for free users (#171) 2023-11-28 20:22:39 +07:00
dc55b85772 Fix Remote Play connecting to the wrong console (#170) 2023-11-28 07:44:56 +07:00
bec3f771f2 Update README.md 2023-11-26 20:27:52 +07:00
7dc35a09c4 Bump version to 2.0.1 2023-11-26 20:13:45 +07:00
b72b881f2d Update README.md 2023-11-26 20:12:23 +07:00
4748d72d59 Update translations 2023-11-26 20:11:26 +07:00
95d4216824 Update translations 2023-11-26 16:00:54 +07:00
a0a453084a Add patches to block ApplicationInsights.track() and WebRTC stats collector 2023-11-26 15:57:16 +07:00
9b84690328 Fix a weird bug with Search box (#168) 2023-11-26 11:47:47 +07:00
1ffe5c218a Remove the "Controller Polling Rate" setting as it didn't work (#167) 2023-11-26 11:25:56 +07:00
1ea5f5031e Disable Remote Play feature by default & add a setting to enable it 2023-11-26 11:19:09 +07:00
526ceec0db Version 2.0 (#163)
* Update README.md

* Bump version to 2.0

* Bump version to 2.0
2023-11-25 17:17:14 +07:00
d54c3d50c4 Remote Play & Patcher (#162)
* Test remote play

* Add a link to dev-tools page

* Add Remote Play dialog

* Bug fixes

* Fix URL

* Fix header

* Path xHome domain

* Remote Remote Play config from window.location while playing

* Update style of the Remote Play button

* Add dialog overlay

* Hide Settings when opening the Remote Play dialog

* Update styles

* Path /direct-connect link

* Fix bind() monkey-patching

* Stop patching when it's done

* Fix exception with GAME_TITLE_ID

* Add resolution setting

* Add Patcher class

* Stop storing Remote Play config in location.hash

* Apply resolution

* Display state's label

* Fix IPv6

* Update translations

* Move Patcher class to the top

* Add "disableTelemetry" and "disableTrackEvent" patches

* Add Layout setting

* Add setting to adjust controller polling rate

* Add Mouse & Keyboard support

* Add Italian translations
2023-11-25 16:47:11 +07:00
f306cb5eee Bump version to 1.19 2023-11-19 16:22:27 +07:00
c1acb689fe Bump version to 1.19 2023-11-19 16:22:03 +07:00
5837e30afc Update README.md 2023-11-19 16:21:31 +07:00
9b955aabb9 Controller shortcuts (#157)
* Basic code for GamepadHandler

* Take screenshot using Home + RB

* Enable shortcuts using setting

* Only poll gamepad when playing

* Toogle stats using Home + Select

* Add basic Toast class

* Update translations
2023-11-19 16:09:41 +07:00
d73f91ed5f Bump version to 1.18.2 2023-10-27 17:44:29 +07:00
b918fadaab Bump version to 1.18.2 2023-10-27 17:44:03 +07:00
b79775839b Update README.md 2023-10-27 17:37:19 +07:00
d3e0ba9d9f Change "Target Resolution > Auto" to "Default" 2023-10-27 17:26:33 +07:00
e6e8297632 Clear touch controller's style after switching game 2023-10-27 17:20:06 +07:00
e94fb28266 Fix TitlesInfo 2023-10-27 17:00:25 +07:00
11e953c382 Bump version to 1.18.1 2023-10-26 20:06:46 +07:00
4845ea6994 Bump version to 1.18.1 2023-10-26 20:06:27 +07:00
0f0072bcb0 Update README.md 2023-10-26 20:05:57 +07:00
85d156f6b2 Clear Application Insights buffers periodically 2023-10-26 15:43:33 +07:00
8d24494b02 Add French & Japanese translations 2023-10-26 15:28:13 +07:00
9d1bca99aa Clear Analytics Insight buffers no page load 2023-10-26 15:14:35 +07:00
a8cf0896c5 Loading screen: use Image_Tile when Image_Hero is not available 2023-10-26 15:02:32 +07:00
4767df442e Update translations 2023-10-15 17:28:11 +07:00
8 changed files with 9618 additions and 2643 deletions

View File

@ -0,0 +1,83 @@
name: Bug Report 🐞
description: File a bug report
title: "[Bug] "
labels:
- bug
body:
- type: markdown
attributes:
value: |
Please fill out the following information to help us resolve the issue.
> [!warning]
> Only use English. Any other languages will be deleted.
- type: dropdown
id: device_type
attributes:
label: Device
description: "Which device are you using?"
options:
- Phone/Tablet
- Laptop
- Desktop
- TV
- Other
multiple: false
validations:
required: true
- type: dropdown
id: os
attributes:
label: "Operating System"
description: "Which operating system is it running?"
options:
- Windows
- macOS
- Linux
- Android
- iOS/iPadOS
- Other
multiple: false
validations:
required: true
- type: dropdown
id: browser
attributes:
label: "Browser"
description: "Which browser are you using?"
options:
- Chrome/Edge/Chromium
- Kiwi Browser
- Safari
- Other
multiple: false
validations:
required: true
- type: input
id: browser_version
attributes:
label: "Browser Version"
description: "What is the version of the browser?"
placeholder: "e.g., 122.0"
validations:
required: true
- type: input
id: extension_version
attributes:
label: "Better xCloud Version"
description: "What is the version of Better xCloud?"
placeholder: "e.g., 3.5.0"
validations:
required: true
- type: textarea
id: repro
attributes:
label: "Reproduction Steps"
description: |
How did you trigger this bug? Please provide screenshot/video if possible.
placeholder: |
Example:
1. Open game X
2. Click on Y
3. Error
validations:
required: true

View File

@ -0,0 +1,61 @@
name: Feature Request 🚀
description: Request a new feature, improvement, or general suggestion
title: "[Feature] "
labels:
- enhancement
body:
- type: markdown
attributes:
value: |
Please fill out the following information to help us understand your request.
> [!warning]
> Only use English. Any other languages will be deleted.
- type: dropdown
id: device_type
attributes:
label: Device
description: "Which device are you using?"
options:
- Phone/Tablet
- Laptop
- Desktop
- TV
- Other
multiple: false
validations:
required: true
- type: dropdown
id: os
attributes:
label: "Operating System"
description: "Which operating system is it running?"
options:
- Windows
- macOS
- Linux
- Android
- iOS/iPadOS
- Other
multiple: false
validations:
required: true
- type: dropdown
id: browser
attributes:
label: "Browser"
description: "Which browser are you using?"
options:
- Chrome/Edge/Chromium
- Kiwi Browser
- Safari
- Other
multiple: false
validations:
required: true
- type: textarea
id: suggestion
attributes:
label: "Suggestion"
description: "What do you want to suggest?"
validations:
required: true

View File

@ -1,21 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
title: "[Bug] ..."
labels: bug
assignees: ''
---
**Platform**
- Device: Phone, Laptop, Desktop, TV...
- OS: Windows, Android, iOS...
- Browser: Chrome, Safari, Kiwi...
- Browser Version:
- Better xCloud Version:
**Describe the bug**
...
**Screenshots/Videos**
If applicable, add screenshots/videos to help explain your problem.

View File

@ -1,16 +0,0 @@
---
name: Feature request
about: Suggest an idea for this project
title: "[Feature] ..."
labels: enhancement
assignees: ''
---
**I'm using:**
- Device:
- OS:
- Browser:
**I want to suggest this feature:**
...

View File

@ -1,6 +1,7 @@
MIT License
Copyright (c) 2023 redphx
Copyright (c) 2020 Phosphor Icons
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@ -19,3 +20,5 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
---

306
README.md
View File

@ -1,10 +1,17 @@
# Better xCloud
Improve [Xbox Cloud Gaming (xCloud)](https://www.xbox.com/play/) experience on web browser.
The main target of this script is mobile users, but it should work great on desktop too.
Improve Xbox Cloud Gaming (xCloud) experience on [xbox.com/play](https://www.xbox.com/play). It also allows you to use Remote Play on the xCloud website.
Supported platforms:
- Windows, macOS, Linux
- Android, Android TV
> [!TIP]
> The Android app is in development at [redphx/better-xcloud-android](https://github.com/redphx/better-xcloud-android)
> [!IMPORTANT]
> I don't accept pull requests at the moment (except PR for custom touch controls)
**Supported platforms:**
- Windows
- macOS
- Linux, SteamOS (including Steam Deck)
- Android, Android TV (including Meta Quest VR Headsets)
- iOS, iPadOS
This script makes me spend more time with xCloud, and I hope the same thing happens to you.
@ -14,290 +21,65 @@ If you like this project please give it a 🌟. Thank you 🙏.
[![Total downloads](https://img.shields.io/github/downloads/redphx/better-xcloud/total?color=%23e15f2c)](https://github.com/redphx/better-xcloud/releases)
[![Total stars](https://img.shields.io/github/stars/redphx/better-xcloud?color=%23cca400)](https://github.com/redphx/better-xcloud/stargazers)
## Full documentations
- For the full details please visit: https://better-xcloud.github.io
- [Demo video](https://youtu.be/hyp69Jrb2sQ)
⚠️ Please DO NOT report **Better xCloud**'s bugs on [/r/xcloud subreddit](https://reddit.com/r/xcloud/). Report bugs in [Issues](https://github.com/redphx/better-xcloud/issues) or [Telegram channel](https://t.me/betterxcloud) instead.
## Table of Contents
- [**How to install**](#how-to-install)
- [**Compatibility**](#compatibility)
- [**Features**](#features)
- [**Stream stats**](#stream-stats)
- [**Capture screenshot**](#capture-screenshot)
- [**FAQ**](#faq)
- [**Translators**](#translators)
- [**Donation**](#donation)
- [**Acknowledgements**](#acknowledgements)
- [**Disclaimers**](#disclaimers)
## How to install
1. Install an userscript extension:
- **Safari**: Install [Userscripts extension](https://apps.apple.com/us/app/userscripts/id1463298887). Check [this page](https://github.com/redphx/better-xcloud/wiki/Using-with-Safari) before using.
- **All other browsers**: Install [Tampermonkey extension](https://www.tampermonkey.net/).
3. Install **Better xCloud**:
- [Stable version](https://github.com/redphx/better-xcloud/releases/latest/download/better-xcloud.user.js)
<!-- - [Dev version](https://github.com/redphx/better-xcloud/raw/main/better-xcloud.user.js)-->
I only distribute **Better xCloud** on GitHub, *DO NOT* download it on other websites or from unknown sources.
4. Refresh [xCloud web page](https://www.xbox.com/play/).
5. Click on the new "SERVER NAME" button next to your profile picture to adjust settings.
To update manually, just install the script again (you won't lose your settings).
⚠️⚠️⚠️ If you're using Kiwi Browser on Android, make sure to follow the steps correctly and install the script with Tampermonkey (not installing it as an extension), or else it won't work.
## Compatibility
- 👍 = best choice, all features work as intended
- ✅ = confirmed to be working, might miss some features
- ❌ = not supported (mostly because of lacking Userscript/extension support)
- = unavailable
- 🗒️ = see custom notes
| | Windows/Linux | macOS | Android/Android TV | iOS |
|-----------------------------------------|:-----------------|:-----------------|:-------------------|:-----------------|
| Chrome/Edge/Chromium variants | 👍 | 👍 | ❌ | ❌ |
| Firefox | ✅ | ✅ | 🗒️<sup>(1)</sup> | ❌ |
| Safari | | ✅<sup>(2)</sup> | | ✅<sup>(3)</sup> |
| [Kiwi Browser](https://kiwibrowser.com) | | | 👍 | |
Don't see your browser in the table? If it supports Tampermonkey/Userscript then the answer is likely **"YES"**.
<sup>1</sup> Follow [this guide](https://support.mozilla.org/en-US/kb/find-and-install-add-ons-firefox-android) to install Tampermonkey on Firefox Android. Its Gamepad API doesn't work properly so it might not recognize your controller.
<sup>2, 3</sup> Requires [Userscripts app](https://apps.apple.com/us/app/userscripts/id1463298887) (free & open-source). Check [this page](https://github.com/redphx/better-xcloud/wiki/Using-with-Safari) before using.
---
- **Kiwi Browser** is the best choice on Android. All features work, it means you can get 1080p stream + high-quality codec profile (the best possible quality).
- **Better xCloud** also works on Android TV, but you'll have to sideload the browser APK and need a Bluetooth mouse if you want to interact with the Settings.
Visit [this page](https://better-xcloud.github.io/browsers) to know how to install Better xCloud on your device.
## Features
<img width="400" alt="Settings UI" src="https://github.com/redphx/better-xcloud/assets/96280/8baddcfa-b528-4ba7-9392-7b5fe60cea11">
<img width="400" alt="Settings UI" src="https://github.com/redphx/better-xcloud/assets/96280/4bec2d62-31df-499c-9aad-2485626b6925">
<br>
<img width="400" alt="Remote Play dialog" src="https://github.com/redphx/better-xcloud/assets/96280/daf7f698-a228-4f9c-8f23-9669e061a64c">
<br>
<img width="600" alt="Stream HUD" src="https://github.com/redphx/better-xcloud/assets/96280/51bdb96c-79ab-402f-902a-a9e6229973b2">
<br>
<img width="600" alt="Stream settings" src="https://github.com/redphx/better-xcloud/assets/96280/18ed4598-4eca-4626-9434-5f74266b00e7">
<img width="600" alt="Stream settings" src="https://github.com/redphx/better-xcloud/assets/96280/ed513cb3-6e6c-4e8e-9e06-c62e71e41c90">
<br>
<img width="600" alt="Remapper" src="https://github.com/redphx/better-xcloud/assets/96280/f2e2bc51-f673-4b24-b127-c7169b86462b">
&nbsp;
**Demo video:** [https://youtu.be/oDr5Eddp55E ](https://youtu.be/AYb-EUcz72U)
- **🔥 Improve visual quality of the stream**
- **🔥 Totally free and open-source**
- **🔥 Allow playing with [Mouse & Keyboard](https://better-xcloud.github.io/mouse-and-keyboard)**
- **🔥 Enable [Remote Play](https://better-xcloud.github.io/remote-play) support**
> 1080p resolution and can stream Xbox 360 games.
- **🔥 [Improve visual quality](https://better-xcloud.github.io/ingame-features/#improve-streams-clarity) of the stream**
> Similar to (but not as good as) the "Clarity Boost" of xCloud on Edge browser. [Demo video](https://youtu.be/ZhW2choAHUs).
- **🔥 Show stream stats**
> Check [Stream stats section](#stream-stats) for more info.
- **🔥 Capture screenshot**
> Exclusive to **Better xCloud**. Check the [**Capture screenshot** section](#capture-screenshot) for more info.
- **🔥 Hold the "Quit game" button for one second to refresh the stream**
> Sometimes you can fix the bad connection to the stream simply by refreshing the page.
> Useful on mobile where the pull-to-refresh feature doesn't work while playing.
- **🔥 Touch controller**
- **🔥 Show [Stream stats](https://better-xcloud.github.io/stream-stats)**
- **🔥 [Screenshot capture](https://better-xcloud.github.io/screenshot-capture)**
- **🔥 [Touch controller](https://better-xcloud.github.io/features/#touch-controller)**
> Enable touch controller support for all games.
### Server
- **Set the region of streaming server**
> Connect to another server instead of the default one.
> It's not using VPN.
> ["Can I get banned for using this?"](#faq)
- **Preferred game's language**
> If the game doesn't support this language, it will use the same language as xCloud's website.
- **Prefer IPv6 server**
> Might reduce latency.
### Stream
- **Set target resolution**
> By default you only get 1080p stream when playing on desktop.
> This feature can give you 1080p stream even on mobile, without having to change User-Agent.
- **Change visual quality**
> Increase/decrease the quality of the stream to your liking. Only works in Chrome/Edge/Kiwi...
> Comparison video with the setting ON & OFF: https://youtu.be/-9PuBJJSgR4
- **Disable bandwidth checking**
> xCloud won't warn about slow connection speed.
- **Enable volume control feature**
> Allow increasing stream's volume up to 600%
> ⚠️ Disable this setting if you experience slowdown, choppy/muted stream
- **Enable microphone on game launch**
> Automatically enable the mic when starting to play a game.
- **Hide mouse cursor on idle**
> Hide the mouse cursor after 3 seconds of not moving.
### 🔥 Touch controller
- **Availability**
> Only for devices with touch support (Android/iOS/iPadOS/...). Using "Desktop mode" in mobile browsers also disables this feature.
> - **Default**: nothing change.
> - **Off**: stop the touch controller from showing when touching the screen. Useful when you play on a device with a built-in controller like Logitech G Cloud, Steam Deck, etc.
> - **All games**: enable touch controller support for all games. Games with custom layout won't be affected.
> Double-tap anywhere at the bottom of the screen to show/hide the controller. Useful when you're viewing cutscenes.
> &nbsp;
> ![toggle-touch-controller](https://github.com/redphx/better-xcloud/assets/96280/8b9c7091-529a-45ae-8b45-73e61531ecc8)
- **Button styles**
> - Default
> - Muted
> - All white (only for standard/default controller)
> &nbsp;
> <img width="400" alt="Button styles" src="https://github.com/redphx/better-xcloud/assets/96280/2bfef2b3-6712-4924-b067-c2312f8c8062">
### Loading screen
- **Show game art**
> Replace the black background with game art if it's available.
- **Show the estimated wait time**
> The time is estimated by the server.
> It's not 100% correct: you might get in the game sooner or later.
> Check [#51](https://github.com/redphx/better-xcloud/issues/51) for more info.
- **Show/hide the rocket animation**
> Always show/Hide when queuing/Always hide.
> Hide this animation might save some battery life while queuing.
<img height="300" alt="Loading screen" src="https://github.com/redphx/better-xcloud/assets/96280/46074b14-1abb-466d-a859-d46ad4dac2fd">
### UI
- **Simplify Stream's menu**
> Hide the labels of the menu buttons.
- **Skip Xbox splash video**
> Save 3 seconds.
- **Hide System menu's icon**
> You can still click on it, but it doesn't block the screen anymore.
- **Reduce UI animations**
> Disable `transition` CSS property in some elements. The smooth scrolling cannot be disabled.
### Other
- **Disable social features**
> Features like friends, chat... Disable these will make the page load faster.
- **Disable xCloud analytics**
> The analytics contains statistics of your streaming session, so I'd recommend allowing analytics to help Xbox improve xCloud's experience in the future.
### In-game settings
- **Volume control**
> Increase stream's volume up to 600%
> Can be disabled in the Main Settings
- **🔥 Improve stream's clarity**
> Similar to (but not as good as) the "Clarity Boost" of xCloud on Edge browser. [Demo video](https://youtu.be/ZhW2choAHUs).
> Also known as poor man's "Clarity Boost".
> Affects the stream's performance, uses more battery, and may causes frames to drop (especially on lower-end devices).
> Works with Chrome/Chromium browsers.
> Doesn't work with Safari.
> &nbsp;
> ![clarity](https://github.com/redphx/better-xcloud/assets/96280/ed63bbb0-fcbf-43e2-8e51-ac2733e697b8)
> *(click to enlarge)*
- **Change video's ratio**
> Useful when you don't have a 16:9 screen
- **Adjust video filters**
> Brightness/Contrast/Saturation.
> ⚠️ These features don't work when xCloud's "Clarity Boost" feature is ON ([#64](https://github.com/redphx/better-xcloud/issues/64)).
- **Display stream's statuses**
> Region/Server/Codecs/Resolution...
> Current playtime of the session.
> Current battery level. Not working on [some browsers](https://caniuse.com/battery-status).
> Estimated total data sent/received.
### Advanced features
- **Change User-Agent**
> Useful when you're using unsupported browsers.
> This setting only affects xCloud, and it doesn't change browser's global User-Agent.
> 📝 If you get 404 error after using this feature, try refreshing the page a few times. See [#34](https://github.com/redphx/better-xcloud/issues/34).
- **Hide footer and other UI elements**
<sup>(\*)</sup> By default (for compatibility reasons) xCloud only uses high quality codec profile when you use Tizen TV or Chrome/Edge/Chromium browser on Chrome/MacOS. Enable this setting will give you the best experience no matter what platform & browser you're on.
## Stream stats
![stats](https://github.com/redphx/better-xcloud/assets/96280/736548db-316d-4bb3-a0f8-467766ae810b)
<img width="500" alt="Stream stats" src="https://github.com/redphx/better-xcloud/assets/96280/142625ea-20ab-4392-a111-0c5bc08bae09">
- While playing > `...` > `Stream Stats`.
- Double-click on the stats bar to show the Settings dialog.
- This bar is updated every second.
- **Quick glance** feature: only show the stats bar when the System menu is expanded. The 👀 emoji at the beginning indicates that the stats bar is in the quick glance mode.
- ⚠️ Using **Better xCloud** or showing the stats bar also affects the performance of the stream.
| Abbr. | Full name | Explain |
|------:|:-------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------|
| PING | Ping | The number of seconds it takes for data to be sent from your device to the server and back over (the correct term is "Round Trip Time") |
| FPS | Frames per Seconds | The number of decoded frames in the last second of the stream (may not be the same as the FPS of the game) |
| DT | Decode Time | The average time it took to decode one frame in the last second (bugged on Android [#26](https://github.com/redphx/better-xcloud/issues/26)) |
| BR | Bitrate | The amount of data the server sent to your device in the last second |
| PL | Packets Lost | The total number of packets lost |
| FL | Frames Lost | The total number of frames dropped prior to decode or dropped because the frame missed its display deadline |
This info is provided by WebRTC API. You can use browser's built-in tool to see more info:
- Chrome/Edge/Chromium variants: `chrome://webrtc-internals`
- Firefox: `about:webrtc`
Colors:
- Red = Bad
- Yellow = Okay
- Green = Good
- White = Great
⚠️ Having this info on all the time will drain the battery faster, so I'd recommend only using it when having network problems.
## Capture screenshot
- This feature is only available in **Better xCloud**.
- Works on both desktop & mobile, but it was designed for mobile users.
- It's client-side only.
- It captures the current frame of the stream and saves it to a file. That means you won't get the raw quality like when you play on a console, but it's still better than using the built-in screenshot feature on your phone.
- Screenshot's resolution & quality depend on the quality of the stream at the moment.
- Screenshot doesn't include touch UI, notification bar... only the gameplay.
- There might be a slight delay.
- ⚠️ It's not possible to map the Share/Screenshot button on your controller to this feature.
### How to capture screenshot
1. Enable this feature in the Settings.
2. Play a game.
3. Tap once at the bottom left/right (depending on your setting) to show the Screenshot button.
4. Tap on that button to capture screenshot.
5. Screenshot will be saved by the browser.
6. You can double-tap that corner to capture screenshot.
![screenshot](https://github.com/redphx/better-xcloud/assets/96280/b277193e-df94-4d72-b75c-3f728c984974)
## FAQ
1. **Will I get banned for using this?**
I think it's very unlikely that you'll get banned for using this. Most of the features only affect client-side, except for switching region of streaming server (you'll connect to another server instead of the default one). If you want to be safe just avoid using that. As always, use it as your own risk.
2. **Why is it an Userscript and not an extension?**
It's because not many browsers on Android support installing extensions (and not all extensions can be installed).
3. **Why doesn't the xCloud website implement *this* or *that* feature from Better xCloud?**
Think of this project as an unofficial beta version of xCloud.
- **Better xCloud** doesn't have to worry about the compatibility much: if it doesn't work on this browser, it can just suggest you switch to another one. xCloud can't do the same.
- On the xCloud's side, they have a lot more users and devices to support, so it's more difficult for them to implement a new feature.
- Also, it's not easy to explain some of the features of **Better xCloud** to normal xCloud users.
4. **Can I use this with the Xbox Android app?**
No, you can't. You'll have to modify the app.
5. **Will it be able to enable the "Clarity Boost" feature on non-Edge browsers?**
~~No. The "Clarity Boost" feature uses an exclusive API (`Video.msVideoProcessing`) that's only available on Edge browser for desktop at the moment.~~
Fake news! This feature has been implemented in **Better xCloud** since version 1.12, but the original "Clarity Boost" still perform better.
7. **Will it be able to request a lower FPS or increase the maximum bitrate (15Mbps) of the stream?**
Sorry, no. The server decides all these settings.
8. **What's the meaning behind the name "Better xCloud"?**
It's a reference to an Userscript called "better360" that I created many years ago. I regret not choosing the name "xCloud Enhancement Suite", or XES for short.
## Translators
- **Chinese (Simplified)**: [@nyavana](https://github.com/nyavana)
- **German**: [@KingNothing81](https://github.com/KingNothing81)
- **Korean**: [@rightones](https://github.com/rightones)
- **Portuguese (Brazilian)**: [@ricardo404](https://github.com/ricardo404), [@Haisom](https://github.com/Haisom)
- **Polish**: [@aleksishere](https://github.com/aleksishere)
- **Russian**: [anpom6](https://crowdin.com/profile/anpom6)
- **Spanish**: [@PabloSebas](https://github.com/PabloSebas)
- **Turkish**: [@transbebek](https://github.com/transbebek)
- **Vietnamese**: [@redphx](https://github.com/redphx)
Visit [here](https://crowdin.com/project/better-xcloud) if you want to translate **Better xCloud** to more languages.
Use [this post](https://github.com/redphx/better-xcloud/discussions/131) for discussion.
- [And more...](https://better-xcloud.github.io/features/)
## Donation
I'm doing this for fun, so you don't have to donate anything. You're already supporting me by using this script. Save that money toward your Xbox Game Pass Ultimate subscription 😄.
But if you still really want to donate, I have a [Ko-fi page](https://ko-fi.com/redphx). Thank you.
If you think this project is useful and want to support future developments, please consider making a donate via [my Ko-fi page](https://ko-fi.com/redphx).
Or you can give this project a star, that's also helpful.
Thank you.
## Translation
Help translating **Better xCloud** to another languagues using [Crowdin](https://crowdin.com/project/better-xcloud).
Use [this post](https://github.com/redphx/better-xcloud/discussions/131) for discussion.
## Acknowledgements
- The mouse controlling feature is heavily inspired by the "Mouse spinning" feature in [Yuzu emulator](https://github.com/yuzu-emu/yuzu-mainline)
- [n-thumann/xbox-cloud-server-selector](https://github.com/n-thumann/xbox-cloud-server-selector) for the idea of IPv6 feature
- Icons by [Phosphor Icons](https://phosphoricons.com)
- [PromptFont](https://shinmera.com/promptfont) by Yukari "Shinmera" Hafner
## Disclaimers
- Use as it your own risk.
- Use it at your own risk.
- This project is not affiliated with Xbox in any way. All Xbox logos/icons/trademarks are copyright of their respective owners.

View File

@ -1,5 +1,5 @@
// ==UserScript==
// @name Better xCloud
// @namespace https://github.com/redphx
// @version 1.18
// @version 3.5.3
// ==/UserScript==

File diff suppressed because it is too large Load Diff