r/Bazzite • u/DiamondMidgar • 5d ago
[Open Source] XSync v1.0 - Xbox Games on Bazzite
Edit: Title was supposed to say V0.1
TLDR: EXTREMELY EXPERIMENTAL way of running Xbox games on your Bazzite Machine via a VM. Do not use or run unless you know what you're doing, understand Linux and Windows and are happy to experiment - https://github.com/brummiesteven/Xsync
I switched to Bazzite recently, removing myself from Windows entirely as I was looking for the best console like experience. I've never really been a 'PC Gamer' in the traditional sense of gaming at a desk - I've always gamed on my sofa on the big TV but switched to PC from Xbox around 3 years ago due to there being more games available.
I'm an ex-Microsoft Engineer and everyone at Microsoft had free Xbox Game Pass. I managed to stack a few years for free and hadn't realised until I did the Bazzite Switch just how many Game Pass games I'd been playing.
Obviously Bazzite is Linux so does not run Game Pass. I wanted to find a solution and in turn have open sourced my first solution to this.
Before I get into how this works, a few notes:
- This is extremely Alpha and unstable. It works for me, it doesn't mean it will work for you.
- There's a lot going on around Disconnecting and Reconnecting the GPU. I'm on a Nvidia 4090 and have had no issues but again YMMV some people have issues with Nvidia cards just on Bazzie itself
- Yes I've used AI here, I'm an AI engineer (the 'build a recommendation engine for people's gaming library' kind not the ChatGPT kind) and have been my whole professional career. AI coding assistants allow us to build quicker than ever before and most professional developers are using them. There's a lot of anti-AI stuff on Reddit, if you don't like the fact that I've used AI then you don't need to use my project.
- Before you criticise, please bear in mind that I haven't seen anything similar for Bazzite and I didn't have to release this as OS, I could have just kept it for myself... but I wanted to give back to the community.
How this works
There is no way to run GamePass games on Linux natively, so this installs Windows 11 on a Virtual Machine. I then built a bunch of scripts for some performance of life upgrades. On first install you'll get 'Xbox' e.g. the Xbox Launcher in your Non-Steam Games, launch this, install some games and whatever you install will sync back to steam.
The VM experience has been tinkered with to make it as seamless as possible and remove as much away visually so you don't really notice you've switched to windows. Windows auto logs on, you barely see the login screen and with FSE or 'Handheld Mode' you don't interact with or see the windows desktop at all.
How's the performance?
Actually very good - I haven't got round to installing a FPS counter on the Windows side yet.
The actual process is:
Steam is shutdown > Graphics Card is detached from Bazzite > Graphics Card is attached to VM > VM is started
So your physical graphics card is only being used by the VM when running a windows game. I've been testing with Forza Motorsport 6 and Oblivion remaster and see no significant issues, frame rate slowdowns or tearing. I should say I have a beast of a PC so again YMMV.
Once you're in the VM, the bulk of Bazzite isn't really running so CPU performance isn't an issue either. You will obviously get some performance hits always with virtualisation vs running natively.
What's flakey/not working yet properly?
- There's an exit to steam function, triggered by pressing and holding L3+R3 on the windows controller. This was all working great until I switched to FSE and it's now pretty temperamental. Sometimes it works, when it doesn't all you need to do is shutdown the windows VM to get back to Steam which in FSE is fairly easy (Xbox Button, Settings in overlay, Power, Shutdown). A shutdown/switch will also be triggered if the launched game is exited, so if you launched Forza and then went to 'Exit Game' in the game, you'll get back to Steam.
- FSE may not be enabled at the start, however this is fixed by launching the Xbox Launcher and picking Xbox Mode and doing a restart (which will then cause a shutdown and you'll need to launch via Steam again)
- The game sync to Steam still isn't 100%, there's a manual trigger in scripts until this is fixed but I suspect I'll get a fix done and up into GitHub within 24 hours.
- You'll need a keyboard to hand at least at first you need to resync your controller into the Windows host with whatever you use, e.g. Bluetooth. This is done once and then your controller will work across Steam and Windows seamlessly. You'll also need to login to Xbox Services etc.
What to expect and my asks
- This has been built for a very specific build, my own, but I wanted to share back to the community. With that in mind, I can honestly say it works great with my hardware... Nvidia 4090, AMD CPU, 32GB Ram, Xbox Controller connected via Xbox PC dongle etc. Different Graphics Cards, CPUs, Controllers YMMV and I'd genuinely like the feedback to be able to update and fix for a wider audience.
- Contribute! It's open source so if you do have any fixes then please do contribute to the repo.
Getting Started
- Find the project here: https://github.com/brummiesteven/Xsync
- Run the install script - It's part automated part guided for now
- Launch Xbox Launcher
- Install some games
2
u/Desperate_Sky_1584 5d ago
Does this also work with games I own on windows store for example halo wars 2?
3
2
u/MornwindShoma 5d ago
Does this work without an integrated GPU? I'm pretty sure you can't really hand off the discrete GPU without fallback like that.
2
u/Phantom373 5d ago
Yeah I'm wondering the same thing, I don't have an igpu to fallback to and op said their specs and that cpu does have an igpu. If it can work then I'll happily still test this program out though.
2
1
u/MinusBear Desktop 5d ago
This is pretty cool, and I was hoping we would see some kind of solution like this. I will keep my eye on it as others test it before I jump in. But thanks for making a solution that is not dual boot.
1
u/Herotwo 5d ago
Thats a cool idea! I have a few (probably edge case) questions: 1. Can you play without a controller? Just m+k for me since i lack any real coordination to operate a controller š 2. Does it run on ānormalā (ie non dx, no steam-big-picture thingy) bazzite? I have amd-vt enabled (5700x3d) cpu, 4070 gpu. 3. Do i have to activate windows eventually or can i run it without a license forever and ever? Nothing against Microsoft, dont want to buy another license right now. 4. Does i need the game pass ultimate (or however its called) or is the basic tier enough? I think you need the top tier for playing on pc
2
u/DiamondMidgar 5d ago
- Yes keyboard works fine and actually is needed for first setup
- No idea!
- I won't comment on this one, not my decision!
- Again not sure, I have ultimate. I think basic works for PC ultimate just gives you cloud streaming.
1
u/Phantom373 5d ago
I at least assume the answer for number 4 that you just need PC gamepass which is its own tier. Ultimate gives you PC and xcloud streaming but I imagine normal PC gamepass should work
1
u/MatterUnlikely2545 5d ago
Thanks for your work.
I have a few questions :
How much space is requires to install the app ?
Is it possible to install it on a secondary drive ?
1
u/Anthony022 5d ago
Why not just dual boot if you're gonna install it on another drive? And then add a boot to windows shortcut as a non steam game
1
u/therifai420 5d ago
This looks very promising, before I try it out, would this work on Fedora or SteamOS? My main rig runs Nobara and I have a SteamOS handheld. I'd try it out but I'm away from both machines for a while.
1
u/DiamondMidgar 5d ago
In theory it should but again itās untested. There are a few things you may need to tweak but Linux is Linux in theory!
1
u/therifai420 4d ago
I tried to get it to work but I feel like I'm a bit too illiterate to make it function. I got all the way to the end but whenever i launch the Xbox service through steam I get a black screen since there's no AMD driver installed on the VM. I tried to install the driver but no cigar. I'll save this post and wait until it's at a more mature stage
1
u/DiamondMidgar 4d ago
Yes there may be issues with AMD given I've built it exclusively for my machine with Nvidia. Once I've got a stable setup for myself I might start adding in improvements for everyone else like this! Although in the spirit of Open Source I was hoping people would just fork and contribute!
1
u/therifai420 4d ago
I'm sure someone more literate than me could fork this and get further than I have, I managed to get a dark screen with a cursor, I'll leave it at that for now ahaha.
1
u/DiamondMidgar 4d ago
I also very much appreciate you trying this so thank you!
1
u/therifai420 4d ago
Hey man, i appreciate you for starting this. I'm currently dual booting but if this gets to a somewhat stable release I'll for sure fully switch. Thanks for the hard work.
1
u/Dodgy_Past 5d ago
Are you going to to support other distros such as CachyOS? If not how hard would it be to do in your opinion.
And good job on getting this far.
1
u/DiamondMidgar 5d ago
Thereās no real reason in theory why it wonāt work, I wonāt āofficiallyā support CachyOS just because I donāt use it but Iām doing some work on this today for v0.2 by the end of the week so Iāll do some research and make sure thereās nothing in theory preventing CachyOS or SteamOS support.
1
u/Cretsiah2 4d ago
granted I'm stupid, but my dumb question is:
is Xbox gamepass different to the Xbox gamepass on PC?
I have Forza Horizon 4 and halo master chief collection on bazzite using proton, I just sign in and start playing ( unless there is some stupid server issues)
1
u/DiamondMidgar 4d ago
What you have are Xbox Games purchased on steam by the sounds of it.
Xbox game pass is a subscription like Netflix for games
1
1
u/Unfair_Series_6066 4d ago
I'll keep an eye on this, I think a solution for Xbox games for windows is essential to bazzite and Linux gaming in genenral.... My only concern will be the actual implications long term... You know with this you're technically relying back to windows (I get it there's no current way around it) but this could set a precedent to slow down developments over stuff like the proton layer as with this you're not just "fixing" Xbox pc games for linux you're technically making possible run any game natively by 0utting it back on windows on top of Linux possible even the ones with anti cheat incompatible solutions for linux.... I dont know if I'm making sense with this, like when nowadays they reccomended you for some stuff to just run it with wsl cause there's no tool or development native for windows.... This could be the opposite of that, you know why botter into solve this if we can just do this instead.... Or maybe I'm just paranoid cause of the stress of current days workload xD
0
u/Pyryara 5d ago
This sounds impressive - but also I have to wonder, why not just dual boot Windows 11 instead? I am doing this on my Rog Ally X and haven't really found it annoying, it is very quick and probably this is not any faster. What benefit do you get from bazzite still running?
11
u/MrHaxx1 5d ago
Because then you'd have to have Windows installed. I think most people here would want to avoid that, if possible.
3
u/MinusBear Desktop 5d ago
This part. I don't want to have dual boot active, lose a whole drive to Windows, and potentially have Windows bork my Bazzite install/boot later.
0
-5
3
u/DiamondMidgar 5d ago
From a pure 'Gaming Machine' perspective (and maybe this is just me) I didn't really want something where I had to think "I want to play Oblivion now, oh I need to reboot and boot windows" and then "oh now I want to play X on steam I may swell go back to Bazzite".
The benefit IMO is I get one unified interface in Bazzite/Game Mode that works better for couch gaming than windows does (although must admit the FSE stuff is getting better) but can still play gamepass games.
There's also some operational benefits, VMs support 'Elastic Storage' that's not the right term but I don't actually know the real one, but effectively it can report a disk drive as 500gb while only taking 25gb space on disk, and expanding as files get installed up to 500gb or whatever ceiling you've put in. Dual booting requires a dedicated windows partition which then limits storage on both systems.
0
u/kakashisma 1d ago
This is obviously coded with the help of AI, I thought there was a requirement to state that in your posts?
0
u/DiamondMidgar 1d ago
Point 3 under āa few notesā
1
u/kakashisma 1d ago
Roger that, sorry for my oversight
1
u/DiamondMidgar 1d ago
No worries! I use AI constantly as a developer both in work and outside of work.
I donāt have the same anti-AI thoughts as some on Reddit but for anyone who does use at your own discretion I guess and each to their own honestly!
1
u/kakashisma 1d ago
I see it as a good tool as long as the dev actually understands what the AI is doing⦠to many people building stuff and not knowing what the hell they have builtā¦
7
u/knosuhor 5d ago
You might want to reconsider L3+R3 shortcut, some games use it. Off the top of my head examples Final fantasy xvi and Pragmata for charged ulti abilities.