Friday, 2024-04-26, 1:36 AM
Welcome, Anonymous | RSS
[ New messages · Members · Forum rules · Search · RSS ]
  • Page 1 of 2
  • 1
  • 2
  • »
MCE - Discussion board » Undubs & Translations » File Research Center » ソードアート・オンライン -インフィニティ・モーメント- (Sword Art Online -infinity moment -)
ソードアート・オンライン -インフィニティ・モーメント-
ムギDate: Wednesday, 2013-04-03, 10:16 PM | Message # 1

Rank: Nerdy Presence
Messages: 203
Reputation: 2
Status: Offline


Relevant game data is inside install.dat located at PSP_GAME/INSDIR/

this file is a standard CRI .cpk archive encrypted with sony's "PSN" encryption.
i dont know the real name of it. file has a PGD header. there's plenty of tools to decrypt.
after decryption, use CRI's cpktools to extract.

files found inside common/script/sctipt consist of following data:

0x0:first file start address
0x4: first file size
0x8: second file start address
0xC: second file size
0x10: FFFF FFFF / 4 garbage bytes (possibly text color in RGBA, untested!)
0x14: not known yet
0x18: not known yet

Quote (example file script/script/00no - text data)
4Fに移動|移動しない
転移オブジェクト
移動するを選択

移動しないを選択

飛び先がない!

1Fに移動|移動しない
転移オブジェクト
移動するを選択

移動しないを選択

飛び先がない!


this data would be enough to edit a lot of the game script already.
will research more on a later date.

note: it is necessary to re-encrypt the .cpk file back to PGD after modifying, othervise the game will not execute.
Attachments: 8652468.png (202.7 Kb)


 
ムギDate: Thursday, 2013-04-04, 10:47 PM | Message # 2

Rank: Nerdy Presence
Messages: 203
Reputation: 2
Status: Offline
OFS3 filesystem:

Quote (Example file: psp/ui/storage.bin)
0x00: 4F46 5333 1000 0000 0200 4000 30A3 0200
0x10: 0300 0000 3000 0000 00DF 0100 30A3 0200
0x20: 30DF 0100 0CC3 0000 41A3 0200 70A2 0200
0x30: A000 0000 4FA3 0200 0000 0000 0000 0000


