RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

    Turrican (hurricane clone) black screen

    Scheduled Pinned Locked Moved Help and Support
    emustationhelpandsupporthurricane
    64 Posts 8 Posters 7.6k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • DavidDraperD
      DavidDraper @JenGun
      last edited by

      @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

      J 1 Reply Last reply Reply Quote 0
      • J
        JenGun @DavidDraper
        last edited by JenGun

        @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 still linux_GL2 and not rpi in the Makefile ... did you "Update (from source)" in RetroPie setup?

        DavidDraperD 2 Replies Last reply Reply Quote 1
        • DavidDraperD
          DavidDraper @JenGun
          last edited by

          @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

          J 1 Reply Last reply Reply Quote 0
          • J
            JenGun @DavidDraper
            last edited by JenGun

            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 ...

            DavidDraperD 1 Reply Last reply Reply Quote 1
            • DavidDraperD
              DavidDraper @JenGun
              last edited by DavidDraper

              @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

              J 1 Reply Last reply Reply Quote 0
              • DavidDraperD
                DavidDraper @JenGun
                last edited by

                @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

                1 Reply Last reply Reply Quote 0
                • J
                  JenGun @DavidDraper
                  last edited by

                  @daviddraper:

                  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 to hurrican.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 ...

                  DavidDraperD 1 Reply Last reply Reply Quote 1
                  • DavidDraperD
                    DavidDraper @JenGun
                    last edited by

                    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

                    J 1 Reply Last reply Reply Quote 0
                    • J
                      JenGun @DavidDraper
                      last edited by

                      @daviddraper

                      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"
                      
                      DavidDraperD 3 Replies Last reply Reply Quote 1
                      • DavidDraperD
                        DavidDraper @JenGun
                        last edited by

                        @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

                        1 Reply Last reply Reply Quote 0
                        • DavidDraperD
                          DavidDraper @JenGun
                          last edited by

                          @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

                          1 Reply Last reply Reply Quote 0
                          • DavidDraperD
                            DavidDraper @JenGun
                            last edited by

                            @jengun

                            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

                            J 1 Reply Last reply Reply Quote 0
                            • J
                              JenGun @DavidDraper
                              last edited by JenGun

                              @DavidDraper

                              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 ...

                              DavidDraperD 2 Replies Last reply Reply Quote 1
                              • DavidDraperD
                                DavidDraper @JenGun
                                last edited by

                                @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

                                1 Reply Last reply Reply Quote 0
                                • DavidDraperD
                                  DavidDraper @JenGun
                                  last edited by

                                  @jengun Worked like a charm. You are a person of high class and a scholar. Thanks.

                                  David

                                  J 1 Reply Last reply Reply Quote 1
                                  • J
                                    JenGun @DavidDraper
                                    last edited by

                                    @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 ...

                                    DavidDraperD 1 Reply Last reply Reply Quote 1
                                    • DavidDraperD
                                      DavidDraper @JenGun
                                      last edited by

                                      @jengun Very cool. How do I update hurrican with your update? do I download it and copy it into the directory in /ports?

                                      Dave

                                      J 1 Reply Last reply Reply Quote 0
                                      • J
                                        JenGun @DavidDraper
                                        last edited by JenGun

                                        @daviddraper Just clone the repository only once:

                                        git clone https://gitlab.com/jengun/hurrican
                                        

                                        and execute make in the hurrican/src directory to build the binary. To update use

                                        git 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 ...

                                        R 1 Reply Last reply Reply Quote 1
                                        • R
                                          RussellB @JenGun
                                          last edited by

                                          @jengun said in Turrican (hurricane clone) black screen:

                                          https://gitlab.com/jengun/hurrican

                                          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

                                          J 1 Reply Last reply Reply Quote 0
                                          • J
                                            JenGun @RussellB
                                            last edited by

                                            @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 ...

                                            L 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            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.