I know, I compiled it fine with VS2008, but I posted that in case having the DirectX sdk didn't do it for them. d:
Printable View
Speaking of exceptions...
I built the default DLL and sent it to Timo. Game loaded and ran just fine for the both of us this time around. However, I got an exception any time I killed Timo. O_o
Probably was related to an unhandled condition in the game statistics code
I've been finishing development on some tag tools (among other things) that I think a lot of you modders (not just developers) will really appreciate. They're in the same code base as the custom tag group generator so thats why I've been holding off on the release of that, but don't worry, its all yours very soon...
Uninstalled both VC & DX SDK, installed the suggesteds, but I still get the same warnings and exception
Would someone with a working build please upload it, so I could test if my build is the problem?
Oh look. My "hacks" broke the VS 05 linker.
So on this very merry day, I was finishing some work up on giving OS some...batteries if you know what I mean (and I think you do!) and decided to hit Build and waited a few seconds- BOOM *gathering exception data*
Well thats odd...I said build, no run halo :confused:
So I go and look at the build log
lolwut? So I go and look at the code its referring to...Code:1>c:\mount\b\kornner\project yellow\opensauce\halo1_ce\interface\gameui.cpp(312) : fatal error C1001: An internal error has occurred in the compiler.
1>(compiler file 'F:\SP\vctools\compiler\utc\src\P2\main.c[0x10BEFEAB:0x003A0073]', line 182)
1> To work around this problem, try simplifying or changing the program near the locations listed above.
1>Please choose the Technical Support command on the Visual C++
1> Help menu, or open the Technical Support help file for more information
1>LINK : fatal error LNK1000: Internal error during IMAGE::BuildImage
:confused:??? What the fu- *looks at the build configuration*. So it would appear I'm building under "Release". That right there sets off some alarms since my settings for "Release" are to optimize the code...and I'm passing "OverriteRelativeJmp" pointers which can be determined at link-time (one to the game's code, one to my own). Why would that latter be a problem? Lets investigate the call chain. Next inline of course is: OverriteRelativeJmp.Code:Memory::OverriteRelativeJmp( GET_FUNC_VPTR(GAME_ENGINE_RENDER_NAV_POINTS_CALL_HOOK_RENDER_NAV_POINT),
GAME_ENGINE_RENDER_NAV_POINTS_CALL_RENDER_NAV_POINT, true);
Hold it. Right there. At that last line above. What else can be determined at link-time? Thats right, we wanted the code to 'write_opcode'. Whats going on in 'WriteMemory'?Code:OverriteRelativeJmp(void* to_address, void* jmp_address, bool write_opcode)
{
static byte real_opcode = 0xE9; // jmp [function]
if(write_opcode) WriteMemory(jmp_address, &real_opcode, sizeof(real_opcode));
Well guess what? The linker thinks it knows what the real value of 'address' is at link-time...it thinks right, but does it know what kind of address it is? Probably not, since it was trying to run this above code at link-time.Code:BOOL WriteMemory(void* address, const void* src, int32 size)
{
if(memcpy(address, src, size)) return TRUE;
In more simpilar terms? It was trying to run the code of the 'write_opcode' condition since the linker thought it had usable valid deterministic data. However it thought wrong. While it was valid and deterministic data, it wasn't something that could be used at link-time since 'address' is actually an address in halo's code.
The fix to this whole problem? An attribute called "__declspec(noinline)". We apply that to our MemoryInterface functions to avoid the linker trying to perform any invalid inline code cases such as this one I just encountered.
Now, I've been sippin on some Eiswein and feel like some Team SWAT in H3.
You should dictate all that.
I am using Visual Studio 2005 and replaced the first direct x sdk I downloaded with the June SDK, then it finally compiled but I also got that warning. The game started ok, then I loaded bloodgultch AI (alone of course, I know AI don't sync) and picked up a sniper rifle and pistol. All was fine until I fired my first shot, I was using the sniper and I hit the elite, then the game exceptioned. Sounds like what Polar Bear said he encountered when he killed Timo
Well guys. It's been ages since anyone has updated anything here so... any news at all?
No ones really doing anything cool with sauce.
Sucks.