Page 1 of 4

Ridge Racer Unbounded Compressed files.

Posted: Sat Mar 24, 2012 10:12 pm
by OrangeC
Seems the new ridge racer game uses an ultra compression technique that when you remove the 360 padding the actual game size is 1gb. They must of used some sort of compression scheme because i cannot even recognize anything in the bigfiles.

sample
* snip *

Re: Ridge Racer Unbounded Compressed files.

Posted: Wed Mar 28, 2012 7:51 pm
by marlborox
could be zlib compression as offzip (http://aluigi.altervista.org/mytoolz/offzip.zip) seemed to find something

Re: Ridge Racer Unbounded Compressed files.

Posted: Wed Mar 28, 2012 10:20 pm
by OrangeC
Doiesn't look like zlib.

I gues we will have to wait for the pc/ps3 version to find out if its the same compression. Man why does namco do that?

Re: Ridge Racer Unbounded Compressed files.

Posted: Fri Mar 30, 2012 10:14 am
by RVR72GV
Could be zlib compression since the track editor crashes with zlib error (incorrect header check) in the PC version.

Re: Ridge Racer Unbounded Compressed files.

Posted: Fri Mar 30, 2012 6:29 pm
by Gh0stBlade
PC Version is using Zlib. Is the window bits value different?

Re: Ridge Racer Unbounded Compressed files.

Posted: Fri Mar 30, 2012 6:36 pm
by Gruselgurke
I tried to open it using zlib but had no success. Could you extract it C00L12345?

Re: Ridge Racer Unbounded Compressed files.

Posted: Fri Mar 30, 2012 7:50 pm
by Ekey
Algo 006CEE40

Code: Select all

sub_6CEE40	proc near

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
anonymous_0	= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_0]
		push	esi
		mov	esi, [ebp+anonymous_0]
		dec	esi
		xor	eax, eax
		push	edi
		test	esi, esi
		jle	short sz_End
		push	ebx

sz_Loop:
		mov	edx, [ecx+eax*4+4]
		mov	edi, edx
		mov	ebx, edx
		shr	edi, 5
		shl	ebx, 4
		xor	edi, ebx
		mov	ebx, [ebp+arg_4]
		add	edi, edx
		mov	edx, eax
		xor	edx, 0FFFFFFFEh
		and	edx, 3
		mov	edx, [ebx+edx*4]
		sub	edx, 61C88647h
		xor	edi, edx
		sub	[ecx+eax*4], edi
		inc	eax
		cmp	eax, esi
		jl	short sz_Loop
		pop	ebx

sz_End:
		mov	eax, [ecx]
		mov	edx, eax
		mov	edi, eax
		shr	edx, 5
		shl	edi, 4
		xor	edx, edi
		mov	edi, [ebp+arg_4]
		add	edx, eax
		mov	eax, esi
		xor	eax, 0FFFFFFFEh
		and	eax, 3
		mov	eax, [edi+eax*4]
		sub	eax, 61C88647h
		xor	edx, eax
		sub	[ecx+esi*4], edx
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_6CEE40	endp
PseudoCode

Code: Select all

int __cdecl sub_6CEE40(int a1, int a2, int a3)
{
  int v3; // esi@1
  int i; // eax@1
  int result; // eax@3

  v3 = a3 - 1;
  for ( i = 0; i < v3; ++i )
    *(_DWORD *)(a1 + 4 * i) -= (*(_DWORD *)(a2 + 4 * (((unsigned __int8)i ^ 0xFE) & 3)) - 1640531527) ^ (*(_DWORD *)(a1 + 4 * i + 4) + (16 * *(_DWORD *)(a1 + 4 * i + 4) ^ (*(_DWORD *)(a1 + 4 * i + 4) >> 5)));
  result = *(_DWORD *)(a2 + 4 * (((unsigned __int8)v3 ^ 0xFE) & 3)) - 1640531527;
  *(_DWORD *)(a1 + 4 * v3) -= result ^ (*(_DWORD *)a1 + (16 * *(_DWORD *)a1 ^ (*(_DWORD *)a1 >> 5)));
  return result;
}
Example on 01___unbounded___ archive

Loaded Header

after 006CEE40 Header

BFS1 - seems archives used in FlatOut 2 ? :)

Anyway binaries and example archives here

Re: Ridge Racer Unbounded Compressed files.

Posted: Fri Mar 30, 2012 8:14 pm
by Gruselgurke
Yes that should be the archive type from Flatout: viewtopic.php?p=9533#p9533

