Seeking full version of demo of “Uh-Oh” by Scott Covert

I’m using the precompiled Windows executable and running into a “non-exhaustive patterns” error. So this might need some more work.

Edit: unfortunately I don’t know enough about Haskell (let alone what has changed about the language and libraries since 2004) to update this code.

3 Likes

uninform seems to choke on the nested citation marks at line 13653, but replacing them with apostrophes only seems to make it cut off more.

2 Likes

Alright, @Warrigal got me down quite the rabbit hole of various defunct websites, but I eventually found one of his contact numbers, and, on a whim, called.

Got a former business partner and friend of his who was absolutely astounded that I was calling about a 25 year old video game. He took down the information and my contact details and emailed Scott immediately. He said Scott is very responsive and I should expect a response by later this afternoon. (He also said Scott keeps and religiously backs up everything, so he most certainly has a copy of the game hanging around.)

14 Likes

The Fearless Team of IF Archaeologists in Action!

Wonderful tale. Excited to see how it ends.

6 Likes

I have not yet heard back.

3 Likes

Wow. Thank you all for this amazing call to action! It’s such a shame that he encountered legal action. Fortunately he did get his demo out there (and hopefully some full copies!), as I got the demo on a cd pack in for (I think) Australian PC User magazine, sometime in 1999. I’m still going through the Internet Archive trying to locate the exact issue.

I had not thought of decompiling the z5, indeed I didn’t know it was possible. Thank you for uploading the output - it will be an interesting read later, hopefully after playing as I’m sure some of the content will give away the ending!

Years ago I did locate his archived Success Information website and attempted to email some people who I thought could be him through LinkedIn but never heard back, or those emails went with or without bounce into some void. Calling is not something that occurred to me - how cool! Good luck and thank you!

3 Likes

I made a very quick first sstab at it with Reform. It balked at a function called binaryLeft2 at the end so more work is needed. The decompiled file + the autogenerated symbol-file below.

uhoh-demo_reform.zip (128.4 KB)

3 Likes

The “demo fairy”-object

Object -> obj25_demo_fairy__flitting_about_your_head_ "demo fairy (flitting about your head)"	! 25 / 0x19
  with	name 'demo' 'fairy' 'fairie',
	before routine51524,
	description [43 a1],
	each_turn routine51544,
	limit [0 0],
  has	animate;

Have a before and a each turn-property looking like this:

! References: obj25_demo_fairy__flitting_about_your_head_.before

[ routine51524 ;	! 51524 / 0xc944
    if (global233 == 16[obj16_floor?]) {
        print "You cannot get rid of the demo fairy in the trial version. She will be with you throughout.";
        new_line;
        rtrue;
    }
    if (global233 == 66[obj66_scary_halloween_mask?]) {
        print "No use trying to harm the impervious demo fairy.";
        new_line;
        rtrue;
    }
    rfalse;
];

! References: obj25_demo_fairy__flitting_about_your_head_.each_turn

[ routine51544 ;	! 51544 / 0xc958
    routine64884(global235,76[obj76_Master_bedroom?]);
    if (routine64380(global235,76[obj76_Master_bedroom?]) == 12[obj12_northwest_wall?] && random(3) == 1 && global8 == 2[?] or 4[String?] or 5[CompassDirection?]) {
        routine39592(94[obj94_PC_TV_Integrator_software?]);
    }
    if (routine64380(global235,76[obj76_Master_bedroom?]) == 18[obj18_inside?]) {
        routine64352(global235,76[obj76_Master_bedroom?],0);
        if (global8 < 5) {
            style bold;
            print "^^The demo fairy squeaks: ~That's all the time you have to experiment with this phase of the adventure. It's time to see what the next phase holds! ...~^^";
        }
        if (global8 == 5[CompassDirection?]) {
            style bold;
            print "^^The demo fairy boinks you on the nose with her tiny wand and squeaks: ~That's all the time you have to experiment this time around. You'll see a message that says you've won, but really, you haven't. Sorry ... at least you can get the full version of this game for what Infocom(TM) used to charge for an Invisiclues(TM) booklet! My master hates shareware nag screens as much as anybody does, but he's explained to me that making this game took him 50 consecutive 10-hour days out of his direct marketing career, so ...~";
            routine64012();
        }
        routine63592(global8 + 1);
    }
    if (routine64380(global235,76[obj76_Master_bedroom?]) == 9[obj9_east_wall?]) {
        style bold;
        print "^^The demo fairy flitting about your head says: ~Just 8 more moves in this phase, then we move on ...~^";
        new_line;
        rtrue;
    }
    rfalse;
];

If these are removed (or the routines are hacked so they return without action) is maybe a way to get rid of the fairy?

3 Likes

I made a modified game-file by changing byte $C945 from $41 to $B1 and byte $C958 from $F9 to $B1 ($B1 = rfalse). Now the fairy never appears, but I can’t vouch for more than that. Are there any walkthrough available to test it?

uhoh-demo_mod.zip (106.0 KB)

