Spark

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
m (Change telparia.com samples link to template)
 
(9 intermediate revisions by 4 users not shown)
Line 8: Line 8:
 
== Format details ==
 
== Format details ==
 
The format is an incompatible variant of [[ARC (compression format)|ARC]]. The most obvious differences from ARC are that the high bit of the ''compression method'' byte is set, and the member file header has an additional 12 bytes, for RISC OS file attributes. Subdirectories are possible, in a way, by storing them as nested Spark archives.
 
The format is an incompatible variant of [[ARC (compression format)|ARC]]. The most obvious differences from ARC are that the high bit of the ''compression method'' byte is set, and the member file header has an additional 12 bytes, for RISC OS file attributes. Subdirectories are possible, in a way, by storing them as nested Spark archives.
 +
 +
=== Compression methods ===
 +
Spark uses a subset of [[ARC (compression format)|ARC]]'s compression methods, with the same numbering scheme (taking the compression method to be the low 7 bits of the compression byte). It adds one method of its own ("compressed").
 +
 +
It's not completely clear which compression methods are supposed to be allowed in Spark format. Here are the methods supported by ''nspark'', which claims to support all methods supported by ''!Spark for UNIX'' 1 and 2, as well as method 9.
 +
 +
{| class="wikitable"
 +
! ID (8-bit) !! ID (7-bit) !! Name !! Description and remarks
 +
|-
 +
|<code>0x80</code> or <code>0x00</code> || 0 || End-of-archive marker ||rowspan="6"| Refer to [[ARC (compression format)#Compression methods|ARC]] for more information.
 +
|-
 +
|<code>0x81</code> || 1 || Uncompressed
 +
|-
 +
|<code>0x82</code> || 2 || Uncompressed
 +
|-
 +
|<code>0x83</code> || 3 || Packed
 +
|-
 +
|<code>0x88</code> || 8 || Crunched
 +
|-
 +
|<code>0x89</code> || 9 || Squashed
 +
|-
 +
|<code>0xff</code> || 127 || Compressed || [[LZW]]. Like method #8, but does not use RLE, and has a configurable maximum code size up to 16 bits.
 +
|}
  
 
== Software ==
 
== Software ==
 +
* [https://www.riscosopen.org/wiki/documentation/show/Software%20information:%20SparkFS%20(self-extracting) SparkFS]
 +
* [https://armclub.org.uk/products/arcfs/ ArcFS]
 
* [https://github.com/mjwoodcock/nspark nspark] - a tool to catalogue and unpack Spark archives (in source code form)
 
* [https://github.com/mjwoodcock/nspark nspark] - a tool to catalogue and unpack Spark archives (in source code form)
* [http://www.svgalib.org/rus/nomarch.html nomarch] v1.3+ can unpack Spark archives.
+
* [http://www.svgalib.org/rus/nomarch.html nomarch] v1.3 can unpack Spark archives.
 +
* [https://github.com/mjwoodcock/riscosarc/ RISC OS de-archiver]
 
* [https://www.davidpilling.com/riscos.html], [https://www.davidpilling.com/free.html] → Spark, SparkPlug
 
* [https://www.davidpilling.com/riscos.html], [https://www.davidpilling.com/free.html] → Spark, SparkPlug
 +
* {{Deark}}
 +
* [http://xmp.sourceforge.net/ xmp]
  
 
== Sample files ==
 
== Sample files ==
 
* Many of the files at [http://www.arcade-bbs.net/filepages/findex.htm The Arcade BBS Filebase] ([ftp://www.arcade-bbs.net/ ftp])
 
* Many of the files at [http://www.arcade-bbs.net/filepages/findex.htm The Arcade BBS Filebase] ([ftp://www.arcade-bbs.net/ ftp])
** E.g. [http://www.arcade-bbs.net/filepages/file77.htm Sprite Picture files] → [ftp://www.arcade-bbs.net/data/027500/028850/028864 level1]
+
** E.g. [http://www.arcade-bbs.net/filepages/file77.htm Sprite Picture files] → {{ArcadeBBSLink|028864|level1}}
 +
* {{DexvertSamples|archive/acornSpark}}
  
 
[[Category:RISC OS]]
 
[[Category:RISC OS]]

Latest revision as of 02:55, 28 December 2023

File Format
Name Spark
Ontology
Extension(s) .spk, .arc

Spark (Acorn Spark compressed archive) is a type of compressed file archive traditionally found on RISC OS systems, with file type DDC (Archive). Created by SparkFS, these archives were often used to transfer data in a form that could be unpacked by the freely redistributable SparkPlug tool.

Contents

[edit] Format details

The format is an incompatible variant of ARC. The most obvious differences from ARC are that the high bit of the compression method byte is set, and the member file header has an additional 12 bytes, for RISC OS file attributes. Subdirectories are possible, in a way, by storing them as nested Spark archives.

[edit] Compression methods

Spark uses a subset of ARC's compression methods, with the same numbering scheme (taking the compression method to be the low 7 bits of the compression byte). It adds one method of its own ("compressed").

It's not completely clear which compression methods are supposed to be allowed in Spark format. Here are the methods supported by nspark, which claims to support all methods supported by !Spark for UNIX 1 and 2, as well as method 9.

ID (8-bit) ID (7-bit) Name Description and remarks
0x80 or 0x00 0 End-of-archive marker Refer to ARC for more information.
0x81 1 Uncompressed
0x82 2 Uncompressed
0x83 3 Packed
0x88 8 Crunched
0x89 9 Squashed
0xff 127 Compressed LZW. Like method #8, but does not use RLE, and has a configurable maximum code size up to 16 bits.

[edit] Software

[edit] Sample files

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox