I built this cause I wanted a emulator for the Arduino UNO, not a simulator that doesn't tell me why and where thing crash. I've semi bricked many Arduino units, but always got them back up and running with another UNO. With this emulator, I can properly debug my system step by step, see the registers/memory, and see when memory writes go out of bounds.
For decoding the opcodes, I used a vector table of 65536 entries.
There are 107 opcode groups, 131 total instruction variants.
Right now I have 90 more opcodes to complete.
This emulator will be cycle accurate, support virtual GPIO, and console printing.
For the moment, I'm skipping working with the boot loaders, but it's a option for the future.