Skip to content

About

Physical game cartridges with 2.5" SSDs for your Steam/GoG/Local library

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

118 Commits

Folders and files

Repository files navigation

Disclaimer

This project is a hobby experiment and is not an official Steam product.

Automatic launching depends on your operating system settings and security policies. Some systems may require additional configuration for automounting drives or allowing scripts to run automatically.

Although there is a safe guard feature to auto-launch only trusted scripts, it still IS a security risk. Anyone with physical access to your PC could plug in a drive with a script on it, find the project folder and put their script to the trusted list. But at that point they could just execute their script already.

Use this at your own risk

PC Cartridge System

JTDUMcuDBav3BEspNBMw6A-970-80 jpg
Physical game cartridges for your Steam library using 2.5" SATA SSDs.

Turn your digital Steam games into something that feels physical: insert a cartridge, and your PC automatically detects it and launches the configured game or action.

Each cartridge is a simple storage device containing a small launcher script. When inserted, the system detects the cartridge and executes the script file on the drive if it has been classified "trusted". Launching a Steam/GoG game, opening a game's details page, or running any custom commands.

3D-Print Files

STEP-Files are available over at MakerWorld: MakerWorld

Quickstart

Linux

Clone the repository:

git clone https://github.com/LewdM3at/PC-Cartridge-System.git

Enter the project directory:

cd PC-Cartridge-System

Run the script:

./cartridge-linux.sh
image

Installation
Select menu point 1) Install
The installer will install the required udev rule, systemd service, and launcher helper.

Trust Scripts / Check trust state
After you have created a Cartridge with the launch.sh script, add the script to trusted-scripts with menu point 2) Trust Scripts. It will scan for any connected storage media for the launch.sh script and ask if you want to trust said script: image

You can also check the trust state of scripts here and have the option to stop trusting the scripts if they are already trusted.

Any script that hasn't been trusted through this process will NOT be automatically executed ! If you modify the script later on, you have to re-add it to trusted scripts again.

Auto-Launch Scripts
image
You can toggle the automatic execution of scripts by choosing this menu point.
For when you want to change something inside the script and don't want it to auto-launch when you insert the cartridge.

Uninstallation:
Select menu point 4) Uninstall
This will remove everything including the config files and trust scripts list.

Windows

Download the repo:

  1. Click Code → Download ZIP OR download it from Releases
  2. Extract it
  3. Right click on cartridge-windows.ps1 -> Run with Powershell
image

Installation
Select menu point 1) Install
The installer will install the required udev rule, systemd service, and launcher helper.

Trust Scripts
After you have created a Cartridge with the launch.sh script, add the script to trusted-scripts with menu point 2) Trust Scripts. It will scan for any connected storage media for the launch.sh script and ask if you want to trust said script. image

You can also check the trust state of scripts here and have the option to stop trusting the scripts if they are already trusted. Any script that hasn't been trusted through this process will NOT be automatically executed ! If you modify the script later on, you have to re-add it to trusted scripts again.

Auto-Launch Scripts
image

You can toggle the automatic execution of scripts by choosing this menu point.
For when you want to change something inside the script and don't want it to auto-launch when you insert the cartridge.

Uninstallation:
Select menu point 4) Uninstall
This will remove everything including the config files and trust scripts list.

Supported Storage

The project is designed around 2.5" SATA SSDs.

However, the same concept may work with other storage devices such as:

  • SD cards
  • USB flash drives
  • External HDDs
  • Other removable storage

Compatibility with other storage types is not guaranteed and depends on your operating system, filesystem, automount configuration, and hardware.

How It Works

Each cartridge contains a launcher script (launch.sh/launch.ps1) that will be executed by the helpers (depending on OS). Configure these scripts to whatever you need with Steam URL Protocol or any custom commands.

Linux

The Linux version uses three components:

  • udev rule
    The udev rule detects when a new storage partition is connected.
    Its only job is to notify systemd that a game cartridge may have been inserted.
    It does not execute the cartridge directly.

  • systemd service
    A systemd template service is used to handle cartridge launches.
    The template allows the same service to work with any inserted device.
    The service starts the launcher helper and passes the detected device name.

  • cartridge-launcher-helper
    The helper script waits for the desktop environment to mount the drive, then searches the cartridge at rool level for: launch.sh
    If found, it checks the SHA256 sums of said script against the stored trusted-scripts file.
    If the SHA256 matches, it executes the script.
    Example cartridge:
    SSD
    └── launch.sh
    └── SteamLibrary
    The content of launch.sh decide what happens next.


Windows

The Windows version uses two components:

  • Task Scheduler
    The installer creates a scheduled task that starts the cartridge monitor when the user logs in.
    The task keeps the monitor running silently in the background.
  • cartridge-monitoring.ps1
    The PowerShell script monitors for newly inserted storage devices.
    When a new drive is detected, it checks the root of the cartridge for: launch.ps1
    If found, it checks the SHA256 sums of said script against the stored trusted-scripts file.
    If the SHA256 matches, it executes the script.
    Example cartridge:
    SSD
    └── launch.ps1
    └── SteamLibrary
    The content of launch.ps1 decide what happens next.

About

Physical game cartridges with 2.5" SSDs for your Steam/GoG/Local library

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages