Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,659 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Jazz² Resurrection
Open-source Jazz Jackrabbit 2 reimplementation
Brought to you by @deathkiller

Introduction

Jazz² Resurrection is reimplementation of the game Jazz Jackrabbit 2 released in 1998. Supports various versions of the game (Shareware Demo, Holiday Hare '98, The Secret Files and Christmas Chronicles). Also, it partially supports some features of JJ2+ extension and MLLE. This repository contains fully rewritten game in C++ with better performance and many improvements. Further information can be found here.

Build Status Latest Release All Downloads Code Quality License Discord

Preview

Preview

Running the application

Windows

  • Install Microsoft Visual C++ Redistributable
  • Download the game
  • Copy contents of original Jazz Jackrabbit 2 directory to ‹Game›\Source\
  • Run ‹Game›\Jazz2.exe, ‹Game›\Jazz2_avx2.exe or ‹Game›\Jazz2_sdl2.exe application

‹Game› denotes path to Jazz² Resurrection. The game requires Windows 7 (or newer) and GPU with OpenGL 3.3 support. Game files should not be copied to Program Files. Cache is recreated during the intro cinematics on the first startup, so it can't be skipped. Also, the sound effects in the intro cinematics require the cache, so they will be missing the first time the game is started up.

Linux

  • Download the game
  • Install dependencies: sudo apt install libcurl4 libglew2.2 libglfw3 libsdl2-2.0-0 libopenal1 libvorbisfile3 libopenmpt0
    • Alternatively, install provided .deb or .rpm package and dependencies should be installed automatically
  • Copy contents of original Jazz Jackrabbit 2 directory to ‹Game›/Source/
    • If packages are used, the files must be copied to ~/.local/share/Jazz² Resurrection/Source/ or /usr/local/share/Jazz² Resurrection/Source/ instead, please follow instructions of specific package
  • Run ‹Game›/jazz2 or ‹Game›/jazz2_sdl2 application
    • If packages are used, the game should be visible in application lists

‹Game› denotes path to Jazz² Resurrection. ~ denotes user's home directory. The game requires GPU with OpenGL 3.3 or OpenGL ES 3.0 (ARM) support. Cache is recreated during the intro cinematics on the first startup, so it can't be skipped. Also, the sound effects in the intro cinematics require the cache, so they will be missing the first time the game is started up.

Alternatively, you can use package repository for your Linux distribution:
ArchLinux Debian Flathub Gentoo NixOS OpenSUSE Ubuntu XtraDeb

macOS

  • Download the game and install provided .dmg application bundle
  • Copy contents of original Jazz Jackrabbit 2 directory to ~/Library/Application Support/Jazz² Resurrection/Source/
  • Run the newly installed application

~ denotes user's home directory. Cache is recreated during the intro cinematics on the first startup, so it can't be skipped. Also, the sound effects in the intro cinematics require the cache, so they will be missing the first time the game is started up.

Alternatively, you can install it using Homebrew brew trust deathkiller/jazz2 and brew install deathkiller/jazz2/jazz2

Android

  • Download the game
  • Install Jazz2.apk or Jazz2_x64.apk on the device
  • Copy contents of original Jazz Jackrabbit 2 directory to ‹Storage›/Android/data/jazz2.resurrection/files/Source/
    • On Android 11 or newer, you can Allow access to external storage in main menu, then you can use these additional paths:
      • ‹Storage›/Games/Jazz² Resurrection/Source/
      • ‹Storage›/Download/Jazz² Resurrection/Source/
  • Run the newly installed application

‹Storage› usually denotes internal storage on your device. Content directory is included directly in APK file, no action is needed. The game requires Android 5.0 (or newer) and GPU with OpenGL ES 3.0 support. Cache is recreated during the intro cinematics on the first startup. Also, the sound effects in the intro cinematics require the cache, so they will be missing the first time the game is started up.

Nintendo Switch

  • Download the game
  • Install Jazz2.nro package (custom firmware is needed)
  • Copy contents of original Jazz Jackrabbit 2 directory to /Games/Jazz2/Source/ on SD card
  • Run the newly installed application with enabled full RAM access

Cache is recreated during the intro cinematics on the first startup, so it can't be skipped. It may take more time, so white screen could be shown longer than expected. Also, the sound effects in the intro cinematics require the cache, so they will be missing the first time the game is started up.

Web (Emscripten)

  • Go to https://deat.tk/jazz2/wasm/
  • Import episodes from original Jazz Jackrabbit 2 directory in main menu to unlock additional content

The game requires browser with WebAssembly and WebGL 2.0 support – usually any modern web browser.

Libretro core (RetroArch)

  • Copy jazz2_libretro.so (and jazz2_libretro.info, if provided) to the frontend's cores directory
  • Copy the Content/ directory next to the game files, then copy contents of original Jazz Jackrabbit 2 directory to Source/ beside it:
    • ‹Game›/Content/ and ‹Game›/Source/ – Cache/ is generated next to them
    • Alternatively, place them in the frontend's system directory as ‹System›/jazz2/Content/ and ‹System›/jazz2/Source/
  • Load any file from ‹Game›/Source/ (for example Anims.j2a) as content, or start the core without content if ‹System›/jazz2/Content/ exists
  • Settings, progress, highscores and the resumable state are written to ‹Saves›/jazz2/ in the frontend's saves directory

The core exposes the RetroPad as a gamepad (up to 4 players, local splitscreen included) and supports online multiplayer unless it was built without it. By default the core runs at the target refresh rate of the frontend (50–240 Hz, the game logic is frame-rate independent), the Frame rate core option can force the original fixed 60 FPS instead. The core renders at 720×405 – the native logical resolution of the game (the same cap applies to the standalone game, whatever the window size) – and the frontend scales it to the screen, so the video shaders and scaling options of the frontend replace the in-game Rescale Mode. Sound is mixed by OpenAL into the frontend's audio callback (through ALC_SOFT_loopback), so the frontend's volume, filters and recording apply to it. Save states use the game's own level-resume snapshot – saving works at any point (a state saved outside gameplay is empty and loading it has no effect) and restores the current level and players, but states are not frame-exact, so netplay, run-ahead and rewind are not supported, and the files can't be moved to a machine with a different architecture. Reset is not supported either. Cache is recreated during the intro cinematics on the first startup, so it can't be skipped.

Xbox (Universal Windows Platform)

  • Download the game
  • Install Jazz2.cer certificate if needed (the application is self-signed)
  • Install Jazz2.msixbundle package
  • Run the newly installed application
  • Copy contents of original Jazz Jackrabbit 2 directory to destination shown in the main menu
    • Alternatively, copy the files to \Games\Jazz² Resurrection\Source\ on an external drive to preserve settings across installations, the application must be set to Game type, exFAT is recommended or correct read/write permissions must be assigned
  • Run the application again

Cache is recreated during the intro cinematics on the first startup, so it can't be skipped. It may take more time, so white screen could be shown longer than expected. Also, the sound effects in the intro cinematics require the cache, so they will be missing the first time the game is started up.

Building the application

This section contains only a brief explanation of the build process. For a more detailed explanation, including build configuration parameters, please refer to the developer documentation.

Windows

  • Build dependencies will be downloaded automatically by CMake
    • Can be disabled with NCINE_DOWNLOAD_DEPENDENCIES option, then download build dependencies manually to .\Libs\
  • Build the project with CMake

Linux

  • Build dependencies will be downloaded automatically by CMake
    • Can be disabled with NCINE_DOWNLOAD_DEPENDENCIES option, then download build dependencies manually to ./Libs/
    • System libraries always have higher priority, there is no need to download them separately if your system already contains all dependencies
    • In case of build errors, install following packages (or equivalent for your distribution):
      libgl1-mesa-dev libglew-dev libglfw3-dev libsdl2-dev libopenal-dev libopenmpt-dev libcurl4-openssl-dev zlib1g-dev
  • Build the project with CMake

macOS

  • Build dependencies will be downloaded automatically by CMake
    • Can be disabled with NCINE_DOWNLOAD_DEPENDENCIES option, then download build dependencies manually to ./Libs/
  • Build the project with CMake

Android

  • Install Android SDK (preferably to ../android-sdk/)
  • Install Android NDK (preferably to ../android-ndk/)
  • Install Gradle (preferably to ../gradle/)
  • Build dependencies will be downloaded automatically by CMake
    • Can be disabled with NCINE_DOWNLOAD_DEPENDENCIES option, then download build dependencies manually to ./Libs/
  • Build the project with CMake and NCINE_BUILD_ANDROID option

Nintendo Switch

cmake -D CMAKE_TOOLCHAIN_FILE=${DEVKITPRO}/cmake/Switch.cmake -D NCINE_PREFERRED_BACKEND=SDL2

Web (Emscripten)

cd ..
git clone https://github.com/emscripten-core/emsdk.git
cd emsdk
./emsdk install latest
./emsdk activate latest
  • Build dependencies will be downloaded automatically by CMake
    • Can be disabled with NCINE_DOWNLOAD_DEPENDENCIES option
  • Copy required game files to ./Content/ directory – the files must be provided in advance
  • Build the project with CMake and Emscripten toolchain

Libretro core (RetroArch)

  • Build the project with CMake and NCINE_BUILD_LIBRETRO option, the result is a jazz2_libretro shared library instead of an executable
cmake -D NCINE_BUILD_LIBRETRO=ON
  • By default the core uses the software renderer, so it runs on any frontend. Use NCINE_PREFERRED_RHI to render on the GPU instead – the hardware core requires OpenGL ES 3.0 and a frontend context obtained through SET_HW_RENDER
cmake -D NCINE_BUILD_LIBRETRO=ON -D NCINE_PREFERRED_RHI=OpenGL
  • No window backend (GLFW, SDL2 or Qt5) is needed. Multiplayer (local splitscreen and online) is included as in the regular game, add -D WITH_ONLINE_MULTIPLAYER=OFF to build the core without the online part (which also drops the ENet, IXWebSocket and OpenSSL dependencies)

Xbox (Universal Windows Platform)

  • Build dependencies will be downloaded automatically by CMake
    • Can be disabled with NCINE_DOWNLOAD_DEPENDENCIES option, then download build dependencies manually to .\Libs\
  • Run CMake to create Microsoft Visual Studio 2019 (or newer) solution
cmake -D CMAKE_SYSTEM_NAME=WindowsStore -D CMAKE_SYSTEM_VERSION="10.0"

License

This project is licensed under the terms of the GNU General Public License v3.0 and uses extensively modified nCine game engine.

About

🎮 · Jazz² Resurrection: Native C++ reimplementation of Jazz Jackrabbit 2

Topics

Resources

Stars

691 stars

Watchers

12 watching

Forks

Used by

Contributors

Languages