[hatari-devel] IPF support added to the FDC emulation

[ Thread Index | Date Index | More lists.tuxfamily.org/hatari-devel Archives ]


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 :)


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/