'magic' entry for stars! files by Wumpus - 9 Apr 2006

From Stars!wiki
Jump to: navigation, search

'magic' entry for stars! files (aka 'starsfile' for unix :-)) Sun, 09 April 2006 06:17

I just re-discovered that some time in the dark and dingy past, I'd spent an afternoon learning how to configure the "magic" file for the 'file' command in unix to recognise stars! files and print some of the basic game information.

Probably pretty useless, but hey, maybe someone wants it, so here goes:

0       leshort 0x2010         
>2      string  J3J3    Stars! 
# Version number, an leshort at offset 10
>>10    leshort 0x1281  1.10a, 
>>10    leshort 0x2A2B  2.6/7i?,
>>10    leshort 0x2A60  2.6/7jrc3,
# Unknown version              
>>10    leshort <0x1281 Unknown version %04X,
>>10    leshort >0x1281        
>>>10   leshort <0x2A2B Unknown version %04X,
>>10    leshort >0x2A2B
>>>10   leshort <0x2A60 Unknown version %04X,
>>10    leshort >0x2A60 Unknown version %04X,

>>6     lelong  x       Game id 0x%X,
>>12    leshort x       Turn %d,

# Flags, an leshort at offset 16
>>16    leshort&0x0007  0x0000  xy file,
>>16    leshort&0x0007  0x0001  x file,
>>>16   leshort&0x0100  0x0100  (save&submit),
>>>16   leshort&0x0100  0x0000  (save only),
>>16    leshort&0x0007  0x0002  hst file,
>>16    leshort&0x0007  0x0003  m file,
>>16    leshort&0x0007  0x0004  h file,
>>16    leshort&0x0007  0x0005  r file,
>>16    leshort&0x0007  0x0006  Unknown type %x,
>>16    leshort&0x0007  0x0007  Unknown type %x,

>>16    leshort&0x0400  0x0400  Mutliple turns,
>>16    uleshort&0xFBF8 >0      (Unknown flags 0x%04X)

# Player number and salt, leshort at offset 14
>>14    leshort&0x000F  x       Player %d,

I'll probably put this on Sourceforge or something - improvements definitely welcome I suspect the "magic" formatting is pretty godawful for a start... it was my first and thus far only attempt at writing a "magic" recipe

Yay for random obscure stuff found on the hard drive (actually I knew I had done this once upon a time, but had believed it to be lost in one of my semi-regular hard-drive nukings ).

'magic' entry for stars! files (aka 'starsfile' for unix :-)) Sun, 09 April 2006 07:46

Ok, after chatting with a couple of people on IRC, I gather this is even more obscure than I took it for

"file" is a neat little program that is installed by default on most unix (and linux) systems that identifies what kind of stuff is in any given file - beyond "it's a GIF file" or whatever, it will often tell you thinks like the image dimensions etc. Essentially a really basic file identifier, and a lot more reliable (and detailed) then just looking at the file extension.

"file" recognises files using a set of rules defined in a configuration file called "magic"... there's generally one that comes with the distribution stored somewhere in /usr/share (/usr/share/file/magic in my case), and another one to store system-local changes - locate in /etc/magic in my case (your distribution may vary).

If you whack that bunch of quoted text above into your /etc/magic or equivalent thereof ("man file", section FILES, should tell you where your local configuration file is stored), then 'file' will now know about stars! files and tell you a bit about them.

For example:
****@bregalad 21:42:36 ~ $ file gath.m4
gath.m4: Stars! 2.6/7jrc3, Game id 0x5ED866, Turn 64, m file, Mutliple turns, (Unknown flags 0x2000) Player 3,

(The "Player 3" is not a mistake - it's an artifact of the fact that Stars! counts from 0-15 for player numbers, but displays it as 1-16. I would have liked to be able to add 1 before displaying the player number, but don't know how to do this in a magic recipe... anyone?)