Sign in to follow this  
ajaytemp_55190

Quake 2 MS-VC 6 does not transfer to VS2010 Express

Recommended Posts

C:\Users\Columbus\Documents\Visual Studio 2010\Projects\quake2-3.21\ctf\ctf.dsp : error : Project upgrade failed.



C:\Users\Columbus\Documents\Visual Studio 2010\Projects\quake2-3.21\game\game.dsp : error : Project upgrade failed.

C:\Users\Columbus\Documents\Visual Studio 2010\Projects\quake2-3.21\quake2.dsp : error : Project upgrade failed.

C:\Users\Columbus\Documents\Visual Studio 2010\Projects\quake2-3.21\ref_gl\ref_gl.dsp : error : Project upgrade failed.

C:\Users\Columbus\Documents\Visual Studio 2010\Projects\quake2-3.21\ref_soft\ref_soft.dsp : error : Project upgrade failed.

Share this post


Link to post
Share on other sites
I'm sure someone already has modified sources that support more modern compilers, the ioQuake folks come to mind. You're in for a non-trivial task trying to get *any* largish body of VC6 code code to compile in VS2010, let alone a game written in Carmack's... shall we say... "retro" balls-to-the-wall coding style, and further still one which is known to have inline assembly (hint: VS2010 doesn't support inline assembly anymore, in favor of intrinsic instructions (or external assembly files).

There are easier paths between where you are and where you're trying to get to, unless the journey is especially appealing to you. (even then, this particular journey is going to be like trekking for months through dense woods, only to reach a clearing at the end and realize you've been paralleling a major freeway the entire time).

Share this post


Link to post
Share on other sites
[quote name='yewbie' timestamp='1317422643' post='4867762']
Good luck friend, I tried something similar to that with VS2008 after a few hours of fixing syntax bugs and things the compiler was not happy with I gave up =p
[/quote]

In 2002 i tried to compile quake 2 or 3 on vs2003 and it showed 500 error messages. weird.

Share this post


Link to post
Share on other sites
Yes. Because VC6 came with both a compiler and a standard library that were completely broken with respect to the burgeoning standard at the time -- sure, VC6 "worked" left to its own devices, and in some ways it was even "good" for the time, but code written against VC6 is necessarily broken and won't work without modifications on *any* other compiler, even the very next iteration of VC, and rightfully so. VS2010's compiler still maintains switches to enable *some* of the broken behavior of VC6 in order to ease porting, IIRC.

Share this post


Link to post
Share on other sites
[quote name='Ravyne' timestamp='1317426926' post='4867786']
Yes. Because VC6 came with both a compiler and a standard library that were completely broken with respect to the burgeoning standard at the time -- sure, VC6 "worked" left to its own devices, and in some ways it was even "good" for the time, but code written against VC6 is necessarily broken and won't work without modifications on *any* other compiler, even the very next iteration of VC, and rightfully so. VS2010's compiler still maintains switches to enable *some* of the broken behavior of VC6 in order to ease porting, IIRC.
[/quote]



"Yes. Because VC6 came with both a compiler and a standard library that were completely broken with respect to the burgeoning standard at the time -- sure, VC6 "worked" left to its own devices, and in some ways it was even "good" for the time, . . . "


What the heck ?

Try to give a little referential documentation and evidence.

Share this post


Link to post
Share on other sites
[img]http://public.gamedev.net/public/style_emoticons/default/rolleyes.gif[/img] I'm not trying to start a war* with you dude, seriously, but honestly... reference? Evidence?

Everyone and their grandmother knows that VC6 was broken as all shit. They didn't even get the scoping on 'for' loop counters correct (which is one of those switches they maintain, BTW). Perhaps its you who needs to gather the referential documentation.


* -- seriously, it wasn't I who down-voted your post, for what its worth. I find it counter-productive to down-vote people for being mistaken, and assume their misinformation isn't willful or malicious until they've made it clear that it is.

Share this post


Link to post
Share on other sites
[quote name='VJ01' timestamp='1317427548' post='4867788']
[quote name='Ravyne' timestamp='1317426926' post='4867786']
Yes. Because VC6 came with both a compiler and a standard library that were completely broken with respect to the burgeoning standard at the time -- sure, VC6 "worked" left to its own devices, and in some ways it was even "good" for the time, but code written against VC6 is necessarily broken and won't work without modifications on *any* other compiler, even the very next iteration of VC, and rightfully so. VS2010's compiler still maintains switches to enable *some* of the broken behavior of VC6 in order to ease porting, IIRC.
[/quote]



