AnotherWorld_VMTools icon indicating copy to clipboard operation
AnotherWorld_VMTools copied to clipboard

Toolchain for software development targeting the virtual machine originally designed for Eric Chahi's Another World game.

Another World VM Tools

  • Toolchain for software development targeting the virtual machine originally designed for Eric Chahi's Another World game.
  • The scripts in this repo are Licensed under the GPL version 3 or later
  • All scripts require Python 3.
  • There's a MAME fork with an implementation of the Another World VM available at https://github.com/felipesanches/mame/tree/anotherworld which can be used to run any "romset" compiled with the assembler provided by this toolchain. (Note: Do not forget to also copy the text-string and font ROMs from the hardcoded_data directory to your MAME rompath when running the driver - See also: issue #15)

Install

You need to first install dependencies by doing:

pip install -r requirements.txt

Scripts Descriptions and Use

The simplest way to use this to get bytecode disasm listing (assuming you have a copy of the game files for MSDOS saved on the original/msdos/ directory) is to perform the following commands:

./awvm-disasm.py original/msdos/ all_levels msdos

Below is a more detailed description of each individual script:

awvm-disasm.py

  • Disassembles ROM files and generates an assembly source code tree.
  • Includes data files extracted from the resource files such as SVG images.

awvm-asm.py

  • Assembles a source tree into bytecode binaries (with embedded data).
  • We expect perfect round-tripping of a source tree, meaning that awvm-asm.py should generate binary outputs absolutely identical to the inputs of awvm-disasm.py.

build_and_run.sh

  • Helper shell script that builds an assembly source tree, copies the generated ROM files to the MAME rompath and executes the emulator.
  • This script needs to be tweaked to use the directory paths of your project files, MAME executable, etc...

Development

Create and activate your virtual environment

  • virtualenv venv -p python3
  • source venv/bin/activate
  • pip install -r requirements.txt