EDIT: Testing around a bit I noticed that the fairy sits in your inventory. You can drop it and leave it behind now but I should probably remove it from the inventory entirely…

EDIT 2: I updated the file with a new change. Byte $F396 from $19 to $B3 (moving the wrist watch to the inventory two times instead of the fairy should be harmless). Now the fairy stays in the secret place.

EDIT 3: The game seems playable. I just finished phase one in 100 moves without any problems. There’s still messages at the start and when you move to the next phase that you’re playing a demo version and there are no HINTs (No HINT or WEAK verb, I was hoping it was in the file waiting to be unlocked but, no).

8 Likes

I just saw that the author posted this comment on the only review on IFDB

Hi y’all!
I’m Scott, the guy who made the game.
I don’t remember if, or how, I divided the game into 5 sections and/or created a demo version of it.
If I can find it, I’ll post the full version for free.
I never used Frotz after 1999.

The prospect that the non-demo file will surface seems slim…

5 Likes

Yeah, he never responded directly, but at least the prodding got to him. Hopefully he finds the thing. His friend seemed certain he had it. Made some jokes at his expense about the guy saving/archiving everything. Gave me a bit of a Meretzky vibe.

6 Likes

Thanks very much for this astounding work!

I downloaded the mod and played through the first phase (for the first time ever) and all seems well. I got through it in 172 moves, so a bit rusty, but still quite enjoyable and an interesting perspective challenge, after working from home for many years!

I did get to draw up a map of the offices and wrote down the major moves to upload a hint/walkthrough later if the commercial version is never recovered.

6 Likes

I was able to beat the first part as well without running into any noteworthy bugs. Seems to be a fairly serviceable version. I’ll keep going to confirm the game is beatable in its current form.

4 Likes

I’m happy to report that you can play the game all the way to the end with the unlocking fix.

    *** You have won ***


In that game you scored 200 out of a possible 200, in 994 turns.

As an old Y2K-compliance programer/tester, I especially liked the first three phases. The last two, living as a prepper, was a bit harder.

A bit more elegant fix (with a couple of nop to keep disassemblers happy), even though the above three byte changes are enough.

Byte changes to remove "demo fairy":

	$C945-$C948 from $41 $F9 $10 $47 to $B1 $B4 $B4 $B4
		(je g233 #10 ~c94e --> rfalse nop nop nop)
	
	$C958-$C95E from $F9 $27 $3F $5D $FB $4C to $B1 $B4 $B4 $B4 $B4 $B4
		(call_vn RFD74 g235 #4c --> rfalse nop nop nop nop nop)
	
	$F396	    from $19 to $B3
		(insert_obj OBJ-25 g27 --> insert_obj OBJ-179 g27)
5 Likes

If you want to be fussy, update the Z-code checksum.

Come to think of it, do we have a convention for marking a hacked (or politely adjusted) game file? Would it make sense to change the serial number to the current date, since it’s effectively a new version?

Or maybe change the last digit of the serial number to “A”, to indicate that it’s a new version but still show what release it’s based on. (The six-digit serial number is traditionally digits but other ASCII characters are legal.)

Further tweaks, if you should happen to make more tweaks, would be “B”, “C”, etc.

3 Likes
    *** You have won ***


In that game you scored 200 out of a possible 200, in 1864 turns.

Can confirm game is beatable. Can also confirm that @heasm66 is apparently better at solving puzzlers than I am. :joy:

Not quite half as many moves, but close.

5 Likes

Should we start a “TOP SCORE”-list (or LOW TURNCOUNT, which doesn’t quite have the same ring to it…)?

  • HEAS....0994
  • PINK......1864
  • ????......????
4 Likes

I have to admit that I cheated in the last two phases (peeked in the disassembly) and optimized the number of moves in the first three when I knew what to do.

4 Likes

I had a bit of a peek to help too. Unfortunately I think I broke the game in the second phase, so I restarted to see if that was an error of mine or the games.

In the meantime I did do a bit more searching and found an item of interest for the IF archeologists present and one (25 year old) lead on a game copy.

The first is a snippet of an article advertising/about the game in Computerworld Magazine, issue 1998-03-16: Vol 32 Iss 11, p98:

First there were year 2000 stock indexes, then millennium radio programs. Now comes a computer adventure game called Uh-Oh. The game, created by Scott Covert and styled after circa 1980s computer games such as the Enchanter series, starts you off in 1998 in an office during the assessment phase of trying to prove the year 2000 problem to your boss. By the time you reach the survival phase, you’re hunkered down in your rural home, relying on your wits. A free shareware version is available at www. successinformation.com/game.htm. For the full version, send $10 to Scott Covert, R.R. No. 8, 1956 O’Brien Rd., Peterborough, On- tario, Canada Koj 6X9

image

The lead on the game copy is through a post on rec.arts-if from 1998 from someone who purchased the game and intended to write a review. I’ve done some searching and think I found this person online and have emailed them. Don’t think it will go anywhere, but bothering people on the internet about these old things seems to be amusing as a good IF itself :slight_smile:

2 Likes

I certainly remember those names from Usenet.

3 Likes