Submission #8155: eien86's NES Pac-Man (Tengen) in 12:02.86

Nintendo Entertainment System
(Submitted: Pac-Man (Tengen))
baseline
(Submitted: Pac-Man (USA) (Tengen).nes USA)
EmuHawk 2.8.0 (Core: NESHawk)
43443
60.0988138974405
0
PowerOn
MissingRerecordCount
Submitted by eien86 on 3/30/2023 5:44 PM
Submission Comments

Introduction

This is my third attempt at producing an acceptable TAS for NES Pac-Man.
A few days ago I submitted a movie #8149: eien86 & mscroggs's NES Pac-Man (Namco) "single level" in 00:44.18 that solves a single level of Pac-Man, under the impression it was the fastest route. I was wrong since Randil had already produced a much faster movie with a better route. Then I took that route and transcribe the pellet order into JaffarPlus to solve the level by having a reward function (r) with the following shape:
r = #PelletsInPathEatenInOrder * 1000.0 - distanceToNextPellet
The PelletsInPathEatenInOrder rewards the bot for every pellet eaten in the optimal path, and not for any other pellet which is out of order in the optimal route. distanceToNextPellet is the manhattan distance from the center of pacman and the position of the next pellet in the route. The result was a movie that's 20 frames faster.
The movie described above was submitted in #8152: eien86's NES Pac-Man (Tengen) "single level" in 00:36.36 and received, just like the first one, feedback regarding its unacceptability. This was because, although the game has no ending, the movie solved only a part of all what the game can offer. Indeed, playing more levels (forgot how many) will bring a set of new challenges as both the Pac-Man and ghosts get faster and the effect of magic pellets get shorter (a metaphor for developing drug tolerance?). Not only does the difficulty ramp up, but also the bonus items change. The last item -- a key, of all things in God's good earth -- repeats indefinitely.
The movie hereby attached incorporates the exact inputs of the previous one, but plays further. And it does so as fast as computerly possible until the very last noticeable change in the game happens: all keys are shown in the screen. And then it beats that level. Nothing new remains to discover, except of course, an eventual score overflow.
I hope this movie now has more chances to be accepted. I am in favor of adding Randil as co-author, if they and the judge considers it fair, since I based the overall route on his previous work.

Comparison Movie

The movie below shows the difference for the first level only between the movie by Randil and mine.

Software + Hardware

Rom Information

Rom: Pac-Man (Tengen)
  • headerless rom hash: SHA1:A34E68372082513209A795786C8EEA493CC2CD14
  • headerless rom hash: MD5:C4AE6CC4E981A8316429572409018DC8
  • PRG (8KB) + CHR hash: SHA1:96C8879B8F0C70803A5F7754D53F8BD60F016163
  • PRG (8KB) + CHR hash: MD5:E6EE06910B926DB6A19F1F1C3A3EB21D

Emulator

  • EmuHawk 2.8.0 (Core: NesHawk)

Routing Bot

  • Bot: JaffarPlus
  • Routing Core: QuickNES
  • Platform: 'The Jaffanator' - AMD Ryzen Threadripper 3990X (64 cores, 128 threads) + 256Gb RAM (Average Exploration Performance: 1.35M States/s)
Re-record count is 53472478070

Darkman425: Claiming for judging.
Darkman425: I did a little legwork with checking. While I was able to use the final board input done with the one syncing without modification, doing that again after had a desync where Pac-Man eats Pinky. That led me to do some RAM checking.
In the RAM the address that tracks how long a power pellet lasts, a big indicator for difficulty, is at 0x008C. It starts at 7 and eventually goes down to 0 with some occasional increases in between for reasons only known to Tengen. At 7 the power pellet lasts 480 frames which would indicate the lowest difficulty. At 0 the power pellet lasts only 30 frames and doesn't seem to go lower, indicating maximum difficulty. At the last round done in this submission, the round before the last one, as well as the two rounds immediately after, the address is at 0 so that would be at maximum difficulty.
Thus the reason that I came to with the desync on input reuse comes down to a simple matter of slight RNG variance. As this submission has a clear and visible goal of clearing a round with all keys on the score area and with RAM watching revealing that the power pellets are at their weakest, I come to the conclusion that this exhausts all unique content.
Accepting to Standard for full completion.
Spikestuff: Wakka Wakka.
Last Edited by Spikestuff on 4/22/2023 9:40 AM
Page History Latest diff List referrers