Submission #5537: link_7777's NES Golf in 04:58.49

Nintendo Entertainment System
baseline
(Submitted: Golf (USA).nes USA)
BizHawk 1.12.1
17939
60.0988138974405
2000
Unknown
Submitted by link_7777 on 6/10/2017 5:29 AM
Submission Comments

Golf

Golf is an implementation of golf for the NES and is one of the so called 'black box' games.
The game has 18 holes for you to play. As you might expect there are 4 of each of par 3 and par 5, the rest are par 4. This TAS gets a hole in one on all par 3's and 2 strokes on all other holes resulting in a total of 32 (a whopping 40 strokes under par!).

Emulator Used

Bizhawk 1.12.1

Game Objectives

  • Complete the 18 holes as quickly as possible.
  • Complete the 18 holes in as few strokes as possible.
  • As it turns out there is quite a bit of overhead per stroke, more for loading the green. This means fewer strokes is faster, and I avoid the need to putt.

Mechanics

  • Left/Right change the aim (to one of 16 possible directions)
  • Up/Down change clubs
  • "A" initiates the swing, sets the power, then sets the aim (in that order, three button presses)
  • The wind is the only RNG in the game and it is set when the hole loads. Per each frame the wind cycles through each of 8 directions then from 0-15 MPH (there are still 8 frames for 0, but it is directionless).
  • The game tracks pixel and sub-pixel position for the ball, and the hole is one full pixel in size.

Strategy

  • Find ways to get to the hole in 2 strokes (1 for par 3 holes).
  • This primarily involved using a lua script to check a large portion (but not all) combinations of 2 strokes with different power/aim.
  • Aiming through a hook/slice (hitting the aim early or late) was preferred over changing the aim manually before the shot since the background reload when you change the aim takes time.
  • Wind can for the current hole can be manipulated by delaying the last shot from the previous hole. This is done a fair amount in the run.
  • The lower angle shots (e.g. 1W) execute faster per unit of distance and have the added benefit of being quicker to change to (default is 1W when the hole loads).

Hole by Hole Commentary

Hole 1

  • Frames delayed on previous hole: 0
  • Hole Position: X:0xC1 Y:0x2F
  • Clubs Used: 4W, 3W

Hole 2

  • Frames delayed on previous hole: 1
  • Hole Position: X:0xA5 Y:0x3F
  • Clubs Used: 3W, 3W

Hole 3

  • Frames delayed on previous hole: 78
  • Hole Position: X:0xD2 Y:0x5F
  • Clubs Used: 1W

Hole 4

  • Frames delayed on previous hole: 1
  • Hole Position: X:0xA9 Y:0x41
  • Clubs Used: 1W, 4W

Hole 5

  • Frames delayed on previous hole: 3
  • Hole Position: X:0xD0 Y:0x27
  • Clubs Used: 1W, 4I

Hole 6

  • Frames delayed on previous hole: 0
  • Hole Position: X:0xA6 Y:0x37
  • Clubs Used: 1W, 3W

Hole 7

  • Frames delayed on previous hole: 1
  • Hole Position: X:0xA8 Y:0x2D
  • Clubs Used: 1W, 3W

Hole 8

  • Frames delayed on previous hole: 0
  • Hole Position: X:0xA8 Y:0x2B
  • Clubs Used: 1W, 3I

Hole 9

  • Frames delayed on previous hole: 20
  • Hole Position: X:0xD3 Y:0x53
  • Clubs Used: 1W

Hole 10

  • Frames delayed on previous hole: 0
  • Hole Position: X:0xCE Y:0x3B
  • Clubs Used: 1W, 3W

Hole 11

  • Frames delayed on previous hole: 32
  • Hole Position: X:0xC4 Y:0x5A
  • Clubs Used: 1W

Hole 12

  • Frames delayed on previous hole: 1
  • Hole Position: X:0xE2 Y:0x62
  • Clubs Used: 1W, 4W

Hole 13

  • Frames delayed on previous hole: 7
  • Hole Position: X:0x9B Y:0x27
  • Clubs Used: 1W, 1W

Hole 14

  • Frames delayed on previous hole: 1
  • Hole Position: X:0xAD Y:0x6F
  • Clubs Used: 4W

Hole 15

  • Frames delayed on previous hole: 6
  • Hole Position: X:0xC7 Y:0x56
  • Clubs Used: 1W, 4W

Hole 16

  • Frames delayed on previous hole: 4
  • Hole Position: X:0xD1 Y:0x30
  • Clubs Used: 1W, 3W

Hole 17

  • Frames delayed on previous hole: 1
  • Hole Position: X:0xE2 Y:0x35
  • Clubs Used: 1W, 5I

Hole 18

  • Frames delayed on previous hole: 5
  • Hole Position: X:0x92 Y:0x2A
  • Clubs Used: 1W, 1W

Improvements

My botting with Lua did test a large portion of possibilities, but there could easily be something that slipped through the cracks. That said, minor improvements would be somewhat likely to be swallowed up in waiting for favorable wind directon on a par 3 (as there are fewer variables to manipulate).

Thanks to:

  • my Twitch chat for the ideas and encouragement
  • The TASMania team
  • あ~とぞん (nicovideo uploader of a prior Famicom Golf TAS and presumed author) for the strategy for hole 3. Also TempestWay who uploaded that video to youtube.

Screenshots:

8985, 11720, 19081

Masterjun: Judging.
Masterjun: Great run. As a person who likes Lua scripts and botting myself, I really like the work put into the TAS and the result is great. However, everyone can agree that this game is repetitive (due to the nature of Golf) and the TAS is predictable (due to the nature of TASing). Both are bad aspects for the entertainment of the run.
As it stands now, I will accept this run into the Vault. Due to the good viewer feedback though, this run has a chance to move up to Moons if the ratings are good enough.
Fog: Processing.
Last Edited by adelikat on 10/23/2023 12:02 AM
Page History Latest diff List referrers