Submission #7506: EZGames69 & SBDWolf's SNES The Lion King in 11:22.99

(Link to video)
Super Nintendo Entertainment System
baseline
BizHawk 2.8.0
41047
60.0988138974405
55271
PowerOn
Submitted by SBDWolf on 5/26/2022 3:17:46 PM
Submission Comments
General info:
  • Bizhawk 2.8
  • Aims for fastest time
  • Plays at easiest difficulty
  • Abuses programming errors
  • Manipulates RNG
Difficulty choice: Easy Why did we choose easy? Because I’m EZGames, it’s my thing. In actuality, easy was chosen because in terms of this run, Hard mode only affects the amount of hits the hyenas take in the first and third levels. After that, the difficulty is no longer relevant. The same thing was done in the Genesis TAS for this game, so this has precedent. The amount of time that was saved from using easy mode was roughly 1256 frames (298 frames saved on the fight in level 1, 354 frames saved on 1st hyena fights in level 3, and 604 frames on the 2nd hyena fights in level 3)
SBDWolf: I think the way RNG works in trhis game deserves a brief breakdown. The RNG seed is stored at $1E00 in RAM as a 3 byte value. The RNG only advances when something explicitly calls it, and always through the same algorithm. That means that it can both be very predictable over a short term, as well as very inflexible to work with and hard to control precisely. In order to change the RNG in a movie file, you need to go far back enough to find a spot where you can interact with an RNG element differently at little or no time loss. The problem is, later RNG calling elements can now roll the RNG a different amount of time well. For example: cheetahs can swipe a random amount of times, and every time they swipe they advance the RNG. This means that going back to change the RNG, then going through some cheetahs, can cause further RNG differences. This makes it difficult to land on exactly a specific RNG value.
Level by level breakdown:
To be filled in.

The Pridelands

Pridelands is very straightforward, just reach the hyena at the end of the level and defeat it.
There is a pixel perfect jump that skips a section of the level, and we are able to jump to a tree that normally holds a bonus game bug to skip another section.
You’ll notice we alternate left and right sometimes when jumping, this is because when you turn around or stop moving, you lose the speed values, however if you hold L+R it preserves the speed while you’re jumping.
The hyena only takes one hit on easy mode

Can't Wait To Be King

This is the level that caused this game to become infamous. Monkey puzzle aside, the only real ticks with this level is lag reduction.

The Elephant Graveyard

The Vultures in this stage have some of the most frustrating rng as you don’t get many chances to advance it.

The Stampede

Yes

Simba's Exile

The ledges in this stage are busted if you jump at them with a specific height and speed value.

Hakuna Matata

SBDWolf: It's a little hard to notice, but there is a small wiggle on one of the swings midway through the level. This causes additional RNG rolls, which will come in handy later.

Simba's Destiny

SBDWolf: There is an 11 frames delay before throwing the cheetah at the first spawner, which causes additional RNG rolls, This delay + the wiggle in Hakuna was the best manipulation I could find within about a week of work.

Be Prepared

SBDWolf: This is the level that all the RNG manips builded up to. The optimal RNG here is for the cheetah to do a single swipe in order to clip as fast as possible, and for the leftmost geyser to erupt second.
Here's how the geysers work, simplified: when a geyser spawns, so long as another geyser is not currently erupting, it gets assigned a random cooldown between 0x32 frames and 0x41 frames. When its cooldown reaches 0, it will erupt. If more than one geyser currently has its cooldown sitting at 0, they will erupt in the order that they appear in the object list, which in typical circumstances is from right to left. Once the leftmost geyser erupts a total of 5 times, a rock will fall on it, and it can be ridden to end the level.
After clipping, we stall on the upper ledge a bit. This only spawns the rightmost geysers and depletes its cooldown completely. After that, we run left. Soon after the rightmost geyser finishes erupting, all geysers get assigned a new cooldown at the same time. This allows for any geyser to potentially erupt second, after which they will cycle through in the normal right-to-left order. If the leftmost geyser is the one that erupts second, then its fifth eruption will happen before the middle two geysers, skipping two eruption cycles.
Here's a video on the topic by Akiteru, which goes into a little bit more detail about these geysers and RNG in general: https://youtu.be/7F-GyDBkmeU
This is a 25% chance, which coupled with the single swipe cheetah RNG, made finding the optimal RNG seed for this level pretty difficult. Technically there is extra time save coming from the cooldown that the first two eruptions receive. This run gets 0x3C and 0x32.

Simba's Return

Pride Rock

Comments:
EZGames69: This has been a project I’ve wanted to do for awhile. Ever since Tompa posted about the time save in Be Prepared, I wanted to look at improvements to this game. I ended up improving the Genesis version in the process with Tompa, but I couldn’t let the SNES alone. Unfortunately so much of this game has a ton of luck based events that have demotivated me for awhile. It was by the time I reached the 2nd panther section in Simba’s Destiny that I was about ready to give up. I reached out to the Lion King RTA discord for help, where I talked to SBDWolf. He was able to determine the solution that didn’t rely on RNG at all, but to kill the bottom leopard because it ended up being faster to do that. I’m very thankful for his efforts and keeping my motivation for this game alive.
SBDWolf: I joined this project after EZGames69 hit a roadblock in Simba's Destiny. I worked on manipulating RNG in Be Prepared (big pain in the neck, by the way), some rooms in Simba's Return, and polishing up Pride Rock, on top of finding some miscellaneous time savers in here and there. I consider myself an RTA runner first and foremost, but I always find TASing very enjoyable and I think it helps me spot and think about optimizations that I otherwise would have a difficult time coming up with. Huge thanks to EZGames69 for getting me involved in this project, and big shoutouts to Tompa for doing a lot of work on this game throughout the years, Akiteru for doing a lot of research on the RNG and this game's inner workings (and being a beast at this game in general), and to all the passionate TLK runners from the community for all the work they put into this game.

Truncated: Claiming for judging.

Truncated: Replaced the movie file with a 1 frame faster version on request of SBDWolf.
Subtracting the time gained from changing difficulty means there's still around 4000 frames of improvement here. As such, accepting this as an improvement to [2716] SNES The Lion King by Tompa in 12:51.20.

despoa: Processing...
Last Edited by despoa on 6/22/2022 1:11 AM
Page History Latest diff List referrers