An NES game written in 6502 assembly
Note
This project is under heavy development
- PPU - Picture Processing Unit
- APU - Audio Processing Unit
- NMI - Non-Maskable Interrupt
- post-boot hardware init (RESET NMI)
- disable APU interrupts
- clear PPU memory
- clear system memory
- wait for vblank
- read controller data from memory-mapped registers
- PPU setup
- load palettes
- load sprites
- Rendering
- Handle the PPU NMI
- Object entity system
- metatile support
- Level data loading
- compressed-tile format
- generating PPU display data from level data
- basic physics support
- NPC support
- screen scrolling
This project requires the cc65 toolchain (ca65 assembler + ld65 linker) and GNU Make. To build it run
make
This will output a game.nes
file which can be tested in an emulator or transferred onto a flashcart and played on a real console.
Note
This game targets the Famicom system model.
This project wouldn't be possible without the tremendous documentation work done by the NESdev community and their help on Discord. Thank you!