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 <a href="https://www.nand2tetris.org/" rel="nofollow">https://www.nand2tetris.org/</a><p>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.<p>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.
Here is an interesting tidbit: the Japanese version of the SNES was called Super Famicom. There was a physical notch that prevented Japanese cartridges from being used in the North American SNES. But for people who knew, it was actually possible to just cut off the notch in the North American SNES, and then you could use Japanese cartridges. My cousin gave me a Japanese Star Fox cartridge back in the days and I could play it on the North American SNES.<p>What I really never understood is how the whole system dealt with the differences between PAL and NTSC. For starters, the Japanese system outputs in PAL, which is 625 horizontal scan lines at ~25 fps. The North American system outputs in NTSC, which is 525 horizontal scan lines at ~29.97 fps.<p>Does anybody understand how that worked?
FWIW, this seems to get reposted a lot. I think this is the fourth submission in the past 10 days. Three recent submissions:<p><a href="https://news.ycombinator.com/item?id=41207608">https://news.ycombinator.com/item?id=41207608</a> (147 points, 8 comments)<p><a href="https://news.ycombinator.com/item?id=41210537">https://news.ycombinator.com/item?id=41210537</a> (18 points, 2 comments)<p><a href="https://news.ycombinator.com/item?id=41207756">https://news.ycombinator.com/item?id=41207756</a> (2 points, 0 comments)