summaryrefslogtreecommitdiff
path: root/emulators/generator/DESCR
blob: 7d4dc2f6e2b9ba91b7e5557a14ce095f90345d2c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Generator is an open source emulator designed to emulate the Sega
Genesis / Mega Drive console, a popular games machine produced in the
early 1990s.  It is a portable program written in C and has been
ported to the Amiga, Macintosh, Windows and even pocket PCs such as
the iPAQ and Cassiopeia.  Natively it compiles under unix for X
Windows with either tcl/tk or gtk/SDL, for svgalib and even
cross-compiles to DOS with djgpp/allegro.

Generator uses its own custom 68000 processor emulation which is
designed for dynamic recompilation, and uses techniques from this such
as block-marking, flag calculation removal, operand pre-calculation,
endian pre-conversion etc.  There are approximately 1600 C routines
generated by the first stage of compilation to cope with the 67
instruction families.  These routines are used as a 'backup' when
dynamic recompilation isn't supported on your platform or the
recompiler doesn't support a particular instruction.  The CPU engine
is by all accounts very fast, whatever the mode.

There is a 'test' recompiler written for the ARM processor, but it is
no longer supported.  If someone with assembler knowledge wants to put
the effort into writing a recompiling back-end for a processor (and it
really is major effort), let me know - particularly if you know i386.