home *** CD-ROM | disk | FTP | other *** search
- XFD Package - Release 1.15
- ==========================
-
- COPYRIGHT
- ---------
- All parts of this software package are freely distributable for
- noncommercial use. If you redistribute XFD, you have to keep all files
- together. All programs are copyright by their authors.
-
- DISCLAIMER
- ----------
- The authors are not liable for any changes made to any part of the
- package, or consequences thereof as they cannot be made responsible for
- damages or loss of data directly or indirectly caused by their
- software.
-
- AUTHORS
- -------
- Georg Hörmann - Definition of XFD standard, xfdmaster.library,
- xfd#? tools, Assembler includes, some external
- decrunchers.
- Anders Melchiorsen - 'C' includes, protos, pragmas.
- Dexter&Bartman/Abyss - External decrunchers.
- WEPL - External decrunchers and Oberon includes.
- ??? - External decrunchers.
- A. Van Helsing/X-Trade - External decrunchers.
- Psygore - External decrunchers.
- Mr.Larmer/Wanted Team - External decrunchers.
- DII - External decruncher and Amiga E stuff.
-
- INTRODUCTION
- ------------
- Almost every Amiga user has some crunched files on his/her disks,
- either Powerpacked docs or crunched demos, utilities or whatever. But
- what to do when you need the files to be uncrunched, and you don't call
- the cruncher your own (or it doesn't support decrunching)? Enters XFD.
-
- FEATURES
- --------
- This software package allows you to decrunch almost every packed file
- known on the Amiga. It consists of the xfdmaster.library as the brain
- and a couple of programs that offer certain functions to the user.
-
- The xfdmaster.library is a standard Amiga shared, runtime library. It
- works with Kickstart V33+ and offers applications the possibility to
- directly support any crunched files.
-
- Other than the predecessor decrunch.library, the xfdmaster.library has
- a more flexible interface, offers the possibility to decrunch already
- loaded program segments, supports external decrunchers, is able to
- unlink so-called 4EB9-linked files and can scan for crunched data in
- any memory area.
-
- EXTERNAL DECRUNCHERS
- --------------------
- External decrunchers can be easily written by any programmer who has
- knowledge about the inner workings of a new cruncher. That way almost
- everybody is able to keep the library up-to-date. External decrunchers
- are stored in "LIBS:xfd/" and xfdmaster.library loads them on startup.
- Please check out your own "LIBS:xfd/" drawer and compare it with the
- latest one included in this package. The slaves from this package are
- always the latest versions. There exist old external decrunchers that
- are no longer required, please delete them from "LIBS:xfd/" to save
- diskspace AND memory. They are mentioned in "LIBS:xfd/.README.FIRST"
-
- ATTENTION
- ---------
- Although I clearly stated in the autodocs that external decrunchers
- have to be fully reentrant (which means they can handle several files
- within the same time), some externals are programmed not 100% safe. If
- you ever have trouble with XFD, first disable the external slaves and
- then try again. If there's still a problem, send me a bug report.
-
- SUBMISSIONS
- -----------
- You are a programmer who has
- - developed external decrunchers for xfdmaster.library?
- - written applications that support xfdmaster.library?
- You have new crunchers that are not supported yet?
- Please send anything of the above to the following address:
-
- Georg Hörmann
- Martinswinkelstraße 16c
- 82467 Garmisch-Partenkirchen
- Germany
-
- THANKS
- ------
- Special thanks go out to all the people who sent me new crunchers,
- external decrunchers, bug reports or whatever. You will find your
- names somewhere in the history.
-
- TO DO
- -----
- xfdmaster.library:
- - Add new crunchers...
-
- xfdDecrunch:
- - Fix scan problems with RAM-Disk. Hi Holger ;-)
- - Add/remove suffixes to/from filenames. Idea by Axel Folley, sorry
- for not finishing that piece of code for about a year now.
-
- HISTORY
- -------
- XFD 1.15 [xfdmaster.library 37.5]
- - Added support for CFP 1.35/1.36 protected files.
- - Fixed bug in xfdStripHunks(). It may happen that a hunk_name etc.
- is the very last hunk without any other information after it. In
- this case the old routine crashed. Thanks for the example file to
- Christoph Dietz.
- - Added new ProPack strain. Thanks to WEPL for sending the sample.
- - Added 68000-fixed version of BOND external slave to the library.
- Thanks to Dirk Stöcker for the bug report.
- - Fixed external CP slave. Now it won't produce wrong recognitions
- any longer. Thanks to Holger Wessling and Emmanuel Poirier for
- the example files.
-
- XFD 1.14 [xfdmaster.library 37.3]
- - Added CPU cache handling code to all routines that manipulate any
- buffers. I hope this will reduce problems with 68040/060 CPUs.
- - Replaced several buggy sublibraries by Mr.Larmer/Wanted Team with
- new cleaned-up versions. Thanks for that updates, dude.
- - Added new sublibrary (DPRa) and some Amiga E stuff by DII. Thanks!
-
- XFD 1.13 [xfdmaster.library 37.2]
- - Added segment support to Titanics Cruncher 1.1/1.2, Spike Cruncher,
- ProPack, TurboSqueezer 6.1/8.0 and HQC Cruncher 2.0 slaves.
- - Added Master Cruncher 3.0 Data slave, added segment support to
- Master Cruncher 3.0 slave and rewrote parts of the Master Cruncher
- decrunch routines.
- - Added new version of xfdPatch with a serious bug fixed. Sorry folks!
- - Arhh! Bug fixed in the optimized Crunchmania routines added in 1.12.
- Empty code hunks caused a system crash. Thanks to Holger Wessling
- for the report and the example files.
- - Fixed little bug in the StoneCracker 4.04 Data length calculation.
- No crash this time :-) Thanks to Holger again for the example file.
- - Added segment support to DragPack 2.52 slave.
- - Added XFDPFF_RELMODE flag support to the following slaves: Propack,
- Imploder (Normal/Lib/Overlay) and CrunchMania (Normal/Lib/Simple)!
- As these crunchers already allocate their hunks during LoadSeg(),
- I wrote a hunk manager that checks the memory type of each loaded
- hunk and switches to another area if neccessary.
- - Added segment support to Chryseis Cruncher 0.9 and ReloKit 1.0.
- Finally I made it!! All internal reloc slaves support full segment
- decrunching and relocation modes now :-))
- - Combined Powerpacker x.x Master/Normal to simple PowerPacker x.x
- slaves. This saves memory and CPU time.
- - Added data scan support to LightPack 1.5 and TurtleSmasher 2.00
- Data slaves. Changed CrunchMaster 1.0 type from data to address.
- - Added data scan support to ST Cruncher 1.0 Data slave. Now all
- internal data slaves support data scanning!!
- - Added Super Cruncher 2.7 slave with buffer and segment support.
- - Added Ultimate Packer 1.1 slave with buffer and segment support.
- - Added Old ProPack (RNC) slave. Thanks to WEPL for the sourcecode
- and the example files. This slave cannot handle XFDREL_#? as only
- the first hunk is crunched and all others are already relocated at
- decrunch time. Sorry!
- - Added SA/SC/SF/SP/SQ Cruncher slave. Here we have a big problem:
- There exist different versions of the SA, SC and SP formats with
- different crunch algorithms. Therefore these will only be scanned
- for, but not decrunched. SF and SQ should work properly. Thanks to
- WEPL for the sourcecode and the example files.
- - Added PowerPacker Patch 1.0 slave. This silly tool adds different
- headers to standard PowerPacker 4.0 files. Thanks to Dave Jones
- for sending that stuff.
- - Added ExeDescript 1.0 Linker to the internal linker brain. This
- one is a bit special as it just adds a data hunk at the end of a
- file with some text in it. To recognize this stuff, the whole file
- must be in memory. Sorry, but the xfdm_MinLinkerSize field is of
- no use any longer for this type of linker. Thanks to Dave Jones
- for sending lots of example files.
-
- XFD 1.12 [xfdmaster.library 37.1]
- - Fixed problem in ProPack slave. It may happen that some hunks are
- not crunched in the RNC format but included as plain hunks. This has
- not been supported correctly. Thanks to Dave Jones and John Aadnoy
- for the example files.
- - Optimized decrunch speed of CrunchMania slave by factor 50 !!!
- You won't see it with small files, but Holger Wessling sent me two
- files that took several minutes to decrunch with the old routine
- and about 4 seconds with the new one (the file had up to 140 hunks
- and 6200 reloc entries at 700000 bytes). Thanks Holger.
- - Added lots of external decrunchers written by Mr.Larmer/Wanted Team.
- Thanks for all the work you had with that stuff.
- - Added new utility called xfdPatch. Just use it!
- - Added an extra feature to Imploder and CrunchMania slaves:
- they both will decrunch even some modified files now. Thanks to
- Dave Jones for sending the 'The Party IV' 40k intros.
- - Added full GNU Packer 1.2 support. Thanks to Mr.Larmer/Wanted Team
- for sending that stuff.
- - Added new version of xfdPatch that allows to set relocation modes.
- - Added support for TrashEliminator 1.0.
- - Added new version of xfdLibInfo.
- - Added new functions to xfdmaster.library: xfdScanData(),
- xfdFreeScanList() and xfdObjectType(). The data scanner is based
- on an idea by Holger Wessling. Thanks dude!
- - Added new fields to xfdBufferInfo and xfdSegmentInfo structures.
- Read the autodocs for more details about the new behaviour of
- xfdRecogBuffer()/xfdRecogSegment() concerning external slaves.
- This was neccessary as a lot of people sent me files that made
- some trouble with external slaves. Thanks to Axel Folley, Holger
- Wessling, John Aadnoy and all the others for the example files.
- - Added new utility called xfdScan that supports the new data scan
- routines.
- - Added data scan support and improved data recognition/testing to
- ANC, SoundTracker Song, CrunchMania, DragPack 2.52, GNU Packer,
- IAM (ICE!/ATM5), PMC, StoneCracker, XPK, ProPack, PackIt and
- Imploder data slaves.
- - Added new versions of xfdList, xfdDecrunch and xfdPatch.
- - Added data scan support for PowerPacker PP20 data. This code is
- a real data analyzer that checks data for proper decrunchability.
- The crypted data PX20 however can not be scanned in deep mode.
- - Added segment support to QuickPowerPacker 1.0.
- - Added new function xfdInitScanHook() for easy hook management.
- - Added ProPackExe external decruncher. Thanks to WEPL for sending
- this new format.
-
- XFD 1.11 [xfdmaster.library 36.4]
- - Added new versions of xfdDecrunch, xfdList and xfdUnlink with
- several bug fixes and/or new features.
- - Fixed support for Hunk_Reloc32Short in xfdTestHunkStructureFlags(),
- xfdRelocate() and xfdStripHunks(). Thanks to WEPL for the report.
- - Added new/updated external decrunchers written by WEPL (thanks
- for all your work): Ice_TSM, SSUR, TPWM, BOND, CMP1, LOB, DeCloner.
- - Added Oberon include file for xfdmaster.library. Thanks again to
- WEPL for that stuff. Please note that it is written for XFD 1.07
- and therefore a bit old, but you may modify it for your needs.
- - Added external decruncher for 4Vx written by Psygore. Thanks to
- Holger Wessling for sending it.
- - Added full segment decrunch support to Imploder, Imploder Library
- and Imploder Overlay slaves. No dirty jump-in hacks, but a real
- emulation that also corrects the hunktable entries of overlays.
- - Fixed PowerPacker 3.0/4.0 Overlay segment decrunching code.
- The entries in the hunktable haven't been updated.
-
- XFD 1.10 [xfdmaster.library 36.3]
- - Added recognition and unlink code for Glue 2.2 and Glue 2.3 text
- linkers. You will get the text file and the original executable
- as a result after unlinking such files. Thanks to Markus Schmall
- and Dave Jones for the example files.
- - Finally fixed Imploder stuff to work 100% correctly. The new
- method is a bit slower, but doesn't waste any memory any longer.
- The length calculation of the old one was based on a rough guess,
- now it's counted byte by byte. Corrupted data is detected now and
- won't lead to a big crash any longer. The new code also recognizes
- if a hunk was originally data or code.
- - Added support for Imploder Overlay files. These have been only
- recognized, but not decrunched. Now the new length calculation
- made it easy to finally implement that stuff. Thanks to Axel
- Folley for all the example files.
- - Added new version of xfdDecrunch.
-
- XFD 1.09 [xfdmaster.library 36.1]
- - Oops! XPK slave set password length to 0. This caused some
- trouble when decrunching XPK encrypted files. I forgot to
- set MaxSpecialLen to -1 as XPK has unlimited password lengths.
- Thanks to the guy (sorry, forgot your name) who called me.
- - Fixed xfdTestHunkStructure[New]() and xfdRelocate().
- Those two calls now only support hunk types that may really
- exist in load files and no longer any weird linker stuff.
- Added full support for hunk_reloc32short ($3f7/$3fc).
- - Added xfdTestHunkStructureFlags() with XFDTHB_NOOVERLAYS
- to force an error if a file is overlayed.
- - Added xfdStripHunks() as an easy possibility to remove
- hunk_name, hunk_symbol and/or hunk_debug from files.
- - Extended xfdSlave and xfdMasterBase structures.
- Internal slaves have an ID now and can be replaced by
- external slaves. Minimum buffer size to recognize a
- crunched file can be specified for every slave now.
- The largest buffer size is stored in xfdMasterBase and
- can be used as buffer size for recognition purposes.
- Thanks to Dave Jones and the other guy (see above) for
- the inspiration.
- - Added new versions of xfdDecrunch and xfdLibInfo.
- - Moved external Chryseis slave inside library.
- - Added new version of xfdList.
- - Fixed defines in xfdmaster.h from $XYZ to 0xXYZ.
- - Added external decrunchers: AXIS, LOB and SF written by
- A. Van Helsing/X-TraDe. Thanks to Holger Wessling for
- sending them to me.
- - Fixed ProPack slave. Recognizes another executable header
- now and doesn't crash with several hunk_bss any more.
- Thanks to Markus Schmall for reporting the problem.
- - Fixed StoneCracker 4.04 slave. Forgot to support empty
- code and data hunks as old compilers produce them.
- Thanks to Dave Jones for the example file.
- - Added StoneCracker 4.03 Data slave and replaced SC 4.04
- decrunch code by the optimized version from 'Cozine'.
- - Added QuickPowerPacker 1.0 slave.
- Thanks to Dave again for sending this stuff.
- - Added xfdAllocObject() and xfdFreeObject() as a replacement
- for Alloc#?Info() and Free#?Info().
- - Added xfdRecogLinker() and xfdUnlink() to support so-called
- 4EB9-Linkers and their clones.
- - Fixed problem with some PowerPacker 4.0 files. It might have
- happened in one special case that one byte of the processed
- reloc hunk was overwritten before it was reprocessed.
- Using a one-byte prefetch mechanism now fixes this bug.
- - Added xfdm_MinLinkerSize field in xfdMasterBase structure.
- - Added recognition for 4EB9, 4EF9, UFO and XLink linkers to
- the internal linker brain.
- - Added unlink code for 4EB9, 4EF9, UFO and XLink linkers.
- - Fixed another problem with PowerPacker 4.0 files. If hunks
- are located in chipmem, PP sets the qualifier in the hunk
- header AND in the hunks themselves. OS 2.0+ doesn't like
- this behaviour very much and crashes immediately. The flag
- will therefore be deleted in the hunks now.
- Thanks to Axel Folley for sending me an example file.
- - Fixed problem with SoundTracker songs. Some clever game
- coders use the same identifier (PACK) for their files, but
- certainly another algorithm. I use an enhanced recognition
- now that checks the uncrunched length for valid song sizes.
- Thanks again to Axel Folley for all the example files.
- - Added the tool xfdUnlink to the package. This is just a
- simple interface for unlinking linked files.
- - Added second type of 4EB9 linker and fixed recognition
- for UFO linker.
- - Fixed Imploder decrunch code to support modified files too.
- Some guys tried to prevent XFD and also the Imploder itself
- from unpacking files by changing a data to a code hunk.
-
- XFD 1.08 [xfdmaster.library 35.1]
- - Added new feature to xfdmaster.library (now version 35):
- Crunchers that require a 16/32 bit key for decrunching are
- supported now. Only neccessary for ProPack (RNC) at the
- moment.
- - Added new versions of xfdDecrunch and xfdLibInfo that
- support the new feature.
- - Added full support for ProPack, formerly called RNC.
- Now also decrunches executables and key-locked data files.
- Moved the external decruncher inside the library.
- - Added support for TetraPack 1.1.
- - Added support for HQC Compressor 1.00.
- - Added external decrunchers for LZWH and GraftGold.
- - Added support for TSK Cruncher, LightPack 1.5 and
- SoundTracker Cruncher 1.0 Exe/Data files.
- - Added new tool to the package: HackProPack. This makes it
- possible to decrunch key-locked ProPack data files.
- - Re-added Kickstart 1.2/1.3 support to xfdDecrunch.
- Hope everybody is happy now, so am I.
- - Added support for segment decrunching to the following
- slaves: DragPack 1.0, StoneCracker 4.00/4.01/4.04,
- CrunchMania Normal/Library/Simple, TNM Cruncher 1.1.
- - Revised XPK external decruncher and moved it inside
- xfdmaster.library.
- - Moved PMC external decruncher inside the library.
- - Debugged arp.library stuff in xfdDecrunch, xfdList
- and HackProPack. Some arp routines behave different from
- dos v37, but it wasn't documented anywhere.
- - Added segment support to IAM Packer 1.0 and PackIt 1.0.
-
- XFD 1.07 [xfdmaster.library 34.1]
- - Added new sublibs for SSUR, TPWM and TSM crunchers.
- Thanks to WEPL for sending them.
- - Added RNC2 support to the RNC external decruncher.
- Thanks to WEPL again for sending me the sourcecode.
-
- XFD 1.06 [xfdmaster.library 34.1]
- - Increased library version to 34 because of new features.
- The V34 library is fully downward compatible to V33 libraries.
- - Rewritten xfdGetErrorText() function with lots of new error codes.
- - Added xfdTestHunkStructureNew() routine that returns detailed
- error codes.
- - Added xfdRelocate() routine for better segment list support.
- - Extended xfdSegmentInfo structure for relocation mode support.
- - Overworked autodocs for more detailed information.
- - Overworked whole 'C' support stuff (includes, protos, pragmas).
- - Updated Assembler support files.
- - Added external decruncher for PMC files.
- - Added support for recognition and decrunching of segments
- to the following slaves:
- - PowerPacker 2.3 command files (all modes)
- - PowerPacker 3.0 command files (all modes)
- - PowerPacker 4.0 command files (all modes)
- - Added new version of xfdLibInfo with extended information.
- - Added external decrunchers for RNC and FIRE files. Thanks to
- Dexter&BartMan/Abyss for sending me this stuff.
- - Added ATN! support to xfdmaster.library. Dexter/Abyss sent me
- an external for this one, but it's just a FImp clone, so I
- added it to the internals.
-
- XFD 1.05 [xfdmaster.library 33.6]
- - Added decrunch support for StoneCracker 4.04 executables.
- - Added external decruncher for XPK files.
-
- XFD 1.04 [xfdmaster.library 33.4]
- - Added 'C' includes, protos, pragmas. Thanks to Anders Melchiorsen
- for typing all this stuff. Thanks to Brice Allenbrand too. He also
- typed some 'C' stuff, but Anders was 3 days faster. Sorry!
- - Removed arp.library from the package as everybody has it anyway.
- - Added decrunch support for StoneCracker 4.04 data & address files.
-
- XFD 1.03 [xfdmaster.library 33.3]
- - Added new version of xfdDecrunch with extended features.
-
- XFD 1.02 [xfdmaster.library 33.3]
- - Did astonishing speed optimization to CrunchMania decruncher. All
- files with lots of relocs will decrunch about 30 times faster. Thanks
- to Markus Schmall who sent me a file (GadToolsBox with over 8000 [!]
- reloc entries) that took 90 seconds (!) before that code cleanup and
- 3 seconds afterwards. Actually he thought XFD would crash, but who
- waits 90 seconds ??? ;-)
- - Added Chryseis 0.9 decruncher. This one is implemented as external
- decruncher including sourcecode as an example on how to code that
- kind of thing.
- - Added File Imploder (FImp) decruncher.
- - Added new version of xfdDecrunch with lots of new features.
-
- XFD 1.01 [xfdmaster.library 33.2]
- - Added asm includes, autodocs and fd files.
- - Final fixes in password code.
- - Added new versions of xfdDecrunch and xfdLibInfo.
- - Added support for external decrunchers.
-
- XFD 1.00 [xfdmaster.library 33.1]
- - First public release.
-