Jump to content

Fate Grand Order Arcade .mot file


Andree

Recommended Posts

Animation file from FGO arcade, uses the same engine as various Project DIVA titles but the animation files are formatted in a different way.

.mot Tool: https://github.com/h-kidd/noesis-project-diva (works with FGO Arcade's model files and .mot files from Miracle Girls Festival and Project DIVA but it doesn't work with FGO Arcade's .mot files, but you can edit the source code of the tool to try to make it work with the game's .mot files)

Sample file is in the attachment.

mot_svt_0001.zip

  • Like 1
Link to comment
Share on other sites

  • 1 month later...

I only found these:
Magic: 23 4D 4F 54 // #MOT
File validation: *0x0F == 0x0A
File version validation: 0x10~0x14 == 15 13 11 13
joint_type Range validation: *0x18 <= 7u
File Element Count: *0x16 // short type
Offset Block Start: (0x10 + ((*(0x19) + 0x10) & 0xFFFF FFFF FFFF FFFC))
Element Offset : Offset Block Start + *(Element index * 4 + Offset Block Start)
Element Name Length: *(Element Offset + 0x06)
Element DataBlock Offset? : Element Offset + ((Name Length + 0x12) & 0xFFFF FFFF FFFF FFFC)

This is found from KanColle Arcade (SDBZ), but it looks like uses the exact same animation format as FGO Arcade (#MOT)

The debugger cannot be attached after using Segatools injection, which makes it difficult to find the call. I hope anyone who is interested can help to reverse it.
(That was because the parameter of inject.exe in start.bat uses -d by default, which will cause the injected program to be attached as a debugger, making it impossible to attach other debuggers.)

in Subroutine 0x14035A330:

Snipaste_2023-12-20_14-08-35.png

Snipaste_2023-12-20_14-20-04.png

003.png

sample&program.zip

Edited by Billons
  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...
On 12/19/2023 at 11:29 PM, Billons said:

I only found these:
Magic: 23 4D 4F 54 // #MOT
File validation: *0x0F == 0x0A
File version validation: 0x10~0x14 == 15 13 11 13
joint_type Range validation: *0x18 <= 7u
File Element Count: *0x16 // short type
Offset Block Start: (0x10 + ((*(0x19) + 0x10) & 0xFFFF FFFF FFFF FFFC))
Element Offset : Offset Block Start + *(Element index * 4 + Offset Block Start)
Element Name Length: *(Element Offset + 0x06)
Element DataBlock Offset? : Element Offset + ((Name Length + 0x12) & 0xFFFF FFFF FFFF FFFC)

This is found from KanColle Arcade (SDBZ), but it looks like uses the exact same animation format as FGO Arcade (#MOT)

The debugger cannot be attached after using Segatools injection, which makes it difficult to find the call. I hope anyone who is interested can help to reverse it.
(That was because the parameter of inject.exe in start.bat uses -d by default, which will cause the injected program to be attached as a debugger, making it impossible to attach other debuggers.)

in Subroutine 0x14035A330:

Snipaste_2023-12-20_14-08-35.png

Snipaste_2023-12-20_14-20-04.png

003.png

sample&program.zip 12.01 MB · 6 downloads

I don't get how fc.exe works.

Link to comment
Share on other sites

On 1/3/2024 at 4:56 AM, Andree said:

I don't get how fc.exe works.

It's just a sample, if you want it to work you need to use Segatools and get the full Rom.

After fc.exe is started normally, the hardware IO device will be checked. If passed, it will try to connect to the All.Net and Aime servers. Segatools uses IAT Hook to simulate the DirectX input into the corresponding IO input and inject it into the main program. The program only have a hardware checker program(maybe IO Checker) and does not use any user-level dlls.

Almost all program codes are in fc.exe, and only a few lua scripts are in the rom folder. The rom folder mainly stores game Assets and DataBase, as well as some external shaders.

Unfortunately I can't provide the full Rom here, sensitive content such as complete Rom cannot be uploaded in XeNTax, although I don’t know if this rule is also followed here, but you can try looking for it on the internet, Good Luck.

Edited by Billons
  • Like 1
Link to comment
Share on other sites

I made a very simple Python script to extract the information I found now from the Mot file, But only very little information can be extracted so far.

(Update on 2024/01/10) And I made a simple 010 Editor Template.(It was suck... but can use)

(Update on 2024/01/21) Updated 010Editor template, it should be possible to parse more KCArcade's Mot data. but there are some slight differences in the file structure of FGOArcade. If want to use it, then need to modify this template slightly.

Snipaste_2024-01-05_00-19-40.thumb.png.3e4781e76ed7d22ba417b8b4d228e23b.png

mot_test.zip

 

 

Mot.bt.zip

Edited by Billons
  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...

I discovered that the first two bytes before BoneCount should be FrameCount-1. Additionally, for bones other than the Root bone, If there are large consecutive blocks of WORDs (such as 00 01 00 02 00 03), this should represent the keyframe timetable. if timetable exist, the size (in bytes) of the data block after the timetable must be divisible by 6. Furthermore, within these data blocks, the size of the largest one is equal to FrameCount*6. This implies that the keyframe data should be contained within these blocks. x, y, z may occupy 2 bytes each, but it is still unclear how to read them and convert them into a readable format.The size of the keyframe timetable divided by 2 should be equal to the size of the data block following the timetable divided by 6, indicating the number of keyframes in this bone.

FrameCount in Header(need +1):

Snipaste_2024-01-20_08-32-28.png.196d9c1d664b80a3a65e716b1d157819.png

timetable(per 2 bytes, short):

Snipaste_2024-01-20_08-55-52.thumb.png.6fe61f1015af0d38899917751dfc428a.png

keyframe data (per 6 bytes, WORD * 3 (may float16?))

Snipaste_2024-01-20_08-56-14.thumb.png.c3b206551f443f3cb423944c406a4ee4.png

Edited by Billons
  • Like 3
Link to comment
Share on other sites

  • 2 weeks later...

 

22 hours ago, AgusMarotte said:

Has anyone managed to extract the trading card images? I tried using the script for the 3D models. but it just doesn't work.

for fgo arcade, you can use this to extract the farc file: https://github.com/Silvris/RandomScriptsAndTemplates/blob/main/FGO Arcade/FGOArcade-FARC.py

for kancolle arcade, you can use farcpack tools to extract it: https://github.com/blueskythlikesclouds/MikuMikuLibrary/releases/download/v2.2.0/FarcPack.7z

the trading card images was in ./rom/trading_card

Edited by Billons
Link to comment
Share on other sites

On 1/21/2024 at 9:19 PM, 11-59pm said:

https://github.com/h-kidd/noesis-project-diva

AFAIK this uses the same (or highly relevant - Virtua Fighter 5 based) engine as other arcade games such as Project DIVA Arcade or Fate Grand Order

I guess the animation format would be relevant (and hope this be helpful for REing)

yeah i guess so. but I think we need to find something to differentiate between rotate data or transform data, and it's hard to find that, so we need something reverse work

Link to comment
Share on other sites

On 1/31/2024 at 3:47 AM, Billons said:

for fgo arcade, you can use this to extract the farc file: https://github.com/Silvris/RandomScriptsAndTemplates/blob/main/FGO Arcade/FGOArcade-FARC.py

 

How exactly should I use it? First I have to decrypt the farc files, right? To decrypt the 3D Models I was using quickbms and the script that was on XeNTaX, but that script can't decrypt the farcs from the trading cards

Link to comment
Share on other sites

12 hours ago, AgusMarotte said:

How exactly should I use it? First I have to decrypt the farc files, right? To decrypt the 3D Models I was using quickbms and the script that was on XeNTaX, but that script can't decrypt the farcs from the trading cards

for fgo's script, you just need run this: 

python FGOArcade-FARC.py "your farcfile path"

for farcpack tool, Run it in the shell to see the cli commands.

Link to comment
Share on other sites

On 2/2/2024 at 5:36 AM, Billons said:

for fgo's script, you just need run this: 

python FGOArcade-FARC.py "your farcfile path"

I'm still not sure how to run it, unless I'm doing something wrong, it doesn't seem to be working

Link to comment
Share on other sites

3 hours ago, AgusMarotte said:

I'm still not sure how to run it, unless I'm doing something wrong, it doesn't seem to be working

Maybe you should open a new thread and ask in there, not here, because this thread is for discussing the motion file.

Edited by Billons
Link to comment
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
×
×
  • Create New...