Instead of using the standard Unreal archives for system and map files, the Playstation 2 version of Unreal Tournament uses *.lin files. The very start of the file is always 7E 5D CF 15 13. The file header that is used at the very start of UT packages for the PC (C1 83 2A 9E) is present, but it shows up multiple times in each *.lin file. Cutting out the stuff before the PC UT header(s) doesn't make the packages readable by things like UT Package Viewer, so I'm guessing that there's some sort of compression.
Common.lin (probably has all of the system files): http://www.mediafire.com/download/1wh5x5mhlf4xnqv/common.7z
DM-Phobos: http://www.mediafire.com/download/6j8o7976h2z1d93/dm-phobos.7z
Commontest (cut from the last part of Common.lin, only one that can be opened in UTPT) http://www.mediafire.com/download/6d23d4tizl6kpx5/commontest.7z
If anyone could take a look, I'd appreciate it!
Unreal Tournament PS2 (*.lin files)
-
- Site Admin
- Posts: 12984
- Joined: Wed Jul 30, 2014 9:32 pm
Re: Unreal Tournament PS2 (*.lin files)
It's a strange format.
There is just a small header at the beginning immediately followed by the file, no other headers or information are available.
There is just a small header at the beginning immediately followed by the file, no other headers or information are available.
-
- Posts: 3
- Joined: Mon Jul 18, 2016 3:44 pm
Re: Unreal Tournament PS2 (*.lin files)
Necroing this thread for more info (and I need help too).
So what I've figured out so far is that the UE1 games which use these linear images is that it simulates the psx2game.umd UMOD archive with common.lin, kinda like a VFS I suppose. For every package the map requires, it is present inside the map's own lin. Everything else that is present in common.lin is constantly present in memory (essentially same effect as Entry.unr in regular Unreal).
The first value in each of these lin archives represent the simulated UMD's size. Its header is similar to UMOD's INDEX section. Subtracting the first value with the value right after the signature brings you always 0xB before Core.int (which is the first file inside common.lin itself). FFileManagerLinear returns the game fake sizes and positions of the simulated UMD, so I guess that's something (can't really figure it out yet). There are at least 250 files referenced inside common.lin (UMOD can have at most 255 files, I counted 257 inside the lin but I could be wrong).
Benefits of extracting this could enable us to mod UE1 games or even port other UE1 titles to PS2 as linear loading can be disabled. I have put a custom map inside already but it was really basic and dysfunctional.
So what I've figured out so far is that the UE1 games which use these linear images is that it simulates the psx2game.umd UMOD archive with common.lin, kinda like a VFS I suppose. For every package the map requires, it is present inside the map's own lin. Everything else that is present in common.lin is constantly present in memory (essentially same effect as Entry.unr in regular Unreal).
The first value in each of these lin archives represent the simulated UMD's size. Its header is similar to UMOD's INDEX section. Subtracting the first value with the value right after the signature brings you always 0xB before Core.int (which is the first file inside common.lin itself). FFileManagerLinear returns the game fake sizes and positions of the simulated UMD, so I guess that's something (can't really figure it out yet). There are at least 250 files referenced inside common.lin (UMOD can have at most 255 files, I counted 257 inside the lin but I could be wrong).
Benefits of extracting this could enable us to mod UE1 games or even port other UE1 titles to PS2 as linear loading can be disabled. I have put a custom map inside already but it was really basic and dysfunctional.
-
- Posts: 3
- Joined: Mon Jul 18, 2016 3:44 pm
Re: Unreal Tournament PS2 (*.lin files)
http://puu.sh/qc2dY/bef3988b02.png
http://puu.sh/qc2eR/e29f28a1e9.png
Common.lin essentially is Entry.lin, and the DC version (Entry.dat) has pretty much the exact same thing (save for the URL at the beginning which is how the game references each linear archive).
Sorry for double posting, it is just that I wanted to bump it a little bit for attention. I still don't quite comprehend how the whole Entry thing works and I would love to get my hands on some proper data for editing.
Perhaps this could be of assistance
The last byte of each linear archive is always B3.
http://puu.sh/qc2eR/e29f28a1e9.png
Common.lin essentially is Entry.lin, and the DC version (Entry.dat) has pretty much the exact same thing (save for the URL at the beginning which is how the game references each linear archive).
Sorry for double posting, it is just that I wanted to bump it a little bit for attention. I still don't quite comprehend how the whole Entry thing works and I would love to get my hands on some proper data for editing.
Perhaps this could be of assistance
Code: Select all
#define LINEAR_DATA 0x43
#define LINEAR_SEEK 0x67
#define LINEAR_SIZE 0xEC
#define LINEAR_CLOSE 0xB3
The last byte of each linear archive is always B3.