Giter Club home page Giter Club logo

carnevil-research's Introduction

CarnEvil Research

This repo contains all my research and scripts for reverse engineering CarnEvil by Midway Games.

Getting started

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).

  1. Extract the raw disk image from chd:
    • chdman extractraw -i carnevil.chd -o carnevil.raw
  2. Split the image into parts:
    • .\Carnevilraw.exe carnevil.raw
  3. 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.

What's what

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.

ROMs

  • boot.u32 or carnevil1_9.u32 - BootROM, not the actual game.
  • sound102.u95 - ROM for DCS Sound System chip (ADSP 2115)

Hard disk

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 ................

Sound:

  • BNK - DCS audio files
    • Header - 70 instances of this header
      • 00000000: 44 43 53 20 33 2e 30 DCS 3.0

Models:

  • ZM, ZM2 - Model files. Each .ZM and .ZM2 files are identical. You can prove this by comparing md5 sums. The 2s 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. The 2s 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 matching RW2 file for each RAW, they are never mentioned in the game binary and m5sums differ.
  • BIN - DCS sound system operating system files
  • RA2 - Unknown. Only one known files with this extension, BTOP.RA2that has the same md5sum as its RAW equivalent.
  • PTH, PT2 - This seem to be pathing files that dictate enemy AI movement. There is a matching PTH file for each PT2, 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.

carnevil-research's People

Contributors

xclusivor avatar

Stargazers

 avatar

Watchers

 avatar  avatar

carnevil-research's Issues

Carn Evil/midway bootrom

Would open a PR but I'll let you decide how to reference it, I've been a little obsessed lately with trying to take a hybrid approach to a few midway games when it comes to emulation (dynarec, pre-extracted CHD/cached content read from disk when the instructions are referenced etc.).

Anyway with that stumbled on your repo, and the documentation of the bootloader so wanted to show you this that I also stumbled upon:
https://github.com/historicalsource/midwayvideo/blob/main/biosrom/bios/cmain.c

Will also have to check out your python adaptations of the original exes from xentax as it looks like xentax is gone.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.