{"id":25932145,"url":"https://github.com/breadbored/n64-rpg","last_synced_at":"2025-03-04T00:16:14.066Z","repository":{"id":196413585,"uuid":"696032763","full_name":"breadbored/N64-RPG","owner":"breadbored","description":"An RPG engine made for the Nintendo 64","archived":false,"fork":false,"pushed_at":"2023-12-06T02:34:25.000Z","size":4955,"stargazers_count":177,"open_issues_count":2,"forks_count":3,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-05-02T04:07:49.231Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/breadbored.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-09-24T23:48:55.000Z","updated_at":"2024-04-30T13:52:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"c835af77-2f6a-4a50-8a02-72ba788e1377","html_url":"https://github.com/breadbored/N64-RPG","commit_stats":null,"previous_names":["breadbored/n64-rpg"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/breadbored%2FN64-RPG","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/breadbored%2FN64-RPG/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/breadbored%2FN64-RPG/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/breadbored%2FN64-RPG/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/breadbored","download_url":"https://codeload.github.com/breadbored/N64-RPG/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241758919,"owners_count":20015251,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-04T00:16:13.130Z","updated_at":"2025-03-04T00:16:13.912Z","avatar_url":"https://github.com/breadbored.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RPG Engine for the Nintendo 64\n\n## About\n\nThis unnamed project is an attempt to write all the parts of an RPG from scratch. Below is the list of features currently being written:\n\n- [x] Actors\n- [x] Player\n- [x] Camera\n- [x] NPCs\n- [x] Collision\n- [ ] Map Rendering\n  - [x] Background (Landscape) Tilemap\n  - [x] Foreground (Structure / Building) Tilemap\n  - [ ] NPC Map Layer\n  - [ ] Entrance/Exit Layer\n    - [ ] Entrance/Exit Triggers\n    - [ ] Map Switching\n  - [x] Map Builder (external tool; Tiled)\n  - [x] Tilemap Renderer from Map Builder's Binaries\n\n## Setup\n\nIf you are on Windows, you will need to first set up WSL to get a linux environment in Windows\n\nYou will need to install the following (if you are using WSL, you will need to install inside that environment):\n\n- Docker\n- NodeJS \u003ev18\n- NPM\n\nTo get libdragon setup, you will need to run the following:\n\n- Make sure the Docker daemon is running\n- `npm i libdragon -g`\n- `cd /path/to/this/project`\n- `libdragon init`\n\nTo build the project:\n\n- `libdragon make assets`\n- `libdragon make`\n\nThis will produce an N64 ROM  called `breacodes.z64`\n\n![Screenshot](screenshot.png)\n\n## Playing\n\n### The best way to play is on a real Nintendo 64 via a flashcart\n\nHowever if you must use an emulator, you must use an accurate emulator such as Ares. Common emulators are ***not*** accurate. They are typically optimized to run official games at a good speed, but are not hardware accurate. `libdragon` is a different from the official SDK, and most emulators cover emulation for the official SDK only, meaning it requires hardware accuracy or specially built support.\n\n\n## Editing the map\n\nTo make the map, I used software called [Tiled](https://thorbjorn.itch.io/tiled?download). 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. \n\nTo build the mpa, run the included tool with `python3 tools/makemap.py` to generate the map file.\n\nImportant notes:\n\nI 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.\n\nTiled 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.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbreadbored%2Fn64-rpg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbreadbored%2Fn64-rpg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbreadbored%2Fn64-rpg/lists"}