← Back to Projects

GHMTexTool

A command-line texture extraction and re-importing tool for the PC ports of Killer7 and No More Heroes 1/2, reverse engineering four proprietary archive formats with help from the modding community.

GHMTexTool

What did I do?

  • Reverse-engineering custom file formats
  • Learning about the DDS image file format and about GCT0 (Nintendo's proprietary texture file format from the Wii)

The tool extracts and re-imports textures from the PC ports of Killer7, No More Heroes and No More Heroes 2: Desperate Struggle, targeting four proprietary archive formats: .bin, .dat, .sti and .jmb.

Below I’ve embedded a video with an example of usage for the tool:

How It Works

The core challenge was understanding undocumented binary file formats with no official documentation. Most of the format knowledge came from researching the Killer7 and No More Heroes modding community on Discord, where community members had already documented parts of the file structure and were willing to help fill in the gaps. Two existing open-source tools, SutandoTsukai181’s No More Hashes gist and Venomalia’s Dolphin Texture Extraction tool, also served as important references.

Extraction reads raw texture data out of the archives and writes it as standard DDS files. Re-importing reverses this, writing the modified DDS data back into the original archive at the correct offsets. A separate extraction mode generates MurmurHash-tagged filenames, placing the output directly into the format expected by Killer7’s texture replacement folder for easy mod testing. For No More Heroes .bin GCT0 files specifically, a fix-and-hash pass strips 16 trailing empty bytes and applies the correct hash before converting to DXT1 DDS.

The tool is built with CMake and runs on both Windows and Linux.

GitHub Repository

GHMTexTool