Test Application for editing the tiles of a FF8 field. See releases to download the most recent build. Everything is in constant flux. You might want to backup your current build of the program before upgrading as their maybe breaking changes.
Possible Issue: with saving and loading of filters. If you have problems, clear out the .toml file or the imgui.ini to reset the settings to defaults. If you want to send me your .toml in an issue. I might be able to figure out why it was bugging out.
The original Pupu application generates IDs differently. I’ve tried to stay mostly consistent, but there are a few differences to be aware of:
-
2025.JAN.13 — Issue #121
Fixed a bug that could cause Pupu IDs to be insufficiently unique, potentially breaking exports.
If you are upgrading, you may need to convert your data to the swizzled format in your current version first. -
2022.SEP.12 — Issue #80, Issue #122
I used 2 bits to record whether a tile is misaligned with the 16Ă—16 grid along the X-axis or Y-axis.
This project makes use of GPU rendering. Outdated or broken graphics drivers may cause crashes, display issues, or poor performance.
If you run into problems, please update your graphics drivers before reporting issues.
- NVIDIA GeForce GTX 980 Ti (released in 2015–2016 era)
Works reliably. Other GPUs from NVIDIA or AMD from around the same time or newer should also work. - Intel integrated graphics: one user reported issues. I cannot fully test this at the moment, so please ensure you are on the latest drivers.
-
Intel
- Intel Arc, Iris Xe, and 11th+ Gen Graphics
(May also cover integrated graphics on 11th–14th Gen CPUs) - Intel 11th–14th Gen Processor Graphics
- Intel 7th–10th Gen Processor Graphics
- Intel 6th Gen Processor Graphics
- If you’re unsure which driver to install, use the
Intel Driver & Support Assistant
- Intel Arc, Iris Xe, and 11th+ Gen Graphics
-
NVIDIA
-
AMD
This was formerly the SFML version, but it now uses OpenGL with GLEW, GLFW, and ImGui, just like the Experimental Application. It is the more feature-complete version and is recommended for most users.
It receives regular updates, as it’s the version most people use. New features are developed and tested here first to ensure stability and reliability.
If you notice any missing features or have suggestions, feel free to share your feedback — it directly shapes development.
Note: This version requires the
fontsfolder.
Note: This version also requires the
resfolder, which contains essential shaders and textures.
I added a help menu that lists out keyboard shortcuts.
The Batch Operation Window allows you to take input in one format and output it in another.
Supported Input Formats:
.mim— Mim is the storage format of the field textures in Final Fantasy VIII. Selecting this option means you are using the original low-resolution textures.- Deswizzle — Load a directory of deswizzled textures, including
.mapfiles if present. - Swizzle — Load a directory of swizzled textures, including
.mapfiles if present. - Swizzle as One Image — Load a directory of swizzled “as one image” textures, including
.mapfiles if present.⚠️ May not load correctly without a.mapfile. Might require enforcing FFNX formatting when.mapis missing.
- Full Filename Image — Load a directory of full filename textures, including
.mapfiles if present (.tomlsupported).- Uses the
Deswizzle.tomlconfiguration file to read filenames and PupuIDs.
- Uses the
Supported Output Formats:
- Deswizzle — Output in deswizzled format.
- Swizzle — Output in swizzled format.
- Swizzle as One Image — Output swizzled textures combined into a single image.
- Deswizzle + Generate TOML — Output deswizzled textures and generate a new
deswizzle.tomlconfiguration. - Deswizzle (Full Filename) — Output deswizzled textures using the full filename convention (based on
deswizzle.toml). - CSV — Outputs a
.csvfile containing a dump of all the tiles found in the.mapfile.
The Deswizzle.toml Editor provides a configuration interface for defining image combinations used during batch generation.
- PupuIDs are the primary keys used to group images together and later separate them back into individual components.
- Filters:
- Filters can be applied to output images only.
- Input images do not support filters other than PupuIDs.
- Masks (batch output only):
- Multi-colored masks can be generated to define cut regions.
- White-on-black masks can also be generated for external editing tools (e.g., Photoshop).
- White-on-black masks are output-only and are not accepted as input for batch operations.
You may edit the deswizzle.toml file directly to customize configurations.
- Configurations can be shared with others or contributed back via a pull request.
- The current version of
deswizzle.tomlis preliminary and may contain bugs; it was created in limited time for the initial release.
⚠️ Note: Thedeswizzle.tomlincluded with this release is an initial draft.
Expect incomplete mappings or errors. Contributions and improvements are welcome.
Feature is disabled for now needs reworked! This feature needs more work. I did have a working test where I used this to add tiles to the swizzle, loaded in the game. You might still be able to get it to work in an older build of this program.
The History Window lets you see opreations performed that you can undo or redo. The undo and redo only effect the edits to the .map currently loaded in memory.
The Draw window shows the current rendering of the field. The Control Panel controls the Draw window. You can also access more detailed configuration in the main menu at the top.
The Custom Paths Window lets you configure how the Field Map Editor search for 3rd party textures, or .map files.
This window lets you see what files are in this field. I plan to make this alittle more useful. You can copy and paste lines of the text.
This was formerly the OpenGL version and now serves as a testing ground for experimental features. Like the Main Application, it also uses OpenGL, GLEW, GLFW, and ImGui.
Experimental features are often trialed here first, then refined and ported to the Main Application if successful. While the Main Application is the recommended choice, the Experimental Application may include features not yet available there.
If you find something in the Experimental version that you'd like to see in the Main Application, let me know — your feedback helps guide future development.
Note: This version requires the
resfolder, which contains essential shaders and textures.
This project is based on the work of the following developers. I referenced their code or videos in the development of this project:
| Developer | Forum / Profile | Source |
|---|---|---|
| Omzy | Link | GitHub |
| myst6re | Link | GitHub |
| Maki | Link | GitHub |
| TheCherno | Link | GitHub |
| TrueOdin | Link | GitHub |
A big thanks to TrueOdin for updating the project’s build system, replacing Conan and AppVeyor with vcpkg and GitHub Actions.
This guide provides detailed instructions for building the project on Windows using the provided build scripts and dependencies.
Ensure the following tools and software are installed on your system:
- Microsoft Visual Studio 2022 (Community Edition or higher)
- Python 3.8 or newer
- Conan 2.x or newer
- CMake
Run the Visual Studio vcvars64.bat script to configure the environment variables for 64-bit builds:
"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat"Ensure Conan 2.x or newer is installed and set up:
python -m venv .\venv
.\venv\Scripts\activate
python -m pip install --user "conan>=2.0" --upgradeConfigure Conan and detect profiles:
conan config home
conan profile detect --name windows_msvc > nul 2> nul & exit 0
conan profile listInstall project dependencies with Conan:
conan install . -pr windows_msvc -pr:b windows_msvc --build=missing -s compiler.cppstd=23 -s build_type=Release -of build/Release
conan install . -pr windows_msvc -pr:b windows_msvc --build=missing -s compiler.cppstd=23 -s build_type=RelWithDebInfo -of build/RelWithDebInfo
conan install . -pr windows_msvc -pr:b windows_msvc --build=missing -s compiler.cppstd=23 -s build_type=Debug -of build/Debug
deactivateCheck the CMake version and list available presets:
cmake --version
cmake --list-presetsConfigure and generate build files using the preset: (Conan loves to add default to the preset.)
cmake --preset conan_windows-release-defaultNavigate to the build directory and build the solution:
cd build
msbuild Field-Map-Editor.sln /p:Configuration=Release
cd ..
dir /s /b bin\*.exe- The resulting executables will be located in the
bindirectory. - Ensure all paths and configurations match your local setup.
- For troubleshooting, review the output logs during each step.
- Make sure you have atleast GCC 14.2.
gcc --version- Note: some of these might not be needed anymore I just keep adding as I need do.
Arch
pacman -Syu sudo
sudo pacman -Syu
sudo pacman -Syu --needed python python-virtualenv python-pip cmake base-devel python-pipx libglvnd libxcb libfontenc libice libsm libxaw libxcomposite libxcursor libxdamage libxtst libxinerama libxkbfile libxrandr libxres libxss libxv xcb-util xcb-util-cursor xcb-util-wm xcb-util-keysyms git less base-devel git curl zip unzip tar cmake ninjagit clone --recurse-submodules https://github.com/Sebanisu/Field-Map-Editor.git Field-Map-Editorcd Field-Map-Editor
./vcpkg/bootstrap-vcpkg.shmkdir build
cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE=../vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=Releasecmake --build .
cd ..- The compiled binaries can be found in the
./build/bin/directory.











