Submission #8973: FractalFusion's NES Monopoly in 00:26.02

(Link to video)
Nintendo Entertainment System
baseline
BizHawk 2.8.0
1564 (Cycle Count 139722970)
60.1018832935174
819
PowerOn
Monopoly (USA).nes
Submitted by FractalFusion on 3/30/2024 3:56:41 AM
Submission Comments
I finally had another look at NES Monopoly, after thinking about adelikat's TAS (was it really 4 years ago?). I eventually put together a plan to make this TAS.
This TAS aims for fastest input. It improves my own previous fastest-input TAS from a long time ago by 1625 - 1564 = 61 frames.

Goals:

  • Aims for fastest input (minimum input frames)
  • 1 human player vs CPU

Strategy used

adelikat's TAS showed that you can trade (I'm assuming with Ollie, who gives away money like free candy), select No, and once the other player selects Yes, mortgage the properties you put up for trade and then agree to the trade. This I am sure is illegal in an actual Monopoly game, but NES Monopoly doesn't care.
Anyway, Ollie gives up to $1360 for both utilities, enough to scheme a plan where he goes bankrupt on his turn. Actually it is a little faster (for minimum input frames) to get $1304 from him. When zooming the amount up on the trade interface, the trade amount goes from $1291 to $1391. So it is faster to mash up from $1291 to $1304, than to mash down from $1391 to $1360. Now if you're wondering why $1304, there is a reason, but you'll need to watch the video to find out.

Lua code

As old as it was, the C++ code I used a long time ago, posted on this page, was instrumental in helping me remember what I was trying to do in the first place. I was able to create a Lua version which is a bit cleaner than the C++ code. I posted the code on the same page (HomePages/FractalFusion/Source/Monopoly). Points of emphasis include creating a lookup table of RNG1 values and addressing them by index, so as to not force the program to run RNG1-calculating code a zillion times over. Of course the code can still be improved.
Anyway, I used the code to find the delays and get the dice rolls I wanted (6+6, then either 4+6 or 6+4, then Ollie's 1+1 & 1+1). For the dice rolls, I only needed 12 total frames of delay.
I also made a dump of Chance and Community Chest card order based on RNG, so I can manipulate the correct cards. The decks are set after pressing A to start a new game. I also went through a number of scenarios during the naming screen (the fastest way to scroll RNG) to manipulate RNG1 to the correct value as soon as possible. It turns out to be faster by taking Player 2.

Notable strategies

The two key strategies are:
  • Instead of walking all the way to Water Works, let the nearest utility Chance card take you there. (And it allows you to get both utilities in two turns.)
  • When trading with Ollie, raise Ollie's cash offer first before attaching the utilities; this turns out to be faster.

What about the minimum time to actual ending TAS?

adelikat already has this TAS. But if you were wondering, I have a movie which improves on it, based on the above two strategies. And it can still be improved.

ViGadeomes: Claiming for judging.
Last Edited by ViGadeomes 29 days ago
Page History Latest diff List referrers