Giter Club home page Giter Club logo

calico-doom's Introduction

Calico

Calico is a port of the Atari Jaguar DOOM codebase back to the PC, aiming to support playing the game in its original form on that console with a minimum number of required changes. It accepts either the game's ROM file or the extracted jagdoom.wad file from inside it. You will need a backup device for Jaguar ROM cartridges in order to legally play the game.

I have undertaken reverse engineering of the GAS assembly files for the renderer, which are written in a custom assembly language understood only by the custom Tom and Jerry ASICs on the Jaguar motherboard. Gameplay GAS files were additionally verified by cross-referencing against the 3DO source code and the Doom64 EX project, both of which share about 99% of that code but already in a C form.

Calico is named in honor of my late cat, Nikki Fritz, who was a calico tabby mix, because it is a "little kitty" of a Doom port.

How to Use

After unpacking the binary build, either add a doom.jag Jaguar ROM file or jagdoom.wad to the same directory and simply double-click the executable file to start. You can also identify the file to use by using the -iwad command-line parameter, which works the same as for most other source ports. Note that any Jaguar ROM format should be supported, but only files named doom.jag will currently be autodetected. The format of the file will be detected at runtime and is not dependent on the name of the file.

Default Controls

Currently only keyboard input is supported; mouse and gamepad support will be added in future versions. The default controls, which can be rebound via the configuration file, are as follows, when using control scheme "A":

  • 1 - 9 : Select weapon
  • 0 : Toggle automap
  • Right Ctrl : Fire weapon
  • Right Alt : Press to use; hold to strafe
  • Right Shift : Hold to run
  • Arrow keys : Move the player
  • Escape : Toggle menus
  • Pause : Pause the game
  • Jaguar # Keypad button : Keypad /
  • Jaguar * Keypad button : Keypad *

Control schemes A through C are available as always through the game's menu.

Command-line Parameters

  • -devparv : Enable the original Jaguar game's debug mode
  • -nosfx : Disable digital sound effects

Configuration File Options

Eventually a configuration program will be provided, but for now the following options are available through the configuration file only:

  • aspectnum : The numerator of the fraction for the desired aspect ratio.
  • aspectdenom : The denominator of the fraction for the desired aspect ratio.
  • fullscreen : Set to "1" for true fullscreen, or "-1" for desktop-sized window.
  • linear_filtering : Set to "1" to linear filter the upscaled video output.
  • monitornum : Set to a value > 0 to move the program to a different monitor.
  • screenwidth : Set the width of the display resolution.
  • screenheight : Set the height of the display resolution.

Credits

  • Programming and Reverse Engineering : James Haley
  • Additional Code By : Samuel Villarreal, Rebecca Heineman
  • Original Jaguar DOOM Source: John Carmack, id Software

License

All original code, as well as code derived from the 3DO source code, is available under the MIT license. Code taken from Jaguar DOOM is still under the original license for that release, which is unfortunately not compatible with free software licenses (if a source file does not have a license header stating otherwise, then it is covered by the Jaguar Doom source license).

Known Issues

This program is currently in beta so some things are not finished or have known issues:

  • There is no support for music yet.
  • Demos may desync; reason is currently unknown.

calico-doom's People

Contributors

alexmax avatar haleyjd avatar

Watchers

 avatar  avatar

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.