(Link to video)

Introduction

Nobody:
Absolutely nobody:
me: Here's a TAS for NES Tennis
Yeah, so I wanted to do something different from all the movies I've been working on. I was curious to see how a bot can exploit a game so simple as NES Tennis, and indeed some exploits were found. In particular, movements can affect RNG such that serving can always be manipulated to be aces, and returns can always cause the opponent to either let the ball pass or make an unforced error.
I choose level 5 of difficulty. Here the game makes you beat a (normally) relentless CPU opponent twice on a best-of-3 set match. Repetitive yes, perhaps even boring. But I had a blast working on it.

Objectives

  • Hardest Difficulty
  • Heavy luck manipulation

Software + Hardware

Rom Information

  • Name: Tennis (JU) [!]
  • SHA1: 80D99C035E6A5AB9718E413EC25CBE094F085962
  • MD5: 32FB31AE20F0D01BC74BAAD9F3A9672B

Emulator

  • EmuHawk 2.8.0 (Core: QuickNES)
I tried resyncing to the NesHawk core, but immediate desyncs happened. I believe this is due to the way RNG is managed in this game. I identified the value range [0x500 - 0x503], which seems to diverge depending on the emulator. I estimate that this is an RNG value that is updated with PPU/CPU timing, leading to desync.
With a RAM transplant at frame 128 (127 and before fails -- this is exactly at the moment of serving) from QuickNES to Bizhawk, it is possible to replicate the opponent mistakes also in BizHawk More research would be worth doing here, but this is as far as I took it.

Routing Bot

  • Bot: Jaffar
  • Routing Core: QuickNES
  • Platform 1: AMD Ryzen Threadripper 3990X Processor (64 cores, 128 threads) + 256Gb RAM (Average Exploration Performance: 1.4M States/s)

feos: Claiming for judging.
feos: Great run, reaches an ending, accepting.

EZGames69: Processing...

TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 14876
Location: 127.0.0.1
This topic is for the purpose of discussing #7712: eien86's NES Tennis in 11:16.00
ShesChardcore
She/Her
Skilled player (1506)
Joined: 2/23/2022
Posts: 131
Location: MN
This was actually on my radar, I love sports games shenanigans. I'm glad you did it first though. Your bot did a better job than I would have :p Yes vote.
GMP
He/Him
Editor, Reviewer, Active player (360)
Joined: 5/22/2020
Posts: 197
Location: Chennai, India
The first couple of mins was fascinating, but it got boring real fast in terms of entertainment, as mentioned in the submission text as well. Gonna have to pull out my Respectful Meh Vote™.
nymx
He/Him
Editor, Judge, Skilled player (1638)
Joined: 11/14/2014
Posts: 810
Location: South Pole, True Land Down Under
First off, you make the opponent look like they are an idiot! Second, 64 cores??? DUDE I considered a Threadripper, but a CPU version that had 24 cores; however, I settled for the 3950x (16 core). It worked for my needs, but dang! I'm regretting it now, since I'm trying to work on a multi-core lua script to distribute the work load for any of my TASes.
I recently discovered that if you haven't reached a level of frustration with TASing any game, then you haven't done your due diligence. ---- SOYZA: Are you playing a game? NYMX: I'm not playing a game, I'm TASing. SOYZA: Oh...so its not a game...Its for real? ---- Anybody got a Quantum computer I can borrow for 20 minutes? Nevermind...eien's 64 core machine will do. :) ---- BOTing will be the end of all games. --NYMX
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 14876
Location: 127.0.0.1
This movie has been published. The posts before this message apply to the submission, and posts after this message apply to the published movie. ---- [4878] NES Tennis by eien86 in 11:16.00