Game objectives

  • Emulator used: Bizhawk 2.10
  • Primary objective: speed
  • Best ending
To avoid repeating myself, I'll try to only comment on things that aren't mentioned in the comments for #9901: ktwo's NES The Simpsons: Bart vs. the World in 07:15.35.

About the category

Each stage has a unique Krusty treasure that Bart can collect with the help of one of the other family members. If all treasures are collected (9 in total), Bart is sent to a new level, soundstage 3 (the "film reel" level) before meeting the final boss and is then awarded with a different and better ending. While this TAS ends input as early as possible, it's possible to interact during the ending by throwing pies at Smithers and Mr Burns.

Stage by stage comments

China

Boss - Excellent fight, but at the cost of delaying the start of the fight by 4f to get an acceptable seed to work with.

North pole

Ice cave -A 4f delay was introduced at the map screen before this level to get a workable RNG seed. It's worth to briefly talk about the unique Krusty treasure in this level. Marge throws a snowball when the global timer ($1D) is a multiple of 0x7F (so every 128f). The timing in this TAS was not the best with a fair amount of waiting before Marge threw the first snowball.
Frozen river - While most of the unique Krusty items only require Bart to touch the family member and then collect the treasure, this one requires some additional effort. Each firecracker ball will destroy 3 blocks of the igloo (occasionally only 1, for unknown reasons). Sometimes three horizontal, sometimes 3 vertical, sometimes "2+1". This can be controlled to some extent by throwing at different frames. There are 18 blocks that hide the treasure, so a minimum of 6 balls are needed. This TAS does it in 7 throws. The additional throw was to create a path towards the center blocks (which are the ones of interest) when throwing from a distance.
Boss - Starting the level on a very good global timer, making the boss retreat very quickly in the 1st cycle.

Egypt

Great pyramid - The first "snake block section" was completed quite a bit slower than in the any% TAS. For unknown reasons, the screen refused to scroll when jumping down to the treasure if trying to complete it like in the any%.

Hollywood

Soundstage 1 - With luck, some sea gulls can be avoided by moving sideways. However, in this attempt, every single sea gull was blocking the path and had to be manipulated (1f/sea gull). On top of that, a cannonball that doesn't always appear also had to be despawned in this attempt for the cost of 1f.

Darkman425: Claiming for judging.
Darkman425: The movement and routing to the levels and detours for the pickups needed for the best ending look well optimized. A shame that a 128 frame rule blocked off a potential time save but that's just how it is sometimes. Nice work!
Accepting to Standard under the "best ending" branch.
Note to publishers: there's a bit of extra possible inputs when Smithers and Burns are on screen after the final input. Bart can move left and right and throw pies with A or B. Pressing Select leaves this screen and goes back to the intro sequence before the title screen. Take this info as you will how you see fit.

despoa: Processing...
Darkman425: Setting to Delayed by author request as they check for potential improvements.
Darkman425: Input file replaced with a 594 frame improvement by the author, and reaccepting.

despoa: Processing...


TASVideoAgent
They/Them
Moderator
Location: 127.0.0.1
Joined: 8/3/2004
Posts: 16889
Location: 127.0.0.1
Experienced player (619)
Joined: 8/10/2008
Posts: 137
As was pointed by Randomno in the any% thread, there is a faster way to collect the Bartman icon in the first level. I started working on including this in an improvement, but stopped at the unique Krusty treasure in the ice cavern. It turns out that Marge throws snowballs based on the global timer every 128f. While the faster Bartman grab resulted in getting to Marge sooner, it was still far from catching an earlier cycle. In fact, something caused the global timer to jump back a bit at one point, so what was supposed to be an improvement actually made the TAS slower... Because of this, I don't intend to replace the current movie (unless something else is found).
Patashu
He/Him
Joined: 10/2/2005
Posts: 4097
Might be worth studying the global timer further - if actions that look faster can make the global timer less favourable, actions that look slower can make the global timer more favourable, so you could save a few frames.
Puzzle gamedev https://patashu.itch.io Famitracker musician https://soundcloud.com/patashu Programmer, DDR grinder, enjoys the occasional puzzle game/shmup.
Experienced player (619)
Joined: 8/10/2008
Posts: 137
It was maybe not the best wording from me... The global timer ($1D) decreases every non-lag frame. The value is also updated twice in the Great wall stage (skateboard/2nd level). I haven't tried to fully understand the purpose of updating it there, but it's clearly linked to the two dragons that each guard an entrance. Maybe it's related to the dragons' movements or breathing fire? Anyways, these additional calls take the following form:
A:5D X:06 Y:00 S:F1 P:nvUBdizc               $8B1D:A9 07     LDA #$07
A:07 X:06 Y:00 S:F1 P:nvUBdizc               $8B1F:9D 59 06  STA $0659,X @ $065F = #$01
A:07 X:06 Y:00 S:F1 P:nvUBdizc               $8B22:05 1D     ORA $001D = #$EC
A:EF X:06 Y:00 S:F1 P:NvUBdizc               $8B24:85 1D     STA $001D = #$EC
So between 0 and 7 is added to the global timer, but with no possibility to decrease (or greatly increase) it. This happens the first time on frame 1436 in the submitted movie, where the timer increases by 2 instead of the expected decrease by 1. I don't see any jump in the timer around the second dragon, so the increase then looks to be 0. Because of the 4f framerule, this (=2+0) looks to be the best outcome. I've played around with the inputs to see if this increase can be avoided (e.g. by jumping or pausing), but haven't found any way to skip these additional updates of the global timer. I can't say if there are other sections tucked away in the code for updating the global timer that could be triggered under specific circumstances. But the two methods described above are at least the only ways it's updated in any of the cases I've looked at.
Dimon12321
He/Him
Editor, Reviewer, Experienced player (640)
🇷🇴 Romania
Joined: 4/5/2014
Posts: 1361
Location: 🇷🇴 Romania
Temp Encode Link to video Finally I can vote Yes!
TASing is like making a film: only the best takes are shown in the final movie.
Experienced player (619)
Joined: 8/10/2008
Posts: 137
https://tasvideos.org/UserFiles/Info/638949298301556922 Unless something new is found, I don't plan any more updates. This can be considered as the final version.
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Location: 127.0.0.1
Joined: 8/3/2004
Posts: 16889
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. ---- [6760] NES The Simpsons: Bart vs. the World "best ending" by ktwo in 10:03.756