![]() |
![]() |
#1 |
Registered User
Join Date: May 2011
Location: Cambridge
Posts: 694
|
Creating your own IPFs
Hi Folks,
I've been doing some more work on my Amiga disk decoding/encoding utilities. These allow you to read disk dumps from various sources (Kryoflux, IPF, ADF, etc) analyse the contained data according to known encoding schemes (AmigaDOS, Copylock, RNC PDOS, various game publisher custom formats, ...), and write the analysed data in another format. In effect this is an all-in-one Amiga disk archiving/transcoding/reading utility. The new feature which I just completed is support for writing IPFs. Previously the main useful target was a custom archival format, for which support has to be added to emulators and the like (I have patches to UAE to support reading my disk files, for example). However, with IPF support you can now create or transcode disk dumps that can be immediately loaded into emulators, read on a real Amiga (latest version of RawDIC/WHDLoad), or written back to a real disk using the latest Kryoflux software! For example, I was able to back up my own copy of New Zealand Story (a typical Copylocked game disk) as follows. In Linux: Code:
dtc -r6 -fnzs/ -i0 -e79 -i5 disk-analyse --format="New Zealand Story" nzs/ nzs.dsk disk-analyse --format="New Zealand Story" nzs.dsk nzs.ipf Then, since I believe Kryoflux write support is currently only in the Windows tools, I do the writing step from a Windows VM: Code:
DTC -d0 -fnzs.ipf -s0 -e79 -w -l15 You can also do things like write out unprotected ADFs through Kryoflux, by transcoding them via disk-analyse first: Code:
disk-analyse my.adf my.ipf The bad news: It's Linux only (also basic support for Cygwin/MinGW on Windows) and you have to build it yourself, something like: Code:
git clone http://github.com/keirf/Disk-Utilities cd Disk-Utilities make su -c "make install" Last edited by Keir; 10 September 2012 at 09:18. |
![]() |
![]() |
#2 |
Registered User
Join Date: Dec 2011
Location: Manchester
Posts: 91
|
I'm going to install Ubuntu in a virtual machine to try this.
Cheers. |
![]() |
![]() |
#3 |
Registered User
Join Date: May 2011
Location: Cambridge
Posts: 694
|
Let me know if you get stuck setting it up.
|
![]() |
![]() |
#4 |
Registered User
Join Date: Aug 2006
Location: Augusta, Georgia, USA
Posts: 559
|
Any way to get it compiled in cygwin?
![]() |
![]() |
![]() |
#5 |
Registered User
Join Date: Dec 2011
Location: Manchester
Posts: 91
|
Just a small update. I've got VMWare player installed and Ubuntu installed.
|
![]() |
![]() |
#6 |
Registered User
Join Date: May 2011
Location: Cambridge
Posts: 694
|
I didn't think of trying Cygwin! Yes, it was quite easy to do a basic port to Cygwin. You can now compile and run on cygwin as follows:
Code:
git clone http://github.com/keirf/Amiga-Disk-Utilities cd Amiga-Disk-Utilities SHARED_LIB=n make cd mfmparse ; ./mfmparse.exe -h Cool, if you have any prior experience with Linux you shouldn't have too much trouble. I think this is the better option than Cygwin overall; neither way is exactly trivial to set up, but the VM gives you a 'proper' Linux environment. Whereas my Cygwin support is quite half hearted. Last edited by Graham Humphrey; 13 December 2011 at 13:45. Reason: Back-to-back posts merged |
![]() |
![]() |
#7 | |
Registered User
Join Date: Dec 2011
Location: Manchester
Posts: 91
|
Quote:
|
|
![]() |
![]() |
#8 | |
Registered User
Join Date: May 2011
Location: Cambridge
Posts: 694
|
Quote:
The point is, you have to give mfmparse some guidance to analyse your disk dump. That is what the --format=blah option is all about -- you specify a name listed in the mfmparse_formats file, which lists all the disks that I've had time to check the format of. If your disk is not listed, but you're lucky, you may find that the protection is something incredibly common, like Copylock. In which case specifying --format=amigados_copylock will work fine. You'll have to experiment a bit ![]() |
|
![]() |
![]() |
#9 | |
Registered User
Join Date: Dec 2011
Location: Manchester
Posts: 91
|
Quote:
![]() |
|
![]() |
![]() |
#10 |
Registered User
Join Date: May 2011
Location: Cambridge
Posts: 694
|
And in that case you don't need to specify --format=amigados, because it is the default. If you can get as far as a working workflow with plain AmigaDOS disks, you're actually most of the way there. Good luck.
|
![]() |
![]() |
#11 |
Registered User
Join Date: Dec 2011
Location: Manchester
Posts: 91
|
Right, Ubuntu all working. Followed your instructions, but with 1 change:
Code:
git clone http://github.com/keirf/Amiga-Disk-Utilities cd Amiga-Disk-Utilities make sudo su -c "make install" Code:
Amiga_Extras_3_1.raw Amiga_Fonts_3_1.raw Amiga_Install_3_1.raw Amiga_Locale_3_1.raw Amiga_Storage_3_1.raw Amiga_WorkBench_3_1.raw OS-Install.raw Code:
mfmparse --format=amigados Amiga_WorkBench_3_1.raw Amiga_Workbench_3_1.dsk Code:
mfmparse: Failed to probe input file: Amiga_WorkBench_3_1.raw Code:
ch_3_1.raw Amiga_Workbench_3_1.dsk Found format "amigados" mfmparse: Failed to probe input file: Amiga_WorkBench_3_1.raw [off topic, if I made a workbench IPF, then created a blank disc and copied a kickstart rom image onto it, then made an IPF of the disc and uploaded them to the zone I could probably break all the rules with 1 .zip file hehe] |
![]() |
![]() |
#12 |
Registered User
Join Date: May 2011
Location: Cambridge
Posts: 694
|
Well, you got somewhere! How did you generate these .raw files from Kryoflux? The Kryoflux format I support is generated by the -i0 option to dtc, and actually generates a file per disk track.
A single .raw file is not one I've come across. Perhaps it is a raw sector dump. If you can give me an example command line you used to generate one I may be able to say more. Ahhhh... hang on, you used the GUI. That has a drop-down menu where you select the output format to dump to. I would need you to be using "Kryoflux stream files". Other formats would probably need support to be added to my library. Last edited by Keir; 13 December 2011 at 21:54. |
![]() |
![]() |
#13 |
Registered User
Join Date: Dec 2011
Location: Manchester
Posts: 91
|
I do have the directories with all the .raw files in, 1 per track. Would they be better?
|
![]() |
![]() |
#14 | |
Registered User
Join Date: May 2011
Location: Cambridge
Posts: 694
|
Quote:
Code:
mfmparse Amiga_Workbench_3_1/ Amiga_Workbench_3_1.dsk ![]() Last edited by Keir; 13 December 2011 at 23:14. |
|
![]() |
![]() |
#15 |
Registered User
Join Date: Dec 2011
Location: Manchester
Posts: 91
|
Tried the command:
Code:
mfmparse -v --format amigados Amiga_WorkBench_3_1/ out.ipf Code:
Found format "amigados" mfmparse: Failed to probe input file: Amiga_WorkBench_3_1/ Last edited by MrCheese; 13 December 2011 at 23:33. |
![]() |
![]() |
#16 |
Registered User
Join Date: May 2011
Location: Cambridge
Posts: 694
|
This will be because mfmparse could not find a file Amiga_Workbench_3_1/00.0.raw -- this is what mfmparse looks for to 'probe' for the kryoflux stream format.
|
![]() |
![]() |
#17 |
Registered User
Join Date: Dec 2011
Location: Manchester
Posts: 91
|
The first file is called track00.0.raw, then track00.1.raw etc
|
![]() |
![]() |
#18 |
Registered User
Join Date: May 2011
Location: Cambridge
Posts: 694
|
|
![]() |
![]() |
#19 |
Registered User
Join Date: Dec 2011
Location: Manchester
Posts: 91
|
I've got it working. The command I used is:
Code:
mfmparse -v --format amigados Amiga_WorkBench_3_1/track out.ipf Well done! |
![]() |
![]() |
#20 |
Lemon Curry ?
Join Date: Sep 2004
Location: Denmark
Age: 49
Posts: 4,182
|
This has probably been asked before elsewhere but are there any plans for CT RAW image support in the future for disk-analyse ?
|
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
IPFs of games I own | antonvaltaz | project.SPS (was CAPS) | 22 | 28 May 2009 12:28 |
Mounting IPFs | killergorilla | project.SPS (was CAPS) | 16 | 06 August 2005 00:32 |
Downloadable IPFs | killergorilla | project.SPS (was CAPS) | 15 | 27 August 2003 15:59 |
How exactly do IPFs get out in the first place? | MethodGit | project.SPS (was CAPS) | 2 | 15 July 2003 22:02 |
|
|