can you help with the t-zero map?
Feb. 25th, 2018 04:36 pmokay, lovely people, I need some help.
I'm in the middle of porting one of my favourite adventure games, T-Zero, from DOS to Inform. So far, I've reverse-engineered the binary to figure out the stringtable encryption. (
brainwane asked for more details on that, so I'll post them later.) I've also built a harness that can run the DOS version (in Dosbox), or the Inform version (in Frotz) equivalently, and allows you to plug in classes that can process commands and responses from either.
I'm having an interesting time implementing the maze, which is called the Topiary. Someone on ifdb said it took him a full year to solve the maze, so I guess it's not surprising. Here's what I have so far.

The maze is 5x5. Rather than blocking cardinal directions ("you can't go east from here"), each room blocks relative directions ("you can't turn right here"). I have made an attempt to list which directions are allowed in each room.
The pink line is the solution given in t-zero.sol on ifarchive. I can confirm that it works.
The diagonals are blocked by monsters; they're useful for checking you're in the room you expected. Each monster is a chimera whose name is randomly made up from a prefix and a suffix. (There is another puzzle about the monster names, but it doesn't concern us here.) I've used the initials of the prefix and the suffix as they appear in the save file I'm about to give you; the name of each monster changes every time you enter the maze.
My question is this: something in my understanding of the way the rooms block turns (through/left/right) must be wrong. A few rooms seem to allow a particular turn in some situations but not others. What determines this?
(I'm also rather curious as to whether it's ever possible to get to an unsolvable position, but that's secondary.)
I could probably work this out by reverse-engineering again, but black-box testing is far easier and less error-prone.
A zipfile of the program, and the save file topi.sav, are here: https://marnanel.org/temp/t-zero/
I'm in the middle of porting one of my favourite adventure games, T-Zero, from DOS to Inform. So far, I've reverse-engineered the binary to figure out the stringtable encryption. (
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
I'm having an interesting time implementing the maze, which is called the Topiary. Someone on ifdb said it took him a full year to solve the maze, so I guess it's not surprising. Here's what I have so far.

The maze is 5x5. Rather than blocking cardinal directions ("you can't go east from here"), each room blocks relative directions ("you can't turn right here"). I have made an attempt to list which directions are allowed in each room.
The pink line is the solution given in t-zero.sol on ifarchive. I can confirm that it works.
The diagonals are blocked by monsters; they're useful for checking you're in the room you expected. Each monster is a chimera whose name is randomly made up from a prefix and a suffix. (There is another puzzle about the monster names, but it doesn't concern us here.) I've used the initials of the prefix and the suffix as they appear in the save file I'm about to give you; the name of each monster changes every time you enter the maze.
My question is this: something in my understanding of the way the rooms block turns (through/left/right) must be wrong. A few rooms seem to allow a particular turn in some situations but not others. What determines this?
(I'm also rather curious as to whether it's ever possible to get to an unsolvable position, but that's secondary.)
I could probably work this out by reverse-engineering again, but black-box testing is far easier and less error-prone.
A zipfile of the program, and the save file topi.sav, are here: https://marnanel.org/temp/t-zero/