ARC File Documentation


Summary

An ARC Compressed Archive is a bundle of files squeezed into one container, in a format created in 1985 by System Enhancement Associates (SEA) for the bulletin-board era. Its extension is .arc and its MIME type is application/x-arc. Extract it free with PeaZip or IZArc on Windows, or The Unarchiver on Mac; 7-Zip does not reliably open classic .arc. The same extension is reused by unrelated formats, so if it will not open, check where the file came from.

Technical details

FeatureValue
Full nameARC Compressed Archive (SEA ARC)
File extension.arc
MIME typeapplication/x-arc
Format typeLegacy lossless compressed archive (binary container)
DeveloperSystem Enhancement Associates (SEA)
Introduced1985 (BBS-era archiver)
Historical roleDirect ancestor of ZIP
Compression methodsStored, packed (RLE), squeezed (Huffman), crunched/squashed (LZW)
Byte orderLittle-endian (MS-DOS)
Archive marker1A introduces the archive and each member
Member header29 bytes: method, 13-char name, sizes, DOS date, 16-bit CRC
End-of-archive1A 00
Integrity check16-bit CRC per member
Open standardPartial — documented by reverse engineering; format obsolete
Extract withPeaZip, IZArc (Windows); The Unarchiver, Keka (Mac); nomarch (Linux)
7-Zip supportNo — does not reliably open classic ARC
Related extensions.zip, .arj, .lzh, .lha, .7z
Referencefileformats.archiveteam.org/wiki/ARC_(compression_format)
File signature (magic bytes)
1A <method>

Offset 0. A classic SEA ARC file begins with the byte 0x1A followed by a one-byte compression-method code (for example 1A 08). There is no longer text signature. The same 0x1A + method-byte pair introduces every member file inside the archive, and the whole archive ends with 1A 00 (a method byte of zero, which is never a real member). Identify an ARC by this header together with where the file came from, since the .arc extension is reused by unrelated formats.

What is an ARC file?

ARC is one of the oldest archive formats in computing. It was created in 1985 by System Enhancement Associates (SEA) and became hugely popular on dial-up bulletin board systems (BBS), because it combined compression and multi-file archiving in a single tool at a time when those were separate steps. An .arc file is a container: it bundles several files into one and compresses them, so a whole set of programs or documents could be downloaded as a single, smaller file over a slow modem.

The classic ARC is lossless but uses dated compression methods, and the format is effectively obsolete today. You mostly meet a real .arc when handling old software archives, BBS downloads, or retro-computing material, so the practical question is almost never “how do I create an ARC” but “how do I extract this old one I was given”. ARC also has a place in history as a direct ancestor of ZIP: the ZIP format was created partly in response to a well-known legal dispute between SEA and PKWARE over ARC in the late 1980s.

The archive layout: members and the end marker

An ARC file has a simple, flat structure with no central index. It is a sequence of zero or more archive members (one per stored file) laid end to end, followed by an end-of-archive marker. There is no separate directory at the start or the end; a reader walks the file member by member, and to list the contents it must read every header in turn.

[ member 1 : header + compressed data ]
[ member 2 : header + compressed data ]
...
[ member N : header + compressed data ]
1A 00                                    <- end-of-archive marker

Each member begins with the byte 0x1A, the same value that marks the very start of the archive. The archive ends when a reader encounters 0x1A followed by a method byte of 0x00: since zero is never a valid compression method, that pair unambiguously signals the end. This design means an ARC can be read in one forward pass, but it cannot be indexed or seeked the way a ZIP central directory allows.

The per-member header, field by field

Every member starts with a fixed 29-byte header describing the file that follows. After the 0x1A marker, the fields are, in order:

OffsetSizeField
0x001Archive marker 0x1A
0x011Compression method (1–9)
0x0213File name (8.3, null-padded)
0x0F4Compressed size (bytes)
0x134File date and time (MS-DOS format)
0x17216-bit CRC checksum
0x194Original (uncompressed) size

All multi-byte integers are little-endian, following the MS-DOS platform ARC grew up on. The name is a classic DOS 8.3 name in a 13-byte field. The date and time are packed into the standard MS-DOS format (a bit-field where the year is stored as an offset from 1980). The 16-bit CRC lets an extractor verify a member against corruption, which mattered a great deal when files arrived over noisy phone lines. Immediately after the header comes the member’s compressed data, exactly compressed size bytes long, after which the next member’s 0x1A marker begins.

The compression-method byte

The single method byte at offset 0x01 selects how that member’s data was packed, and different files in the same archive can use different methods. The methods form a rough historical progression as SEA improved the tool:

MethodTechnique
StoredNo compression — raw bytes
PackedRun-length encoding of repeated bytes
SqueezedHuffman coding (optionally after packing)
CrunchedLZW dictionary compression (several sub-variants)
SquashedLater LZW variant with a larger dictionary

An extractor reads the method byte, applies the matching decompressor to the following compressed size bytes, and checks the result against the stored CRC and original size. The LZW-based “crunched” and “squashed” methods are the same family of dictionary compression that later formats built on, but the exact bitstream is ARC-specific, which is why a modern tool needs dedicated ARC support rather than a generic inflate.

Extracting a classic .arc

On Windows the free PeaZip has the broadest legacy-ARC coverage — right-click the file and Extract — and IZArc is a long-standing free alternative. On macOS, The Unarchiver and Keka both handle classic ARC. On Linux, the nomarch or classic arc command-line packages unpack SEA-format archives. One common trap is worth stating plainly: 7-Zip does not reliably open classic ARC, despite handling almost everything else, so reach for PeaZip or IZArc instead. There is no reason to keep a fragile old archive in a fading format — the sensible move is to extract it and re-compress the files to ZIP or 7z, which every current OS opens natively. That is an extract-then-repack, not a direct transcode.

Other formats that reuse the .arc extension

The single biggest source of “why won’t my .arc open” confusion is that the extension is heavily overloaded, and these formats are unrelated to the SEA archive:

  • FreeArc archive — a high-ratio archiver by Bulat Ziganshin (around 2006). Its files start with the ASCII tag ArC plus a version byte, not 0x1A; development has stopped. It needs the FreeArc tool, not an ARC extractor.
  • Internet Archive ARC — a web-crawl container that stores many fetched web resources in one file, the text-header predecessor of the WARC format. It needs a WARC/ARC web-archive reader.
  • Game data archive — many games (from Capcom, Nintendo tooling and others) ship a proprietary .arc data container that only that game’s modding tools understand.

If PeaZip or IZArc reject a file, it is very likely one of these rather than a classic SEA archive; identify it by its first bytes and by where it came from.

Frequently asked questions

How do I open an ARC file?

On Windows use the free PeaZip or IZArc (right-click, Extract). On Mac use The Unarchiver or Keka. Avoid 7-Zip for classic ARC — it does not reliably support the format. PeaZip has the widest legacy-ARC coverage.

Does 7-Zip open ARC files?

Not reliably. 7-Zip does not fully support the legacy SEA ARC format. Use PeaZip or IZArc, which are built to read old ARC archives.

Is ARC the same as ZIP?

ARC is an older ancestor of ZIP — in fact a legal fight over ARC helped bring ZIP into existence. It does the same job of compressing and bundling files, but with dated methods and no central index, and it is obsolete today. Extract it and switch to ZIP or 7z.

References