Giter Club home page Giter Club logo

rdeprera / doom64ex Goto Github PK

View Code? Open in Web Editor NEW

This project forked from svkaiser/doom64ex

0.0 0.0 0.0 12.18 MB

:hurtrealbad: Doom64EX is a reverse-engineering project aimed to recreate Doom64 as close as possible with additional modding features :finnadie:

Home Page: http://doom64ex.wordpress.com/

License: GNU General Public License v2.0

C 9.68% C++ 87.05% CMake 2.84% Ruby 0.18% Shell 0.01% Roff 0.18% Vala 0.07%
doom nintendo-64 game-engine doom64 linux-game windows-game macos-game shooter-game fps-shooter

doom64ex's Introduction

Doom64EX Build Status

Doom64EX is a reverse-engineering project aimed to recreate Doom64 as close as possible with additional modding features.

NOTICE 2nd February 2017 The supplementary data file kex.wad has been renamed to doom64ex.pk3.

Installing

At the moment there are no official binary builds. You can find older versions here.

Compiling

It's possible to compile Doom64EX yourself. Officially, only Linux, Windows and macOS are supported. Patches for alternative operating system are gladly accepted, however.

Dependencies

Ubuntu 14.04 Fedora 24 Arch Linux / MSYS2* on Windows Homebrew on macOS
C++14 compiler g++-10 gcc gcc Xcode
CMake cmake cmake cmake cmake
SDL2 libsdl2-dev SDL2-devel sdl2 sdl2
SDL2_net libsdl2-net-dev SDL2_net-devel sdl2_net sdl2_net
zlib zlib1g-dev zlib-devel zlib zlib
libpng libpng-dev libpng-devel libpng libpng
FluidSynth** libfluidsynth-dev fluidsynth-devel fluidsynth N/A

* MSYS2 uses a naming convention similar to the one utilised by Arch, except packages are prefixed with mingw-w64-i686- and mingw-w64-x86_64- for 32-bit and 64-bit packages, respectively.

** FluidSynth is optional. The fluidsynth-lite fork can be used instead.

Note: You may also need to install dynamic libraries separately.

CMake options (-D parameter)

option/parameter description default
ENABLE_TESTING Compile unit tests ON
ENABLE_SYSTEM_FLUIDSYNTH Link with system-wide fluidsynth and not fluidsynth-lite OFF
ENABLE_GTK3 Display windows using GTK+3 ON
VERSION_DEV Add git commit hash to window title ON

CMake examples

A common no-dev and tunning setup for compiling is cmake -DENABLE_SYSTEM_FLUIDSYNTH=ON -DVERSION_DEV=OFF -DENABLE_TESTING=OFF ..

  • Using the system-provided FluidSynth library (default OFF)

    Doom64EX uses fluidsynth-lite to reduce the number of dependencies. If you wish to use FluidSynth as provided by your package-manager, add -DENABLE_SYSTEM_FLUIDSYNTH=ON as a cmake argument.

    user@linux:~$ cmake -DENABLE_SYSTEM_FLUIDSYNTH=ON ..
  • Using the GTK3 for windows (default OFF)
    user@linux:~$ cmake -DENABLE_GTK3=ON ..
  • Without Unit Tests (default ON)
    user@linux:~$ cmake -DENABLE_TESTING=OFF ..
  • Without Git Commit Hash (version) on window title (default ON)
    user@linux:~$ cmake -DVERSION_DEV=OFF ..

On Linux

All of these steps are done using the terminal.

Prepare the Dependencies

On Ubuntu:

$ # Add additional toolchains
$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test
$ sudo apt update

$ # Install GCC
$ sudo apt install build-essential gcc-6 g++-6

$ # Install dependencies
$ sudo apt install git cmake libsdl2-dev libsdl2-net-dev zlib1g-dev libpng-dev

On Fedora:

$ # Install development group
$ sudo dnf groupinstall "Development Tools and Libraries"

$ # Install dependencies
$ sudo dnf install git cmake sdl2-devel sdl2_net-devel zlib-devel libpng-devel

On Arch Linux:

