Quantcast
Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
    1. Welcome to GTAForums!

    1. GTANet.com

    1. GTA Online

      1. Los Santos Tuners
      2. Updates
      3. Find Lobbies & Players
      4. Guides & Strategies
      5. Vehicles
      6. Content Creator
      7. Help & Support
    2. Red Dead Online

      1. Blood Money
      2. Frontier Pursuits
      3. Find Lobbies & Outlaws
      4. Help & Support
    3. Crews

    1. Red Dead Redemption 2

      1. PC
      2. Help & Support
    2. Red Dead Redemption

    1. Grand Theft Auto Series

      1. St. Andrews Cathedral
    2. GTA VI

    3. GTA V

      1. Guides & Strategies
      2. Help & Support
    4. GTA IV

      1. The Lost and Damned
      2. The Ballad of Gay Tony
      3. Guides & Strategies
      4. Help & Support
    5. GTA San Andreas

      1. Guides & Strategies
      2. Help & Support
    6. GTA Vice City

      1. Guides & Strategies
      2. Help & Support
    7. GTA III

      1. Guides & Strategies
      2. Help & Support
    8. Portable Games

      1. GTA Chinatown Wars
      2. GTA Vice City Stories
      3. GTA Liberty City Stories
    9. Top-Down Games

      1. GTA Advance
      2. GTA 2
      3. GTA
    1. GTA Mods

      1. GTA V
      2. GTA IV
      3. GTA III, VC & SA
      4. Tutorials
    2. Red Dead Mods

      1. Documentation
    3. Mod Showroom

      1. Scripts & Plugins
      2. Maps
      3. Total Conversions
      4. Vehicles
      5. Textures
      6. Characters
      7. Tools
      8. Other
      9. Workshop
    4. Featured Mods

      1. Design Your Own Mission
      2. OpenIV
      3. GTA: Underground
      4. GTA: Liberty City
      5. GTA: State of Liberty
    1. Rockstar Games

    2. Rockstar Collectors

    1. Off-Topic

      1. General Chat
      2. Gaming
      3. Technology
      4. Movies & TV
      5. Music
      6. Sports
      7. Vehicles
    2. Expression

      1. Graphics / Visual Arts
      2. GFX Requests & Tutorials
      3. Writers' Discussion
      4. Debates & Discussion
    1. Announcements

      1. GTANet 20th Anniversary
    2. Support

    3. Suggestions

OpenRPF (actually open)


Xplorer
 Share

Recommended Posts

Download: on GitHub

Warning: Alpha software.

Notice: You can export files with a double click and open folders. You can't navigate back without closing the tool. You can't export the whole archive.

 

This is just going to be another tool to extract RPF archives. Don't expect too much. It's going to be open source tho unlike some other mods.

Currently I'm documenting RPF0 to learn the format from the ground up. I'm nearly finished, there's just one thing about the TOC related to directories that I'm unsure about, but that's just a matter of time and research.

I am aware that RPF2 is already publicly documented here, but RPF0 is somewhat different and imho needs a proper doc and a proper tool. Maybe we'll be able to see table tennis characters in RDR2 at some point lol.

RPF0 and RPF1 were used both in Rockstar Games Presents Table Tennis. the first game based on RAGE.

 

So here's my research:

First of all the Wii and Xbox360 version differ, cause only the Xbox360 version seems to be using RAGE file formats - so the Wii version is kinda irrelevant for me.

 

Header:

 

Quote

 

4 bytes - STRING - RPF version

4 bytes - INT32 - TOC size.

4 bytes - INT32 - Count of all contained objects - root ("/") is included in this!!!

4 bytes - INT32 - Unknown. - always 0

4 bytes - INT32 - Unknown. - always 0

 

 

TOC (after 2048 bytes):

 

Structure for Directory:
 

Quote

 

3 bytes - INT24 - Offset of the first character in the filesystementry-name-section (name finishes when byte = 0)

1 byte - BOOL - Is it a directory ("80") or a file ("00")?

4 bytes - INT32 - Offset of the first filesystementry (related to TOC entries) in the directory

4 bytes - INT32 - Count of filesystementries in the directory

4 bytes - INT32 - Count of filesystementries in the directory (always the same value for some reason - I even have an idea why)

 

 

Structure for File:

Quote

 

3 bytes - INT24 - Offset of the first character in the filesystementry-name-section (name finishes when byte = 0)

1 byte - BOOL - Is it a directory ("80") or a file ("00")?

4 bytes - INT32 - Offset of data in the file (from 0)

4 bytes - INT32 - Size of the file inside the RPF

4 bytes - INT32 - Uncompressed size - if it differs from above than the file is compressed using zlib (without a deflate header.)  

 

 

After the last filesystementry, so exactly after (2048+(Count of all contained objects - root ("/") is included in this!!! * 16) the filesystementry-name-section starts.
It usually looks a little like this:

screenshot2.png

 

Then the TOC ends. After that there are just the binary data where the files are stored in.

Edited by Xplorer
Link to comment
Share on other sites

Okay, that's it. I just figured the last thing about directories out (by accident) and will now code a tool to extract the RPFs. Stay tuned.

Link to comment
Share on other sites

b75e9c-1573511566.png

 

RPF0 reading classes: Implemented.
Exporting files: Implemented.
Opening folders in the tool: Implemented.
Drag an RPF on the executable to load at startup: Implemented.

However... UI is based on WindowsForms w/ .NET Core and that's in development right now. So it will take a little time til the UI will be kinda usable (menus, right-click menus, categories, scaling, ...)

  • Like 1
Link to comment
Share on other sites

Will there be MCLA RPF3* support?

 

EDIT: Cannot get it to run. Have both Core and Desktop installed. It just won't open.

Edited by CarsonGT
Link to comment
Share on other sites

8 hours ago, CarsonGT said:

Will there be RPF3 support?

 

EDIT: Cannot get it to run. Have both Core and Desktop installed. It just won't open.

Yes. At some point in the future.

Make sure you downloaded the .exe, the .dll and both of the.json files and they are all placed in the same directory. After that it should run. Next time, I'll just distribute a .zip file with all necessary files lol


====

 

Update: I'm now checking out rage-pp by indilo53 (RAGE C++ lib) and might contribute my findings soon to his library. In that case I'll probably use his lib in the future for this project,,. We'll see,

Edited by Xplorer
Link to comment
Share on other sites

  • 4 weeks later...

I just fixed another issue with the exporter ignoring the end of the files to be exported. It's working now as intended.
The framework was also updated to .NET Core 3.1 to make use of the Windows Forms GUI. You need to update to 3.1, too. Links provided at GitHub 🙂

Edited by Xplorer
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
 Share

  • 1 User Currently Viewing
    0 members, 0 Anonymous, 1 Guest

×
×
  • Create New...

Important Information

By using GTAForums.com, you agree to our Terms of Use and Privacy Policy.