Page 1 of 2

Arx Fatalis Port

PostPosted: 16 Jan 2011, 12:25
by Black Mage
Hi

Arx Fatalis is one of my favorite games ever, and since i study computer science and love coding
i decided to try and port arx fatalis to linux.

My previous experience with a similar work was porting Dark Oberon from using the closed source fmod music library to sdl mixer.
you can see my work in the cvs, its not great and eventually since the project is almost dead and my code segfaulted on some systems my work didn't get to a release.

My plan of work is this:

1) Get Arx to compile on my windows 7 system with visual basic since it should compile and work and has visual studio 2008 project files.
2) Slowly port it from every closed source library used to an open cross platform one, the main port would be directx7 to opengl, but i might
start working first on some easier library to warm up a bit.
3) Test and compile the ported libraries on windows
4) When the library port is ready and working on windows, try to compile it on Linux and fix the issues that come up.
5) Hopefully if i ever make it here, test the game on Linux and finish it (i never got trough the last boss, he seems to be unkillable with a mage :\)
*) My systems are 64 bit so if i run into trouble in any part of the process i will need to address that as well :/
**) Maybe if things go well ill try to raise up a community around the project if it wouldn't be done yet.


I assume that this is not a "one mans job" even worse is the fact that i am a student and there is a chance that i will have very little time, if at all to work on the port.

I didn't came here to make any promises, i came here to notify people that might be interested in the Arx Fatalis code to avoid duplicated effort.
If anyone wants to work on the code, even open a project page and a code repository, and you read my post, please notify me so i can join the project or at
least know who to ask about which part of the code is being worked on.

For anyone that is interested and want to contact me, my name is Leon and my email is vleon1@gmail.com.

Re: Arx Fatalis Port

PostPosted: 17 Jan 2011, 00:01
by Black Mage
I am having trouble in compiling the source on window 7 64bit, under visual studio express edition.
i tried installing old august 2007 directx sdk, and the latest January 2010.

This is a negative and a positive setback.

The positive side is that i am not interested in updating the directx code and i want the source to compile as soon
as possible, so i am definitely going to work on porting the game to opengl as a first step.

The negative aspect is that i want to know that the code is otherwise OK, preferably on my comp, but i don't even have information
of the code compiling on any other computer.
If someone compiled the code, or has tips of how to overcome my difficulty, i will be more than glad to hear about it! :)

Re: Arx Fatalis Port

PostPosted: 17 Jan 2011, 05:38
by charlie
Instead of OpenGL, I'd suggest an engine like Ogre3D: www.ogre3d.org

The reason being, it takes care of some cross platform issues (e.g. Windows drivers supporting DirectX better than OpenGL, or supporting a range of OpenGL versions) and gives you plenty of interesting options for effects (lighting, bump mapping) without having to program it all manually. It would possibly be a simplification of the existing code.

Re: Arx Fatalis Port

PostPosted: 17 Jan 2011, 06:45
by sopyer
I have successfully compiled and run Arx Fatalis with Steam demo resources. You can find my repository at git://github.com/sopyer/ArxFatalis.git. The only thing that you should do is to find DirectX7 SDK and copy it to the DX directory. You can download it from http://bcb-tools.com/Downloads.htm#DirectX7 for example. Modern DXSDK does not work, as they lack DirectX7. I have also created MSVC++ 2010 Express solution(Gaia10.sln), which I used for compilation. Hope this will help.

Re: Arx Fatalis Port

PostPosted: 17 Jan 2011, 11:42
by seryu
If you need help, you can check my google code project:

http://code.google.com/p/arx-liberis/

I've updated MSVC projects in order to compile in VC++ 2010 express.

I'll update dx7 code to dx9.

Re: Arx Fatalis Port

PostPosted: 17 Jan 2011, 17:33
by Black Mage
Thanks A LOT!!!
This is a great help since i still prefer to work with code that compiles :)
I wont have time to use your repo today, but hopefully if all goes well ill start working on it tomorrow.

Re: Arx Fatalis Port

