-
Notifications
You must be signed in to change notification settings - Fork 5
Autotracking
Autotracking is EmoTracker's ability to read your running game's memory and automatically update the tracker — items, locations, dungeon state, and so on — as you play. Instead of clicking items on the tracker yourself, you just play the game and EmoTracker keeps up.
This page explains how to tell if a pack supports autotracking, how to connect your game to EmoTracker, and how to read the autotracker status in the main window.
Autotracking requires three pieces working together:
-
A pack that supports it. Not every pack ships an autotracker — it has to be authored in. In the Package Manager, packs that support autotracking show a small target icon next to their name and the
AutoTrackerflag in their metadata. - A provider. A provider is the bridge between EmoTracker and your game. Different consoles / emulators need different providers — EmoTracker currently ships with two: SNI for SNES titles and NWA for BizHawk (and any other emulator or application that hosts an NWA server) across multiple platforms. For SNI provider, install and run the SNI service separately and for emulators using Lua interfacing, the Lua file provided with SNI is required. See Bundled providers below.
- Your game, running in something the provider supports. Typically that's an emulator with the provider's integration installed, or a real console connected over USB through a cartridge like the FxPak Pro. Setup of the provider / emulator / cart is outside EmoTracker's scope — each provider has its own documentation.
EmoTracker does not read the game memory directly. It talks to the provider, which in turn talks to the emulator or device. This means you always need the provider software running alongside EmoTracker.
When a pack is loaded, an autotracker icon appears in the status bar at the bottom-right corner of the main EmoTracker window (it looks like a small target/bullseye). Its color tells you the current state at a glance:
| Color | State |
|---|---|
| Gray | Idle — no provider is active yet |
| Yellow | A provider is active but not currently connected to a device |
| Green | Connected and streaming memory updates to the tracker |
| Red | An error occurred (usually the provider / emulator dropped the connection) |
Hovering the icon shows a tooltip that says Auto-Tracking, and right-clicking it opens the autotracker control menu described below.
Open the gear menu → Application → Manage Packages, find a pack with the target icon, install it if you haven't already, and load it from the gear menu → Installed Packages list. See Installing and Loading Packages for the step-by-step.
Each provider is an external process that EmoTracker talks to over the network, so something has to be running on the other end before EmoTracker can connect:
-
SNI — a standalone daemon that listens on
localhost:8191. Start it before (or at least at the same time as) EmoTracker so the autotracker has something to talk to. - NWA — the emulator itself hosts the NWA server, so as long as an NWA-capable emulator (BizHawk or any other application that speaks NWA) is running with a ROM loaded, EmoTracker will detect it automatically on its next 5-second scan.
Each provider has its own instructions for connecting your emulator or device. Follow the provider's own documentation; common flows are:
- Emulator plugin. Install the provider's plugin into your emulator, then start the ROM.
- Emulator built-in. Some emulators include the provider's protocol natively (e.g. BizHawk with NWA support available).
- Hardware cart. Plug an FxPak Pro into a real console, then connect it to your PC over USB (SNI path).
Right-clicking the bottom-right status-bar target icon opens a menu with these entries:
| Menu item | What it does |
|---|---|
| Start | Connects to the currently selected device and begins streaming memory updates |
| Stop | Disconnects from the active provider and halts memory updates |
| Provider | Picks which provider to use. Only providers that support the current pack's platform appear — so loading a Link to the Past pack will show SNI, while other consoles will show their own providers (if available). The currently selected provider has a ✓ next to it |
| Device | Picks which device to use. The list populates after you pick a provider and refreshes automatically. Connected devices show [Connected] next to their name, and the default device has a ✓ |
| (provider options) | Dropdown or toggle entries defined by the selected provider — for example, SNI exposes Address Space (SnesABus / FxPakPro / Raw) and Memory Mapping (Auto / LoROM / HiROM / ExHiROM / SA1) |
| (device options) | Dropdown or toggle entries defined by the selected device (provider-specific) |
| (device operations) | Action buttons the device exposes (e.g. a reset or re-sync command) |
The typical first-time flow is:
- Right-click the autotracker icon.
- Provider → pick the provider for your platform.
- Device → pick your device. EmoTracker also picks the first available device automatically the first time you select a provider, so often you can skip this step.
- Start. The icon should turn green within a second or two. If it stays yellow or flips to red, see Troubleshooting.
Once the icon is green, just play. Item pickups, chest clears, dungeon prizes, and anything else the pack's autotracker script watches will update in real time.
Right-click the autotracker icon and pick Stop. The icon turns gray and EmoTracker stops reading memory. You can continue tracking manually as normal.
EmoTracker also stops autotracking automatically when:
- You load a different pack (the old pack's memory hooks are cleaned up).
- You close EmoTracker.
- The provider or emulator disappears — the icon flips to red to tell you something went wrong.
EmoTracker enforces a memory whitelist per game, shipped in the EmoTracker service. An autotracker can only read the memory regions the service has allowed for that game. This is a security measure: it prevents a pack's script from reading arbitrary memory out of your game or emulator. If a pack seems to be missing data after you connect, the most likely cause is that the region it wants to read isn't on the whitelist for that game — this is a service-side fix, not something the user can override.
See Service Backend Reference → supported_games.json for the format.
| Symptom | Likely cause |
|---|---|
| The autotracker icon doesn't appear at all | The loaded pack doesn't include an autotracker. Check the pack's entry in the Package Manager for the target icon / AutoTracker flag. |
| Icon is gray even after you click Start | No device was selected, or CanStart returned false. Re-open the menu, confirm a provider and device are both ticked, then click Start again. |
| Icon is yellow | A provider is active but the device isn't connected. Make sure the emulator / cart / provider software is running and the ROM is loaded. |
| Icon turns red mid-session | The provider or emulator dropped the connection. Usually fixable by re-selecting the device or restarting the emulator, then clicking Start again. |
| Icon is green but items aren't updating | The pack's autotracker script might not cover the item you expect, or the memory region it needs isn't whitelisted for that game. Check the pack's documentation (F1) and compare with the supported_games.json whitelist. |
Provider submenu is empty |
No bundled provider supports the loaded pack's platform. Join the EmoTracker Discord and ask about autotracking options for your setup. |
Device submenu is empty after selecting a provider |
The provider can reach your system but didn't find any devices. Make sure the emulator/cart is running before you open the menu; some providers only scan on demand. For SNI, confirm the localhost:8191 daemon is reachable. For NWA, confirm an NWA-capable host is running with a ROM loaded — give it a few seconds for the next scan cycle to pick it up. |
EmoTracker currently ships with two providers out of the box. Pick the one that matches your platform and emulator:
- Supports: SNES
-
Connection: gRPC to
localhost:8191(the default gRPC address can be overridden via thesni_grpc_addressprovider setting inapplication_settings.json) - Requires: the SNI daemon running in the background (install and start it separately; it ships with its own tray app)
- Emulator support: anything SNI itself supports — snes9x-rr, BizHawk, retroarch, FxPak Pro, etc.
-
Options:
-
Address Space —
SnesABus(default),FxPakPro,Raw. Most packs expectSnesABus; switch only if a pack's documentation tells you to. -
Memory Mapping —
Auto(default),LoROM,HiROM,ExHiROM,SA1.Autois correct for nearly every game; override only if SNI is misdetecting your ROM's mapping.
-
Address Space —
- Supports: NES, SNES, N64, Game Boy (incl. GBC / SGB), Game Boy Advance, GameCube, Genesis / Mega Drive
-
Connection: TCP to
localhost, scanning a base port of0xBEEF(48879) across 10 consecutive ports every 5 seconds. Each responding NWA host instance is surfaced as its own device. -
Requires: an NWA-capable emulator or application — BizHawk is the most common host, but NWA is an open protocol and anything that implements an NWA server will work. Whatever you use must expose the
System Busmemory domain for the current core. NWA-specific mappings are used for SNES SRAM bank and Genesis M68K BUS. - Device names include the currently loaded game title (truncated to 30 characters), so multiple running instances stay distinguishable.
-
Advanced configuration:
-
nwa_hostprovider setting inapplication_settings.json— change the target host if the NWA host is running on a different machine (defaultlocalhost). -
NWA_PORT_RANGEenvironment variable — override the scanned port range. Accepts either a single base port ("48879") or an explicit inclusive range ("48879-48888"). Must cover at most 100 ports.
-
- The NWA provider has no menu-level options and no device-level options or operations — everything configurable lives in the two settings above.
| Scenario | Use |
|---|---|
| SNES run on FxPak Pro / snes9x-rr / retroarch | SNI |
| SNES run in BizHawk only | Either SNI or NWA — SNI is the more common community default |
| NES / N64 / GB / GBA / GameCube / Genesis run in BizHawk (or another NWA-capable host) | NWA |
| Anything else not listed above | No bundled provider — join the EmoTracker Discord and ask about autotracking support for your setup |
- Installing and Loading Packages — how to find and install autotracker-capable packs
- Map Locations — the tracker UI the autotracker updates
- Item Types and Mouse Controls — if the autotracker gets something wrong you can always click to fix it manually
- Service Backend Reference — for pack authors: where the per-game memory whitelist lives
- Installation
- Installing and Loading Packages
- Item Types and Mouse Controls
- Map Locations
- Map Location Colors
- Saving and Loading
- Multi-Tab and Window
- Autotracking
- NDI Broadcasting
- Twitch Chat HUD
- Note Taking
- Voice Control
- Keyboard Shortcuts