deathkiller / jazz2-native Goto Github PK
View Code? Open in Web Editor NEWđŽâ¡âJazz² Resurrection: Native C++ reimplementation of Jazz Jackrabbit 2
Home Page: https://deat.tk/jazz2/
License: GNU General Public License v3.0
đŽâ¡âJazz² Resurrection: Native C++ reimplementation of Jazz Jackrabbit 2
Home Page: https://deat.tk/jazz2/
License: GNU General Public License v3.0
When trying to compile on Ubuntu 20.04 for aarch64 I get this error
/Jazz2-native/Jazz2/nCine/Base/../../Common.h:101:22: error: '::abort' has not been declared
Any thoughts?
In issue #19 you mentioned wanting to build a Flatpak version, but didn't know how do do so. Well, here it is: gh-fork-dump/tk.deat.Jazz2Resurrection. It's very easy to build using flatpak-builder
and runs great on my Linux desktop and Steam Deck.
I'd like to submit this to Flathub, and I need two things:
dead.tk
though.I used flathub's Submission documentation as a guide when building. You can get away with just installing flatpak
using your distro's package manager for everything.
Some notes when doing this:
Regarding Jazz 2, the existing spinning ammo icons generally don't hint at what the weapon is and/or does. Would it be possible to add a text string just below the weapon wheel, which will display the name of the currently-highlighted weapon, as long as the weapon wheel is visible on-screen?
Dan, hi! Sorry for disturbing you.
I have special VS 2022 Preview edition, not 2019 stable. And I have not enough free space on my oldest notebook, so no CMake installed. I think BuildUWP.bat will generate a tons of errors :(
Please help to generate UWP project for Visual Studio... if you can :)
Best wishes,
[m][e]
Hi! Just discovered that Jazz2 Resurrection has been ported to C++, it's a very nice thing and I hope to get this running on The Pi4 without X11 (it seems to target SDL2, so it will be possible to run the game without X11!!!)
However, trying to build on x86_64 Debian 11 Stable, I get some errors like this one:
/usr/include/c++/10/bits/basic_string.tcc:1481:50: error: expected primary-expression before â,â token
1481 | typename __istream_type::sentry __cerb(__in, false);
Maybe it's not yet possible to build this C++ port? Maybe it hasn't been tested on Debian 11 where GCC is gcc version 10.2.1
?
Thanks!
Hey! I decided to give this repo a try to compile on my RPi4 (using official stock Raspberry Pi OS 32bit version).
Everything went perfect with compilation (I used clang gcc script, no SDL, just changed the -j8 to -j4 for make).
However when I start playing, the playable character always goes left if no buttons are touched. Does this somehow happen since last commits, or can this be armhf specific problem?
The default renderer uses non-square pixels, which looks bad
Edit: Completely reworded my request
1.7.0
Currently the macOS build only supports macOS 12.6+, I'm still on macOS 11 because my MacBook Pro 11,3 cannot be upgraded to newer OSes. Would be nice to have a way to build for older Macs
Maybe expose a way to let us bring our own dependencies or library? I see that the library files are compiled in a certain way... Maybe you share the build script?
I really enjoy this project, but noticed there was an issue. The cutscenes for the game currently are stretched to the aspect ratio of the screen as opposed to playing in the original ratio of 4:3. I was wondering if there was something that could be done about this for the cutscenes in particular.
Following b8b7cc6#commitcomment-86262687, I've placed the Content folder to "/usr/share/Jazz² Resurrection" and game data into "~/.local/share/Jazz² Resurrection/Source" and now I'm getting the following error whenever the game tries to load a .j2b file:
static std::unique_ptrnCine::IAudioLoader nCine::IAudioLoader::createFromFile(const Death::Containers::StringView&) -> Loading from file "/home/pbpro/.local/share/Jazz² Resurrection/Source/Intro.j2b"
void nCine::StandardFile::OpenStream(nCine::FileAccessMode, bool) -> File "/home/pbpro/.local/share/Jazz² Resurrection/Source/Intro.j2b" opened
static std::unique_ptrnCine::IAudioLoader nCine::IAudioLoader::createLoader(std::unique_ptrnCine::IFileStream, const Death::Containers::StringView&) -> Extension unknown: "j2b"
virtual void nCine::StandardFile::Close() -> File "/home/pbpro/.local/share/Jazz² Resurrection/Source/Intro.j2b" closed
nCine::AudioStream::AudioStream(const Death::Containers::StringView&) -> Audio file "/home/pbpro/.local/share/Jazz² Resurrection/Source/Intro.j2b" cannot be loaded
jazz2_build.log.gz (replace .gz with .7z)
jazz2_absolute_path.log
jazz2_relative_path.log
Jazz² Resurrection version: 1.7.0
Device: Samsung Galaxy Z Fold4, Android 13.0
When I connect a Xbox One V4 controller via Bluetooth, everything works perfectly. However, when I connect a DualSense controller instead, there are several issues:
I assume controller mappings are incorrect or missing. Maybe they could be synced with the latest version of https://github.com/godotengine/godot/blob/master/core/input/gamecontrollerdb.txt?
For reference, my DualSense's GUID is 030000004c050000e60c000011810000
on Linux (not sure if it's different on Android).
N/A
Linux, Firefox 114.0.2 and Chromium 114.0.5735.133
Game crashes on startup with "The application crashed. Refresh the page or check the browser console for details."
Console output:
Aborted() [wasm:52:12](http://deat.tk/jazz2/wasm/)
printErr http://deat.tk/jazz2/wasm/:52
abort http://deat.tk/jazz2/wasm/jazz2.js:1
_abort http://deat.tk/jazz2/wasm/jazz2.js:1
<anonymous> http://deat.tk/jazz2/wasm/jazz2.wasm:22484
<anonymous> http://deat.tk/jazz2/wasm/jazz2.wasm:484725
<anonymous> http://deat.tk/jazz2/wasm/jazz2.wasm:1925237
<anonymous> http://deat.tk/jazz2/wasm/jazz2.wasm:2617645
x http://deat.tk/jazz2/wasm/jazz2.js:1
doRewind http://deat.tk/jazz2/wasm/jazz2.js:1
handleSleep http://deat.tk/jazz2/wasm/jazz2.js:1
callUserCallback http://deat.tk/jazz2/wasm/jazz2.js:1
safeSetTimeout http://deat.tk/jazz2/wasm/jazz2.js:1
onerror: [object ErrorEvent] [wasm:113:11](http://deat.tk/jazz2/wasm/)
Uncaught RuntimeError: Aborted(). Build with -sASSERTIONS for more info.
abort http://deat.tk/jazz2/wasm/jazz2.js:1
_abort http://deat.tk/jazz2/wasm/jazz2.js:1
x http://deat.tk/jazz2/wasm/jazz2.js:1
doRewind http://deat.tk/jazz2/wasm/jazz2.js:1
handleSleep http://deat.tk/jazz2/wasm/jazz2.js:1
callUserCallback http://deat.tk/jazz2/wasm/jazz2.js:1
safeSetTimeout http://deat.tk/jazz2/wasm/jazz2.js:1
[jazz2.js:1:576059](http://deat.tk/jazz2/wasm/jazz2.js)
Tested on Firefox and Chromium
I think it's worth adding that installing the game on an Ubuntu-based operating system requires Ubuntu Jammy as base package, because Bionic and Focal doesn't have and can't have libglew2.2.
Bionic has version 2.0 (supported until 2023) and Focal has version 2.1 (supported until 2025).
If you try install game with .deb in Focal or Bionic it will warn you that the dependencies cannot be met and refuses to install.
This also applies to the portable Linux version.
If you can compile .deb file in Ubuntu Bionic as base package you also have forward compatibility for Focal and Jammy.
It might be a good idea to host them on your website as it took me awhile to find the source (https://www.pukenukem.com/downloads/tsfdemo.exe, https://archive.org/download/JazzJackrabbit2Demo/J2swc123.exe), which files and which versions to use with the game and also unpacking them. It would be convenient to just download them (think of Android for example)
I'm using the GOG version on Ubuntu 22.10 and the game crashes less then one second into the opening animation.
Terminal output https://pastebin.com/iPxeVj4P
2.0.0
macOS Sonoma beta 3, 2020 Mac mini
The opening cinematic appears to have its correct sequenced music file playing, but is missing all of the scripted sound effects which play throughout.
2.1 possibly others. 1.91 and 2.0 also
Hyperbola Intel HD Graphics 4000
I get this issue when I try to type in ./jazz2 after chmod +x has been applied to your linux version.
/home/localuser/.local/share/Jazz² Resurrection/Update/jazz2: error while loading shared libraries: libOpenGL.so.0: cannot open shared object file: No such file or directory
Ironic thing is, I have opengl unless your thinking of a specific opengl version that I don't have.
I haven't yet added the files needed to start the game yet, but I am fully aware if that the above shared library issue would come up now rather than later.
Btw, Hyperbola is based on Arch and is focused on stability and security so it uses debian patches currently.
1: downloaded the linux binary,
2: extracted it,
3: went into the folder its in,
4: chmod +x jazz2
5: Then I typed in terminal ./jazz2 and viola that bug came up.
GOG version, game crashes after the intro video, what do I do?
2.6.1
Raspberry Pi 4, Raspbian 64-bit
Hi. It seems there is something messing with the input. Wherever I play Jazz 2 with a Bluetooth gamepad and with the default assignment, Jazz keeps going left. Workaround is to unmap the default controls for the gamepad.
Build Jazz² Ressurrection as usual and start the game with default controls assigned to a bluetooth gamepad.
Demo source: https://www.pukenukem.com/downloads/tsfdemo.exe
I've tried renaming files to lowercase (per #10 (comment)), removing ~/.local/share/Jazz² Resurrection/Cache
folder and running release 1.2.0 (as that's what's currently used in http://deat.tk/jazz2/wasm/). Compiled with GCC 12.1.0 if that helps.
Hi! Thanks for your development! I'm testing the game on my MacBook Air 2020 (M1) - works pretty good under Rosetta 2. However, the one thing disappointed me - an icon. On Retina displays it is... awful, sorry.
Do you plan to change it? I made a simple vector icon with Jazz for me. Maybe you'll be interested to add it to new release?
2.6.1
Linux Hyperbola 0.4.4 IntelÂŽ HD Graphics 4000
After the make part, it fails at 100% like the below:
/usr/bin/ld: _deps/ncine_libraries-src/Linux/x86_64/libopenmpt.so: undefined reference to std::__throw_bad_array_new_length()@GLIBCXX_3.4.29' /usr/bin/ld: _deps/ncine_libraries-src/Linux/x86_64/libopenmpt.so: undefined reference to
__libc_single_threaded@GLIBC_2.32'
/usr/bin/ld: _deps/ncine_libraries-src/Linux/x86_64/libopenmpt.so: undefined reference to std::to_chars(char*, char*, double)@GLIBCXX_3.4.29' /usr/bin/ld: _deps/ncine_libraries-src/Linux/x86_64/libopenmpt.so: undefined reference to
std::__glibcxx_assert_fail(char const*, int, char const*, char const*)@GLIBCXX_3.4.30'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/jazz2.dir/build.make:4688: jazz2] Error 1
make[1]: *** [CMakeFiles/Makefile2:100: CMakeFiles/jazz2.dir/all] Error 2
make: *** [Makefile:156: all] Error 2
attempted compiling after,
mkdir build in the main folder, cd build, cmake .. CMAKE_SYSTEM_PREFIX_PATH=/usr
then make
at 100% it fails for some reason. No idea why. Maybe glibc related? Sorry, would build from earlier release probably but you have no archives.
I will say, I look forward to online mode.
Hi @deathkiller!
This is not a real issue, but I did not know how else I could reach you.
I just wanted to let you know, that I have managed to port your project to multiple handheld consoles (PortMaster) and it delivers tons of fun to many players. I am truly thankful for your effort, it brings back a lot of great memories!
Could a deb package be made for Debian/Ubuntu?
2.3.0
Linux OpenSuse Leap 15.4 gcc-13
Attempting to build from source produces the following error:
c++: error: unrecognized command line option â-Wpessimizing-moveâ
c++: error: unrecognized command line option â-Wredundant-moveâ; did you mean â-Wredundant-declsâ?
The flags were added to the cmake/ncine_compiler_options.cmake file in the commit 9d0afff397a033940ca8ed63994e1b12896c815
Removing the flags manually from the file fixes the build.
git clone https://github.com/deathkiller/jazz2-native
cd jazz2-native
mkdir build && cd build
Android app 2.1.0 & source files JJ2SF 1.24
Android 13
Hi :)
First of all, kudos for great work on this â works really well on Android!
On PC you can save the game in any point in time, give it a name and then load it on the next run. I don't see this in Android version. You can "Save & exit" when playing but it doesn't save anything and there is no way to load that save afterwards.
Hi!
I'm packaging Jazz2 for Ubuntu 22.04+ and I'm planning to add it to the XtraDeb games portfolio. Maybe, even Debian, later on. Doing so, I noticed that the game icon doesn't show up properly in the Dock (defaulting to the Gnome generic one).
You can find below the fix I applied. Perhaps, you could also apply it upstream.
Index: jazz2-1.5.0/Sources/project.desktop
===================================================================
--- jazz2-1.5.0.orig/Sources/project.desktop 2023-01-14 21:32:27.000000000 +0100
+++ jazz2-1.5.0/Sources/project.desktop 2023-01-17 00:35:04.971421789 +0100
@@ -5,6 +5,7 @@
TryExec=@CPACK_EXECUTABLE_NAME@
Exec=@CPACK_EXECUTABLE_NAME@
Icon=@CPACK_EXECUTABLE_NAME@
+StartupWMClass=@NCINE_PREFERRED_BACKEND@-Application
Terminal=false
Type=Application
Categories=Game;
Additionally, and because there is no section to place questions.
I'm building the game package with:
-DCMAKE_BUILD_TYPE=Release \
-DNCINE_DOWNLOAD_DEPENDENCIES=OFF \
-DNCINE_LINUX_PACKAGE=jazz2 \
-DNCINE_WITH_GLEW=OFF \
-DNCINE_VERSION_FROM_GIT=OFF \
-DNCINE_LINKTIME_OPTIMIZATION=ON
This defaults to glfw. ARe these settings good for a release? Is it worth also building sdl or even qt5? Will the the end user loose anything if I don't?
I also noticed, that even if I pre-download the dependencies (Libs) they are not used. I assume the system dependencies are covering for this. Correct me if I'm wrong.
cmake,
libgl1-mesa-dev,
libglfw3-dev,
libsdl2-dev,
libopenal-dev,
libopenmpt-dev,
zlib1g-dev
Last, this is the Debian package copyright I'm planning to attach. Is it OK with you or would you like to make some adjustments in the Files:* Copyright?
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: jazz2
Source: https://github.com/deathkiller/jazz2-native
Files: *
Copyright: Copyright (C) 2007 Free Software Foundation, Inc.
License: GPL-3.0+
Files: debian/*
Copyright: Copyright (C) 2023 Jhonny Oliveira <my email>
License: GPL-3.0+
Thank you!
Best regards,
Jhonny Oliveira
2.4.1
Example: I'd like to assign both LT and RT to fire, and LB and RB to jump. Currently I'm not finding a way to achieve this.
I tried to use AntiMicroX, unfortunately some hardcoded built-in mappings conflict with it, e.g. B will always be "Enter" internally, and I've tried to set it to "Esc" in AMX, so it actually presses those same buttons simultaneously.
It'd be great if there was a way to either
Thanks a lot.
Hi,
On Nvidia shield TV (android tv): after cinematics - game ignores input from:
i'm stuck on first item of main menu.
Dual shock worked fine on previous version
Hello, first let me say a big thank you for your hard work! But I am having a problem to load the game from the optional paths that you provide in the readme file. In the Android section you wrote that for Android 11 or newer we have to: "Allow access to external storage in main menu, then you can use these additional paths". The problem is that in the main menu I am not seeing that option and it says that I have to put the files in Android/data/jazz2.Âresurrection/files/Source. The only active options in the main menu are: about and quit. My device is samsung galaxy tab s8. Thank you in advance
2.4.0
Windows 10 or Arch Linux
When running the Jazz2 SDL binary the button mapping for DS4 completely upside-down. I can't even change it.
With non-sdl binary it's working fine.
Connect DS4 controller with USB or with Dongle.
Run Jazz2 SDL and try to control the game.
The newest revision no longer builds:
-- Found system OpenGL ES 2 library: /usr/lib/libGLESv2.so;/usr/lib/libSM.so;/usr/lib/libICE.so;/usr/lib/libX11.so;/usr/lib/libXext.so;/usr/lib/libGLESv2.so;OPENGLES1_gl_LIBRARY-NOTFOUND
...
[100%] Linking CXX executable jazz2
/bin/ld: cannot find /usr/lib/libGLESv2.so;/usr/lib/libSM.so;/usr/lib/libICE.so;/usr/lib/libX11.so;/usr/lib/libXext.so;/usr/lib/libGLESv2.so;OPENGLES1_gl_LIBRARY-NOTFOUND: AdresĂĄr alebo sĂşbor neexistuje
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/jazz2.dir/build.make:4345: jazz2] Error 1
make[2]: Leaving directory '/var/tmp/pamac-build-pbpro/jazz2-git/src/Jazz2-LinuxGcc-Release'
make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/jazz2.dir/all] Error 2
make[1]: Leaving directory '/var/tmp/pamac-build-pbpro/jazz2-git/src/Jazz2-LinuxGcc-Release'
make: *** [Makefile:156: all] Error 2
make: Leaving directory '/var/tmp/pamac-build-pbpro/jazz2-git/src/Jazz2-LinuxGcc-Release'
I am running the GOG version of Jazz Jackrabbit 2 on a 27inch intel mid 2015 iMac with an AMD RADEON M395. The game runs super smooth but there appears to be gaps between some of the sprite tiles. I attached a screen shot. Note just below Jazz and to the left of him. This is a stationary shot but it is much more evident while the game is running. This happens on the web version as well as all the downloaded versions I tried. I tried version 1.4 (SDL and the 2nd one included in the download) and I also tried the latest ones from the "Actions" and it happens on both. I thought it might be a vsync issue. I noticed on the help page there were switches for vsync but these don't appear to work on a Mac. Let me know if you require any further information.
2.2.2
Are there any plans to add netplay support to Jazz 2 Resurrection? I would like to be able to have multiple players playing Jazz and Spaz collaboratively.
Add a peer to peer network Stack using the network Stack utilized in OpenJazz.
Fix warnings somehow to make build percentage shown well.
Sources/Jazz2/Actors/Enemies/Bosses/../../../UI/Alignment.h:24:34: warning: extra â;â [-Wpedantic]
24 | DEFINE_ENUM_OPERATORS(Alignment);
| ^
I downloaded the game here: https://www.gog.com/de/game/jazz_jackrabbit_2_collection
and I am trying to run it on mac and I tried to follow the procedure described here:
https://deat.tk/jazz2/help
I copied the files from the folder downloaded from GOG into the given Source directory, however after starting up the resurrection app I can't do anything.
Could somebody tell me if these files look alright, or if I copied the wrong ones?
I copied the content of x86 (also tried x64) to the indicated Source
directory. But on resurrection startup nothing changes...
Thanks for any hints.
Hi there!
First of all, WOW. This game was my childhood and I've fond memories of playing it with my siblings, I gave them both a message when I stumbled across your project and was blown away by your phenomenal work!
I note that you have a startup argument system for cheats. I've been looking to enable them to get past a softlocked level as it won't proceed (Boss never spawns), But the arguments seem Windows oriented /cheats
and /cheats-unlock
I'm using an M1 Pro Macbook and while trying to execute the binary directly with arguments /Applications/Jazz² Resurrection.app/Contents/MacOS/Jazz²\ Resurrection /cheats
the application seems to ignore it, I presume because the argument style is Windows oriented and not traditionally MacOS oriented (ie --cheats
etc).
Is this something I am doing wrong? Or something I can patch into the Jazz2.config file?
All my best and again, thank you. This is seriously one of my favourite OSS finds ever.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
đ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. đđđ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google â¤ď¸ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.