Skip to content
DenGameRUPublic

About

A Delphi asset extractor utility to analyze and unpack proprietary sector-based .HOG and .FOG resource containers from the PlayStation 1 game Syphon Filter 3 (2001).

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

Repository files navigation

Syphon Filter 3 (PS1) HOG & FOG Resource Extractor (SF3UNP)

A specialized Delphi utility engineered to analyze the binary file allocation tables and extract assets from the proprietary .HOG and .FOG container archives used by the legendary PlayStation 1 game Syphon Filter 3 (2001).

Features

  • PS1 Sector-Based FOG Extractor: Automatically handles disc-native memory layouts, multiplying raw offset integers by the hardware standard $800 (2048-byte CD-ROM sectors) to correctly isolate asset blocks from specific level mission setups.
  • Dynamic HOG Pointer Mapping: Reads structured index headers (FileCount, TableOffs, NamesOffs, DataStart) to safely navigate massive main resource splits containing textures, level assets, and weapon models.
  • Stream-Driven Null Row Traversal: Loops character streams sequentially (repeat ... until Ch = #0) to collect resource strings of dynamic sizes without running into out-of-bounds pointer crashes.
  • Auto Data Boundary Resolution: Automatically calculates relative file capacities on the fly by subtracting current address markers from preceding index values (Offsets[i+1] - Offsets[i]).

Archive Layout Maps

1. FOG Layout Structure (Fixed 18-File Mission Config Block)

  • Offset 0x10: Start of the allocation frame.
  • Per File Entry (28 bytes total):
    • 20 bytes: Char string resource filename array.
    • 4 bytes: Launch sector address descriptor (fOffset).
    • 4 bytes: Total data size in sectors (fSize).

2. HOG Layout Structure (Dynamic Asset Pack Container)

  • Bytes 0–3: Format Header / Flags.
  • Bytes 4–7: Internal total item index capacity (FileCount).
  • Bytes 8–11: Memory table pointer address location (TableOffs).
  • Bytes 12–15: Row names index string start position (NamesOffs).
  • Bytes 16–19: Initial starting point location for binary media blocks (DataStart).

Usage

  1. Compile the tool in Delphi 7 and execute the program.
  2. Click Unpack FOG to target level scene bundles, or click Unpack HOG to select primary system content archives from the game disc.
  3. The extractor will compile directories named exactly after your targeted file next to the binary, automatically dumping the underlying content blocks inside.

Original Credits

Developed by DenGame. Released under an open-source initiative to preserve legacy PlayStation 1 reverse-engineering and modding tooling history.

About

A Delphi asset extractor utility to analyze and unpack proprietary sector-based .HOG and .FOG resource containers from the PlayStation 1 game Syphon Filter 3 (2001).

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages