Getting Started
- Overview: https://stackoverflow.com/a/448689
- Introduction: http://emulator101.com/
- Docs for various systems: https://github.com/Emu-Docs/Emu-Docs (combine with resources below)
- Books (not necessary): http://www.noxa.org/blog/2011/08/21/emulation-books & https://goo.gl/hFDYsh
- Subreddit: https://www.reddit.com/r/EmuDev
- Building a computer from scratch: https://www.nand2tetris.org/
- Emulation blog: http://emudev.de/
Definitions for some terms you might come across:
HLE vs LLE (High Level Emulation vs Low Level Emulation)
- https://alexaltea.github.io/blog/posts/2018-04-18-lle-vs-hle
- http://emulation.gametechwiki.com/index.php/High/Low_level_emulation
CPU emulation & JITs (Just-In-Time compilers)
- Wikipedia: Just-in-time compilation (just for an overview of what it is)
- How to Write a JIT Compiler
- The Joy of Simple JITs
- 1964 Recompiling Engine Documentation
- Adventures in NES JIT Compilation
- Xbox 360 Code Translation Techniques
Virtualization
- Virtualization Internals Part 1 - Intro to Virtualization
- Virtualization Internals Part 2 - VMWare and Virtualization using Binary Translation
- Virtualization Internals Part 3 - Xen and Paravirtualization
- Virtual Machines: Versatile Platforms for Systems and Processes (book)
- 7 Days to Virtualization: A Series on Hypervisor Development