So were you able to unpack it? Sorry for that noobish question, I really have a very limited knowledge about this stuff :(
I wouldn't know what to do with the stuff you posted :s

Re: Ridge Racer Unbounded Compressed files.

Posted: Fri Mar 30, 2012 8:14 pm
by OrangeC
I hope someone cracks this!

Re: Ridge Racer Unbounded Compressed files.

Posted: Sun Apr 01, 2012 12:43 am
by OrangeC
How can we use that code?

Re: Ridge Racer Unbounded Compressed files.

Posted: Sun Apr 01, 2012 12:51 am
by 360AMC
Gonna be great when the PC files get cracked. Want to make it so every street has traffic. :]

Re: Ridge Racer Unbounded Compressed files.

Posted: Sun Apr 01, 2012 9:12 pm
by XpoZed
Well i was able to build a 1/2 module for Unpakke for that game.

So far i can successfully unpack "00__ridge_racer__" (full of XML's) and "02____update_____" (where the localization files are). The last "01___unbounded___" archive has something strange in the structure that i didn't figure yet but... stay tuned i guess...? (:

The "BFS1" format is key encrypted (custom encryption as much as i am familiar with cryptography...).
The structure is key encrypted also, with algo similar to the file one, but this time it's executed in 6 rounds.
The file names and file path of every entry is obfuscated a little and... hash table encrypted. :|

Finally, the file entries are simply ZIP-ed.

Those guys really don't want no one to pick with the game res...

Here's the file structure of "02____update_____" (just to prove my words):

Code: Select all

АДДДdata
    ГДДДart
    і   АДДДbase
    і       ГДДДarea
    і       і   ГДДДboroughs
    і       і   і   ГДДДarea
    і       і   і   і   ГДДДhighway
    і       і   і   і   і   АДДДblock
    і       і   і   і   і           collateral1.dpdc
    і       і   і   і   і           driving1.dpdc
    і       і   і   і   і           driving3.dpdc
    і       і   і   і   і           driving4.dpdc
    і       і   і   і   і           driving5.dpdc
    і       і   і   і   і           driving6.dpdc
    і       і   і   і   і           driving7.dpdc
    і       і   і   і   і           driving8.dpdc
    і       і   і   і   і           transition2.dpdc
    і       і   і   і   і           transition3.dpdc
    і       і   і   і   і           transition4.dpdc
    і       і   і   і   і           transition4b.dpdc
    і       і   і   і   і           transition5.dpdc
    і       і   і   і   і           
    і       і   і   і   ГДДДport
    і       і   і   і   і   АДДДblock
    і       і   і   і   і           driving1b.dpdc
    і       і   і   і   і           driving1c.dpdc
    і       і   і   і   і           empty3.dpdc
    і       і   і   і   і           target1.dpdc
    і       і   і   і   і           target2.dpdc
    і       і   і   і   і           target3.dpdc
    і       і   і   і   і           target4.dpdc
    і       і   і   і   і           tmp_car_driving7.dpdc
    і       і   і   і   і           
    і       і   і   і   АДДДwarehouses
    і       і   і   і       АДДДblock
    і       і   і   і               collateral1.dpdc
    і       і   і   і               collateral2.dpdc
    і       і   і   і               driving1b.dpdc
    і       і   і   і               shortcut1.dpdc
    і       і   і   і               shortcut2.dpdc
    і       і   і   і               shortcut3.dpdc
    і       і   і   і               shortcut4.dpdc
    і       і   і   і               shortcut5.dpdc
    і       і   і   і               shortcut6.dpdc
    і       і   і   і               
    і       і   і   АДДДblock
    і       і   і           advanced_objects_block.dpdc
    і       і   і           collateral1.dpdc
    і       і   і           collateral2.dpdc
    і       і   і           empty2.dpdc
    і       і   і           offgrid2.dpdc
    і       і   і           offgrid3.dpdc
    і       і   і           shortcut4.dpdc
    і       і   і           shortcut6.dpdc
    і       і   і           shortcut7.dpdc
    і       і   і           shortcut8.dpdc
    і       і   і           
    і       і   АДДДdowntown
    і       і       ГДДДarea
    і       і       і   ГДДДcommercial
    і       і       і   і   АДДДblock
    і       і       і   і           driving1.dpdc
    і       і       і   і           driving1b.dpdc
    і       і       і   і           driving2.dpdc
    і       і       і   і           driving3.dpdc
    і       і       і   і           driving3b.dpdc
    і       і       і   і           driving3c.dpdc
    і       і       і   і           driving4.dpdc
    і       і       і   і           driving5.dpdc
    і       і       і   і           driving6.dpdc
    і       і       і   і           shortcut1.dpdc
    і       і       і   і           shortcut2.dpdc
    і       і       і   і           shortcut3.dpdc
    і       і       і   і           shortcut4.dpdc
    і       і       і   і           shortcut5.dpdc
    і       і       і   і           
    і       і       і   ГДДДconstruction
    і       і       і   і   АДДДblock
    і       і       і   і           driving1.dpdc
    і       і       і   і           driving1b.dpdc
    і       і       і   і           driving2.dpdc
    і       і       і   і           driving3.dpdc
    і       і       і   і           driving4.dpdc
    і       і       і   і           
    і       і       і   АДДДunderground
    і       і       і       АДДДblock
    і       і       і               driving1.dpdc
    і       і       і               driving1b.dpdc
    і       і       і               driving2.dpdc
    і       і       і               driving2b.dpdc
    і       і       і               driving3.dpdc
    і       і       і               driving4.dpdc
    і       і       і               
    і       і       АДДДblock
    і       і               collateral1b.dpdc
    і       і               driving1.dpdc
    і       і               driving10.dpdc
    і       і               driving11.dpdc
    і       і               driving11b.dpdc
    і       і               driving1b.dpdc
    і       і               driving2.dpdc
    і       і               driving3.dpdc
    і       і               driving4.dpdc
    і       і               driving5.dpdc
    і       і               driving6.dpdc
    і       і               driving7.dpdc
    і       і               driving8.dpdc
    і       і               driving9.dpdc
    і       і               empty1.dpdc
    і       і               offgrid1b.dpdc
    і       і               offgrid1c.dpdc
    і       і               offgrid3.dpdc
    і       і               shortcut1.dpdc
    і       і               shortcut2.dpdc
    і       і               shortcut3.dpdc
    і       і               shortcut4.dpdc
    і       і               shortcut5.dpdc
    і       і               shortcut6.dpdc
    і       і               tmp_car_driving11b.dpdc
    і       і               tmp_car_shortcut2.dpdc
    і       і               
    і       АДДДblock
    і               filler_boroughs1.dpdc
    і               filler_boroughs2.dpdc
    і               filler_downtown1.dpdc
    і               filler_downtown2.dpdc
    і               filler_downtown3.dpdc
    і               filler_port1.dpdc
    і               filler_warehouses1.dpdc
    і               
    ГДДДeditor
    і   АДДДshatterbay
    і       АДДДdistrict13
    і               d13_level2.bin
    і               
    ГДДДgameflow
    і       gameflow.bsm
    і       
    ГДДДlocalization
    і       language0.dat
    і       language100.dat
    і       language3.dat
    і       language5.dat
    і       language8.dat
    і       
    АДДДmenu
        ГДДДhud_as3
        і       hud_base_i16.dds
        і       hud_base_i3.dds
        і       
        ГДДДingame
        і       advancedmodeoptions_i1.dds
        і       ingameoptions_i1.dds
        і       pause_i1.dds
        і       
        ГДДДoverlay
        і       menuoverlay_i29.dds
        і       menuoverlay_i2e.dds
        і       menuoverlay_i5f.dds
        і       profileoverlay_i1.dds
        і       profileoverlay_i13.dds
        і       
        АДДДtextures
            АДДДmain
                АДДДlegal
                        disclaimer0_pc.bmap
                        disclaimer2_pc.bmap
                        disclaimer4_pc.bmap
                        disclaimer7_pc.bmap
(Sorry for the "АДДД" crap, but that how Windows tree.exe dump the table :roll: )

Re: Ridge Racer Unbounded Compressed files.

Posted: Sun Apr 01, 2012 9:27 pm
by OrangeC
Interesting!

hope to see more progress! :D

Re: Ridge Racer Unbounded Compressed files.

Posted: Mon Apr 02, 2012 1:08 am
by Gruselgurke
Awesome :)
Well I looked into the .exe with Ollydgb and it seems like the game includes a hell lot of source code (according to the filenames). Maybe thats why they don't want that file to openend so easily.

Re: Ridge Racer Unbounded Compressed files.

Posted: Mon Apr 02, 2012 2:29 am
by 360AMC
Something tells me this game runs on the same engine as Flatout 2 and Flatout Ultimate Carnage. Most likely a tweaked version of UC's engine.