Awesome-omni-skill hyrule-navigator
Autonomous navigation agent for Oracle of Secrets. Uses static map data and dynamic RAM state to localize Link and route him to destinations.
install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data-ai/hyrule-navigator" ~/.claude/skills/diegosouzapw-awesome-omni-skill-hyrule-navigator && rm -rf "$T"
manifest:
skills/data-ai/hyrule-navigator/SKILL.mdsource content
Hyrule Navigator
Scope
- Localize Link in the game world (Dungeon Room or Overworld Screen).
- Plan paths between rooms (Macro-Pathing) using
.world_graph.json - Steer Link to specific coordinates (Micro-Pathing) within a room.
- Handle transitions (Doors, Stairs, Entrances).
Core Capabilities
1. Localization
Identify where Link is using RAM:
- Dungeon: RoomID (
), X ($7E00A0
), Y ($7E0022
).$7E0020 - Overworld: ScreenID (Calc from X/Y), Global X/Y.
- Context:
flag (Indoors
).$7E001B
2. Macro-Pathfinding
Route from current location to a target room/screen.
- Uses
(compiled fromworld_graph.json
data).z3ed - Returns a sequence of actions:
.[Go West Door, Take Stairs Up, Enter Cave]
3. Micro-Steering
Move Link to a specific pixel/tile coordinate.
- Input: Target X, Y.
- Control: PID-like loop reading RAM and pressing D-Pad.
- Safety: Checks for collisions (future) and stuck states.
Workflow
- Where am I?
-> "Room 0x1B (Dungeon), Tile (10, 20)".navigator locate
- Route:
-> "Path: West Door -> Room 0x1A".navigator route --to 0x1A
- Execute:
-> Autonomously moves Link.navigator drive --path ...
Dependencies
- Data:
(Must be up-to-date with ROM).~/src/hobby/yaze/world_graph.json - Tools:
(for map data), Mesen2 socket CLI (for RAM/Input).z3ed - Scripts:
.~/src/hobby/yaze/scripts/ai/navigator.py
Commands
: Print current localization info.navigator locate
: Plan path to target.navigator route <target_id>
: Plan and execute movement.navigator goto <target_id>
Example Prompts
- "Where am I currently located in the game?"
- "Navigate Link to Room 0x1A from the current position."
- "Find a path to the nearest Dungeon Exit."
- "What are the neighbors of the current room?"
Troubleshooting
- "Neighbors: []": Check
connectivity. Runworld_graph.json
again.map_compiler.py - Localization Failed: Ensure Mesen2 socket control is running (
). Verify RAM addresses in/tmp/mesen2-*.sock
match the active ROM version.navigator.py - Stuck Walking: Micro-pathing collision avoidance is primitive. Manually guide Link if stuck on complex geometry.