fdde4665dc
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.
22 lines
1.3 KiB
Text
22 lines
1.3 KiB
Text
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.
|