https://github.com/quasilyte/fantasy-general-tools
fgtool is a Fantasy General modding toolkit
https://github.com/quasilyte/fantasy-general-tools
go golang mod modding modding-tools retrogaming tool
Last synced: about 1 year ago
JSON representation
fgtool is a Fantasy General modding toolkit
- Host: GitHub
- URL: https://github.com/quasilyte/fantasy-general-tools
- Owner: quasilyte
- License: mit
- Created: 2025-02-13T08:24:46.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-03-13T11:25:30.000Z (over 1 year ago)
- Last Synced: 2025-04-23T22:17:43.392Z (about 1 year ago)
- Topics: go, golang, mod, modding, modding-tools, retrogaming, tool
- Language: Go
- Homepage:
- Size: 55.7 KB
- Stars: 6
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Fantasy General 1 Tools
## Overview
`fgtool` is a Fantasy General modding toolkit.
* Decode game files (SHP->PNG, DAT->JSON, ...)
* Encode game files (PNG->SHP, JSON->DAT, ...)
* Apply binary patches to change some in-game constants
> You would need a legally-obtained copy of the game to use this tool.
## Installation
It's recommended to download the [latest release binary](https://github.com/quasilyte/fantasy-general-tools/releases) for your system.
You can also [build it from sources](_docs/from_sources.md).
## Documentation
* [fgtool.md](_docs/fgtool.md) - how to use this tool
* [data_files.md](_docs/data_files.md) - describes the known parts of Fantasy General file structure
* [units.md](_docs/units.md) - describes unit stats and how to edit them
* [shp_sprites.md](_docs/shp_sprites.md) - sprite and palette related info
## Support
Want to support the author? Add [my game](https://store.steampowered.com/app/3024370/NebuLeet) to your Steam wishlist.
## Useful Resources
Information used to create this tool:
* https://wiki.amigaos.net/wiki/ILBM_IFF_Interleaved_Bitmap
* https://moddingwiki.shikadi.net/wiki/LBM_Format#CMAP:_Palette
* http://blog.ssokolow.com/archives/2018/12/02/resources-for-reverse-engineering-16-bit-applications/
* https://www.luis-guzman.com/zips/PG2_FilesSpec.html
* https://groups.google.com/g/comp.sys.ibm.pc.games.strategic/c/Yt_sxvy67CM - PG1 files info
* https://forum.shrapnelgames.com/showthread.php?p=856948
* https://www.vogons.org/viewtopic.php?t=3944 - DosBox debug guide
Tools used:
* `ndisasm` to dump DOS binary assembly
* `hexl` mode in Emacs to inspect/edit binary files
* basic tools like `grep`, `awk`
* debug-enabled in DosBox (DosBox Debug)
* custom Go scripts to patch the binary