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
fonts
folder.
Note: This version also requires the
res
folder, 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
.map
files if present. - Swizzle — Load a directory of swizzled textures, including
.map
files if present. - Swizzle as One Image — Load a directory of swizzled “as one image” textures, including
.map
files if present.⚠️ May not load correctly without a.map
file. Might require enforcing FFNX formatting when.map
is missing.
- Full Filename Image — Load a directory of full filename textures, including
.map
files if present (.toml
supported).- Uses the
Deswizzle.toml
configuration 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.toml
configuration. - Deswizzle (Full Filename) — Output deswizzled textures using the full filename convention (based on
deswizzle.toml
). - CSV — Outputs a
.csv
file containing a dump of all the tiles found in the.map
file.
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.toml
is preliminary and may contain bugs; it was created in limited time for the initial release.
⚠️ Note: Thedeswizzle.toml
included 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
res
folder, 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 |
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" --upgrade
Configure Conan and detect profiles:
conan config home
conan profile detect --name windows_msvc > nul 2> nul & exit 0
conan profile list
Install 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
deactivate
Check the CMake version and list available presets:
cmake --version
cmake --list-presets
Configure and generate build files using the preset: (Conan loves to add default to the preset.)
cmake --preset conan_windows-release-default
Navigate 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
bin
directory. - Ensure all paths and configurations match your local setup.
- For troubleshooting, review the output logs during each step.
- Make sure you have atleast GCC 15.
gcc --version
Ubuntu
sudo apt update
sudo apt install -y python3 python3-venv python3-pip cmake build-essential
```p
Arch
```sh
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
Ubuntu
python3 -m venv venv
source venv/bin/activate
pip install conan
Arch
pipx install conan
pipx ensurepath
source ~/.bashrc
I was getting permission errors in wsl. So I copied my files to my home directory to try again. I donno why it was happening. Below I am making the projects folder and i'm removing existing files and i'm cloning the files. The remove step is optional. I had old files in that directory.
mkdir -p ~/projects
rm -rf ~/projects/Field-Map-Editor
git clone --branch remove_sfml https://github.com/Sebanisu/Field-Map-Editor.git ~/projects/Field-Map-Editor
cd ~/projects/Field-Map-Editor
git status
git pull
conan config home
Ubuntu
conan profile detect --name ubuntu24 > /dev/null 2>&1 || true
Arch
conan profile detect --name arch > /dev/null 2>&1 || true
conan profile list
Ubuntu
conan install . -pr ubuntu24 -pr:b ubuntu24 --build=missing -s compiler.cppstd=23 -of ./linux
Arch
conan install . -pr arch -pr:b arch --build=missing -s compiler.cppstd=23 -of ./archlinux -c tools.system.package_manager:mode=install
deactivate
cmake --list-presets
rm -rf ./archlinux/build/Release/
cmake --preset=conan_linux_release-release
cmake --build ./archlinux/build/Release/
- The compiled binaries can be found in the
./bin/
directory.