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


Joined: 5/2/2009
Posts: 656
Kirby is so hardcore that he can make something quite huge explode just climbing a ladder. Yes
My first language is not English, so please excuse myself if I write something wrong. I'll do my best do write as cleary as I can, so cope with me here =) (ノಥ益ಥ)ノ
Emulator Coder
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
This run deserves an award. Namely this one:
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.
Experienced player (690)
Joined: 11/23/2013
Posts: 2233
Location: Guatemala
Hmm... This one is VERY short for such an awesome game... But it seems this guy does that really often so... Yes vote? I just hope to see an improved run of this without that weird glitch.
Here, my YouTube channel: http://www.youtube.com/user/dekutony
Experienced player (543)
Joined: 3/1/2014
Posts: 76
Location: Paris
give him his money back nintendo!
ACE is my raison d'etre!
Editor, Experienced player (860)
Joined: 8/12/2008
Posts: 845
Location: Québec, Canada
????????????????? YES.
Patashu
He/Him
Joined: 10/2/2005
Posts: 4043
I like how in the past every time we crashed a game we assumed 'darn, this is useless then'. And now we have more knowledge and know that every crash is potential ACE :D
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
Chamale
He/Him
Player (182)
Joined: 10/20/2006
Posts: 1355
Location: Canada
What an astonishing improvement! This run is 2.0375 masterjuns faster than the previous run. Yes vote. (A masterjun is an order of magnitude of improvement. Masterjuns = log10 [previous/new])
Post subject: Maybe SNES Tas of 2014?
Banned User
Joined: 5/9/2010
Posts: 14
Voting yes
Editor
Joined: 11/3/2013
Posts: 506
Not much to say that hasn't already been said. It seems that traditional TASes which actually play the game with some semblance of sanity are becoming a dying breed.
Chamale wrote:
What an astonishing improvement! This run is 2.0375 masterjuns faster than the previous run. Yes vote. (A masterjun is an order of magnitude of improvement. Masterjuns = log10 [previous/new])
Biggest improvement on the site? (Although I imagine that this would technically be a new category rather than an improvement.) Contrast the current Super Mario Bros movie, which features a improvement of 0.0000243 masterjuns.
Chamale
He/Him
Player (182)
Joined: 10/20/2006
Posts: 1355
Location: Canada
thatguy wrote:
Biggest improvement on the site? (Although I imagine that this would technically be a new category rather than an improvement.) Contrast the current Super Mario Bros movie, which features a improvement of 0.0000243 masterjuns.
I looked at the current list of notable improvements, and the biggest improvement there is 0.982 masterjuns for the Kirby's Adventure movie.
ALAKTORN
He/Him
Former player
Joined: 10/19/2009
Posts: 2527
Location: Italy
jlun2 wrote:
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.
:o Well, I know these 2 games that crashes and displays different results, both for the gameboy. I wonder if something can be made out of them?
might there be a chance for Mario Kart DS to get this treatment?
Active player (309)
Joined: 8/21/2012
Posts: 429
Location: France
And another game just got Masterjuned... What happens? What can we do? If we don't do something to save our games, we're all gonnaà#0226&?çK/.ff£% THE END I liked it, btw ^^.
Editor
Joined: 11/3/2013
Posts: 506
Chamale wrote:
I looked at the current list of notable improvements, and the biggest improvement there is 0.982 masterjuns for the Kirby's Adventure movie.
Amongst obsolete publications, inichi's Chrono Trigger reaches 1.086 masterjuns. Still nowhere near this though.
Emulator Coder
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
I'm using:
NSRT v3.5 - Nach's SNES ROM Tools

-------------------------Container--------------------------
       File: kss.sfc
   Sub File: kss.sfc
---------------------Internal ROM Info----------------------
       Name: KIRBY SUPER DELUXE       Company: Nintendo
     Header: None                        Bank: LoROM
Interleaved: None                         ROM: 32 Mb
       Type: SA-1                        SRAM: 64 Kb
  Expansion: None                     Battery: Present
    Country: Japan                      Video: NTSC
  ROM Speed: 200ns (SlowROM)         Revision: 1.0
   Checksum: Good 0x0EA7            Game Code: Marked, AKFJ
---------------------------Hashes---------------------------
      CRC32: 151BD470
        MD5: 8C4E1C308F4174FC506FECACE989CC39
     RIPEMD: 94D8A57BCCA5E90B7CDF34B44FDF8C0D5A239328
      SHA-1: 2F2FF2C75EAFA705363FEB435A88D2C914D301CF
    SHA-256: 7FD721EC60854513687AC6BC7A275B4E56CE7F6C64B2DD993D3855F95CE2318C
    SHA-512: F8CBCAD4AC6D1FA4A5C6CF99049D2907EC9F30B6A56294A05242D9049909622D
             3D85B44CC76B1D33D55F525A1CF56D79CA2B8F3669FE940809609AC83255F921
      Tiger: D06A1EB40966E6C7E1F559BEEB9538D7152A662B42F7434B
  Whirlpool: 1021E609384E20119180BB7EDE9F1F316D6CA640DC7AC9E4B10B7E9B0B9FE4C7
             A26DD19EEDFA9B9E367C61FA651F270CC2BAB92C8F983BC4C683C0C4B576270C
