I, as well as may many of the NVIDIA GeForce NOW users, are waiting for Nvidia adding new games. Some of the preferred games were already available, like Mafia series, but were removed from GFN. Later on, while I was waiting for that game to be available again I attempted to recover deleted NVIDIA GeForceNOW games. But accidentally I’ve found out something I’ve never expected.
About a half year ago, NVIDIA GeForceNOW service worked differently. You could launch Steam directly and after that select a game of your choice. Most of the games are locked since GFN limitations, but I figured out how to run games which are not officially available on their website. I’ve managed to play a Gas Guzzlers Extreme at that time. So I wanted to find a way to get a full list of games available for GFN. A very old version of a GFN client app downloaded the file whitelist.json which contained a few thousands of games. Unfortunately it’s no longer possible to get a new update of this file.
Four months ago I decided to proceed with my research and inspect the GFN client application. I wanted to test if the old version of GFN downloaded the file whitelist.json can also download other stored information. I spent more time than expected, but it was worth it.
Once I installed NVIDIA GeForce NOW I launched it and waited for its data to be fully loaded. I inspected its log and cache files and the most eye-catching file to me was console.log.
In the log file I’ve noticed the app configurations which are used to fetch data from servers. Here is the most important line:
This is the main URL used for web requests: https://games.geforce.com/graphql.
If you open that up you will see a GraphQL editor:
This is an interface for GraphQL queries testing. I started to experiment and entered different structures. But it turned out easier than expected, once I pressed Ctrl+Space I’ve got an intelligent code completion popup.
I started to fill up the parameters to get the valid answers.
As you can see I’ve got 1200 results. Thanks to intelligent code completion I added all of the missing fields.
Then I found a way to fetch more than 1000 results. I intuitively guessed the argument ‘After’ which led to the number of answers to skip. It is a base64 encoded integer number:
That way I finally fetched the list of all of the games from GFN servers. I was wondering about the amount of results, it was more than 18000 items. After that I was excited to get those results in the official GFN client application, so I started to develop a special proxy server which is capable of doing that.
18K+ games in the official GeForce NOW app
When I finished my proxy server, started it locally, enabled it, it worked!
Needless to say that it won’t let you start all of the games if you haven't bought them. Also many of them don’t work anyway. But I was curious to inspect which games the GFN developers play. On my way I discovered that there are not only games, but a lot of applications as well.
Most likely, GFN developers use those apps for their own purposes. I stumbled upon 3D Max, Maya, Adobe Photoshop, Microsoft Office and lots of other apps. Also there was a Client Platforms section.
Most likely they use it for third party games testing. Also I found games, which was never announced in GFN service, such as the Mafia: Definitive Edition.
After that I saw some games such as God of War which couldn't be added to the GeForce NOW even theoretically.
This game is the PlayStation exclusive and most likely not coming to other platforms any time soon. But why it’s here then? It says the game is located in the Steam store, but it's nowhere found in Steam. Maybe it's the leak of the game release which is coming soon? It may be, but the information I found out next made me think otherwise.
Yes, it is a Dolphin Emulator, the app which is intended to launch a copies of games from other platforms. Why is it here? Nintendo says there is no legal way to copy games. Even those you purchased personally and dumped are an illegal copies, Nintendo says. Do they have another emulators to run other games such as God of War? I haven’t found them, but maybe the emulators were bundled with those games. The information I discovered next shocked me even more.
This is the Nintendo Wii exclusive, Super Mario Bros. Wii. And yes, you can play a copy of that game via Dolphin Emulator. Is it coincidence? Who knows… But if you look closer, you can find a label “NVIDIA CONFIDENTIAL” which possibly means that Nvidia don’t want you to know they are playing those games. No one can add to the Nvidia servers own games for sure. I’m still confused what they need it for, any guesses?
I started the proxy server and it is available online. You can use it in research purposes. I posted instructions here: http://gfn.uax.co.
Four months ago, before I made this proxy, I attempted to send all of the information to Nvidia, but they were not interested whatsoever. I decided if they don’t care, I can publish it now. https://www.nvidia.com/en-us/geforce/forums/gfn-tech-support/46/452082/confidential
I saved links to all resources for you. And links to the filled code of GraphQL script as well. You can inspect the data by yourself.
GraphQL Playground backup (it is not a data backup but the GraphQL Playground backup, which is redirecting requests to geforce servers, so the results are live)