Skip to main content
Glama
AstralVoidZ
by AstralVoidZ

ppsspp_frame_snapshot

Pause the emulator, capture PC, registers, and optional probes, then resume, returning the snapshot for debugging. Optional data returns null when disabled.

Instructions

PURPOSE: One-call paused scene snapshot — pause (unless already paused), capture pc + registers + optional named probes, then resume.

USAGE: session_id; probes = optional comma-separated state_observer registry names; want_registers default true. Prefer this over a manual pause + query(registers) + resume sequence.

BEHAVIOR: STATE-CHANGE. The session lock is held for the whole call (pause→capture→resume is short). A CPU we paused is resumed before returning; an already-paused CPU stays paused. A failing capture never leaves the game frozen.

RETURNS: {was_stepping, resumed, pc, trust_level, registers, probes} — registers/probes keys are ALWAYS present; they carry null when opted out (want_registers=false / probes omitted) — F-8 nullable-key contract, 2026-09-08.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
probesNoOptional comma-separated state_observer registry probe names to capture alongside the CPU state (empty = none).
session_idYesActive session ID.
want_registersNoInclude the full CPU register dump (GPR/FPU/VFPU).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
pcNoProgram counter, hex string (high trust).
probesNostate_observer capture block (when requested).
resumedNoTrue when the tool resumed a CPU it had paused (an already-paused CPU is left paused).
registersNoFull GPR/FPU/VFPU register dump (when requested).
trust_levelNosafe_get_pc trust level.
was_steppingNoTrue when the CPU was already paused at entry.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly discloses that this is a state-changing operation, that the session lock is held for the whole call, that a paused CPU is resumed before returning, that an already-paused CPU stays paused, and that a failing capture never leaves the game frozen. These details go well beyond the sparse annotations and are exactly the behavioral context an agent needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is organized into short labeled sections — PURPOSE, USAGE, BEHAVIOR, RETURNS — and every sentence adds distinct information. There is no filler despite covering multiple facets of the tool's behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a state-changing, multi-step tool with an output schema, the description covers purpose, invocation parameters, lock and resume semantics, failure behavior, and the exact return shape including the nullable-key contract. Nothing an agent needs to safely call this tool is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents all three parameters at 100% coverage, so the baseline is 3. The description reinforces defaults and semantics (optional probes, want_registers default true) but mostly mirrors the schema rather than adding new parameter-level meaning. The nullable-key contract is valuable but is return behavior, not parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a precise composite operation: pause (unless already paused), capture PC + registers + optional probes, then resume. This clearly distinguishes it from a manual pause/query/resume sequence and from sibling tools like get_pc or query. The verb and resource are specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit invocation guidance and directly recommends this tool over a manual pause + query(registers) + resume sequence, which is the natural alternative. It does not enumerate all sibling exclusions, but the usage context is clear enough for an agent to know when to choose this combined snapshot action.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.