Precise translation of arcade games from the 1980's
This project and repository supercedes the previous one at https://github.com/gary-seven/eightysArcade
Summary:
- ASxxx project:
Assembly sources to generate exact image of machine code.
Requires asez80 assembler by Alan R. Baldwin to build:
ftp://shop-pdp.net/pub/asxxxx/av5p10.zip
Requires srecord-1.64:
http://srecord.sourceforge.net/srecord-1.64.tar.gz
Code::Blocks project (.cbp) is provided to browse/edit the assembly code
(C::B lexer config in _ASxxx/contrib/lexer_zilog_z80.xml). - c_code project:
All of the game logic is to be tranlated from assembly language - MAME is used only to render graphics and sound.
The following applies specifically to Linux:
c_code project found in c_code/proj/cblin/
In the c_code/ directory:
tar xvjf ../../support/xmame-0.79.1.tar.bz2
ln -s xmame-0.79.1/ xmame
cd xmame
cat ../../../support/xmame-0.79.1_gsim.pat | patch -p1
On Debian-like systems, several development packages may need to be installed, including:
zlib1g-dev
libx11-dev
libxext-dev
libz-dev
libxi-dev
libxv-dev
libexpat1-dev
libncurses-dev
libusb-dev
libasound2-dev
libxxf86dga-dev
libxxf86vm-dev
I mostly use older versions of MAME, as I am working on low-spec machines like single-core PCs and ARM boards. I have provided "arcade/support/xmame-0.79.1.tar.bz2" (xmame archives are really hard to find on the internet these days). The patch is required to make a few small fixes and for integration with the game code.
The c_code project .cbp will incorporate the xmame sources and provide build configurations for both the C translation as well as the xmame emulator. In order to run the binaries produced by the ASxxx configuration, use xmame executable built in the Code::Blocks project, or build with make as follows:
make -f makefile.unix SOUND_ALSA=1
Before make, set CPU selection appropriate to architecture e.g.:
> #MY_CPU = i386
> MY_CPU = risc_lsb # i.MX6
Assembly files are also built by make ... see _ASxxx/Makefile, there are different names which are created - this needs to be handled better, but the purpose was to allow operation in multiple OS environments where I ended up with different versions of (x)mame to support.
You will undoubtably end up finding that there are some other binary files needed by MAME to get this all working - eventually I intend to eliminate these dependencies, and am currently experimenting with Turaco utility to dynamically generate graphics files ("04D_G06.BIN" and others which are not distributed here). For now, you'll just have to find these on your own!
Windows configuration:
Unfortunately I haven't had a chance to finish this part of the setup documentation, other than making a note of a couple blatant differences in the project configuration compared to the Linux configuration.
c_code project found in c_code/proj/cbwin
c_code is based on MAME v0.36:
https://github.com/gary-seven/MAME_hack.git
Copy or link MAME_hack/mame36/mame/ to into c_code/ directory.
Note: different versions of binary files are needed because the c_code is tied to MAME-0.36, whereas the ASxxx/Makefile I had generally used MAME-0.136. You are left to your own resourcefulness to obtain these files.