Sustainability of Digital Formats: Planning for Library of Congress Collections

Introduction | Sustainability Factors | Content Categories | Format Descriptions | Contact
Format Description Categories >> Browse Alphabetical List

HFE (HxC Floppy Emulator) File Format

>> Back
Table of Contents
Format Description Properties Explanation of format description terms

Identification and description Explanation of format description terms

Full name HFE (HxC Floppy Emulator) File Format
Description

The HFE (HxC Floppy Emulator) File Format is designed for use with the SD HxC Floppy Emulator hardware, which is based on the PIC18F family of microcontrollers. This format serves as an optimized floppy image format, encompassing both the floppy disk image and crucial metadata. The metadata, stored in the file's header (the initial 512 bytes), includes information such as the number of tracks, the valid "side" of the disk, track encoding method, bitrate, rotations per minute, floppy interface mode, floppy write protection mode, and other encoding flags.

The HFE file format comprises three essential components: the header, the track offset Look-Up Table (LUT), and the track data. The file header spans 512 bytes, the track offset LUT can be up to 1024 bytes, and the track data has an open size. The header encapsulates vital details about the file, defining its structure and encoding.

As stated in the specification, a track data is essentially a table containing the bitstream of a track from the floppy disk. This track data can employ various encoding methods, including Modified Frequency Modulation (MFM), Frequency Modulation (FM), Group Coded Recording (GCR), or custom encoding. Each track is divided into blocks of 512 bytes, with each block containing a portion of both Side 0 and Side 1 tracks, and these blocks alternate in the track data.

Production phase Middle-state. End-state, as it is also used for archival purposes.

Local use Explanation of format description terms

LC experience or existing holdings The Library of Congress includes HFE files in its collections, especially in the Manuscripts and Music Divisions as well as other personal papers repositories.
LC preference The Library of Congress has not yet expressed any format preference for forensic or disk image files.

Sustainability factors Explanation of format description terms

Disclosure

Documentation about the format structure and its variants is available on HFE HxC Floppy Emulator file format specifications with a high level description of changes between the versions. Comments welcome.

    Documentation

SDCard HxC Floppy Emulator HFE File format, Rev.1.1. 06/20/2012 and HFE HxC Floppy Emulator file format, Rev.3.1 - 05/22/2019 (which also covers the high level changes between earlier versions). See more details at HFE HxC Floppy Emulator file format specifications. Source code for multiple versions are available on Jean-François Del Nero's HxCFloppyEmulator GitHub repo. Comments welcome.

Adoption

HxC software boasts "tens of thousands" of installations according to its official website. While specific statistics on the file format are not provided, it is known that this file format is utilized by various applications beyond the HxC Floppy Emulator Project.

Notably, the file format is employed by GoTek, a floppy emulator hardware, as well as FlashFloppy, which serves as floppy emulator software specifically designed for GoTek. Additionally, it finds application in Clock Signal (CLK), an emulator catering to 8-bit and 16-bit computers; beebjit, an emulator tailored for the BBC 8-bit microcomputer; and B-em, as indicated by a pull request highlighting the addition of HFE support. This establishes the widespread and diverse usage of the file format across different emulation platforms and hardware.

Comments welcome.

    Licensing and patents Open-source with no related patents. Comments welcome.
Transparency Limited transparency. HFE is dependent upon floppy emulator hardware and requires algorithms and tools to read.
Self-documentation

The HFE file format comprises three essential components: the header, the track offset Look-Up Table (LUT), and the track data. The file header spans 512 bytes, the track offset LUT can be up to 1024 bytes, and the track data has an open size. The header encapsulates vital details about the file, defining its structure and encoding.

As stated in the specification, a track data is essentially a table containing the bitstream of a track from the floppy disk. This track data can employ various encoding methods, including Modified Frequency Modulation (MFM), Frequency Modulation (FM), Group Coded Recording (GCR), or custom encoding. Each track is divided into blocks of 512 bytes, with each block containing a portion of both Side 0 and Side 1 tracks, and these blocks alternate in the track data.

HFE self-identifies with Magic Numbers.

External dependencies Is read by floppy disk emulator software.
Technical protection considerations No encryption.

Quality and functionality factors Explanation of format description terms


File type signifiers and format identifiers Explanation of format description terms

Tag Value Note
Filename extension hfe
See: specification and source code.
Magic numbers ASCII: HXCPICFE
Hex: 4858435049434645
See: specification. This is the official magic numbers string for Version 1.1 (potentially Version 1.0). Comments welcome.
Magic numbers ASCII: HXCHFEV3
Hex: 4858434846455633
From Wikidata (v3): https://www.wikidata.org/wiki/Q105857317
Pronom PUID See note.  PRONOM has no corresponding entry as of January 2023.
Wikidata Title ID Q105857177
HxC Floppy Emulator stream image: https://www.wikidata.org/wiki/Q105857177
Wikidata Title ID Q105857311
HxC Floppy Emulator disk image: https://www.wikidata.org/wiki/Q105857311
Wikidata Title ID Q105857317
HxC Floppy Emulator disk image (v3): https://www.wikidata.org/wiki/Q105857317

Notes Explanation of format description terms

General  
History

HFE was developed by Jean-Francois Del Nero in 2006 to load legacy video games from Atari ST and Amiga machines, which required floppy disks. The project grew organically from user requests and now supports “hundreds of machines and floppy formats”.

Del-Nero’s purpose in HFE’s development was to “completely replace the floppy disk drive by an electronic device”. The hardware is available as an SD Card, a USB drive, and what it describes as "advanced firmware."

The official website also includes firmware schematics and emulator software.

HFE has several versions:

  • 29 November 2010 - v1.0 : Initial version.
  • 20 June 2012 - v1.1 : Add single_step, track0s0/1_altencoding and track0s0/1_encoding header fields.
  • 8 July 2012 - v2.0 : Add opcodes support in stream (HFEv2).
  • 4 August 2017 - v3.0 : Opcodes redefinition/redesign.
  • 22 May 2019 - v3.1 : Add weakbits support on HFEv3.

Format specifications Explanation of format description terms


Useful references

URLs


Last Updated: 10/03/2024