This is a custom translator for Tail Gunner running on the Cinematronics arcade machine. There already exists a general- purpose stand-alone Cinematronics emulator (CINEMU); a port of this (x86 assembler-based code) is in Retrocade; and a C version (which does not run Tailgunner) is in MAME. This code is *NOT* a general purpose emulator. It is a specialised translator for one program only - tailgunner. Since there is a small and fixed number of CINEMU games, this translation could in theory be applied to each of them and there would be no more need for a general purpose emulator, unless someone is writing new games! By generating a conforming C source, we can port tailgunner to many more platforms - including, significantly, the Palm Pilot whose CPU is so slow that there is no way a general purpose emulator like MAME would run on it; and which is a 68000 so the optimised x86 assembly modules from CINEMU and Retrocade won't run on it. program "translate" converts tailgunr.?? into C source "tailgunr-ops.c" translate has a couple of flags which can cause it to generate run-time tracing, and extra comments in the source code The guts of translate is "macros.h" "makearray" does a simple reformatting of the roms into a C array, "tailgunner-data.c" The C framework file "tailgunr.c" includes the two files above and actually executes the tailgunner program when compiled. The generated source omits labels for lines of code which are not obviously jumped to. This allows GCC to generate some basic blocks to analyse, with the result that a lot of the redundant generated code can be removed completely by the compiler, leading to a generated program which is if anything even more compact than the original. "cinedism" is zonn's disassembler - a disassembled output is in "tailgunr.asm"; a straight hex dump (looking for strings?) is in "tailgunner.hex" I realise the naming isn't very consistent. I'll eventually tidy it up.