Kirby decides to save the planet by climbing a ladder. Do not try at home!

Game objectives

  • Emulator used: lsnes rr2-β21
  • Aims for fastest time
  • Uses game-breaking glitches
  • Achieves credits early

Comments

Glitches that crash the game in a lot of different ways each time you are doing them are usually a sign that really crazy stuff is going on. This video [dead link removed] made me interested in this glitch and I somehow managed to activate a debugger function or something. After a few tries I found out that the main CPU (the game has also the SA1 chip) sometimes runs over the controller registers, which is a good thing if you ask me :D.

Explanation

The reason why the game freaks out when you try to climb a ladder up and down at the same time is because it doesn't expect you to do that. The initial glitch happens in the SA1 processor which indexes a location wrong and jumps to garbage code where it BRKs. Because of the BRK it jumps to location $5FFF which is just before SRAM (starting at $6000). It keeps breaking and filling up SRAM from the end to the start until it overwrites the addresses it is executing and then everything starts. It manages to lead the CPU to the controller registers at $4218 where then the fun begins.
When I say the fun begins I don't actually mean fun, because I now have to deal with two processors and a destroyed RAM. With a lot of trace logging and lua scripting I managed to kinda see the addresses I have to change for example changing the gamemode ($7390) to cutscene (0x0008) or the game chosen ($32EA) to Milky Way Wishes (0x0005). But I had a few problems while in the controller registers.
I start by trying to stay in the controller registers, which turned out to be harder than I thought. Because of the RAM being all destroyed the NMI and IRQ were going to crash once started. I managed to fix the NMI by changing $3099, but then the next interrupt that was going to happen would be IRQ. I "disabled" IRQ by setting the vcounter when it should start to 501, which is never going to happen. Then I had a fine working setup to write 2 bytes per 2 frames so far. I had to change so many addresses that it turned out to be faster to write a small code in RAM that allowed me to write 2 bytes per frame. Then I reset the SA1 processor and set it to a new location in SA1-IRAM, where I wrote a new code for it to execute, because not only RAM was damaged, the stack and direct page register were corrupted too. I changed all values and the last cutscene started.
It was very important to get a good starting state of the CPU when going in controller registers, because else the whole thing movie have failed when I tried to stay in the controller registers. By good starting state I mean the stack, the direct page and the data bank registers were normal (they could be corrupted in CPU and were corrupted in SA1). To get that I delayed a few frames at the start.
To see the code that the controller executed look at this.

Special Thanks to

  • Ilari for helping me out with a lot of SA1 stuff (and of course for lsnes :D)
  • mugg and was0x for giving me a savestate near the end of the game which I really needed

Nach: After some discussions with the authors of the run and software, and some testing, it appears this run depends on various compile time specifics of the emulator. A run, especially of this nature, which is depending on various emulator issues is not acceptable.
This kind of run can probably be redone on a more accurate emulator build, one which emulates proper behavior, and may just need some memory addresses tweaked. But till then, rejecting.

Nach: Replacing with a new run from Masterjun which supposedly is valid this time, and rejudging!
Noxxa: Replaced submission file with a new version with a more accurate rerecord count.
Masterjun: Replaced branch name with a more fitting one.

Masterjun: I'm gonna cancel this TAS because I don't want to have a "cheap" SNES ACE run, which I realized after thinking about it a while. I consider these kind of runs "cheap" because they rely on the game crashing (really executing BRK instructions) and then running over controller registers by accident. The advantage of SNES runs over other consoles is that the SNES has 8 bytes that you can control with controllers, which are relatively many.
Don't expect any more cheap ACE runs by me.
Masterjun: Uncancelling. Ok, I should just stick to creating TASes and submitting them instead of deciding what happens with them here. Though, this doesn't guarantee that this is gonna be accepted, guys. I also changed the branch to "game end glitch".

feos: Accepting to Moons.
Ilari: Publishing...

Noxxa: Reverting acception due to judge dispute.

Nach: Rejudging. Again.

