Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Wanted: A TXD Decompiler for Inform 7 Games

579 views
Skip to first unread message

Al

unread,
Nov 9, 2009, 6:07:19 PM11/9/09
to
It would be nice if someone would develop a TXD Decompiler
for Inform 7 games for both the Mac and Windows.

It would decompile these 3:

.z5
.z8
glulxe


Alex Rosslyn

unread,
Nov 9, 2009, 6:29:47 PM11/9/09
to

There are decompilers that turn .z5 and .z8 games to Inform6, but not
Inform7. I guess someone could write a de-decompiler that would turn
i6 code to i7.

And the Z-Machine and Glulxe are different, so you would need two
separate compilers.

> for both the Mac and Windows

Mac, Windows, *and Linux*

Jim Aikin

unread,
Nov 9, 2009, 7:07:14 PM11/9/09
to
Alex Rosslyn wrote:
>
> There are decompilers that turn .z5 and .z8 games to Inform6, but not
> Inform7.

Do tell. I had a quick Google, and also tried a few directories in the
Archive, with no result.

Where would I find such a decompiler?

--JA

vaporware

unread,
Nov 9, 2009, 7:17:02 PM11/9/09
to

This page has decompilers for a few different systems, in various
states of repair:

http://www.exmsft.com/~benrg/if-decompilers/

vw

Nikos Chantziaras

unread,
Nov 9, 2009, 7:36:43 PM11/9/09
to

If you're thinking of using that in order to get your lost source code
back (the one after the "backup disaster"), then I'm afraid you're in
for a disappointment :P A decompiler does not restore source code. It
just produces low-level code that has nothing to do with the original
source code other than producing the same results when you run it.

Andrew Plotkin

unread,
Nov 10, 2009, 12:31:33 AM11/10/09
to
Here, Nikos Chantziaras <rea...@arcor.de> wrote:
> On 11/10/2009 02:07 AM, Jim Aikin wrote:
> > Alex Rosslyn wrote:
> >>
> >> There are decompilers that turn .z5 and .z8 games to Inform6, but not
> >> Inform7.
> >
> > Do tell. I had a quick Google, and also tried a few directories in the
> > Archive, with no result.
> >
> > Where would I find such a decompiler?

When I see this question, I think of TXD, which is on the Archive
(under infocom/tools/ztools). Then I remember that while TXD produces
accurate Z-machine assembly code, the syntax is different from what
the I6 compiler accepts. For that, use Reform (already posted in this
thread, <http://www.exmsft.com/~benrg/if-decompilers/>. It's also in
the Archive under infocom/tools/reform.)

> If you're thinking of using that in order to get your lost source code
> back (the one after the "backup disaster"), then I'm afraid you're in
> for a disappointment :P A decompiler does not restore source code. It
> just produces low-level code that has nothing to do with the original
> source code other than producing the same results when you run it.

This is true. And it would be true at both levels. If someone were to
write an I6-to-I7 "decompiler", it would generate nasty, bloated,
opaque I7 code. (Leaving aside the uninteresting trick of just
including all of the I6 code as a single (- ... -) block.) The
original I7 rule structure could be recovered only by pattern-matching
and a lot of guesswork.

The output of running TXD on an I7-compiled game is... well, not good
for much.

--Z

--
"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the borogoves..."
*

Otto Grimwald

unread,
Nov 10, 2009, 6:59:04 AM11/10/09
to
Jim Aikin wrote:

> Where would I find such a decompiler?
>


it's called TXD

http://www.inform-fiction.org/zmachine/ztools.html

Alex Rosslyn

unread,
Nov 10, 2009, 4:44:48 PM11/10/09
to

So Z-Code disassemblers/decompilers are as useless as actual
disassemblers/decompilers?

Damn :(

Andrew Plotkin

unread,
Nov 10, 2009, 5:27:19 PM11/10/09
to
Here, Alex Rosslyn <black....@gmail.com> wrote:
>
> So Z-Code disassemblers/decompilers are as useless as actual
> disassemblers/decompilers?

They *are* actual disassemblers/decompilers.

I wouldn't call them useless; I was even overstating when I said "not
good for much". Sometimes all you want is a dump of the Z-machine
strings table, and then TXD is your puppy.

Alex Rosslyn

unread,
Nov 11, 2009, 5:39:03 PM11/11/09
to
On Nov 10, 7:27 pm, Andrew Plotkin <erkyr...@eblong.com> wrote:

Allow me to rephrase that:

So Z-Code disassemblers/decompilers are as useless when it comes to
showing human-readable code as the disassemblers/decompilers for other
non-IF languages?

Andrew Plotkin

unread,
Nov 11, 2009, 5:49:49 PM11/11/09
to
Here, Alex Rosslyn <black....@gmail.com> wrote:
> On Nov 10, 7:27�pm, Andrew Plotkin <erkyr...@eblong.com> wrote:
> > Here, Alex Rosslyn <black.line...@gmail.com> wrote:
> >
> >
> >
> > > So Z-Code disassemblers/decompilers are as useless as actual
> > > disassemblers/decompilers?
> >
> > They *are* actual disassemblers/decompilers.
> >
> > I wouldn't call them useless; I was even overstating when I said "not
> > good for much". Sometimes all you want is a dump of the Z-machine
> > strings table, and then TXD is your puppy.
>
>
> Allow me to rephrase that:
>
> So Z-Code disassemblers/decompilers are as useless when it comes to
> showing human-readable code as the disassemblers/decompilers for other
> non-IF languages?

Yep.

(Sorry, I should have made it clearer that I was agreeing with you.)

Gene Wirchenko

unread,
Nov 12, 2009, 6:17:59 PM11/12/09
to
On Tue, 10 Nov 2009 13:44:48 -0800 (PST), Alex Rosslyn
<black....@gmail.com> wrote:

[snip]

>So Z-Code disassemblers/decompilers are as useless as actual
>disassemblers/decompilers?

Yes. There is a lot of structure and information in source code.
Very little of that can be recovered.

Sincerely,

Gene Wirchenko

Alex Rosslyn

unread,
Nov 13, 2009, 8:05:58 PM11/13/09
to
On Nov 12, 8:17 pm, Gene Wirchenko <ge...@ocis.net> wrote:
> On Tue, 10 Nov 2009 13:44:48 -0800 (PST), Alex Rosslyn
>
> <black.line...@gmail.com> wrote:
>
> [snip]
>
> >So Z-Code disassemblers/decompilers are as useless as actual
> >disassemblers/decompilers?
>
>      Yes.  There is a lot of structure and information in source code.
> Very little of that can be recovered.
>
> Sincerely,
>
> Gene Wirchenko

Well as long as I can get the printed text back, everything is fine.

The rest is just code.

0 new messages