Important information: this site is currently scheduled to go offline indefinitely by end of the year.

L.A. Noire

The Original Forum. Game archives, full of resources. How to open them? Get help here.
may3stro
n00b
Posts: 11
Joined: Tue May 17, 2011 1:32 pm
Location: Poland

Re: L.A. Noire

Post by may3stro »

file as above, I see only the text to the menu and possibly video clips in the game. Subtitles of the game must be in another file. But how to extract them to check?
caws
veteran
Posts: 120
Joined: Sat Mar 01, 2008 7:57 pm
Been thanked: 4 times

Re: L.A. Noire

Post by caws »

The contents of this post was deleted because of possible forum rules violation.
gamerzworld
ultra-n00b
Posts: 9
Joined: Sun May 22, 2011 6:41 am

Re: L.A. Noire

Post by gamerzworld »

The contents of this post was deleted because of possible forum rules violation.
User avatar
listener
n00b
Posts: 13
Joined: Sun May 22, 2011 12:30 am
Location: Russia, Default City
Has thanked: 2 times
Been thanked: 1 time

Re: L.A. Noire

Post by listener »

http://dl.dropbox.com/u/1237855/unpack_big.zip
.big.ps3 unpacker. Source code included.
Replace zlib with LZX decompressor to unpack .big.360 (my own LZX library is extremely ugly, so I didn't include it)

Filenames are stripped from archives. Instead filenames used crc32 of name. names can be reconstructed, if someone find name/resource list.

Most of the resources are serialized objects. I have found serializer initialization in the code, but I need to write .idc to extract all registered names, types and offset (~2600 objects and ~10500 fields registered). Maybe, something useful can be found in the Havok 5.5 User Guide, ch. 3 (Serialization).
Sorry for broken English, my native language is C++
User avatar
RangerRus
beginner
Posts: 21
Joined: Mon Apr 18, 2011 6:17 pm
Been thanked: 9 times

Re: L.A. Noire

Post by RangerRus »

caws wrote:I will post it later.
thanks :roll:
listener
thanks for work too
twisted
veteran
Posts: 100
Joined: Mon Apr 23, 2007 11:25 pm
Has thanked: 2 times
Been thanked: 7 times

Re: L.A. Noire

Post by twisted »

When you say replace the zlib decompressor with a LZX one should I just replace the zlib.h with LZX.h?
User avatar
listener
n00b
Posts: 13
Joined: Sun May 22, 2011 12:30 am
Location: Russia, Default City
Has thanked: 2 times
Been thanked: 1 time

Re: L.A. Noire

Post by listener »

twisted wrote:When you say replace the zlib decompressor with a LZX one should I just replace the zlib.h with LZX.h?
Something like that. You can use your favorite LZX decompressor (e.g. xcompress.lib)
I'm using piece of code, ripped from the cabextract sources.
Sorry for broken English, my native language is C++
GamerSuper
advanced
Posts: 42
Joined: Thu Sep 09, 2010 12:36 pm
Been thanked: 1 time

Re: L.A. Noire

Post by GamerSuper »

You guys are making a good progress!
Keep going :)
waiting for repacker

