This game would feature an epic storyline, where the protagonist saves the virtual world of Evermore and the lives of those who are trapped inside… If we wouldn't skip all but two minor dialogs of the game. This is the story of "The Dog" and his trancendence once he's realized that he's actually trapped in the Matrix.

Game objectives

  • Emulator used: lsnes rr2-β23
  • Objective: Reach the credits as quickly as possible
  • Categories:
    • Heavy glitch abuse
    • Corrupts memory
    • Genre: Action RPG

Glitches/Techniques

Infinite Flag Glitch

Looting an enemy drop with a numeric value also locks the amount of the next item pickup to the same value, for a short amount of time.

Executing Code (ACE)

A more detailed explanation can be found here:
The only difference is that the camera is being possitioned 255*4 pixels to the right, which makes the game read the jump address from the first controller instead of the frame counter.
AddressNameValueComment
$7E/3378Parts of alchemy Slot #0$005APoints at the Camera Offset
$91/005ACamera Offset (LSB Y, MSB X)$8104Points at Controller #1 Copy (Offset $8000)
$91/0104Controller #1 Copy$421APoints at the Controller Registers (Controller #2)
$91/4218Controller Register$xxxxxxxxxxxxxxxxThe executed code is based on the buttons pressed in the current frame

Route Comments

This is an improvement to #6610: r-bin2's SNES Secret of Evermore "game end glitch" in 09:56.27 by 12.433 frames, which has been possible thanks to an improved ACE setup. Therefore this documentation is an extension of the previous one, which explains the ACE more in depth.
Two of the most important inofficial rules have been shattered now:
  • Having 9 alchemy spells on the screen crashes the game
  • "Zombie" Boy is the slowest character in the game
Without the requirement to wait for a certain frame optimizations became a lot more important:
  • Skipping the Inn forces us to play as "Zombie" Boy
    • Having 0 HP makes the Boy "immune" to enemy attacks
    • Having 0 energy is why we can neither run (Requires Jaguar Ring) nor hit for more than 2 damage
  • Looting less than the maximum possible amount of ingredients would be too slow
    • Infinite Flag Glitch allows us to loot 7 clay because 7 Talons have been looted before
  • It's not worth picking up the Jaguar Ring (Which means no running)
    • It takes roughly 40s to click through the dialog
    • In order to get the ring we would have to buy an item, which would cost 20 Talons
We still access the glitched cutscene as nameless dog, which makes the outro even slower.

Possible Improvements

  • It might be possible to loot the 7 Clay even faster, because despawned enemies seem to retain the damage that was previously dealt
  • In theory a better ACE setup, that can be executed in front of the "Hard Ball cave", exists

Thanks!

  • Black_Sliver for helping me understand ASM, SNES architecture and countless game mechanics!
  • p4plus2 for teaching me how to perform the ACE with lsnes
  • Colin, Solarcell007, TheAngryPanda and Zheal for helping me to route the new setup
  • And basically the whole Evermore discord for all the support, streams and being awesome!
  • ThunderAxe31 for being an awesome judge

Nach: Judging. Nach: Unclaiming as I don't understand what's going on well enough, and Memory seems to get this TAS better.
Memory: Judging
Memory: Updating file with 729 frame improvement with "loopy" ending per discussion.
Memory: Optimization looks good, though it can be hard to tell with the game end shenanigans.
The run was well received, though I don't think I totally understood all of it personally. That being said the loopy ending was definitely amusing.
Upon discussion, we decided that the so-called "bad ending" didn't really resemble beating the game, but this one fit well enough. Additionally I felt it was the more entertaining of the two endings, so I went for it.
Since this really doesn't resemble [2964] SNES Secret of Evermore by TheAngryPanda in 1:15:07.64 in the slightest, I feel it would be best as an entirely new branch.
Accepting to Moons as a new branch.
fsvgm777: Processing. Zinfidel is handling the encodes for this one.


TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15571
Location: 127.0.0.1
This topic is for the purpose of discussing #6617: r-bin2's SNES Secret of Evermore "game end glitch" in 06:29.39
Editor, Reviewer, Skilled player (1354)
Joined: 9/12/2016
Posts: 1646
Location: Italy
Aww please, I didn't do anything extraordinary... actually, I can't even follow much of the technical stuff behind this game. 😀 I'm putting a yes vote nonetheless, because the movie looks good. 🖒
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Patashu
He/Him
Joined: 10/2/2005
Posts: 4043
Nice improvement, yes vote! Now TAS really has to hustle.
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Zinfidel
He/Him
Player (206)
Joined: 11/21/2019
Posts: 247
Location: Washington
Great find and improvement. Got a yes before, getting a yes now.
PJ
He/Him
Joined: 2/1/2011
Posts: 182
Location: Western NY
I admit I was the "meh" vote on the previous version because watching the dog slowly walk around for several minutes while you wait for the frame counter to get to the right spot was pretty uninteresting. The ACE was really neat, but overall I wasn't entertained by the movie. This version still has the amazing ACE, but now I get to watch actual meaningful things happen beforehand! Haha. Loved it. Good work!
Joined: 6/4/2009
Posts: 893
we can now walk instead of crawl, next comes running. great improvement, easy yes
Player (42)
Joined: 1/19/2020
Posts: 11
Thanks! And I agree that the previous route deserved some negative votes, because there was not much room for creativity. Finding a new route was not on my radar whatsoever. While trying to port the exploit to be RTA viable I somehow realized that the Bugmuck map is way bigger than expected. The last 30ish pixels are enough to point at the value behind the frame counter, which happens to be a copy of the first controller. (Manipulation that is slightly easier) Not only was it the breakthrough for the TAS (especially when it comes to making it more entertaining), but I also managed to enter code with RTA like inputs! The exploit is completely open source, by the way: https://datacrystal.romhacking.net/wiki/Secret_of_Evermore:Alchemy_RAM_manipulation#TL.3BDR
Ford
He/Him
Joined: 3/5/2013
Posts: 183
Location: California
To quote South Park, "How do you kill that which has no life?" Huge yes from me!
Player (42)
Joined: 1/19/2020
Posts: 11
When I mentioned up to 350 frames that could be optimized I did not factor in new findings. That's why I proudly present a 662 frame improvement: Link to video It features:
  • Heavily improved luck manipulation and execution
  • Playing the Boy and the Dog at the same time by abusing the AI
  • Faster executed ACE (Thanks to a lua based "RNG bruteforcer" and "ACE outcome predictor")
  • More efficient ASM (Which leads to the even more glitched outro)
  • A lua based overlay that visualizes the buffer overflow
User movie #62859660987629518 In case the glitched outro is a problem I added a version, that executes the same ASM as before:
  • 14 frames slower, because the ASM wasn't improved
  • Instead of an abrupt end 10 minutes into the outro (Which looks kind of hilarious, which is why I personally would prefer it), the game ends with a "The End"
User movie #62839603507324198
Patashu
He/Him
Joined: 10/2/2005
Posts: 4043
Nicely improved! Can I give a second yes vote? ;>
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Joined: 6/4/2009
Posts: 893
great improvement, the "damages boosts" in the first screen looks far more optimal now and the glitched ending made me laugh
Player (42)
Joined: 1/19/2020
Posts: 11
Thanks, I'm really happy with the outcome! Here is one last improvement, due to an even better spot to execute the ACE in: User movie #62991437943364718 (In total a 730 frames improvement over the currently listed one, but don't look at the reset counter) Link to video At last my to-do list is completely empty. I might look into the 100% category in the future
CoolHandMike
He/Him
Editor, Judge, Experienced player (895)
Joined: 3/9/2019
Posts: 693
Finding crazy fast ways of completing these lengthy rpgs is quite impressive. Yes vote.
discord: CoolHandMike#0352
Player (42)
Joined: 1/19/2020
Posts: 11
Since the credits depend on the content of 0x7E22EB and 0x7E22F1, I made a comparison: (From fastest to slowest - "normal" behavior is highlighted as bold)
  1. Costs 2 frames (credit=0x48/0x48, HP=0) Cutscenes after the cinema are missing, B returns to the last save state
  2. Costs 3 frames (credit=0x48/0x48, HP=42) Cutscenes play in a normal fashion, B returns to the opening
  3. Costs 3 frames (outdated route) (credit=0xFF/0xFF) Cutscenes are weirdly ordered and playing in a cascading way, B returns to the opening
  4. Normal outro (HP=0) Cutscenes after the cinema are missing, B returns to the last save state
  5. Normal outro (HP>0) Shows 100% of the cutscenes, B returns to the opening
