# Fontex - Retro Tools

>This is a program for creating fonts, tiles, animations, and maps in character mode.
The program allows working on multiple projects. A project allows working on multiple character sets of different types.

---
##### # Project
>A project can be created/loaded from the menu or the selection bar.
When creating a project, you only need to provide a name for identification.
All names used in the project will be important during data export.
![](Assets/Image/en-US/fontex_1.png)

>We will add subprojects to the project. There are four types:
![](Assets/Image/en-US/fontex_2.png)
"Chars", "Tiles", "Animations", and "Maps".
They will be available in the subproject tree.
![](Assets/Image/en-US/fontex_3.png)

---
##### # "Chars" Subproject
>A subproject can be created from the menu or the selection bar.
![](Assets/Image/en-US/fontex_4.png)
The choice of character type determines the number of characters and colors during editing.
For each type, you can select the pixel height that the given type can support.
When editing a selected "Chars" subproject, you can load a ready-made set from disk (last button in the tool column).
Depending on the character type, different color selection variants are available:
* For "HiRes" you can only draw with "PF1" and "PF2" registers.
* For "LoRes" you draw only with "PF0" and "BG", but you can set other registers so that all their versions can be seen in the character list.
* For "Multi" you draw with "PF0", "PF1", "PF2", and "BG" registers. You can set the "PF3" register to see the character version with that register.

>For the "HiRes" type, there is also the possibility to switch to high character mode 8x10 (Antic mode 3). Editing is also switched to this mode. Please note that in other subprojects that will use this set, switching this mode also applies.
You can change the subproject name by right-clicking on it in the subproject tree.
 
---
##### # "Tiles" Subproject
>A subproject can be created from the menu or the selection bar.
![](Assets/Image/en-US/fontex_5.png)
When creating a subproject, you must choose which character set it will use.
You also select the character resolution of the tile. All tiles in this subproject will be of this size.
You can provide an existing tile subproject as a source; the new resolution will be used to copy from the source tile subproject. The anchor for copying characters in the tile is the top-left corner. Excess will be skipped, and deficit will be empty. The character source will be the characters from the source subproject.

>Tile management takes place in the "Tiles" column.
![](Assets/Image/en-US/fontex_6.png)
Here you can add a new tile, remove the selected one, and change the order of the selected tile.
A new tile does not yet have assigned characters. This is done in two ways:
* Via drag & drop, move the selected character onto the editing grid into the appropriate rectangle. Here you can assign characters in any way. You can also assign the same character multiple times and to different tiles.
* Via the context menu on the character list, assign consecutive characters starting from the indicated one. Here it is possible to assign characters in order — either row-first or column-first to the tile (note the arrows). You can also fill or create an entire tile with the indicated character.

>From the context menu on the character list, you can also directly create a new tile and assign consecutive characters to it starting from the indicated one, assigning them row-first or column-first to the tile.
Selecting a tile also highlights the characters used in that tile. An alternative highlight color marks characters that are used in any of the tiles.
On the editing grid, you can edit individual characters. These changes are directly transferred to that set, so everywhere that character was used, the changes will be applied.
Transformations available in the editing tools column apply to the entire tile, not a single character.
You can change the subproject name by right-clicking on it in the subproject tree.

---
##### # "Animations" Subproject
>A subproject can be created from the menu or the selection bar.
![](Assets/Image/en-US/fontex_7.png)
The animation source can be a character or a tile. This will determine subsequent animations in this subproject.

>In the animation column, you can add or remove animations. Subsequent animation frames are created using drag & drop on the source list, moving a character/tile to the lower-right corner of the form into the frame list of the selected animation.
The selected frame can be edited. This directly affects the character/tile that was edited and it will replicate those changes in all subprojects where it was also used. Each frame has its own independent duration (here it is 1/50 sec, equivalent to a frame displayed on Atari).
On the frame list panel:
![](Assets/Image/en-US/fontex_8.png)
Here you can set the time for all current frames of the selected animation at once. You can also delete a frame and change its position in the frame sequence.
You can run the animation in a loop or once.
![](Assets/Image/en-US/fontex_9.png)
You can change the subproject name by right-clicking on it in the subproject tree.

---
##### # "Maps" Subproject
>A subproject can be created from the menu or the selection bar.
![](Assets/Image/en-US/fontex_a.png)
For maps, you need to specify in what units the map will be created: characters, tiles, or maps.
After this choice, you can select the appropriate subproject as the source. If your choice is maps, a copy will be made from the selected subproject of the entire world, scaling the map to the new character resolution. Excess will be removed, and deficit will be filled with the zero index from the characters assigned to the selected map subproject.
If the resolution is in characters, a context menu will be available in the source palette list where you can enable additional lists of tiles created with the source character subproject.
The map layout is created via the grid editor.
![](Assets/Image/en-US/fontex_b.png)
Here you can add or remove columns or rows to the existing map selector state. The arrow determines the side from which a row or column will be added or removed. 
Each map will be named in the export with the subproject name plus the map selector coordinates "name_x_y". Note that when the selector size changes, the coordinates of existing maps may also change.
Adding a column or row does not immediately add a map. Empty spaces can remain in the selector.
A map is added from the context menu on a specific part of the selector. You can create an empty map or copy an existing one.
In the map tools, you can specify for the export how the data of this subproject should be treated. If you choose "Map", each map will be saved separately to ASM files. If you choose "World", the maps will be treated as one large whole, and empty maps will be filled with zeros.
You can change the subproject name by right-clicking on it in the subproject tree.

##### # Register color change
>On all editors where a color register is displayed, a double-click LMB opens the color change window: 
![](Assets/Image/en-US/fontex_c.png)
