A guide to emulator development
- An Emulator
- Pre-requities
- Knowledge wise
- Implementation wise
- Need for an Emulator
- Working of Emulator
The first time I came across the word Emulator was back in 2013-14 (Wow, it’s more than a decade already!) when I was in my undergrad, and Android development was the next upcoming career trend in the region. As we know, with each development environment comes its dev tool kits and IDEs, like SDK and Android Studio. The infamously slow Android Studio provided the feature called Emulator, where there were all these imitated Android devices with their respective Android versions ranging from Cupcake to Lollipop. I was fascinated by the idea that you don't need the physical Android device . But as life happens, it got sidetracked till now. This is my study guide, and I’ll try my best to Keep it simple and sorted. Before we dive in, let’s get that foundation ready.
-
Imagine you want to know how a piece of hardware works that you can't afford, but you have knowledge on operational C, assembly language and a decent mid-range computer/laptop you could develop a virtual hardware.
Disclaimer - top-tier emulators often achieve over 95% capability and high functional accuracy compared to real hardware.
-
- Modern CPU-driven Workstation (any mid-range gaming PC)
- Basic understanding of:
- Binary and Hex
- Assembly language (Memory, Registers, Stack, Heap)
- C fundamentals:
- Functions
- Stacks
- Structure
- Pointers
- Union
- Memory Layout of C
- Storage Classes
- File manipulation
- Opcode Table
- Disassembler
- Timers
- Interrupts
- Graphics
- Buttons
- ROM vs RAM
- Sound