Albeoris / Memoria

Final Fantasy IX tools
MIT License
348 stars 46 forks source link

x86 game crashes near the end #142

Closed polt13 closed 4 years ago

polt13 commented 4 years ago

SPOILERS BELOW

When you defeat the final boss and everyone is leaving, with Zidane staying back, the moment the cutscene shows him walking towards the ledge and going after Kuja, the game crashes. I tried with x32 mode exec (in this case, it simply froze but wouldn't crash), running it as admin (crashed), restarting Steam and still crashed. I uninstalled Memoria (and Moguri) which fixed the issue, which makes me think it might be related to Memoria. However, I've not seen any reports on this which makes me think it might be something on my end, so it'd be great if someone else could verify this.

Thanks!

faospark commented 4 years ago

i was about to post earlier but it seem github has been having problms this but yeah .
i was able to at least finish the game by using the back up assembly-Csharp file. here are the sections on my logs 2ndinstance.txt firstinstance.txt Screenshot_71

polt13 commented 4 years ago

I am also posting my logs here:

Faulting application name: FF9.exe, version: 5.2.3.34459, time stamp: 0x565cf7f1 Faulting module name: ntdll.dll, version: 10.0.19041.207, time stamp: 0xcad89ab4 Exception code: 0xc0000005 Fault offset: 0x00000000000213ad Faulting process id: 0xde0 Faulting application start time: 0x01d64d8a3e4ff857 Faulting application path: C:\Program Files (x86)\Steam\steamapps\common\FINAL FANTASY IX\x64\FF9.exe Faulting module path: C:\WINDOWS\SYSTEM32\ntdll.dll Report Id: 6b09fc2f-d438-4020-a6ac-a312fecdfa7f Faulting package full name: Faulting package-relative application ID: Fault bucket 1570851452788441453, type 4 Event Name: APPCRASH Response: Not available Cab Id: 0 Problem signature: P1: FF9.exe P2: 5.2.3.34459 P3: 565cf7f1 P4: ntdll.dll P5: 10.0.19041.207 P6: cad89ab4 P7: c0000005 P8: 00000000000213ad P9: P10: Attached files: \?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER9451.tmp.dmp \?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER953D.tmp.WERInternalMetadata.xml \?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER954D.tmp.xml \?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER955B.tmp.csv \?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER957B.tmp.txt These files may be available here: \?\C:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppCrash_FF9.exe_7d24be4f7dc24cef60f4372a6da1ad84434a8ca0_12a4efa0_bc127087-67a1-45af-a722-6fad75365560

snouz commented 4 years ago

Same, I was trying to post questions, but it didn't take my comment. So anyway, What version are you using? The one in Moguri? The latest release? The latest compiled source code? Because I had reports of people finishing the game with the version in Moguri, so I'm surprised by this. I'm waiting for Tirlititi to commit his fix for the monster fight before kuja at the end so I can try with the latest version.

snouz commented 4 years ago

2ndinstance.txt firstinstance.txt

What file is this? memoria.log? Do you have another mod installed? Is this the x64 version?

polt13 commented 4 years ago

Same, I was trying to post questions, but it didn't take my comment. So anyway, What version are you using? The one in Moguri? The latest release? The latest compiled source code? Because I had reports of people finishing the game with the version in Moguri, so I'm surprised by this. I'm waiting for Tirlititi to commit his fix for the monster fight before kuja at the end so I can try with the latest version.

I'm using the prebaked one with Moguri

snouz commented 4 years ago

I can't reproduce the bug with the latest Memoria version.

faospark commented 4 years ago

2ndinstance.txt firstinstance.txt

What file is this? memoria.log? Do you have another mod installed? Is this the x64 version?

just section of the log using 32bit version

snouz commented 4 years ago

I tested with 32bit, and yes, it freezes too here, with the latest version. So it seems to be linked to 32 bit. Changing the title.

polt13 commented 4 years ago

It also crashes at x64 for me @snouz

snouz commented 4 years ago

Ah shit. That's really strange because it works fine here in 64bit.

snouz commented 4 years ago

Observations: it produces no log, it's an unhandled exception it seems. @polt13 your system is 64 bit AND your launcher has x64 ticked?

polt13 commented 4 years ago

Yeah, it's 64-bit on the latest Windows 10 update. On the launcher, the x64 bit version is ticked. For me, when I tried it on x32 it didn't crash but it would just freeze (I think the menus worked though).

I don't have anything else running in the background, except.. Vanguard? (the valorant anti cheat). This is a bit far fetched, but perhaps @RealUn2ken do you have Vanguard running while playing? It has a kernel component which might mess with the ntdll.dll one that causes the game to crash, It's probably unrelated but worth a shot.

snouz commented 4 years ago

I have the crash too (only in 32bit), so that's not related to another app. It's probably the code itself, probably not windows (I don't have the latest update). In my case, it's Unity.exe that crashes. There must be a recursive loop or something happening. But That's really hard to find since there's no output.

snouz commented 4 years ago

Well well well, I found this bit of code in MBG.cs

public override void HonoUpdate()
{
    base.HonoUpdate();
    if (FF9StateSystem.Common.FF9.fldMapNo != 2933)
    {
        this.MBGUpdate();
    }
}

private void LateUpdate()
{
    if (FF9StateSystem.Common.FF9.fldMapNo == 2933)
    {
        this.MBGUpdate();
    }
}

2933 is the field it's supposed to load after the video and doesn't. Strangely, when it works for me, it still doesn't display 2933 on the window (unlike other fields)

snouz commented 4 years ago

I was mistaken, the error DOES create a output_log

StackOverflowException: The requested operation caused a stack overflow. at SimpleJSON.JSONNode.Parse (System.String aJSON) [0x00000] in :0

at MBG.LoadMaskData (System.String fileName) [0x00000] in :0

at MBG.Seek (Int32 discNo, Int32 fmvNo) [0x00000] in :0

at fldfmv.ff9fieldFMVInit (Int32 FMVDisc, Int32 FMVNo, Int32 In24Bit) [0x00000] in :0

at fldfmv.FF9FieldFMVDispatch (Int32 ParmType, Int32 Arg1, Int32 Arg2) [0x00000] in :0

at EventEngine.DoEventCode () [0x00000] in :0

at EBin.commandDefault2 () [0x00000] in :0

at EBin.commandDefault () [0x00000] in :0

at EBin.jumpToCommand (Int32 arg0) [0x00000] in :0

at EBin.next (Int32 arg0) [0x00000] in :0

at EBin.ad3 (Int32 arg0) [0x00000] in :0

at EBin.ProcessCode (.ObjList objList) [0x00000] in :0

at EventEngine.ProcessEvents () [0x00000] in :0

at EventEngine.ServiceEvents () [0x00000] in :0

at HonoluluFieldMain.FF9FieldMapMain (Int32 MapNo) [0x00000] in :0

at HonoluluFieldMain.FF9FieldLocationMain (Int32 LocNo) [0x00000] in :0

at HonoluluFieldMain.HonoUpdate () [0x00000] in :0

at HonoBehaviorSystem.Update () [0x00000] in :0

(Filename: Line: -1)

polt13 commented 4 years ago

Where did you find this log? Is it from Memoria?

Thanks!

On Tue, Jun 30, 2020, 14:34 snouz notifications@github.com wrote:

I was mistaken, the error DOES create a output_log

StackOverflowException: The requested operation caused a stack overflow. at SimpleJSON.JSONNode.Parse (System.String aJSON) [0x00000] in :0

at MBG.LoadMaskData (System.String fileName) [0x00000] in :0

at MBG.Seek (Int32 discNo, Int32 fmvNo) [0x00000] in :0

at fldfmv.ff9fieldFMVInit (Int32 FMVDisc, Int32 FMVNo, Int32 In24Bit) [0x00000] in :0

at fldfmv.FF9FieldFMVDispatch (Int32 ParmType, Int32 Arg1, Int32 Arg2) [0x00000] in :0

at EventEngine.DoEventCode () [0x00000] in :0

at EBin.commandDefault2 () [0x00000] in :0

at EBin.commandDefault () [0x00000] in :0

at EBin.jumpToCommand (Int32 arg0) [0x00000] in :0

at EBin.next (Int32 arg0) [0x00000] in :0

at EBin.ad3 (Int32 arg0) [0x00000] in :0

at EBin.ProcessCode (.ObjList objList) [0x00000] in :0

at EventEngine.ProcessEvents () [0x00000] in :0

at EventEngine.ServiceEvents () [0x00000] in :0

at HonoluluFieldMain.FF9FieldMapMain (Int32 MapNo) [0x00000] in :0

at HonoluluFieldMain.FF9FieldLocationMain (Int32 LocNo) [0x00000] in :0

at HonoluluFieldMain.HonoUpdate () [0x00000] in :0

at HonoBehaviorSystem.Update () [0x00000] in :0

(Filename: Line: -1)

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Albeoris/Memoria/issues/142#issuecomment-651736756, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOGOSNLITOUZE44AJFMUZXDRZHEVPANCNFSM4OLBZXQQ .

faospark commented 4 years ago

i dont have vanguard running. the only thing that i use a long the game is x360ce to make my controller compatible to game. i still think it has something to do with memoria. if use the back up assembly-csharp the game is fine.

snouz commented 4 years ago

FINAL FANTASY IX\x86\FF9_Data\output_log.txt (or x64 if you use 64)

This log identifies that the crash happens in MBG.cs, in function LoadMaskData, in line:

JSONNode jsonnode = JSONNode.Parse(textAsset);

snouz commented 4 years ago

Almost certain it happens with the video that should be play just after that screen: MBG116, because that would be the moment it would be loaded, and masks are only applied to MBG (not FMV). Trying with the original non-modified MBG

snouz commented 4 years ago

Ok it seems to work with the original MBG116 for me, but the masks are completely misplaced.

Could you try to put the original file and try again ?

https://drive.google.com/file/d/1_EzUP7qYZYUtr0tSW61I0PsOKTRqOJpp/view?usp=sharing

in FINAL FANTASY IX\StreamingAssets\ma Thanks!

faospark commented 4 years ago

tried it . still same problem. the game does not crash but just stops at the black screen and does not pushes through even though game booster buttons still remain responsive to your input.

polt13 commented 4 years ago

Unfortunately I don't have the save at this point, I finished it by uninstalling Memoria and moguri and it worked and it's overriden. If noone else has a save at this point I will see if I can load an earlier save and go there again.

On Tue, Jun 30, 2020, 16:12 snouz notifications@github.com wrote:

Ok it seems to work with the original MBG116 for me, but the masks are completely misplaced.

Could you try to put the original file and try again ?

https://drive.google.com/file/d/1_EzUP7qYZYUtr0tSW61I0PsOKTRqOJpp/view?usp=sharing

in FINAL FANTASY IX\StreamingAssets\ma Thanks!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Albeoris/Memoria/issues/142#issuecomment-651781521, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOGOSNNNO63AJFUJIWJSFVDRZHQFVANCNFSM4OLBZXQQ .

snouz commented 4 years ago

If you want a save https://drive.google.com/open?id=134MaAV1RLYUps7WoTzPykKqBckEXWPjs

Save location: %USERPROFILE%\AppData\LocalLow\SquareEnix\FINAL FANTASY IX\Steam\EncryptedSavedData\

Just before final boss: slot 7 save 13


Maybe it has more to do with mask data. I'm sure there's a way to at least prevent the crash with a bit of code, but I'm not a pro with C#. I'll ask Tirlititi when he's available if he's got an idea...

snouz commented 4 years ago

I'm lost with this one. I've put exception catching everywhere, logging of every character written.

It stops and crashes after 43284 characters in my test out of 180494. What surprises me is that the same script is called in other places and with files much longer.

Maybe there's an overload of the buffer at this exact time? Maybe that's why there's a code that loads something at a different time of the frame before ( if (map == 2933) ...) So maybe this is linked to having to load the largest MBG in the game.

I see a lot of parts in that script related to this particular field and MBG.

polt13 commented 4 years ago

Hey, haven't had the time to try it with the mbg you suggest yet but if I understand correctly it doesn't work properly for un2ken. I will hopefully try it soon though.

Thanks for the effort you are putting into this!

On Wed, Jul 1, 2020, 19:45 snouz notifications@github.com wrote:

I'm lost with this one. I've put exception catching everywhere, logging of every character written.

It stops and crashes after 43284 characters in my test out of 180494. What surprises me is that the same script is called in other places and with files much longer.

Maybe there's an overload of the buffer at this exact time? Maybe that's why there's a code that loads something at a different time of the frame before ( if (map == 2933) ...) So maybe this is linked to having to load the largest MBG in the game.

I see a lot of parts in that script related to this particular field and MBG.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Albeoris/Memoria/issues/142#issuecomment-652529967, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOGOSNJECSGMO7SPH242ELTRZNR3VANCNFSM4OLBZXQQ .

snouz commented 4 years ago

I've tried to replace the script MBG.cs and JSONNODE with the one from the original AssemblyCsharp.dll that doesn't seem to crash, and it still does. I've tried reducing the size of MBG116.bytes to ~20M, still the same.

No idea where this is all coming from, doesn't seem it's from the script that the error originates. There must be something else, but I'm completely in the blind.

BTW; when you replaced the MBG, did you replace it in /Program Files/Moguri Mod/StreamingAssets/ma ? Could you try again doing that? Could you try with this one? https://drive.google.com/file/d/1y5y5OdsTyEF6ryhBUPacvvZmpfhi4im0/view?usp=sharing it's only 21MB

sansbruit commented 4 years ago

I was able to find a way to fix it in this thread https://www.reddit.com/r/FinalFantasyIX/comments/hisbkn/recruiting_beatrix_mod/.

Not sure if it's a perma fix though....

faospark commented 4 years ago

I've tried to replace the script MBG.cs and JSONNODE with the one from the original AssemblyCsharp.dll that doesn't seem to crash, and it still does. I've tried reducing the size of MBG116.bytes to ~20M, still the same.

No idea where this is all coming from, doesn't seem it's from the script that the error originates. There must be something else, but I'm completely in the blind.

BTW; when you replaced the MBG, did you replace it in /Program Files/Moguri Mod/StreamingAssets/ma ? Could you try again doing that? Could you try with this one? https://drive.google.com/file/d/1y5y5OdsTyEF6ryhBUPacvvZmpfhi4im0/view?usp=sharing it's only 21MB

i tried the file.... now it completely crashes the game as in window closed.

cpmcgrath commented 4 years ago

I'm getting this crash too. I just uninstalled moguri and ffix completely, reinstalled both, and it still happens. I used the exes in the x86 and x64 folder but both times it wrote to the output_log in the x64 folder, so I assume it's always x64.

I'm running Windows 10 v2004 (19031.329) output_log.txt output_log-2.txt

I can reproduce it pretty quickly (hit Continue and it starts at the FMV before the crash) so let me know if I can help out in anyway.

faospark commented 4 years ago

the quickest workaround/not a fix to the problem is using the OG/ back up assembly-csharp and set your tile size to 32 if you are using moguri. this way you dont have uninstall everything and still be able to finish that game.

now since having a recent full play throught from start to end . this problem only occurs on that part of the game while the is fine story.

cpmcgrath commented 4 years ago

Could you try with this one? https://drive.google.com/file/d/1y5y5OdsTyEF6ryhBUPacvvZmpfhi4im0/view?usp=sharing it's only 21MB

This didn't resolve it.

My output didn't contain the stack overflow that others have. Is there some debug flag I should turn on? Is there an easy way to find the json it's parsing? Stack Overflow Exceptions are really hard to get in c# without a recursive loop, and that stack trace doesn't look like it has a recursive loop in it

edit: I found the json files, it's all pretty simple stuff, no obvious errors. I mean, you could try increasing the size of the stack to see if that helps, but c# doesn't store objects in the stack, so I just can't see how a stack overflow can happen without recursion

ymylei commented 4 years ago

Wanted to add I have this the same error as @cpmcgrath, his output log shows the message:

The file 'C:/games/Steam/steamapps/common/FINAL FANTASY IX/x64/FF9_Data/level1' is corrupted! Remove it and launch unity again!
[Position out of bounds!]

(Filename:  Line: 241)

My own output crash contains the same exact error message including the line detail. Will try running with the debugger going to see if I can get more information.

EDIT: I'm decently confident this specific issue is going to be solved by some of the changes in the upcoming 8.1 release (if the Moguri branch is what to go by).

cpmcgrath commented 4 years ago

EDIT: I'm decently confident this specific issue is going to be solved by some of the changes in the upcoming 8.1 release (if the Moguri branch is what to go by).

Do we know which commit the released version was built off?

Albeoris commented 4 years ago

.NET have a stack that hosts local variables. It is limited to 1MB for x86 applications. There is probably a very sprawling JSON structure in there, and it just doesn't fit due to recursive tree traversal.

On x64, the stack size is 4 MB.

Albeoris commented 4 years ago

You can optimize the JSON parser by removing recursion from it. Or we can start a separate thread, allocating more memory for it, wait for the operation to complete, and pull the result.

cpmcgrath commented 4 years ago

Does it uses recursion? I looked at it a while back and I'm pretty sure there's no recursive calls in the json parser.

Although the stack is small the actual object data is stored in the heap.

You have to heavily recurse to get a stack overflow exception.

Albeoris commented 4 years ago

I got rid of a lot of gotos and changed the string concatenation mechanism to StringBuilder. Let's check.

By the way, the stack is mapped to physical memory as needed. Couldn't it be that we just hit the 4GB limit and can't address more memory? Has anyone looked at how much memory the application ate at the time of the error?

Does anyone have a reproducible error in x64?

Albeoris commented 4 years ago

\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WER9451.tmp.dmp Crash dump also would by useful.

faospark commented 4 years ago

tried this with the latest update... the bug still persists . unfortunately nothing in the log that provides any information

faospark commented 4 years ago

an interesting thing to note about this bug is that is only present on that particular scene. i did some experiments yesterday by swapping the assembly Assembly-CSharp.dll file and found out that the game essentially just freezes on that scene when Zidane is about traverse the IIfa tree and evade the vines . after when he falls to the pit and exit the game and swap Assembly-CSharp.dll back to the patched one. the game completely fine with or without moguri installed and will proceed to the very end of the game.

snouz commented 4 years ago

This seems to have fixed it for me, no more error (using default video, x86, HD backgrounds) So if someone still has the problem, that should not be a stack overflow error, and they should give us their error message in memoria.log.

cpmcgrath commented 4 years ago

I think you're right that this is fixed. I was able to get past it. However, I'm not sure how great my setup is for testing it thanks to the new version of the game on steam. Basically the events for me were:

P.S. Love the new Launcher!

faospark commented 4 years ago

this is on 32bit machines. this the log with moguri beta 5 Memoria-beforetthatscne.log

i redownloaded the the game and installed memoria Memoria.log

there is barely anything there that hints on the application hang.

jabura29 commented 4 years ago

I'm using Steam version, x64, installed moguri mod 8.0, Enhanced field, Worldmap and Characters (no Orcherstral and no 30FPS videos) on Windows 8. The game crashes at end of video. Memoria Log doesn't show the error (or I don't find the correct log), anyway the error is that "FF9.exe stopped to work", then the game closes. I didn't understand which Assembly-CSharp.dll I have to swap. I have to make a backup of the unmodded dll, replacing the modded file before the video, and then replacing again with the modded dll after the video..? Thanks to all!

faospark commented 4 years ago

@jabura29 swap the modded assembly-csharp.dll with the unmodded one after exiting the game on crash. you can continue on viewing the cutscenes but for me once i see zidane fall in the pit passed kuya. i exit the game again to swap back the modded assembly-csharp.dll to the scenes in their modded glory

jabura29 commented 4 years ago

Didn't work. I closed the game during the video reproduction, then I replaced the assembly-scharp.dll in x64\FF9Data\Managed with the original one unmodded, then opened again the game, clicked on Continue, but at the end of the video the game crashes again, and Windows shows again error "FF9.exe stopped to work". Perhaps there's something I didn't understand in procedure? This is the last Memoria log and it doesn't seem to have nothing to show about:

17.08.2020 01:25:18 |M| [SteamSdkWrapper] Initialized: True 17.08.2020 01:25:18 |M| Loading configuration Memoria.ini 17.08.2020 01:25:18 |M| [assetInterceptor] loading from directory [C:\FFIX_STEAM_FOLDER\StreamingAssets] 17.08.2020 01:25:18 |M| [assetInterceptor] loading from directory [C:\FFIX_STEAM_FOLDER\StreamingAssets] 17.08.2020 01:25:18 |M| [assetInterceptor] loading from directory [C:\FFIX_STEAM_FOLDER\StreamingAssets] 17.08.2020 01:25:18 |M| [FontInterceptor] Dynamic font initialization. 17.08.2020 01:25:18 |M| [FontInterceptor] Pass through {Configuration.Font.Enabled = 0}. 17.08.2020 01:25:18 |M| [FontInterceptor] Loading font [Original: TBUDGoStd-Bold (UnityEngine.Font)] 17.08.2020 01:25:19 |M| [GameLoopManager] RaiseStartEvent 17.08.2020 01:25:19 |M| InitializeItemText 17.08.2020 01:25:19 |M| [assetInterceptor] loading from directory [C:\FFIX_STEAM_FOLDER\StreamingAssets] 17.08.2020 01:25:19 |M| InitializeImportantItemText 17.08.2020 01:25:19 |M| InitializeAbilityText 17.08.2020 01:25:19 |M| InitializeCommandText 17.08.2020 01:25:19 |M| InitializeBattleText 17.08.2020 01:25:19 |M| InitializeLocationText 17.08.2020 01:25:19 |M| InitializeEtcText 17.08.2020 01:25:19 |M| InitializeEtcText 17.08.2020 01:25:19 |M| [ResourceExporter] Pass through {Configuration.Export.Enabled = 0}. 17.08.2020 01:25:19 |M| [ResourceImporter] Pass through {Configuration.Import.Enabled = 0}. 17.08.2020 01:25:20 |M| InitializeItemText 17.08.2020 01:25:20 |M| InitializeImportantItemText 17.08.2020 01:25:20 |M| InitializeAbilityText 17.08.2020 01:25:20 |M| InitializeCommandText 17.08.2020 01:25:20 |M| InitializeBattleText 17.08.2020 01:25:20 |M| InitializeLocationText 17.08.2020 01:25:20 |M| InitializeEtcText 17.08.2020 01:25:20 |M| InitializeEtcText 17.08.2020 01:25:20 |M| [AudioResourceExporter] Pass through {Configuration.Export.Audio = 0}. 17.08.2020 01:25:27 |M| [SteamSdkWrapper] Request stats: True 17.08.2020 01:35:22 |M| [GameLoopManager] RaiseQuitEvent

cpmcgrath commented 4 years ago

Unfortunately, the bug is back for me too.

I just did a clean install of Final Fantasy IX installed the new 8.2.1.2 version of Moguri Mod and it crashed exactly as it did before.

jabura29 commented 4 years ago

The only way I've found to solve the bug is to restore the mbg***.bytes files in the StreamingAssets\ma folder, replacing the modded ones with the original ones. This way, the videos are in the same quality of originals, but at least the game doesn't crash. Probably some modification to the Zidane video at Iifa Tree created the issue

snouz commented 4 years ago

I asked zepilot to not include mbg116, but he did. If anyone has the problem, you should simply delete /FINAL FANTASY IX/MoguriFiles/StreamingAssets/ma/mbg116. It will use the default instead.

cpmcgrath commented 4 years ago

I used ProcDump to get a full debug file so I could grab more info.

Exception Code: 0xC0000005 Exception Information: The thread tried to read from or write to a virtual address for which it does not have the appropriate access. Full Summary: dump-summary.txt

I then clicked the Debug Native, and it showed me:

Unhandled exception thrown: read access violation.
**__guard_dispatch_icall_fptr**(...) returned 0xFFFFFFFF. occurred

Call Stack:
>   d3d9.dll!CD3DDDIDX9::SetTexturePSConverter()    Unknown
    d3d9.dll!CD3DDDIDX10::SetTexture()  Unknown
    d3d9.dll!CD3DBase::UpdateTextures() Unknown
    d3d9.dll!CD3DDDIDX10_DrawIndexedPrimitive(class CD3DBase *,enum _D3DPRIMITIVETYPE,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int) Unknown
    d3d9.dll!CD3DBase::DrawIndexedPrimitive()   Unknown
    FF9.exe!00007ff778d32109()  Unknown
    FF9.exe!00007ff778d6acd5()  Unknown
    FF9.exe!00007ff778d6bc4f()  Unknown
    FF9.exe!00007ff778d6501a()  Unknown
    FF9.exe!00007ff778974a56()  Unknown
    kernel32.dll!BaseThreadInitThunk() Unknown
    ntdll.dll!RtlUserThreadStart() Unknown

Hope that helps. I don't want to really put the dump file online, but happy to send it to someone if they need it (it's 100MB compressed)

Unrelated, but I also noticed that in the Moguri branch a few projects still target .NET 3.5, while others target 4.6.1 like the main branch does