Skip to content

Atari VCS – Bundle Quick Start Guide V1.1

You are here:
Estimated reading time: 11 min
In this article

Chapter 1: Dashboard level bundle quick-start

Bundles

Bundle is nothing but the compressed version of build in .zip format with a configuration file and mandatory directory permissions. Bundles are mandatory for deployment to VCS and final submission to VCS Store.

  • Bundle Configuration File

    • It is mandatory to keep a bundle configuration file named as bundle.ini (Case Sensitive) in the root of the build directory with below meta-data format.
      • bundle.ini file should be a valid UTF-8 encoded file
      • Recommended Editors: Atom (Windows, macOS, Linux), Notepad++ (Windows)
      • Use online UTF-8 validation tools like this
      • Get the correct StoreID from VCS Store before bundle submissions

* Get the correct StoreID from VCS Store before bundle submissions.

  • Bundle Permissions

    • It is mandatory to give proper read, write and execute permission to bundle directories for VCS to process the bundles. It is recommended to give 777 to the root directory along with all the subdirectories and files.

  • Bundle Creation

    •  Once the required permissions are given to the bundle root
      directory. Create a .zip file by compressing the root directory. Give 777 permission to the newly created .zip file too and your bundle is ready for deployment to VCS.

 

Deployment

It is mandatory to know the IP address assigned to VCS for deployment and connection purposes. IP addresses can be known by navigating to the Wireless Or Ethernet section under System/Network.

  • Transferring Bundle To VCS

    • Bundles can be transferred to VCS via running scp command.

  • Connecting To VCS

    • We can remotely connect to VCS via running ssh command.

  • Starting Bundle

    • Bundles can be started via running below unzip and execute commands.

  • Stopping Bundle

    • Bundles can be stopped via executing below shortcut.

  • Troubleshooting

    • Below is a list of the known issues with troubleshoot steps. In any other case, reboot is always helpful.

 

Product Bundles

  1. Create a root folder.
  2. Put the game/app files into the root folder.
  3. Create a bundle.ini file and put it inside the root folder.
  4. Give 777 permission to the root folder along with all subdirectories and files.
  5. Create a .zip file by compressing the root folder.
  6. Give 777 permission to the newly created .zip file too.
  7. Your bundle (.zip) file is ready to upload.

 

Product File

  • Product files/bundles can be uploaded into the dashboard while creating the product
  • Only zip file should be considered for uploading the products into the dashboard
  • For uploading or creating the bundles/product packages, folder contains
    • Single folder with everything included
    • One executable file which can run in linux, can be .exe or any other format
    • Product supported files or libraries
    • Product Bundle.ini file, Should be in the root folder(not inside of any folder)

 

Bundle.ini File

  • Bundle.ini file is used to validate/identify and launch the games once downloaded
  • .ini file includes
    • Name=The user-visible product name
      • <Home/Games/Apps/Store/Product Details Page> Short Provisioned Names from Backend (Maximum 32 Characters)
      • Long Names from bundle.ini (Recommended 64 Characters & Maximum 80 Characters)
    • Exec=Name of the executable file inside the bundle directory (with extension)
    • Type=The type of the bundle, can be one of Game or Application
      • If product type is a game then ”Game”
      • If product type is an app then ”Application”
    • StoreID=The store identifier for this bundle
      • This is available in the product details page after creating the product
        • After adding the product package with the store ID then publish the product
    • Version=Should be the product version
      • This should be same in the store product version and in the bundle.ini file
    • Launcher=chrome
      • Any web application that need to run thru browser should be added with this chrome key
  • Bundle file should be available in the root folder in the product zip
  • Bundle Configuration File: It is mandatory to keep a bundle configuration file named as bundle.ini (Case Sensitive) in the root of the build directory with below meta-data format.
    • bundle.ini file should be a valid UTF-8 encoded file
    • Recommended Editors: Atom (Windows, macOS, Linux), Notepad++ (Windows)
    • Use online UTF-8 validation tools like this
    • Get the correct StoreID from VCS Store before bundle submissions

Note**: bundle.ini file should be saved with the same file format and name(Casesensitive), Do not change the name as Bundle.ini or anything.

 

File Permissions

  • Before zipping the product folder, all the files(individually) should be given read, write and execute permission
  • Give 777 permission to the root folder along with all subdirectories and files
  • Once all the files in the folder and the entire folder is give the read, write and execute permission then make a .zip file of the product
  • Once the zip is created then also check and give the RW permission to the zip file
  • Permission to the whole folder can also given from the terminal with following command
    • sudo chmod -R 777
  • Once the product zip is created then it can be uploaded into the backend dashboard

 

