Skip to content

Section 9: SiliconSFe and the AWE ROM emulator

9.1 SiliconSFe overview

While we are unaware of any shipping products using the SiliconSF system found in SFSPEC24.PDF (the AWE cards used an early predecessor of SiliconSF), you can use ROM samples formatted in the SiliconSF format with SFe. However, SiliconSFe support is explicitly optional. (Update 5)

9.2 Header format

9.2.1 About the header format

The SiliconSFe header format is almost identical to legacy SF2.04, however an explanation is provided here due to poor documentation of SiliconSF.

Here is the SiliconSFe header format:

typedef struct romHdrType{
    DWORD romRiffHdr;
    DWORD romByteSize;
    CHAR romInterleaveIndex;
    CHAR romRevision[3];
    CHAR romVer[4];
    SHORT bankChecksum;
    SHORT bankChecksum2sComplement;
    CHAR bankSFeVersion;
    CHAR bankProduct[16];
    BYTE bankSampleCompType;
    CHAR filler1[2];
    CHAR bankStyle[16];
    CHAR bankCopyright[80];
    DWORD romSFeBankStart;
    DWORD romSineWaveStart;
    DWORD filler2[124];
    SHORT sampleSineWave[SINEWAVESIZE];
} romHdr;

9.2.2 romRiffHeader

In SiliconSFe, it is defined as the FourCC used by the chunk header type used by the integrated SF bank, for example RIFF, RIFS, RIFD, etc. (Update 17)

In the legacy SF2.04 specification, this is named romRsrc and was declared by Creative as “unused”. The name in SiliconSFe more accurately describes its usage.

9.2.3 romByteSize

This is an UNSIGNED DWORD value with the size of the SiliconSFe ROM blob in bytes. It is limited to 4 GiB in SiliconSFe 1.0. Signed integers are prohibited.

9.2.4 romInterleaveIndex

This is used for interleaved ROMs. You can interleave up to 256 ROMs with one SiliconSFe blob.

In the legacy SF2.04 specification, this is named interleaveIndex.

9.2.5 romRevision

This is a revision identifier as an integer. It is 3 bytes long and is independent of the version number found in romVer.

In the legacy SF2.04 specification, this is named revision.

9.2.6 romVer

This corresponds to the iver value in the integrated SF bank.

In the legacy SF2.04 specification, this is named id and is erroneously listed as corresponding to the irom value. The name in SiliconSFe more accurately describes its usage.

9.2.7 bankChecksum

This stores the CRC-16(ARC) checksum of the integrated SF bank.

In the legacy SF2.04 specification, this is named checksum.

9.2.8 bankChecksum2sComplement

This stores the twos-complement of the value found in bankChecksum.

In the legacy SF2.04 specification, this is named checksum2sComplement.

9.2.9 bankSFeVersion

This value should be the same as the wSFeSpecMajorVersion value in the SFvx sub-chunk in SFe, and the same as the wMajor value in the ifil sub-chunk in non-SFe. For an unknown or other format, this value is 0.

In the legacy SF2.04 specification, this is named bankFormat and was declared by Creative as “unused”.

9.2.10 bankProduct

This is a UTF-8 string that stores the product name (conventionally SiliconSFe).

In the legacy SF2.04 specification, this is named product.

9.2.11 sampleCompType

For the purpose of SiliconSFe, this value is 1 if any kind of sample precompensation is used, and 0 otherwise.

In the legacy SF2.04 specification, Creative said that it indicates the type of sample precompensation that is used in the SiliconSF blob.

9.2.12 bankStyle

This is a UTF-8 string that describes the musical style of the contents of the integrated SF bank.

In the legacy SF2.04 specification, this is named style.

9.2.13 bankCopyright

This is a UTF-8 string that stores copyright information about the SiliconSFe blob.

In the legacy SF2.04 specification, this is named copyright.

9.2.14 romSFeBankStart

This stores the location in the SiliconSFe blob where the integrated SF bank starts.

In the legacy SF2.04 specification, this is named sampleStart. The name in SiliconSFe more accurately describes its usage.

9.2.15 romSineWaveStart

This stores the location in the SiliconSFe blob where the test sine wave sample starts.

In the legacy SF2.04 specification, this is named sineWaveStart.

9.2.16 sampleSineWave

This contains SHORT values that correspond to a sine wave sample.

In the legacy SF2.04 specification, this is named sineWave.

9.3 AWE ROM emulator

9.3.1 Introducing the AWE ROM emulator

Except for when size concerns prohibit its inclusion, SFe players should include an AWE ROM emulator.

  • The AWE ROM emulator includes 152 samples.
  • The file size should be 1MB, as all samples should be to the same standard as the original.
  • Samples which the program developer has the right to use can be used as a replacement for the original ROM samples.
  • Freely-usable reference implementation samples are available, but are not intended for production use.
  • Sample names will remain the same, but there will be acceptable alias names.
  • Emulators should also be able to open up SF files (either legacy SF or SFe) containing samples and metadata.
  • There may or may not be instruments or presets.