PostPosted: 17 Jan 2011, 18:15
by qubodup
I love it when a plan come together.

I mean a repository comes together.

I mean a repository gets put online and turns out to be useful for others.

Re: Arx Fatalis Port

PostPosted: 17 Jan 2011, 20:49
by lubosz
Hi. I was able to compile the code with libwine. It is still not linking, because I still have some issues.
The biggest Problems of the code base are:

1. Fucking case sensitivity. The developers managed to write every case possibility of including the headers
2. String methods. Ancient non ANSI string methods
3. D3D and w32 types obviously (but wine headers help with that currently)
4. type / casting conflicts with min / max and also w32 types

I have written a CMake build, but I'm not ready yet with the full compile.
https://github.com/lubosz/ArxFatalis

Re: Arx Fatalis Port

PostPosted: 17 Jan 2011, 20:52
by lubosz
BTW, it would be nice if we would agree on using git, and not svn.

Re: Arx Fatalis Port

PostPosted: 18 Jan 2011, 02:43
by p0ss
Hi there, I registered just for this, I'm not going to be any help with the port, but I'd love to work on a High Res Mod. The other advantage of a high res mod (apart from looking pretty), is that I could release the new textures under an open license thus allowing the ported version to be distributed without the licensed assets. I'm having a look through the assets now to see what I'll need to proceed.

Are we getting a forum or something to organize discussion better?

Re: Arx Fatalis Port

PostPosted: 18 Jan 2011, 04:24
by p0ss
I'm not going to be much help with the porting, but I'd like to work on a high res mod, which would have the added benefit of enabling the source to be distributed with data files. Problem is, I'm yet to find a pak extractor that will work on arx paks under wine. Looks like the right tool for the job is http://teachsolaisgames.com/utils/ArxPakFull.zip however it apparently only works well on older versions of windows, which I don't have access to. I've tried in win 7 and ubuntu 10.10, if anyone has win 2000 box that'd be perfect, but it might be worth trying under XP too. If you need the .paks and you don't own the game, or feel like pirating, you can download a demo, its not all of the files of the full game but its enough for me to start work on .

Re: Arx Fatalis Port

PostPosted: 18 Jan 2011, 04:52
by lubosz
p0ss {l Wrote}:I'm not going to be much help with the porting, but I'd like to work on a high res mod, which would have the added benefit of enabling the source to be distributed with data files. Problem is, I'm yet to find a pak extractor that will work on arx paks under wine. Looks like the right tool for the job is http://teachsolaisgames.com/utils/ArxPakFull.zip however it apparently only works well on older versions of windows, which I don't have access to. I've tried in win 7 and ubuntu 10.10, if anyone has win 2000 box that'd be perfect, but it might be worth trying under XP too. If you need the .paks and you don't own the game, or feel like pirating, you can download a demo, its not all of the files of the full game but its enough for me to start work on .

Did you try wine?

Re: Arx Fatalis Port

PostPosted: 18 Jan 2011, 08:04
by p0ss
second sentence mate :)

> Problem is, I'm yet to find a pak extractor that will work on arx paks under wine.

Re: Arx Fatalis Port

PostPosted: 18 Jan 2011, 10:24
by lubosz
Check out the subreddit i've opened for the organization of porting arx:
http://www.reddit.com/r/ArxFatalis/
I think this is a better way to communicate than a forum thread :)

Re: Arx Fatalis Port

PostPosted: 18 Jan 2011, 10:47
by seryu
p0ss {l Wrote}:I'm not going to be much help with the porting, but I'd like to work on a high res mod, which would have the added benefit of enabling the source to be distributed with data files. Problem is, I'm yet to find a pak extractor that will work on arx paks under wine. Looks like the right tool for the job is http://teachsolaisgames.com/utils/ArxPakFull.zip however it apparently only works well on older versions of windows, which I don't have access to. I've tried in win 7 and ubuntu 10.10, if anyone has win 2000 box that'd be perfect, but it might be worth trying under XP too. If you need the .paks and you don't own the game, or feel like pirating, you can download a demo, its not all of the files of the full game but its enough for me to start work on .


