I've written lots of RW-related code over the years and programs that convert various file formats.
Here are some binaries: http://aap.papnet.eu/gta/rwconv.zip
and here is the source https://github.com/aap/librwhttps://github.com/aap/librwgta
I usually don't remember what I changed since the last versions, so just let it surprise you.
Also do note that I wrote these tools for my personal use, don't expect them to be perfect in every regard. They do what I needed them to.
The version of the file written will be the same as the input by default (unless you set the version explicitly with the -v switch, see this for information on RW versions: http://www.gtamoddin...wiki/RenderWare).
- Instancing means converting the platform independent geometry data into a platform specific format that can be saved to a dff file (these dff files are called pre-instanced because instancing no longer happens at runtime). This is done in the PS2 and mobile games starting with VC and all xbox games. d3d8 and d3d9 pre-instanced geometry is not used by the games by default but the game should be able to read such dffs.
- Uninstancing is something the original RenderWare engine cannot do, but which librw can: it means converting the platform specific geometry back into a platform independent format again.
The -u and -i switches tell convdff to uninstance or instance a dff (note that not everything has been tested an implemented yet, expect bugs or problems).
Even non-instanced can be platform-specific (the -o switch sets the output platform, d3d8 being the default). Most noticeably ADC optimized geometry on the PS2 (to improve tristripping) and custom vertex formats on the xbox.
Example: to convert a ps2 file into the platform independent format and write it as version 188.8.131.52 use it as
convdff.exe -u -v 33002 input.dff output.dffTo pre-instance a file into xbox format:
convdff.exe -i -o xbox intput.dff output.dffI will implement more features in the future but the basic conversions should be working. I don't guarantee all conversions will work, i can't test everything. Please report bugs or unexpected behaviour.
- files with multiple clumps are not supported (everything after the first clump is ignored).
- uninstancing Xbox night normals is not supported yet
- instancing and uninstancing of SA mobile dffs is not (completely?) implemented yet.
This thing converts, extracts and creates txds.
Check the usage for how to use it.
These convert files from LCS and VCS respectively (dff, txd, mdl, chk, whatever, but no levels yet). VCS peds don't work yet because the hierarchy is f*cked and has to be reconstructed.