dreamer / luxtorpeda

Steam Play compatibility tool to run games using native Linux engines
https://luxtorpeda.gitlab.io/
GNU General Public License v2.0
383 stars 9 forks source link

What are the next steps for Unreal Tournament 2004? #45

Open tuxayo opened 4 years ago

tuxayo commented 4 years ago

Additional information

dreamer commented 4 years ago

AppId: https://steamdb.info/app/13230/ for future reference.

Steam version of UT2004 is waiting on my wishlist for next sale. Regarding next steps: I haven't investigated into it in depth yet, but overall next steps would be:

If it looks like non-trivial amount of work… well, that's because it is ;)

At the moment I am preoccupied with making DOSBox, erhm, work and backlog of tasks for Luxtorpeda projects is really, really long already, so I wouldn't mind if someone else started the packaging process for UT2004 instead.

tuxayo commented 4 years ago

Thanks a lot for such an analysis! That's indeed quite some work.

Steam version of UT2004 is waiting on my wishlist for next sale.

I can take care of that ;) Only UT2004 or other games from this pack? https://isthereanydeal.com/game/unrealdealpack/info/#/ Like UT99 and Unreal Gold

icculus commented 4 years ago

Hi, @tuxayo pointed me to this bug report.

Here is the latest version of UT2004 for Linux, 3369.2:

http://treefort.icculus.org/ut2004/ut2004-lnxpatch3369-2.tar.bz2

I think you can just unpack that into a Windows install and go: it has both 32 and 64-bit binaries. You might need to mess with System/Default.ini files if not included in the tarball, so you don't fail trying to use the Direct3D renderer. At some point with Unreal Engine 2, we had the Linux/Mac builds smart enough to say "ah, this was clearly a Windows .ini, replace WinDrv and D3DDrv with SDLDrv and OpenGLDrv," but I don't remember if UT2004 did that, and you'll probably want to mess with the SDL and GL settings beyond choosing those drivers anyhow.

I assume the Steam version ships with the Epic Megapack, but if not, use this instead to get the bonus content (it also contains the 3369.2 binaries)...this was a free download from Epic, so I assume it's safe to redistribute the extra content even if Steam didn't.

http://treefort.icculus.org/ut2004/ut2004megapack-linux.tar.bz2

I haven't tried these binaries in a long time, and I don't know what limitations they'll have. They come from December 2005, and we probably had libstdc++ nastiness with them.

It would be worth installing the game from a retail disc (there's a Linux installer on the retail Windows DVD and CDs!), patching it to the latest, and diffing it against whatever's on Steam, just so we know what we have and don't.

--ryan.

ghost commented 4 years ago

This may be of some use: https://github.com/alanjjenkins/archlinux-package-ut2004-steam

d10sfan commented 4 years ago

Thanks for the links and guidance on that! It looks like the Steam version includes the megapack maps, so that makes things a bit easier. I have a package (https://gitlab.com/d10sfan/luxtorpeda-ut2004) that looks to work well from a clean steam install. There is an issue with seemingly luxtorpeda finding the right working directory, which I've expanded on below.

It'll ask you with Zenity for your cd key and then writes that and does symlinks to a new directory, so the original Windows data files don't get messed with. Then, it'll do a few symlinks for some libraries, and launch the game. The first time load can take a while when it gets things ready, but after that it loads very quickly.

It uses sdlcl for sdl 1.2 support, which is included. For now, it will check if libstdc++.so.5 is installed on the user's system, and if not, it will prompt with a Zenity error. It will also check for openal, which it'll link to the proper place. If both are installed and the cd key is entered properly, it should then run without any extra user input, I figure in the future we could package libstdc++.so.5 in some way along with the rest.

Also, with the way it works, if you want to install mods, you'd want to put them in the linuxdata directory (such as linuxdata/System). There's two mods I used that worked nicely just to make it feel better on larger screen resolutions: https://forums.epicgames.com/unreal-tournament-2003-2004/user-maps-mods/beta-releases/288070-hud-scaling-fix-rc3 & https://steamcommunity.com/app/13230/discussions/0/611702631218438023/

@dreamer Something I noticed that seems specific to this one:

When I launch a game through Steam for the tool (like with Arx or Quake 2), normally it's able to find the working directory correctly. With this game, it tries to load the working directory as the steam directory (~/.steam/steam). I was able to work around it by placing a shell script in that directory that only changed directories to the actual path of the game and executed the script.

My packages.json entry looks like the following (with the workaround):

 "13230": {
        "game_name": "UT2004",
        "package": "dist.tar.xz",
        "command": "./ut2004route.sh"
}

Normally it'd look like this:

 "13230": {
        "game_name": "UT2004",
        "package": "dist.tar.xz",
        "command": "./run-ut2004.sh"
}
ghost commented 4 years ago

I keep having problems with make it work on linux, the texture files aren meet and they have different extensions than the requiered ones.

ghost commented 4 years ago

thjey are utx.uz2 and not .utx , obviusly if I rename them they fail

icculus commented 4 years ago

uz2 is compresssed (it's basically just zlib in a non-standard format). They should be uncompressed and then be .utx files in the Textures directory.

I posted a simple C program to the ut2004 mailing list, back in the day, to decompress uz2 files.

ghost commented 4 years ago

Thanks, I ve already done that on windowd with a normal instalation now it runs great. Just no sound but I will need to do a workaround about why openal it's not working. Btw it was tested on rpi4 with box86 and great results !

AsciiWolf commented 3 years ago

Any news regarding the UT2004 support in Luxtorpeda? :-)

dreamer commented 3 years ago

@d10sfan packaged it - it's available in his fork: https://github.com/luxtorpeda-dev (I recommend testing his version of Luxtorpeda, but, I have not tested UT2004 myself - yet).

d10sfan's fork is not an aggressive one - you can ask for support in official Luxtorpeda channel on Discord