Hacker News new | past | comments | ask | show | jobs | submit login
Looking into the Stadia Controller Bluetooth Mode Website (garyodernichts.blogspot.com)
168 points by rcarmo 8 months ago | hide | past | favorite | 76 comments



Stadia was wild.

I got the Cyberpunk 2077 bundle which came with the game, controller and a chrome cast.

Gaming with a little HDMI WIFI puck and a WIFI controller felt very “cyberpunk” itself. Like buying some new tech to hack into the mainframe.

The Stadia version of Cyberpunk 2077 was basically the PC version which was far less glitchy than consoles.

Years later they issued a full refund for the bundle and unlocked the controller.

The controller upgrade process was something I never imagined a browser could do.

Thank you OP for reverse engineering and preserving things!

And thank you Google for pushing the cutting edge. Crazy to think how much went into Stadia only to be abandoned.


As always, there was (and still is) so much technological marvel inside Google and so many highly talented people working inside Google that I felt sorry that these marvel never gets to see the light of day and efforts by these folks ultimately wasted by inept management and terrible marketing.

Years ago Google was the coolest place to work at because of the tech and the people, and Google did so many things that everyone could find the most interesting thing to them. Nowadays the list of cool companies is a lot longer and more diversified. And switching companies is a bit more friction than switching teams. I sometimes wonder if more cool tech could emerge faster if there was a new Big Tech with old Google values, with better management and a new coolness.


I don’t think you can have a big company that behaves like a small company no matter how much everyone from employees to owners of big companies fondly cherish the idea.


As a whole big companies don't. In my experience, unless the company has a skunkworks or a guerrilla team on something emergent you aren't going to find the culture that fosters innovative things with commitment. Problem is at some point (usually when something viable comes out) those teams get cannibalized or subsumed by management.


Even then I would say that such teams still have a different feel from a true startup.


> terrible marketing

Remember when they said their product will follow in the historic tradition of E.T. for Atari 2600, the Power Glove for NES, and the Sega Dreamcast? I guess they were more right than they knew.

Google is a laughingstock. I can't imagine working there if you have any pride or passion for your work.

https://www.gamingbible.com/news/games-gamers-recall-when-go...


The VGHF helped with setting up the display for that event. Frank Cifaldi, founder of the VGHF, has explained the sordid tale of that display on some podcasts. Basically, the VGHF was hired to make a display. They provided a draft version. Google's people came back and were adamant that the display had to have those failed products as well. The VGHF repeatedly warned Google of the horrible optics of showing those products. Google went ahead.

To this day, Frank does not know why Google wanted these products. My guess? Those products had great SEO on Google Search and YouTube. Lots of people watched videos about them. The managerial class at Google was uninterested by the fact those products had tons of searches and views because they sucked!


If Stadia was strictly a subscription service, I bet it would still exist. People have already forgotten, but you had to buy the games on the service. On top of that there was a subscription to increase your stream's resolution. The pricing was already too complicated and the thing was brand new!

With customers already aware of the fickle nature of Google, nobody wanted to buy something that only gave you access to a game on Google's servers. It's actually surprising that Google reimbursed everyone. Nobody expected that, and nobody bought anything on the service because no one expected Google to reimburse when they inevitably shut it down.


This.

I also bought the Cyberpunk bundle, which was great bang for the buck. I was also quite impressed by how well the Stadia tech worked.

However, due to Google's reputation I refused to spend any more money on the service, and would not recommend it to anyone, as it would all be wasted once they inevitably would shut Stadia down.

That said, I was pleasantly surprised by how well they handled the shutdown. If I'd known they'd refund people I would have been more willing to spend more money on their service.

I wonder why nobody at Google seems to realize or care that their poor track record is hurting their bottom line?


> wonder why nobody at Google seems to realize or care that their poor track record is hurting their bottom line?

If I had to guess, these things are incredibly tiny compared to their main source of income (ads). As a result, atleast from a monetary perspective, it would basically be a negligible effect on their bottom line.

From a PR perspective, it might have a slightly higher impact as they gain a reputation for shutting stuff down, but with ads and the like being their main source of revenue, this doesnt necessarily have a massive impact


> Stadia was strictly a subscription service

I don’t know. Xbox Pass or whatever it’s called, you know, it’s the same thing as Stadia, better in every way, people pay for it. But who cares. At the end of the day it makes no sense to stream FPSes.

If they focused their product development on features for innovative games exclusively practicable with streaming, they’d still be around. Instead they made VP8 accelerators for YouTube, and called a field trial for libwebrtc some sort of time-traveling latency compensation method.

