跳到正文
Gbatemp· celgadis84·· 2 小时前AI 评分22

[发布/开发] Kestrel64-SDK:从零编写的裸机 N64 SDK(及原生 PS1 模拟器概念验证)

[Release/Dev] Kestrel64-SDK: Bare-metal N64 SDK written from scratch (+ Native PS1 Emulator proof of concept)

AI 导读

Kestrel64-SDK 是从零编写、无依赖 libultra 或 libdragon 的开源裸机 N64 SDK,并包含原生 PS1 模拟器概念验证。该模拟器采用自定义 MIPS 动态重编译器与直接映射 PSX GPU 调用至 RDP 的翻译层,已可启动《Tekken 3》进入游戏但未达全速。

正文

Hi everyone!

For the past few months, I’ve been working on Kestrel64-SDK, an open-source, bare-metal development SDK for the Nintendo 64 built completely from scratch in C and MIPS Assembly. It has zero dependencies on libultra or libdragon.

The goal is direct hardware control: custom runtime, direct memory management (PI/SI/VI/AI), and custom RSP microcode that dispatches commands to the RDP via a ring buffer to squeeze as much performance out of the N64 hardware as possible.

🍒 The Stress Test: Running PS1 games natively on N64
To push the SDK to its limits, I built a custom PlayStation 1 emulator running natively on the N64.

Here’s what’s under the hood:
• CPU: Custom MIPS dynamic recompiler (dynarec).
• GTE: Native GTE execution layer.
• GPU: A translator mapping PSX GPU calls directly into custom RDP commands running on the RSP.

As a proof of concept, Tekken 3 is bootable into gameplay. It’s not running at full speed yet, but every commit scratches away milliseconds and gets us closer to real-time execution.

🎥 Video Demo:
💻 GitHub Repository: https://github.com/celgadis84/Kestrel64-SDK-public

---

🚀 Supporting Development
Refactoring microcode, dynarec loops, and RDP translation takes a huge amount of time and tooling iterations. If you like the project and want to support the ongoing work, feel free to check out my Patreon:

🧡 Patreon: https://www.patreon.com/c/celgadis84

Feedback, architecture ideas, or suggestions on where to squeeze extra cycles are always welcome!

来源:Gbatemp · gbatemp.net