Kishinskiy / fuse-unecm

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Fuse-unecm is a read-only overlay filesystem to transparently uncompress
indexed ECM files. This allows you to play ECM compressed disk images in
your emulators without first having to uncompress them.

(The index file is to make it possible to seek() in the compressed file
without taking a huge performance hit.)

This package comes with a utility to create an index : 'ecm-index'.


ECM
===
ECM is a fileformat for compressed disk images. It works by removing the ~10%
of a raw disk image that consists of checksums and redundancy codes that can
be re-computed at run-time.
This file format is commonly used for disk-images created for various emulators.
This filesystem allow you to transparently uncompress such files at runtime.


Compiling
=========
gcc -o fuse-unecm fuse-unecm.c libunecm.c -lfuse -ltdb
gcc -o ecm-index ecm-index.c libunecm.c


Create an index file
====================
ecm-index foo.bin.ecm

Which will create the index file foo.bin.ecm.edi
Create index files for all your ECM files!


Mounting an overlay
===================
  fuse-unecm -m <directory>


Unmouning the filesystem
========================
  fusermount  -u <directory>


BGZIP
=====
This overlay filesystem works well together with the FUS-BGZIP filesystem
Combining these two filesystems makes it possible to first compress the disk
image with ECM-COMPRESS and then compress it even further with BGZIP.


Example
=======
Assume we have a directory that contains a .bin.ecm file:

  ls -l test
  total 485548
  -rw-rw-r-- 1 sahlberg sahlberg 497190410 Oct 24  2007 foo.bin.ecm
  -rw-rw-r-- 1 sahlberg sahlberg    132267 Oct 24  2007 foo.bin.ecm.edi
  -rw-rw-r-- 1 sahlberg sahlberg       114 Oct 24  2007 foo.cue

Then mount fuse-unecm ontop of this directory:

  fuse-unecm -m test

And the result becomes:

  ls -l test
  total 485548
  -rw-rw-r-- 1 sahlberg sahlberg 540962352 Oct 24  2007 foo.bin
  -rw-rw-r-- 1 sahlberg sahlberg       114 Oct 24  2007 foo.cue

And you can now point your emulator to foo.bin.

About

License:Other


Languages

Language:C 100.0%