I was wondering if it is possible to get you genius' to take another look at Dragon Rising?
With the latest news from Codemasters that they have completely dropped support for the game, it comes down to the community to try and make improvements to the game, but with the entire game files hidden away in those 523 8mb pack files, we cant really do anything!
For those who arent aware, here is the old XentaX thread : viewtopic.php?f=10&t=3763&st=0&sk=t&sd=a
the test unpacker created by aluigi successfully unpacked around 210meg of data before killing itself when attempting to unpack the file 2dmap.asset.xml
using the merging script in that thread, and then using quickbms to list the contents of the nfs file I noticed this :
05659cf2 4928 asset_maps\tree.asset.xml
73ec648c 4928 asset_maps\tree.asset.xml
0565a0a9 9041 asset_maps\vehicle.asset.xml
73ec6843 9041 asset_maps\vehicle.asset.xml
0565a700 29062 asset_maps\weapon.asset.xml
73ec6e9a 29062 asset_maps\weapon.asset.xml
0565b895 5676 trees\billboard.xml
0565bf73 1400176 textures\billboard.stf
0570cec5 176824 textures\billboard_nrm.stf
057245c2 2296 lakes\asset_list.txt
73ec802f 2296 lakes\asset_list.txt
057249c1 1444 lakes\xall_yall_lakewater01.ib
73ec842e 1444 lakes\xall_yall_lakewater01.ib
05724d77 352 lakes\xall_yall_lakewater01.met
73ec87e4 352 lakes\xall_yall_lakewater01.met
....... ***removed the large number of lakes\* entries in between
0572c650 1000 lakes\xall_yall_lakewater20.vb
73ed00bd 1000 lakes\xall_yall_lakewater20.vb
0572c7dd 1218 terrain\surface_types.xml
0572c94f 1868026669 terrain\hi_lod.tpk
4c0afef3 354496060 terrain\mid_lod.tpk
55c00c8a 230 terrain\terrain.xml
55c00d29 12539 terrain\uber_lod.tpk
55c01435 149086 uberlod\uberlod.ib
55c24510 312 uberlod\uberlod.met
55c24575 211696 uberlod\uberlod.vb
55c52eda 5594472 diffusemap\dif_uberlod.stf
55f72952 2798288 normalmap\nrm_uberlod.stf
5614bd24 907127 buildings\assetlist.xml
all of the files under asset_maps and lakes folders are listed twice. if you look at the offsets, the second entry for each is WAY off. the 05xxxxxxxx offsets are obviosuly the correct offsets for the files, as they are continued logically through out the remainder of the listing of files. however these 73xxxxxxxx offsets are completely out of place.
any files past this point, if extracted with the -f "filename" command, are full of gibberish. so
just out of curiousity, here is the part of the listing where thes rogue offsets would sit :
73ec3009 384 nv\weapon_shadow_low_static.vpo
73ec3125 348 nv\weapon_shadow_low_static_pos_only.vpo
** 73ec322c 518 asset_maps\2dmap.asset.xml **first rogue offset
** 73ed00bd 1000 lakes\xall_yall_lakewater20.vb **last rogue offset
73ed024a 23920 nv\bullet_wake.stf
73ed2690 2099200 nv\clouds.stf
so my first and most obvious question is, can the extractor script be modified to ignore these majorly out of sequence offsets (and the seemingly phantom file entry in the NFS)?
Code: Select all
# Operation Flashpoint 2 Dragon Rising (script 0.1.1)
# note: you MUST run opflash2_create.bms first!
# note: all this script is a complete horrible work-around... but it seems to work
# note: the folders are not handled correctly so there will be not sub-sub folders
# script for QuickBMS http://aluigi.org/papers.htm#quickbms
comtype lzss
get SIZE asize
encryption aes "\xAC\x22\x11\x23\x44\x95\xAC\xA2\x7E\x80\x59\x86\x10\x8B\xEE\xDD\x4D\x01\xD3\x97\x0B\x9D\x4C\xA9\x3D\x7B\xE1\xBB\xED\xDA\x84\x58"
log MEMORY_FILE 0 SIZE
encryption "" ""
findloc NAMEOFF string "system" MEMORY_FILE # lame solution
goto NAMEOFF MEMORY_FILE
for i = 0
get NAME string MEMORY_FILE
if NAME == ""
break
endif
putarray 0 i NAME
next i
open FDSE "win_000.full"
set FOLDER string ""
set PREV_OFFSET long 0
set DATAOFF long 0x7e
set OFFSET_SEEK 0x2c0000
for i = 0
goto DATAOFF MEMORY_FILE
get NAMENUM long MEMORY_FILE
get DUMMY3 long MEMORY_FILE
get SIZE long MEMORY_FILE
get FILENUM long MEMORY_FILE
get DUMMY4 long MEMORY_FILE
get TYPE long MEMORY_FILE
get OFFSET long MEMORY_FILE
get DUMMY1 long MEMORY_FILE
savepos DATAOFF MEMORY_FILE
if OFFSET == 0
if SIZE == 0
if FILENUM == 0
cleanexit
endif
endif
endif
if i == 0
set OFFSET_SEEK long OFFSET
endif
math OFFSET -= OFFSET_SEEK
math ZSIZE = OFFSET
math ZSIZE -= PREV_OFFSET
math NAMENUM >>= 4
if i == 0 # work-around
set NAMENUM long 0
endif
getarray NAME 0 NAMENUM
set FULLNAME string FOLDER
string FULLNAME += \
string FULLNAME += NAME
if SIZE == 0 # should check TYPE but this one is better
set FOLDER string NAME
elif SIZE == ZSIZE
log FULLNAME PREV_OFFSET SIZE
else
clog FULLNAME PREV_OFFSET ZSIZE SIZE
endif
math PREV_OFFSET = OFFSET
next ianyway, I really have absolutely no idea what I am talking about
the entire DR PC community would be eternally greatful is someone is able to figure this out!

