08 July 2010, 23:02 | #41 | |
electricky.
Join Date: Jun 2010
Location: out in the wild
Posts: 1,256
|
Quote:
Jens |
|
09 July 2010, 02:34 | #42 | |
Fanatically Amiga.
Join Date: Apr 2002
Location: Melbourne, Victoria, Australia
Age: 54
Posts: 1,557
|
Quote:
I am not a programmer so I would not know, but given the Floppy Emulator (HxC ?) now starting to implement copy protected floppy support through IPF, I am sure it supports the proper commands that would be present in a REAL disk, like End of Track/Start of Track data. Winuae Fully supports IPF, HxC supports *SOME* of the protections. |
|
09 July 2010, 07:08 | #43 | |
Registered User
Join Date: Sep 2008
Location: Paris / France
Posts: 656
|
Quote:
Winuae Fully supports IPF. USB HxC Floppy Emulator Fully support IPF (since 25/03/2008). SDCard HxC Floppy Emulator supports *SOME* of the protections (hardware limitation). Last edited by Jeff_HxC2001; 09 July 2010 at 07:16. |
|
09 July 2010, 09:02 | #44 |
Registered User
Join Date: Jul 2004
Location: Germany
Posts: 105
|
Documentation and Access API
@Schoenfeld
Dear Jens, at http://www.softpres.org/download there are the developer informations for Windows, Linux, Mac and Amiga. Here I summarize the links for Windows: Developer Distribution http://www.softpres.org/_media/files...ad&cache=cache http://www.softpres.org/_media/files...ad&cache=cache Access API http://www.softpres.org/_media/files...ad&cache=cache User/Developer Reference Documentation http://www.softpres.org/_media/files...ad&cache=cache As I'm absolutely no developer, I can't guess, if these informations include all the needed details. But if something is missed, you could ask for a certain hint. Could you please explain, what special information or porgram code do you need? and btw with which information perhaps you could support the KryoFlux-project. What's the reason you don't like this USB-solution? Hope to see you in Essen and have one or two beers with you or something else. I would be glad, to communicate with you as one of the last Amiga geniuses. Best regards Dic Btw I like Catweasel and I like KryoFlux. I love to see a cooperation - to offer one futureproof solution to handle easily all types of disks with modern hardware. |
09 July 2010, 10:36 | #45 |
electricky.
Join Date: Jun 2010
Location: out in the wild
Posts: 1,256
|
We're aware of the DLL that softpres has published. However, for writing things back to a disk, it's not an option to re-convert the data for every rotation of the disk. You can only write oncce. In order to use the DLL to create a real disk, I'd have to know which parts are playing around with protection stuff.
I could currently only do that by "reading" multiple rotations and analyzing what I get. So in essence. the information (flux transitions) is there in the file, it'll be encoded through the softpres DLL, then I'd have to decode it, translate it back to physical flux transitions and write it back to disk. This is an error-prone process that could be avoided by adding one function to the softpres DLL: Extract bit stream from a track with a fixed bit rate, fixed start and end (which is also the wrap-around), and we'll do the rest. The HxC floppy emulator for USB does nothing else than the UAE emulator: It gets the data new from the DLL for every single rotation. That's easy to do if you have the freedom to constantly "ask" the DLL what the track looks like "on this rotation". However, writing a disk means that you have to write once and with that single write, create a track that reads different data on every rotation. We know how to do that (within physical limits), but we don't know how to get the information from the IPF image. To be honest, I don't even know if the info is really stored in the IPF, as it's a lot easier to brute-force it in by storing multiple images of a single track. If that's the case, we wouldn't get around the analysis step that I described above. Could someone from the softpres team comment on this? Jens |
09 July 2010, 11:14 | #46 |
Moderator
Join Date: Jan 2003
Location: ...
Age: 52
Posts: 1,838
|
Yes, that is a legacy API, that was supervised a long time ago.
For example generating multiple-revolutions seemed like a good idea at the time (2003?), but once you see games using weak bits that verify each rotation to be different 50 times it's not so good anymore IPF has been designed for writing from the start, so unlike say pasti/stx files how to generate the data is stored in the file - not what comes out of it when reading. In other words: the cause is stored, not the result. The original IPF files have 1 data stream with a low level scripting desicribing logical areas on a track. This for each track. Any new images since multi-platform support has been added (any image starting with #3000 StarGlider 2) have 3 streams describing data, and 2 contexts per logical block. This for any number of blocks per track, for any number of tracks. More details how that works can be read at the WIP reports on our site. |
09 July 2010, 11:18 | #47 | |||
Registered User
Join Date: Sep 2008
Location: Paris / France
Posts: 656
|
Quote:
It's funny because i have just explain this in this thread : http://eab.abime.net/showpost.php?p=683384&postcount=14 Quote:
For example in the HxC Floppy Emulator context you can convert IPF file into AFI (a custom file format) and use AFI file without the need of the caps lib. You can try this with the hxc software: http://hxc2001.free.fr/floppy_drive_...lator_soft.zip Last edited by Jeff_HxC2001; 09 July 2010 at 11:28. |
|||
09 July 2010, 11:54 | #48 |
Moderator
Join Date: Jan 2002
Location: South East / UK
Age: 46
Posts: 1,930
|
Jens, we've now looked into the sampling point you mentioned previously, and we cannot see anything on the read route of a disk drive that would indicate a clock running at 4 MHz. Perhaps this might be the case on the older 8" disk drive you mention, but we don't think that it is true that you are limited to 8 MHz sampling for the majority (if not all) more recent floppy
disk drives. No breaking of Physics required. We need to know what was originally written by a duplicator exactly, not what a normal FDC can read (which is limited by it's clock speed, unlike a disk drive). So we need the high resolution to determine the duplicator's "finger prints" and work out the scripting used - we're not making simple bit images. |
09 July 2010, 14:54 | #49 | |
Registered User
Join Date: Sep 2006
Location: Thunder Bay, Canada
Posts: 4,323
|
Quote:
Hi Jens, I'm curious as to exactly what you want to implement with the ipf format, are you looking to just try to read the ipf images to extract the actual track & sector data or to try to reproduce the non standard data protection too? Is the catweasel hardware in its present form capable of reproducing protections ? |
|
09 July 2010, 15:58 | #50 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,502
|
I don't see any reason why WRITING any kind of protection isn't possible with Catweasel but READING may not be so simple.. (can't read very long pulses, can't read exact position of index pulse, maybe capability to read multiple revolutions without gaps, anything else?)
|
09 July 2010, 16:15 | #51 | |
Fanatically Amiga.
Join Date: Apr 2002
Location: Melbourne, Victoria, Australia
Age: 54
Posts: 1,557
|
Quote:
Okay good to know |
|
09 July 2010, 18:25 | #52 | |
electricky.
Join Date: Jun 2010
Location: out in the wild
Posts: 1,256
|
Quote:
As for reading extremely long pulses, even the old cores can be used to find out if any pulse is triggering the overflow bit. I haven't found a single disk that does, but that may be related to me mostly owning the original programs that were made with my protection. So let's assume you know there's an area of the disk that triggers overflow, then you can re-read it with a higher counter rate and no overflow. Since memory is limited to 128k, very powerful timers have been introduced with the MK4, and they allow precise start and stop points for investigating single windows within a track. Again, these possibilities go beyond the information content of the data stream. Toni, you should have access to the latest Inside_MK4 textfile (over 35kbytes), dated november 27th, 2006. Timers however were introduced in january 2005, and everyone on the developer's list was excited about their possibilities. Yet, to this day, nobody actually made use of them. It's even worse: The one person in this thread who has access to the Catweasel documentation also believes that the Catweasel has more limitations than it actually has. I wonder what went wrong. Is the documentation that complicated? Jens |
|
09 July 2010, 18:30 | #53 |
electricky.
Join Date: Jun 2010
Location: out in the wild
Posts: 1,256
|
|
09 July 2010, 18:46 | #54 | ||
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,502
|
Quote:
Quote:
IMO no one wants to do that kind of micro-management, joining pieces of track is major pita, requires some advance information about track contents (so that you don't miss anything important). This simply shouldn't be necessary. btw, could IDX2IDX write also return last write position? Would be easy to see if buffer under or "overflowed" (whatever the reason) without re-reading the track. |
||
09 July 2010, 21:40 | #55 | ||
electricky.
Join Date: Jun 2010
Location: out in the wild
Posts: 1,256
|
Quote:
Quote:
Jens |
||
10 July 2010, 08:56 | #56 | ||||
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,502
|
Quote:
In my tests I don't get any ghost pulses (perhaps some drives do, perhaps some older than 3.5" drive types?) but they do filter out pulses that are too closely together. Anyway, copy protections are doing "illegal" things which means reading them also requires "illegal" things Quote:
Quote:
Code:
...P....I......P... 1 2 3 I = index Reading has been started previously and above position is coming: Can I get both distance between 1 to 2 and 2 to 3? And how does the data appear in read stream? (lets say 1 to 2 is 80 cycle units and 2 to 3 is 100 cycle units) Quote:
Please add OUT parameter to IDX2IDX IOCTL, thanks |
||||
10 July 2010, 12:51 | #57 |
electricky.
Join Date: Jun 2010
Location: out in the wild
Posts: 1,256
|
It would only work with MK4 and up. Until today, we have avoided adding such functions, but it seems at some point we have to break with legacy controllers.
Also, please note that you're talking to the hardware guy. You're requesting software stuff here, and I have to talk to the team before I can give an answer on this. I'll do that on monday. Sounds simple enough, but I would still like to keep it compatible with older controllers (hmm.. so much for my attitude). Jens |
10 July 2010, 15:19 | #58 |
Moderator
Join Date: Jan 2002
Location: South East / UK
Age: 46
Posts: 1,930
|
This is exactly the kind of conversation we wanted to have with you years ago. This is a much better and more productive way to progress . Hopefully this new you is permanent.
|
10 July 2010, 21:55 | #59 |
Registered User
Join Date: Jul 2004
Location: Germany
Posts: 105
|
Thank you!
I really like the new way of communication. So thanks to all.
|
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
SWOS updates | Graham Humphrey | Games images which need to be WHDified | 6 | 19 July 2007 12:54 |
Updates.. | Muerto | HOL suggestions and feedback | 5 | 12 March 2006 18:53 |
Catweasel driver updates? | ElectroBlaster | support.Hardware | 7 | 07 January 2006 20:13 |
Boingbag updates... | BarrySWE | support.Apps | 11 | 02 October 2005 20:37 |
GoodTools updates? | Kodoichi | Retrogaming General Discussion | 3 | 21 March 2003 19:28 |
|
|