Work-In-Progress Reports for July 2008
Analyser - Generic MFM: Encoding Violation Detection, Weak Sectors: Added encoding violation detection pattern to the generic MFM support in the analyser, useful for detecting weak bits. * Support for CPC Speedlock protection using weak sectors. * Support for +3 Speedlock protection using weak sectors. Only one version is supported, as the other would require slightly changing the geometry - which will only be supported with the new solver. (more)
Analyser - Generic MFM: More Formats (Various Systems): Added support for protection on Amstrad CPC Badlands, and several Spectrum titles like wos>Sim City. Alkatraz protection is detected on ST, CPC and Spectrum +3. While technically it resolved to the correct data automatically anyway, it is still nice to see it identified.
Analyser - Generic MFM: 6K Corner Cases: Fixed all special cases for 6k detection.
Analyser - Generic MFM: Track Size Detection: Fixed a special case for track size detection.
Analyser - Generic MFM: "6K" Formats: Added support for all known "6K Formats". Automatic detection of real data size as well as any checksums present, if any. It seems that a fair number of 6K format games containing these do have checksums, despite having been thought otherwise previously. (more)
Analyser - Generic MFM: Undefined Length Type, User Block Type: Introduced a new undefined length type to patterns that automatically resolve to the actual segment length. (more)
Analyser - Generic MFM: New Block Type: Introduced a new block type that allows checking a block without actually allocating it as part of the format.
Analyser - Generic MFM: Pattern Matching Review: Generating disk geometry using the pattern matching works very nicely as expected. The data solver is still in place though, and should be replaced.
Analyser - Generic MFM: Next Steps ===== //2008-07-16// Since the pattern matching is much more reliable (various retries and attempts, finding best data samples, sliding data window and so on) and better at handling complexity than the generic format solver ever was, we might as well get rid off most of the older method and use the pattern matching i: Since the pattern matching is much more reliable (various retries and attempts, finding best data samples, sliding data window and so on) and better at handling complexity than the generic format solver ever was, we might as well get rid off most of the older method and use the pattern matching instead. (more)
Analyser - Generic MFM: Format Pattern Matching: * Format pattern matching is working now. There is no OR mode for complete blocks as it would have introduced unreasonable complexity due to context save and restores required at each check (the analyser needs to modify its internal state according to the valid format description, but should the OR fail the previous state would have to be restored). (more)
Analyser - Generic MFM: Sliding Windows, Mark Checking: * Implemented a sliding window technique for format pattern matching, which tries to find consecutive blocks regardless of where they start. This is necessary as there is no guarantee that track data is synced to the index hole, and therefore checks must be able to support rotation/roll over. (more)
Analyser - Generic MFM: Block Matching: * Changed block pattern matching to take a group as a parameter, since ultimately it ends up processing a group anyway. * Right now, the block matching uses the concept of having a header and a data block pattern, which changes some constraints during the process. This however restricts the way the complexity of the blocks that can be matched in one go. (more)