Skip to content

A Nintendo Entertainment System (1985) emulator written in Rust.

Notifications You must be signed in to change notification settings

CadenMilne04/nes_emulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nintendo Entertainment System Emulator 🕹️

An ambitious attempt to learn the Rust programming language. (yes, this is the first time I have touched this language)

Tools 🛠️

  • 🗣️ Language: Rust
  • 📺 Graphics and I/O: SDL2 (Simple Directmedia Layer)
  • 👨‍💻 Editor: NeoVim (Check out my NeoVim config repo!)

What I learned:

  • Rust is a lot more convenient to use than just plain C, I did enjoy some of the cool syntax features and I was so happy with the todo!() function.
  • Emulation is HARD. The NES is supposed to be somewhat of a beginner system, but I did struggle with understanding some of the different hardware components and the clever memory manipulation tricks used to make those games run on the hardware that was out at the time.
  • Expanded my knowledge on assembly, machine code, and systems programming.
  • The blog introduced me to new ways to approach projects at this scale, and I did notice some of the author's programming style was admirable.

Final Thoughts:

Overall, the Rust programming experience was an enjoyable one, I think I want to move on to something else for the time being. It was cool to work on such a large project.

Demo 🎥

Super Mario Brothers

GIF Recording 2024-05-12 at 3 56 38 PM

Ice Climber

GIF Recording 2024-05-12 at 3 59 05 PM

Pac-Man

GIF Recording 2024-05-12 at 3 58 15 PM

Reference ‼️

Blog Link 🔗

https://bugzmanov.github.io/nes_ebook/chapter_1.html

In my opinion it is the best written tutorial I have seen so far online and I can't thank the author enough for the amount of work that I am sure it took to create such a good tutorial.

About

A Nintendo Entertainment System (1985) emulator written in Rust.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages