Hacker News new | ask | show | jobs
by monero-xmr 661 days ago
Nand 2 Tetris (which gets posted on HN a lot, rightly) will give you a fundamental understanding of a lot of these low-level concepts https://www.nand2tetris.org/

A good exercise for the junior systems engineer, or someone who wants to fundamentally understand computers better than the REPL, is to build their own emulator.

There is likely a wealth of tutorials out there, but if there is not yet a canonical book on how to write an NES, Genesis, SNES, etc. emulator from scratch that can load real ROMs, I think this would really scratch an itch for the aspiring hardcore developer. It is a very illuminating exercise and given the performance of modern computers and the extensive number of graphics libraries for every semi-popular language in existence, I think a universal book could be written that pseudo-codes the concepts of emulation and enables developers of all stripes to build their own emulator.

1 comments

I always upvote mentions of Nand2Tetris, this course helped me understand how computers REALLY work. I'm in the middle of writing a Typescript NES emulator. Even with the help of the excellent Mesen emulator, it's a challenging task! It amazes me how people could first write these emulators that worked so well in the 90s with such few resources.