Portability

The GenDES-Core and GenDES-Emulators packages have only some dependencies with very basic classes of java.lang and java.io. They can be used with the smallest profiles of Java libraries (like CLDC).

Accuracy

GenDES is accurate enough to represent events at a precision of 2^-52 second. And events can be added up to 2^52 seconds in the future (this is about 142 millions years). This allows to not be much worried by time resolution or time span.

Throttling

GenDES can automatically adapt the virtual time of a system of devices to the real time. The technique is to use an emulation thread with time slicing. This method does not consume more CPU time than really required.

For example, on a 2.66 GHz processor with the Oracle JIT, the Game Boy emulator consumes on average less than 5% of the CPU time for a commercial Game Boy Color game and up to 9% for a color demo using 100% of the Game Boy CPU.

Generic debugging features

GenDES provides generic debugging features that just need to be overloaded with minimal efforts to support a new CPU. Currently, a disassembler window and a hexadecimal window are available. A hardware register window will also be available.

All debugging windows use a very lightweight UI system based only on characters (like a DOS UI). It is not as pretty as a traditional modern UI, but it is much faster, much smaller (in code and in memory) and much more maintenable while being as much practical for this kind of interface.