Skip to content

Repository files navigation

doom-logo

ACAP DOOM

⚠️ IMPORTANT ⚠️
This application is not affiliated with id Software LLC or Axis Communications AB.
Please read and respect the LICENSE to ensure compliance.
UNOFFICIAL APP
Requires "Allow unsigned apps" to be enabled on the device.
⚠️ IMPORTANT ⚠️
This application is not actively maintained.
It may not work on all devices or firmware versions.
Requires AXIS OS firmware version 11.11.220 or later, and is validated up to AXIS OS 13.

What is this?

A port of the classic DOOM engine originally developed by id Software LLC, adapted for Axis network cameras.

Runs on devices based on ARTPEC-7, ARTPEC-8, or newer ARTPEC SoCs.
Refer to your device manual to determine your platform.

This application is intended to be built on a Linux or macOS system.

Build container images

A container runtime (such as Docker) and Make must be installed before proceeding.

make containersetup

This may take some time, as all required dependencies are built during this step.

Tip

If you want to use e.g. Podman as your container runtime:

CONTAINER_RUNTIME=podman make containersetup

Build the ACAP package

⚠️ NOTE that you will need a WAD file to play and install the ACAP application.
Please read the WAD File section below.

For ARTPEC-7 devices:

make armv7hf

For ARTPEC-8 devices:

make aarch64

This may take some time, as both the application binary and the web UI are built.

Install the ACAP application

⚠️ You will need to enable unsigned ACAP packages on the Apps page: Allow unsigned apps

Run setuptarget.sh to create credentials.json (requires jq to be installed)
Set the device IP and credentials in credentials.json and:

source setuptarget.sh && make install

Otherwise, go to the device web interface at:

http://<YOUR_DEVICE_IP>/camera/index.html#/apps

and select Add app
Upload the correct .eap file to the device to install it.

Run the ACAP application

Open the app website and press the START button.

WAD file

WAD (which, according to the Doom Bible, is an acronym for "Where's All the Data?")
is the file format used by Doom and all Doom-engine-based games for storing data.

The WAD file used in ACAP Doom is the shareware version of Doom (doom1.wad, version 1.9, SHA-256 1d7d43be501e67d927e415e0b8f3e29c3bf33075e859721816f652a526cac771).

doom1.wad will automatically be downloaded when running make containersetup
When building the ACAP package, it will be copied to the project directory.

⚠️ IMPORTANT ⚠️
The user is responsible for ensuring they have the legal right to use any WAD file deployed with this application.
WAD SHOULD BE PLACED IN THE SAME DIRECTORY AS THIS README FILE

The ACAP package is assembled from the project metadata in manifest.json and the acap-build command in the Docker packaging script, which attaches doom1.wad, dropin_service.service, libwebsockets, and sndserver to the final app bundle. \

More about doom1.wad here: https://doomwiki.org/wiki/DOOM1.WAD

Expert users: Add your own WAD file

Place your WAD file in the following directory on the device:

/usr/local/packages/acap_doom

or, on AXIS OS 13.1 and newer:

/opt/apps/acap_doom

Note: Not all WAD files have been tested.

Expert users: Development

Check available build commands and helpers:

make help

To just build the application binary for current arch:

# Will build with debug symbols:
FINAL=n make build

# Deploy debug binary to target:
FINAL=n make deploy

Build and deploy the web code (requires Node.js and Yarn to be installed):

make web

# Deploy the ACAP web to target:
make deployweb

Trace logs on current sourced target device (requires Python with paramiko and scp):

make log

FAQ

Q: What is "ACAP"?

A: AXIS Camera Application Platform: An open application platform for software-based solutions built around Axis devices. More info here.

Q: Why can't I control the game?

A: Controls only work within the ACAP Doom webpage.

Q: Why are the controls slow or unresponsive?

A: There are a few steps you can take to improve the responsiveness of your game input:

  1. Try turning off other running ACAP applications.
  2. Reload the video stream or the application UI.
  3. Lower the stream resolution.
  4. Ensure you are on the same network as your device for optimal performance.

Q: Why does it not work on my device?

A: Only tested on a limited set of ARTPEC-7 and ARTPEC-8 devices.

Q: Which browsers are supported?

A: Tested on latest stable versions of Chrome and Firefox. Other browsers are unverified.

Q: Why does it not install?

A: You will need either sign the ACAP package or enable unsigned ACAP packages (no longer an option with AXIS OS 13 unless using a developer mode device) on the Apps page: Allow unsigned apps Also ensure that the application matches the device architecture.

Q: Why am I not hearing any sounds?

A: You need to plug speakers or headphones to the audio output jack of your device.

Q: Why is there no music?

A: Music support has not been implemented yet.

Q: Does it only work on devices with an ARTPEC chip?

A: Yes, it currently only works on devices based on ARTPEC-7 or newer ARTPEC SoCs.

Q: What is the purpose of this?

A: This project is primarily a technical experiment demonstrating what is possible with the ACAP SDK.

Screenshots

screenshot1

screenshot2

Credits

⚠️ IMPORTANT ⚠️
All assets, libraries, and tools are the properties of their respective owners.
DOOM is a registered trademark of id Software LLC.

About

id Software's classic FPS Doom for Axis network cameras.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages