An infinite-world block-building game for the Nintendo 64. Runs on a stock console — no Expansion Pak, no Minecraft assets, terrain generated as you walk.
![]() |
![]() |
![]() |
World
- Endless in every direction — no borders, no loading screens, no map edge
- Terrain streamed and generated on the fly from a seed; walk back and it's the same
- Biomes: plains, forest, desert, jungle, highland, scree
- Oceans, lakes, rivers, mountains, cliffs, beaches, cave networks
- Trees that grow to fit — open-grown oaks spread wide, forest oaks go tall
- Hamlets, ruins and waystones to find
- Day/night cycle with a tilted sun and real moon phases; moonlight actually lights the ground
- Four world shapes (classic, islands, skylands, flat) plus toggles for caves, ruins, forests, critters, peaceful and bonus kit
- Original 16-colour tile art and UI font, generated at build time
Play
- Mine, place, and craft — no puzzle grid, ingredients come from your pack
- Wood/stone/iron tool tiers, each with its own in-hand silhouette
- Each sword tier has a special on L + B: a lunge, a wide cleave, a shockwave
- Cook meat over coal — a cooked cut is worth roughly twice a raw one
- Torches, doors, stairs, glass windows
- Hearts and hunger, fall damage, sprinting, swimming, ledge vaulting
- Hostile mobs at night that wind up visibly before they strike
- The Moon phase decides the night: a full Moon is crowded and spider-heavy, a new Moon nearly empty and never a spider
- Sheep, pigs and chickens that track you, flee, breed and raise young
- Split-screen co-op for up to four players on one console
- Three save slots on flashcart SD, checksummed with backup-on-write
- 64MON: optional creature-collecting mod with turn-based battles fought in-world, no battle screen — see docs/64mon.md
![]() |
![]() |
![]() |
| Control | Action |
|---|---|
| Analog stick | Left/right steers, up/down walks |
| Hold L | Sprint |
| Hold Z | Look around without turning |
| Z + C-up | Swap steering for strafing |
| A | Place, open door, use table, feed animal, eat |
| B | Hold to mine, tap to punch |
| L + B | Sword special — lunge, cleave or shockwave by tier |
| R | Jump; hold to swim up |
| L + R while moving | Vault a one-block ledge |
| C-up | First / third person |
| C-left / C-right | Cycle hotbar |
| START or C-down | Open the pack |
| D-pad | Save |
| Controller 2–4 START | Join co-op |
The stick is a rudder, not a strafe: sideways turns you, so the camera always
points where you're going and lining up on the block in front of you never
means shuffling away from it. Z + C-up swaps it if you'd rather strafe.
Build the SDK image once, then the ROM:
docker build --platform linux/amd64 -t mine64-nusys-build:local -f docker/N64SDK.Dockerfile .docker run --rm --platform linux/amd64 -v "$PWD:/work" -w /work mine64-nusys-build:local make -j2Output is build/mine64.n64. With a SummerCart64 attached, ./live-load
builds and streams to cart RAM; ./perma-load writes it to the cart's SD card.
Full setup, deployment and the texture/music/SFX pipelines: docs/building.md.
tools/preview rasterises the game's own models on your machine, straight from
the vertex data in the source — the fast way to answer anything about pose,
framing or occlusion without booting a console:
tools/preview/mob.py pig --strip head-turntools/emu drives mupen64plus through a scripted controller timeline for
repeatable GUI screenshots. Neither tool settles performance or RDP behaviour;
those belong on hardware.
| Internals | Endless-world streaming, meshing, save format, known gaps |
| Hardware notes | Freeze diagnostics and hardware faults emulators don't reproduce |
| RAM budget | Where the console's memory goes |
| Building | SDK, ROM builds, flashcart deployment, asset pipelines |
| 64MON | Type chart, roster, design notes |
| People | The shared human body, the cast, and the villagers |
| Offline preview | tools/preview reference |
| Emulator screenshots | tools/emu script grammar |
| Custom textures | Art-to-cartridge workflow |
Perlin noise by nowl. Cartridge file
access via devwizard's libcart; the
src/ff and include/ff directories come from that project.






