Skip to content

AWBuchanan7/N64-RPG

 
 

Repository files navigation

RPG Engine for the Nintendo 64

This is my personal fork of breadbored's project N64-RPG. It has been restructured for a simple, native Linux development environment and to my personal preferences. This fork is intended exclusively as a learning experience for me and I offer no real support for it.

About

This unnamed project is an attempt to write all the parts of an RPG from scratch. Below is the list of features currently being written:

  • Actors
  • Player
  • Camera
  • NPCs
  • Collision
  • Map Rendering
    • Background (Landscape) Tilemap
    • Foreground (Structure / Building) Tilemap
    • NPC Map Layer
    • Entrance/Exit Layer
      • Entrance/Exit Triggers
      • Map Switching
    • Map Builder (external tool; Tiled)
    • Tilemap Renderer from Map Builder's Binaries

Setup

This project assumes you are running Linux and have installed libdragon.

It has been exclusively tested on Debian 12.5 and Ubuntu 23.10, with Libdragon 13.2.0. Builds have been tested on an NTSC Nintendo 64 with an Everdrive X7 running OS 3.07.

To build the N64 rom file n64rpg.z64 run:

  • make assets
  • make

Editing the Map with Tiled

The map was generated using Tiled. You can find the project file at map/n64-rpg.tiled-project. I export as a CSV called overworld.csv and it will generate a CSV for each layer.

To build the map, run the included tool with python3 tools/makemap.py to generate the map file.

Important notes

I work only in the positive area (0,0) and higher. Do not add any tiles in the negative coordinates or it will shift the entire map.

Tiled does not export with perfect coordinates in CSV format, so every layer must have a tile in the (0,0) coordinate. This is to prevent offset problems. For example, the background layer has a grass tile at (0,0), and the foreground layer has a tree.

About

An RPG engine made for the Nintendo 64

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 95.4%
  • Python 2.1%
  • Makefile 1.4%
  • Shell 1.1%