jonof / jfduke3d

Port of the 3D Realms game "Duke Nukem 3D"
http://www.jonof.id.au/jfduke3d
109 stars 18 forks source link

Widescreen weapon graphics for JFDuke3D? #19

Open vanfanel opened 7 months ago

vanfanel commented 7 months ago

Hi there @jonof

Do you happen to know what widescreen graphics pack is compatible with JFduke3D?

I tried loading this one: https://github.com/NightFright2k19/duke3d_widefix

with this command that usually works for loading music packs in .zip format:

duke3d -gduke3d_widefix.zip

...but it doesn't seem to work with JFDuke3D. Any ideas?

jonof commented 7 months ago

It's very likely that modern packs lack native support for JFDuke since Eduke32 has moved on some way from where I left things. It may be possible to adapt packs by editing the .def files to remove things incompatible with JFDuke.

If the widescreen fixes work like I think they do, it'll have no effect with JFDuke because there's no support for defining tiles loaded from individual files, which Eduke32 supports.

vanfanel commented 7 months ago

@jonof So a new pack specifically tailored for JFDuke3D is needed, right?

jonof commented 7 months ago

A version at least that would patch the TILESxxx.ART files with the updated artwork.

vanfanel commented 7 months ago

My guess then is that https://github.com/NightFright2k19/duke3d_widefix should work (unless I am missing some details).

As you can see on it's repository, it includes tiles097.art, tiles098.art and tiles099.art.

Also, duke3d.def (is that expected to be the name of the main .def file?) simply does:

include duke3d_widefix.def

and in turn, duke3d_widefix.def does:

globalgameflags 1

include scripts/widescreen.def

..where finally scripts/widescreen.def does things like this:


tilefromtexture 2325 { file "tiles/widescreen/2325.png" xoff 24 ifcrc 0xC28B6D5C }
tilefromtexture 2326 { file "tiles/widescreen/2326.png" xoff 16 ifcrc 0xABA45CC7 }

Then, some questions: does jfduke3d support tilefromtexture? Does it support .png textures being loaded like that?

jonof commented 7 months ago

does jfduke3d support tilefromtexture? Does it support .png textures being loaded like that?

It doesn't.

jonof commented 7 months ago

To illustrate, it is possible to patch in the art updates for weapons using my arttool program included in JFBuild's repository, but it's a terrific nuisance. First the PNG file from NightFright2k19's repo needs to have the Duke palette correctly set and be saved as PCX format. Then the new tile must be inserted to the appropriate tilesxxx.art file with the correct tile origin, e.g. arttool addtile -x 141 -y 189 2544 2544.pcx After all that, you will have widescreen-adjusted weapons as expected: duke0002 Question is, how worth it is it?

jonof commented 7 months ago

(Apparently worth it enough to learn that I've got faults in the tile replacement function of arttool 🤦‍♂️)