I'd like to introduce 'PE-MAN', project for a versatile savegame editor for the legacy space-RPG Planet's Edge (PE) and basis for similar work.
As a seasoned legacy (DOS) gamer, as well as a long-term Linux user, developer and fan of PE in specific, I felt the (non-free/binary) options available for 'tuning' binary savegames and even improving gameplay, were unsatisfactory. Based on some early PE reverse-engineering notes I made years ago, I decided to turn that knowledge and new findings into an (easy-to-use) code base.
PE-MAN is capable of mitigating some of the game's shortcomings and pains with character cloning/stats, backpack items management, resource scarcity and more - instant star-system jumps and planetary blockade bypassing are in the making.
The Bash 'dialog' script is released open-source under AGPL, currently supporting game and OS locales EN and DE.
The main intent of PE-MAN was to create the basis for a freely available and extensible savegame editor, with minimal dependencies, efficient enough to run fast even on RasPI4, while still providing the most simplified, fast and comfortable UX possible for Linux (also tested with Cygwin in Win11).
It demonstrates accessing and manipulating savegame binary files at byte level in Bash; significant effort was put into a DRY implementation, with refactored (common) functions, for most 'dialog' menus, as well as for all separate PE-MAN features, also handling lots of potential error situations.
Most of the UI localization and color profiles for the 'dialog' menus have been extracted into dedicated files, making modifications and extensions relatively easy.
PE-MAN even runs standalone, without original game files in test mode, to try out all implemented dialog features and observe the resulting modifications in the (also shipped) mock binaries.
You can also digest the results of my reverse-engineering efforts and findings in the provided docs, the code and its comments, about the inner workings of PE - what's being stored in which address (ranges) in savegames or game files.
The code also should provide many examples, on how to use Bash and dialog (ncurses), for intuitive and quick navigation in more complex and advanced menus.
The project should therefore be very handy for e. g. educational purposes, or as a basis for similar work in other implementations, be it for PE, or for any other legacy (DOS) game, which uses savegames with a static structure.
----------------------------------------------
PE-MAN features and screenshots
It can edit (within the specific property value boundaries):
- crew member stats and skills
- crew member backpacks
- in-team items transfer (BP2BP)
- long-range items transfer (WH2BP)
- backpack item sorting modes
- moonbase tech. level (un-/locking)
- ship plans level (un-/locking)
- moonbase warehouse/workshop
- build unlocked equipment items
- build unlocked ship components
- build unlocked ship types
- create any mission item
- moonbase resources
- stock up on any (even undiscovered) required material
- shipyard bay
- create or remove any of up to 3 additional (unlocked) vessels
- heal or revive any crew member + armor
- (soon: instantaneous jumps to any stellar system POI)
- (soon: bypass or eliminate any planetary scan blockers)
Of course, PE-MAN can be used as a classic, full-blown 'cheater', creating resources, items and ships at will and maxing-out crew stats and skills.
But it can also just help with decent inventory / items management, sparing the ususal mess, when cluttering planetary surfaces as temporary/permanent object caches. Instead, simply save, transfer stuff you don't need to the moonbase and re-load.
Likewise, save, sort your backpack by dictionary or items type and re-load, to have your stuff intuitively ordered in the backpacks, instead of the ugly and painful default LILO stacking.
No more painful iterations of search, drop and pick for each and every item you want to swap in your team: save, swap multiple items between crew backpacks, re-load - done.
It's even possible to set up custom scenarios, by e. g. using pre-defined crew stats and/or moonbase tech/resources, or just starting with a decent ship or equipment.
Defuse the risk of permanent crew stats loss upon crew member deaths and sore re-cloning attempts - now simply resurrect any body, or heal the critically wounded in dire situations, as long as you are still able to save with one character alive and re-load.
A side-effect of raising moonbase tech. level to 2: you get rid of the annoying security question that appears, when returning with the first discovered tech. or ship plans to the moonbase.