Guide

Tallgrass runs on the same device as your emulator and reads your game while you play. You need your own copy of the game, already playable; Tallgrass never downloads or shares game files.

Install

Tallgrass is built for a Raspberry Pi running RetroPie, and also runs on other Linux PCs (64-bit Arm and x86). Open a terminal on the device (or SSH in, e.g. ssh pi@retropie.local) and run:

curl -fsSL https://tallgrass-delta.vercel.app/install.sh | bash

The installer downloads the latest release for your device, checks it against the release's checksums, puts it in ~/tallgrass and starts it as a service, so it runs whenever the device is on. It asks for your password once (to set up the service). When it finishes it prints an address like http://192.168.0.20:8080/setup.html: open that on your phone or computer, on the same network.

Tallgrass runs at low priority, so the emulator always comes first. To install a specific version, run the command with TALLGRASS_VERSION=0.1.1 in front of bash.

Set up your game

The setup page asks which game you're playing, then checks everything that game needs. It fixes what it safely can with one button, and tells you what to do for the rest. It re-checks every few seconds, so you can follow along with the game running. Don't have the game yet? Where to get each hack lists the official page, the base game it needs and the checksum to expect.

Radical Red and Unbound (GBA)

  • Your ROM, found in roms/gba and matched by its fingerprint (any file name works).
  • The lr-mgba emulator core, which lets other programs read game memory.
  • RetroArch's network commands, which is how Tallgrass asks for memory. They only listen while a game runs.
  • Autosave every minute, so your save file on disk stays current and gets backed up.
  • Your save, including converting a .sav from another emulator.
  • A live read: start the game and load your save.

HeartGold Generations (DS)

  • Your ROM, in roms/nds.
  • DraStic, the DS emulator from RetroPie-Setup's experimental packages.
  • Permission for Tallgrass to read DraStic's memory (the default on Raspberry Pi OS).
  • Your save in DraStic's save folder.
  • A live read: start the game and load your save.

Before changing an emulator config file, Tallgrass keeps the original next to it as <file>.bak-tallgrass. It won't change configs while a game is running, because the emulator could overwrite them when it closes.

The dashboard

Party
Your team as it is right now: level, HP, nature, ability, IVs, EVs and moves. Below it, the route you're on, with what you can catch there by time of day (marked seen or caught), plus the items, shops and trainers on that map. Then your journey: catches, faints, evolutions and new areas, logged as they happen. Turn on Nuzlocke mode to see it as a run, with first-encounter routes and deaths.
Boxes
Every PC box, read from the running game every 15 seconds, or from any save file or backup.
Trainers
Every trainer in the game with their team, held items and moves, in the order you'll meet them. Search by trainer, area or Pokémon.
Saves
Every change to your save file is kept as a version. Download any version, or restore it: Tallgrass backs up the current save first, and refuses while a game is running (the emulator would overwrite it on exit). To edit a save on your computer, download the latest version, edit it, and use Upload edited save; it's checked and the current save is backed up first. Or let tallgrass sync do it for you.
Library
Your ROMs by system, with whether Tallgrass supports each one and which have saves.

Lock it with a PIN

Anyone on your network can open the dashboard, including the Saves page. To stop that, set a PIN under Account → Dashboard PIN (4 to 12 digits). Each browser then signs in once and stays signed in for 30 days. Changing or removing the PIN signs out every browser.

Forgot it? Delete ~/tallgrass/auth.json on the device and restart Tallgrass (sudo systemctl restart tallgrass); the dashboard is open again.

Edit saves on your computer

To move Pokémon between games with OpenHome (or edit them with PKHeX), run tallgrass sync on your computer. It keeps a folder there in step with your device's saves: new progress on the device is copied down within seconds, and when you save in OpenHome the file is uploaded back. The device checks it, backs up the current save first, and waits while that game is running.

On a Mac (Apple silicon; use darwin-amd64 for Intel), in Terminal:

curl -fsSLo tallgrass https://github.com/cambboyle/Tallgrass/releases/latest/download/tallgrass-darwin-arm64
chmod +x tallgrass
./tallgrass sync 192.168.0.20

On Windows, download tallgrass-windows-amd64.exe from the latest release and run tallgrass-windows-amd64.exe sync 192.168.0.20 in a terminal. Use your device's address (the one you open the dashboard on). If the dashboard has a PIN, it asks for it once.

Saves land in a Tallgrass Saves folder in your home folder (-dir picks another). In OpenHome's saves window, add that folder under Save Folders and your saves appear under Suggested. Keep sync running while you edit.

Close the game on the device before editing, so you edit its latest save. If a save changes on both sides anyway, the device's copy wins and yours is kept in Conflicts. Every upload is backed up on the device first, so nothing is lost either way.

Link to an account

Everything above works without an account. Linking a device to a Tallgrass account is optional; it lets you switch on Cloud backups (Account page), which copies your save backups and Journey history to your account every 10 minutes, to download from the website if the device is lost. On the dashboard's Account page, choose Link this device; it shows a short code. Enter that code here while signed in, and the device is linked. You can unlink devices from your account page.

Updates

Tallgrass checks for a new release every few hours and shows it under Account → Updates, with what changed. Choose Install and it restarts on the new version within a few seconds. Every release is signed, and an update is only installed if its signature and checksum match.

Troubleshooting

The page doesn't load
Check the device's address (hostname -I on the device) and that your phone is on the same network. systemctl status tallgrass shows whether it's running, and journalctl -u tallgrass -n 50 shows its recent log.
“Not supported” for my game
Tallgrass recognises games by their ROM fingerprint (SHA-1, shown on the Party page). A different version of a hack has a different fingerprint. The versions on the games page are fully supported; other FireRed hacks often work through auto-detection. To add a game yourself, see writing a game profile.
The party doesn't show, or stops updating
Open the setup page: its live check says what's missing. For GBA games, network commands only take effect after restarting the game. For DS games, give DraStic a few seconds after loading your save.
Backups miss my latest progress
Games write the save file when you save in-game, and RetroArch writes it to disk at most once a minute (with the setup page's autosave fix) or when you quit. Save in-game before relying on a backup.

Uninstall

sudo systemctl disable --now tallgrass
sudo rm /etc/systemd/system/tallgrass.service
rm -r ~/tallgrass

~/tallgrass also holds your save backups (backups/) and run history (tallgrass.db): copy them somewhere first if you want to keep them. Config changes made by the setup page have their originals saved as .bak-tallgrass files.