---
title: "Hyrule 3D"
url: https://manvsmidi.com/projects/hyrule3d/
category: game
status: playable
date: 2026-10-09
tags: [nes, 3d, remake, web]
play: https://manvsmidi.com/play/hyrule3d/
related: [mario3d, dungeonremaster2, cube, phonyhawk]
---

# Hyrule 3D

> The original NES Legend of Zelda in first person. The overworld, all nine dungeons, caves, enemies and dialogue are decoded at runtime from your own ROM and built into 3D.

Game · Playable · 2026-10-09

**Play in the browser:** https://manvsmidi.com/play/hyrule3d/
Bring your own ROM: it asks for a Legend of Zelda (NES) file, which stays in your browser.

A first-person version of the first *Legend of Zelda*. You walk the overworld at ground level, swing the sword with the mouse, and go down into dungeons room by room. None of Nintendo's data ships with it: on startup it asks for your own copy of the NES ROM, decodes everything it needs from that file, and keeps the ROM in the browser.

![Inside the first cave: the old man stands between two fires with the wooden sword at his feet, under the text IT'S DANGEROUS TO GO ALONE! TAKE THIS.](https://manvsmidi.com/_astro/cave.DiSS1MMy.png)
*The first cave, with the old man's line typed out in the game's own font.*

## What's in it

- **The overworld.** All 128 screens joined into one seamless 256×88-square map. Cliffs, trees, boulders, graves, Armos statues and water are 3D blocks textured with the original 16×16 tiles and palettes.
- **Secrets.** Bombable walls, trees you burn with the candle, rocks and gravestones you push, Armos statues that wake up, and the recorder draining the Level 7 lake.
- **Caves.** The old man and his sword, shops, take-any rooms, secret money, hint caves and the door-repair charge, filled in from the ROM's cave tables.
- **Dungeons 1–9.** Every room built from its original layout, with locked, bombable, fake and shutter doors, item cellars, transport stairs, bosses and Triforce pieces. Level 9 opens once you hold all eight pieces.
- **Enemies.** Spawned from the original monster lists and drawn as billboards made from the original sprites, with simple AI per family: rock-throwers, hopping Tektites, Keese, Leevers, Zoras, Wizzrobes, blade traps and bosses.

## How it works

The ROM decoder reads the column-compressed room layouts, CHR patterns, palettes, monster lists, sprite frames, items and text, following the community disassembly. A chunked block mesher turns the decoded screens and rooms into three.js geometry with half-square collision. The HUD redraws the NES status bar and minimap, and the dialogue types out in the game's own font. Sound effects are small square-wave beeps in the spirit of the NES APU rather than the original audio. Progress saves to the browser.

Controls are mouse-look and WASD, with the sword on left click and the selected B item on right click.

## Connected projects

- [mario3d](https://manvsmidi.com/projects/mario3d/index.md): linked
- [dungeonremaster2](https://manvsmidi.com/projects/dungeonremaster2/index.md): shared tags: remake
- [Cube Trainer](https://manvsmidi.com/projects/cube/index.md): shared tags: 3d
- [Phony Hawk: Faux Skater](https://manvsmidi.com/projects/phonyhawk/index.md): shared tags: 3d
