GMask and FLMask basic user guide.

Back to the my main page, HERE.

GMask was written by Tsuyoshi Furumizo and can currently be downloaded (as well as with help, and translations in many languages). HERE.

FLMask was created by Inspirator group and is shareware (although the company has long since become defunct). It is available from HERE.

Both applications are Win32 only (There was a Win16 version of FLMask, but it has vanished), and have not been updated in nigh on 10 years. However they run fine on every windows system I have tried it on and luckily for Linux users they run fine via WINE.

Both applications are pretty much identical when it comes to masking, however FLMask has many more options. As well as many more image editing tools. It also saves masked images to JPEG better. Without loss of quality or detail; a common issue when saving masked images to JPEG due to the way the image compression algorighm works.

Main window.

Main window
The GMask application main window.
FLMask main window
The FLMask application main window. Some toolbars are omitted. They are simply for normal image editing functions and not related to masking/unmasking images.

The main windows are pretty simple, menu, toolbar and a currently open image with a hilighted section, ready to work on.

Menu and tool bars.

The menu bars are pretty easy to follow. They're standard application menu bars, with standard application menus on them.
Menu and tool bar

The first 7 buttons are self explanitory so I won't explain them. For more detailed information on what the relevant masks do, see the below section.
  1. Moves the current selection box up or down pixel by pixel.
  2. Moves the current selection box left or right pixel by pixel.
  3. Rotate RGB mask. Press 3 times to return to what it was originally.
  4. XOR 0x80 mask. Press twice to go back to the original.
  5. Flip vertical. This flips the selected area vertically.
  6. Flip horzontal. This flips the selected area horizontally.
  7. Negative. This transforms the selected area into negative colours.
  8. Vertical glass.  Clicking agian undoes the action.
  9. Horizontal glass. Another press will undo the action.
  10. Win mask. Clicking agian undoes the action.
  11. Meko- mask. This breaks the selected area into squares and then shifts those blocks around to different locations. Pressing this button multiple times will mix up the pattern more. To undo it you have to press the Meko+ mask button an equal number of times.
  12. Meko+ mask. This breaks the selected area into squares and then shifts those blocks around to different locations. Pressing this button multiple times will mix up the pattern more. To undo it you have to press the Meko- mask button an equal number of times.
  13. FL mask. This creates a rotational pattern of the selected area. This can be undone by simply pressing the FL mask button once again.
  14. Q0 mask. This applies a combination of masks (default Horizontal and Vertical glasses and the Negative mask). It is undone by pressing the button again. Which masks it applies can be selected in the program options.
  15. CP mask. This creates a mask based upon a password you enter (max 16 characters and only alphabetical characters). It is annoying and shouldn't be used.
FLMask masking tools toolbar.

For more detailed information on what the relevant masks do, see the below section.
  1. Q0 mask. Q0 mask. This applies a combination of masks (default Horizontal and Vertical glasses and the Negative mask). It is undone by pressing the button again. Which masks it applies can be selected in the program options.
  2. Win mask. Clicking agian undoes the action.
  3. FL mask. This creates a rotational pattern of the selected area. This can be undone by simply pressing the FL mask button once again.
  4. CP mask. This creates a mask based upon a password you enter (max 16 characters and only alphabetical characters). It is annoying and shouldn't be used.
  5. Meko- mask. This breaks the selected area into squares and then shifts those blocks around to different locations. Pressing this button multiple times will mix up the pattern more. To undo it you have to press the Meko+ mask button an equal number of times.
  6. Meko+ mask. This breaks the selected area into squares and then shifts those blocks around to different locations. Pressing this button multiple times will mix up the pattern more. To undo it you have to press the Meko- mask button an equal number of times.
  7. Allows you to choose the size of the selection grid. The options are 1, 8, 16 or 32 pixels.
  8. Chooses the size of the blocks the masking algorithms (ones tah use blocks anyway) will work on. It is best to leave this at 8x8 if you ever want your masks to be decoded by anyone ever.
  9. Rotate RGB mask. Press 3 times to return to what it was originally.
  10. Negative. This transforms the selected area into negative colours.
  11. XOR 0x80 mask. Press twice to go back to the original.
  12. Mirror. This flips the selected area horizontally.
  13. Flip. This flips the selected area vertically.
  14. Horizontal glass. Another press will undo the action.
  15. Vertical glass. Clicking agian undoes the action.

Examples of the basic masks.


