I am doubtful that there is a positive answer to this: Is there some software or method of retrieving the I7 source code of an IF (the .ni file) from the .gblorb file? My hard drive died, and I lost some things, including the source code to an IF I had completed; fortunately, I had uploaded it to the Archive, so I have the .gblorb.
You mean one can go from .gblorb to I6? Wouldnāt I6 contain all the same information (plus some) contained in the I7 .ni file, just in a different language?
If I can get it in I6, I can learn I6. How can I disassemble the .gblorb into I6?
EDIT: What Iām most interested in is the text. Itās a small thing, and the mechanics are simple and easily re-made.
How do I go I7 ā Glulx ā I6? All these file types and interpreters and virtual machines have me mixed up. The only file I have is the .gblorb, compiled by I7.
Right, so youāve compiled I7 into Glulx. Now you need to extract the .ulx file from the blorb packaging, then run it through the Inform 6 disassembler (itās called Disinform or Uninform or something like that).
This contains a Glulx file which lets you manipulate blorb files in various ways, including extraction. It shouldnāt be too hard to figure out. Once youāve extracted all the data from the blorb file, you should have a file called STORY0 (or something like that). This is your Glulx file which you need to disassemble to get at the text.
When I ran the windows binaries, it worked fine, but it just outputs the source to the console, so youāll need to redirect it to a file. The command for that would be something like
And then you should have inform 6 source code for your game in a file called āsourcecode.infā.
I was thinking something more like the Babel suiteā¦ Iām now quietly amazed at a compiled GBlorb āgameā that is able to perform blorb operations.
I know that this is a bit later than when this was started, but I tried doing this myself and mrifk keeps saying that there is an invalid opcode 181. is there anyway to fix this?
mrifk hasnāt been updated in about a decade, from the look of it, so itās missing a lot of more recent opcodes. The only way to fix this would be to edit the source code and compile a new version. No idea how hard that would be, but the source code for mrifk is available on the if-archive.
Does anyone have knowledge of Haskell or how to compile on it? If not, I could figure it out eventually. Iād be glad to add the updated Mrifk_disasm.hs as well for all the new-ish opcodes, if someone can compile. Then we could have a working mrifk.
Also this thread finally got me to read Eye of Argon. Yay.
Aschulz, thanks for the pointer! I tried this last night and succeeded.
Download the compiler from here: haskell.org/ghc/
I used version 6.10 because it was smallerā¦
set a path to wherever you install the compiler
ie; path G:\ghc\ghc-6.10.1\bin
Modify the Mrifk_disasm.hs file and add the opcodes you want. The spacing in this file IS important.
I had to add these to decompile a game:
(0x73,(āstreamunicharā, 1,0,0, OStreamStr)),
(0x178,(āmallocā, 1,1,0, OSpecial)),
(0x179,(āmfreeā, 1,0,0, OSpecial)),
(0x180,(āaccelfuncā, 2,0,0, OCallI)),
(0x181,(āaccelparamā, 2,0,0, OCallI))]
Compile with: ghc --make -fglasgow-exts -o $@ Mrifk.hs
Enjoy the new .exe!