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 — open-source SDK для homebrew-разработки под Nintendo 64: современный тулчейн C11 плюс библиотеки графики, звука, файловой системы и отладки для сборки настоящих ROM-образов N64.
Это игровой движок или низкоуровневый SDK, на котором я построю свой движок?Это низкоуровневый SDK/тулчейн (на базе GCC + Newlib) с библиотеками для 2D-графики RDP, микширования звука, файловых систем и отладки; более высокоуровневые 3D-конвейеры вроде OpenGL или стороннего Tiny3D надстраиваются сверху, в основном в ветке preview.
С чего начать сборку ROM с libdragon?Скачайте и установите тулчейн libdragon по инструкциям проекта; для быстрой настройки сборочного окружения предоставляется Docker-контейнер.
Что нужно, чтобы запустить собранный ROM?Нужен либо эмулятор Ares (единственный, кто точно эмулирует железо N64, а не только старые коммерческие игры), либо реальное железо с флеш-картриджем вроде 64drive, EverDrive64 или SC64/SummerCart64.
Какую ветку использовать — stable или preview?Stable никогда не ломает обратную совместимость, но большинство новых возможностей (3D-графика, многопоточность, воспроизведение видео) живёт в ветке preview, где API могут измениться в любой момент; многопоточность там тоже пока не полностью потокобезопасна.
Нужна ли мощная видеокарта просто для теста игры в эмуляторе?Да — рекомендуемому эмулятору Ares нужен современный ПК с дискретной видеокартой с поддержкой Vulkan.
Что нового в ветке preview по сравнению со stable?Ветка preview добавляет полный OpenGL 1.1 (плюс сторонний конвейер Tiny3D), систему импорта/анимации GLTF, ускоренный через RSP плеер видео MPEG1, ускоренный через RDP текстовый движок TrueType и экспериментальное многопоточное ядро реального времени.
Работают ли ROM от libdragon на китайском iQue Player, как на обычной N64?Да, libdragon поддерживает и обычную N64, и iQue Player, причём один и тот же ROM может работать на iQue без каких-либо изменений исходного кода.
Какие аудиоформаты и кодеки можно воспроизводить?Libdragon умеет проигрывать звуковые эффекты WAV, стримить музыку в WAV без сжатия или со сжатием VADPCM, стримить звук со сжатием 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