SFe 4.0 Release Candidate 3 #99
Closed
sylvia-leaf
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
SFe 4.0 Release Candidate 3 (4.0-rc3)
This time I know it's for real
This isn't Donna Summer, but it's been decided that Release Candidate 3 will be the final version. There will no longer be changes. We've checked through the specification and everything is all good.
Adding the diagrams
We've added 12 figures (named figures 1 through 12) throughout the specification. These visually describe a wide variety of concepts from versioning to file structure. Like
SFSPEC24.PDF, they are also accessible from the table of contents, which has recently been reintroduced (thanks to spessasus!).Rewriting some parts of the specification to make it easier to read
Now, it is very easy to understand how the bank select logic required by SFe works. It starts with a structure that is split into subsections about how to use bank select MSB, the split of
wBankinto two, and using multiple percussion banks. Then, we added diagrams showing the structure of SFe banks in the file format. Finally, we added flowcharts to describe the process of selecting banks in SFe compared to that of legacy SF2.04.Additionally, we consolidated a few more references to UTF-8 fields being used into one section.
The copyright and trademark disclaimers have also been moved to the beginning of the document, to make it more prominent. We want to make sure that users understand more clearly about these topics.
Because of these rewrites, section numbers have changed since RC2, so please ensure that the section numbers match.
SFSpecTest and feature flags
By using the open source SF spec test program by mrbumpy409, an SF author with more than 20 years of experience, and also the author of GeneralUser GS, one of the most legendary banks ever, you can determine whether your program is compliant with not only legacy SF2.04, but also basic elements of SFe.
We've added descriptions of all the tests that SFSpecTest does and the feature flags that correspond to each of the tests. The feature flags have also been modified to correspond more closely to the SFSpecTest tests. We also clarified that feature flag branches
F0toFFare private-use and may be used however you want, but reserved branches/leaves are not to be used as they are planned to be used in a future version.ISO-8601 and ICRD sub-chunk
As you might know, the
ICRDsub-chunk stores the creation date of an SFe or legacy SF2.04 bank. The problem is that it was initially intended for library management systems to allow sorting of banks according to creation date, but with internationalisation being more and more of a concern, program logic to handleICRDvalues in different languages becomes more and more complicated.To solve this issue, SFe now enforces a requirement for all
ICRDvalues to be a valid ISO-8601 date, or a date and time. Library management systems in SFe programs can now check for such a date format, and then sort banks like that, without having to worry about different date and time formats that may have appeared in legacy SF2.04 banks.64-bit chunk headers and versioning
The
wMajorvalue is also once again equal to4when a 64-bit chunk header is detected. This means that programs can no longer rely on thewMajorvalue being greater than2to detect SFe Compression. Instead, programs must look for the compression bit insfSampleTypeto detect the presence of SFe Compression.Introducing SiliconSFe
The RC3 specification also includes SiliconSFe, the implementation of the SiliconSF format described in section 11 of
SFSPEC24.PDF. The SiliconSF format was never adopted by other hardware vendors, and the documentation provided by Creative/E-mu was very ambiguous.By analysing Creative's implementation of SiliconSF, we've written up a more detailed specification that attempts to describe how Creative intended the SiliconSF format to be used. Note that the implementation is different from the pure sample blobs that seem to have been used in the AWE ROMs.
About future plans
In two weeks, we will be doing a lot to prepare SFe for release.
We will not release SFe 4.1 until there is at least one program supporting SFe 4.0 (level 1), because we want to make sure that the SFe specification remains still for enough time for software developers to target a specific version. However, development will be starting on not only SFe 4.1, but also SFe 5, the first version not to be 100% compatible with SFe 4 and legacy SF2.04.
We will have the first SFe 4.1 draft milestone (4.1.1) available in February, because work on the major features is already completed and the feature freeze has been done. The feature freeze for SFe 4.2 will be happening shortly after 4.1 starts development, so if you have any ideas for features that we could add in SFe 4.2, please submit them soon!
A recap of future versions:
DMODandPNMM.prsw, extended MIDI resets, filter upgrades,ISMIandIPRI.IBAG/PBAGoverride.What's Changed
Full Changelog: 4.0-rc2...4.0-rc3
This discussion was created from the release SFe 4.0 Release Candidate 3.
Beta Was this translation helpful? Give feedback.
All reactions