X86/ARM Emulator
codeproject.com
codeproject.com
pfix and pfix 86 plus (of which google can find no more than 2 mentions for me!) .. Turbo Debugger was ok too. I miss the easy low level access that those tools gave me -- when I had to choose between source level debugging and low level debugging, I chose the low level ones. Partly because it was much easier to reason about the low level parts (no C++ virtual inheritance and template proliferation craziness, libraries were smaller and simpler), but mostly because they were so much faster and gave a complete picture.
Nowadays, you get no choice - gdb for low level debugging is awful, and the MS debuggers aren't much better.
[1] - http://ollydbg.de/
For anyone interested, a quick google of OllyDbg for linux leads to this list: http://ubuntuforums.org/showthread.php?t=608123&highligh...
Writing a system emulator in JS/HTML5 is a great way to learn the system being emulated, how to quickly and efficiently read assembly and/or opcodes for the processor under emulation, and acts as an introduction to HTML5 with it.
I plan to write a GB emulator too one day.
I'm a Java programmer by day job but I find it dull so this is my "hobby" at the moment