--------------------------Database--------------------------
       Name: Hoshi no Kirby - Super Deluxe
    Country: Japan                   Revision: 1.0
     Port 1: Gamepad                   Port 2: Gamepad
    Genre 1: Platform                 Genre 2: Side Scrolling
And the emulator specified in the submission, and can't get it to sync. Masterjun: What are you doing differently?
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.
TASVideosGrue
They/Them
Joined: 10/1/2008
Posts: 2785
Location: The dark corners of the TASVideos server
om, nom, nom... minty!
MarbleousDave
He/Him
Player (13)
Joined: 9/12/2009
Posts: 1559
I sense a flame war going on in my imagination.
Guga
He/Him
Joined: 1/17/2012
Posts: 838
Location: Chile
PikachuMan wrote:
I sense a flame war going on in my imagination.
Eh... I don't think so. The issue was pretty straighforward: the run depends on emulator issues, so its not possible on a console, so it got rejected. :|
NitroGenesis
He/Him
Editor, Experienced player (556)
Joined: 12/24/2009
Posts: 1873
when Nach steps in the building no run is safe
YoungJ1997lol wrote:
Normally i would say Yes, but thennI thought "its not the same hack" so ill stick with meh.
Patashu
He/Him
Joined: 10/2/2005
Posts: 4043
Guga wrote:
PikachuMan wrote:
I sense a flame war going on in my imagination.
Eh... I don't think so. The issue was pretty straighforward: the run depends on emulator issues, so its not possible on a console, so it got rejected. :|
I think it's not so much 'it depends on emulator issues', so much as 'The setup isn't the same as it would be on console, in a way that differs wildly between different versions of the emulator, so the emulator needs to get more accurate first' Masterjun% KSS will be back in the future.
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
Emulator Coder, Skilled player (1113)
Joined: 5/1/2010
Posts: 1217
Patashu wrote:
I think it's not so much 'it depends on emulator issues', so much as 'The setup isn't the same as it would be on console, in a way that differs wildly between different versions of the emulator, so the emulator needs to get more accurate first'
Basically, it is a bug in bsnes core (the handling of SA1 open bus reads is definitely incorrect[*]). It is so buggy that even taking the exact same sources and compiling with different compiler version can break sync. It is likely that the build (not just version) Masterjun used is the only one where it syncs. [*] 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.
Spikestuff
They/Them
Editor, Publisher, Expert player (2643)
Joined: 10/12/2011
Posts: 6441
Location: The land down under.
Nach wrote:
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. Note: When writing something that affects the processing of this movie, please edit the submission instead of posting at the forum.
Well if it isn't another TAS that got into the same situation.
WebNations/Sabih wrote:
+fsvgm777 never censoring anything.
Disables Comments and Ratings for the YouTube account. Something better for yourself and also others.
Glitcher
He/Him
Joined: 3/24/2007
Posts: 216
Location: London, U.K.
WHAT THE--?! That was barely a run! Voting no for destroying and humiliating my favourite Kirby game.
Masterjun
He/Him
Site Developer, Skilled player (1988)
Joined: 10/12/2010
Posts: 1185
Location: Germany
RIP
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)
mklip2001
He/Him
Editor
Joined: 6/23/2009
Posts: 2227
Location: Georgia, USA
Regardless, this makes an awesome entry for Gruefood delight. Do you see any hope of this glitch setup working in a more accurate emulator?
Used to be a frequent submissions commenter. My new computer has had some issues running emulators, so I've been here more sporadically. Still haven't gotten around to actually TASing yet... I was going to improve Kid Dracula for GB. It seems I was beaten to it, though, with a recent awesome run by Hetfield90 and StarvinStruthers. (http://tasvideos.org/2928M.html.) Thanks to goofydylan8 for running Gargoyle's Quest 2 because I mentioned the game! (http://tasvideos.org/2001M.html) Thanks to feos and MESHUGGAH for taking up runs of Duck Tales 2 because of my old signature! Thanks also to Samsara for finishing a Treasure Master run. From the submission comments:
Shoutouts and thanks to mklip2001 for arguably being the nicest and most supportive person on the forums.
Masterjun
He/Him
Site Developer, Skilled player (1988)
Joined: 10/12/2010
Posts: 1185
Location: Germany
It will work and it will look just like this and it won't be any faster or slower. I only need to wait for a bsnes bug fix.
Warning: Might glitch to credits I will finish this ACE soon as possible (or will I?)