Converting Sins from 32bit to 64bit

is it really that hard?

Cannot it be done automatically? I cant believe there is not an algorithm that can convert 32bit source code to 64bit, since almost everything can be automatized these days. Does converting code from 32 to 64 still require lot of human work? 32bit programs can be converted for 64bit processors even on the fly. Why the other way around requires rewriting the source code that cannot be automated? I am not a programmer, so enlighten me.

http://www.freepatentsonline.com/7406681.html

http://www.filebuzz.com/findsoftware/Convert_32_Bit_Applications_To_64_Bit/1.html

16,282 views 3 replies
Reply #1 Top

For a program the size of a game (several gigabytes), its a whole lot more complex. Also depends on how they made the engine itself, but yes it can certainly be that hard.

Reply #2 Top

Not sure about sins but a lot of game use what is called obfuscated code... Game devs deliberately obfuscate code to conceal its purpose or its logic to prevent tampering, deter reverse engineering... It is a form of security trough obscurity... readable code is transform into obfuscated code using various techniques that might induce anti-debugging, anti-decompilation and anti-disassembly mechanism. All this will make it difficult for any auto tools for convert 32 bits code to 64 bits code...

Now, about your two links... first one is mainly about 32 bits software being able to use 64 library... it don't fully transform 32 bits code in 64 bits code but make the 32 bits code compatible to with 64 bit library ( with windows, the various .dll file are library )...

Second link have nothing valuable and directly related to the search...

32 bits programs cannot be converted on the fly for 64 bits processors... in fact, 64 processor, when running 32 bits application simulate a 32 bits environment for the application... it is called WOW64 in the case of windows ( Windows 32-bit On Windows 64-bit )... Technically, WoW64 is implemented using three dynamic-link libraries (DLLs): Wow64.dll, which is the core interface to the Windows NT kernel that translates between 32-bit and 64-bit calls, including pointer and call stack manipulations; Wow64win.dll, which provides the appropriate entry points for 32-bit applications; and Wow64cpu.dll, which takes care of switching the processor between 32-bit and 64-bit mode. 

A other possible problem is that a lot of game use externe library... by externe, i maean library that the game creator don't own the right... some like binkw32.dll for the video/cutscene... if bink don't exist for 64 bits, they cannot modify it because the game creator don't own the right on it, they license the use of the library for their game... same thing with fmod.ddl who is a library for play sound... not owned by Stardock/Ironclad...

Now, if these library don't exist in 64 bits, they need to choose other ( who mean expense for licensing ) but more bad, they need to rewrite their code for work with these other library...

In theory, it seem simple to move from 32 bit to 64 bit... it is true for a little software where you have 100% of all source code, a clear source code... but game are complex thing, with piece like dll coming from other developpers...

Now sure about when have start the dev of sins but the first directx 9.0c with 64 bits capabilities was only released in february 2005... 5 year ago is not so long, specially when you think that sins is almost 3 years and that dev of game take a lot of time... if the game engine was not made for use directx 64 bits, it can mean a full rewrite of the engine...

I am not really a professional programmer but believe, nothing is simply... time and money used for convert the actual sins to 64 bits and/or add multicore support will be better used for create a new Sins II engine who from the start will support  64 bits and multicore...

 

Reply #3 Top

Thanx for the replies, interesting reading.. :) Guess we would really have to wait for sins 2 then..  <_<