This has been raised before a long time back, but I'm not much the wiser
from the answers. I'd like to create a .z3 game.
According to:
http://mirror.ifarchive.org/if-archive/programming/inform6/library/old/Index
the last Inform library to support v3 Z-machine games was 6/2. I've
tried using this (and 6/1) with the latest compiler but all I get is
lots of opcode unavailable error messages of the form:
"ParserM.h", line 385: Error: Opcode unavailable in this Z-machine
version "call_vs"
I'd like to try the older v5 libraries which have been mentioned in this
newsgroup in the past, but they're no longer stored in the IF Archive.
Another option might be that I need an older compiler to go with the
library (currently I'm using 6.31N). Roger Firth's FAQ suggests the
Inform 6.15 compiler:
http://www.firthworks.com/roger/informfaq/ii.html#6
So, does anyone have any of the older v5 libraries to hand that I could
try or any older Inform executables e.g. 6.05 or 6.15, perhaps for
DOS/Windows?
I tried to compile both the 6.05 and 6.15 code, but my limited C
knowledge failed and my modern compiler choked.
Thanks for any assistance.
Sam.
http://ifarchive.org/if-archive/infocom/compilers/inform5/library/
http://ifarchive.org/if-archive/infocom/compilers/inform5/library/old/
> Another option might be that I need an older compiler to go with the
> library (currently I'm using 6.31N).
That may well be the case.
> I tried to compile both the 6.05 and 6.15 code, but my limited C
> knowledge failed and my modern compiler choked.
"cc -o inform *.c" should work. Conceivably you might have to change a
"#define ARCHIMEDES" line in header.h to "#define LINUX".
--Z
--
"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the borogoves..."
*
9/11 did change everything. Since 9/12, the biggest threat to American
society has been the American president. I'd call that a change.
> http://ifarchive.org/if-archive/infocom/compilers/inform5/library/
> http://ifarchive.org/if-archive/infocom/compilers/inform5/library/old/
Darn. I thought it was odd that they were missing ... I was looking for
them in the /programming directory where I think were at one point. My
googling didn't touch on the links above either. Ah, well.
> That may well be the case.
Indeed it was - your directions sorted out my compiler and I was able to
compile the 6.15 into a binary which let me generate a trivial v3 game
example. Hurrah!
Thanks a lot, Andrew - you're a star!
One last question - if the latest version of the inform compiler no
longer supports compilation of v3 games, why is there still a switch for
it? It might be less confusing, if it no longer supports v3, to
explicitly drop that switch and make it 5,6,8 only. (Does it support v4
anymore? Not that it matters - I can see why someone would want to
create v3 games, but can't imagine why one would want to generate v4).
Sam.
Samwise wrote:
> anymore? Not that it matters - I can see why someone would want to
> create v3 games, but can't imagine why one would want to generate v4).
Why exactly would someone want to create a v3 game?
Regards,
Victor
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFISAptoiOrMwvIZLwRAi8zAJ9lfQWeAcy2W+cZC+lQv145LNOB1QCfejQP
bT3kIRcero6sTT/qCzXXjfk=
=YF+p
-----END PGP SIGNATURE-----
> Why exactly would someone want to create a v3 game?
>
> Regards,
> Victor
To write a game that will run on a v3-only interpreter, such as one
built on a platform with limited resources, particularly RAM. The same
reason doesn't really extend to v4 as the format's system requirements
are analogous to those needed for v5 games.
For that reason, it's a shame v3 is no longer supported by the latest
versions of Inform. I guess it's a pretty small use-case, tho.
Thankfully all the legacy Inform code and documentation is available
from the IF archive.
Sam.
> To write a game that will run on a v3-only interpreter, such as one
> built on a platform with limited resources, particularly RAM.
and what kind of device where you thinking of?
Specifically, a BBC Micro Model B which has less than 32K to play with.
Sam.
And I'm interested in such a game as something new to play in
INFGMB ... (which can handle some .z5, but plays nicest with .z3) ...
So, if any groovy games come out of this, I want, and I'm willing to
beg :)
Yep, I'm sure there's probably plenty of other interpreters which work
better with z3 games - I haven't checked, but other 8-bit computers like
the C64/128 and Spectrum +3 which have interpreters that can cope with
simpler z5 games, will probably run .z3 games at a much more playable
speed. It's easy to forget that IF was very popular in such retro
communities in the 80s.
I plan to put together an easy-to-use bundle of apps to allow users to
develop .z3 games which can be used with a Model B beeb. If anyone
makes use of it to create any adventures, you will of course be able to
just take the .z3 files and use them on the GameBoy. I have a game in
the works myself but it's an Inform port of an old DOS game and I'm not
yet sure if it will fit into a v3 machine. I'll let you know if I get
the z3 version working (tho be warned - most ppl hated the game I'm
going to try to port, first time round ... :)
I won't splurge any more info cos I've never touched Inform before and I
suspect it's going to take me an age to get anywhere with it. I've
managed to get the first couple of rooms described though ... :)
Sam.
Oh, games that most people hate seem to be some of my favorites ;)
Good luck with your project; you've got a fan-in-waiting ...
> For that reason, it's a shame v3 is no longer supported by the latest
> versions of Inform. I guess it's a pretty small use-case, tho.
> Thankfully all the legacy Inform code and documentation is available
> from the IF archive.
I suspect its due to Inform 7. I really can't imagine that running well
under any platform that required the Z3 spec. After all, it is
relatively slow, or was at any rate on some devices.
Perhaps I should make a new thred for this but lets see if it takes.
How are people finding the code optimization? Yes, we're aware of
initial problems with it for now, but are games running any quicker?
Running any faster on slower hardware?
best
-James
I think you should upgrade to Atari ST or Amiga, I was able to run z5 games on them ;)
By that logic, I might suggest you buy a Sony PlayStation 3 - it
supports real-time 3D graphic adventures. Gotta be better, right? :)
Sam.
The dropping of v3 support happened long before I7. I think it was
nailed into its coffin by the class features of I6. (The early
releases of I6 would let you generate v3, as we've seen, but I think
it wouldn't work if you included any class declarations. And nobody
did any work to keep the I6 library v3-safe.)
I7 on v3 is impossible.
--Z
--
"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the borogoves..."
*
If the Bush administration hasn't shipped you to Syria for interrogation, it's
for one reason: they don't feel like it. Not because you're innocent.
> The dropping of v3 support happened long before I7. I think it was
> nailed into its coffin by the class features of I6. (The early
> releases of I6 would let you generate v3, as we've seen, but I think
> it wouldn't work if you included any class declarations. And nobody
> did any work to keep the I6 library v3-safe.)
>
> I7 on v3 is impossible.
Yes, I think it would be extraordinary if anyone were to expect v3
support from Inform 7!
What I meant when I said that it was a shame that v3 games were no
longer supported, was that it appears as though v3 support has sort of
been dropped by the way-side without any real intention - I haven't seen
(though I may well just have missed it) a specific decision to drop
support in the 6.20 version of the compiler - it appears to have just
been ignored until it had long-since stopped working. It just seems a
shame that the v3 support couldn't have been left frozen in the current
code-base. Perhaps by taking the 6.15 source, cutting out any v4+ stuff
and then if the v3 switch is called, the game is sent to the 6.15-based
compiler instead of the latest one. It's quite easy for most newbies to
swap to the old pre-6.3 library code, but having to re-compile an old
version of the compiler could be quite daunting (I got stuck! :). In
fact, the old library could continue to be distributed alongside the
latest one, but be renamed to be a v3 specific library so it would be
even easier to find - no fuss.
I mean, why is there a v3 switch in the latest codebase if it simply
can't compile those games anymore?
Ah, well - enough of my whinging ... with a little bit of effort, it's
not too hard to turn back the clock and step back in time. The IF
archive is a wonderful time machine! :)
Thanks again, Andrew.
Sam.
P.S. The class declarations thing you mentioned - I'm not Inform-fluent
yet - is that a big missing thing? I mean, which is probably better for
v3 development today - the last version of Inform 5 or the Inform
6.15/6.2 setup I've been looking at?
> but having to re-compile an old
> version of the compiler could be quite daunting (I got stuck! :). In
> fact, the old library could continue to be distributed alongside the
> latest one, but be renamed to be a v3 specific library so it would be
> even easier to find - no fuss.
Mh ?
I admit I know well how to use GCC, but I have compiled successfully
(and without much warnings) both Inform 5.2 and 5.5 and a series of
thsts shows me that they compiles fine shell.inf and the examples in the
DM1 without issues; and also I have patched, albeit crufty for now, the
<Strong> *Special bug and the identical <Mild> *Special bug in the 5/0
library; and with 5/0 library I have a shell.z3 around 22K so plenty of
space for at least an IFComp-sized IF...
I don't promise nothing, because I hate vaporware (if some has noticed,
I never talk on WIPs of mine) but perhaps I can at least cobble together
someday a small IF (in the 10-20 rooms, simple or no puzzles range,
something like ditch.inf or mhpquest.inf)
Best regards from Italy,
Dott. Piergiorgio.
P.s. I'm really happy of the current interest in old IF engines;
currently I'm playing with the LADS-to-inform6 converter ;)
That switch is still marginally useful, as I6.31 can compile simple V3
files, provided that they don't use any part of the veneer that uses v5+
opcodes (basically, the class system). I still occasionally need to write a
v3 test file for checking interpreters, and I6.31 can still handle that.
David
> I plan to put together an easy-to-use bundle of apps to allow users to
> develop .z3 games which can be used with a Model B beeb.
Just in case you didn't know, Dave Bernazzani put together a stripped-
down version of the Inform 6/2 library a few years ago, meant to be
used to produce sub-32KB v3 games. It's here:
http://www.ifarchive.org/if-archive/programming/inform6/library/contributions/minform.zip
/Fredrik
Sorry, very cheeky here - but are you saying you might have some test
files for checking interpreters against the Z-Machine spec? I'm
currently testing a new one which is in development. One version is v3
only and the other is v3 - v5. If you have anything we can run against
either version, that would be much appreciated. They both pass CZECH,
but I'm not sure how comprehensive that is (despite the name).
As for the class system thing, I've found that v6.15 of I6 will compile
a simple test class I have which includes a couple of class definitions
for Room and Furniture:
Class Room
with description "A bare and featureless room.",
has light;
Class Furniture
with before [;
Take,Pull,Push,PushDir:
print_ret (The) self, " is too heavy for that.";
],
has static supporter;
It's only v6.20+ which chokes - in effect a regression.
What I'd like to know is whether I'm going to run into more problems
later down the line - is v6.15 going to struggle if I build on those
classes?
Repeating the same question I had before (which is what I'd like an
expert opinion on), which would be better to develop a new v3 game with
now - the latest version of Inform 5 or Inform 6.15 ? And, if it is the
latter, which library would be better to use with it - the official
Inform 6.2 or Dave Bernazzani's mInform 1.1?
Sam.
No, I didn't know about that - but it looks great!
This looks like what I was talking about when I mentioned stripping out
the v5+ stuff from the Inform 6.2 library and making it v3 only.
I'm not too sure yet that I understand the ramifications of everything
that's been removed from the library but I have managed to recompile my
simple example. The size went from 38.5 KB with the official Inform 6.2
library down to 22 KB with mInform 1.1. I'll see if I can find an
address for him as it sounds like he has some experience of using Inform
with lower-spec interpreters as I'm trying to do.
Thanks very much for that pointer - very useful!
Sam.
Probably not unless you use the Class.create or Class.Destroy methods.
Or the :: (superclass) operator, that might go hideously wrong too.
So does that mean you'd recommend developing v3 with 6.15 rather than
Inform 5?
I assume the choice of library (official 6.2 versus mInform 1.1) is
going to be dependent on what the game itself is doing ...
Sam.
Yes, up until the point where it doesn't work. :)
> I assume the choice of library (official 6.2 versus mInform 1.1) is
> going to be dependent on what the game itself is doing ...
Yes.
--Z
--
"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the borogoves..."
*
> Yes, up until the point where it doesn't work. :)
lol
You're staying sat on that fence, huh? :)
I'm just trying to get some confidence that I stand some chance of being
able to finish a v3 game with I6.
Ah, well. It works for my first example, I'll press on in the future
and see how far it goes.
Cheers,
Sam.
No. I've occasionally written very simple v3 examples to test a few things,
but I've never kept them or assembled them into any sort of test set, sorry.
David
Do you see this as something worth doing? It might be handy to stash it
in the archive for someone else to make use of. I personally am
sticking with I7 but there are still some I6 people around.
--
Best
-James-
Tests are always a good idea, though I'd start by looking at something like
TerpETude to see if it would compile under V3 before writing my own.
David
I think TerpETude is more for testing v5 interpreter features. CZECH
has a v3 version, but the docs do suggest it's not as comprehensive as
it's name suggests.
Sam.
It's for testing whichever features were hot issues in ?1998 when I
wrote it. If it compiles in v3, run it.
--Z
--
"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the borogoves..."
*
If the Bush administration hasn't subjected you to searches without a
warrant, it's for one reason: they don't feel like it. Not because of
the Fourth Amendment.
Andrew, I didn't intend to belittle TerpETude - certainly we're using it
to test the v5 interpreter. However, AFAICT, it tests a lot of
different colours, styles, fonts etc. which aren't appropriate to the v3
games. I did try compiling it to v3 but the compiler choked on a lot
of opcodes not available under v3.
I could try commenting out a lot of the v5 stuff, but I wasn't sure how
many of the tests would be left. Not tried that yet, anyway.
I found the version info test which shows you what the interpreter
claims to be support to be particularly useful btw! Thanks ... :)
CZECH, on the other hand, compiled to v3 with the latest version of
Inform out of the box so that's why we've been using it, though I think
it covers a different set of opcodes to Etude. Indeed, the docs for
CZECH refer to a possible future attempt to merge them together to
create a more comprehensive suite, licensing permitting, though I guess
that never happened.
Sam.