Quote from: Calin Leafshade on Thu 21/06/2012 08:59:45
I'm pretty sure the engine is not currently capable of running under 64bit even if it compiles. There are too many int to pointer conversions and stuff.
Getting a 64bit compliant version of the source should be of high priority in my opinion. (mainly for linux)
I'm not talking about compiling AGS as 64 bit application. With -m32 it is compiled as 32 bit application and that works on 64 bit Linux if 32 bit copies of all required libraries are there.
I also had a brief look into making AGS 64 bit compatible, but gave up quickly. My interpretation is the following. There's some guessing involved, but that's how it makes sense to me. The AGS scripting language has something like pointers (or needs pointer features for addressing stuff or whatever). They are based on 32 bit numbers and implemented by casting the numbers to pointers, and doing pointer-like stuff in C. The numbers are no real pointers pointing to memory, but only make sense in the AGS context.
If you would want to cast the 32 bit numbers to 64 bit pointers and back, that means you have to know exactly which pointers are AGS pointers and which are real C pointers. That's where it got too hard for me, because I don't know the code well. However, I would highly recommend not to make this even uglier by continue using pointers, but to implement the AGS pointer features properly without abusing C pointers.