Back
gamesagents

TypeSafe Mario

Jev plays Super Mario Bros. from structured emulator telemetry rather than screenshots.

What Jev decides

The next controller action, whether jumping is useful now, and the immediate danger level.

The harness parses RAM and telemetry into player, trajectory, hazard, terrain, timing, and episode state. Jev chooses a legal controller macro while separate Noul and Score outputs expose jump usefulness and danger.

CHOICENOULSCORE
Jev role
Choose the next legal controller macro from parsed emulator state.
Input
Structured RAM and telemetry for player motion, hazards, terrain, reaction timing, and episode progress.
Output
One Choice, one Noul probability, and one Score distribution.
Decision frequency
By default, once every eight emulator steps.
Fallback
A scripted baseline is available; exact physics and timing stay in deterministic code.
Author reported · Source reviewed

How it works

Input
Structured RAM and telemetry for player motion, hazards, terrain, reaction timing, and episode progress.
Jev
CHOICE + NOUL + SCORE
Output
One Choice, one Noul probability, and one Score distribution.

Reported performance

GitHub stars

297

Repository adoption snapshot

Author reported · Source reviewed

Captured Sep 21, 2026

Overview

TypeSafe Mario keeps game mechanics and timing arithmetic in code. The model receives object-centric JSON describing Mario, nearby enemies, terrain geometry, recent controls, and measured response delay, then selects one legal action.

A single request also asks whether a forward jump is useful and how dangerous the immediate situation is. Those extra signals drive the dashboard rather than overriding the controller choice. The repository contains no Nintendo ROM or game data.

Language
Python
License
Not declared
Author
fhshaik
Sources checked Sep 21, 2026

Sources

Related projects