Skip to content

A graphical tool made for GTA to Unpack/Repack .fxc files

License

Notifications You must be signed in to change notification settings

gtasnail/fxc-converter

Repository files navigation

FXC Converter

FXC Converter Logo

Unpack and repack .fxc shader files for Grand Theft Auto 5 with ease

FeaturesInstallationUsageScreenshotsExample ShadersLicenseContributing

Features

🔧 Unpack .fxc Files: Extract embedded shader files from .fxc containers.

📦 Repack .fxc Files: Repack .fxc files with modified shader data, applying custom patches.

🖥️ User-Friendly GUI: Simple and intuitive interface using egui and eframe.

🎮 GTA 5 Compatible: Designed specifically for working with Grand Theft Auto 5 shader files.

Installation

Pre-built Binaries

Download the latest release from our GitHub Releases page.

Building from Source

  1. Clone the repository:

    git clone https://github.com/gtasnail/fxc-converter.git
    cd fxc-converter
  2. Build the project:

    cargo build --release
  3. Run the application:

    cargo run --release

Usage

Click here to watch the video

Unpacking FXC Files

  1. Click "📁 Select FXC File" to choose an .fxc file.
  2. Select an output folder for the unpacked shaders.
  3. Click "🚀 Unpack" to start the extraction process.
  4. View results and logs in the UI.

Tip: Use HLSL Decompiler to convert o# files to HLSL for rebuilding with FXC.

Packing FXC Files

  1. Click "📁 Select FXC File" to choose the base .fxc file.
  2. Click "📁 Select Patch File" to choose a patch file (your compiled .cso file).
  3. Enter the shader patch offset (e.g., 13025 would be the offset from directional.o13025 for example).
  4. Select an output folder for the new .fxc file.
  5. Click "📦 Pack" to create the new .fxc file.

Screenshots

Main UI

FXC Converter Main UI

Normal Directional Light Rendering (Example POC)

Normal Render Normal Render #2

Example Shaders

The /example-shaders/ directory contains example shaders, including a demonstration of normal rendering from the g-buffer in directional.fxc. This can serve as a starting point for your own shader modifications.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Contributing

We welcome contributions, issues, and feature requests! Check out our issues page to get started.

Acknowledgments

  • egui for the graphical user interface.
  • eframe for the application framework.
  • Alweul