Skip to content

Latest commit

 

History

History
71 lines (58 loc) · 6.48 KB

File metadata and controls

71 lines (58 loc) · 6.48 KB

PakFu Support Matrix

This matrix is the user-facing support contract for current archive, preview, and conversion behavior. It complements docs/DEPENDENCIES.md, which is the implementation inventory.

Status labels:

  • Fixture-backed: covered by the generated support-matrix-fixtures test.
  • Implementation-backed: implemented in source and listed here, but not yet covered by a dedicated fixture or real-world corpus test.
  • Backend-dependent: support depends on Qt Multimedia, platform codecs, or an external runtime component.
  • Read-only: open/list/extract/preview behavior is supported, but save or rebuild is intentionally not exposed.

Run the matrix fixtures with:

meson test -C builddir support-matrix-fixtures

The fixtures are generated at test time from tiny synthetic payloads, so the repository does not need copyrighted game assets to verify the core contract.

Archive And Container Formats

Type Extensions Open/List Extract Save/Rebuild Evidence
Folder input directory path Yes Yes N/A Fixture-backed directory tree
PAK pak Yes Yes Yes Fixture-backed PACK archive and PakArchive::save_as copy
SiN archive sin Yes Yes Yes Fixture-backed SPAK archive and PakArchive::save_as copy
ZIP family zip, pk3, pk4, pkz Yes Yes Yes Fixture-backed PK3 via ZipArchive::write_rebuilt
Quake Live Beta encrypted PK3 pk3 (XOR-obfuscated) Yes Yes Yes Fixture-backed encrypted PK3 encode/decode via ZipArchive::write_rebuilt
Doom 3 BFG resources resources Yes Yes No Fixture-backed resources container; read-only backend
WAD2 wad, wad2 Yes Yes Yes Fixture-backed WAD2 via WadArchive::write_wad2
WAD3 wad3 Yes Yes No Fixture-backed WAD3 texture lump; read-only backend
Doom IWAD/PWAD wad Yes Yes No Fixture-backed PWAD lump; read-only backend

Preview, Inspector, And Conversion Formats

Area Formats Current status Evidence
Core image preview pcx, wal, png, tga, jpg, jpeg Supported TGA decode and PCX encode/decode are fixture-backed; PNG/JPEG use Qt; WAL requires a 256-color Quake II palette
Additional image preview bmp, gif, tif, tiff, swl, m8, m32, mip, lmp, dds, ftx Supported M8 and M32 are fixture-backed; other loaders are implementation-backed built-ins or Qt image readers; M8/SWL use embedded palettes, M32 stores RGBA, and mip-capable formats expose mip previews
Image conversion input/output Inputs: all image preview formats listed above. Outputs: png, jpg, bmp, gif, tga, tiff, pcx, wal, swl, mip, lmp, ftx, dds Supported Shared GUI/CLI backend; conversion-palette covers palette remap, alpha index handling, embedded TGA palette extraction, and PCX conversion; remaining combinations are implementation-backed
Palette conversion Adaptive, Quake gfx/palette.lmp, Quake II pics/colormap.pcx, embedded PCX/TGA/SWL/M8/MIP/LMP, active game default Supported Perceptual nearest-color remapping with optional dithering plus transparent/fullbright index protection; fixture-backed by conversion-palette
Audio playback wav, ogg, mp3, idwav Supported Backend-dependent playback; IDWAV is converted to WAV for supported embedded codecs
Audio conversion idwav -> wav; wav, ogg, mp3 copy/metadata fallback Supported IDWAV decode is built in; backend-only formats copy through unless a built-in decoder exists
Built-in cinematics cin, roq Supported Implementation-backed built-in decoders
Cinematic/video conversion cin, roq -> PNG/JPG frame sequence plus optional WAV audio; backend videos copy/metadata fallback Supported Shared conversion backend uses built-in CIN/ROQ decoders; backend-only video formats copy through
Backend video playback bik, ogv, mp4, mkv, avi, webm Supported when codecs are available Backend-dependent Qt Multimedia playback
Models mdl, md2, fm, md3, mdc, md4, mdr, skb, skd, mdm, glm, iqm, md5mesh, tan, obj, lwo, blwo Supported FM and BLWO are fixture-backed; other loaders are implementation-backed; FM resolves Heretic II .m8/.m32 skins; BLWO preserves Doom 3 BFG material names
BSP/map preview bsp, proc Supported Heretic II native IBSP and converted QBSP BSPs are fixture-backed; Quake/Quake II/Quake III-family loaders are implementation-backed; idTech4 .proc render geometry is fixture-backed and uses companion .mtr material hints when available
BSP/map conversion Quake/Hexen II/Quake II-family bsp -> map; Quake III-family bsp -> map; Doom IWAD/PWAD MAP##/E#M# groups -> UDMF/TEXTMAP .map Supported Best-effort draw-geometry decompile plus entity-lump export for BSPs; Doom map lump grouping/export is implementation-backed with source attribution
idTech4 map inspection map, proc Supported Fixture-backed synthetic .map source summaries and .proc render-description summaries; .map source remains text/metadata inspection
idTech sprite/assets spr, sp2, spr2, bk, os Supported BK/OS are fixture-backed; SPR/SP2 are implementation-backed animated previews and metadata views
idTech inspectors dm2, aas, qvm, progs.dat, tag, mdx, mds, skc, ska, ttf, otf, fontdat Supported .fontdat parser/rendering is fixture-backed; remaining metadata/insight views are implementation-backed
Text and script assets cfg, config, rc, arena, bot, skin, shader, menu, def, mtr, map, proc, ent, qc, and similar plain text Supported Implementation-backed text preview with syntax highlighting for common script/config families; .map adds source-map summaries and .proc adds render-geometry summaries

Game Installation Profiles

Area Current status Evidence
Heretic II gamepack auto-detection Supported Fixture-backed by game-auto-detect; recognizes full-install base/htic2-*.pak, root-level htic2-*.pak, base/book, base/ds, and common executable/folder aliases

Maintenance Rules

When a row changes, update this document, the README summary, and the support-matrix-fixtures test when synthetic fixtures can prove the claim. Formats that require copyrighted game samples or large real-world corpora should remain marked as implementation-backed until a redistributable corpus exists.