Announcement

Collapse
No announcement yet.

Help with issues to get FTEQW to run on Linux for modding?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Help with issues to get FTEQW to run on Linux for modding?

    Edit: This is turning into a bit of a diary of how to get a old SSQC mod made for Darkplaces into FTEQW. I am writing things down which I feel might help others in the future, and along the way I hope some bugs gets fixed and things made a bit easier.

    Hi everyone!

    I decided to try bringing a simple old DP standalone mod to FTEQW for the nice multiplayer features it has. While I got it somewhat to run there are several strange issues that seem to be related to it being not well tested under Linux (I don't have a Windows install, but from the looks of it with WINE, it works better).

    I am using the latest binaries (9th of Sept.) from the Moodles repository:
    Index of /moodles
    (compiling it myself I would like to avoid for now for practical reasons).
    I am running a Kubuntu 16.04 install with a nvidia GPU.

    First of all I spend a really long time trying to run the game with -basedir as instructed in several places, but it seems this parameter is plain broken. After a while I tried it with the -game command as in DP and that finally works. However then I realized that it only works if I keep the /id1/pak0.pak file in the directory, even though the mod I am running does not require it at all. If I remove it the annoying -basedir message comes up again.

    The next issue is that many maps also fail to load with a "PF prechache sounds" error, which I guess is unique to DP? Any easy work-around for this?

    I also notices that a lot of v_weapon animations and some textures fail to load. My guess that .md3 works better than .psk models, with the latter basically unsupported for animations? There are also some issues regarding this with newer versions of DP, but not nearly as bad. How is .iqm support in FTEQW? Maybe I'll try to convert all the models into that as the Blender exporter works much better.

    Another strange issue is that skyboxes don't work at all. Initially I had this odd looking void stuff showing up there, but after extracting all the .pk3 for easier editing, the skybox look has changed to a brown checker texture, and strangely enough the alpha transparent textures suddenly stopped working with one side the same brown checker texture. Especially the latter puzzles me, as they worked fine when compressed as .pk3 archives.

    Another issues is that only the SDL binary functions properly with the nice CSQC menusys mod in regards to mouse and keyboard input. If I start the game with the gl64 binary it starts fine, but no Keyboard inputs are registered and the no mouse clicks (the mouse pointer in the menu shows and hover highlight also, but no actual interaction). However if I start it with the SDL binary, then the OGG Vorbis support gets lost somehow and most of the sounds don't play any longer.

    So for now the main issues are, how to get the game to run without the shareware pak0.pak and how to get the menusys mod input to work properly on Linux (I guess the SDL version just has not been compiled with OGG vorbis support). The rest seems like normal porting issues, but any suggestions on that are highly welcome.

    Next on my list is probably to compile the progs.dat with FTEQCC to see if that is compatible. But I suspect that there might be issues as it was using its own custom compiler before. I'll keep you posted.
    Last edited by Julius; 11-01-2016, 09:49 AM.

  • #2
    Devil's advocate: You have crapton of problems with mod. But you don't name WTF it is.

    Are you testing to see if anyone here has ESP or mind reader capability?
    Quakeone.com - Being exactly one-half good and one-half evil has advantages. When a portal opens to the antimatter universe, my opposite is just me with a goatee.

    So while you guys all have to fight your anti-matter counterparts, me and my evil twin will be drinking a beer laughing at you guys ...

    Comment


    • #3
      These are all general issues, not really related to the specific mod. But since you seem interested, it is "Transfusion"

      Edit: I am only interested in the really fun multiplayer and maybe turning it into a retro coop Left4Dead kind of game later on if everything works out fine. But of course if someone else wants to start working on the SP part again, that would be also great.
      Last edited by Julius; 11-01-2016, 09:52 AM.

      Comment


      • #4
        The old on again off again Blood Total conversion (that only does multiplayer, not single player).

        Well they say it is a total conversion.

        But the errors sound like it is dependent on files in pak0.pak, in particular sounds.

        The FTE thing sounds like it won't run as total conversion unless registered Quake pak1.pak is present. There may be some undocumented (or very hard to determine) way to disable that behavior which LordHavoc and Spike think of as a standard (Xonotic or Nexuiz might use it) but didn't bother to tell anyone else what the method is.

        You could throw pop.lmp from Quake pak1.pak into the Transfusion gamedir and it might disable the total conversion check in FTE, that's the file Quake looks for to determine if it is registered.

        Transfusion was going on in the past, and LordHavoc made a ton of changes to settings and different behaviors inside DarkPlaces since then.

        Due to that, it may be difficult or nearly impossible to get it to run as you hope with current DarkPlaces --- from what I understand (but the Transfusion forums might know more on the subject if those are still alive in any meaningful way).
        Last edited by Baker; 10-31-2016, 10:12 PM.
        Quakeone.com - Being exactly one-half good and one-half evil has advantages. When a portal opens to the antimatter universe, my opposite is just me with a goatee.

        So while you guys all have to fight your anti-matter counterparts, me and my evil twin will be drinking a beer laughing at you guys ...

        Comment


        • #5
          Having it run in split screen multiplayer on FTEQW would be neat

          But it definitely does not need pak0.pak as it runs without in DarkPlaces. I think it has to do with how FTEQW interprets the -game command, which is probably only meant for mods, while the under Linux seemingly broken -basedir is for total conversions.

          Comment


          • #6
            -basedir is only needed if you want to override the working directory.
            alternatively, fte will fall back on /usr/share/quake/id1/pak0.pak if that exists and the working directory doesn't actually contain a quake install (and fte wasn't told to try to run a game that wasn't quake).
            note that gamedirs are still case-specific, typically lower. paks etc shouldn't need that, but gamedirs still do, which can be an issue if you're unzipping some archive from windows.
            if you've got a total conversion that isn't quake, make a 'default.fmf' file (eg: http://triptohell.info/moodles/web/hexen2demo.fmf ) in the base directory that sets up the filesystem stuff so that configs etc can be execed properly, or just make a shell script with '-basedir .' in it so that it doesn't panic and try to fix problems caused by people running it from the wrong working directory.

            pr_precache_sound. please try to be specific. if you're getting 'bad string' then its because you're passing an empty string to the builtin. if its an overflow then well done your mod has a LOT of sounds.

            textures failing to load. fte's q3shader support is more compliant with quake3 than dp's. if you're doing something stupid like 'depthfunc equal' in every single pass then that's your fault (or more likely the fault of whoever you copied those shaders from).
            iqm works just fine in fte.

            skyboxes: I've no idea.
            extracting files can give different file precedence. otherwise make sure you're not using some dp-only skybox naming system, and that you provide an image for each face.

            keyboard input: on ubuntu, you'll need to use the '-noxim' commandline argument, which disables unicode text input, limiting you to only ascii input. this isn't a problem with debian or cygwin, where the xim library gives correct unicode chars.
            iiuc, sdl gets around this by embedding some huge conversion table which I have no interest in mimicing. hence xim. I have no idea how to fix this in a way that is actually maintainable and not crippled.
            I have no idea why you might have issues with the mouse.
            in comparison, DP is SDL only, and pulseaudio/alsa issues on ubuntu mean that SDL is really the only reliable audio driver anyway (the only reliable way to avoid 1sec audio latency is to depend on the per-distro device default so that quake is in the same boat as everything else you play). So yeah, SDL2, use it, there's too much variation between distros to not do so.

            fteqcc can be compiled for any desktop system including linux, but the gui version is unfortunately windows-only (though it should run fine via wine if needed). you can single-step to debug within fte without fteqccgui by setting pr_debugger 1, but the text editor is a bit shite, and this method is much less tested compared to debugging via fteqccgui.
            note that most fteqw builds actually contain an embedded fteqcc, which you can access via the 'compile' console command, which will compile '$gamedir/$pr_sourcedir/progs.src' into a .dat file, which should be directly usable with a map restart if set up right.
            Some Game Thing

            Comment


            • #7
              Originally posted by Julius View Post
              Having it run in split screen multiplayer on FTEQW would be neat
              success with splitscreen depends on the mod.

              spltscreen does not work properly with a couple of ssqc features, namely .viewmodelforclient or .externalmodelforclient. the client doesn't know which 'seat' the flags are appropriate for, which might bug things out a little. csqc can be used as a workaround for this (and arguably should be doing this stuff anyway, so I've not really bothered to address that).

              additionally, csqc needs to tread carefully with splitscreen - the csqc 'owns' the screen such if the csqc isn't aware of splitscreen then it'll only draw the first seat, and the other players will basically be unusable (they might still be useful for spawning target dummies, but you won't be able to view what they're up to).
              Some Game Thing

              Comment


              • #8
                Originally posted by Baker View Post
                The FTE thing sounds like it won't run as total conversion unless registered Quake pak1.pak is present. There may be some undocumented (or very hard to determine) way to disable that behavior which LordHavoc and Spike think of as a standard (Xonotic or Nexuiz might use it) but didn't bother to tell anyone else what the method is.
                Mod the engine and recompile. That's the 'standard' way to avoid id1/pak0.pak (some pre-hardcoded mods might be used by default if you rename the engine binary to invoke said hardcoded mods instead). Which is shite and hardly an acceptable 'standard'.
                FTE can avoid that with a 'default.fmf' file (which allows for in-engine rebranding), but even with that the exe's icon is wrong (at least on windows, and android builds need some fixups too if you want to rebrand the launcher's shortcuts).
                Some Game Thing

                Comment


                • #9
                  For now Transfusion doesn't have any CSQC, so I guess it would need only fixing of those SSQC in case that becomes an issue... but I am far from that still

                  I'll try the .fmf thing. it will probably fix the -basedir issue. Thanks.

                  The pr_precache_sound is the 'bad string' version. I'll try to find it, but it only happens for some maps.

                  Regarding the keyboard issues with the non sdl version... thanks for the help on IRC... seems like there is no easy solution to it for now. Very strange as the non-menusys version works just fine.

                  Comment


                  • #10
                    Originally posted by Spike View Post
                    Recompile = That's the 'standard' way to avoid id1/pak0.pak
                    Hehe
                    Quakeone.com - Being exactly one-half good and one-half evil has advantages. When a portal opens to the antimatter universe, my opposite is just me with a goatee.

                    So while you guys all have to fight your anti-matter counterparts, me and my evil twin will be drinking a beer laughing at you guys ...

                    Comment


                    • #11
                      Regarding the manifest file... very odd:
                      I created the following default.fmf
                      -----
                      ftemanifest 1
                      game transfusion
                      name "Transfusion"
                      protocolname transfusion
                      basegame basetf
                      basegame *fte
                      -----
                      And while the engine now starts with the -basedir basetf parameter, all I get is a very simple black on white menu, and I can't actually start any maps from the console either.

                      Comment


                      • #12
                        Ahh, ok if I put the default.fmf into the engine/game's root directory, i.e. where the binary executables are it works. Then you can completely forget about the -basedir parameter and just start the executable.

                        Comment


                        • #13
                          exactly. in the base directory, rather than the base gamedir. :/
                          yeah, the terminology sucks.
                          Some Game Thing

                          Comment


                          • #14
                            Just to keep who ever reads this posted, in case it helps in the future for other old mods:

                            Had to rewrite the progs.src for the "new" #include "..." type, and now I am trying to fix various compile errors. Nothing major so far it seems though... ancient code :-/

                            The basemod examples in the FTEQW source repository helped figuring the new structure for the progs.src out.

                            Comment


                            • #15
                              ok, got it to compile with FTEQCC fine after some minor edits (much to my own surprise, and also only with 18 warnings). Game plays the same as with the original progs.dat, just the muzzle flash sprites are showing up slightly different (but they are broken anyways in the current half finished version I have).

                              Was a bit odd though that while my progs.src tells it to put the progs.dat in the directory above the source files (#pragma progs_dat "../progs.dat" as the first line), it only does so when I directly reference the progs.src via the comand line with no parameter. if I use the -src parameter (necessary for using -fautoptoto) with only the src directory, it puts the progs.dat in the source directory. but not a big deal and I didn't need the -fautoproto parameter after all.

                              Spike also tried to figure out the other issues and while a recompile fixed the OGG vorbis issue I had, the lack of input in the CSQC menusys with all but the glsdl32 build from the moodles repo remains a mystery. It might be somehow related to KDE. If anyone else could try it also, that would be interesting (take this file http://triptohell.info/moodles/csaddon/menu.dat and put it in a /fte like it is by default in the windows builds). Spike did test it in a VM, but that's a bit unreliable.
                              Last edited by Julius; 11-01-2016, 09:55 AM.

                              Comment

                              Working...
                              X