| [hatari-devel] IPF support added to the FDC emulation | 
[ Thread Index | 
Date Index
| More lists.tuxfamily.org/hatari-devel Archives
] 
Hello
I just merged a devel branch I had from over a year (summer 2012) that 
adds IPF support to the FDC emulation.
A small summary on IPF :
------------------------
IPF is a format developped by SPS (http://www.softpres.org/) and is an 
evolution of the CAPS format used since some years to archive Amiga 
floppies.
The preferred method to create IPF images is to use the Kryoflux board 
(http://www.kryoflux.com/) to make an exact copy of the clock and data 
signals of a floppy disk.
The design of IPF allows it to store any information as it was stored on 
original disk, and even write it back and obtain an exact copy of the 
disk (clock and data). From that point of view, this is more advanced 
that Pasti (but I don't want to start a debate about this as it was the 
case in atari-forum.com)
Many disks are preserved with IPF, mainly C64 and Amiga, also ZX81 and 
CPC, but there's a small number of Atari ST ones too (~300 games). Use 
your favorite search engine and you should be able to find them (I'm not 
sure there's a central place hosting them for now).
Recent contacts with Kryoflux members have shown a possible increase in 
Atari IPF images, but this is going at a very slow pace at the moment.
Compiling Hatari with IPF support :
-----------------------------------
IPF support is optionnal.
You need to install the correct library and include files. If they're 
not present, compilation will still work, with only ST/MSA support.
Files can be downloaded from http://www.softpres.org/download , use the 
files from the "User Distribution" section.
- For Linux : depending on your linux version, get 
ipflib42_linux-i686.tar.gz or ipflib42_linux-x86.tar.gz or 
ipflib42_linux-powerpc.tar.gz ; copy libcapsimage.so.4.2 in 
/usr/local/lib and include/caps in /usr/local/include (or your preferred 
path)
- For windows crosscompilation under linux : you need to compile the 
ipfdec sources yourself and copy capsimage.dll.a in 
/usr/i586-pc-mingw32/sys-root/mingw/lib/ ; also copy include/caps in 
/usr/i586-pc-mingw32/sys-root/mingw/include  (path will depend on your 
mingw version)
- For OSX : get ipflib42_macosx-universal.dmg.zip and see the included 
readme file for instructions. I can't test it myself, any feedback will 
be welcome.
- For Windows : get ipflib42_w32.zip or ipflib42_win_x64.zip ; I haven't 
tested it myself, feedback welcome too.
(You can build you own version of the caps library if you prefer, get 
ipfdec_source4.2.zip and do the usual make/make install, but this should 
not be necessary)
Run './configure', if files were correctly installed, you should get a 
line similar to :
Found CAPSIMAGE: /usr/local/lib/libcapsimage.so
Usage :
-------
IPF support in Hatari is really beta support, I tested a lot of IPF disk 
without problem, but you never know.
Also, the code from summer 2012 was merged/updated with the current 
Hatari's state in a rather short timeframe, which could imply some 
errors or breakage.
Memory snapshots of IPF disks should work, but the caps library is not 
fully documented and I had to guess some values to restore the IPF state 
as it was before taking the snapshot. Hopefully, this should work.
It's possible to mix ST/MSA/IPF images at the same time in drives A and 
B, but as this implies 2 FDC emulation running in parallel (Hatari's one 
and IPF's one), some conflicts could happen (although I tried to "merge" 
both states)
Known limitation :
------------------
Lethal Excess is not working, there's a bug in the caps library.
There's no write support in IPF file so far, so Sundog won't work either 
as it requires to write on the disk.
Have fun testing all of this :)
Nicolas