1*e949ce9dSXin LI 2*e949ce9dSXin LI#------------------------------------------------------------------------------ 3*e949ce9dSXin LI# $File: sf3,v 1.1 2025/06/27 15:13:53 christos Exp $ 4*e949ce9dSXin LI# sfr: SF3 [Simple File Format Family] files 5*e949ce9dSXin LI# (Yukari Hafner, shinmera@tymoon.eu) 6*e949ce9dSXin LI# 7*e949ce9dSXin LI# Reference: https://shirakumo.org/docs/sf3 8*e949ce9dSXin LI# Samples: https://shirakumo.org/projects/sf3/tree/master/samples/ 9*e949ce9dSXin LI 10*e949ce9dSXin LI0 name SF3-archive 11*e949ce9dSXin LI>0 ulequad x \b, %llu files 12*e949ce9dSXin LI!:mime application/x.sf3-archive 13*e949ce9dSXin LI 14*e949ce9dSXin LI0 name SF3-audio 15*e949ce9dSXin LI>0 ulelong >1 \b, %dHz 16*e949ce9dSXin LI>4 ubyte >0 \b, %d channels 17*e949ce9dSXin LI>5 byte 0x01 \b, A-law 18*e949ce9dSXin LI>5 byte 0x02 \b, 16-bit signed PCM 19*e949ce9dSXin LI>5 byte 0x04 \b, 32-bit signed PCM 20*e949ce9dSXin LI>5 byte 0x08 \b, 64-bit signed PCM 21*e949ce9dSXin LI>5 byte 0x11 \b, u-law 22*e949ce9dSXin LI>5 byte 0x12 \b, 16-bit unsigned PCM 23*e949ce9dSXin LI>5 byte 0x14 \b, 32-bit unsigned PCM 24*e949ce9dSXin LI>5 byte 0x18 \b, 64-bit unsigned PCM 25*e949ce9dSXin LI>5 byte 0x22 \b, half-float PCM 26*e949ce9dSXin LI>5 byte 0x24 \b, single-float PCM 27*e949ce9dSXin LI>5 byte 0x28 \b, double-float PCM 28*e949ce9dSXin LI!:mime audio/x.sf3 29*e949ce9dSXin LI 30*e949ce9dSXin LI0 name SF3-image 31*e949ce9dSXin LI>0 ulelong >0 \b, %d 32*e949ce9dSXin LI>4 ulelong >0 \bx%d 33*e949ce9dSXin LI>8 ulelong >0 \bx%d 34*e949ce9dSXin LI>12 byte 0x01 \b, grayscale 35*e949ce9dSXin LI>12 byte 0x02 \b, grayscale-alpha 36*e949ce9dSXin LI>12 byte 0x03 \b, RGB 37*e949ce9dSXin LI>12 byte 0x04 \b, RGBA 38*e949ce9dSXin LI>12 byte 0x12 \b, grayscale-alpha 39*e949ce9dSXin LI>12 byte 0x13 \b, BGR 40*e949ce9dSXin LI>12 byte 0x14 \b, ABGR 41*e949ce9dSXin LI>12 byte 0x24 \b, ARGB 42*e949ce9dSXin LI>12 byte 0x34 \b, BGRA 43*e949ce9dSXin LI>12 byte 0x44 \b, CMYK 44*e949ce9dSXin LI>12 byte 0x54 \b, KYMC 45*e949ce9dSXin LI>13 byte 0x01 \b, 8-bit signed 46*e949ce9dSXin LI>13 byte 0x02 \b, 16-bit signed 47*e949ce9dSXin LI>13 byte 0x04 \b, 32-bit signed 48*e949ce9dSXin LI>13 byte 0x08 \b, 64-bit signed 49*e949ce9dSXin LI>13 byte 0x11 \b, 8-bit unsigned 50*e949ce9dSXin LI>13 byte 0x12 \b, 16-bit unsigned 51*e949ce9dSXin LI>13 byte 0x14 \b, 32-bit unsigned 52*e949ce9dSXin LI>13 byte 0x18 \b, 64-bit unsigned 53*e949ce9dSXin LI>13 byte 0x22 \b, half-float 54*e949ce9dSXin LI>13 byte 0x24 \b, single-float 55*e949ce9dSXin LI>13 byte 0x28 \b, double-float 56*e949ce9dSXin LI!:mime image/x.sf3 57*e949ce9dSXin LI 58*e949ce9dSXin LI0 name SF3-log 59*e949ce9dSXin LI>0 leqdate x \b, from %s 60*e949ce9dSXin LI>8 leqdate x \b, to %s 61*e949ce9dSXin LI>16 uleshort x \b, %d chunks 62*e949ce9dSXin LI!:mime application/x.sf3-log 63*e949ce9dSXin LI 64*e949ce9dSXin LI0 name SF3-model 65*e949ce9dSXin LI>(2.l+22) ulelong x \b, %d face indices 66*e949ce9dSXin LI>>&(&-20.l*4) ulelong x \b, %d vertex attributes 67*e949ce9dSXin LI!:mime model/x.sf3 68*e949ce9dSXin LI 69*e949ce9dSXin LI0 name SF3-physics-model 70*e949ce9dSXin LI>0 lefloat x \b, %f kg 71*e949ce9dSXin LI>40 uleshort x \b, %d shapes 72*e949ce9dSXin LI!:mime model/x.sf3-physics 73*e949ce9dSXin LI 74*e949ce9dSXin LI0 name SF3-table 75*e949ce9dSXin LI>0 uleshort x \b, %d columns 76*e949ce9dSXin LI>10 ulequad x \b, %llu rows 77*e949ce9dSXin LI!:mime application/x.sf3-table 78*e949ce9dSXin LI 79*e949ce9dSXin LI0 name SF3-text 80*e949ce9dSXin LI>8 ulelong x \b, %d markup options 81*e949ce9dSXin LI>(0.q+28) ulequad x \b, %llu bytes of text 82*e949ce9dSXin LI!:mime application/x.sf3-text 83*e949ce9dSXin LI 84*e949ce9dSXin LI0 name SF3-vector-graphic 85*e949ce9dSXin LI>0 ulelong >0 \b, %d 86*e949ce9dSXin LI>4 ulelong >0 \bx%d 87*e949ce9dSXin LI>8 ulelong x \b, %d instructions 88*e949ce9dSXin LI!:mime image/x.sf3-vector 89*e949ce9dSXin LI 90*e949ce9dSXin LI# Generic SF3 Header 91*e949ce9dSXin LI0 string \x81SF3\x00\xE0\xD0\x0D\x0A\x0A SF3 92*e949ce9dSXin LI>10 byte 0x01 archive 93*e949ce9dSXin LI>>16 use SF3-archive 94*e949ce9dSXin LI>10 byte 0x02 audio file 95*e949ce9dSXin LI>>16 use SF3-audio 96*e949ce9dSXin LI>10 byte 0x03 image file 97*e949ce9dSXin LI>>16 use SF3-image 98*e949ce9dSXin LI>10 byte 0x04 log file 99*e949ce9dSXin LI>>16 use SF3-log 100*e949ce9dSXin LI>10 byte 0x05 3D model 101*e949ce9dSXin LI>>16 use SF3-model 102*e949ce9dSXin LI>10 byte 0x06 physics model 103*e949ce9dSXin LI>>16 use SF3-physics-model 104*e949ce9dSXin LI>10 byte 0x07 table 105*e949ce9dSXin LI>>16 use SF3-table 106*e949ce9dSXin LI>10 byte 0x08 text file 107*e949ce9dSXin LI>>16 use SF3-text 108*e949ce9dSXin LI>10 byte 0x09 vector graphic 109*e949ce9dSXin LI>>16 use SF3-vector-graphic 110*e949ce9dSXin LI>10 byte >9 file of unknown type (%d) 111*e949ce9dSXin LI!:mime application/x.sf3 112*e949ce9dSXin LI!:ext sf3 113