Skip to content

Autotracking

codemann8 edited this page May 1, 2026 · 5 revisions

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.

What you need

Autotracking requires three pieces working together:

  1. 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 AutoTracker flag in their metadata.
  2. 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.
  3. 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.

The autotracker icon

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.

Turning autotracking on

1. Load an autotracker-capable pack

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.

2. Start the provider

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).

3. Right-click the autotracker icon

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)

4. Pick a provider, then a device, then Start

The typical first-time flow is:

  1. Right-click the autotracker icon.
  2. Provider → pick the provider for your platform.
  3. 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.
  4. 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.

Stopping autotracking

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.

Memory access safety

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.

Troubleshooting

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.

Bundled providers

EmoTracker currently ships with two providers out of the box. Pick the one that matches your platform and emulator:

SNI (Super Nintendo Interface)

  • Supports: SNES
  • Connection: gRPC to localhost:8191 (the default gRPC address can be overridden via the sni_grpc_address provider setting in application_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 SpaceSnesABus (default), FxPakPro, Raw. Most packs expect SnesABus; switch only if a pack's documentation tells you to.
    • Memory MappingAuto (default), LoROM, HiROM, ExHiROM, SA1. Auto is correct for nearly every game; override only if SNI is misdetecting your ROM's mapping.

NWA (Network Access)

  • Supports: NES, SNES, N64, Game Boy (incl. GBC / SGB), Game Boy Advance, GameCube, Genesis / Mega Drive
  • Connection: TCP to localhost, scanning a base port of 0xBEEF (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 Bus memory 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_host provider setting in application_settings.json — change the target host if the NWA host is running on a different machine (default localhost).
    • NWA_PORT_RANGE environment 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.

Which one should I use?

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

See also

Clone this wiki locally