Quote (OFS3 header (16-bytes))
0x00: [4-bytes] OFS3 file signature (it's always 4F46 5333)
0x04: [4-bytes] OFS3 Header size (it's always 1000 0000)
0x08: [4-bytes] Unknown value
0x0c: [4-bytes] Nametable Start address (this points to the end of the file if nametable doesnt exist)


Quote ( OFS3 Filetable (variable size))
data table starts with a 4-byte value indicating file count.
each file entry consists of 12-bytes

0x10: [4-bytes] Number of files

0x14: [4-bytes] File Start Address
0x18: [4-bytes] File Length
0x1c: [4-bytes] Filename Position

[the pattern of 0x14 -> 0x1C repeats as many times as there are files inside the container]

Note: If 0xC points to file end (no nametable present) the value of 0x1C (name position) is omitted, and the
structure only consists of File Start Address + File Length values.


note 2: there seems to be a large number of variables for the OFS3 found within the game, particularly the packs containing model files seem to have a table formatting completely different.


Note: the addresses displayed within OFS3 Filetable are relative to Data, which means you need to either add 0x10 (16 bytes) to every address, or delete the first 16 bytes (the OFS3 File header) prior to extracting.


 
ムギDate: Friday, 2013-04-05, 1:31 AM | Message # 3

Rank: Nerdy Presence
Messages: 203
Reputation: 2
Status: Offline
texture files seem to be .tm2 (TIM2) image format and model data is psp generic gmo.

Attachments: 5796474.png (62.5 Kb)


 
ムギDate: Tuesday, 2013-05-07, 11:43 PM | Message # 4

Rank: Nerdy Presence
Messages: 203
Reputation: 2
Status: Offline
note: following data is generally very easy to obtain with little to no effort on google. it is posted here merely for informative purposes.

PGD Encryption structure:

Quote (Header)

0x00: PGD File signature followed by Encryption mode and version flags.
0x10: Encrypted hash for Header (128-bit AES)
0x20: hash egenerated from key located at 0x10
0x30: Encrypted PGD Header (0x20 in size)
0x60: File hash.
0x70: Hash generated from the sceIoIoctl key.
0x80: Encrypted hash generated from the sceIoIoctl key.
0x90: Data hash.
0xA0: Encrypted data hash.


Quote (Encrypted PGD Header Structure)

this part of the header is located at 0x30

the Header is 0x20 in size and consists of following:
0x30: Hash Key
0x40: 000 0000 (blank value)
0x44: Length of data when decrypted
0x48: Blocksize of encryption
0x4C: Address of Data Hash


as i mentioned in the opening post, a lot of tools are able to decrypt the PGD data files.
however i have been unable to locate a tool able to re-encrypt files using this algorithm.
If you can code one or know where to obtain such a thing, i'd be very interested about it.

meanwhile you can make the game run decrypted by patching the executable.
find a value of C931 at 0x16BD0 in (decrypted) eboot.bin and change it into CE31

this will allow the game to load the installdata in it's decrypted form.

Edit: fixed a mistake on the values, C901/CE01 are actually C931 and CE31




Message edited by ムギ - Tuesday, 2013-07-02, 8:06 PM
 
yin8086Date: Tuesday, 2013-07-02, 11:27 AM | Message # 5

Rank: Newcomer
Messages: 1
Reputation: 0
Status: Offline
Quote (ムギ)
meanwhile you can make the game run decrypted by patching the executable.
find a value of C901 at 0x16BD0 in (decrypted) eboot.bin and change it into CE01

this will allow the game to load the installdata in it's decrypted form.


Thanks for this. It really help with our Chinese translation project.
And also a mistake, value should be C9 31 not c9 01
change C9 31 to CE 31 maybe right.


Message edited by yin8086 - Tuesday, 2013-07-02, 11:28 AM
 
ムギDate: Tuesday, 2013-07-02, 8:04 PM | Message # 6

Rank: Nerdy Presence
Messages: 203
Reputation: 2
Status: Offline
Quote (yin8086)
Thanks for this. It really help with our Chinese translation project.
And also a mistake, value should be C9 31 not c9 01
change C9 31 to CE 31 maybe right.


you're welcome smile

and yes, you're correct. not sure why i wrote C901, it's indeed C931


 
sazuke91Date: Saturday, 2013-11-09, 12:58 PM | Message # 7

Rank: Newcomer
Messages: 3
Reputation: 0
Status: Offline
please, can you tell me how to open all text files in "common/script/sctipt" ><
 
ムギDate: Saturday, 2013-11-09, 2:13 PM | Message # 8

Rank: Nerdy Presence
Messages: 203
Reputation: 2
Status: Offline
Quote sazuke91 ()
please, can you tell me how to open all text files in "common/script/sctipt" ><


the contents of common/script/script is described in the first post.

each file in that folder consists of 2 files: the text layout data and the text data itself.
the file header is 0x20 in size and each file entry is 0x8 in size.

0x00: start address of the first file
0x04: length of first file
0x08: start address of second file
0x0C: length of second file
0x10: FFFF FFFF
0x14: unknonw bytes
0x18: unknown bytes

after extracting the text file out, you can view it with notepad or similar text editor. (assuming your system supports japanese text)


 
sazuke91Date: Saturday, 2013-11-09, 4:19 PM | Message # 9

Rank: Newcomer
Messages: 3
Reputation: 0
Status: Offline
I am sorry. how to extract it ? hex editor ? I am noob at this but I interested to learn

Added (2013-11-09, 4:19 PM)
---------------------------------------------
no problem, i already found out how to extract it. and i able to see the text when i change the unicode to UTF-8
Thank you ^^

 
ムギDate: Saturday, 2013-11-09, 6:16 PM | Message # 10

Rank: Nerdy Presence
Messages: 203
Reputation: 2
Status: Offline
well, yes. you can just copy the pieces out with hex editor if you want, it's fairly painless for a file this simple in structure.

myself, i use a generic instruction based extractor for files like this, takes a minute to write instructions for, and then it's just using extract.bat and repack.bat smile

good to know you figured it out though, have fun poking at them :P


 
MCE - Discussion board » Undubs & Translations » File Research Center » ソードアート・オンライン -インフィニティ・モーメント- (Sword Art Online -infinity moment -)
  • Page 1 of 2
  • 1
  • 2
  • »
Search: