I'm finding that I don't like the difficulty options I chose at the start of System Shock. Is it possible to change them part-way through the game, either via an in-game option or even possibly by editing a save file? It would be frustrating if I have to start completely over at this point.
There's no in-game way to change the difficulty settings.
In the save file, they are stored at offsets 0x15-0x18 of chunk 4001. Unfortunately, chunk 4001 is stored compressed, so you can't just open SAVGAMXX.DAT in a hex editor and change the settings.
Your best bet is to use something like ss1edit to decompress the save file, then edit it (I use
dhex here, but of course any hex editor will do):
$ bin/res --decompress --in-place --res SAVGAM00.DAT $ dhex SAVGAM00.DAT
In a decompressed save file, the difficulty settings will be found near (not necessarily at, depending on the preceding chunks) bytes 0x2C0-0x2C3 of the file; in any case they will always be found 0x15 (21) bytes after your character name, which should appear early in the file, a few bytes after the name of the save file itself.
You could also unpack the chunk and edit it directly, which entails a few more steps but means you don't need to worry about finding the right address, since it'll always be at 0x15-0x18:
$ bin/res --extract --res SAVGAM00.DAT 4001 $ dhex 04001.ss1map $ bin/res --update --res SAVGAM00.DAT --in-place 4001 $ rm 04001.ss1map
I haven't tested this extensively, but it does seem to work. Changing the combat difficulty to 0 won't make enemies that are already hostile passive, but newly spawned enemies will be, and changing the puzzle difficulty to 0 will make puzzles you haven't already solved auto-solve when accessed, for example. Mission difficulty is the setting I'd most expect to have to weird long-term effects when changed, especially if you have it on a low setting, bypass some major objective that isn't mandatory on that difficulty, and then turn it up to a difficulty level where it is mandatory.
Don't forget to keep backups!