Skip to content

Add ACE archive support (read-only, stored entries)#1050

Closed
Copilot wants to merge 4 commits intomasterfrom
copilot/add-ace-archive-support
Closed

Add ACE archive support (read-only, stored entries)#1050
Copilot wants to merge 4 commits intomasterfrom
copilot/add-ace-archive-support

Conversation

Copy link
Contributor

Copilot AI commented Nov 29, 2025

Adds support for reading ACE archives (version 1.0 and 2.0 formats) as requested in #875. Due to the proprietary nature of ACE compression algorithms, only stored (uncompressed) entries can be extracted.

Changes

  • New types: AceReader, AceEntry, AceEntryHeader, AceFilePart, AceVolume, AceFactory
  • ArchiveType enum: Added Ace value
  • CompressionType enum: Added Ace and Ace2 values for ACE 1.0 and 2.0 compression
  • Factory registration: AceFactory registered for automatic format detection via **ACE** signature at offset 7
  • ACE 2.0 support: Main header parsing for version detection, host OS, solid/multi-volume flags, and recovery record header handling

Usage

using var stream = File.OpenRead("archive.ace");
using var reader = AceReader.Open(stream);

while (reader.MoveToNextEntry())
{
    if (!reader.Entry.IsDirectory)
    {
        reader.WriteEntryToDirectory("output/", new ExtractionOptions { ExtractFullPath = true });
    }
}

Limitations

  • Read-only (no write support)

  • Only stored/uncompressed entries extractable

  • Compressed entries (ACE LZ77 and ACE 2.0 improved LZ77) throw NotSupportedException due to proprietary algorithms

  • No Archive API (reader-only, like Arj)

  • Fixes [Feature Request] ACE archive support #875

Original prompt

This section details on the original issue you should resolve

<issue_title>[Feature Request] ACE archive support</issue_title>
<issue_description>ACE archive support would be nice, especially for version 1 archives as that seems to be better documented. The ArchiveTeam wiki has good resources for ACE archives, including a link to example files and software that is able to extract it. http://fileformats.archiveteam.org/wiki/ACE</issue_description>

Comments on the Issue (you are @copilot in this section)


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot AI and others added 2 commits November 29, 2025 13:20
Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com>
Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com>
Copilot AI changed the title [WIP] Add support for ACE archive format Add ACE archive support (read-only, stored entries) Nov 29, 2025
Copilot AI requested a review from adamhathcock November 29, 2025 13:33
@adamhathcock
Copy link
Owner

@copilot add ACE 2.0 format reading

Co-authored-by: adamhathcock <527620+adamhathcock@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Nov 29, 2025

@copilot add ACE 2.0 format reading

Added ACE 2.0 format reading support in commit f796aa1. Changes include:

  • Main header now parses ACE version (10=1.0, 20=2.0), host OS, solid/multi-volume flags
  • Recovery record headers (ACE 2.0 feature) are properly skipped
  • Added dedicated Ace and Ace2 compression types
  • Updated documentation to reflect both versions

Note: Extraction of compressed entries is still not supported since both ACE 1.0 LZ77 and ACE 2.0 improved LZ77 are proprietary algorithms without public documentation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature Request] ACE archive support

2 participants