Jump to content

King Kong RTX Remix Project - Character mesh extraction and reinjection


SlothBoy

Recommended Posts

Hello everyone, I hope this is the right place for an inquiry like this. I've been working on a project to remaster Peter Jackson's King Kong using RTX Remix. While the game works well with the setup so far, I've hit a significant wall with animated meshes. Specifically, I lack a clear way to extract, edit, and reinject them back into the game with their skeletons intact, as it doesn't seem like the toolset to do so currently exist.

Since RTX Remix can't replace rigged meshes using CPU skinning, modding is my only option. This has led me deep into Jade Engine modding tools, such as BF Extractor, PersianRug, io_scene_pop Blender addon, JadePack, Bin repacker, etc. So far, I've successfully extracted the .bf files into .bin files using a QuickBMS script (sally_bf.bms) and decompressed them into .dec files with JadePack, but beyond that no tool seems to be able to extract the models, let alone skeletons from these files. They also arent clearly organized to see which file is for what asset. Perhaps someone in the community is familiar with Jade Engine and can be of help! Thank you for your time!

EDIT: I have created a google drive folder with all of the files extracted from the .bf file. The .bins have been decompressed to .dec files. Other files seem to be 2 kb in size, but may be important.

PJKK Google Drive

 

 

 

Edited by SlothBoy
replaced file sample with proper archive link
Link to comment
Share on other sites

  • Engineer
Posted (edited)

Hello, there's some mesh like point clouds. No time for fiddling around... which is rather senseless without having a skeleton, imho.

Checked ff00beca.dec only - there's i_bronto_leg_nb but search for i_bronto yields nothing more.

 

ff00beca-dec.png

Edited by shak-otay
  • Like 1
Link to comment
Share on other sites

Posted (edited)

Ah I see! Yeah there are a lot more .dec files here, 1,180 of them, so the skeleton is probably in there somewhere. I replaced the .zip attachment with a link to a google drive I've set up with all of the relevant files.

Edited by SlothBoy
Link to comment
Share on other sites

Posted (edited)

Just bumping this thread. We have been trying to take steps to understand the Jade Engine but so far no progress on even managing to view a model in noesis, blender, etc.

For some additional context, King Kong shares the same engine as this list of games. Engine versions obviously differ,  but its possible theres some crossover in terms of logic or file structure:

Beyond Good & Evil

Prince of Persia: The Sands of Time

Prince of Persia: Warrior Within

Prince of Persia: The Two Thrones

Horsez

Rayman Raving Rabbids

TMNT

Naruto: Rise of a Ninja

My Word Coach

Petz: Horsez 2

Rayman Raving Rabbids 2

Beowulf

My Spanish Coach

My French Coach

Movie Studios Party

Petz: Horse Club

Naruto: The Broken Bond

Rayman Raving Rabbids TV Party

Cloudy with a Chance of Meatballs

Just Dance

James Cameron's Avatar: The Game (wii version)

Prince of Persia: The Forgotten Sands (wii / psp version)

Shaun White Skateboarding

NCIS

 

We could really use some help, we are trying as much as we can to find further resources on this and reverse engineer what we can but we need someone with more knowledge and skill in this area than we have.

Edited by SlothBoy
  • Confused 1
Link to comment
Share on other sites

Sounds good. I did a search through the files for any mentions of "bronto" and have organized them in a curated list here, along with what specifically is mentioned in each file. I tried to upload just the bronto files as an attachment, but the file size limit is not allowing me, so you'll have to use the list to search the drive link in the first post.

ff002001.dec looks particularly promising since it mentions inverse kinematics (Bronto_Reset_IK_Legs, for example). Let me know if there's anything else I can do to help!

bronto_related_files_summary.pdf

  • Like 1
Link to comment
Share on other sites

  • Engineer
Posted (edited)

Thanks for the pdf; well done.:classic_smile:

So it's bronto_leg, bronto_leg_nb, bronto_leg_size usually in most files. To be honest I'd expected something like bronto_leg_right, bronto_leg_left, bronto_head, etc.

Or spine or BIP at least.

Maybe it would make sense to dig and poke in all directions. I found

Quote

the Rayman Raving Rabbids Reburrowed project server has jade engine modding tips

said fake_snappy, 10 months ago

I was surprised that Beyond Good &Evil used the Jade engine, too.

(Of course the skeletons can be very different if the games are from different developers.)

Ok, you wrote that already

Quote

but its possible theres some crossover

It could be a good idea to collect the strings in the game using a debugger.

Ollydbg for example can search for "All referenced strings" iirc and it's not too hard to use.

Hexeditors allow to search through a game's RAM (HxD, "Tools\Open main memory").

 

Edited by shak-otay
Link to comment
Share on other sites

Posted (edited)

Alright I did both, I cataloged all the references to bronto in the referenced strings of the .exe, which I've placed in a text file. I also marked some potential mesh or skeleton-related references. The full file will also be attached for your reference. (apologies for the poor formatting, .txt isnt allowed)

As for HxD, I did my best to capture the most relevant data (I walked up to a brontosaurus in game, paused, then searched in HxD). I'm not super familiar with HxD so I couldn't figure out how to save the table properly without it wiping, so I just took screenshots of the search results. It could potentially include function references, asset file paths, and dynamic parameters like _Bronto_Init_IK, Bronto_Panique_S, etc.

I've talked to the people working on the Rayman Reburrowed project, they said even they haven't figured out how to extract skeletons yet, since Jade Engine apparently stores skeleton and mesh data separately? They were a bit vague on it. Their discord did let me see a few file extensions to look out for in the .dec files:

.WOW (Wonderful World): Level Data file.

.WOL (World List): Contains a modifiable list of WOW files that merge the listed levels when loaded and played from it.

.GAO: Game Object file.

.GRO (Graphic Object): Contains geometry/mesh info.

.GRM (Graphic Material): Contains texture data for Graphic Objects, works in a similar way to materials in 3DS Max, with a lot of additional features only available in Jade.

.MAD (Mad World): Level Data File that can be imported to Jade, or exported from a .WOW, can contain Game Objects (GAO), Graphic Objects (GRO), Material Info (GRM), Character Skin (Rig/Weight) info and its Skeleton if needed.

.PFB (Prefab): Contains selected object info from a level that can then be placed in any other level as long as the original is not removed.

Unfortunately their version of the engine cannot open King Kong files. But all jade engine games were made by the same dev, Ubisoft Montpellier, so there's bound to be some overlap there.

Let me know what I should do next! 🙂

HxD Bronto Findings.zip kingkong8.exe_Brontosaurus_References.pdf all_referenced_strings.pdf

Edited by SlothBoy
  • Like 1
Link to comment
Share on other sites

  • Engineer

Concerning bone names the string "Bronto" seems to be a dead end. At least "bone" is mentioned in your logs but atm I ran out of ideas.

Maybe getting a proper mesh should be the next thing to achieve? You could do a hexadecimal search for 000001000200 cross files. That's usually a common starting sequence of face index blocks.

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...