[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