I mean they were demoing ControlNet with GANs (https://blog.research.google/2020/11/using-gans-to-create-fa...) 3 years ago, way before the current AI craze, and seemingly no one GAF. It was very cool but all their product development didn’t make sense in the context of “games that are only practicable with streaming.” Usually that means “you’re an indie developer with $2 and you want to make great assets and physics driven networked multiplayer” - two things you can actually uniquely achieve with streaming - but Google was fundamentally disinterested in that. They were so focused on Assassin's Creed, because that’s a game that the PMs were fond of, a multi million dollar production which makes no sense to stream, and some indie platformers which god bless them, made more sense to sell as Humble Bundles than streams. It wasn’t a lack of imagination, they had imagination, I think they just actively rejected the folks who are trying to make things for $2, that’s the real thing that is incompatible with Google’s ethos and it’s why Google failed.


The Stadia tech was so much further ahead of others, it's such a waste it didn't get time to flourish. They could have really changed the paradigm if it had better management.

One example of an intriguing idea I heard discussed on a podcast - imagine you're watching a streamer on YouTube and think the game is cool. If it were integrated with Stadia then with one click, you could be playing the game! In browser! Maybe even playing with the streamer (for multiplayer)!

So much potential wasted...I can only shake my head.


This idea was actually in the launch keynote! Along with a bunch of other cool ideas that never shipped.

Maybe someday someone will explain what went wrong.

My guess is that competitors were quicker to market than they expected, and had unique advantages (Microsoft owns windows and Xbox, nvidia owns … nvidia).


It's a cultural problem. Google fails to follow through after the initial shiny has worn off. In Google, you are rewarded for shipping not maintaining. That's why they have a gorillion messaging apps instead of one really good one. They weren't willing to commit the engineering time to implement those features because the interest wasn't there.


Then again, Stadia's streaming performance and graphical capabilities were subpar compared to established competing services like GeForce Now, Xcloud, and ShadowPC. If it were better it might have been worth it.


On which metric was Stadia inferior to xcloud?? GFN, I could understand, but Stadia would smoke XCloud


As I recall, my gripe with Stadia was the limited graphical capabilities. I don't recall if the graphics settings were locked but I remember only being able to play games on medium settings and not being able to achieve any better performance than a GTX 1080.

Meanwhile, your XCloud stream is hosted by an equivalent of an Xbox Series X, which while a console-level experience, the games were shinier and prettier than Stadia.

And otherwise I've found their streaming quality, performance, and latency, to be about equal (not the best) although XCloud continues to improve to this day.


Latency, total DRM, games completely disappear on whim of copyright owner, no modding.

Nope, I dont want this potential.

Good riddance.


I wonder if it's some kind of selection bias - techies all praise how good it was but I can imagine that the experience for the general public with the typical combo of overloaded Wi-Fi backed by shitty ISP-provided router was much different and this may have contributed to its downfall.


> The controller upgrade process was something I never imagined a browser could do.

There's some (minor) controversy around this. WebUSB/WebHID are web standards that Google has pushed, and essentially gives a website similar access to USB devices as a native app running on your computer (which can of course do things like upgrade firmware on the device).

Mozilla refuses to implement WebUSB or WebHID, citing security concerns. I tend to side with Mozilla on this (your average non-technical user will click past most warning dialogs, just wanting things to work), but I can see the appeal: otherwise Google would have to release completely separate Windows and macOS tools to accomplish this, and then Linux users like me would probably be left out in the cold, waiting for someone like OP to reverse-engineer the process.

Of course, if I had one of these controllers and wanted to switch it to Bluetooth mode, I would then be grumbling that I'd have to install Chrome in order to do the switch...


Same fate with OnLive before it, which was super cool back in the day. Only Microsoft & NVIDIA have been able to build successful products out of cloud gaming but even then Microsoft doesn’t just sell the cloud part separately.

Not sure why it’s such a tough sell. Most games feel flawless through it, even back in OnLive days…


A bit of a self-plug: https://Borg.games

My p2p take on Stadia


Heads up: this post is from January 2023. Google recently extended the ability to convert controllers to Bluetooth mode by one year. The new deadline is December 31, 2024.


Why even have a deadline? Why not just release the firmware to the public? What does google gain from stopping people converting stadia controllers to Bluetooth in the future?

I can already see issues like people who bought new old stock who can no longer do anything with them.

The best case scenario is they release a toolkit to flash your own firmware so people can hack on the now completely otherwise useless controllers.


Googler, opinions are my own.

Every thing deployed at Google has all kinds of frameworks and shared libraries and tooling. There are many policies in place to get insure they get newer versions of shared code, such as:

https://opensource.google/documentation/reference/thirdparty...

And to maintain these kinds of things, it isn't uncommon for unfunded mandates to be pushed on people that own various tools, such as this one.

Meaning, even to keep a website up at Google, there will be some maintenance burden. Also, I could imagine Chrome pushing some update that would make all of the usb pairing stuff that they do here break at some point, and they will have to do work to keep it working.


I understand there's a forever maintenance thing to forever hosting a website, especially a web application, when its a big behemoth like Google. Lots of compliance reasons and all other organizational policies can make it hard to even just host a file at a URL forever much less an actual interactive application.

I think the real question is why bother doing it with this website? The controller has a USB port on it and I imagine can talk over USB. It would be far better to just have some application which can flash over USB instead of needing some Google-hosted website. Just give me an executable that people can toss on a torrent or whatever. I appreciate they did something to make these controllers useful to people, but it seems like they really didn't pick the best path to achieve that.

I imagine they probably painted themselves into a corner and the firmware update process is so locked down and will only talk to approved Google endpoints over an HTTPS request or something like that and that's the ultimate reason why they went that route. But really I feel that kind of shows a failure to imagine the hardware life after the service.


A website works on all platforms; Mac, Linux, Windows, ChromeOS, ... maybe even Android. An app works on a single platform.

To me, they could put it on github and serve it on github pages. I suspect though that there's a bunch of non-open source libraries being used and getting into a condition that could be open sourced is person power they don't want to spend when they have an infinite list of things to work on.


So sure, release a webpage that you'll only host for a few of years. But then also release a basic executable we can run for the next hundred years after instead of making something that needs Google's blessing and continued effort to exist.

Everything being a website isn't necessarily a good thing.


I think you're missing the point. In this case it being a website is an awesome thing.

The underlying tech is powered by the WebSerial protocol. We basically already have the executable you're asking for. As long as Google supplies the firmware blob (and js source, though this can probably just be ripped from the current web page), anyone will be able to put up a server, and anyone with a modern browser will be able to visit the site and update -- without having to install anything locally.

Given that a 'native' app would probably be some bloated Electron abomination, I was actually pleasantly surprised that Google chose to solve the firmware update problem the way they did; it worked flawlessly for me on Linux which is seldom the case when it comes to these things.


It's hilarious to me you're glad it's not a bloated Electron abomination while also taking about the joys of it requiring a whole web browser to operate.


and you require a whole OS. I expect browsers to outlast OSes. Browsers ran on MacOS 9 and software that ran on those browsers still runs today. MacOS 9 itself, not so much


I've used a lot of old web applications which require some ancient web browser (especially IE) or old version of CGI or PHP to properly be hosted or require some browser plugin that is no longer supported. The idea that it'll continue to work just because it's "web" is once again absolutely hilarious to me. Just wait another five years and all the WebUSB protocols this relies on get reinvented and this gets considered unsafe and deprecated.

And sure, when talking about an OS that's often made a point at cutting off support for old binaries it's not good. You're ignoring the fact I can still run a lot of 30+ year old software on modern Linux and often modern Windows with ease.


Yup even Android, Chrome on Android supports WebUSB so I usually use it to flash different firmware to my Nintendo Switch on the go.


Well according to the article the entire firmware flashing process does happen over USB. The website is just a JS executable that uses WebUSB API to perform the flashing process via a browser.

As is also mentioned in the article, the author reverse engineered the site, and create a python script capable to performing the flashing process via standard OS APIs.

Really the flashing site isn’t really “a site”. It’s a hosted executable written in JS that pretty much runs entirely locally, apart from the bit where it downloads the new firmware to be flashed. It should be possible to extract the JS itself, plus firmware blobs, and run that completely offline for as long as browsers support WebUSB. Or you do what the author did and create a Python equivalent.


> Also, I could imagine Chrome pushing some update that would make all of the usb pairing stuff that they do here break at some point, and they will have to do work to keep it working.

That can be solved by developing a flasher in a framework more stable than Javascript and web browsers, like OP did.

Companies been increasingly using the "we can't do X because Y" justification when they themselves are responsible for Y.


> What does google gain from stopping people converting stadia controllers to Bluetooth in the future?

It means they can delete the code from the monorepo.


The hardware isn't changing. If they aren't going to provide bugfixes and support they can just archive the built artifacts and publish a torrent or public Google Drive folder.


They do have that, and I think it'll be on GitHub indefinitely, but Google is hosting a live site which can reflash the controller.

Eventually the framework it's running will be deprecated and someone will clean it up.


All of the flashing logic is client-side. As a bonus they could archive the whole site. But even if just the firmware blobs were available it would be a huge win as developing another flasher is probably pretty easy with the provided documentation. I suspect that it wouldn't be hard to identify and download most of the firmware that could be used (I don't think there are many controller revisions) but distributing those will be a legal grey area without a proper license from Google which presumably owns the copyright.


