Author Topic: griever crashes  (Read 4290 times)

cynix

  • Guest
griever crashes
« on: 2004-02-16 10:28:15 »
i'm using windows 2000 professional (sp4), and when i load a ff8 pc savefile and go to the GF page, griever crashes: Access violation reading location 0xff013107. any ideas why? thanks.

DeadLajik

  • *
  • Posts: 53
    • View Profile
griever crashes
« Reply #1 on: 2004-02-17 04:39:31 »
What kind of save file? From reading the source code, Griever can process like 5 different types (saves from Dexdrive, FF8 PC saves, etc).. So is this from FF8 PC or what ?

Anyways usually an access violation is an indication that the program tried to read some invalid portion of memory. In the case of Griever it means it could have read past the array. Or it could mean that you have a bad stick of RAM (the hardware) in your machine. Although you'd probably be seeing this error more often at random times if this was the case.

Is there anyway you could upload the save you are using to a website so that we can see if this problem is applicable to Griever or if it's just your machine...   Or if this is not an option you could try loading other saves and see if they crash at the same point.

Good Luck..

cynix

  • Guest
griever crashes
« Reply #2 on: 2004-02-17 11:56:08 »
yes it's a ff8 pc savefile (from my post: "and when i load a ff8 pc savefile ...")

this problem does not seem to be related to the savefile since i've tried many different ones, saved with ff8 or another savefile editor, and even ones i downloaded off of other websites.

the access violation happens here in mfc's wincore.cpp:
Code: [Select]
BOOL PASCAL CWnd::WalkPreTranslateTree(HWND hWndStop, MSG* pMsg)
{
ASSERT(hWndStop == NULL || ::IsWindow(hWndStop));
ASSERT(pMsg != NULL);

// walk from the target window up to the hWndStop window checking
//  if any window wants to translate this message

for (HWND hWnd = pMsg->hwnd; hWnd != NULL; hWnd = ::GetParent(hWnd))
{
CWnd* pWnd = CWnd::FromHandlePermanent(hWnd);
if (pWnd != NULL)
{
// target window is a C++ window
if (pWnd->PreTranslateMessage(pMsg))
return TRUE; // trapped by target window (eg: accelerators)
}

// got to hWndStop window without interest
if (hWnd == hWndStop)
break;
}
return FALSE;       // no special processing
}

the pWnd is invalid (0xff013107) so pWnd->PreTranslateMessage(pMsg) causes an access violation. but i can't figure out why CWnd::FromHandlePermanent would return an invalid pointer.

DeadLajik

  • *
  • Posts: 53
    • View Profile
griever crashes
« Reply #3 on: 2004-02-19 16:31:52 »
Did you get anywhere with this problem?

Unfortunently I do not really know MFC so I couldn't explain why that would happen either..

The Griever.exe file on Qhimm's page is linked with MFC70.dll (MFC version 7.0 ?) which I don't even have. I downloaded the source and recompiled Griever under Visual Studio 6 and now its linked with MFC42.dll. My best guess is that there was some change in the way FromHandlePermanent works between these versions but ofcourse I can't say for sure.

Are you able to recompile with VC++ 6.0 ?

I suppose you could also hexedit your save  :)

Aaron

  • *
  • Posts: 2818
    • View Profile
    • http://aaron-kelley.net/
griever crashes
« Reply #4 on: 2004-02-19 16:33:13 »
Quote
I suppose you could also hexedit your save

Aren't the saves compressed?  If so, you'd have to decompress it before you could do any hex editing.

cynix

  • Guest
griever crashes
« Reply #5 on: 2004-02-19 16:38:41 »
i'll try to compile it with vs6 later and see if it works. for now i've disabled the gf page :p


found another problem: i can only edit/save a savefile once. if i edit & save it twice, it's no longer valid and i can't open it in ff8 or griever anymore. dunno what caused this :(