/Hawser

An experimental tool to allow for replacement of embeded strings for GameMaker WAD files

Primary LanguageC#MIT LicenseMIT

Hawser

An experimental tool to allow for replacement of embeded strings for GameMaker WAD files

About

Hawser was just a quick idea I had, originally I wanted to parse the entire WAD and replace occurances of pointers directed at the given string... but that would require an entire WAD parser that knows where these pointers are stored. Instead, I've just opted to replace the pointers in the STRG chunk. Because of this, it probably(?) won't actually work for a game that is more than a few objects. I don't really think I'll be working on this project any further, as it's a large undertaking to have to write an entire WAD parser. For now, this is just a simple proof of concept. Also, this was programmed in 2 hours at 11pm... so naturally the code will be as awful as you expect it to be.

Usage

  • Call Hawser.exe from a command line, provide the path to the WAD, and use the -import or -export commands.
  • -import: takes a path to a valid strings file generated by Hawser and attempts to import replacement strings into the WAD
  • -export: exports strings from the given WAD and generates a strings.txt file, which is a JSON file containing each string, it's offset in the WAD, and an empty replacement field for you to enter the new string in

Notes

  • This tool makes use of a hack that uses the GMEN (AtGameEnd) chunk in the WAD, odds are you're just now learning about this or you have never used it before. If you fulfill either of these, then you don't have to worry.
  • I've only tested this tool with GameMaker Studio 2.3.1, games built using YYC seemingly don't store actual strings aside from function names for caching purposes; so this will likely only work for VM.
  • Also, little testing has been done... so I have no idea if this works on larger scale games.