MaNES is an experimental NES emulator written from scratch in Rust. This is work in progress and I would expect something to have it "finalised" by the end of 2022.
I'm paying homage to my grandfather whose name is Manoel so "Mane" is the short version of it. In some contexts "Mane" is used as a derogatory term to indicate that someone is stupid.
My grandfather has always been my role model and extremely versatile. There is not a thing that he wasn't able to fix/amend due to his restless curiosity which is even more impressive when you take into account that his was pretty much illiterate.
Throughout his life, he managed to turn the word "Mane" into some sort of seal of quality for whatever he worked on. For instance, he would fix the car and proudly refer to himself as "Mane-Mechanic" with a big smile on his face.
He is pretty old now (83ish) and I would like to show him the "Mane Nintendo Entertainment System" to see him smile again with that joke :)
[Update: 05/06/2022] :: the doctor said his heart is very frail and that he could pass away at anytime now. Unfortunately, I don't think I will have enough time to finish this project before the worst happens... so I took the time to explain to him what this is and why I named it after him... I got the laugh I was looking for. That will live in my memory forever.
To make sure I won't lose focus on what I want this emulator to be able to do, I decided to write a list of features that I want to implement in the short to medium term.
- Emulate legal opcodes for the 6502
- Create a ROM Disassembler (somewhat similar to what objdump does)
- Create simplified GUI that contains the framebuffer and a RAM view
- Implement 1 Mapper (the simplest one)
- Write all above in Rust (that's the secondary goal for this winter project)
Things that would be fantastic to have but I am not sure that I want to spend all that time
- Implement most commons Mappers
- Audio emulation
These are all the references that helped me a lot during the development of AlmeidaOS
Forums:
Books:
For Mac OS:
brew install gtk4
For Fedora:
sudo dnf install gtk4-devel