Counterfeit Monkey


A warning: don’t start reading it if you plan on getting anything accomplished today.


FWIW, there is now a Release 5 available. (See the link listed as “Release 5” here: ). This cleans up many bugs and addresses some of the sticky points that I heard about from players; several puzzles are less finicky or more precisely described, while others have additional solutions.

(Peter Piers) #163

You know what I’ve often wished for, while trying to play CM in my iPod? A way to turn off the map, because it clutters up the screen immensely, and who knows whether it might not be contributing to the slowdown. I kept wishing I could toggle it on/off as needed.

But that’s moot, of course - CM does so many things it’s still unplayably slow on a non-desktop environment (but I tried. Oh yes).


I’ll note that down as a possibility for future releases, though – yeah. I don’t foresee Monkey becoming an easy mobile game in the very near future.

(Peter Piers) #165

I was trying to remember exactly how far I’d gone before it became waaaaaaaay too slow to play.

To the best of my recollection, it was when I had cause to enter the bureau.

Up until then, though, the game was so fantastic and lent itself so well to mobile play that I just had to stick with it. :slight_smile: Until, alas, no more.

Oh, and the two cafès also made iFrotz crash, but that’s an iFrotz bug that’s been reported to do with accented characters in room names in Glulx games (pretty specific).


Emily, I assume Ultra Undo was working for you? Because I just downloaded it to test and it doesn’t :’( All my test files worked! This is with Gargoyle+Git on Windows.


Hm! Anything I can do to help troubleshoot that?


(To answer your other question, it looks like some versions of Mac Gargoyle do also exhibit this problem still, so possibly I was checking against a revised version and thought that we had things solved when we didn’t.)


I feel pretty dumb… I mustn’t have ever actually tested it with a big file before. I had tested whether the saving mechanism worked by manually disabling the normal undo function, but I hadn’t tested whether it would switch on by itself. DavidK will be able to confirm, but it doesn’t look like Git actually returns an error code if it can’t saveundo. I think I’ll raise an Inform bug for that.

Is Git the only interpreter which can’t handle undo for CM? If so, rather than checking to see whether the terp can handle it I can just force it to use the file method in Git. (Which will be a shame for those with an altered Git that can actually handle it, but oh well. [edit actually this should be okay, I think I can detect if it’s been updated. Hopefully.])

(David Kinder) #170

Looking briefly at the Git code, it looks like it manages to save the undo, but then throws it away in attempting to get its total amount of undo space back down below its internal limit. I will look into changing that for the next Git version. (It’s not really an Inform bug, though…)


That’s an odd way to go about it… how does it manage to save it in the first place if it’s too big? Or does it save it somewhere temporarily and only store it permanently if there’s space for it?

And yeah I made a bug at your Github instead.


A tour de force, hands down. Scary index, a single sample chapter is incredibly large. That Emily also has the time to work on versu and other stuff is scarier still

Won’t delve into it since I didn’t play it yet, specially now since I’m stranded with nothing but my pocket pc without glulx. (though it’s a quad core and I wonder if it’d run fine)


Is there a way to put restoration gel on a rack?

(David Kinder) #174

Git maintains a linked list of undo states, each of which contains data on what’s changed, stored in a pretty efficient way (that I won’t get into here).

The point is that the design makes sense if you think about it from the stand-point of the common case, in which each undo state involves a small change relative to the previous undo state (or the initial game state, for the first undo state). In that case it is expected that there will be lots of undo states, each quite small, so each @saveundo call adds a new undo state on, then runs through the linked list to make sure not too much memory is being used.

However, CM does a lot of up-front computation, with the result that the first undo state, relative to the initial game state, is huge. Probably the best fix will be to change the method that discards undo states to not discard the most recent, as we’ve already gone to the trouble of working it out by this point.


A CM save file at the beginning of the game is about 91kb, so I would’ve thought there’d be space for the undo slot. Maybe it’s a different format than Quetzal.


At startup, CM caches a bunch of information about every object in the game in order to speed up the letter-transformation lookups, which is why it’s such a big change. (I’m not sure that actually helps resolve the issue at all, though.)


Hello, all!
I was wondering if I could get some hints on doing something that I will probably need later on:

[spoiler]I want to get the Origin Paste from Parker at the Counterfeit Monkey. But whatever I choose as the object to bet on, I never seem to get a prompt I can make using solely letter-removal (which is all I have at this point). For instance, I always get ‘something smaller than a pebble’ whenever I show ‘apple’ (obviously ‘liquid’ would be a better one, since I could just P-remove, but alas).

Since each object I pick always yields the same prompt, I’m assuming this is by design, which leads me to wonder: is there some other tool I need first, or some specific item I need to bet on, or is my vocabulary just lacking?

It’s late now, but tomorrow I’ll post my inventory at this point if it’s needed.[/spoiler]

(Peter Piers) #178

I wish I could help you, but alas, don’t ask me how, I solved that one completely by accident.


Increasingly explicit hints:

You actually have one option aside from the letter remover.

If you show Parker something that is already in a transformed state, turning the object back with the gel will also count as winning the bet if it meets the qualifications.

It’s possible to win this by (relative) luck. However, there is one object that you may or may not have found that will always be able to transform into a bet-winning object.

Did you find something in the outdoor cafe?

You may need to transform the SPILL to a PILL for easy carrying.

If you show this item to Parker in the SPILL form, he might ask for a small object or something that fits the edible-imports category, either of which will be matched by PILL. If you show it to him as a PILL, he’ll ask for a liquid and you can turn it back to a SPILL.


Ooh, thanks a lot! I hadn’t thought to try the spill/pill yet.

I’ve loved this story so far; the mechanics are intriguing and incredibly clever, and I can’t wait to see how much public property I can deface once I get some of the other cool toys. Heheheh.