now what about texture format (*.ps3tex)?
listener wrote:http://dl.dropbox.com/u/1237855/unpack_big.zip
.big.ps3 unpacker. Source code included.
Replace zlib with LZX decompressor to unpack .big.360 (my own LZX library is extremely ugly, so I didn't include it)

Filenames are stripped from archives. Instead filenames used crc32 of name. names can be reconstructed, if someone find name/resource list.

Most of the resources are serialized objects. I have found serializer initialization in the code, but I need to write .idc to extract all registered names, types and offset (~2600 objects and ~10500 fields registered). Maybe, something useful can be found in the Havok 5.5 User Guide, ch. 3 (Serialization).
Какие люди!
caws
veteran
Posts: 120
Joined: Sat Mar 01, 2008 7:57 pm
Been thanked: 4 times

Re: L.A. Noire

Post by caws »

Here is the unpacking procedure of my tool:

Code: Select all

procedure TForm1.Button1Click(Sender: TObject);
var
wad,ext:tfilestream;
filesize,filepos,nfiles,filenamepos,filenamesize:integer;
pos,i,i2,tx,other:integer;
buf:pchar;
fname,path:string;
begin
opendialog1.Execute();  other:=0;
wad:=tfilestream.Create(opendialog1.filename,fmopenread);
pos:=4; filesize:=0; filepos:=0; nfiles:=0; filenamesize:=0; tx:=0;
path:=getfolder(opendialog1.FileName);

wad.Position:=pos;
wad.Read(nfiles,4);

writeln(filelist,inttohex(nfiles,10));


inc(pos,8);

Memo1.Lines.Add('Unpacking...\Extraindo...');
memo1.Lines.Add('');
for i:=1 to nfiles do
  begin
    application.ProcessMessages;
  wad.Position:=pos;
  wad.Read(filepos,4);
  inc(pos,4);
  wad.Read(filesize,4);
  inc(pos,8);
  end;

filenamepos:=filepos+filesize;
pos:=$0c;
forcedirectories(path);
progressbar1.Max:=nfiles;
for i:=1 to nfiles do
  begin

  wad.Position:=pos-4;
  wad.Read(other,4);
  writeln(filelist,inttohex(other,10));

  application.ProcessMessages;
  progressbar1.Position:=i;
  wad.Position:=pos;
  wad.Read(filepos,4);
  inc(pos,4);
  wad.Read(filesize,4);
  inc(pos,8);

  //extrair nomes dos arquivos...
  wad.Position:=filenamepos;
  wad.Read(filenamesize,2);
  inc(filenamepos,2);

  fname:='';

  for i2:=1 to filenamesize do
    begin
    wad.Position:=filenamepos;
    wad.Read(tx,1);
    write(filelist,char(tx));
    if tx=$2f then tx:=$5c;
    fname:=fname+char(tx);
    inc(filenamepos);
    end;

 //nome extraido. extraindo arquivo.
 memo1.Lines.Add('Unpacking\Extraindo...'+extractfilename(fname));

  wad.Position:=filepos;
  buf:=allocmem(filesize);
  wad.Read(buf^,filesize);
// showmessage(path+extractfilepath(fname));
 forcedirectories(path+extractfilepath(fname));
 ext:=tfilestream.create(path+fname,fmcreate);
 writeln(filelist,path+fname);
 ext.Write(buf^,filesize);
 ext.Free;
 freemem(buf);
 end;
progressbar1.Position:=0;
memo1.Lines.Add('');
memo1.Lines.Add('All Files Unpacked\Todos os Arquivos Extraidos');
wad.free;
end;
I also coded a function to extract all the english texts from the root.atb file.

I attached the .txt that it creates.
You do not have the required permissions to view the files attached to this post.
michalss
Moderator
Posts: 954
Joined: Sun Mar 27, 2011 8:42 pm
Has thanked: 10 times
Been thanked: 161 times

Re: L.A. Noire

Post by michalss »

caws wrote:Here is the unpacking procedure of my tool:

Code: Select all

procedure TForm1.Button1Click(Sender: TObject);
var
wad,ext:tfilestream;
filesize,filepos,nfiles,filenamepos,filenamesize:integer;
pos,i,i2,tx,other:integer;
buf:pchar;
fname,path:string;
begin
opendialog1.Execute();  other:=0;
wad:=tfilestream.Create(opendialog1.filename,fmopenread);
pos:=4; filesize:=0; filepos:=0; nfiles:=0; filenamesize:=0; tx:=0;
path:=getfolder(opendialog1.FileName);

wad.Position:=pos;
wad.Read(nfiles,4);

writeln(filelist,inttohex(nfiles,10));


inc(pos,8);

Memo1.Lines.Add('Unpacking...\Extraindo...');
memo1.Lines.Add('');
for i:=1 to nfiles do
  begin
    application.ProcessMessages;
  wad.Position:=pos;
  wad.Read(filepos,4);
  inc(pos,4);
  wad.Read(filesize,4);
  inc(pos,8);
  end;

filenamepos:=filepos+filesize;
pos:=$0c;
forcedirectories(path);
progressbar1.Max:=nfiles;
for i:=1 to nfiles do
  begin

  wad.Position:=pos-4;
  wad.Read(other,4);
  writeln(filelist,inttohex(other,10));

  application.ProcessMessages;
  progressbar1.Position:=i;
  wad.Position:=pos;
  wad.Read(filepos,4);
  inc(pos,4);
  wad.Read(filesize,4);
  inc(pos,8);

  //extrair nomes dos arquivos...
  wad.Position:=filenamepos;
  wad.Read(filenamesize,2);
  inc(filenamepos,2);

  fname:='';

  for i2:=1 to filenamesize do
    begin
    wad.Position:=filenamepos;
    wad.Read(tx,1);
    write(filelist,char(tx));
    if tx=$2f then tx:=$5c;
    fname:=fname+char(tx);
    inc(filenamepos);
    end;

 //nome extraido. extraindo arquivo.
 memo1.Lines.Add('Unpacking\Extraindo...'+extractfilename(fname));

  wad.Position:=filepos;
  buf:=allocmem(filesize);
  wad.Read(buf^,filesize);
// showmessage(path+extractfilepath(fname));
 forcedirectories(path+extractfilepath(fname));
 ext:=tfilestream.create(path+fname,fmcreate);
 writeln(filelist,path+fname);
 ext.Write(buf^,filesize);
 ext.Free;
 freemem(buf);
 end;
progressbar1.Position:=0;
memo1.Lines.Add('');
memo1.Lines.Add('All Files Unpacked\Todos os Arquivos Extraidos');
wad.free;
end;
I also coded a function to extract all the english texts from the root.atb file.

I attached the .txt that it creates.
Great Work,
Are you think this are all texts ? Can you give me a bit explanation of the format please ?
I should only translate the texts and this tags "[]" should remain right ? I guess it is time in the video secvention ??

What lang did you use to make the unpacker ? And are you think you would be able to repack that file as well ?

thx
Last edited by michalss on Tue May 24, 2011 7:24 am, edited 3 times in total.
Quick BMS Editor GUI - simple easy to use
Goto : viewtopic.php?uid=34229&f=29&t=6797&start=0

Downloads from DropBox : https://dl.dropboxusercontent.com/u/
michalss
Moderator
Posts: 954
Joined: Sun Mar 27, 2011 8:42 pm
Has thanked: 10 times
Been thanked: 161 times

Re: L.A. Noire

Post by michalss »

listener wrote:
twisted wrote:When you say replace the zlib decompressor with a LZX one should I just replace the zlib.h with LZX.h?
Something like that. You can use your favorite LZX decompressor (e.g. xcompress.lib)
I'm using piece of code, ripped from the cabextract sources.
Can you please post complete unpacker with all libs together ? thx
Quick BMS Editor GUI - simple easy to use
Goto : viewtopic.php?uid=34229&f=29&t=6797&start=0

Downloads from DropBox : https://dl.dropboxusercontent.com/u/
may3stro
n00b
Posts: 11
Joined: Tue May 17, 2011 1:32 pm
Location: Poland

Re: L.A. Noire

Post by may3stro »

This file is from root.atb.360 text.txp?
michalss
Moderator
Posts: 954
Joined: Sun Mar 27, 2011 8:42 pm
Has thanked: 10 times
Been thanked: 161 times

Re: L.A. Noire

Post by michalss »

any news about repacker ?
Quick BMS Editor GUI - simple easy to use
Goto : viewtopic.php?uid=34229&f=29&t=6797&start=0

Downloads from DropBox : https://dl.dropboxusercontent.com/u/
GamerSuper
advanced
Posts: 42
Joined: Thu Sep 09, 2010 12:36 pm
Been thanked: 1 time

Re: L.A. Noire

Post by GamerSuper »

caws wrote:Here is the unpacking procedure of my tool:

Code: Select all

procedure TForm1.Button1Click(Sender: TObject);
var
wad,ext:tfilestream;
filesize,filepos,nfiles,filenamepos,filenamesize:integer;
pos,i,i2,tx,other:integer;
buf:pchar;
fname,path:string;
begin
opendialog1.Execute();  other:=0;
wad:=tfilestream.Create(opendialog1.filename,fmopenread);
pos:=4; filesize:=0; filepos:=0; nfiles:=0; filenamesize:=0; tx:=0;
path:=getfolder(opendialog1.FileName);

wad.Position:=pos;
wad.Read(nfiles,4);

writeln(filelist,inttohex(nfiles,10));


inc(pos,8);

Memo1.Lines.Add('Unpacking...\Extraindo...');
memo1.Lines.Add('');
for i:=1 to nfiles do
  begin
    application.ProcessMessages;
  wad.Position:=pos;
  wad.Read(filepos,4);
  inc(pos,4);
  wad.Read(filesize,4);
  inc(pos,8);
  end;

filenamepos:=filepos+filesize;
pos:=$0c;
forcedirectories(path);
progressbar1.Max:=nfiles;
for i:=1 to nfiles do
  begin

  wad.Position:=pos-4;
  wad.Read(other,4);
  writeln(filelist,inttohex(other,10));

  application.ProcessMessages;
  progressbar1.Position:=i;
  wad.Position:=pos;
  wad.Read(filepos,4);
  inc(pos,4);
  wad.Read(filesize,4);
  inc(pos,8);

  //extrair nomes dos arquivos...
  wad.Position:=filenamepos;
  wad.Read(filenamesize,2);
  inc(filenamepos,2);

  fname:='';

  for i2:=1 to filenamesize do
    begin
    wad.Position:=filenamepos;
    wad.Read(tx,1);
    write(filelist,char(tx));
    if tx=$2f then tx:=$5c;
    fname:=fname+char(tx);
    inc(filenamepos);
    end;

 //nome extraido. extraindo arquivo.
 memo1.Lines.Add('Unpacking\Extraindo...'+extractfilename(fname));

  wad.Position:=filepos;
  buf:=allocmem(filesize);
  wad.Read(buf^,filesize);
// showmessage(path+extractfilepath(fname));
 forcedirectories(path+extractfilepath(fname));
 ext:=tfilestream.create(path+fname,fmcreate);
 writeln(filelist,path+fname);
 ext.Write(buf^,filesize);
 ext.Free;
 freemem(buf);
 end;
progressbar1.Position:=0;
memo1.Lines.Add('');
memo1.Lines.Add('All Files Unpacked\Todos os Arquivos Extraidos');
wad.free;
end;
I also coded a function to extract all the english texts from the root.atb file.

I attached the .txt that it creates.
it's not all the text
it can't be 170kb, it's much larger
gt41
ultra-n00b
Posts: 2
Joined: Sun May 22, 2011 3:12 pm

Re: L.A. Noire

Post by gt41 »

waiting repark ..

:keke:
Post Reply