TIPS
* In the main window:
- Reserved spaces displayed in green means the reserved space
has been marked with a new value for rebuilding.
- File lengths displayed
in green means file is using more
reserved space than it really needs (unused space).
- File lengths displayed
in yellow means that the length
of the file given at the headers is not coherent with the length
given at descriptors..
- Dragging a file from other app to the file list imports it.
(Just as in Windows Explorer:)
- Press right mouse button over a file or folder to open a contextual
menu with appropiate options.
- Double-clicking a file opens the file with the appropriate program or plays a sound, depending
on the file type. Pressing F11 allows selecting any application
for opening a file.
- Slowly double-clicking over a file name allows editing its name.
* In the graphic preview window:
- Press left mouse button while you move the mouse to scroll the picture.
If 'Stretch images' config option is set, this feature is not available
(there's no need).
- Pressing right mouse button over an image opens a pop-up menu allowing to import/export BMP files.
- Double click over any entry in the list to open the image with pre-selected graphic editor.
* In the AFS rebuilding window:
- Press '+' and '-' keypad buttons to increase/decrease reserved
space for a file.
- Press right mouse button over a file or folder to open a contextual
menu with appropiate options. 'Adjust childs' sets the slots of the selected
entry and his brothers (and also their sons) to the minimum value
needed to store the files (minimizes space).
* In the AFP patch creation window:
- Pressing right mouse button toggles the selection/deselection
of all children, in function of parent selection status.
- Use 'Compare AFS'->'Select
different files' to quickly create a patch. This allows creating a
patch that only holds those files that differ between the loaded
AFS and any external AFS. Take care, as the content
of the patch will be fetch from the currently loaded AFS file.
* In the ZLIB Manager window:
- Double-clicking a ZLIB section uncompresses the section
and then processes it with ZLIB Manager.
- Double-clicking a data
section opens it with the pre-configured
hexadecimal editor.
- You can use 'Get from AFS' and 'Insert into AFS' to quickly exchange
files within the AFS without the need of extracting them first.
FILE
INSERTION AND REGENERATION OF AFS FILES
Important:
When you first load an original AFS file, load it using "auto-detection"
mode. If you are asked to do so (e.g. descriptors are missing),
let AFSExplorer auto-regenerate the AFS file. Use that rebuilt AFS
file afterwards.
Due
to the nature of AFS files, where files are stored sequentally and
in 2048-bytes-long blocks, there are some limitations when working
with them:
Files have a reserved space within AFS files -called from hereafter
"slots"- and its content is stored in sucessive blocks.
Replacing a file with new one whose length is greater than the allocated
slot would imply overwriting content of next file in the AFS.
AFSExplorer
allows over-passing this limitation using two approaches:
- modifying
assigned slots for all files, so bigger files can be inserted or
to save space wasted by any file. This process, called "regeneration"
or "rebuilding" creates a new AFS file keeping files content
of original AFS file.
- if there is enough free sectors in other files in the AFS, AFSExplorer
offers the option of re-arranging the AFS structure so this unused
space can be given to the inserted file. This could be seens as
a partial regeneration of the file, with the advantage of working
on the same file and thus not needing to create a new AFS file.
When importing folders (and patches), AFSExplorer will calculate
changes needed in the AFS structure and ask for regenerating it
if it can be optimized or if rebuilding is required to allocate
more space for those files.
Regeneration of AFS files
is a resource-consuming operation, so it can take long, specially
when dealing with big AFS files in low-performance computers. Avoid
working with AFS files from CD/DVD units as their access times are
far greater than those of hard disk units.
AFS VARIANTS
There
are basically two AFS types, whose difference mainly resides in
the later (v2) missing of a proper information about file lengths
in a zone called 'descriptors'.
AFSExplorer uses descriptors as the base where to get file info
from, as this allows more flexibility and also meets the goal of
keeping compatibility.
Some games/apps using AFSs do not tolerate small values in the other
place where file length is told (in the 'headers'); so it's better
using descriptors (which do not have the former restriction) to
compute the real length of files, as this allows inserting small
files
Best thing you can do when working the first time with an AFS file
is loading it using the 'auto-detection' mode (have a look at the
configurations options of AFSExplorer). The tool will do its best
to load the file in the safest way, and prompt you with the actions
you should take to correct it if any incoherency is found.
Updating an AFS file (write AFS structure info back to the AFS file)
and regenerating it (write a new AFS file from the scratch) will
be the most common operations you'll have to deal with.
Please note, some other AFS handling software do not handle descriptors
in a correct way or they simply ignore it. Usage of 'manual' loading
mode with 'ignore descriptor's length' option enabled will allow
you to correctly load those files, which must be corrected afterwards
by updating or rebuilding it.
Once corrected, this AFS file can (and should) be loaded with 'auto'
mode again.
In the case of AFS files missing descriptors (they simply do not
have them in the file), AFSExplorer will use the default names 'unnamed_XXX',
guessing the file extension depending on the files first 4 bytes
(file identifier).
If you set 'Advanced extension detection' not only the file identifier
will be checked but also the content of the file, but at the cost
of a slower AFS loading.
You should always rebuild files missing descriptors.
It can happen that an AFS file contains files that are also of the
AFS format. By default, AFSExplorer will process those sub-AFS files
and proccess their content. Use 'Custom detection' and deselect
'Sub-AFS processing' to avoid processing sub-AFS files content when
loading.
TEMPORAL
STORAGE
AFSExplorer
makes use of temporal files for a wide variety of operations, such
as graphic displaying, sound previewing or patch importing.
Those
temporal files are created on default Window's temporal folder,
which varies depending on the operating system.
To correctly operate, AFSExplorer needs the hard-disc partition
where that temp folder is located to have enough free space.
This
feature must be specially considered when importing a patch: as
patch files are temporally extracted, it's very important you check
there's at least enough free space at the operating system partition
(or the place set as system's temporal storagement location) equal
or greater than the patch size.
That's it: if a patch is 200MB long, at least 200MB of free space
is needed so AFSExplorer can apply the patch.
AFP
PATCHES
If you want to use AFP
patches together with another PPF patches, apply first PPF
patches then apply AFP patches.
Don't forget that a new AFS file is created when you apply a
patch that modifies the reserved spaces of the patched AFS file,
and the AFS file length changes.
Avoid including in AFP patches both a sub-AFS file and any of the
files it contains. It's a waste of space.
AFP patches relies on AFS file names. You should provide AFL files
containing the names of the files of the AFS file(s) you used to
create the AFP patch file(s) from.
PLUG-INS
Plug-ins
communicate with AFSExplorer using sockets (network resources) for
optimal performance. Be sure you don't have any external software
(such as firewalls or antivirus) blocking AFSExplorer attempts of
using the network.
If
you want to design a plug-in:
- download "PluginSupport" C++ class; this class
includes not only all function calls to set-up and perform all communication
(requests to and notifications from) notifiwith AFSExplorer but
also other useful functions to create a plug-in (e.g. interface
wrappers).
- have a look at the source of "PluginSupport" class as
you'll find some basic info there. Also check the source of other
available plug-ins to learn how most basic functions are used (you
can use any of them as a base for a faster developing of your own
plug-in too).
However, you can always ask at the forums in case of any doubt/trouble.
- avoid making a large number of plug-in support calls within
a short lapse of time. TCP sockets are still alive for a given
time (usually 2 minutes in Windows OSs) when they have been closed,
thus system socket resources can starvate due to those 'ghost',
previously-used sockets. In such an scenario, with hundreds of TCP
sockets in TIME-WAIT state, AFSExplorer won't be able to communicate
with plug-ins until those sockets have been really freed by the
system.
Special functions have been designed to fetch large ammounts of
data (e.g. all info about an AFS file) using a single request.
- requests to AFSExplorer requiring internal interface handling
will make both the calling plug-in and AFSExplorer enter in a dead-lock
state. Use separated threads when making those calls. Those dangerous
calls are commented in the PluginSupport class; as a rule of
thumb, if you find AFSExplorer hangs when making a call, use a thread
because you'll probably be in this scenario ;)
If
you design a plug-in please share it with the community! ;)
|