3 ms·
Summary of the Fuzzy bits part that I found super interesting: To detect an original from a copy, the game was reading a particular sector several time ensurin
by netgusto 7y ago
Summary of the Fuzzy bits part that I found super interesting:
To detect an original from a copy, the game was reading a particular sector several time ensuring it got different bit values for this sector at least some of the times.
Original floppy copies of the game contain these "fuzzy" sectors. As the floppy drive in consumer machine was not able to write such fuzzy sectors, an illegal copy could be spotted by the game by simply checking that every read of this supposedly fuzzy sector was yielding always the same sequence of bits (that was determined when read by the floppy drive making the illegal copy in the first place).
Now how can a sector yield different values for every read ? Some bit cells of the fuzzy sector were (purposedly) temporally mis-aligned; coupled to the micro-variations of the read speed of the floppy drive at every read, this yielded different sequence of bits on consecutive reads.
- userbinator 7y agoThe pattern of misalignment is also very clever too; instead of simply putting "halfway" bits with a timing right at the boundary, it varies the bit timing over the whole window: http://dmweb.free.fr/files/Game_Chaos.Strikes.Back_UK_Version.2.1.Track.0.Sector.7_Screenshot.png http://dmweb.free.fr/files/Game_Chaos.Strikes.Back_UK_Versio... I wonder if a pattern like this would also be useful as a "jitter check" --- which bits change and the statistics of their values over many reads could show how closely aligned the drive mechanism is. A "perfect" drive would yield an average value of those bits of 0.5, with any asymmetry in the timing causing the average values to increase or decrease from that.
- tomxor 7y ago> I wonder if a pattern like this would also be useful as a "jitter check" --- which bits change and the statistics of their values over many reads could show how closely aligned the drive mechanism is. Maybe this type of global synchronisation was built into the FDC? You don't need fuzzy bits to detect this, at the most basic level the PLL keeps the local stream of bitcells in sync in the current sector... the deltas (as a side effect of the sync) could be used to calculate an average and change the global expected timing of the window - as it collects more deltas it would converging on the global difference between the physical characteristics of the drive and the disc timings (i.e ultimately the difference between the drive that wrote it and the drive reading it). If the FDC failed to read a sector due to PLL synchronisation (would that result in an invalid MFM encoding sequence?), then it could attempt to read other sectors to gather more delta samples and obtain more accurate expected timings before trying again. Since the fuzzy bit trick still produced valid MFM sequences i suppose this type of functionality would not get the drive stuck in that case.
- foobarian 7y agoThe schemes I ran into as a kid used bad sectors as the proof of authenticity - literally the medium had a hole punched in it.
- michaelcampbell 7y agoThis SORT of thing was pretty common copy protection on Ataris. "I'm told" the 1050 "dual density" disk drives had a potentiometer on it that could be adjusted to vastly speed up or slow down the drive. That, combined with software to tell "you" when, could be used to purposely mis-copy sectors to a destination floppy to replicate the effect.