The current Hugo detection code in Babel-tool looks for the plaintext string “UUID://”, which seems a bit futile as there doesn’t seem to be any existing Hugo games which contain such a string.
However, most recent Hugo games actually do contain an IFID string. Here is for example the story file of Storm over London (storm.hex) at offset 0x15F83:
B7142FD1-4BE4-4BE8-A3BF-E854D90F3540Hugo v3.1 / Library 31031v3.1itandarehereinison RoodyLib Version 4.04.0[ press any key to exit ]waswerethereThe mansion was old, built perhaps in the 19th century. It seemed to be relatively well-kept, not counting a few missing roof tiles, rusty rain gutters about to fall apart and the need for a new layer of paint.gagaingowalkintoinsidethroughoffouttotowardtowardsoutsidelooklexaminexwatch
Of course, to read that, you have to subtract 20 from every character code in order to reverse the Hugo text obfuscation. Anyway, if you know what IFID you’re looking for, it is easy to find. But what if we don’t know the IFID? What if we are trying to extract if from the story file, the way Babel-tool is supposed to work?
Is there a way to know beforehand where to look? It is at a different offset in every game, and the surrounding text is always different.
Or do we have to look through the entire file for a sequence of between 8 and 63 characters, each of which shall be a digit, a capital letter or a hyphen?
Does anyone have a good idea of how to implement this search? As far as I can tell, all Hugo IFIDs are 36 characters long, in the form XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX (8-4-4-4-12), all upper case, which should make things a little easier.