Best guess - it’s about support and maintenance. For every tool out there that’s live you’re going to have a degree of overhead to deal with queries and keep it working on the latest OS, browsers etc.


Google already has a solution for this: they just ignore any and all customer support queries.


They also refunded everyone who bought the controller, so legally they don't have to provide any support.


Even if they hadn’t I’m not sure what legal right you’d have to demand service.


Google has customer support?


Unless you make it opensource?


Generally things at Google are built on a stack of private libraries and infrastructure, such that open sourcing something requires a complete rewrite. Unfortunately.


have you not seen the typical GitHub issue tracker full of entitled people?


Then archive the repo or close the issue tracker and let the people whine on some forked repo


Am I crazy for thinking they should release a tool that does this offline and then just end support for it after those dates?


The webpage is pretty much self-contained... You could probably just save the page for offline use in your browser and have it work forever.


Someone already did this and posted it on GitHub about a year now


People who suggest this fail to understand that to a google-brained PM it would be a complete and utter career-destroying faux pas to suggest that they should make a non-web app, even for a purpose as trivial as a firmware upgrade.


Doing it via the browser means they get support for Linux out-of-the-box. If this was a long-term thing, they wouldn’t need to care about things like Apple switching architectures for the umpteenth time.


Bring back the Windows Google Talk client...