Original image
Original
Rotate RGB 1x
Rotate RGB 1 press.
Rotates (relative to the starting pixel value) 1 third anti-clockwise on the colour wheel.
Rotate RGB 2x
Rotate RGB 2 presses.
Rotates (relative to the starting pixel value) 2 thirds anti-clockwise on the colour wheel.
XOR 0x80
XOR 0x80 (sometimes called XOR128).
Negative
Negative.
Inverts each pixel's RGB value.
Vertical Glass
Vertical glass.
Splits the selected area into 8 pixel wide vertical columns then flips them on the vertical axis. The width of the columns (in pixels) can be changed in program settings, however this is not recommended.
Horizontal glass
Horizontal glass.
Splits the selected area into 8 pixel tall horizontal rows then flips them on the horizontal axis. The height of the rows (in pixels) can be changed in program settings, however this is not recommended.
Win mask
Win mask.
Splits the selected area into 16 pixel wide vertical columns. Then splits those columns into 1 pixel wide strips. Rearranges them in the following order: 13, 9, 7, 16, 10, 14, 3, 12, 2, 5, 15, 8, 1, 6, 11, 4
Applying the WIN mask again restores the original state of the selected area.
Meko mask
Meko (although + and - look different at close inspection, at a quick glance they look identical).
Firstly the algorithm spilts the selected area into 16 × 16 pixel blocks.
The processing for Meko is not as random as it appears, instead it has a set pattern that will (if you apply the same Meko mask over and over agian) eventually return the original image. However as the selected area grows so does the number of  iterations needed to return to original.
Meko uses a lookup table containing 9216 entries to calculate shift position, thus the maximum number of blocks a Meko mask can work with is 9216 or a square selection area of 1 536 × 1 536
After switching sometimes the program will apply the Negative mask also. This is an option in both programs.
Fl mask
FL mask.
The FL mask algorithm firstly splits the selection area into 8 × 8 pixel blocks. Then arranges the blocks in a uniform order and in a spiral pattern. Applying the same mask again returns the original. Sometimes the program will also apply the Negative mask along with this mask. This is an option in both programs.
Q0 mask
Q0 mask.
The Q0 mask is actually a series of masks. It usually defaults to Horizontal and Vetical glasses as well as Negative. However both GMask and FLMask allow you to also select Flipping and XOR 0x80 as well. It is advised not to do this however as most people will have the default settings and not wish to guess which other settings you have applied.
CP mask GMASK passord
An example of a CP mask with the password GMASK.
When you select CP mask you are asked for a password (or more) this password decides the pattern of block shifting. The CP algorithm splits the selected area into individual 8 × 8 pixel blocks.
The password you choose must be only alphabetical characters and must be between 1 and 16 characters in length. It is not case sensitive.
Once applied the algorithm switches the red and green channels and applies the Negative mask. It then arranges the block in accordnce to the password you have chosen, rotating some blocks 90° but not all blocks.
Don't use this mask, it's annoying and not worth the effort to decode unless the password is given (then what is the point?) If you come across a CP masked file there is an old DOS (*.com) utility available HERE, that can decode them, but it is not 100% reliable. GMask also has some limited ability to guess the CP mask password.

Examples of commonly combined masks.

The text under the images indicates the order in which the image was masked. To unmask you reverse the written order.
Horizontal & Vertical masks
Horizontal and Vertical masks.
This is a simple combination to spot. The order you apply the unmasking doesn't matter. This is how the default Q0 mask looks if you apply a Negative first.
Meko & FL masks
Meko- & FL masks.
For this common mask combination watch out for both horizontal and vertical blocks of similar colours and pattern.
FL & Meko masks
FL & Meko- masks.
For this common mask combination watch out for both horizontal and vertical blocks of 2.
Meko & FL & win masks
Meko+ & FL & WIN masks.
If a WIN mask is used after using Meko or other pixel shifting masks then the lines appear very stark and ragged. This is a fairly sure sign that the WIN mask has been applied at the very end of masking.
Win & Meko & FL masks
WIN & FL & Meko- masks.
If a WIN mask is used before using Meko or other pixel shifting masks then the lines appear faint and quite smooth. This usually means that the WIN mask has been applied at the beginning or between masking stages.
Meko+ & Horizontal flip & Meko+ masks
Meko+ & Horizontal flip & Meko+ masks
Combining Flipping masks and Meko masks is generally annoying as you cannot see any discernible difference when applying Meko unmasks. This leads to pretty much only guesswork in applying the unmasks, which isn't fun.
However, if the selection area is mis-sized and the Meko mask can't quite divide the area into 16 × 16 pixel sized blocks then flipping is acceptable. Notice the clean line at the bottom of the selection area, that is a sign that the Meko mask couldn't fit an even number of  blocks over the whole selection area.
The image above shows the result of applying a Meko mask then the Horizontal flip then another Meko mask. This leaves an unmistakable pattern of tall thin blocks. This is very likely to be a combination Meko and Flip masks.
Meko & Vertical flip & Meko masks
Meko+ & Vertical flip & Meko+ masks
The image above shows the result of applying a Meko mask then the vertical flip then another Meko mask. Notice the clean line at the right of the selection area, that is a sign that the Meko mask couldn't fit an even number of blocks over the whole selection area. This leaves an unmistakable pattern of wide short blocks. This is very likely to be a combination Meko and Flip masks.

Examples of combining separate mask areas.

The text under the images indicates the order in which the image was masked. To unmask you reverse the written order.
Top half: Q0 & Bottom half: Meko+ & FL. OVerall: M+ masks
Top half: Q0 & Bottom half: Meko+ & FL. Overall: M+ masks
This is a classic combined set of masks. The mixture of small and large blocks are a clear indication that a mask has been used over 2 (or more) seperate masks.
The top half of the selection area was treated with Q0 and the bottom half Meko+ and FL. Then the whole thing treated with Meko+
Top half: FL & Bottom half: Meko+ & WIN. Overall: M+ masks
Top half: FL & Bottom half: Meko+ & WIN. Overall: M+ masks
This is a classic combined set of masks. The mixture of blocks showing WIN masking and blocks showing none indicate 2 (or more) seperate masks.
The top half of the selection area was treated with FL and the bottom half Meko+ and WIN. Then the whole thing treated with Meko+

Other masking programs.

Almost all of the programs mentioned on this page are available mirrored HERE.
If there is an official site still working it is linked directly from this page.

Windows.

Easymask, a Japanese only program. Last updated in 1998. It has the same features as with GMask and FLMask. Screenshot below. Link HERE.
Easymask main window

There are also plugins for Photoshop and GIMP.

Mac.

There have been several tools for masking on the Mac. These include Mozkiller and Uchinokiller as fully featured masking applications as well as DeCP and infoCP CP decoders.

Cross platform.

There is a JAVA implementation of GMask being developed HERE.

That's it, for now.