THE AUDIO HAS BEEN FIXED
This is a tool-assisted speedrun of Avoid the Noid
Avoid the Noid is a platform computer game for the Commodore 64 and MS-DOS, written in 1989 to promote Domino's Pizza.
It was modeled after the company's ad campaign during the late 1980s.
The ads featured a "noid" that destroyed pizzas and must be avoided.
The game is surprisingly entertaining and well-made for a promotional game.
The protagonist must traverse a 30-story building and deliver the pizza within 30 minutes.
Colorful rabbits armed with booby traps, phone bombs, rocket launchers and bomber planes that drop water balloons seek to prevent the delivery.
The premise would probably not be received too well these days.
Work on the run started on 2012-03-30.
A collaborative effort wasn't initially planned, but the authors soon found themselves working as partners in crime.
With superior manpower, the game was quickly mauled into oblivion.
According to the ingame clock, the run is finished with 7:42.00 elapsed and 22:18.75 to spare. Input is ended as early as possible, allowing the customer to treasure the valuable delicacy while the score climbs and slow fades occur.
- Abuses programming errors
- Manipulates luck
- Aims for fastest time
- Genre: Platform
JPC-RR v11.6 was used to make the movie.
This TAS uses the EGA version of the game (this version also has music).
Here is the ImageMaker report on the disk image used:
Type : HDD
Tracks : 16
Sides : 16
Sectors : 63
Total sectors : 16128
Primary extent size: 1788
Storage Method : 3
Sectors present : 756
Calculated Disk ID : 6414E26734ECBD8B25B800E4C5811FC9
Claimed Disk ID : 6414e26734ecbd8b25b800e4c5811fc9
Entry: N/A N/A 32 /
Entry: 19900101000000 411aaa5402889d5368c8556feaf2e06b 4545 /BACKGR.XYZ
Entry: 19900101000000 f71f46bd6e34ca9db973442304e528ed 12573 /BNOID.XYZ
Entry: 19900101000000 12d1ef24a7aceb1972c86518efb2e005 2001 /BONUS.XYZ
Entry: 19900101000000 7efdb6df749de1f9329e2de4805f8d5b 1647 /CLUEBOX.XYZ
Entry: 19900101000000 fb94cffcad0eb85547a755eedf216d26 7111 /COMPUTER.XYZ
Entry: 19900101000000 fe55eadc8d885a0d91deb702f755c76d 6159 /CREDITS.XYZ
Entry: 19900101000000 2ee444275f11879588c226de30a112b4 14105 /FINAL.XYZ
Entry: 19900101000000 805e36a37694f04654596aaf6ccf77d7 2559 /FINALD.XYZ
Entry: 19900101000000 c8a6c46832a5797e277294bacdc4309c 5672 /FLOOR0.XYZ
Entry: 19900101000000 14d6238b05ac46ab85332ee96aaf53e9 4163 /FLOOR1.XYZ
Entry: 19900101000000 77ef35f705101f67250e10b33538648e 4407 /FLOOR2.XYZ
Entry: 19900101000000 42881d0e9c6d31666ad982ad98d21670 5501 /FLOOR3.XYZ
Entry: 19900101000000 b0817494839cb64b7623283228e4c50a 4444 /FLOOR4.XYZ
Entry: 19900101000000 280907e3f9549409a2ce9b9ec1662a7e 4421 /FLOOR5.XYZ
Entry: 19900101000000 04fc10998bafaccd5b17276a14fd229c 4935 /FLOOR6.XYZ
Entry: 19900101000000 8770ac79021218324e897e2c476688c3 5050 /FLOOR7.XYZ
Entry: 19900101000000 473f5752e1b5dbec24790583b8540f01 4584 /FLOOR8.XYZ
Entry: 19900101000000 bf29a56bd5c49352bd0f4e9ffffd6518 5600 /FLOOR9.XYZ
Entry: 19900101000000 67160e4ad99b5806524f5b2321028516 1199 /FONT.XYZ
Entry: 19900101000000 399010a3229002afd2ff1c0f970b9a60 1885 /GAMEOVER.XYZ
Entry: 19900101000000 6df0a721b63a76d4f2ae9b889f1378f7 8152 /GROUND.XYZ
Entry: 19900101000000 e7f88bbf0531bc886db51024d0de9eea 2868 /HELPSCR.XYZ
Entry: 19900101000000 14163347380dbb43ab67b8475534902e 1670 /KEYBOX.XYZ
Entry: 19900101000000 03ba723cf5fed300726c3e6cc93f1a36 1974 /LAUGH2
Entry: 19900101000000 4a43c4cbc254a2ebf0754c5d60a04ac8 25509 /MAN.XXZ
Entry: 19900101000000 423ba2278bf1bbb0f83e19cb64eb4b0f 8755 /MDIDF.BIN
Entry: 19900101000000 6559aa513f6fb521bd2c02a944cd7a88 106292 /NOID.EXE
Entry: 19900101000000 c6ac235ed4ab0a51d1e5b783278f01fb 23101 /NOID.XXZ
Entry: 19900101000000 8012a2a669f6bc64acacfa023f409221 7239 /NTITLE.XYZ
Entry: 19900101000000 8aa4281d4466edca31313c6028c43f47 38810 /PHONE.XYZ
Entry: 19900101000000 0b0a9307ccb563aaac5c2f51461af856 4205 /ROOF.XYZ
Entry: 19900101000000 d4154f7faa67a189d298c62afa6aba80 5273 /SOUNDS.SND
The random number generator
The random number generator is seeded with time in seconds since some unknown epoch modulo 65536.
The random number state is iterated by:
X' = (22695477 * X + 1) mod 2^32
This formula is invertible:
X = (690295837 * (X' - 1) ) mod 2^32
The RNG has a single cycle of 2^32 numbers.
To generate a random number, the RNG is iterated once, then the RNG state is taken, divided by 65536 and ANDed with 32767.
Typically the resulting number is then divded by something depending on what the random number is used for and taking the remainder, e.g.:
- 11 when determining the type of fade to perform
- 1000 when determining the securty code
- The first throw is for security code, the second throw is for type of the first fade.
- Using the noid remover uses 75 random numbers.
- Some fade types use random numbers (amount unknown)
- Launching of bazooka might use one extra random number per frame?
- Floors use number of random numbers per frame, depending on the floor.
* Number of enemies doesn't seem to matter
Each time character transitions between rooms, a dialog box appears or disappears there is a fade.
This fade is random, and the fades vary wildly in length, so this is a good subject for luck manipulation.
Most fades are very slow.
The fade type is determined by taking a random number, dividing 11 and taking the remainder:
| Remainder|| Fade type|| Notes|
| 0|| Whole screen random|| Fast|
| 1|| From top and bottom to center|
| 2|| Random from top|| Uses random numbers|
| 3|| Striped from top and bottom|
| 4|| From center to top and bottom|
| 5|| From left and right to center|
| 6|| From center to left and right|| Can be canceled|
| 7|| Random from bottom|| Uses random numbers|
| 8|| Random from left|| Uses random numbers|
| 9|| Random from right|| Uses random numbers|
| 10|| Diagonal|
The fade type 6 is special: It can be canceled by a keypress. No other fade type behaves that way.
The fade type 0 is greatly faster than others (except canceled type 6).
The missing three keys
The missing three keys are in following places:
- Phone on floor 9 (use it to pick the key)
- Phone on floor 11 (use it to pick the key)
- Phone on floor 29 (use it to pick the key).
* The security has to be deactivated first, otherwise it will blow up.
This only works when moving left for some reason.
Hit either roll or jump when running. The character speed increases to 12 for one frame (normal running is 8).
- When jumping or rolling, the character is invincible to melee attacks, but not projectile attacks.
- When between floors, the character seems invincible to all attacks.
Phones with optional stuff:
- Floor 18: The first digit of security code.
- Floor 20 (left): The second digit of security code.
- Floor 26: The third digit of security code.
- Floor 28: Two extra pizzas and two noid removers.
Using noid remover will:
- Use 75 random numbers
- Remove all noids and missiles on screen
- If you have been knocked back by a melee attack, save your pizza.
The addresses can change, here are addresses from one playthrough (this one)
Even if these addresses change, the differences between addresses should remain constant.
| 0x1E344|| Word|| Character X position|
| 0x1E3B4|| Word|| Time left minutes|
| 0x1E3BA|| Word|| Time left seconds|
| 0x1E3BE|| Word|| Time left quater seconds|
| 0x1DE34|| Dword|| RNG state|
| 0x1707C|| Word|| Security code (0-999)|
The roof is a bizarre area.
Balloons are dropped in random patterns; the ones featured in the run might seem to slow the delivery down, but that's not the case.
Key spawn locations aren't random; only the pizza boy's position affects them.
Grabbing keys earlier is always preferable; the time it takes for the next key to spawn is constant and starts running when the key is grabbed.
Luck manipulation is the essence of this run.
Room transitions and other fades tricky to manipulate, especially if many of them occur in a row.
Many transitions and object interactions are slightly delayed to manipulate the fade; making luck manipulation subtle was a central stylistic goal when executing the run in its final form.
The 29th floor was especially frustrating; it features four fades that are very difficult to delay inconspicuously.
After that hurdle was cleared, the rest of the run went extremely well with excellent luck throughout.
What doesn't work
What was tried and found not to work:
- Grabbing the key from floor 29 phone before deactivating security (the phone blows up).
- Hitching a door opening from missile or noid (the door acts like closed to player).
: This movie seems well executed. However, the game is rather repetitive, and despite the effort put in, the movement looks more random than well played. Due to the lack of appearing impressive, and many people being really bored with something so short, I'm rejecting this.
: Accepting for vault.