The commercial game Halloween (FPS) for Linux is now the open source project


@Brizzly27 Big Thank you for releasing also the assets

I saw that you deleted the build file, because it wasn't updated with the current sources.
I'm ok but i think that offering another way to build the game is better...in special way for people (like me on my linux PC) that have problems building with cmake (because on my Mint 19.3 cmake is an old version and didn't support all the thinks on cmakelist file).
 
Of course, alternate ways to build something are better than not having one, but if that other way if broken I guess it's better not to publish it, and focus on the one way that works. And yes, the main reason I switched to archlinux was to avoid having the implement so many workarounds to work around old toolchains.
 
@Brizzly27 Big Thank you for releasing also the assets

I saw that you deleted the build file, because it wasn't updated with the current sources.
I'm ok but i think that offering another way to build the game is better...in special way for people (like me on my linux PC) that have problems building with cmake (because on my Mint 19.3 cmake is an old version and didn't support all the thinks on cmakelist file).
You are welcome!
Feel free to pull request a working build script, I will merge it.
Hope the assets will help someone hacking/improving this old game:)
 
@Brizzly27 You should consider commenting the line with GL_GenTexture (on opengl.cpp) suggested by ptitSeb in this post...https://pyra-handheld.com/boards/th...ow-the-open-source-project.99588/post-1701370 as explained by ptitSeb itself.

Now the game on the Pyra didn't freeze anymore ( as i have added -fsigned-char as usual suggested by @ptitSeb ), but now i face another problem...i can't switch resolutions on the options menu (i could alter the config and the game start at this resolution...but i got a black screen if i try to change it on the menu).
Also fullscreen is working only on 800*600 screen...but is a bit tiny...if i try using 1280*720 (after modify the code) the game segfault with

/build/dri3wsegl-pyra-0.5/dri3_ws.c:895: WSEGL_GetDrawableParameters: Buffer busy, waiting
/build/dri3wsegl-pyra-0.5/dri3_ws.c:895: WSEGL_GetDrawableParameters: Buffer busy, waiting
segmentation fault

Another thing that i have done is compiling the tools ASE,BSP,RAD and VIS (under HTOOLS/toolssources dir) on Linux (both x86 and Arm).
Ase tool is working good (i think) but Bsp give segmentation error when processing the h1m7.pts file generated by Ase tool.
This bsp error is present on both x86 and arm...i attached the tools sources with the build files here on a zip file.
I could not build the tools under Linux, could you share your build method please?
Thanks a lot!
Julien
 
I could not build the tools under Linux, could you share your build method please?

Usually i open a terminal on the directory of the sources i want to build and type ./build_ase or whatever the script is called.

If you have an error building share this error and i could help.
 
Usually i open a terminal on the directory of the sources i want to build and type ./build_ase or whatever the script is called.

