Jazz Jackrabbit 2 for Mac and Linux

Unofficial fan port · Build 1.3.3 · The Secret Files (1.24)

Jazz in Diamondus, on a widescreen display

Jazz Jackrabbit 2: The Secret Files, running natively on Mac and Linux. These versions are built from the original Windows game's own code, so everything plays exactly as it does on Windows: single player, split screen and online, including online games with Windows players.

What you need

Installing on a Mac

  1. Unzip the download and move Jazz2.app to your Applications folder, or anywhere else you like.
  2. Open it. The app is not signed with an Apple developer ID, so macOS blocks it the first time.
    • macOS 13 and 14: right-click the app, choose Open, then Open again.
    • macOS 15 and later: open it once, then go to System Settings, Privacy & Security, and click Open Anyway.
    After that it opens normally.
  3. The first time it starts, it asks for the folder with your game's files (see below) and remembers it. If you put Jazz2.app inside that folder, it uses it without asking.

Installing on Linux and the Steam Deck

The Linux version is a Flatpak bundle, Jazz2-1.3.3.flatpak, which works on any Linux with Flatpak. If your system does not have Flatpak yet, follow the steps for your distribution at flathub.org/setup. That also adds Flathub, where the shared libraries the game needs come from.

  1. Double-click the bundle to open it in your software centre and choose Install, or install it from a terminal:
    flatpak install --user Jazz2-1.3.3.flatpak
  2. Start Jazz Jackrabbit 2 from your applications menu, or with flatpak run net.digiex.jazz2decomp.v124.
  3. The first time it starts, it asks for the folder with your game's files (see below) and remembers it.

Steam Deck and Steam Machine

  1. Switch to Desktop Mode and install the bundle as above.
  2. Start the game once in Desktop Mode and choose your game folder. Game Mode cannot show a folder picker, so this has to be done here.
  3. Still in Desktop Mode, open Steam and choose Games, Add a Non-Steam Game to My Library, then pick Jazz Jackrabbit 2. It will then start from Game Mode like any other game.

Updating and removing

To update, install the new bundle the same way. It replaces the old one and keeps your settings and saved games. To remove the game: flatpak uninstall net.digiex.jazz2decomp.v124.

The game's files

The game needs a folder containing Anims.j2a, Data.j2d and at least one episode (.j2e) from version 1.24. Any levels, music and cutscenes in the same folder are picked up too. When asked, choose that folder. The game checks the files and tells you if they are from a different version or incomplete.

To switch to another folder later: Game, Change Game Folder. The game restarts with the new one.

Playing

Mac

  • The display settings are in the menu bar: View, Picture and Frame Rate.
  • ⌘ , opens them over the game, which is handy in full screen.
  • Full screen: ⌥ Return or ⌘ Ctrl F. Your display's resolution is never changed.

Linux

  • F11, or Back and Start together on a controller, opens the same settings over the game.
  • Full screen: Alt Return.

How it is made

Built from the original game's code

This is not an emulator or a remake. The Windows version of Jazz Jackrabbit 2 1.24 was decompiled to C, function by function, and each function was checked against the original running in the game. All of the game's own code, from the levels, enemies and physics to the menus, sound mixer and network code, runs here as it was written. Only the parts that talked to Windows have been replaced: the window, DirectDraw, DirectSound, input and networking now go through a thin layer on SDL 3. As a check, the ten demos that come with the game play back exactly as they do on Windows, frame for frame.

Graphics: Metal on the Mac, Vulkan on Linux

The original drew through DirectDraw at a fixed size. The game still draws each frame the same way, and the finished frame is then displayed with Metal on the Mac and Vulkan on Linux. That makes these possible:

Sound

The game's own sound and music mixer is unchanged. Instead of writing ahead into a DirectSound buffer, it now mixes at the moment the sound output asks for more, so sound effects play with very little delay.

Online

Problems and crash reports