TASVideos

Tool-assisted game movies
When human skills are just not enough

Submission #3553: turska & Ilari's DOS Avoid the Noid in 03:33.52

Console: DOS
Game name: Avoid the Noid
Game version: EGA
ROM filename:
Branch:
Emulator: JPC-RR v11.6
Movie length: 03:33.52
FrameCount: 12811
Re-record count: 10083
Author's real name: Eero Kurkisuo & Ilari
Author's nickname: turska & Ilari
Submitter: turska
Submitted at: 2012-04-02 20:32:12
Text last edited at: 2013-11-16 06:20:02
Text last edited by: Ilari
Download: Download (28978 bytes)
Status: published
Click to view the actual publication
Submission instructions
Discuss this submission (also rating / voting)
List all submissions by this submitter
List pages on this site that refer to this submission
View submission text history
Back to the submission list
Author's comments and explanations:

THE AUDIO HAS BEEN FIXED


(Link to video)

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

Movie information

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

  Comments section:

  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

Seeding:

The random number generator is seeded with time in seconds since some unknown epoch modulo 65536.

Iteration

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.

Random 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

RNG usage:

  • 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

Fades

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.

Tricks

Jump trick

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).

Event invincibility

  • 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.

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.

Memory addresses

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

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

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).

Suggested screenshots



Nach: 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.
Nach: Accepting for vault.
turska: Processing.

Similar submissions (by title and categories where applicable):