$ # Install dependencies
$ sudo pacman -S git gcc cmake sdl2 sdl2_net zlib libpng

If you want FluidSynth (on Ubuntu or any other Debian Like distro, for example) you need libfluidsynth-dev: sudo apt install libfluidsynth-dev

Clone and Build

Find a suitable place to build the program and navigate there using cd.

$ # Clone this repository (if you haven't done so already)
$ git clone https://github.com/rdeprera/Doom64EX.git --recursive
$ cd Doom64EX

$ # If you have previously cloned the repository, you'll need to also grab the fluidsynth-lite submodule
$ git submodule update --init --recursive

$ mkdir build       # Create a build directory within the git repo
$ cd build          # Change into the new directory
$ cmake ..          # Generate Makefiles without options (parameter -D) - default setup
$ make              # Build everything
$ sudo make install # Install Doom64EX to /usr/local

You can now launch Doom64EX from the menu or using doom64ex from terminal.

NOTICE Ubuntu ships with a severely outdated version of CMake, so you'll need to create the doom64ex.pk3 file manually.

Compiling on Windows

Download and install CMAKE. Follow the instructions on the website and make sure to update the system. Clone the repository in a suitable place to build the program.

Next, download the Win32 Dependencies. Extract the archive into the extern directory. Also remember to clone fluidsynth-lite and generate the .lib and .dll files. Place these in extern\lib and extern\bin, respectively.

Next, generate the MSVC project files.

$ mkdir build                           # Create a build directory within the git repo
$ cd build                              # Change into the new directory
$ cmake .. -G "Visual Studio 15 2017"   # Generate MSVC 2017 files

Visual Studio 2017 project files will now be sitting in the build directory.

Compiling on macOS

Install Xcode for its developer tools. Follow the instructions to install Homebrew. You can probably use other package managers, but Doom64EX has only been tested with Homebrew.

Open Terminal.app (or a terminal replacement).

$ # Install dependencies
$ brew install git cmake sdl2 sdl2_net libpng zlib

Find a suitable place to build the program and navigate there using terminal.

$ # Clone this repository (if you haven't done so already)
$ git clone https://github.com/rdeprera/Doom64EX --recursive

$ # If you have previously cloned the repository, you'll need to also grab the fluidsynth-lite submodule
$ git submodule update --init --recursive

$ mkdir build       # Create a build directory within the git repo
$ cd build          # Change into the new directory
$ cmake ..          # Generate Makefiles
$ make              # Build everything
$ sudo make install # Install Doom64EX.app

You will now find Doom64EX in your Applications directory.

Creating doom64ex.pk3

If for some reason CMake refuses to automatically generate the required doom64ex.pk3, you can easily create it yourself.

Data Files

The data files required by Doom64EX to function are:

  • doom64ex.pk3 (Generated by cmake)
  • doom64.wad
  • doomsnd.sf2

To generate the two latter files, acquire a Doom64 ROM and run:

$ doom64ex -wadgen PATH_TO_ROM

This will generate the required files and place them somewhere where Doom64EX can find them.

Doom64EX needs the Doom 64 data to be present in any of the following directories.

On Linux and BSDs

  • Current directory
  • The directory in which the doom64ex executable resides
  • $XDG_DATA_HOME/doom64ex (usually ~/.local/share/doom64ex)
  • /usr/local/share/games/doom64ex
  • /usr/local/share/doom64ex
  • /usr/local/share/doom
  • /usr/share/games/doom64ex
  • /usr/share/doom64ex
  • /usr/share/doom
  • /opt/doom64ex

On Windows

  • Current directory
  • The directory in which the doom64ex executable resides

On macOS

  • Current directory
  • ~/Library/Application Support/doom64ex

Community

Official Blog

Discord

doom64ex's People

Contributors

alexey-lysiuk avatar alice-mkh avatar faxdoa avatar kamikazow avatar kmg1 avatar manuel-k avatar mdeguzis avatar nvllsvm avatar pinkwah avatar rdeprera avatar ryan-sg avatar shockwavenn avatar skyehdd avatar svkaiser avatar tatsh 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.