9.3.2 ROM emulator sample specification

Number Original Sample Name Acceptable Aliases Sample length Loop points Description
1 acbasse1 Acoustic Bass E1 1535 1408-1530
2 accordax2 Accordion A#2
Accordian A#2
620 566-616 Either spelling is acceptable
3 accordfx2 Accordion F#2
Accordian F#2
1049 979-1044 Either spelling is acceptable
4 accordfx3 Accordion F#3
Accordian F#3
858 794-854 Either spelling is acceptable
5 acgtrb3 Acoustic Guitar B3 6241 6168-6236
6 acgtrg2 Acoustic Guitar G2 4882 4800-4877
7 agogolotone Agogo Low Tone
Agogo Bell
4467 7-4463
8 applause Applause 8161 7-8156
9 arcocelloax2 Arco Cello A#2 847 799-842
10 arcocellod2 Arco Cello D2 1200 1127-1195
11 arcoviolinc3 Arco Violin C3 1767 1702-1762
12 arcoviolinc4 Arco Violin C4 1634 1569-1629
13 arcovioline3 Arco Violin E3 1086 1035-1081
14 arcoviolingx2 Arco Violin G#2 1732 1691-1727
15 arcoviolingx3 Arco Violin G#3 1075 1032-1070
16 asaxc2 Alto Sax C2 1150 1054-1145
17 asaxc4 Alto Sax C4 1191 1130-1186
18 asaxd3 Alto Sax D3 696 643-691
19 asaxe2 Alto Sax E2 1228 1150-1223
20 asaxf3 Alto Sax F3 910 863-905
21 asaxg2 Alto Sax G2 1639 1567-1634
22 bagpipedrna Bag Drone A1
Bag Drone
1921 1764-1913 Based on name in 8MB E-mu bank
23 banjod3 Banjo D3 3583 3540-3579
24 banjog2 Banjo G2 2850 2784-2845
25 bassguitloop Bass Guitar Loop 125 9-120
26 bassoonc2 Bassoon C2
Bassoon
1059 938-1053 Only sample of that instrument
27 bd15 Bass Drum
Kick Drum
1603 7-1599
28 belltree Bell Tree 7466 6263-7461
29 bockclave Claves 1774 7-1770
30 brasssectc3 Brass Section C3 5600 5533-5595
31 brasssectf5 Brass Section F5 5581 4989-5035
32 bsawtoothwavea3 Sawtooth Wave Sample
Bass SawtoothWave A3
Bass Sawtooth Wave
70 15-65 Real time synthesis activated without “Sample” suffix
33 cabasastrk Cabasa 2679 7-2675 Based on name in 8MB E-mu bank
34 chanterax1 Bagpipe A#1
Bagpipe
Chanter A#1
Chanter
1858 1802-1850 Based on name in 8MB E-mu bank
Only sample of that instrument
35 chcrash China Crash Cymbal 9700 6162-9695 Based on name in 8MB E-mu bank
36 clarinetb2 Clarinet B2 701 586-695
37 clarinetd2 Clarinet D2 677 596-671
38 clavc2 Clav C2
Clav
2985 2836-2980 Only sample of that instrument
39 coldglass7wave Tinkle Bell Wave 1
Tinker Bell Wave 1
70 17-65 The alias is because of its use in the 1MB E-mu bank.
Either spelling is acceptable
40 coldglass12wave Tinkle Bell Wave 2
Tinker Bell Wave 2
91 15-86 The alias is because of its use in the 1MB E-mu bank.
Either spelling is acceptable
41 contraviobass Contrabass 1443 1302-1438
42 cowbell Cowbell 1760 7-1756
43 crash5 Crash Cymbal 13534 8024-13529
44 distgtra2 Distortion Guitar A2
Dist Gtr A2
1832 1745-1827 Based on name in 8MB E-mu bank
45 distgtra3 Distortion Guitar A3
Dist Gtr A3
1243 1195-1238 Based on name in 8MB E-mu bank
46 distgtrd4 Distortion Guitar A4
Dist Gtr A4
1766 1593-1761 Based on name in 8MB E-mu bank
47 distgtre3 Distortion Guitar E3
Dist Gtr E3
1432 1372-1427 Based on name in 8MB E-mu bank
48 dlcmrc3 Dulcimer C3
Dulcimer
3835 3778-3830 Only sample of that instrument
49 ebongostone H Bongo Rim 3204 7-3200 Based on name in 8MB E-mu bank
50 elguitard2 Electric Guitar D2
Electric Guitar
1481 1401-1476 Only sample of that instrument
51 enghorndx3 English Horn D#3
English Horn
1540 1479-1534 Only sample of that instrument
52 epiano2ms E Piano 2 1173 1120-1168 Only sample of that instrument
53 femalevoiceg2 Female Voice G2
Female Voice
8759 338-8755 Only sample of that instrument
54 filtersnap Filter Snap 420 7-414
55 floortombrite Floor Tom
Acoustic Tom
7172 5236-7167 Based on name in 8MB E-mu bank
56 flutec4 Flute C4 1432 1365-1427 Only sample of that instrument
57 frenchhorng4 French Horn G4
French Horn
1485 1420-1480 Only sample of that instrument
58 fretlessa2 Fretless Bass A2
Fretless Bass
2341 2165-2336 Only sample of that instrument
59 glockloopc4 Glockenspiel C4
Glockenspiel
Glockenspiel Loop
216 7-211 Only sample of that instrument
60 gsbassd2 Finger Bass D2
Finger Bass
905 750-900 Only sample of that instrument
61 guiro2 Guiro Up 2764 7-2759 Based on name in 8MB E-mu bank
62 guirodown Guiro Down 2648 7-2644
63 guitar1 Bandoneon 140 69-135 The alias is because of its use in the 1MB E-mu bank.
64 guitarfret Guitar Fret
Fret Noise
3572 7-3567 Based on name in 8MB E-mu bank
65 gunshot Gun Shot 5396 7-5392 Based on name in 8MB E-mu bank
66 harmguitard3 Guitar Harmonics D3
Guitar Harmonics
GtrHarmonics D3
344 298-338 Based on name in 8MB E-mu bank
Only sample of that instrument
67 harmonicaa3 Harmonica A3
Harmonica
974 915-969 Only sample of that instrument
68 harpsichordc3 Harpsichord C3
Harpsichord
1391 1294-1386 Only sample of that instrument
69 hatopenms Open High Hat 11710 5828-11705 Based on name in 8MB E-mu bank
70 hrmnmutec3 Harmon Mute C3 1485 1420-1481
71 hrmnmutec4 Harmon Mute C4 903 840-898
72 htrumpetax3 Trumpet A#3 1663 1602-1658
73 htrumpetc3 Trumpet C3 1653 1598-1648
74 htrumpetd2 Trumpet D2 1674 1628-1669
75 htrumpetf3 Trumpet F3 1497 1454-1492
76 htrumpetg2 Trumpet G2 1636 1598-1631
77 jazzguitloop Jazz Guitar
Jazz Guitar Loop
119 9-114
78 kotod3 Koto D3
Koto
5709 5666-5704 Only sample of that instrument
79 kpianob1 Piano B1 17232 10655-17227
80 kpianob4 Piano B4 25217 15428-25212
81 kpianob5 Piano B5 5399 2963-5394
82 kpianocx4 Piano C#4 21574 21506-21569
83 kpianodx5 Piano D#5 6146 6093-6141
84 kpianof5 Piano F5 6980 6848-6974
85 kpianof5 #02 Piano F5#02 6980 4148-4202
86 kpianog2 Piano G2 22131 17637-22127
87 lefone Telephone 1585 8-1577 Based on name in 8MB E-mu bank
88 lowtumba Low Tumba Tone 4022 7-4018 Based on name in 8MB E-mu bank
89 maracas Maracas 3254 7-3250
90 marimbac3 Marimba C3
Marimba
817 788-812 Only sample of that instrument
91 mbongotone M Bongo Tone 2724 7-2720 Based on name in 8MB E-mu bank
92 mgtr Muted Guitar
Gtr Mute
836 766-831 Based on name in 8MB E-mu bank
93 nguitb2 Nylon Guitar B2
N Guitar B2
5193 5125-5188 Based on name in 8MB E-mu bank
94 nguitf2 Nylon Guitar F2
N Guitar F2
3829 3727-3824 Based on name in 8MB E-mu bank
95 oboeax3 Oboe A#3 998 958-992
96 oboecx3 Oboe C#3 892 832-886
97 oboefx3 Oboe F#3 1226 1177-1220
98 oboeresynwaved4 Oboe Resynth D4
Oboe Resynth
140 69-135
99 ocarinafx2 Ocarina F#2
Ocarina
1187 1144-1182 Only sample of that instrument
100 octavewave Octave Wave 140 69-135
101 oohvoicec3 Ooh Voice C3
Ooh Voice
9102 35-9097 Only sample of that instrument
102 orchhit2 Orchestra Hit
Orch Hit
4566 7-4562 Based on name in 8MB E-mu bank
103 organ19d4wave Space Voice 140 69-135 The alias is because of its use in the 1MB E-mu bank.
104 organwave Organ Wave
Organ Wave 1
2675 2614-2669
105 organwavea3 Organ Wave A3
Organ Wave 2
2940 2900-2934
106 paisteping Ride Cymbal
Ride Ping
13293 7459-13288 Based on name in 8MB E-mu bank
107 pizzviolinc3 Pizzicato Strings C3
Pizzicato Strings
Pizzicato Violin C3
Pizzicato Violin
Pizz Violin C3
Pizz Violin
1560 1499-1555 Based on name in 8MB E-mu bank
Only sample of that instrument
108 pluckharp Pluck Harp
Harp
3478 3409-3473
109 quicadown Quica Downstroke 1627 7-1623 Based on name in 8MB E-mu bank
110 quintoslap Quinto Slap
QuintoClosedSlap
2923 7-2919 Based on name in 8MB E-mu bank
111 quintotone Quinto Tone 3091 7-3087 Based on name in 8MB E-mu bank
112 recorderax2 Recorder A#2
Recorder
1360 1298-1352 Only sample of that instrument
113 resynth4d4wave Bowed Glass D4
Bowed Glass
140 69-135 Only sample of that instrument
114 rhodeschime E Piano 1 Chime 284 7-279
115 rideping Ride Bell 6034 3614-6029 Based on name in 8MB E-mu bank
116 sambawhistle Samba Whistle 1687 1121-1673
117 sawstackwavems Saw Stack Wave
Saw Stack
13749 289-13745
118 sb2 Slap Bass 2 2464 2345-2459
119 scratch Scratch 1661 7-1657
120 shakua2 Shakuhachi A2
Shakuhachi
7468 2085-7463 Only sample of that instrument
121 sikue2 Siku E2
Siku
Bottle Blow E2
Bottle Blow
5314 7-5310 Only sample of that instrument
122 sinetick Sinetick 73 7-68
123 sinewave Sine Wave Sample 140 69-135 Real time synthesis activated without “Sample” suffix
124 sitardx4 Sitar D#4
Sitar
2316 2275-2311 Only sample of that instrument
125 slapbass1c3 Slap Bass 1 C3
Slap Bass 1
2121 1817-2115 Only sample of that instrument
126 snare24 Snare 3877 7-3873
127 squarewave Square Wave Sample 2427 2365-2420 Real time synthesis activated without “Sample” suffix
128 ssaxdx4 Soprano Sax D4
Soprano Sax
1189 1136-1184 Only sample of that instrument
129 steeldrum Steel Drum
SteelDrum
2898 2857-2891 Based on name in 8MB E-mu bank
130 stix Drum Stick
Side Stick
370 7-366 Based on name in 8MB E-mu bank
131 stringsdx4 Strings D#4 10727 3098-10722
132 stringsf3 Strings F3 8647 3415-8642
133 stringsg2 Strings G2 9309 2609-9304
134 synthbassloop Synth Bass Loop
Synth Bass
441 8-435
135 synthstringsc4 Synth Strings C4
Synth Strings
9967 1272-9962 Only sample of that instrument
136 tamborine Tambourine
Brass Tambourine
3604 2157-3585 Based on name in 8MB E-mu bank
137 tbelld4wave Tubular Bell D4
Tubular Bell
Tubular Bell Wave D4
Tubular Bell Wave
5417 4829-5412 Only sample of that instrument
138 timpani Timpani
Timp Drum
7699 7079-7695 Based on name in 8MB E-mu bank
139 triangle Triangle
Triangle Wave
2069 336-2064 Based on name in 8MB E-mu bank
140 troma3 Trombone A3 1334 1275-1329
141 tromb2 Trombone B2 1331 1232-1326
142 tromd4 Trombone D4 1121 1074-1116
143 tromg4 Trombone G4 1569 1504-1564
144 tubaax1 Tuba A#1
Tuba
1964 1831-1960 Only sample of that instrument
145 verbclickwave Reverb Click Wave 1208 7-1204
146 vibese2 Vibes E2
Vibes
782 696-777 Only sample of that instrument
147 vibraloop Vibra Loop 788 9-783
148 voxdodo Doo
Voice Oohs
3059 2999-3054 Based on name in 8MB E-mu bank
149 whitenoisewave White Noise Sample 8294 7-8289 Real time synthesis activated without “Sample” suffix
150 woodblock Wood Block 1164 7-1160
151 xyloe4looped Xylophone E4
Xylophone
Xylo Unlooped E4
Xylo Unlooped
XylophoneUnlooped E4
Xylophone Unlooped
980 7-976 Only sample of that instrument
152 xyloe4unlooped Xylo Looped E4
Xylo Looped
Xylophone Looped E4
Xylophone Looped
980 7-976 Only sample of that instrument

Sample specification is fixed at 44.1khz Mono with no links and tuning at 60 with no fine-tuning. You can either use discrete samples, or create your own SiliconSFe ROM containing the emulator samples.