"Yes. Because VC6 came with both a compiler and a standard library that were completely broken with respect to the burgeoning standard at the time -- sure, VC6 "worked" left to its own devices, and in some ways it was even "good" for the time, . . . "


What the heck ?

Try to give a little referential documentation and evidence.
[/quote]
This is a relatively well-known fact. Visual Studio 6 shipped in [url="http://en.wikipedia.org/wiki/Microsoft_Visual_Studio#Visual_Studio_6.0_.281998.29"]June of 1998[/url]. C++ itself was not accepted as an ISO standard until [url="http://en.wikipedia.org/wiki/C%2B%2B#C.2FC.2B.2B_standards"]September of 1998[/url]. VS6 was a decent toolchain for its time, but it was released (and thus, most of its major development) was done well in advance of any kind of final ratification of the C++ standard. The VS team had to pick what was popular and looked good from the available collection of C++ variants and ideas being tossed about and implement that.

Share this post


Link to post
Share on other sites
[quote name='VJ01' timestamp='1317427548' post='4867788']
[quote name='Ravyne' timestamp='1317426926' post='4867786']
Yes. Because VC6 came with both a compiler and a standard library that were completely broken with respect to the burgeoning standard at the time -- sure, VC6 "worked" left to its own devices, and in some ways it was even "good" for the time, but code written against VC6 is necessarily broken and won't work without modifications on *any* other compiler, even the very next iteration of VC, and rightfully so. VS2010's compiler still maintains switches to enable *some* of the broken behavior of VC6 in order to ease porting, IIRC.
[/quote]



"Yes. Because VC6 came with both a compiler and a standard library that were completely broken with respect to the burgeoning standard at the time -- sure, VC6 "worked" left to its own devices, and in some ways it was even "good" for the time, . . . "


What the heck ?

Try to give a little referential documentation and evidence.
[/quote]


Try to have concern with your mouth and language regarding **** and older woman.

And quit annoying users with irrelevant point(s).

Share this post


Link to post
Share on other sites
[quote name='Ravyne' timestamp='1317423795' post='4867767']
(hint: VS2010 doesn't support inline assembly anymore, in favor of intrinsic instructions (or external assembly files).
[/quote]
I have inline assembly in my VC++ 2010 projects (legacy from when I bought the non-optimizing VC++ 6 and 2003 editions, so I had to use assembly back then for certain parts). So I am quite sure it works. I think it only doesn't work if you compile it as managed code or as 64 bit. If you compile as 64 bit exec you can however put the assembly code in an external module, compile with [url="http://www.nasm.us/"]nasm[/url] and link the resulting object file with the rest.

Share this post


Link to post
Share on other sites
You might have better luck round-tripping it through 2003, 2005 or 2008 first; there's a clearer upgrade path from 6.

From 2005 onwards you'll be switched to the multithreaded CRT and won't have an option to go back to single threaded, but I'm not certain if this may or may not be a problem.

I'm pretty certain that starting with 2005 MSVC defaults projects to unicode and this default will come through when you upgrade the project, so you'll need to switch it back to multi-byte.

The warning level will likely also go to 3 instead of 1, so you'll get a whole pile of noise in the compiler output. Flip it back to 1 for your initial build, then ease it back up, fixing things as you go.

If memory serves, the last time I looked at this code one of the [url="http://en.wikipedia.org/wiki/DEC_Alpha"]Alpha[/url] builds was the default project configuration so you need to just set the regular debug or release build instead.

Share this post


Link to post
Share on other sites
[quote name='Ron AF Greve' timestamp='1317428708' post='4867798']
[quote name='Ravyne' timestamp='1317423795' post='4867767']
(hint: VS2010 doesn't support inline assembly anymore, in favor of intrinsic instructions (or external assembly files).
[/quote]
I have inline assembly in my VC++ 2010 projects (legacy from when I bought the non-optimizing VC++ 6 and 2003 editions, so I had to use assembly back then for certain parts). So I am quite sure it works. I think it only doesn't work if you compile it as managed code or as 64 bit. If you compile as 64 bit exec you can however put the assembly code in an external module, compile with [url="http://www.nasm.us/"]nasm[/url] and link the resulting object file with the rest.
[/quote]

Yes, you're right -- it was only the 64-bit compiler that disallows inline ASM (and managed C++ for obvious reasons).

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this