MiniPSF

HomePage :: Categories :: Login

MiniPSF


MiniPSF files are regular PSF files which import data from one or more PSFLib files residing in the same directory. This lets us save space by sharing driver code, sound banks, etc. across multiple PSF files.

PSFLib files are also regular PSF files. They can also recursively import data from other PSFLib files.

This is done via tag variables called _lib, _lib2, _lib3, etc.

Loading Procedure


The proper way to load a minipsf is as follows:





Executables must always be contiguous. When superimposing one executable on top of another, grow the target executable start/end points as necessary, and fill the unused space with zeroes.

Path


Filenames given in any _lib* tag are relative to the directory in which the PSF file itself resides. Both forward and backward slashes should be interpreted as path separators. For instance:


Filenames may contain spaces within, but no leading or trailing spaces.

Detection


When determining whether a PSF file is a MiniPSF and will need additional data, you should use the presence of _lib* tags to decide, rather than the file extension. It's a MiniPSF if it includes a _lib or a _lib2.

Refresh Rate


Region information in all _lib executable headers should be ignored; only the original executable's region information should be considered when determining the refresh rate. For instance, a "Europe area" MiniPSF which imports data from a "North America area" PSFLib would still be considered 50Hz.

If any _refresh override tags are encountered during the PSF loading process, the first tag seen will take effect and override all subsequent tags as well as all EXE header region information. For instance:



CategoryPSF