Convert Deb File to Zip File

For example of antstream file:

  • Once extracted then you will get 2 folders out of the deb file
    • Usr
    • Opt
  • Inside the Opt folder, you can see a folder name as AntstreamArcade (main folder name)
  • Seperate that folder and create a bundle.ini file inside it(considering it as root folder)
  • Add the executable file name in the Exec= and all the same bundle.ini format with version and store ID(available from backend dashboard
  • Once bundle.ini is created then zip that folder and upload it the store dashboard

 

Replace bundle on VCS Dashboard

  1. Create bundle (ZIP file) of game (for example see original antstream zip file https://os-updates-atari.s3.amazonaws.com/e8251ba6-5a0c-46ae-aade-5efb79199302.zip)
  2. Copy bundle to VCS using scp (i.e scp bundle.zipuser@atari-vcs:/home/user/e8251ba6-5a0c-46ae-aade-5efb79199302.zip)
  3. Connect to VCS over ssh (i.e ssh user@atari-vcs with password user)
  4. List existing bundles to get required information:

    $ sbd-cli –list-bundles

    sbd-cli-Message: 08:30:34.675: Listing bundles:

    sbd-cli-Message: 08:30:34.677: [<{‘identifier’:
    <‘9671b1aa9916fd71eb2d3f196814f085cf8a5f388d822303019a32b499aca571’>,
    ‘slot’: <‘internal’>, ‘name’: <‘Google Chrome’>, ‘type’: <‘Application’>, ‘store-id’:
    <‘S9d8oFdW8umLtTUp’>, ‘version’: <’62’>}>, <{‘identifier’:
    <‘e23c65d079ca43db26a2ce4dc3cf84dfa1b94aea44b99ff68e8ad2ad5fb039be’>,
    ‘slot’: <‘internal’>, ‘name’: <‘Antstream’>, ‘type’: <‘Game’>, ‘store-id’:
    <‘antstream’>, ‘version’: <‘3’>}>, <{‘identifier’:
    <‘a4c63a55510a9dd607cf2407be6893e8e2d06fab975ae22383f59083c86b1e8d’>,
    ‘slot’: <‘internal’>, ‘name’: <‘Netflix’>, ‘type’: <‘Application’>, ‘store-id’: <‘netflix’>,
    ‘version’: <‘2’>}>, <{‘identifier’:
    <‘9be808e44181e2e84b3e2bf613c5b145ecabafa74d7524b5eabd90d19f0ca287’>,
    ‘slot’: <‘internal’>, ‘name’: <‘Atari Vault’>, ‘type’: <‘Game’>, ‘store-id’: <‘vault’>,
    ‘version’: <‘5’>}>, <{‘identifier’:
    <‘d60e97d9a42898702b275402069a8ee58193aaccc5e7fa357dd88319a6fb22be’>,
    ‘slot’: <‘internal’>, ‘name’: <‘Disney+’>, ‘type’: <‘Application’>, ‘store-id’:
    <‘disneyplus’>, ‘version’: <‘2’>}>, <{‘identifier’:
    <‘386ee3a7e047dce095b812a39bdcc5a24df29c31bcff24f8ba87a561ac2168e0’>,
    ‘slot’: <‘internal’>, ‘name’: <‘Youtube’>, ‘type’: <‘Application’>, ‘store-id’:
    <‘youtube’>, ‘version’: <‘2’>}>] from above, see identifier is
    e23c65d079ca43db26a2ce4dc3cf84dfa1b94aea44b99ff68e8ad2ad5fb039be, slot
    is internal.

  5. Delete bundle:

    $ sbd-cli
    –delete-bundle=e23c65d079ca43db26a2ce4dc3cf84dfa1b94aea44b99ff68e8ad2ad5fb039be

    sbd-cli-Message: 08:33:36.209: Delete bundle:
    e23c65d079ca43db26a2ce4dc3cf84dfa1b94aea44b99ff68e8ad2ad5fb039be

    sbd-cli-Message: 08:33:36.258: bundles/bundleRemoved {‘identifier’:
    <‘e23c65d079ca43db26a2ce4dc3cf84dfa1b94aea44b99ff68e8ad2ad5fb039be’>, ‘slot’:
    <‘internal’>, ‘name’: <‘Antstream’>, ‘type’: <‘Game’>, ‘store-id’: <‘antstream’>, ‘version’: <‘3’>}

    sbd-cli-Message: 08:33:36.258: true

  6. Install new bundle from ZIP file:

    $ sbd-cli –install-bundle /home/user/e8251ba6-5a0c-46ae-aade-5efb79199302.zip –params
    identifier=e23c65d079ca43db26a2ce4dc3cf84dfa1b94aea44b99ff68e8ad2ad5fb039be –params
    slot=internal

    sbd-cli-Message: 08:36:09.813: Install bundle:
    e23c65d079ca43db26a2ce4dc3cf84dfa1b94aea44b99ff68e8ad2ad5fb039be (to slot internal)

    sbd-cli-Message: 08:36:09.848: bundles/installNotify {‘identifier’: <‘e23c65d079ca43db26a2ce4dc3cf84dfa1b94aea44b99ff68e8ad2ad5fb039be’>, ‘progress’: }

    sbd-cli-Message: 08:36:11.307: bundles/installNotify {‘identifier’: <‘e23c65d079ca43db26a2ce4dc3cf84dfa1b94aea44b99ff68e8ad2ad5fb039be’>, ‘progress’: }

    sbd-cli-Message: 08:36:11.317: bundles/installNotify {‘identifier’: <‘e23c65d079ca43db26a2ce4dc3cf84dfa1b94aea44b99ff68e8ad2ad5fb039be’>, ‘progress’: }

    sbd-cli-Message: 08:36:11.966: bundles/bundleRemoved {‘identifier’:
    <‘e23c65d079ca43db26a2ce4dc3cf84dfa1b94aea44b99ff68e8ad2ad5fb039be’>, ‘slot’:
    <‘internal’>, ‘name’: <‘Antstream’>, ‘type’: <‘Game’>, ‘store-id’: <‘antstream’>, ‘version’: <‘3’>}

    sbd-cli-Message: 08:36:11.967: bundles/bundleAdded {‘identifier’:
    <‘e23c65d079ca43db26a2ce4dc3cf84dfa1b94aea44b99ff68e8ad2ad5fb039be’>, ‘slot’:
    <‘internal’>, ‘name’: <‘Antstream’>, ‘type’: <‘Game’>, ‘store-id’: <‘antstream’>, ‘version’: <‘3’>}

    sbd-cli-Message: 08:36:11.967: true

  7.  New bundle is able to be launched from the dashboard.

Chapter 2: OS level bundle quick-start guide

This document describes the method to package software applications for the Atari VCS running the Debian-based operating system with Atari dashboard. The document will also describe how to install, test and debug applications running on the Atari VCS system.

The VCS bundle is a compressed file which includes your application and associated meta-data. The dashboard will show these installed bundles so the user can launch, remove and update them.

The bundle can be uploaded to the store so that users may conveniently download and update
the bundles.

 

Bundle types

  • Application or game which can be compiled for Linux (e.g. Atari VCS Vault, SuperTuxKart, Dusk, Unity application).
  • Web application (e.g. Netflix, YouTube). A web url is launch on the system’s default browser as full-screen.

For the application or game bundle type, the software must be compiled for Linux. Generally, the software should first be tested on Debian Buster amd64 architecture to make sure everything runs correctly. See this link for instructions on how to setup a virtual machine to test your application.

 

Check libraries

On the VCS, you can use ldd to check which shared libraries are not included for your executable:

$ ldd bin/supertuxkart | grep “not found”

These will be required to be packaged with the bundle. See the SuperTuxKart example for more information.

 

Bundle structure

The bundle is a zip file, consisting of a directory (typically a human-readable name of the bundle) and inside this directory is a bundle.ini configuration file, any executable programs as well as any required libraries.

For instance, a bundle named test could include the files:

bundle-test.zip
└─Test
├─bundle.ini
└─Executable

In some cases a script should be used to run the game and load the libraries, see the SuperTuxKart example for more information.

 

Bundle configurations

Inside each bundle is a configuration file named bundle.ini. This is an .ini style configuration file which the system uses to find out information about the bundle.

The keyfile with one group Bundle contain the following keys:

  • Name – The user visible name, reported in the list API as the name field
  • Exec – name of the executable inside the bundle directory; start will launch this executable either directly or via a launcher
  • Type – The type of the bundle, can be one of Game or Application
  • StoreID – The unique value identifying the bundle for the store
  • Version – The current version of the bundle
  • Launcher – (optional) Rather then launching the Exec= value directly use a launcher for it. The value refers to a tag defined by bundles that can act as launcher. The special tag browser is build into the OS as well.
  • LauncherTags – (optional) List of semicolon separate tags; This bundle can be used as a launcher for any of the tags mentioned in this list.
  • LauncherExec – (optional) When using the bundle as a launcher, execute the given executable as the launcher. The launched bundles Exec line will be appended as an argument

 

Simple Bundle

A bundle.ini for a simple game which has an executable called game in the root directory of the bundle:

[Bundle] Name=Example game
Type=Game
Exec=game
Version=1.0
StoreID=123456

 

Chrome browser that can be a launcher

A bundle for the chrome browser can be direclty launched (going to a preconfigured website) or be used as a launcher for other bundles. In the case of chrome it both be launcher for bundles just needing a standard browser or for bundles that specifically need chrome (e.g. due to widevine requirements)

[Bundle] Name=Google Chrome
Exec=launch-chrome https://atarivcs.com
Type=Application
LauncherTags=browser;chrome
LauncherExec=launch-chrome
Version=1
StoreID=S9d8oFdW8umLtTUp

 

Chrome Website bundle

For websites that needs e.g. chrome explicitly due to widevine availability can specifically indicate that they need to be launched with chrome.

[Bundle] Name=Netflix
Exec=https://netflix.com
Type=Application
StoreID=netflix
Version=1
Launcher=chrome

 

Creating a bundle

After compiling the executable files and creating the bundle.ini file, these files should be in a directory which is the name of the bundle.

So, create a directory named game and inside the directory a bundle.ini file. Choose an example configuration file from above and insert it into that file.

After that, move up to the directory above game and run:

zip -r game.zip game

 

The bundle is contained inside the zip file game.zip.

The VCS staging operating system includes a secure-shell server which also includes a secure-copy server to allow files to be shared. This can not be done on the VCS production operating system due to security concerns. If a password is asked, it is user.

 

Copy bundle to VCS

Copy the bundle to the VCS using secure-copy:

scp game.zip user@atari-vcs:~/game.zip

 

Connect to VCS via secure-shell 

ssh user@atari-vcs

 

Removing existing bundle

Find existing bundle information

$ sbd-cli –list-bundles
sbd-cli-Message: 08:30:34.675: Listing bundles:
sbd-cli-Message: 08:30:34.677: [
<{‘identifier’: <‘9671b1aa9916fd71eb2d3f196814f085cf8a5f388d822303019a32b499aca571’>,
‘slot’: <‘internal’>, ‘name’: <‘Google Chrome’>, ‘type’: <‘Application’>, ‘store-id’:
<‘S9d8oFdW8umLtTUp’>, ‘version’: <’62’>}>,
<{‘identifier’: <‘e23c65d079ca43db26a2ce4dc3cf84dfa1b94aea44b99ff68e8ad2ad5fb039be’>,
‘slot’: <‘internal’>, ‘name’: <‘Antstream’>, ‘type’: <‘Game’>, ‘store-id’: <‘antstream’>, ‘version’:
<‘3’>}>,
<{‘identifier’: <‘a4c63a55510a9dd607cf2407be6893e8e2d06fab975ae22383f59083c86b1e8d’>,
‘slot’: <‘internal’>, ‘name’: <‘Netflix’>, ‘type’: <‘Application’>, ‘store-id’: <‘netflix’>, ‘version’:
<‘2’>}>,
<{‘identifier’: <‘9be808e44181e2e84b3e2bf613c5b145ecabafa74d7524b5eabd90d19f0ca287’>,
‘slot’: <‘internal’>, ‘name’: <‘Atari Vault’>, ‘type’: <‘Game’>, ‘store-id’: <‘vault’>, ‘version’: <‘5’>}>,
<{‘identifier’: <‘d60e97d9a42898702b275402069a8ee58193aaccc5e7fa357dd88319a6fb22be’>,
‘slot’: <‘internal’>, ‘name’: <‘Disney+’>, ‘type’: <‘Application’>, ‘store-id’: <‘disneyplus’>, ‘version’:
<‘2’>}>,
<{‘identifier’: <‘386ee3a7e047dce095b812a39bdcc5a24df29c31bcff24f8ba87a561ac2168e0’>,
‘slot’: <‘internal’>, ‘name’: <‘Youtube’>, ‘type’: <‘Application’>, ‘store-id’: <‘youtube’>, ‘version’:
<‘2’>}>
]

from above, the identifier of the Antstream bundle is
e23c65d079ca43db26a2ce4dc3cf84dfa1b94aea44b99ff68e8ad2ad5fb039be and the slot is internal.

 

Delete existing bundle

$ sbd-cli
–delete-bundle=e23c65d079ca43db26a2ce4dc3cf84dfa1b94aea44b99ff68e8ad2ad5fb039be
sbd-cli-Message: 08:33:36.209: Delete bundle:
e23c65d079ca43db26a2ce4dc3cf84dfa1b94aea44b99ff68e8ad2ad5fb039be
sbd-cli-Message: 08:33:36.258: bundles/bundleRemoved {‘identifier’:
<‘e23c65d079ca43db26a2ce4dc3cf84dfa1b94aea44b99ff68e8ad2ad5fb039be’>, ‘slot’:
<‘internal’>, ‘name’: <‘Antstream’>, ‘type’: <‘Game’>, ‘store-id’: <‘antstream’>, ‘version’: <‘3’>}
sbd-cli-Message: 08:33:36.258: true

 

Install bundle

The identifier below should be the store identifier.

$ sbd-cli –install-bundle ~/game.zip –params identifier=e23c65d079ca43db26a2ce4dc3cf84dfa1b94aea44b99ff68e8ad2ad5fb039be –params slot=internal sbd-cli-Message: 08:36:09.813: Install bundle: e23c65d079ca43db26a2ce4dc3cf84dfa1b94aea44b99ff68e8ad2ad5fb039be (to slot internal) sbd-cli-Message: 08:36:09.848: bundles/installNotify {‘identifier’: <‘e23c65d079ca43db26a2ce4dc3cf84dfa1b94aea44b99ff68e8ad2ad5fb039be’>, ‘progress’: } … sbd-cli-Message: 08:36:11.307: bundles/installNotify {‘identifier’: <‘e23c65d079ca43db26a2ce4dc3cf84dfa1b94aea44b99ff68e8ad2ad5fb039be’>, ‘progress’: } sbd-cli-Message: 08:36:11.317: bundles/installNotify {‘identifier’: <‘e23c65d079ca43db26a2ce4dc3cf84dfa1b94aea44b99ff68e8ad2ad5fb039be’>, ‘progress’: } sbd-cli-Message: 08:36:11.966: bundles/bundleRemoved {‘identifier’: <‘e23c65d079ca43db26a2ce4dc3cf84dfa1b94aea44b99ff68e8ad2ad5fb039be’>, ‘slot’: <‘internal’>, ‘name’: <‘Antstream’>, ‘type’: <‘Game’>, ‘store-id’: <‘antstream’>, ‘version’: <‘3’>} sbd-cli-Message: 08:36:11.967: bundles/bundleAdded {‘identifier’: <‘e23c65d079ca43db26a2ce4dc3cf84dfa1b94aea44b99ff68e8ad2ad5fb039be’>, ‘slot’: <‘internal’>, ‘name’: <‘Antstream’>, ‘type’: <‘Game’>, ‘store-id’: <‘antstream’>, ‘version’: <‘3’>} sbd-cli-Message: 08:36:11.967: true

 

New bundle is able to be launched from dashboard.

If you attempt to install a bundle which is incorrectly formatted, the install process will exit with a useful error.

Removing the bundle can be done in the same method as above, or using the dashboard.

 

Handling pause/resume/exiting

Once a bundle is launched, it can be “paused” by the user by pressing the Atari button on the controllers or by pressing Ctrl+Esc on the keyboard. This system then sends the SIGSTOP signal to the bundle process so that it can pause gracefully and the system shows an in-game pause menu which allows the user to exit to the dashboard or resume the game. When the game is resumed, the system sends the SIGCONT signal to the bundle process. When the system requires that the bundle exists, it is sent the SIGTERM signal.

It is suggested that these signals are handled in your application.

 

Bundle checklist

  • the bundle should install from the command-line
  • the bundle should run from the dashboard
  • the bundle should pause by pressing the Home button
  • make sure the bundle resumes by cancelling the in-game menu
  • make sure the bundle quits from the in-game menu

Chapter 3: Example Bundle for SuperTuxKart

This guide will explain the steps for creating a bundle from the popular open-source game SuperTuxKart.

Introduction

Requirements

An amd64 system with docker, subversion and git installed. We suggest running Debian. Docker is used to create a clean environment for compiling the code. Lines prefixed with $ should be run on the host, # should be run inside the container.

Create and navigate to a temporary, empty directory used for the build:

$ mkdir -p ~/projects/atari/supertuxkart
$ cd ~/projects/atari/supertuxkart

 

Download SuperTuxKart source and assets

git clone https://github.com/supertuxkart/stk-code.git stk-code –depth=1
svn checkout https://svn.code.sf.net/p/supertuxkart/code/stk-assets stk-assets

 

Create SDK container

On the host system, navigate to a temporary directory and run the following commands:

$ docker pull debian:buster
$ docker run -it –name=atari-supertuxkart-sdk –rm -v “$(pwd)”:/sdk debian:buster bash

 

Now you should be inside a container.

 

Compile SuperTuxKart binary from source

This section was derived from the SuperTuxKart installation documentation. The instructions below will be different for each piece of software and will depend on which build system is used.

 

Install prerequisite packages

# apt-get update
# apt-get install –yes zip apt-file
# apt-file update
# apt-get install –yes build-essential cmake libbluetooth-dev libsdl2-dev \
libcurl4-openssl-dev libenet-dev libfreetype6-dev libharfbuzz-dev libfribidi-dev \
libgl1-mesa-dev libglew-dev libjpeg-dev libogg-dev libopenal-dev libpng-dev \
libssl-dev libvorbis-dev libxrandr-dev libx11-dev nettle-dev pkg-config zlib1g-dev

 

Under the /sdk directory you should see the two directories downloaded earlier:

# cd /sdk
# ls
stk-assets stk-code

 

Compile source

# cd /sdk/stk-code
# mkdir supertuxkart-bin
# cd supertuxkart-bin
# cmake ..
# make -j$(nproc)

 

Download shared libraries

Some shared libraries may need to be required to be packaged with the bundle, so copy the built executable to the VCS and check which libraries are not found:

$ ldd bin/supertuxkart | grep “not found”
libvorbisfile.so.3 => not found

 

Searching for this file inside packages (back inside the docker SDK) results in:

# apt-file search libvorbisfile.so.3
libvorbisfile3: /usr/lib/x86_64-linux-gnu/libvorbisfile.so.3
libvorbisfile3: /usr/lib/x86_64-linux-gnu/libvorbisfile.so.3.3.7

 

Install the library:

# apt-get install –yes libvorbisfile3

 

Copy the required library into the bundle:

# mkdir x86_64-linux-gnu
# cp /usr/lib/x86_64-linux-gnu/libvorbisfile.so.3 x86_64-linux-gnu/

 

Copy SuperTuxKart assets

# cp -r ../data/ .
# cp -r ../../stk-assets/* data/

 

Create bundle configuration file

# cat << ‘EOF’ > bundle.ini

 

[Bundle] Name=Super TuxKart Type=Game Exec=run-supertuxkart.sh Version=2
StoreID=TxHYsfa5TxoFZRol EOF

# cat << ‘EOF’ > run-supertuxkart.sh

 

#!/bin/sh

P=$(dirname $(busybox realpath $0))

export LD_LIBRARY_PATH=”${P}/x86_64-linux-gnu:$LD_LIBRARY_PATH” exec
${P}/bin/supertuxkart $* EOF

# chmod +x run-supertuxkart.sh

 

Create bundle zip file

# cd ..
# zip -r supertuxkart-bundle.zip supertuxkart-bin/

 

Exit & cleanup SDK

# exit

…now back on the host…

The container can be cleaned up by running:

$ docker system prune -af

 

Check bundle

The bundle should be over 500MB, which is mainly made up of the assets:

$ ls -lah stk-code/supertuxkart-bundle.zip
-rw-r–r– 1 root root 638M Sep 24 11:22 stk-code/supertuxkart-bundle.zip

 

Install bundle on VCS

The VCS must be running the staging operating system.

Copy the bundle to the VCS, with the password user:

$ scp stk-code/supertuxkart-bundle.zip user@atari-vcs:~

 

SSH into the VCS, with the password user:

 

$ ssh user@atari-vcs $ sbd-cli –install-bundle=/home/user/supertuxkart-bundle.zip -p identifier=TxHYsfa5TxoFZRol -p slot=internal sbd-cli-Message: 13:46:54.982: Install bundle: supertuxkart (to slot internal) sbd-cli-Message: 13:46:55.018: bundles/installNotify {‘identifier’: <‘TxHYsfa5TxoFZRol’>, ‘progress’: } sbd-cli-Message: 13:46:55.028: bundles/installNotify {‘identifier’: <‘TxHYsfa5TxoFZRol’>, ‘progress’: } … sbd-cli-Message: 13:46:55.600: bundles/installNotify {‘identifier’: <‘TxHYsfa5TxoFZRol’>, ‘progress’: } sbd-cli-Message: 13:46:55.606: bundles/installNotify {‘identifier’: <‘TxHYsfa5TxoFZRol’>, ‘progress’: } sbd-cli-Message: 13:47:00.362: bundles/bundleAdded {‘identifier’: <’48b130f2f871bf76d1ec600472a38d5840fc405c9fbaa08ab7aac6630638adfc’>, ‘slot’: <‘internal’>, ‘name’: <‘Super TuxKart’>, ‘type’: <‘Game’>, ‘store-id’: <‘TxHYsfa5TxoFZRol’>, ‘version’: <‘2’>} sbd-cli-Message: 13:47:00.362: true

 

Launch the bundle

The bundle can be launched from the command-line:

 

$ sbd-cli
–start-bundle=48b130f2f871bf76d1ec600472a38d5840fc405c9fbaa08ab7aac6630638adfc
sbd-cli-Message: 14:21:30.741: Starting bundle:
48b130f2f871bf76d1ec600472a38d5840fc405c9fbaa08ab7aac6630638adfc
sbd-cli-Message: 14:21:30.751: true

 

If the store-id is recognised by the store, it can also be launched from the dashboard.
SuperTuxKart is included in the store, so can be launched from the dashboard.


Chapter 4: Example Bundle to launch webpage

This guide will explain the steps for creating a bundle which launches a webpage fullscreen in the VCS browser.

 

Requirements

A Linux system with zip installed. We suggest running Debian. Other operating systems may
also work.

Create and navigate to a temporary, empty directory used for the build:

$ mkdir -p ~/projects/atari/bundle-bbc
$ cd ~/projects/atari/bundle-bbc

 

Create bundle configuration file

# cat << ‘EOF’ > bundle.ini

 

[Bundle] Name=BBC Exec=https://www.bbc.co.uk/ Type=Application StoreID=bbc Version=1
Launcher=chrome

 

Create bundle zip file

# cd ..
# zip -r bundle-bbc.zip bundle-bbc/

 

Install bundle on VCS

The VCS must be running the staging operating system.

Copy the bundle to the VCS, with the password user:

$ scp bundle-bbc.zip user@atari-vcs:~

SSH into the VCS, with the password user:

$ ssh user@atari-vcs

$ sbd-cli –install-bundle=/home/user/bundle-bbc.zip -p identifier=bbc -p slot=internal sbd-cli-Message: 14:58:58.484: Install bundle: bbc (to slot internal) sbd-cli-Message: 14:58:58.489: bundles/installNotify {‘identifier’: <‘bbc’>, ‘progress’: } sbd-cli-Message: 14:58:58.489: bundles/installNotify {‘identifier’: <‘bbc’>, ‘progress’: } sbd-cli-Message: 14:58:58.560: bundles/bundleAdded {‘identifier’: <‘3b24df4040bfc7d9d94935e1a43f92afb2dcd8ce47120dce884d9aac411a4882’>, ‘slot’: <‘internal’>, ‘name’: <‘BBC’>, ‘type’: <‘Application’>, ‘store-id’: <‘bbc’>, ‘version’: <‘1’>} sbd-cli-Message: 14:58:58.561: true

 

Launch the bundle

The bundle can be launched from the command-line:

 

$ sbd-cli
–start-bundle=3b24df4040bfc7d9d94935e1a43f92afb2dcd8ce47120dce884d9aac411a4882
sbd-cli-Message: 14:59:38.400: Starting bundle:
3b24df4040bfc7d9d94935e1a43f92afb2dcd8ce47120dce884d9aac411a4882
sbd-cli-Message: 14:59:38.406: true

 

If the store-id is recognised by the store, it can also be launched from the dashboard. BBC is not included in the store, so can not be launched directly from the dashboard.

OS level bundle Guide ref: https://github.com/atari-vcs/docs/tree/main/developer

Was this article helpful?
Dislike 0
Views: 6
Back To Top