PitchHut logo
Emulate x86 on the NES with NES86.
Pitch

NES86 is a unique project that brings IBM PC emulation to the NES platform. By emulating the Intel 8086 processor, it allows users to run the Embeddable Linux Kernel Subset and other x86 software using a simple serial terminal. Dive into a nostalgic and technical experience with NES86.

Description

NES86 is a groundbreaking IBM PC emulator designed specifically for the NES, aimed at accurately emulating the Intel 8086 processor and its supporting PC hardware. This project enables users to run the Embeddable Linux Kernel Subset (ELKS), which includes essential shell functionalities and utilities, on the NES platform. Users can also leverage this emulator for other x86 software that does not require advanced capabilities beyond a simple serial terminal.

Key Features

  • Emulates the Intel 8086 processor and compatible PC hardware.
  • Capable of running the Embeddable Linux Kernel Subset (ELKS).
  • Flexibility to run various x86 programs, contingent on resource constraints.

Compatibility

NES86 has been tested on several platforms, with successful operation confirmed only on the following:

PlatformStatus
FCEUX
Nestopia
Mesen
Mesen2
BizHawk
Everdrive N8

Building NES86

For those interested in building NES86, the following steps outline the process for building ELKS and NES86 from scratch:

  1. Clone the project repository along with its submodules:
    git clone --recurse-submodules https://github.com/decrazyo/nes86.git
    
  2. Install necessary dependencies:
    apt install make cc65 gcc-ia16-elf
    
  3. Navigate into the elks directory and create a cross directory:
    cd nes86/data/elks/elks/
    mkdir cross
    
  4. Set up the environment for the build process:
    . ./env.sh
    
  5. Build the cross tool chain (this may take some time):
    tools/build.sh
    
  6. Prepare the configuration file:
    cp nes86.config .config
    
  7. Finally, build ELKS:
    make all
    
  8. Return to the NES86 top-level directory and build NES86:
    cd ../../../
    make all
    
  9. The resultant NES ROM will be located in nes86/bin/nes86.nes.

Contributions

Contributions and ports to NES86 are encouraged. For those interested in contributing, please refer to the coding style guidelines to ensure consistency and quality.

0 comments

No comments yet.

Sign in to be the first to comment.