TASVideos

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

Submission #1183: FractalFusion's NES Monopoly in 01:10.82

Console: Nintendo Entertainment System
Game name: Monopoly
Game version: USA
ROM filename: Monopoly (U).nes
Branch:
Emulator: (unknown)
Movie length: 01:10.82
FrameCount: 4249
Re-record count: 1052
Author's real name: Justin Chan
Author's nickname: FractalFusion
Submitter: FractalFusion
Submitted at: 2006-09-05 23:57:28
Text last edited at: 2008-01-07 06:53:26
Text last edited by: FractalFusion
Download: Download (1085 bytes)
Status: decision: cancelled
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:

Recorded in FCEU 0.98.16, but works in v15 and probably in all versions.

Monopoly source (new files and old updated files; the last one vanished): http://www.savefile.com/files/36316
See FractalFusion/Source/Monopoly for source.


You would think manipulating six rolls at once after end of input is impossible. Even BasicBot and the delay search program monopolysolve.cc would not work.

However, I found a solution.

The program used was monopolysolve2.cc. Given a starting point (9000 iterations from the beginning seed) and using a search distance of 100000, the program takes a random RndVal1 seed and tests, for all 256 possible RndVal2 values, whether it produces the six rolls necessary to bankrupt the three CPUs. Each CPU must roll either 3+3, 4+4, 5+5, or 6+6, followed by 1+1, 1+2, or 2+1 (but 3+3 -> 1+1 is disallowed). The program did output the following:

  Done delay 5000
  5 6 3 CB4129 5F 8039
  Done delay 10000
  6 4 3 390B11 8D 14372
  Done delay 15000
  5 3 5 ED528 D2 19135
  Done delay 20000
  5 4 5 CD8061 C6 20317
  3 5 5 F8D5FC 54 22506
  Done delay 25000
  Done delay 30000
  Done delay 35000
  Done delay 40000
  4 5 6 3F22E1 28 44982
  4 5 6 3F22E1 E6 44982
  Done delay 45000
  Done delay 50000
  Done delay 55000
  Done delay 60000
  Done delay 65000
  Done delay 70000
  4 5 4 86E5D2 92 73504
  Done delay 75000
  4 3 5 8F02CE A4 75846
  Done delay 80000
  Done delay 85000
  Done delay 90000
  5 4 6 369A91 42 94740
  5 4 6 369A91 64 94740
  5 4 6 369A91 DC 94740
  Done delay 95000
  Done delay 100000
  done
I took the first strategy, 5 6 3 CB4129 5F 8039, with a RndVal1 iteration delay of 8039.

After testing that the strategy worked (by using cheats to set up the CPUs, then poking the random seed values in), I constructed the run.

I wait at the name screen to manipulate three cards. Otherwise, I mess around while waiting. Rolling the dice is the fastest way to iterate RndVal1, but it also affects RndVal2, so I carefully set up RndVal2=5F, then spend enough time to get RndVal1=CB4129. These values appear three frames after the movie ends, just before RAM(27) increments to 1.

I may consider cancelling my other submission, but I will wait and see.

Thanks to the Monopoly competitors for the strategy, and thanks to everyone who contributed ideas.


Cancelled. Could be made cleaner. See submission #1186.


Similar submissions (by title and categories where applicable):