Software > Applications and Porting
Nazi Zombies Portable
(1/1)
Borley:
I decided to have another go at building Nazi Zombies Portable starting with QuakeC portion for the game logic.
They hardcode most of their tooling for specific target architectures. For example, the build script for Linux platforms at ~quakec/tools/qc-compiler-gnu.sh sets a variable explicitly to an x86 version of the FTEQCC executable included in the repository.
--- Code: ---../bin/fteqcc-cli-lin: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=48ccbb62862f094e0f04da54935de367c88b7c63, stripped
--- End code ---
Not a big problem, on Debian we can supplement fteqcc out of the the Debian archive. And then change the qc-compiler-gnu.sh script to use that instead:
--- Code: ---FTEQCC=/usr/bin/fteqcc
--- End code ---
And remove the relative paths for fteqcc calls as it no longer uses the project-supplied x86 binaries:
--- Code: ---$FTEQCC -srcfile ../progs/csqc.src | grep -E -i "warning |error |defined |not |unknown |branches"
echo "Compiling FTE SSQC.."
$FTEQCC -O3 -DFTE -srcfile ../progs/ssqc.src | grep -E -i "warning |error |defined |not |unknown |branches"
echo "Compiling FTE MenuQC.."
$FTEQCC -O3 -DFTE -srcfile ../progs/menu.src | grep -E -i "warning |error |defined |not |unknown |branches"
echo "Compiling Standard/Id SSQC.."
$FTEQCC -O3 -srcfile ../progs/ssqc.src | grep -E -i "warning |error |defined |not |unknown |branches"
--- End code ---
The build script calls for three python libraries; python3-colorama, python3-panda and python3-fastcrc.
python3-fastcrc isn't packaged in Debian, so I try substituting python3-crc instead. Changing the relevant bits in ~/quakec/bin/qc_hash_generator.py:
--- Quote ---from fastcrc import crc16
to
from crc import Crc16
ctField('crc_strlen', ITY
to
ctField('Crc_strlen', ITY
etc...
--- End quote ---
It doesn't like that.
--- Code: ---Generating Hash Table..
Traceback (most recent call last):
File "/home/Borley/NaziZombies/quakec/bin/qc_hash_generator.py", line 177, in <module>
main()
File "/home/Borley/NaziZombies/quakec/bin/qc_hash_generator.py", line 173, in main
csv_data = read_csv_data()
^^^^^^^^^^^^^^^
File "/home/Borley/NaziZombies/quakec/bin/qc_hash_generator.py", line 143, in read_csv_data
value[0] = int(Crc16.IBM_3740(str.encode(value[0])))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: 'Crc16' object is not callable
Compiling FTE CSQC..
../progs/csqc.src:1: warning: Unknown pragma 'noref'
../progs/csqc.src:2: warning: Unknown target 'fte_5768'. Ignored.
../progs/csqc.src:5: warning: Unknown pragma 'includedir'
../progs/csqc.src:6: warning: Unknown pragma 'includedir'
../progs/csqc.src:7: warning: Unknown pragma 'includedir'
************ ERROR ************
Error in ../progs/csqc.src on line 9
Compiling FTE SSQC..
../progs/ssqc.src:3: warning: Unknown target 'fte_5768'. Ignored.
../progs/ssqc.src:9: warning: warning id not recognised
../progs/ssqc.src:10: warning: Unknown pragma 'noref'
../progs/ssqc.src:12: warning: Unknown pragma 'includedir'
../progs/ssqc.src:13: warning: Unknown pragma 'includedir'
************ ERROR ************
Error in ../progs/ssqc.src on line 15
Compiling FTE MenuQC..
../progs/menu.src:1: warning: Unknown pragma 'noref'
../progs/menu.src:2: warning: Unknown target 'fte_5768'. Ignored.
../progs/menu.src:5: warning: Unknown pragma 'includedir'
************ ERROR ************
Error in ../progs/menu.src on line 7
Compiling Standard/Id SSQC..
../progs/ssqc.src:9: warning: warning id not recognised
../progs/ssqc.src:10: warning: Unknown pragma 'noref'
../progs/ssqc.src:12: warning: Unknown pragma 'includedir'
../progs/ssqc.src:13: warning: Unknown pragma 'includedir'
************ ERROR ************
Error in ../progs/ssqc.src on line 15
End of script.
--- End code ---
:-\ All of the errors fail at lines for #includelist
I suspect I'm going to need to begrudgingly install python3-fastcrc through python-pip. And probably also to compile an up to date ppc64 executable of FTEQCC directly from the project's repo. Usually stuff in C is a lot more straightforward than this.
Navigation
[0] Message Index
Go to full version