View Single Post
Old 24 February 2006, 15:43   #9
obo
 
Posts: n/a
Quote:
Originally Posted by Toni Wilen
Long enough raw track starting from random position and ending to random position is basically everything UAE needs
The 16K read gives 8K of data+clock bits, which gives plenty of overlap on a normal ~6K double-density track. The two drives aren't synced in any way, so the starting point is relatively random. I guess that's fine for the Amiga, but complicates things for lesser controllers that use index-synced formatting.

Quote:
but preferably streamed so there is no need to wait for track and cause emulation slowdowns
The technique relies on switching the drive select to the 2nd drive after initiating a long sector read on the first. It could take up to the full 200ms rotation time to start reading the dummy sector (not including spin-up), and with the OS scatter/gather DMA buffering it'll be a further 256ms before the data is visible in your buffer. I think that rules out live use in WinUAE, unless there's another way to hold off the program using the drive. It's much easier with most higher-level controllers as you can indicate you're busy until you're done reading the track.

Quote:
(nice extra would be timing info for some copy protections)
The data is read in DMA mode, so there isn't much timing information to provide. I could probably give a reasonable indication of an index-relative starting position and overall track length, but a seamless wrap will need to be determined by something that understands the track contents better.

Quote:
btw, doing decoding and adf-conversion is easy, just rip decoding code from uae or my rawread-utility (ADDED) I can do raw->adf-conversion utility quickly, I only need new enough driver (64-bit) and pointers to examples.
Great! I'll package up a test driver and sample utility (+source) over the weekend, which should hopefully be all you need as input to your utility.

Si
 
 
Page generated in 0.04264 seconds with 11 queries