Nach: After reading more documentation than I ever wanted to, it seems this kind of run is possible. Recreating this run on a console would not be straight forward, but it looks like theoretically with some tweaking and enough resets, it just might. Since what occurs visually should be possible, I'll allow this.
Kirby Super Star is made up of a bunch of mini-games, which can be played individually. As more games are completed, additional games are unlocked. This run is interesting in that it goes to play The Great Cave Offensive, and then ends up completing Milkyway Wishes, which is the second to last game which can be unlocked. After the ending is completed, the cart shows that 0% of the game is completed, with no mini-games not even Milkyway Wishes or The Arena unlocked. (The Arena mini-game is unlocked when completing Milklyway Wishes in the normal fashion.)
Therefore, this run gets one ending displayed, what is usually considered by players to be the last ending (The Arena doesn't have a special ending), yet completes nothing, and doesn't show all the appropriate endings. As usual, this kind of run is problematic with its objectives and completions, and I dislike calling it game-end glitch. However it is interesting, and therefore accepting as whatever this branch ends up being called.
Ilari: Processing


Editor, Expert player (2372)
Joined: 5/15/2007
Posts: 3940
Location: Germany
Maybe I'll get my chance to work on a potentially faster beginning should I decide to stop being lazy
creaothceann
He/Him
Editor
Joined: 4/7/2005
Posts: 1874
Location: Germany
Masterjun wrote:
I only need to wait for a bsnes bug fix.
byuu wrote:
Yeah, glitching at this level isn't going to be stable on real hardware, no matter how accurate our emulation gets.
[*] I have two different candidates for the correct behaviour: 
- Do it like bsnes v094 does: Return MDR, updated on write. 
- Do it like bsnes does for S-CPU (S-CPU and SA1 share execution core): Return MDR, update on read and write.
Interesting that the G-Next bugfix ended up affecting something else. But yeah, prior to the fix, there was no function return statement for open bus regions in the SA-1. So it'd be up to the platform/compiler what was in EAX for Intel/AMD systems. Definitely not hardware accurate. The second behavior is correct. I just neglected to add the MDR assignment to SA1::op_read as well. I'll get that into v095. It would be nice if they would post here. We may have missed this bugfix if you hadn't linked to it in a thread I rarely read. That said, they are refreshingly polite and cordial about it. I'd be pissed off if I went to all that trouble making a TAS and this happened.
http://board.byuu.org/viewtopic.php?f=8&t=1767&p=106745#p106745
Post subject: Re: #4287: Masterjun's SNES Kirby Super Star in 00:23.08
Player (13)
Joined: 6/17/2006
Posts: 510
TASVideoAgent wrote:
<a>Nach</a>: After some discussions with the authors of the run and software, and some testing, it appears this run depends on various compile time specifics of the emulator.
I'm happy to see that this was caught, but how were you able to figure out that there was an emulator bug in the first place? Was it because you tried syncing the movie on a different build and failed, or was there a different reason?
Post subject: Re: #4287: Masterjun's SNES Kirby Super Star in 00:23.08
Emulator Coder, Skilled player (1114)
Joined: 5/1/2010
Posts: 1217
SmashManiac wrote:
I'm happy to see that this was caught, but how were you able to figure out that there was an emulator bug in the first place? Was it because you tried syncing the movie on a different build and failed, or was there a different reason?
Got a report that there was trouble syncing it on the latest beta build and went to investigate. Don't offhand remember how I stubled upon the SA1 emulation bug.
Editor, Experienced player (570)
Joined: 11/8/2010
Posts: 4038
It's too bad about that bug, but I look forward to voting Yes on the new run of this game, whenever the fix comes out.
Post subject: Re: #4287: Masterjun's SNES Kirby Super Star in 00:23.08
Player (13)
Joined: 6/17/2006
Posts: 510
Ilari wrote:
SmashManiac wrote:
I'm happy to see that this was caught, but how were you able to figure out that there was an emulator bug in the first place? Was it because you tried syncing the movie on a different build and failed, or was there a different reason?
Got a report that there was trouble syncing it on the latest beta build and went to investigate. Don't offhand remember how I stubled upon the SA1 emulation bug.
Good enough for me, thanks!
Post subject: Re: #4287: Masterjun's SNES Kirby Super Star in 00:23.08
Emulator Coder, Skilled player (1114)
Joined: 5/1/2010
Posts: 1217
Ilari wrote:
Don't offhand remember how I stubled upon the SA1 emulation bug.
Oh yeah, I saw that different builds executed seemingly different instructions and then did go to look how the heck the actual instruction it was executing was determined. Turns out, it was determined by crap left in one CPU register at one point in code.
Emulator Coder
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
...and we're back. <Masterjun> the rerecord count isn't correct though <Masterjun> it should probably be added onto the current one, so a total of 2280 rerecords
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Skilled player (1743)
Joined: 9/17/2009
Posts: 4986
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
As unstable the glitch is, I wonder if it can be console verified given how short the TAS is?
Experienced player (691)
Joined: 11/23/2013
Posts: 2239
Location: Guatemala
Woa!!! I thought this was eaten by the Grue Monster! I think it was too minty for that thing to handle...
Here, my YouTube channel: http://www.youtube.com/user/dekutony
Editor, Experienced player (570)
Joined: 11/8/2010
Posts: 4038
Kurabupengin wrote:
I thought this was eaten by the Grue Monster!
It was, but the lsnes bug was fixed and this run was redone on the new, accurate revision.
Nach wrote:
<Masterjun> the rerecord count isn't correct though <Masterjun> it should probably be added onto the current one, so a total of 2280 rerecords
Could someone replace the movie for Masterjun with one that has the correct rerecord count? I went ahead and made one to make the process easier.
Noxxa
They/Them
Moderator, Expert player (4128)
Joined: 8/14/2009
Posts: 4090
Location: The Netherlands
CoolKirby wrote:
Could someone replace the movie for Masterjun with one that has the correct rerecord count? I went ahead and made one to make the process easier.
Done.
http://www.youtube.com/Noxxa <dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects. <Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits <adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.
WST
She/Her
Active player (490)
Joined: 10/6/2011
Posts: 1697
Location: RU · ID · AM
Damn, it was fast. To be honest, it was even not entertaining, but certainly should be published.
S3&A [Amy amy%] improvement (with Evil_3D & kaan55) — currently in SPZ2 my TAS channel · If I ever come into your dream, I’ll be riding an eggship :)
Post subject: Re: #4287: Masterjun's SNES Kirby Super Star "cheap" in 00:23.03
Noxxa
They/Them
Moderator, Expert player (4128)
Joined: 8/14/2009
Posts: 4090
Location: The Netherlands
TASVideoAgent wrote:
Don't expect any more cheap ACE runs by me.
Expecting incoming controversy in 3...2...1...
http://www.youtube.com/Noxxa <dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects. <Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits <adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.
Site Admin, Skilled player (1255)
Joined: 4/17/2010
Posts: 11495
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
What's going on?
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Skilled player (1743)
Joined: 9/17/2009
Posts: 4986
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
1. How does this make it exactly "cheap"? That makes it sound like it's something anyone can do, despite this glitch initially discovered in 2012 and noone managed to do this. 2. What's with the sudden anti-glitch stance? I know there's always video game "purists" who want to ban glitches (even if they can't exactly agree what to ban at times) but what made you spontaneously think these runs are not worth it?
Banned User
Joined: 3/10/2004
Posts: 7698
Location: Finland
Just noting that when one submits to this website, there's a clause that says: "By pressing "Save/Edit" you agree to publish this content under the Creative Commons Attribution 2.0 license." This means that this submission can be published even without the author's permission. (The license in question specifically states: "The licensor cannot revoke these freedoms as long as you follow the license terms.") Whether it's ethical to do so is a different question, though.
Eszik
He/Him
Joined: 2/9/2014
Posts: 163
I can't believe that Masterjun changed his mind like that. It looks like he put so much effort in this run‚ there is something that I can't understand. Anyway‚ this should get published.
I problably made mistakes, sorry for my bad English, I'm French :v
Noxxa
They/Them
Moderator, Expert player (4128)
Joined: 8/14/2009
Posts: 4090
Location: The Netherlands
Warp wrote:
Just noting that when one submits to this website, there's a clause that says: "By pressing "Save/Edit" you agree to publish this content under the Creative Commons Attribution 2.0 license." This means that this submission can be published even without the author's permission. (The license in question specifically states: "The licensor cannot revoke these freedoms as long as you follow the license terms.") Whether it's ethical to do so is a different question, though.
We will not publish a run if the author does not want it to be published, even if the license technically allows it. Common courtesy and respect towards the submission author's wishes overrule the letter of the law in this case.
http://www.youtube.com/Noxxa <dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects. <Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits <adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.
Banned User
Joined: 3/10/2004
Posts: 7698
Location: Finland
Mothrayas wrote:
We will not publish a run if the author does not want it to be published, even if the license technically allows it. Common courtesy and respect towards the submission author's wishes overrule the letter of the law in this case.
What happens if someone takes the run, modifies it slightly, and then submits it? It will be like 99% identical, and the license allows doing that. Would it be published? If not, then what if it used 50% of the original? 20%? Where's the limit?
Patashu
He/Him
Joined: 10/2/2005
Posts: 4045
Warp wrote:
Mothrayas wrote:
We will not publish a run if the author does not want it to be published, even if the license technically allows it. Common courtesy and respect towards the submission author's wishes overrule the letter of the law in this case.
What happens if someone takes the run, modifies it slightly, and then submits it? It will be like 99% identical, and the license allows doing that. Would it be published? If not, then what if it used 50% of the original? 20%? Where's the limit?
Judges are human beings, not computers. If it's obviously just an attempt to submit the same work as masterjun, it won't be accepted. If it demonstrates something NOVEL (not just some frames saved in the 'gameplay' portion, for example) then we can re-evaluate.
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
Noxxa
They/Them
Moderator, Expert player (4128)
Joined: 8/14/2009
Posts: 4090
Location: The Netherlands
Warp wrote:
What happens if someone takes the run, modifies it slightly, and then submits it? It will be like 99% identical, and the license allows doing that. Would it be published? If not, then what if it used 50% of the original? 20%? Where's the limit?
That has nothing to do with what we've been talking about or this run. Not sure why you're bringing it up here. Not sure why you're bringing up the license either, as we don't involve the license in judging movies or plagiarism. Anyhow, there's no hard number or percentage of how much a run can be "modified" to pass as another run, but if it can be reasonably inferred that significant amounts of run material has been directly copied without author permission or credit, then that submission would be rejected and the author could be up for a ban. (And no, submitting another person's work with credit but without permission is not allowed either - see these submissions for example). See also: Movie Rules - The must be properly attributed
http://www.youtube.com/Noxxa <dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects. <Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits <adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.
Editor, Expert player (2372)
Joined: 5/15/2007
Posts: 3940
Location: Germany
Warp wrote:
What happens if someone takes the run, modifies it slightly, and then submits it? It will be like 99% identical, and the license allows doing that. Would it be published? If not, then what if it used 50% of the original? 20%? Where's the limit?
Didn't this happen before? I'm sad Masterjun chose to cancel this run. I don't understand what is "cheap" about it, to me it's an interesting proof of concept. He managed to let the game survive with broken RAM.
Banned User
Joined: 3/10/2004
Posts: 7698
Location: Finland
Mothrayas wrote:
Not sure why you're bringing it up here. Not sure why you're bringing up the license either, as we don't involve the license in judging movies or plagiarism.
Just making a note that cancelling doesn't technically speaking stop the run from being published.
significant amounts of run material has been directly copied without author permission or credit
As I said, by submitting the movie, the author relinquishes his rights to stop other people from using the data in accordance to the license. Other people do not need the author's permission. And my question was not about "what if someone copies big part of the movie without giving credit?" It just seems odd to me that someone can effectively "hijack" a game completion by submitting it and then cancelling it, even though the author specifically gave explicit permission to publish it when he submitted, and cannot revoke that permission (according to the very license that he accepted.) If another submission is "too similar" to it, then it may be considered unpublishable on that count (because it uses too much of the original data "without the author's permission", even though you don't need the author's permission.)
Patashu
He/Him
Joined: 10/2/2005
Posts: 4045
The thing is that tasvideos is not meant to be a repository of all TASes, or even all good/amazing/perfect TASes. For starters, it won't publish a TAS unless the creator of the TAS him/herself submits it. That should be your first clue.
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