jhhoward / WolfensteinCGA

Wolfenstein 3D with a CGA renderer
324 stars 9 forks source link

Mods or more games? #13

Open FreeLANMan opened 1 year ago

FreeLANMan commented 1 year ago

Do you intend to do the same with other games that use the 'Wolfenstein 3D engine' like Blake Stone, Catacomb Armageddon, Super 3-D Noah's Ark, etc?

jhhoward commented 1 year ago

No plans to port the changes to other games or support mods. Maybe someone will fork and support those games!

FreeLANMan commented 1 year ago

Thanks for the answer! If anyone is interested, I did some tests and some mods can be played just by changing the MAPHEAD.WL1 and GAMEMAPS.WL1 files (maps) and renaming the VSWAP.WL1 file to CSWAP.WL1 (textures, objects).

jhhoward commented 1 year ago

You should be able to use the cgaify.exe tool to generate CSWAP.WL1 for you. It is included in here: wolf3dc_registered.zip

FreeLANMan commented 1 year ago

cgaify.exe is for Windows (32 or 64bits?) and i use Linux. And I can't make run with Wine.

jhhoward commented 1 year ago

You could compile it yourself, the source is in the 'tools' directory. It should compile with GCC: gcc -o cgaify cgaify.cpp The palette PNG file needs to be in the same directory when you run it

FreeLANMan commented 1 year ago
$ gcc -o cgaify cgaify.cpp cgaify.cpp: In function ‘void GammaAdjust(uint8_t*)’: cgaify.cpp:301:13: error: ‘pow’ was not declared in this scope 301 double r = pow(rgb[0] / 255.0, exponent); ^~~ cgaify.cpp: In function ‘void ProcessGraphics(CgaMode)’: cgaify.cpp:712:33: warning: converting to non-pointer type ‘uint32_t’ {aka ‘unsigned int’} from NULL [-Wconversion-null] 712 chunks[n].uncompressedSize = NULL; ^~~~ cgaify.cpp:882:64: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘long int’ [-Wformat=] 882 printf("Compressed size differs. Original: %d bytes New: %d bytes\n", chunks[n].dataSize - 4, compressedDataSize); ~^ ~~~~~~
int long int
%ld

cgaify.cpp: In function ‘int main(int, char**)’: cgaify.cpp:1101:7: error: ‘stricmp’ was not declared in this scope; did you mean ‘strncmp’? 1101 | if(!stricmp(argv[n], "demo")) | ^~~ | strncmp