EternalNGE is a cross-platform software framework for developing emulators/simulators providing generic interfaces for graphics, sound, etc. The primary focus is on game-consoles though the design allows for any device using i2c, memory mapped io, etc.