Git Product home page Git Product logo

doom64ultra's Introduction

Doom 64 ULTRA

The best way to play Doom 64 on your N64 console. Based on Doom 64-RE. Play it as a new experience on the original N64 game, or use it a base for enhanced mods.

Features

  • Jumping/Crouching
  • Freelook
  • Rumble pak support
  • Autoaim option
  • Fly mode cheat
  • Widescreen support
  • Additional linedef types from Doom64EX-Plus
  • More controller options
    • Turok-style and Perfect Dark-style controls
    • Dual analog support with two controllers
    • N64 mouse support
  • High resolution video modes (expansion pak required)
  • Persistent saves to SRAM (no more controller pak requirement)
  • Quick saves (for saving/loading during a level)
  • Per-monster colored blood particles
  • Enhanced HUD with text colors, weapon cycle and damage direction indicators
  • Keys and key doors display on the automap
  • Lots of bugfixes and optimizations
  • Expanded difficulty settings
    • "Hardcore!" from Complete Edition
    • "Nightmare!" from PC Doom
    • "Ultra-Nightmare!" inspired by Doom 2016
    • "Be Merciless!" from Merciless Edition
    • Custom difficulty menu for further options
  • Many additional enhancements from Merciless, eXpanded and Complete editions
    • Autorun option
    • Map stats option
    • Options to toggle bilinear filtering, dithering, interlacing, anti-aliasing
    • Additional cheats: keys, noclip, lock monsters, colors, fullbright, gamma correct, music test

See also TODO.md for a list of planned future features.

Building

A Debian-based Linux distribution is required to build. WSL on Windows will also work.

First, CrashOveride's Modern N64 SDK must be installed. Then, install these packages with apt-get:

sudo apt-get install binutils-mips-n64 gcc-mips-n64 newlib-mips-n64 n64sdk-common n64sdk makemask

The data files from the original game must be placed in the data folder in order to build. The required files are: DOOM64.WAD, DOOM64.WMD, DOOM64.WSD, DOOM64.WDD. Currently these can be extracted from the original game ROM using the d64make utility. See the d64make README for instructions on how to install it.

d64make build /path/to/doom64.z64 -o data/DOOM64.WAD

Using the data from the 2020 Remaster is also supported, and is recommended due to its higher quality sound effects. The data must be converted by d64make to the N64 format in order to use it:

d64make build /path/to/Doom64/DOOM64.WAD -o data/DOOM64.WAD

Once the SDK packages are installed and the data is in place, the rom can be built by invoking "make":

make -j

Additional options can be provided to configure or debug the ROM:

make -j REGION=JP                    # Build against Japan ROM data

make -j REGION=EU                    # Build against Europe ROM data

make -j DEBUG=1                      # Turn off optimizations and enable extra debugging features

make -j DEBUGOPT=1                   # Enable extra debugging features but leave optimizations on

make -j SOUND=0                      # Disable sound

make -j INTRO=0                      # Skip the intro screens on boot and go straight to the menu

make -j WARP=XX                      # Warp to map number XX on boot

make -j WARP=XX SKILL=3              # Warp to map number XX on boot, with the specified difficulty (1-5)

make -j CHEATS=CF_GODMODE+CF_NOCLIP  # Spawn with cheats enabled (see doomdef.h for more CF_ flags)

make -j USB=1                        # Enable Flashcart USB Screenshot/Demo transfers
                                     # Supports EverDrive, 64Drive, SC64
                                     # When used with DEBUG=1, enables debug logging over USB

make -j GDB=1                        # Enable GDB debugging over USB (implies DEBUG=1 and USB=1)

make -j DEBUG_DISPLAY=2              # Show debug frame counter by default (see ST_DrawDebug for more values)

make -j DEBUG_MEM=1                  # Enable extra heap/stack overflow checking (slow)

make -j FORCE_NO_EXPANSION_PAK=1     # Limit RAM usage to 4MB (for testing)

make -j REQUIRE_EXPANSION_PAK=0      # Disable expansion pak requirement screen

make -j BENCHMARK_MAP_LOAD=1         # Measure all map loading times on boot

Code Completion

The Bear utility can be used to generate clang code completion. As of this writing, clang does not support some of the MIPS compiler flags we use. This can be worked around by removing them:

make clean && bear -- make -j DEBUG=1 && sed -iE 's/.*\(=vr4300"\|-mgp32\|-mabi=\).*//' compile_commands.json

Contact

Join the Doom 64 Discord: https://discord.gg/Ktxz8nz

doom64ultra's People

Contributors

immorpher avatar jnmartin84 avatar erick194 avatar azamorapl avatar crashoveride95 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.