Turrican (hurricane clone) black screen
-
@jengun Ugg. Thanks for taking the time to get that written up. I have the same error message.
I used Atom to open up the error logs and I found the following message 184 times in the each log:
./cml/cml/mathlib/checking.h: In function ‘void cml::detail::CheckVecN(const VecT&, cml::fixed_size_tag)’: ./cml/cml/core/cml_assert.h:94:27: warning: typedef ‘__bogus_assert_type_64’ locally defined but not used [-Wunused-local-typedefs] ::result CML_JOIN(__bogus_assert_type_, __LINE__) ^~~~~~~~~~~~~~~~~~~~ ./cml/cml/core/cml_assert.h:27:27: note: in definition of macro ‘CML_DO_JOIN2’ #define CML_DO_JOIN2(X,Y) X##Y ^ ./cml/cml/core/cml_assert.h:25:23: note: in expansion of macro ‘CML_DO_JOIN’ #define CML_JOIN(X,Y) CML_DO_JOIN(X,Y) ^~~~~~~~~~~ ./cml/cml/core/cml_assert.h:94:18: note: in expansion of macro ‘CML_JOIN’ ::result CML_JOIN(__bogus_assert_type_, __LINE__) ^~~~~~~~ ./cml/cml/mathlib/checking.h:64:5: note: in expansion of macro ‘CML_STATIC_REQUIRE_M’ CML_STATIC_REQUIRE_M(((size_t)VecT::array_size == N), ErrorT);
This is the only time the string "error" shows up in the log.
Here is an example of the log that contains that passage:
g++ -c -O2 -Wall -fsingle-precision-constant -fno-rtti -I. -I./SDLPort -I./cml -I/usr/include -I/usr/include/SDL -I/usr/include/GLES2 -I/usr/include/libmodplug -DPLATFORM_SDL -DENABLE_CONSOLE_COMMANDS -DUSE_MODPLUG -DUSE_INDEXED_BATCH -DLINUX -DUSE_HOME_DIR -DUSE_GLES2 -DUSE_EGL_SDL -DUSE_GL2 -DUSE_FBO Boss_RiesenSpinne.cpp -o Boss_RiesenSpinne.o In file included from ./cml/cml/et/size_checking.h:20, from ./cml/cml/vector/vector_expr.h:17, from ./cml/cml/vector/vector_ops.h:17, from ./cml/cml/vector.h:50, from ./cml/cml/cml.h:66, from ./SDLPort/SDL_port.h:36, from DX8Joystick.h:28, from DX8Input.h:25, from Console.h:18, from stdafx.h:6, from Boss_RiesenQualle.cpp:7: ./cml/cml/mathlib/checking.h: In function ‘void cml::detail::CheckVec(const VecT&)’: ./cml/cml/core/cml_assert.h:94:27: warning: typedef ‘__bogus_assert_type_55’ locally defined but not used [-Wunused-local-typedefs] ::result CML_JOIN(__bogus_assert_type_, __LINE__) ^~~~~~~~~~~~~~~~~~~~ ./cml/cml/core/cml_assert.h:27:27: note: in definition of macro ‘CML_DO_JOIN2’ #define CML_DO_JOIN2(X,Y) X##Y ^ ./cml/cml/core/cml_assert.h:25:23: note: in expansion of macro ‘CML_DO_JOIN’ #define CML_JOIN(X,Y) CML_DO_JOIN(X,Y) ^~~~~~~~~~~ ./cml/cml/core/cml_assert.h:94:18: note: in expansion of macro ‘CML_JOIN’ ::result CML_JOIN(__bogus_assert_type_, __LINE__) ^~~~~~~~ ./cml/cml/mathlib/checking.h:53:5: note: in expansion of macro ‘CML_STATIC_REQUIRE_M’ CML_STATIC_REQUIRE_M( ^~~~~~~~~~~~~~~~~~~~ ./cml/cml/mathlib/checking.h: In function ‘void cml::detail::CheckVecN(const VecT&, cml::fixed_size_tag)’: ./cml/cml/core/cml_assert.h:94:27: warning: typedef ‘__bogus_assert_type_64’ locally defined but not used [-Wunused-local-typedefs] ::result CML_JOIN(__bogus_assert_type_, __LINE__) ^~~~~~~~~~~~~~~~~~~~ ./cml/cml/core/cml_assert.h:27:27: note: in definition of macro ‘CML_DO_JOIN2’ #define CML_DO_JOIN2(X,Y) X##Y ^ ./cml/cml/core/cml_assert.h:25:23: note: in expansion of macro ‘CML_DO_JOIN’ #define CML_JOIN(X,Y) CML_DO_JOIN(X,Y) ^~~~~~~~~~~ ./cml/cml/core/cml_assert.h:94:18: note: in expansion of macro ‘CML_JOIN’ ::result CML_JOIN(__bogus_assert_type_, __LINE__) ^~~~~~~~ ./cml/cml/mathlib/checking.h:64:5: note: in expansion of macro ‘CML_STATIC_REQUIRE_M’ CML_STATIC_REQUIRE_M(((size_t)VecT::array_size == N), ErrorT); ^~~~~~~~~~~~~~~~~~~~ ./cml/cml/mathlib/checking.h: In function ‘void cml::detail::CheckVec2Or3(const VecT&, cml::fixed_size_tag)’: ./cml/cml/core/cml_assert.h:94:27: warning: typedef ‘__bogus_assert_type_116’ locally defined but not used [-Wunused-local-typedefs] ::result CML_JOIN(__bogus_assert_type_, __LINE__) ^~~~~~~~~~~~~~~~~~~~
:-/
David
-
@daviddraper Yes, patching
Makefiles
is ugly and error prone ... of course it works here ... ;-) To rule out the usual copy and paste problems:$ sha1sum hurrican.sh
should show
2a27b0383b1b9be7251a6d189309d5036c14521b hurrican.sh
Some compiler macros like
-DUSE_GLES2 -DUSE_EGL_SDL -DUSE_GL2 -DUSE_FBO
(which causes to error above) should not be there, but-DUSE_GLFULL
is missing ... seems that the target is stilllinux_GL2
and notrpi
in theMakefile
... did you "Update (from source)" in RetroPie setup? -
@jengun ok- wierd. I ran
sha1sum hurrican.sh
and got
97fd14f14448a1035db77d3ee5e1d4701726dd63 hurrican.sh
So! Not the same file. I tried renaming the current file to hurricanold.sh and creating a new file, named it hurrican.sh, and copied and pasted the contents from your post (which I thought I had done yesterday) and when I ran the same command on the new file, I got:
7b7c52eadc1f1dbd54af707328d3f68402be3145 hurrican.sh
still not the same as your file. I am using WinSCP to SSH into the raspberry pi; yesterday I used Atom to edit the file and today I used SSH's built-in text editor. Does the editor make a difference? I could try nano if it does.
Thanks.
David
-
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 ...
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.