If you have an error building share this error and i could help.
/usr/bin/ld: /tmp/ccXEoecg.o:(.bss+0x0): multiple definition of `menu_makemap'; /tmp/ccIOOf7i.o:(.bss+0x0): first defined here
/usr/bin/ld: /tmp/ccXEoecg.o:(.bss+0x4): multiple definition of `menu_groupface'; /tmp/ccIOOf7i.o:(.bss+0x4): first defined here
/usr/bin/ld: /tmp/ccXEoecg.o:(.bss+0x8): multiple definition of `gNb_Faces'; /tmp/ccIOOf7i.o:(.bss+0x8): first defined here
/usr/bin/ld: /tmp/ccXEoecg.o:(.bss+0xc): multiple definition of `gNb_Brush'; /tmp/ccIOOf7i.o:(.bss+0xc): first defined here
/usr/bin/ld: /tmp/ccXEoecg.o:(.bss+0x10): multiple definition of `gNb_ActionBrush'; /tmp/ccIOOf7i.o:(.bss+0x10): first defined here
/usr/bin/ld: /tmp/ccXEoecg.o:(.bss+0x14): multiple definition of `Nb_textures'; /tmp/ccIOOf7i.o:(.bss+0x14): first defined here
/usr/bin/ld: /tmp/ccXEoecg.o:(.bss+0x18): multiple definition of `Nb_entities'; /tmp/ccIOOf7i.o:(.bss+0x18): first defined here
/usr/bin/ld: /tmp/ccXEoecg.o:(.bss+0x1c): multiple definition of `Nb_object'; /tmp/ccIOOf7i.o:(.bss+0x1c): first defined here
/usr/bin/ld: /tmp/ccXEoecg.o:(.bss+0x20): multiple definition of `Nb_Lights'; /tmp/ccIOOf7i.o:(.bss+0x20): first defined here
/usr/bin/ld: /tmp/ccXEoecg.o:(.bss+0x40): multiple definition of `TextureList2'; /tmp/ccIOOf7i.o:(.bss+0x40): first defined here
/usr/bin/ld: /tmp/ccXEoecg.o:(.bss+0xfe44): multiple definition of `gStartX'; /tmp/ccIOOf7i.o:(.bss+0xfe44): first defined here
/usr/bin/ld: /tmp/ccXEoecg.o:(.bss+0xfe48): multiple definition of `gStartY'; /tmp/ccIOOf7i.o:(.bss+0xfe48): first defined here
/usr/bin/ld: /tmp/ccXEoecg.o:(.bss+0xfe4c): multiple definition of `gStartZ'; /tmp/ccIOOf7i.o:(.bss+0xfe4c): first defined here
/usr/bin/ld: /tmp/ccXEoecg.o:(.bss+0xfe50): multiple definition of `PlayerAngle'; /tmp/ccIOOf7i.o:(.bss+0xfe50): first defined here
/usr/bin/ld: /tmp/ccXEoecg.o:(.bss+0xfe54): multiple definition of `ActionNumber'; /tmp/ccIOOf7i.o:(.bss+0xfe54): first defined here
/usr/bin/ld: /tmp/ccXEoecg.o:(.bss+0xfe60): multiple definition of `vertex'; /tmp/ccIOOf7i.o:(.bss+0xfe60): first defined here
/usr/bin/ld: /tmp/ccXEoecg.o:(.bss+0xa5e60): multiple definition of `face'; /tmp/ccIOOf7i.o:(.bss+0xa5e60): first defined here
/usr/bin/ld: /tmp/ccXEoecg.o:(.bss+0x19fe60): multiple definition of `tvertex'; /tmp/ccIOOf7i.o:(.bss+0x19fe60): first defined here
/usr/bin/ld: /tmp/ccXEoecg.o:(.bss+0x203e60): multiple definition of `tface'; /tmp/ccIOOf7i.o:(.bss+0x203e60): first defined here
/usr/bin/ld: /tmp/ccXEoecg.o:(.bss+0x299e60): multiple definition of `TextureList'; /tmp/ccIOOf7i.o:(.bss+0x299e60): first defined here
/usr/bin/ld: /tmp/ccXEoecg.o:(.bss+0x2aa558): multiple definition of `gPolyList'; /tmp/ccIOOf7i.o:(.bss+0x2aa558): first defined here
/usr/bin/ld: /tmp/ccXEoecg.o:(.bss+0x2aa560): multiple definition of `Entities2'; /tmp/ccIOOf7i.o:(.bss+0x2aa560): first defined here
/usr/bin/ld: /tmp/ccXEoecg.o:(.bss+0x2ab960): multiple definition of `Objets'; /tmp/ccIOOf7i.o:(.bss+0x2ab960): first defined here
/usr/bin/ld: /tmp/ccXEoecg.o:(.bss+0x2ac960): multiple definition of `Lights'; /tmp/ccIOOf7i.o:(.bss+0x2ac960): first defined here
/usr/bin/ld: /tmp/ccCWd14L.o:(.bss+0x0): multiple definition of `menu_makemap'; /tmp/ccIOOf7i.o:(.bss+0x0): first defined here
/usr/bin/ld: /tmp/ccCWd14L.o:(.bss+0x4): multiple definition of `menu_groupface'; /tmp/ccIOOf7i.o:(.bss+0x4): first defined here
/usr/bin/ld: /tmp/ccCWd14L.o:(.bss+0x8): multiple definition of `gNb_Faces'; /tmp/ccIOOf7i.o:(.bss+0x8): first defined here
/usr/bin/ld: /tmp/ccCWd14L.o:(.bss+0xc): multiple definition of `gNb_Brush'; /tmp/ccIOOf7i.o:(.bss+0xc): first defined here
/usr/bin/ld: /tmp/ccCWd14L.o:(.bss+0x10): multiple definition of `gNb_ActionBrush'; /tmp/ccIOOf7i.o:(.bss+0x10): first defined here
/usr/bin/ld: /tmp/ccCWd14L.o:(.bss+0x14): multiple definition of `Nb_textures'; /tmp/ccIOOf7i.o:(.bss+0x14): first defined here
/usr/bin/ld: /tmp/ccCWd14L.o:(.bss+0x18): multiple definition of `Nb_entities'; /tmp/ccIOOf7i.o:(.bss+0x18): first defined here
/usr/bin/ld: /tmp/ccCWd14L.o:(.bss+0x1c): multiple definition of `Nb_object'; /tmp/ccIOOf7i.o:(.bss+0x1c): first defined here
/usr/bin/ld: /tmp/ccCWd14L.o:(.bss+0x20): multiple definition of `Nb_Lights'; /tmp/ccIOOf7i.o:(.bss+0x20): first defined here
/usr/bin/ld: /tmp/ccCWd14L.o:(.bss+0x40): multiple definition of `TextureList2'; /tmp/ccIOOf7i.o:(.bss+0x40): first defined here
/usr/bin/ld: /tmp/ccCWd14L.o:(.bss+0xfe44): multiple definition of `gStartX'; /tmp/ccIOOf7i.o:(.bss+0xfe44): first defined here
/usr/bin/ld: /tmp/ccCWd14L.o:(.bss+0xfe48): multiple definition of `gStartY'; /tmp/ccIOOf7i.o:(.bss+0xfe48): first defined here
/usr/bin/ld: /tmp/ccCWd14L.o:(.bss+0xfe4c): multiple definition of `gStartZ'; /tmp/ccIOOf7i.o:(.bss+0xfe4c): first defined here
/usr/bin/ld: /tmp/ccCWd14L.o:(.bss+0xfe50): multiple definition of `PlayerAngle'; /tmp/ccIOOf7i.o:(.bss+0xfe50): first defined here
/usr/bin/ld: /tmp/ccCWd14L.o:(.bss+0xfe54): multiple definition of `ActionNumber'; /tmp/ccIOOf7i.o:(.bss+0xfe54): first defined here
/usr/bin/ld: /tmp/ccCWd14L.o:(.bss+0xfe60): multiple definition of `vertex'; /tmp/ccIOOf7i.o:(.bss+0xfe60): first defined here
/usr/bin/ld: /tmp/ccCWd14L.o:(.bss+0xa5e60): multiple definition of `face'; /tmp/ccIOOf7i.o:(.bss+0xa5e60): first defined here
/usr/bin/ld: /tmp/ccCWd14L.o:(.bss+0x19fe60): multiple definition of `tvertex'; /tmp/ccIOOf7i.o:(.bss+0x19fe60): first defined here
/usr/bin/ld: /tmp/ccCWd14L.o:(.bss+0x203e60): multiple definition of `tface'; /tmp/ccIOOf7i.o:(.bss+0x203e60): first defined here
/usr/bin/ld: /tmp/ccCWd14L.o:(.bss+0x299e60): multiple definition of `TextureList'; /tmp/ccIOOf7i.o:(.bss+0x299e60): first defined here
/usr/bin/ld: /tmp/ccCWd14L.o:(.bss+0x2aa558): multiple definition of `gPolyList'; /tmp/ccIOOf7i.o:(.bss+0x2aa558): first defined here
/usr/bin/ld: /tmp/ccCWd14L.o:(.bss+0x2aa560): multiple definition of `Entities2'; /tmp/ccIOOf7i.o:(.bss+0x2aa560): first defined here
/usr/bin/ld: /tmp/ccCWd14L.o:(.bss+0x2ab960): multiple definition of `Objets'; /tmp/ccIOOf7i.o:(.bss+0x2ab960): first defined here
/usr/bin/ld: /tmp/ccCWd14L.o:(.bss+0x2ac960): multiple definition of `Lights'; /tmp/ccIOOf7i.o:(.bss+0x2ac960): first defined here
/usr/bin/ld: /tmp/cc3lkDCU.o:(.bss+0x0): multiple definition of `menu_makemap'; /tmp/ccIOOf7i.o:(.bss+0x0): first defined here
/usr/bin/ld: /tmp/cc3lkDCU.o:(.bss+0x4): multiple definition of `menu_groupface'; /tmp/ccIOOf7i.o:(.bss+0x4): first defined here
/usr/bin/ld: /tmp/cc3lkDCU.o:(.bss+0x8): multiple definition of `gNb_Faces'; /tmp/ccIOOf7i.o:(.bss+0x8): first defined here
/usr/bin/ld: /tmp/cc3lkDCU.o:(.bss+0xc): multiple definition of `gNb_Brush'; /tmp/ccIOOf7i.o:(.bss+0xc): first defined here
/usr/bin/ld: /tmp/cc3lkDCU.o:(.bss+0x10): multiple definition of `gNb_ActionBrush'; /tmp/ccIOOf7i.o:(.bss+0x10): first defined here
/usr/bin/ld: /tmp/cc3lkDCU.o:(.bss+0x14): multiple definition of `Nb_textures'; /tmp/ccIOOf7i.o:(.bss+0x14): first defined here
/usr/bin/ld: /tmp/cc3lkDCU.o:(.bss+0x18): multiple definition of `Nb_entities'; /tmp/ccIOOf7i.o:(.bss+0x18): first defined here
/usr/bin/ld: /tmp/cc3lkDCU.o:(.bss+0x1c): multiple definition of `Nb_object'; /tmp/ccIOOf7i.o:(.bss+0x1c): first defined here
/usr/bin/ld: /tmp/cc3lkDCU.o:(.bss+0x20): multiple definition of `Nb_Lights'; /tmp/ccIOOf7i.o:(.bss+0x20): first defined here
/usr/bin/ld: /tmp/cc3lkDCU.o:(.bss+0x40): multiple definition of `TextureList2'; /tmp/ccIOOf7i.o:(.bss+0x40): first defined here
/usr/bin/ld: /tmp/cc3lkDCU.o:(.bss+0xfe44): multiple definition of `gStartX'; /tmp/ccIOOf7i.o:(.bss+0xfe44): first defined here
/usr/bin/ld: /tmp/cc3lkDCU.o:(.bss+0xfe48): multiple definition of `gStartY'; /tmp/ccIOOf7i.o:(.bss+0xfe48): first defined here
/usr/bin/ld: /tmp/cc3lkDCU.o:(.bss+0xfe4c): multiple definition of `gStartZ'; /tmp/ccIOOf7i.o:(.bss+0xfe4c): first defined here
/usr/bin/ld: /tmp/cc3lkDCU.o:(.bss+0xfe50): multiple definition of `PlayerAngle'; /tmp/ccIOOf7i.o:(.bss+0xfe50): first defined here
/usr/bin/ld: /tmp/cc3lkDCU.o:(.bss+0xfe54): multiple definition of `ActionNumber'; /tmp/ccIOOf7i.o:(.bss+0xfe54): first defined here
/usr/bin/ld: /tmp/cc3lkDCU.o:(.bss+0xfe58): multiple definition of `gPolyList'; /tmp/ccIOOf7i.o:(.bss+0x2aa558): first defined here
/usr/bin/ld: /tmp/cc3lkDCU.o:(.bss+0xfe60): multiple definition of `Entities2'; /tmp/ccIOOf7i.o:(.bss+0x2aa560): first defined here
/usr/bin/ld: /tmp/cc3lkDCU.o:(.bss+0x11260): multiple definition of `Objets'; /tmp/ccIOOf7i.o:(.bss+0x2ab960): first defined here
/usr/bin/ld: /tmp/cc3lkDCU.o:(.bss+0x12260): multiple definition of `Lights'; /tmp/ccIOOf7i.o:(.bss+0x2ac960): first defined here
collect2: error: ld returned 1 exit status
 
Uhmm the error is at linking fase...strange i don't have it on my PC.

Try to use gold linker instead...

gcc -fuse-ld=gold -o ase asetool.c asecomp.c asereader.c asemath.c -lm
 
sorry could you show more lines from the terminal ? best would be from when you run the command to last one
 
Really strange i didn't have a problem building on my system..

Try to sort *.c files as...

gcc -o ase asecomp.c asemath.c asereader.c asetool.c -lm
 
Ok i think i found try

gcc -fcommon -o ase asecomp.c asemath.c asereader.c asetool.c -lm
Thanks!
working like a charm on macOS, i will try it asap on Linux Ubuntu.
PS: the bsp -v h1m7.ase is hanging forever.. Those tools/maps should be checked I guess. Not sure BSP tree generation is used nowadays excepting on low systems (graphic cards). On other hands I didnt used batch Vertex VBO Objects for more rendering speed (OpenGL).. many rooms for improvments obviously!
 
working like a charm on macOS, i will try it asap on Linux Ubuntu.
As i discovered myself yesterday newer GCC use -fno-common by default (probably it's not the best explanation...i'm not a programmer), so the code give this kind of error when linking.
 
You are welcome!
Feel free to pull request a working build script, I will merge it.
Hi
just adapted the build scripts to the recent sources...i do want to have temp build files under "project linux " directory i changed the script to build from it.
Here is a zip package with the new build files, please delete from the main directory the "clean_tmp" file and replace the files in "project linux" with those in the zip.
I added a script to build a debug version...maybe will be usefull.

I also noted that the coldet lib is unused at the moment...i try to enable with "collision2.cpp" file but is incomplete i think.

Anyway thanks again for the possibility to thinker with your sources...and if you have other game sources to share...feell free...:cool:
 

Attachments

  • Hall3d_projet_linux.zip
    1.8 KB · Views: 236
Back
Top