libdragon README

The project's README from github.com/DragonMinded/libdragon. As one markdown file: README.md.

Libdragon

Build

Welcome to libdragon

[!TIP] Coming back here after a while? Check the ChangeLog of our stable branch, or the Preview branch

Libdragon is an open-source SDK for Nintendo 64. It aims for a complete N64 programming experience while providing programmers with modern approach to programming and debugging. These are the main features:

The preview branch features many more features:

and much more. These features will eventually land to trunk, but you can start playing with them even today. Go the preview branch doc for more information.

Getting started: how to build a ROM

To get started with libdragon, you need to download and install the toolchain.

Make sure to read the full installation instructions which also explain the system requirements.

Getting started: how to run a ROM

Using emulators

libdragon targets real N64 hardware and uses many advanced corners of the hardware not used by old commercial games, and thus requires a modern N64 emulator which focuses on full hardware emulation.

At the moment, the only emulator that accurately emulates the hardware (and does not just focus on playing old classics) is Ares. Ares requires a modern PC with a discrete GPU with Vulkan support.

You can develop 99% of your game using libdragon and the Ares emulator, and be confident that the game will correctly run on hardware as well. Make sure to turn on the "Homebrew mode" in Ares to enable developer specific checks during emulation that will simplify the debugging experience.

Using a development cartridge on a real N64

All cartridges that are able to load custom ROMs should be able to successfully load libdragon ROMs via either USB/serial, or from a MMC/SD card. For instance, the following are known to work: 64drive, EverDrive64 (all models), SC64.

If your cartridge has USB support, use one of the loaders that implement the libdragon debugging protocol, so to be able to show logs in console. For instance, UNFLoader, g64drive, ed64. The official loaders provided by the vendors are usually less feature-rich.

Libdragon stable vs preview

Currently, there are two main libdragon versions:

Upgrading libdragon

If you are upgrade the stable version, check the ChangeLog in the wiki to see latest changes that were merged into the stable version of libdragon. Also check the wiki page for common hurdles in upgrading libdragon.

If you are upgrading the preview version, instead, remember that some breaking changes are expected. We do not keep track of those though, so you will have to check the relevant header files yourself to check what is changed.

Resources

libdragon (DragonMinded/libdragon)

Searching Database…

1.3K ·GitHub
archived
这是什么?Libdragon 是一个用于 Nintendo 64 自制(homebrew)开发的开源 SDK,提供现代化的 C11 工具链,以及图形、音频、文件系统和调试库,用来构建真正的 N64 ROM。
这是游戏引擎,还是让我在其上自建引擎的底层 SDK?它是一个底层 SDK/工具链(基于 GCC + Newlib),带有用于 2D RDP 图形、音频混音、文件系统和调试的库;OpenGL 或第三方 Tiny3D 这类更高层的 3D 管线构建在它之上,主要位于 preview 分支。
怎么开始用 libdragon 构建 ROM?按照项目的安装说明下载并安装 libdragon 工具链;官方提供了 Docker 容器,可以快速搭好构建环境。
实际运行我构建的 ROM 需要什么?你需要 Ares 模拟器(唯一能准确模拟 N64 硬件而不仅是老商业游戏的模拟器),或者通过 64drive、EverDrive64、SC64/SummerCart64 等烧录卡在真实硬件上运行。
我该用 stable 分支还是 preview 分支?stable 分支绝不破坏向后兼容性,但大多数新功能(3D 图形、多线程、视频播放)都在 preview 分支里,那里的 API 随时可能变化;其多线程也尚未完全线程安全。
只是在模拟器里测试游戏,也需要强劲的 GPU 吗?需要——推荐的 Ares 模拟器要求一台配备支持 Vulkan 的独立显卡的现代电脑。
和 stable 相比,preview 分支有什么新东西?preview 分支新增了完整的 OpenGL 1.1(外加第三方 Tiny3D 管线)、GLTF 导入/动画系统、RSP 加速的 MPEG1 视频播放器、RDP 加速的 TrueType 文字引擎,以及实验性的实时多线程内核。
libdragon 的 ROM 除了标准 N64,也能在中国的 iQue Player 上运行吗?可以,libdragon 同时支持原版 N64 和 iQue Player,同一个 ROM 无需修改任何源代码即可在 iQue 上运行。
我可以播放哪些音频格式和编解码器?Libdragon 可以播放 WAV 音效,流式播放未压缩或 VADPCM 压缩的 WAV 音乐、Opus 压缩音频,还能播放 XM(FastTracker/MilkyTracker/OpenMPT)和 YM(Arkos Tracker 2)模块文件,全部通过 RSP 加速的 32 通道混音器实现。
这个项目还在积极维护吗?GitHub 仓库已被标记为归档,尽管 README 仍在描述两个活跃分支(stable 和 preview)并指向活跃的 Discord 社区(n64brew)——在开始新的开发之前,值得先确认项目的当前状态。
Size
103 MB
Stars
1.3K
Age
16y
Commits · 90 Days