The Puny BuildTools 2.0 are out! (Z-machine project management CLI)

The Puny BuildTools 2.1 - code name: Pillars of Creation are out!

Changelog:

  • removed ‘trsread’ from binary distribution
  • added ‘trs80-tool’ to binary distribution
  • added Infocom’s MS-DOS .z5 interpreter version 6J
  • TRS-80 modules now use ‘trs80-tool’ to list the disk directory
  • MS-DOS module now builds projects with Infocom interpreters by default (lower memory footprint)
  • added OrbStack resource file ‘.punyorb’ for MacOS hosts
  • modules using Wine now disabled on MacOS (TRS80 Model 3 & 4), as Wine doesn’t work in OrbStack
  • updated ‘installation’ chapter in the documentation
  • added ‘limitations’ chapter to the documentation

As usual, existing users can type kenobi -u in terminal to update to the latest version.

If you haven’t installed the Puny BuildTools yet, get them from here: GitHub - ByteProject/Puny-BuildTools: PunyInform CLI and retro disk image factory for Infocom Z-machine games

I’ve teamed up with @sijnstra for a workaround to support building TRS80 targets on MacOS / OrbStack hosts. Fingers crossed! :fingers_crossed: :tardis:

6 Likes

I’m currently experiencing an error related to the version of Glibc included in my Ubuntu-based WSL. If I recall, the version shipped from the Microsoft Store at the moment is 20.04.

~/FictionTools/inform: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34’ not found (required by ~/FictionTools/inform)

I could compile Inform from source, which is easy enough, but when I update to the next version of the build tools, it bitches about file changes not synching up with the git repo.

3 Likes

You can easily upgrade your Ubuntu distro to the lastest version, regardless of what is installed from the Windows store.

When in Terminal do this:

sudo apt update && sudo apt full-upgrade

now restart Ubuntu

sudo do-release-upgrade

Once that ran, you have the latest Ubuntu version.

I would recommend doing the installation steps again, especially the part that involves amitools and Wine

2 Likes

Is the PunyBuild available on ifarchive or do I have to get it from GitHub?

3 Likes

So I went to Github and got into the .bashrc file. I’m skipping various disk formats right now. What I wonder is about this end step:


Type below command and enter the path to your PunyInform installation, then save.

nano ~/FictionTools/.pi6rc
Congratulations! You've completed the setup.

I wonder is that the directory on /usr/share or what? What’s the directory for standard install? Can you give me the exact text/line for it?

Sorry, but .rc files are of unknown skill to me.

Also, it builds of PunyInform source file, right?

  1. Can it build standard library Inform6 source files?
  2. How about Inform6 source with no library at all?
  3. How about precompiled z5 games?

TIA

First of all, you get the Puny BuildTools only from Github. It’s a live system which needs a GIT repository to update itself.

It depends on where you have installed PunyInform, the library itself. In my installation, the resource file looks like this:

# Puny BuildTools pi6 resource file

# path to the PunyInform library files. if your path contains whitespaces, you need to provide it as an escaped string.
lib=~/Projects/PunyInform/lib/

The resource files are basically Bash script extensions which contain data that is read on demand.

Yes.

Here are the answers to your other questions:

  1. No. But Inform 6 standard library games are way too big and that makes it behave way too slow on old hardware like the Commodore 64, so this has never been the aim of the Puny BuildTools and likely never will be.
  1. Nope. Only PunyInform sources.

  2. If you have a precompiled .Z5 game and you want to distribute it on various retro disk images, that is possible. The documentation also mentions how you can do it. But keep in mind that a full featured 256k file is way too big for some of the oldschool systems. To be on the save side, I recommend not going beyond 140k. Also, if the Z5 file had been compiled against the standard library, you might run into performance issues when building a disk image with it, especially for 8-bit systems. For DOS, Amiga or Atari ST it should be okay. Z5 files build with PunyInform should perform well on any of the supported targets.

@fredrik Would you like to add something here? Your brain is usually bigger than mine :smiley:

3 Likes

PS: sorry for the late reply. I am kinda on an IF / retro hiatus while I focus on my new job. No worries, I’ll be back with a vengeance :slight_smile:

2 Likes

What Stefan said, only:

2: If you pretend to write a PunyInform game, but you don’t actually include any of the library files, I think you could use the tool chain to compile a game which doesn’t use a library.

2 Likes

I read something about replacing PunyInform library with my own custom made library. But I think if I do use my own custom library, it’d be easier for me to just package my own z3/z5 programs for it.

I’ll have to watchout for Atari (90K) and C64 (??) limitation.

Thank you for the replies!

For the Commodore 64 there is no hard limit since Ozmoo (the interpreter used for C64 and various other Commodore machines like the Plus/4) is a multi-disk interpreter which asks you to swap the disk. So if you for example intend to bundle a 170k game for the Commodore 64, no problem.

For Atari 8-bit, the limit is not that harsh anymore. It used to be like that in the early days and with Infocom’s (Z3 only) interpreter. The Puny BuildTools have integrated Jindroush’s modified Atari 8-bit interpreter, which does not only allow to build bigger disks and use the later Atari disk formats, it also allows running Z5 games. By standard, the BuildTools use this interpreter so the disk size is 180k. You have to subtract around 16k for the interpreter so the hard limit for A8 is around 164k.

A little disclaimer though regarding Jindroush’s interpreter. It works very well with all the Infocom games floating around, and I worked closely with Jindroush to debug it with all of Puny’s features, meaning it works well with PunyInform games. I don’t know what happens if you throw a standard lib game on it. Likely it will be fine but it needs to be mentioned.

2 Likes

That’s good to know. Thanks.

1 Like