Caution
Nest is under development! Currently it cannot run any games yet due to the incomplete CPU implementation.
Nest is an NES (Nintendo Entertainment System) emulator written in Terracotta, a programming language that compiles into the block code for the DiamondFire Minecraft server.
The implementation of this emulator is heavily inspired by Writing NES Emulator in Rust.
- Emulation of the built-in hardware of NES (6502-based CPU & PPU)
- Running officially licensed Mapper 0 (NROM) games
- Streaming the CHR-ROM ane PPU tables to Minecraft client which receives and renders the data using custom resource pack shaders
- Basic NES controller inputs
- Multiple sessions to run emulations simultaneously for more than 1 player
To use Nest's development environment, we recommend installing Docker and Visual Studio Code. Open the project in Dev Container and it will automatically set up the required tools to start the development. Specifically, these tools will be set up:
- Terracotta VSCode Extension (contains the Terracotta compiler)
- Node.js (for pre-processing macros)
We recommend following plot specs on DiamondFire to run Nest:
- Plot: Large Plot (100)
- Node: Private Node
- You can still use regular nodes, but for now it will not perform well due to LagSlayer limits
TODO