Movies

Current: baseline

[Fastest Completion] DOS Mixed-Up Mother Goose by Sand in 25:51.83 (2/14/2023)

Versions

Mixed-Up Mother Goose is a Sierra adventure game.
The game was remade and rereleased several times. This article is about the original 1987 AGI version for DOS.

Tools

Utilities for reverse engineering, routing, etc. from [5088] DOS Mixed-Up Mother Goose by Sand in 25:51.83:
git clone https://www.bamsoftware.com/git/mumg.git
agikit is useful for decompiling game logic. The AGI Programmer's Wiki is useful in general.

Map

Game map, a 7×5 grid of overworld rooms with 9 additional interior rooms
There are 44 rooms, which are internally numbered 1–44. Rooms 1–35 are overworld rooms. Rooms 36–44 are interior rooms.
Blue circles in the diagram show the destination rooms to which the numbered items 18–30 have to be delivered. Gold squares show where random item assignment may place items; see below.

Items

There are 20 items, numbered 11–30. Items 11–17 are "walking" items that follow the player around while they are in the inventory. Items 18–30 are "pocket" items that disappear from the screen while they are in the inventory. The important difference is that walking items cannot remain in interior rooms: the initial random items assignment will not place a walking item in an interior room, and if you swap a walking item for another item while in an interior room, the walking item will not remain there, but will warp to some other overworld room.
#ItemTypeDelivery room
11Wifewalking12
12Miss Muffetwalking9
13Mousewalking41
14Fiddlers Threewalking37
15Sheepwalking23
16Little Dogwalking27
17Little Lambwalking13
18Fiddlepocket7
19Piepocket43
20Knifepocket3
21Steakpocket36
22Pipepocket37
23Bowlpocket37
24Brothpocket21
25Candlestickpocket33
26Pailpocket1
27Watering Canpocket31
28Sixpencepocket15
29Ladderpocket5
30Horsepocket18

Random item assignment

The location of all items is randomized, except for the Watering Can, which is always in room 45. The random item assignment code is in logic resource 0. It happens once, when a new game is started. The random number generator is seeded from the current time (an 18.2 Hz 16-bit counter).
See Forum/Posts/515748 for details of the random number generator and the item assignment algorithm. mumg-assign.csv shows the item assignment for every random seed.

Game mechanics

Movement

The player character can move 1 pixel per game cycle (horizontally or vertically or both). It may look like the player moves 2 pixels per cycle horizontally, but that is because the game's graphics are stretched 2× horizontally—internally, the x-coordinate only changes by 1 unit. If you need to move both horizontally and vertically, the time needed is proportional to the maximum of the horizontal and vertical distances (Chebyshev distance). The walkable area of rooms is usually 160 pixels wide and 80 pixels tall, but there are many exceptions.
Collection and delivery of items is usually triggered by being within a certain radius of a certain point. For example, the graphic below shows the delivery radius of Jack in room 33. The delivery area is diamond-shaped because that is the shape of a circle in the way the game measures distance.
Picture of room 33 with the delivery radius around Jack highlighted.
Most interaction areas are a radius like this, but not all. For example, Old King Cole in room 37 has a rectangular delivery area. In general, you have to check the logic code in every case.
The goal is not necessarily to enter the delivery area as quickly as possible. Starting a deliver cutscene slows the game down to Normal speed, and then the player character usually moves to a fixed waypoint under program control. It is usually worth spending extra time moving to a favorable point at the edge of the delivery area, to minimize the distance to the first waypoint for the player character to move there slowly and automatically.

Movement carryover

Many effects in AGI are driven by serial state updates to flags or variables. It may happen that a delivery cutscene, for example, is irrevocably triggered in one game cycle, but does not actually begin until the next cycle. During this "halfway" cycle, it may be possible to continue moving the player character even though the cutscene has technically already been triggered. The main takeaway is that you should take advantage of this kind of movement, when possible, to move closer to the first forced waypoint.
An important special case of the movement carryover effect is when walking between rooms. Do not hold down the movement key only long enough to trigger the room transition—hold it for at least one cycle longer. The extra cycle of keyboard input will give you one free pixel of movement in the new room, before you regain control of the player character.

Item swap

You can only carry one inventory item at a time. If you collect an item while already holding one, You will drop the item you are holding and pick up the other. If you are in an interior room and currently have a walking item in your inventory, the walking item will not remain in the room after being swapped, but will warp to another room.

Item warp

The destinations of item warps are controlled by a stack. At the beginning of the game, the 2 overworld rooms left unassigned by the item assignment algorithm are at the top of the stack. Below them are rooms 4, 25, 18, 5, and 33. Whenever you are in an overworld room, have an empty inventory, and pick up an item, the current room is pushed to the top of the warps stack. Whenever an item is warped, it pops the location off the warps stack.

Known shortcuts

There are many places where a room's logic code defines special connectivity that can save time.
Picture of room 32 with zones that transfer to other rooms highlighted.
For example, prefer walking behind Mother Goose's house, not in front of it, whenever crossing from room 32 to room 31 or vice versa. The room transition triggers are closer to the center of the screen, and you are placed a farther into the new room, not at the edge.

Out of bounds in shoe house (room 44)

Animated gameplay capture showing the player walking out of bounds in room 44 to collect the Candlestick.
The priority of room 44, with a 4× zoom near the door showing that a black line does not reach the bottom row of pixels.
There is a gap in the barrier that defines the walkable area in room 44. You can get out of bounds, but still close enough to the item to collect it. It saves time because you can exit the room just by walking south, rather than having to walk all the way back to the door.

Jump the wall from clock house (room 24)

Animated gameplay capture that shows the player walking north from room 24 to arrive in the side yard, returning to room 24, then again walking north but this time close to the wall, to arrive on the wrong side of the wall.
Picture of room 24 with zones that transfer to other rooms highlighted.
There is 1 pixel behind the clock house where you can walk north and end up outside the wall, rather than inside.

Jump the wall to pumpkin house (room 19)

Animated gameplay capture of the player walking outside the wall in room 19, going north, and arriving inside the wall in room 12.
Picture of room 19 with zones that transfer to other rooms highlighted.
There is a small area outside the wall where you can walk north and end up inside the yard of the pumpkin house in room 12, rather than outside.

GameResources/DOS/Mixed-UpMotherGoose last edited by Sand on 3/13/2023 7:29 AM
Page History Latest diff List referrers View Source