Nope. It's something I suggested the other day:

https://twitter.com/killedbygoogle/status/173591315266219646...


yes! that's not the "google way"


Ahh you’re right. Don’t know what I was thinking.


Still a great shame about Stadia. Really cool technology that never had a chance to reach its potential. Killed too soon!


I worked with/beside the team that worked on the firmware for this controller, and they poured a lot of heart and soul into it, all good people working in a rather trying situation, and the engineering behind it is solid. I think a lot of them are working on Matter now (https://developers.home.google.com/matter/overview)

Stadia itself seemed doomed to me from day one, and I pushed back multiple times to avoid getting involved working on it because I didn't want to get dragged in. (I did work for a bit on the component that did the video receiving for Stadia streams inside the Chromecast; taking what another team did and heavily optimizing it and refactoring it etc.)

In any case, my cynicism was confirmed and the project killed -- but the worst thing is that in the round of layoffs last year they seemed to let go many (most?) of the people still working on it or heavily associated with it, instead of transferring them off to other teams like Google normally would. Kind of nasty.


I switched to Geforce now and did not miss stadia. The biggest problem with stadia was that they tried to make it into a store/ecosystem where you could only play things you paid for specifically for stadia. Got a huge steam library? Tough.

Geforce now just let's you play games you already own (with some limitations based on publisher deals, developer support FWIU etc). And it's just as good as stadia was in terms of user experience IMHO having used both.


A big issue of stadia, and a huge advantage for GeForce Now, was the environment they provided for the game.

GeForce Now runs essentially normal Windows VMs with GPU passthrough to some of their beefier multiuser cards and a custom remote desktop mechanism. There's no special porting involved, it's essentially the same setup, but extra optimised, as what people setup themselves using various cloud providers.

Thus GeForce Now has close to zero porting burden and could just attach Windows Steam client integration.

Stadia didn't have that - I have no idea how it was actually implemented, but someone mentioned that Stadia version of Cyberpunk 2077 was "the PC version, no porting".

Except the Stadia version is the otherwise unreleased Linux port of the game, using Vulkan for rendering (unlike DirectX on normal PC release). It had to use a custom input, sound, etc implementation for whatever interfaces Stadia provided.

FWIW, AFAIK that build also worked on normal Linux with X11 so long as you had Vulkan drivers.

But yes, the big hurdle was that Stadia required a Linux binary, possibly also required Vulkan. Every game they wanted to add had to be effectively ported.


Not having Windows as a dependency was almost like optimizing for future proofing and longevity, ironically. If Stadia were to last longer, so could the games that were made available on it. The game launcher experience was fully in their control to innovate on.

GeForce Now has Windows and various game stores as hard dependencies, which feels like in theory optimizing for the short term and limits how smooth the user experience can be made. But in practice it works fine, and the reduced overhead for individual games maybe is better at least for medium term too.


There is just a small problem: games for Linux often lose compatibility with newer versions of distros. Ironically, while the games would be available on Linux, they might not have worked for as long as their Windows versions.


That's rich given MS's crazy attachment to backwards compatibility. You do realize that they check every single executable that launches to see if it's eg. sim city, and if it is they enable some compatibility flags?

Meanwhile on Linux, everything breaks every time the distribution is updated. Because they're now using the right XYZ framework and every single app should be ported.


> ”The biggest problem with stadia was that they tried to make it into a store/ecosystem”

Yeah, although it seemed like the original goal was to make it a sort of “Netflix for games” subscription service where you’d get the games for free so long as you kept paying your $10/month or whatever. Apple has been trying to do a similar thing with their Apple Arcade. Unfortunately the included games were mostly “B” titles, with the exception of PUBG, so you still needed to pay to purchase the good stuff.


Yeah totally right. FWIW I pair Xbox game pass (a subscription service like netflix) with Geforce now and it is great. Xbox game pass has some good titles included legit AAA things (unlike stadia)

I was looking at prices for a new gaming laptop, and realised that it was perhaps 4 or 5 or more years of subscription fees, and that I could just use a lightweight X1 instead. Perfect


Think of remote gaming as a computer where the connection between the computer itself and its input/output is stretched over the internet. It's bound to remain technically inefficient compared to local wires.

The goal, of course, is to make game running server shareable between different clients, right? But there already was a service to share your own idling PC with internet players. And unlike Google's servers it can be used to play locally by its owner.

But the biggest issue with the whole game streaming is the economy. What's more profitable for publishers and stores, to sell access to games which run on your hardware, or sell the copies of the games and let the players handle hardware cost themselves? The obvious answer leads for remote play services to live off the niche of people who would like to play games but can't afford to invest into hardware. If you compare the cost of a game console with the cost of games you'll understand there can't be a lot of people in this category.

TL;DR Remote play is doomed to stay on the fringes due to the economy and physics.


I think greed is a major reason why those services don't take off.

From the users' perspective, the only selling point of cloud gaming is that they don't have to buy/maintain/upgrade/carry a large gaming computer. It's not game distribution - which is a solved problem by the various stores and piracy, and into which they're already invested and have existing game libraries.

What the users want would be to have a gaming PC in the cloud - same experience as their own gaming PC but without the cost of ownership/maintenance and burden of physically having the machine and moving it. They can install their existing games no matter where they're from (including piracy) - if they work on a local machine, they'd work on this.

The problem is that limits the rent-seeking potential considerably; the max price you can charge is about the same as a cloud GPU instance (since that's all it really is), you can't enforce lock-in (the user can trivially migrate to a competitor or back to local gaming - the experience is the same as swapping physical machines) and you can't become a middleman in game distribution.


> I think greed is a major reason why those services don't take off.

Why, they did take off. There are several active remote play services in different countries. As I said, those are serving niche audience and there's no demand for them to grow any further.

> What the users want would be to have a gaming PC in the cloud - same experience as their own gaming PC but without the cost of ownership/maintenance and burden of physically having the machine and moving it.

I agree, but this is technically unachievable. Local connection will always have more hassle free bandwidth than a remote one. So, what happens in reality, the users trade the cost of their gaming PC ownership/maintenance (which is pretty affordable in case of game consoles) for cost of maintaining high speed and high reliability internet connection.


It'd be cool if they allowed you to redefine the endpoint for the wifi bit of the controller which was the interesting part of the tech IMHO.


I had the same thought. The WIFI controller was magic compared to Bluetooth pairing to a single computer.

Maybe with OPs work we can study and hack the original firmware.


I wish they pushed an update to fix the pairing bug. Once you update to support Bluetooth and pair it it works the first time and will stay connected but provide no input after reconnecting.


If the firmware is signed, how is flashing other firmware accomplished?


Did the not shut Stadia down? This is ridiculous to not just open it up and let people to WTF they want to with it.


It was closely tied/integrated into Google hardware and data center architecture as far as I understand - it is not just some binary you can run on a raspberry pi.

We see a web UI, but that is the tip of the iceberg.


I not thought about the hardware and servers, I thought about the controller because the article was about that controller. Did the not took them even back when the shut Stadia down. Like seriously they could just open source the controller both soft and hardware instead the put stupid restrictions on a failed product.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: