From: Fred <fr...@sp...> - 2008-01-30 10:52:50
|
Hi Jonathan, On 30/01/2008, at 1:35, Jonathan Needle wrote: > In the TZX rendering code that handles the pauses after blocks > there's also > a comment: > > // 31/04/2004: Added this because it's in the TZX spec and now, in > conjunction with > // the polarity changes made for 'basil the great mouse detective' > and > 'the mask', > // 'La Abadia Del Crimen' now works :) > m_nPauseCountDown = TSTATESPERMSEC * 3; > > Not sure whether this is a hack or not tbh, but the above would > basically > keep the edge constant during a pause block for 3ms before going > 'low'. The > TZX Format has this: > > A 'Pause' block consists of a 'low' pulse level of some duration. To > ensure > that the last edge produced is properly finished there should be at > least 1 > ms. pause of the opposite level and only after that the pulse should > go to > 'low'. At the end of a 'Pause' block the 'current pulse level' is > low (note > that the first pulse will therefore not immediately produce an > edge). A > 'Pause' block of zero duration is completely ignored, so the > 'current pulse > level' will NOT change in this case. This also applies to 'Data' > blocks that > have some pause duration included in them. This is likely the case - I converted the Albadia TZX to a WAV using libspectrum which failed to load at standard speed on EightyOne and Spin. Using Spin to convert the Albadia TZX to a CSW produces a file that loads properly in Fuse. Thanks very much for the tip, Fred |