I can help you with that ;)

I'll send you the data later. What's your email?

BTW I have the GOG version (which I recommend, being DRM free).

Re: Arx Fatalis Port

PostPosted: 18 Jan 2011, 16:52
by lubosz
IRC anyone? Join #arxfatalis on irc.freenode.net

Re: Arx Fatalis Port

PostPosted: 18 Jan 2011, 20:43
by Black Mage
The recent new about the gallium direct3d state tracker are very interesting.
maybe we should port the game to d3d10/11 as well? :P

Some people seem to think that i lead some project, actually i want to be part of a project but as
i mentioned i have less times than some of the people here since im a student..

I liked the name "arx liberis" and when i get home i would like to join the project, maybe all of us from this post
should gather arround on some agreed time on the irc channel that was opened?

im a bit incoherent, so im sorry. but i hope that at least a third of my massage is passed trough all my rumbling :P

Re: Arx Fatalis Port

PostPosted: 20 Jan 2011, 01:34
by wombatkin
Hi folks,

I've created small command-line arx .pak files unpacker.
Here is links to sources and win32 binaries:

https://github.com/wombatkin/arx-unpacker
https://github.com/downloads/wombatkin/ ... -win32.zip

At this moment it undertands only one argument - .pak filename, e.g. arx-unpacker.exe data.pak and will unpack to current directory. Later I'll add more useful options like extracting concrete files, listing of .pak files, etc. Sources should be compilable under linux, but I haven't tested this yet.

Any ideas are welcome :)

Re: Arx Fatalis Port

PostPosted: 20 Jan 2011, 02:28
by ImminentWaffle
Did anyone else encounter this error when trying to compile the Athena project?

Athena.cpp
Generating Code...
Compiling manifest to resources...
Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
Copyright (C) Microsoft Corporation. All rights reserved.
Linking...
Creating library ../lib/Athena.lib and object ../lib/Athena.exp
hermes_debug.lib(HERMES_pack_public.obj) : error LNK2019: unresolved external symbol "public: static void __cdecl ArxDebug::Assert(wchar_t const *,wchar_t const *,unsigned int)" (?Assert@ArxDebug@@SAXPB_W0I@Z) referenced in function "void __cdecl WriteData(char *,unsigned int *,void *)" (?WriteData@@YAXPADPAIPAX@Z)
../../game/Athena.dll : fatal error LNK1120: 1 unresolved externals

Re: Arx Fatalis Port

PostPosted: 22 Jan 2011, 21:52
by ImminentWaffle
I found my solution for the ArxDebug issue I posted above. There were some files deep in the include folder that I needed to rearrange (seems odd I would have to do that, and it is probably not the solution intended by them, but it works for me). Now, however, I am getting errors all over the place because the code is trying to pass in TCHAR* into a method that accepts char* as a parameter. There is probably some sort of compiler setting I am missing that would allow this, but I don't know what it is. Anyone?

Re: Arx Fatalis Port

PostPosted: 23 Jan 2011, 16:17
by TheAncientGoat
Btw, progress shot of Arx under Linux using winelibs: http://i.imgur.com/eSyvk.png

Re: Arx Fatalis Port

PostPosted: 23 Jan 2011, 16:36
by KroArtem
winelibs? No way :(

Re: Arx Fatalis Port

PostPosted: 23 Jan 2011, 17:20
by TheAncientGoat
That's not the main project's ideal; they're just trying to get something working asap

Re: Arx Fatalis Port

PostPosted: 23 Jan 2011, 17:24
by KroArtem
ok, read on one of their github pages that this is a temporary solution.

Re: Arx Fatalis Port

PostPosted: 13 Feb 2011, 02:11
by p0ss
Thanks wombatkin, that is really helpful :) I've also joined the reddit and will do what I can to help, I'm primarily creating things for OpenGameArt at the moment, but if there is anything I can do as a crossover between the two (textures being a great example), and you guys don't mind me releasing any art I make under GPL, then I'll certainly add in whatever I can :)