Game Development Community

TorqueDemo.exe 1.4 illegal operation failure

by TechLord · in Torque Game Engine · 11/24/2005 (8:44 pm) · 47 replies

techlord.blackeve.com/torquedemo14.jpg
TorqueDemo.exe 1.4 produces an illegal operation failure upon launch. I've uninstalled and reinstalled 4 times with no success. Specs: AMD Athlon XP 1500+, 512.0MB ram, Gforce4 Ti 4600.

Torque1.3 and TSE run on this machine with no issues.
#21
12/29/2005 (9:28 am)
How do you install unicode? The "instructions" on Microsoft's site were remarkably vague.

I'll second the request for a rerelease of 1.3.
#22
12/29/2005 (9:43 am)
"The fix is to install unicode dll from MS or rework 1.4 to take out unicode references. The real fix is to have the engine detect the os and take care of it."

The correct fix is the last one you describe. You can go asking users to install an obscure DLL, not to casual gamers. It's easier for them to forgot about your game and download the next free demo.
#23
12/29/2005 (9:51 am)
Well what I was intending there was for the development compiling the engine etc if win98 is preferred one could set up for unicode on that machine. And we can all agree the engine being an engine should be aware and alter for OS types.
#24
12/29/2005 (10:19 am)
Any suggestions on good ways to have the engine detect the OS and switch API calls if needed? I don't want to play "hunt the Win32 API call" - not only do I have to make sure Torque is clean but any libs it links against, too. Just including the Unicows DLL in the installer seems like a lot more robust fix.

If you need 1.3, just get it from CVS... We're not going to confuse people by putting up two binary installers, the whole point is for that to make it easier by REDUCING the opportunity for people to make mistakes! ;)

So in conclusion - for now get the MSLU, and for the next point release, which will be soon, we'll be including the MSLU as part of the installer for demos & the SDK, which will fix the problem, as well as note it needs to be included as part of any redists.

Unless there's a really slick way to make the engine automagically use the right API calls. :)
#25
12/29/2005 (11:58 am)
I think once you get the version then #define and ifdef should wrap the unicode, but I may be wrong.

if(Version > XXX)
#define UNICODE

I think this is the way to get version info

typedef struct _OSVERSIONINFO{
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
TCHAR szCSDVersion[ 128 ];
} OSVERSIONINFO;

BOOL GetVersionEx(
LPOSVERSIONINFO lpVersionInfo // version information
);
#26
12/29/2005 (3:49 pm)
Defines are applied at compile time. You can't switch them at runtime. :(

Any other ideas, anyone? :)
#27
12/30/2005 (3:45 pm)
I'm having one hell of a time trying to get 1.3 over CVS. The SDK that is downloaded refuses to compile because its missing a number of files. I'm getting 89 errors because of a number of files, mostly from the sim and gui folders, do not exist. Heck, CVS didn't even give me a GUI folder. I thought getting Release_1_3_1 would give me a full, clean install...?
#28
12/30/2005 (4:52 pm)
Ian,

It should. Make sure you're getting the correct one, and putting it in a clean and unused folder.
#29
12/30/2005 (7:30 pm)
Thats odd, then. I've tried downloading it twice, each time to a clean folder. Neither has the GUI folder.

I'm downloading torque off the CVS for "Revision_1_3_1". Where might I be messing up?
#30
12/31/2005 (9:36 am)
Try using "Release_1_3_0". I believe "Release_1_3_1" was an interim step between TGE versions 1.3 and 1.4.
#31
12/31/2005 (2:25 pm)
Hey, that worked! Thanks!

Now I can finally start messing around with Torque! Score!
#32
12/31/2005 (2:42 pm)
It might be a good idea to move this discussion to another thread.

CVS ought to give you valid checkouts for previous versions. 1_3_0 and 1_3_1 both had valid data in them at one point - we don't usually tag unless it compiles!
#33
01/14/2006 (9:21 pm)
I'm sorry to ressurect an old thread like this, but I cannot get 1.4 working. I've downloaded unicows.dll from microsofts webpage, gotten a copy of unicows.lib (an older one, that I heard didn't have debugging issues with MSVC++ 6.0), and the project settings have had unicows.lib added. However, there is no change in Torque 1.4's response... it still refuses to work.

I've been doing development on 1.3 in the meantime, but I want to be able to work with torque 1.4, since it looks so awesome.
#34
01/14/2006 (10:53 pm)
Are you sure it's actually linking the unicows code in?
#35
01/15/2006 (3:56 pm)
I'm not totally sure. It shows up in the projects list of libraries to link in both release and debug builds, so I was assuming that meant it was being automatically added.

Sorry for the newbie question, but is there a way to make sure?
#36
01/15/2006 (11:44 pm)
You dont have to just link to the *.lib file. You have to link it before any other API libs. Microsoft proposes that you remove all default libs that are set in your build environment. This is done via a /nod:library.lib. Then you link with UnicoWS and then you link all those libs again that you just removed before.

That should do it. The Unicows function should be called before WinMain automatically and only on Win9x/Me.

Compiling your Application with the Microsoft Layer for Unicode

In the above linked side there is one error tho ... you cant read the complete line of "/nod:kernel32.lib" thingies... had to copy and paste it to notepad to read it <.<
#37
01/16/2006 (3:50 pm)
Thanks for the link... I didn't find that when I looked through microsoft's site! Not the clearest instructions in the world, but I think I managed to follow them.

A problem persists, though. Changing the link options around allowed it to run without dropping me out with an error, but while it'll now get to the main application, it'll hang before the garagegames logo can even show, leaving me with a blank window. This happens with both release and debug builds.

Any ideas?
#38
01/16/2006 (4:07 pm)
Where is it hanging? :)
#39
01/16/2006 (7:27 pm)
Well, these are the last few messages in the debug window:

Loaded 'C:\Torque\Modules\TGE1_4_0\example\wrap_oal.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\SYSTEM\DSOUND.DLL', no matching symbolic information found.
Loaded 'C:\WINDOWS\SYSTEM\KSUSER.DLL', no matching symbolic information found.
Loaded 'C:\WINDOWS\SYSTEM\MSAFD.DLL', no matching symbolic information found.
The thread 0xFFF449EB has exited with code 0 (0x0).

With my EXTREMELY limited experience with the debugging features of MSVC++, I can't seem to get more than that as far as info goes.
#40
01/17/2006 (10:02 am)
We will need the information above those last lines, as they all related to lower level system stuff--to get a starting point need to know the torque specific code that was executed.