Skip to main content
Skip table of contents

(v13) Zipped-hybrid mode


This page applies to Harlequin v13.1r0 and later; and to Harlequin Core but not Harlequin MultiRIP.


As of Harlequin v13, this section is DEPRECATED; DO NOT USE IT, as this functionality will be removed in a future version.

The zipped-hybrid mode provides another method of using the SW folder. It is easier to customize a compressed file archive than it is to compile the SW folder into a library.

The archive is read-only and still on disk (unlike the RAM-based SW folder) so takes less memory.

This allows the same SW folder to be shared between one or more RIPs. All read attempts use the ZIP device, which is part of the core code.

It is usually undesirable to consume RAM space with temporary raster data because this reduces the amount of RAM available for ripping. Therefore you should note that when the SW folder is not writeable the disk is used to store temporary pagebuffer data.

Any changes made by manually modifying the archive remain across RIP sessions, but any changes made as part of ripping a job are lost.

Before you can build the skinkit and skintest layers you must first create a ZIP file of the contents of the SW folder. For more information see Build notes for zipped-hybrid mode below.

In developing your own integrations, you should partially or completely replace and/or amend the outer “skintest” layer.

Build notes for zipped-hybrid mode

In developing your own integrations, you should partially or completely replace and/or amend the outer “skintest” layer.

Before you can build the skinkit and skintest layers you must first create a ZIP file of the contents of the SW folder. That is, you must compress the contents of the SW folder so that the archive does not contain the top-level SW folder itself. Rename the archive to BootFile.bin . and place it into the SW folder.

You can choose a different compression setting to suit your own particular requirements. You may, for example, prefer less compression for faster operation.

You should make the name of the SW archive unique. By default, it is called BootFile.bin. If you change the file name you also should modify the definition of SWZIP_ARCHIVE_NAME in skinkit/src/ripthread.c to match.

Building the zipped-hybrid SW folder Windows

In developing your own integrations, you should partially or completely replace and/or amend the outer “skintest” layer.

To build both the skinkit and the skintest layers:

1          Ensure you have selected the correct build environment for the OS you are using and the OS you are targeting.

2          Change (cd) to the directory holding the file Makefile:

/<install folder>/bin

3          Run:

nmake USE_ZIP_HYBRID_SW_FOLDER=1 -f Makefile

This compiles the source and places the executable file clrip.exe into the same directory as the Makefile.

4          For a Visual Studio build, use the equivalent of nmake USE_ZIP_HYBRID_SW_FOLDER=1 -f Makefile: Right click on clrip in the Solution Explorer, open the Properties dialog, and add USE_ZIP_HYBRID_SW_FOLDER; to Configuration Properties -> C/C++ -> Preprocessor -> Preprocessor Definitions. Then use Build -> Rebuild Solution to recompile all the files in the project with the new setting.

Building the zipped-hybrid SW folder Linux/macOS

In developing your own integrations, you should partially or completely replace and/or amend the outer “skintest” layer.

To build both the skinkit and the skintest layers, change (cd) to the directory /bin, which holds the file Makefile.

On Linux run:

gmake -e USE_ZIP_HYBRID_SW_FOLDER=1 -f Makefile

On macOS run:

make -e USE_ZIP_HYBRID_SW_FOLDER=1 -f Makefile

This compiles the source and places the executable file clrip into the same directory as the Makefile.

Error messages when building in zipped-hybrid mode

The following error message could mean that the SW archive is not being found:

exit RIP (Failed to configure OS device (3))

The following error message could mean that the SW archive is found but it does not have valid content:

exit RIP (Failed to start interpreter)

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.