This repo contains all my research and scripts for reverse engineering CarnEvil by Midway Games.
To access the game executable and assets you will needs CarnEvil's chd file and MAME's chdman. You will also need these Window's programs written by daemon1 (They never released source for these programs, but they can be easily decompiled. I plan on making python equivalents).
- Extract the raw disk image from chd:
chdman extractraw -i carnevil.chd -o carnevil.raw
- Split the image into parts:
.\Carnevilraw.exe carnevil.raw
- Extract the files from part0:
.\Carnevilpart.exe part0
Each "part" is a parition of the hard drive image. part0 seems to contain most game assets and execualbes that are listed below. Further research needs to be done on the other partitions.
This section briefly describes the known files from ROMs and the raw hard disk image. Additional info about each file will be located in the docs folder.
boot.u32
orcarnevil1_9.u32
- BootROM, not the actual game.sound102.u95
- ROM for DCS Sound System chip (ADSP 2115)
Executable MIPS-IV code:
DIAG.EXE
- Diagnostics menu that can be run during GAME.EXE execution by pressing F2. Performs hardware and CRC-based file integrity checks. Includes sound and hard drive tests, as well as gun calibration. This menu is also described in the CarnEvil Operations Manual.GAME.EXE
- Main game code. Appears to be a flat binary with code + data ordered respectively(?).
Textures:
WMS
- Texture files. Presumably named after WMS Industries who developed arcade games at the time.- Header - 1132 instances of this header, potential false-positives.
00000000: 05 80 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ................
- Header - 1132 instances of this header, potential false-positives.
Sound:
BNK
- DCS audio files- Header - 70 instances of this header
00000000: 44 43 53 20 33 2e 30 DCS 3.0
- Header - 70 instances of this header
Models:
ZM
,ZM2
- Model files. Each.ZM
and.ZM2
files are identical. You can prove this by comparing md5 sums. The2
s may be used as backus. The extension is never mentioned in the game binary.ZA
,ZA2
- Animation files. Each.ZA
and.ZA2
files are identical. You can prove this by comparing md5 sums. The2
s may be used as backups. The extension is never mentioned in the ga,e binary.
Misc:
RAW
- These are considered "camera files" by the game. Perhaps these dictate the way the cameras move?RW2
- There is a matchingRW2
file for eachRAW
, they are never mentioned in the game binary and m5sums differ.BIN
- DCS sound system operating system filesRA2
- Unknown. Only one known files with this extension,BTOP.RA2
that has the same md5sum as itsRAW
equivalent.PTH
,PT2
- This seem to be pathing files that dictate enemy AI movement. There is a matchingPTH
file for eachPT2
, they are never mentioned in the game binary and m5sums match.AUDITS.FMT
- File written by the game that contains game statistics. Arcade operators could use this to see statistics about the games performance, profitability, completion rates, cab abuse and more. Could help them determine whether the game was worth maintaining and keeping on the floor.ADJUST.FMT
- File written by the game that contains settings for difficulty, gore intensity, sound mode (mono/stereo) and more.FILESYS.CHK
- Contains file metadata for integrity check. File size, CRC hash etc.