WonderWitch .fx files

From WSdev Wiki
Revision as of 06:19, 15 August 2023 by Asie (talk | contribs) (clarify padding format)
Jump to navigationJump to search

FreyaOS uses XMODEM transfers to send and receive files through the serial port. These transfers do not include any file metadata by default - such as the file's name, size, permissions or creation date. As such, .fx files are used - binary files with a special 128-byte header[1].

Format

Header contents
Offset Length Contents
$00 4 Magic string: #!ws
$04 60 Padding; typically 0xFF.
$40 16 File name; zero-terminated Shift-JIS string.
$50 24 User-friendly file name; zero-terminated Shift-JIS string.

FreyaOS displays the first 12 characters in its file selector.

$68 4 ?
$6C 4 Total file size, in bytes, excluding the header.
$70 2 XMODEM chunk count - above file size divided by 128, then rounded up.
$72 2 File mode
$74 4 Modification time - seconds since January 1st, 2000.
$78 4 ?
$7C 4 Offset to resource data, bytes excluding header; -1 if not present.

File mode



15      bit       0
---- ---- ---- ----
???? ???? ??i? ?rwx
            |   ||+- Execute
            |   |+-- Write
            |   +--- Read
            +------- Intermediate library
  1. XMODEM transfers are performed in 128-byte blocks; this allows fetching the file's metadata as the first block