[Shield Android TV General] spauldhaliwal:
Anyone have any insight on how to have custom games added to the android tv home screen under the 'games' section along with the officially supported ones? I looked through some of the nvidia files and made some progress, but haven't been able to achieve this yet.

For example, there is an xml file under appdata/local/nvidia/nvbackend called journalBS.main.xml that lists all the games that appear under the main games page when opening the Geforce Experience app on the pc. As we already know, not all games that appear here support gamestream, and as such these games do not appear on the shield tv. However, there is also this tag inside each game's entry in journalBS.main.xml:

<IsStreamingSupported Type="2">0</IsStreamingSupported>

Setting this tag to 1, like so: <IsStreamingSupported Type="2">1</IsStreamingSupported>, will allow the game to appear on the Shield TV. Launching the game will also generate an entry under the games section on the android tv homescreen.

As an example, Civilization VI, when installed on the pc appears in the geforce experience app on the pc, but not on the shield, because it doesn't support gamestream. Changing the above tag will make it appear on the shield, and also on the homescreen once it's been launched for the first time.

There is also a tag called "StreamingCommandLine" that allows you to change what the entry will launch when launching from the shield. On top of this, there is a folder called StreamingAssetsData in NvBackend that I believe is responsible for displaying portrait boxart images only. These are the images that appear when you open "Nvidia Games>GameStream" on the shield.

I have yet to find out where the landscape boxarts come from. These are images that appear when you open Nvidia Games and see a list of recently played titles. It's probably worth noting that when you launch custom added games from the shield it will display the same image both on the Nvidia Games home page (albeit a cropped version) as well as in Nvidia Games>GameStrean. Games that appear on the main page of Geforce Experience app on the pc, however, have different images for these two locations, one landscape and one portrait. I believe that the shield uses the landscape image to generate the thumbnail for the app on the android tv home screen.

Another thing I noticed is that the shield handles custom added games in an entirely different location under appdata/local/Nvidia Corperation/Shield Apps. Here you will find all of your custom added games as shortcuts, as well as another StreamingAssets folder that houses the boxarts.

Personally, I see one way of having custom added games appear on the android tv homescreen. One is to figure out a way to add new entries in appdata/local/nvidia/nvbackend/journalBS.main.xml. From there we can change the "StreamingCommandLine" and have it launch whatever game (or command) we want. Messing with the data inside the StreamingAssets folder should allow us to set the portrait boxart. However I don't yet know how we could set the landscape image that would appear on the android tv homescreen, since I haven't located these files. One possibility is this: the shield generates an actual android app for each of the gamestream entries on the android tv homescreen. Opening the apk to one of these entries will show a banner.jpg image in the res/mipmap-xhdpi-v4/ folder. Swapping this image out and reinstalling the apk over the old one should change the banner.

Now the roadblock: I tried duplicating an entry inside journalBS.main.xml and changing its Id tag so that it didn't conflict with the orignal entry I copied, and it had no effect. It did not add a new entry on the geforce experience app on the pc, nor did it add an entry under Nvidia Games>GameStream on the shield tv. This leads me to believe that journalBS.main.xml is not responsible for generating these entries, yet does have the ability to change how these entries are handled by the shield tv (such as changing "IsStreamable" and "StreamingCommandLine")

Annnnd that's basically as far as I've gotten. I feel fairly confident that one we figure out how to have new entries appear in the geforce experience app on the pc, it will only be a matter of setting its IsStreamable tag to 1 and setting StreamingCommandLine to launch your app of choice, in order to have it appear on the android tv homescreen.

And Sorry for the wall of text. I've never been good at explaining things briefly haha. Hope you guys find it comprehensible and also helpful. I would really really love to have this issue solved.