Turrican (hurricane clone) black screen
-
Next try: the new
TARGET sdl2
makes it possible to run Hurrican in full resolution on the Raspberry Pi 4 with "Buster" (KMS/DRM on console and LXDE desktop)Index: src/Makefile =================================================================== --- src/Makefile (revision 286) +++ src/Makefile (working copy) @@ -264,6 +264,25 @@ endif +ifeq ($(TARGET),sdl2) + +EXE := ../hurrican +CXX := g++ +CC := gcc +LD := g++ +RM := rm -f + +USE_EGL := no +USE_GL2 := yes +USE_FBO := yes + +DEFINES += -DLINUX -DUSE_HOME_DIR -DUSE_GLFULL + +INCLUDES_OS := -I/usr/include -I/usr/include/SDL2 -I/usr/include/GL -I/usr/include/libmodplug +LDFLAGS := -g -lSDL2 -lSDL2_mixer -lSDL2_image -lmodplug -lGL + +endif + INCLUDES := -I. -I./SDLPort -I./cml $(INCLUDES_OS) COMMON_CXXFLAGS := -Wall -fsingle-precision-constant -fno-rtti @@ -316,7 +335,7 @@ ## to avoid numerous spurious warnings compiling against CML libary: ## This will convert a version number like 4.8.1 to 4*100+8 and a version ## number like 4.10.2 to 4*100+10, allowing direct comparison through bc. -GCC_VER_GTE48 := $(shell echo `$(CXX) -dumpversion | cut -f1-2 -d.` \>= 4.8 | sed -e 's/\./*100+/g' | bc ) +GCC_VER_GTE48 := $(shell echo `${CXX} -dumpversion | cut -f1-2 -d.` \>= 4.8 | sed -e 's/\./*100+/g' | bc ) ifeq ($(GCC_VER_GTE48),1) COMMON_CXXFLAGS += -Wno-unused-local-typedefs endif Index: src/SDLPort/cfbo.cpp =================================================================== --- src/SDLPort/cfbo.cpp (revision 286) +++ src/SDLPort/cfbo.cpp (working copy) @@ -77,7 +77,11 @@ case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT: Protokoll.WriteText( false, "GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT: Not all framebuffer attachment points are framebuffer attachment complete.\n" ); break; +#ifdef PLATFORM_SDL + case GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT: +#else case GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS: +#endif Protokoll.WriteText( false, "GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS: Not all attached images have the same width and height.\n" ); break; case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:
$ svn checkout svn://svn.code.sf.net/p/hurrican/code/trunk $ cd trunk/Hurrican/src $ svn patch /path/to/the/above/patch $ make TARGET=sdl2
should create a working binary ...
-
@jengun thanks for your patience and help. I need a little more expanation right now though. Is this is a little beyond me. Is the new file something be added to hurrican.sh? A new file? What should it be called and where should it be saved?
Also, if i don't have the same hash for the hurrican.sh doesnt that mean something in the hurrican.sh file is off?
Gratz in advance.
Dave
-
@jengun to answer your question about updating from source, the only option for hurrican when installing from reptropie setup is to install from source; I added retropie-extra to my install pie and it the way it is written there is no option to install from a pre-compiled binary, at least on my system. I think I did run an update script for RetroPie-Extra recently (two or three weeks ago?) As part of some generally updating i did on the RetroPie jnstall, b.ut I'm not sure it made a difference. I don't think RetroPie-Extra been updated at github in a while. I don't recall if I updated RetroPie-Extra from source or a pre-compiled binary.
D
-
Is the new file something be added to hurrican.sh? A new file?
Yes, the first part is a
subversion
patch file, there is no connection tohurrican.sh
at this moment: this is just a test of whether the binary works at all ...What should it be called and where should it be saved?
Save it in the home directory (
/home/pi
) on the Raspberry Pi under a name of your choice, e.g.hurrican-sdl2.patch
, so the above commands to execute should like this:$ svn checkout svn://svn.code.sf.net/p/hurrican/code/trunk $ cd trunk/Hurrican/src $ svn patch /home/pi/hurrican-sdl2.patch $ make TARGET=sdl2 $ cd .. $ ./hurrican
The binary should start in fullscreen mode, integration with
hurrican.sh
will follow, but needs some time ... -
Hey @jengun
For this newb, this is pretty cool stiff!
I created the file in Atom, named it
hurrican.sh
and put it in/home/pi
via SSH.I entered
svn checkout svn://svn.code.sf.net/p/hurrican/code/trunk
and a series of output lines, ending with:
.... (lots of lines like the ones below) A trunk/Editor/src/DX8Font.cpp A trunk/Editor/src/resource.h A trunk/Editor/src/Logdatei.h A trunk/Editor/Editor.dsp A trunk/Editor/Editor.suo A trunk/Editor/MainMenu.aps A trunk/Editor/MainMenu.rc A trunk/Editor/Editor v1.plg Checked out revision 286.
I entered the rest and here is what I got:
pi@RetroPi:~ $ cd trunk/Hurrican/src pi@RetroPi:~/trunk/Hurrican/src $ svn patch /home/pi/hurrican-sdl2.patch C src/Makefile > rejected hunk @@ -264,6 +264,25 @@ > rejected hunk @@ -316,7 +335,7 @@ C src/SDLPort/cfbo.cpp > rejected hunk @@ -77,7 +77,11 @@ Summary of conflicts: Text conflicts: 2 pi@RetroPi:~/trunk/Hurrican/src $ make TARGET=sdl2 rm -f *.o SDLPort/*.o unrarlib040/unrarlib/*.o pi@RetroPi:~/trunk/Hurrican/src $ cd .. pi@RetroPi:~/trunk/Hurrican $ ./hurrican -bash: ./hurrican: No such file or directory pi@RetroPi:~/trunk/Hurrican $ ./Hurrican -bash: ./Hurrican: No such file or directory
Dave
-
I created the file in Atom, named it
hurrican.sh
and put it in/home/pi
via SSH.OK, enough with Atom's copy and paste weirdness: please SSH to your Raspberry and execute this command to get the file:
curl -LJO "https://gitlab.com/jengun/Hurrican/-/raw/master/hurrican-sdl2.patch"
-
@jengun ok...
pi@RetroPi:~ $ curl -LJO "https://gitlab.com/jengun/Hurrican/-/raw/master/hurrican-sdl2.patch" % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0Warning: Failed to create the file hurrican-sdl2.patch: Permission denied 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 curl: (23) Failed writing header pi@RetroPi:~ $ sudo curl -LJO "https://gitlab.com/jengun/Hurrican/-/raw/master/hurrican-sdl2.patch" % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 1445 0 1445 0 0 13256 0 --:--:-- --:--:-- --:--:-- 13256 pi@RetroPi:~ $
Dave
-
@jengun FWIW,
I deleted the /home/pi/trunk directory, recreated the hurrican-sdl2.patch file in notepad and ran the commands again and got the following results:
pi@RetroPi:~ $ svn checkout svn://svn.code.sf.net/p/hurrican/code/trunk A trunk/Hurrican A trunk/Hurrican/data A trunk/Hurrican/data/shaders
...
(lots of files)
...A trunk/Editor/MainMenu.rc A trunk/Editor/Editor v1.plg Checked out revision 286. pi@RetroPi:~ $ cd trunk/Hurrican/src pi@RetroPi:~/trunk/Hurrican/src $ svn patch /home/pi/hurrican-sdl2.patch C src/Makefile > rejected hunk @@ -264,6 +264,25 @@ > rejected hunk @@ -316,7 +335,7 @@ C src/SDLPort/cfbo.cpp > rejected hunk @@ -77,7 +77,11 @@ Summary of conflicts: Text conflicts: 2 pi@RetroPi:~/trunk/Hurrican/src $ make TARGET=sdl2 rm -f *.o SDLPort/*.o unrarlib040/unrarlib/*.o pi@RetroPi:~/trunk/Hurrican/src $ cd .. pi@RetroPi:~/trunk/Hurrican $ ./hurrican -bash: ./hurrican: No such file or directory pi@RetroPi:~/trunk/Hurrican $
Do you think its something related to my system? I'm running RetroPie commit number ac8d87759f4cad763affbba624be4fb206790ceb, "bump to version 4.7.2.," Running on Raspbian GNU/Linux 10 (buster).
Dave
David
-
AWWWW MAN SOOOO COOL!!!
::ahem::I ran the script from
https://gitlab.com/jengun/Hurrican/-/raw/master/hurrican-sdl2.patch
and the rest of the commands$ svn checkout svn://svn.code.sf.net/p/hurrican/code/trunk $ cd trunk/Hurrican/src $ svn patch /home/pi/hurrican-sdl2.patch $ make TARGET=sdl2 $ cd .. $ ./hurrican
and the game ran from the command line! You did it!!!!!!! very awesome. And it even works with my controller I had plugged in to the system without any problems.
I hate to ask after everything you've done... but is there a way to create a link to the game from the Emulation Station details page?
Thanks!
Dave
-
and the game ran from the command line!
Glad that it works now! :-)
... but is there a way to create a link to the game from the Emulation Station details page?
Just copy the working binary:
sudo cp -i /home/pi/trunk/Hurrican/hurrican /opt/retropie/ports/hurrican
... provided that there is an old copy of Hurrican with data files in
/opt/retropie/ports/hurrican
...I'm doing a cleaned up hurrican.sh that will things more convenient ...
-
@jengun ok- I will need to try this when I get home. I think I removed the Hurrican files I installed from RetroPie-Extra. Should I reinstall it and then run the copy command?
Thx,
David
-
@jengun Worked like a charm. You are a person of high class and a scholar. Thanks.
David
-
@daviddraper You're welcome and thanks for your kind words! :-) You might have noticed some random pixels on the right window edge: this is also fixed (at least they'll be cut off) in my GitLab repository: https://gitlab.com/jengun/Hurrican ...
-
@jengun Very cool. How do I update hurrican with your update? do I download it and copy it into the directory in /ports?
Dave
-
@daviddraper Just clone the repository only once:
git clone https://gitlab.com/jengun/hurrican
and execute
make
in thehurrican/src
directory to build the binary. To update usegit pull
in the
hurrican
directory ... I'll try to fix at least a few small bugs, but I'm not an expert on C++ and OpenGL: so there won't be any major changes. Please use GitLab to report issues, not this forum ... -
@jengun said in Turrican (hurricane clone) black screen:
Hi,
I'm trying to get this version running on the RPi4 since it looks like it no longer needs X server to run.
The gitlab project is no longer available. Does anyone know the new location?
I compiled a version of Hurrican that runs under X (XINIT in emulators.cfg) and it works, but I can't find the code that I compiled and now when I try to pull code from other sites it fails linking.
I installed Hurrican from RetroPie-Extras and it fails to display a screen on the RPi4.
RussellB
-
@russellb said in [Turrican (hurricane clone) black screen]
The gitlab project is no longer available. Does anyone now the new location?
https://github.com/drfiemost/Hurrican uses SDL2 by default and should work on RPi4 ...
-
@jengun
Hi, when I get to the cmake step
cmake -DCMAKE_BUILD_TYPE=Release ..I get an error that it is missing the cmake text file.
I'm on pi4, any ideas?
many thanks! -
@luckyluca said in Turrican (hurricane clone) black screen:
cmake -DCMAKE_BUILD_TYPE=Release ..
I get an error that it is missing the cmake text file.Copy & paste the lines from https://github.com/drfiemost/Hurrican#building ... tested and works on the RPi4 ...
-
-
-
-
@jengun Unfortunately that doesn't work, probably a library missing?
pi@retropie:~/tmp/Hurrican/Hurrican/build $ cmake -DCMAKE_BUILD_TYPE=Release .. -- The C compiler identification is GNU 8.3.0 -- The CXX compiler identification is GNU 8.3.0 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Looking for pthread.h -- Looking for pthread.h - found -- Looking for pthread_create -- Looking for pthread_create - not found -- Looking for pthread_create in pthreads -- Looking for pthread_create in pthreads - not found -- Looking for pthread_create in pthread -- Looking for pthread_create in pthread - found -- Found Threads: TRUE -- Found SDL2: /usr/lib/arm-linux-gnueabihf/libSDL2.so;-lpthread -- Found SDL2_image: /usr/lib/arm-linux-gnueabihf/libSDL2_image.so (found version "2.0.4") -- Found SDL2_mixer: /usr/lib/arm-linux-gnueabihf/libSDL2_mixer.so (found version "2.0.4") CMake Error at 3rdparty/LibFindMacros.cmake:263 (message): REQUIRED PACKAGE NOT FOUND We could not find development headers for LibEpoxy. Do you have the necessary dev package installed? This package is REQUIRED and you need to install it or adjust CMake configuration in order to continue building hurrican. Relevant CMake configuration variables: LibEpoxy_INCLUDE_DIR=<not found> LibEpoxy_LIBRARY=<not found> You may use CMake GUI, cmake -D or ccmake to modify the values. Delete CMakeCache.txt to discard all values and force full re-detection if necessary. Call Stack (most recent call first): 3rdparty/FindLibEpoxy.cmake:29 (libfind_process) CMakeLists.txt:482 (find_package) -- Configuring incomplete, errors occurred! See also "/home/pi/tmp/Hurrican/Hurrican/build/CMakeFiles/CMakeOutput.log". See also "/home/pi/tmp/Hurrican/Hurrican/build/CMakeFiles/CMakeError.log". pi@retropie:~/tmp/Hurrican/Hurrican/build $ make make: *** No targets specified and no makefile found. Stop. pi@retropie:~/tmp/Hurrican/Hurrican/build $
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.