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. This is useful when, for example, all data from some point in the buffer should be identical until the next mark, like in this example:

  spmIdent, splDAT, 4,  32, SG_ALL, SG_ALL,   0xff, 0x00, 0x00, 0x00, 1,   0

This particular one means, from offset 4 in the data area of a block check up to 32 bytes or the entire segment until the next mark (whichever is the shorter) to be identical with the first byte present there, and only accept it as a match if the number of bytes are exactly the length of the tested area.

Added an user block type where the resolving is not bound to disk geometry, i.e. completely user defined by the pattern definition parameters. This can be useful in various ways such as having blocks with no headers identified and resolved to arbitrary sizes.

Using the new features it was possible to add patterns for various protections as seen on Flimbo’s Quest, Last Ninja 3, and Icom adventure games (Deja Vu, Uninvited) and they completely resolve now and work under emulation.

Sadly our copy of Uninvited is modified.