Miscellaneous Forums > Scripting and Reverse Engineering

[FF9]2016 release

(1/49) > >>

Maki:
So... They used Unity3D (LOL, sic!).

FFIX\StreamingAssets\ma\:
FMVXYZ.bytes files are pure OGG
mbgXYZ.bytes files are also pure OGG

FFIX\StreamingAssets\:
P0dataXYZ.bin are "Unity Web Player Scene (non compressed)":
Open with UnityEx 1.5

FFIX\x64\FF9_Data\
sharedassets files, open with UnityEx 1.5

Source notes:
By the way> This can help in reversing FF8 (and FF7 if there's something missing). The engine is similar, so...
So far the most interesting source files are (for related FF):
PSX_LIBGPU.cs (Contains many polygon infos, vertex etc.) [Names like TPage and etc.]
PSX_LIBGTE_EMU.cs - I've seen this huge array in FF8 pseudocode...
PSX.cs - Many definitions about colour, TIM width etc.
PsxCamera.cs - Contains debug dumper for Camera info (reverse engineering?) and ready camera class (Matrix translation etc.)
PSXTexture.cs - Generating texture from TIM? (Yeah, setting new bitmap, copying pixels according to data. Looks like TIM to Bitmap generator)

Aali:
Huh. That is an actual, working? full decompile of FF9. Its something we talked about doing for FF7 but someone actually did it. I'm not sure what this will do for us exactly but it sure is pretty impressive.

Maki:
Yep. Unity3D uses CSharp as primary coding language. Mono C# is compiled to CIL assembly. This type of assembly can be produced into working C# code (not pseudocode like C/C++). Their decision of making it powered by Unity made an open gate to gain full source code in C#.
For streamingassets, this can open it: (Link removed, see my next post)
There are mostly unknown RAW data, sorted. Some materials...
That soft is capable of exporting image data to PNG and mesh data to OBJ

Shard:
I noticed the Unity stuff as I was looking at the disassembly in Cheat Engine. Kinda made me go "huh?"

Good work on the source. I'll make sure to keep a copy with me at all times.

Tirlititi:
Wow, where was that hidden? That's awesome !
Flags are given names here... I will never have to guess anything blindly anymore :D

I've seen those datas in the assets so far :

--- Code: ---p0data2.bin :
  Enemy Stats Data "dbfile0000.raw16"
  Enemy Battle Data "[nb].raw17"

p0data3.bin :
  World 0x00 Chunk part "disc.img" "discmr.img" "map.bin"
  IMG DIR 13 "model_hm.nwp" "model_vm.nwp"

p0data4.bin :
  ??? "[NAME].tab"

p0data5.bin :
  Seems to be 3D models

p0data7.bin :
  FMV stuff? "FMV[nb].mbgdata" "MBG[nb].mbgdata"
  Field Scripts "[NAME].eb"
  Battle Scripts "[NAME].eb"
  World Scripts "EVT_WORLD_WORLD[nb].eb" "EVT_WORLD_WORLDSV.eb" "EVT_WORLD_WORLDTS.eb"

p0data11.bin & 12 to 18 :
  Field Walkmesh "[NAME].bgi"
  Field 0x16 Chunk "[nb].sps"
  Field 0x17 Chunk "spt.tcb"
  Field Tiles "[NAME].bgs"

p0data61.bin :
  Music "music[nb].akb"

p0data62.bin :
  Songs "song[nb]_[nb].akb"

p0data63.bin :
  SE Sound "se[nb][nb].akb"

resources.assets :
  File List "file.list"
  Texts
    Battles "[nb].mes"
    Text Blocks "[nb].mes"
    Items "itm_name.mes" "itm_help.mes" "itm_btl.mes"
    Key Items "imp_name.mes" "imp_skin.mes" "imp_help.mes"
    Fields "loc_name.mes"
    Worlds "[nb].mes"
    World Places "worldloc.mes"
    Spells "aa_name.mes" "aa_help.mes"
    Supports "sa_name.mes" "sa_help.mes"
    Commands "com_name.mes" "com_help.mes"
    Battle Infos "follow.mes"
    Battle Scan "libra.mes"
    Battle Spell Naming "cmdtitle.mes"
    Choco Menu "ff9choco.mes"
    Card Menu "card.mes"
    Cards "minista.mes"
    Tetra Master "minigame.mes"
    Menus "Localization.txt"
  World 0x00 Chunk part "fx[nb].sps"
  Cards
    Stats "MINIGAME_CARD_DATA_ADDRESS"
    Decks "MINIGAME_CARD_LEVEL_ADDRESS"
    Games "MINIGAME_STAGE_ADDRESS"

Assembly-CSharp.dll :
  Shops 0x201DC0
  Status Sets 0x1EF144
  Spell Naming Rules 0x202BE0
  Max Stats 0x1F14BC
  Character UI 0x1F14C4
  Initial Equips 0x1F14D0
--- End code ---

Navigation

[0] Message Index

[#] Next page

Go to full version