A bunch of stuff has changed and I didn't do an actual port, I just took the shortest route to make it work.
The build system and some parts of the code have substantially diverged, and accounting for this would require more work than what I did.
What doesn't work and/or was ripped out in the interest of time:
- The editor: the API for a function that was used all over the place was different, so I didn't even bother trying to build it. Just use Mapster32.
- Screen palettes other than the base one: That means stuff like the 3DRealms logo will look all funky and corrupt, and being underwater won't tint anything.
- Multiplayer: is completely stubbed out, since EDuke32 removed all multiplayer support from the engine and rewrote it from inside the game code instead.
- The map revealing cheat code
Known bugs:
- Wrong fullbright handling means you'll get weird colored spots floating around (see white spots on the floor on screenshot). Disable glow mapping to make this go away.
- Some sprites are missing in Polymer, don't know why
For this shot I used a maphack that you can find at http://plagman.net/j...ine/$bullet.mhk.
Note that it might only work with the shareware flavor of this map, I don't know if it was modified or not in retail and I can't be bothered to make sure.
Prerequisites for building yourself:
Don't bother going through this if you don't already have a setup where you can produce working builds of EDuke32 and JfSW.
For EDuke32, see http://wiki.eduke32....Duke32_on_Linux or http://wiki.eduke32....ke32_on_Windows.
Note that on Windows, you'll have to use GCC and not MSVC. For JfSW, you'll need to make sure to have a git client and building JfSW should be as simple as the following if you already can build EDuke32:
git clone https://github.com/jonof/jfsw.git jfsw.git git clone https://github.com/jonof/jfaudiolib.git jfaudiolib.git git clone https://github.com/jonof/jfmact.git jfmact.git git clone https://github.com/jonof/jfbuild.git jfbuild.git cd jfsw.git make
[u]How to build:[/u
First, create a directory where we'll be working, for example jfsw_on_eduke32_engine. Inside that directory, we'll first want to set up a JfSW source tree and its dependencies (minus JfBUILD):
git clone https://github.com/jonof/jfsw.git jfsw.git git clone https://github.com/jonof/jfaudiolib.git jfaudiolib.git git clone https://github.com/jonof/jfmact.git jfmact.git
The target directories (jfsw.git, etc) are important because the default Makefiles look for these exact names.
After that, checkout an EDuke32 tree from SVN in that same directory, and be sure to name the directory eduke32_for_jfsw.
Also make sure that the EDuke32 makefiles are right into that directory and not a "polymer" subdirectory, eg. checkout from:
svn co https://eduke32.svn.sourceforge.net/svnroot/eduke32/polymer/eduke32/ eduke32_for_jfsw
Go into our newly created EDuke32 tree and apply the engine hacks that I came up with, eg.:
cd eduke32_for_jfsw wget http://plagman.net/jfsw_on_eduke32_engine/eduke32_engine_changes patch -p0 < eduke32_engine_changes
This applies cleanly today against revision 1864. If you get conflicts, it's possible a newer revision broke this patch. It might be trivial to fix, but syncing EDuke32 to r1864 should also solve your problems.
We'll also want to apply a commit to our newly cloned JfSW tree, so from our base directory:
cd jfsw.git wget http://plagman.net/jfsw_on_eduke32_engine/0001-Hacks-to-build-against-EDuke32- engine-source.patch git am 0001-Hacks-to-build-against-EDuke32-engine-source.patch
Likewise, this is known to apply cleanly as of today, on top of commit 7c3fc9d9102a2b126e50fd4ae9117e00d0c16ae5. Try checking it out directly if you get conflicts.
Now that you have everything patched up, invoke make from the JfSW directory:
cd jfsw.git make sw[.exe]
That should spew a _lot_ of warnings, but produce a working sw binary. Make sure you don't invoke make without a target or the editor will fail to build.
If you get missing libraries errors, you can find them in C:\MinGW\bin (or rebuild with `-static-libgcc -static-libstdc++` appended to LIBS).
If you get a compilation failure, you either did something wrong or are using a significantly different version than me. Try running posting the output of `make | grep error`.
Thanks,
- Plagman