Skip to content

JevEmon

Jev walks a real Pokemon FireRed ROM: code reads RAM and lists reachable destinations, Jev picks where to go and how to fight.

ProjectprototypeGPL-3.0

Overview

JevEmon has Jev play a real Pokemon FireRed ROM that you supply. It is not a screenshot agent or a button masher: for each leg of the walk, code reads the overworld from RAM, works out every place you could actually go from here (a door, a path to the next route, a Pokemon Center if the party needs one) and hands that list to Jev. Jev picks a destination, and code pathfinds there and presses the buttons. When a wild Pokemon interrupts, Jev fights with the same kind of typed decision, and the journey re-plans from wherever the encounter left off.

Verified milestones so far: leaving the player's house, crossing Pallet Town, travelling through Route 1 while winning wild encounters, and reaching Viridian City, where the run currently ends; later legs such as Oak's Parcel and the first gym are not built yet. A local web page lets you go live, edit the lineup, change speed and scrub recordings afterwards, and a headless run mode and an offline journey check exist. It requires an Apple Silicon Mac with mGBA, ffmpeg and uv, and is GPL-3.0 licensed.

What the decision model decides

TypeQuestionAnswers
ChoiceWhich reachable destination should the player go to next?—
ChoiceWhich battle action should be taken against this wild Pokemon?(inferred)—

How it works

  1. Read overworld state from RAM
  2. List reachable destinations
  3. Jev picks a destination; code pathfinds and presses buttons
  4. Battles decided by Jev; re-plan after encounters

Strengths

  • Grounded in RAM state rather than screenshots
  • Only offers reachable destinations
  • Live view and recordings

Caveats

  • Journey ends at Viridian City for now
  • Bring your own ROM; Apple Silicon Mac only

Getting started

cp .env.example .env, add the ROM, brew install mgba ffmpeg uv, then `uv run python scripts/setup.py`, `uv run python -m jevemon --prepare` and `uv run python -m jevemon`.

At a glance

Type
Project
Status
prototype
Language
Python
Runtime
mGBA emulator + local web UI
Has code
yes
License
GPL-3.0

Use cases and integrations

How curated lists describe it

  • Verified milestones so far: Jev can leave the Player's House, cross Pallet Town, deliver itself through Route 1 (fighting and winning any wild encounters along the way), and reach Viridian City. Further legs of the journey (Oak's Parcel, the first Gym) aren't built yet — the walk currently ends the run once it reaches Viridian City.

    logicrw/awesome-jev-projects

Frequently asked questions

How far does it get?

From the player's house to Viridian City, winning wild encounters on Route 1.

Does it use screenshots?

No, it reads game state from RAM.

Is the ROM included?

No, you must provide your own.

Related projects

  • Real-time bot battles where you write a fighter's strategy in plain English and a System One model pilots it several times a second.

    ProjectbetaTypeScript
  • Bot that plays Red Alert 2 web skirmishes, with code handling mechanics and a decision model making stance, threat and timing calls.

    ServicebetaPython
  • Multiplayer 3D science-fantasy version of Houston's River Oaks District with Jev-powered NPC companion, chauffeur and smart drive.

    ProjectbetaTypeScript
  • Browser 3D planetary rover sandbox where a TypeSafe controller chooses the next action from complete candidates, versus a baseline.

    ProjectbetaTypeScript
  • Doom runs as a spacecraft payload over real flight software; Jev pilots from the ground every half second while Claude reviews.

    ProjectprototypePython
  • Minecraft agent where Hermes plans, Jev picks one bounded action at a time and a Mineflayer harness validates and executes.

    ProjectprototypeJavaScript