My preference would be movie #1, or the same run with the outro of #3. In case those glitches are unwanted I added #2 as backup.
Editor, Reviewer, Skilled player (1354)
Joined: 9/12/2016
Posts: 1646
Location: Italy
I think that solution #2 should be used, as it gives a much better sense of having beaten the game. There are just too many cutscenes missing in #1, most notably the later ones and the credits roll.
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Memory
She/Her
Site Admin, Skilled player (1553)
Joined: 3/20/2014
Posts: 1765
Location: Dumpster
So it seems to me that the two matters that are important are consistency and authenticity. Consistency indicates we probably want good ending for the TAS (or something resembling good ending), and authenticity indicates we want something that authentically beats the game. From that I'm leaning more towards 2 or 3.
[16:36:31] <Mothrayas> I have to say this argument about robot drug usage is a lot more fun than whatever else we have been doing in the past two+ hours
[16:08:10] <BenLubar> a TAS is just the limit of a segmented speedrun as the segment length approaches zero
Player (42)
Joined: 1/19/2020
Posts: 11
I can provide a movie file for 3, as well as description for the overlay. Anything else I can do?
Memory
She/Her
Site Admin, Skilled player (1553)
Joined: 3/20/2014
Posts: 1765
Location: Dumpster
What is number 1 on the list two frames slower than? I see it as the fastest on your list, yet it supposedly loses 2 frames?
[16:36:31] <Mothrayas> I have to say this argument about robot drug usage is a lot more fun than whatever else we have been doing in the past two+ hours
[16:08:10] <BenLubar> a TAS is just the limit of a segmented speedrun as the segment length approaches zero
Player (42)
Joined: 1/19/2020
Posts: 11
That's the raw lua code I executed in #2:
	send_init_lda(0x0048)
	send_sta(0x4F51) --dog_x
	send_sta(0x3365) --clear_crashing_alchemy_projectile
	send_sta(0x3377) --clear_crashing_alchemy_animation
	--no longer required: send_lda(0xffff)
	send_sta(0x22EB) --credit_spaceship
	send_sta(0x22F1) --credit_sandpits 
	
	send_lda(42)
	send_sta(0x4EB3) --boy_hp
	send_sta_rts(0x4F53) --dog_y
  • 9 frames of code is the minimum I came up with (It reuses imperfect values, that's why the memory still looks slightly corrupted in the overlay)
  • boy_hp is the frame you lose in #2 to get a "good ending" (The game checks if the boy survives the 0 damage from the cinema)
  • credit_xy "costs 2 frames", because 2 out of the 9 frames are used to set them (Compared to solution #1: #3 has an additional send_lda(0xffff) and #2 the previously mentioned send_sta(0x4EB3) --boy_hp)
In general are most of these values very forgiving. Exception of the dogs coordinate, which has to be inside of either one of the entry triggers (Next to label "Quicksand Area") So it's not slower than anything, I just tried to avoid writing "0 frames".
Memory
She/Her
Site Admin, Skilled player (1553)
Joined: 3/20/2014
Posts: 1765
Location: Dumpster
So are 2 and 3 actually equal in length?
[16:36:31] <Mothrayas> I have to say this argument about robot drug usage is a lot more fun than whatever else we have been doing in the past two+ hours
[16:08:10] <BenLubar> a TAS is just the limit of a segmented speedrun as the segment length approaches zero
Player (42)
Joined: 1/19/2020
Posts: 11
Yes. It wasn't planned that way, but #2 and #3 ended up being equally long. Only #1 has an advantage of 1 frame. (With the downside that the boy dies) Chronologically #3 was the first, not very optimized version, #1 was a "how far can I go" and #2 is a fixed version of #1.
Memory
She/Her
Site Admin, Skilled player (1553)
Joined: 3/20/2014
Posts: 1765
Location: Dumpster
So I talked it over and either 2. or 3. could be acceptable as both of these give a proper feeling of game completion. 2 feels more "legit" but 3 is kinda amusing. You expressed above 1 or 3 would be your preference, is that still the case? And can you provide a proper (actually fast) version of it?
[16:36:31] <Mothrayas> I have to say this argument about robot drug usage is a lot more fun than whatever else we have been doing in the past two+ hours
[16:08:10] <BenLubar> a TAS is just the limit of a segmented speedrun as the segment length approaches zero
Player (42)
Joined: 1/19/2020
Posts: 11
Yes, I prefer the loopy credits: User movie #64650819018993037 I'd also like to update the description, after the movie file has been updated. Is it worth to describe the overlay? Or will my video replaced with the generated one anyway?
Memory
She/Her
Site Admin, Skilled player (1553)
Joined: 3/20/2014
Posts: 1765
Location: Dumpster
We make our own video encodes for the publication. EDIT: though it's worth noting that some publications have had encodes with lua scripts visible. Not sure on the exact policy on that though.
[16:36:31] <Mothrayas> I have to say this argument about robot drug usage is a lot more fun than whatever else we have been doing in the past two+ hours
[16:08:10] <BenLubar> a TAS is just the limit of a segmented speedrun as the segment length approaches zero
Zinfidel
He/Him
Player (206)
Joined: 11/21/2019
Posts: 247
Location: Washington