Look at me here again, destroying Super Mario World once again :)

Game Objectives ⭐

  • Emulator used: BizHawk 2.9.1
  • Allow Left+Right / Up+Down
  • Core subBSNESv115+
  • Abuses programming errors
  • Heavy glitch abuse
  • Corrupts memory
  • Take hit and use death to show funny things

About The Run ⭐

This TAS is a glitchfest that uses arbitrary code execution. I don't know which branch would be better between "glitchfest" or "arbitrary code execution", so I chose the second one, taking into consideration that this is not a "normal" glitchfest. The ideal would be "glitchfest with arbitrary code execution", but it's a bit long.
The process until writing the code is the same as Masterjun. It's all explained here. I just did some cool stuff before writing the code instead of going straight to eating the chuck :)

About The Code ⭐

Briefly, I wrote code in the game's subroutine ($7F8000) that allowed me, through controls 1 and 5, to change some addresses in the game's memory whenever I wanted. The code is as follows:
Pressing L on controller 1 = increments slot 7 sprite ID ($A5)
Pressing R on controller 1 = increments slot 6 sprite ID ($A6)
Pressing L on controller 5 = increments the item box ($0DC2)
Pressing R on controller 5 = changes Mario's powerup ($19)
Note: The code was written to use control 2, however, BizHawk 2.9.1 has 8 controls and, I believe, for this reason the buttons ended up being on control 5.
Note 2: I was unable to use the L/R of controller 5 with Luigi to change the powerup and item box because, I believe, there was a conflict since controller 5 is used to control Luigi. Therefore, playing with Luigi, I could only increase slots 6 and 7 and I was unable to use the benefits of having all the powerups and items in the item box.
The code is this:
LDA $18
AND #$10     ;|check if R (controller 1) is pressed
BNE ace1
LDA $18
AND #$20     ;|check if L (controller 1) is pressed
BNE ace2
LDA $0DA9
AND #$18     ;|check if L (controller 2) is pressed
BNE ace3
LDA $0DA9
AND #$20     ;|check if L (controller 2) is pressed
BNE ace4
LDA $0019
CMP #$04
BEQ powerup
RTL
ace1:
INC $00A4     ;|increment $A4 if $18 equals 10
RTL
ace2:
INC $00A5    ;|increment $A5 if $18 equals 20
RTL
ace3:
INC $0019    ;|increment $19 if $0DA9 equals 18
RTL
ace4:
INC $0DC2    ;|increment $0DC2 if $0DA9 equals 20
RTL
powerup:
STZ $0019    ;|stores 0 in $19 if the value is >4
RTL
Now the code in hexadecimal:
A5 18 29 10 D0 1C A5 18
29 20 D0 1A AD A9 0D 29
18 D0 17 AD A9 0D 29 20
D0 14 AD 19 00 C9 04 F0
11 6B EE A4 00 6B EE A5 
00 6B EE 19 00 6B EE C2
0D 6B 9C 19 00 6B
So basically I wrote this hex code at address $7F8182 through the inputs. It is not possible to write to $7F directly from the inputs due to the lack of bytes in the controls.
Because of this, I was forced to write a different code in $0A85 (a rarely used place in memory) just to be able to write the desired code in $7F8182. The code written in $0A85 was code that wrote the desired code in $7F8182. In short, I wrote the code in $0A85, made the game read this code and return to the main routine. After that, the desired code is automatically written to $7F8182. If you look at the memory at $0A85 at the time of the crash, you will see the code being written.
I'm not going to leave the code that was written in $0A85 here because it's a huge code. And maybe there are much easier and faster ways to write a code in $7F8182, but I didn't care about that, since this is a glitchfest and time has no relevance.
I won't leave the inputs here either, because, after all, there are more than 300 lines of inputs and I don't think anyone is interested, right? :)

More About The Code ⭐

Along with the code written in $7F8182, I also changed other addresses during the crash, they are:
  • $1F11, $1F17, $1F19 and $1F1A = All about Mario's Position on the map
  • $1F12, $1F1B, $1F1C, $1F1D and $1F1E = All about Luigi's Position on the map
  • $19C7 = Pipe exit at YI2
In other words, during the crash, in addition to writing code in the subroutine, I also changed the position on the map of Luigi and Mario and the exit of the blue pipe in YI2. You will obviously notice this in the video hehe.

Level by Level Comments? ⭐

Oh man, I don't think I need to comment level by level here, right? So much happened on the levels that it's difficult to explain. If anyone understands anything, feel free to explain it to me. 🥴
But basically, after writing the code, I was able to use it at all levels. You will see very strange things happening, random sprites coming out of the item box, Mario changing powerups out of nowhere, sprites transforming into other sprites and so on... Maybe someday I'll explain level by level, but I'm too lazy today :|

Special Thanks ⭐

  • Noise de Gole for helping me with ACE and for the code ideas (the code for changing sprite IDs is his idea).
  • Bruno Valads for helping me with extremely useful scripts.
  • Masterjun for the fabulous explanation in your submission that helped me write the codes and inputs.
  • You for watching :)

feos: Claiming for judging.
feos: Great work as always!
We historically label ACE playarounds/glitchfests as just ACE, so this movie's current branch is fine. And we already have a non-ACE glitchfest, which I don't think should be obsoleted by this run. Because as I've said before, we want to encourage more creativity, which means we need to show that through out judging decisions about co-existing branches. Inclusivity invites creativity, and in the end we will have more cool movies. When some Alternative branches start looking way too similar, we can obsolete some.

Spikestuff: Processing...


TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15576
Location: 127.0.0.1
Banned User
Joined: 4/1/2016
Posts: 295
Location: Cornelia Castle
Great TAS, yes vote! While I am completely blind and can't see the game, I can tell a lot of time was put into this.
DJ Incendration Believe in Michael Girard and every speedrunner and TASer!
Joined: 4/13/2024
Posts: 3
This is probably the best ACE glitchfest i've ever seen, using ACE to actually abuse the vanilla glitches is amazing
Joined: 9/22/2012
Posts: 19
Location: Oregon
This is unhinged. I love it. Yes vote.
Challenger
He/Him
Skilled player (1689)
Joined: 2/23/2016
Posts: 1061
I don't understand what's going on, but that was entertaining and I laughed out several times. Yes vote.
My homepage --Currently not much motived for TASing as before...-- But I'm still working.
Editor, Expert player (2073)
Joined: 6/15/2005
Posts: 3282
I wish the middle was a little more interesting, but the final 6 or 7 minutes is funny, so I'll let that go.
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15576
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. ---- [6035] SNES Super Mario World "arbitrary code execution, glitchfest" by IgorOliveira666 in 42:49.44
Dimon12321
He/Him
Editor, Reviewer, Experienced player (596)
Joined: 4/5/2014
Posts: 1222
Location: Romania
I would change the branch in Masterjun's publication to "arbitrary code execution, mini-games", rather than obsolete it just because it has the same branch name.
TASing is like making a film: only the best takes are shown in the final movie.
Active player (492)
Joined: 7/22/2018
Posts: 15
I would first like to say congratulations on finishing this project. Igor has put a lot of effort into taking SMW playarounds and glitchfests to new heights, and his efforts should be appreciated as such. However, I would like to say that I disagree with this run obsoleting the previous ACE TAS. Generally speaking, I think that ACE playaround TASes shouldn't be set in stone forever, but obsoletion should be based on a combination of improved entertainment, improved technical quality, and other merits (potentially live showcases at GDQ and other events). The previous TAS set the bar high for ACE in this game. It was entertaining, had great feedback according to the ratings, and had the added merit of being showcased at AGDQ 2014. This TAS, on the other hand, while technically impressive, has not received the same feedback in terms of entertainment by viewers in both the thread poll and in the movie ratings. Even at GDQ events, there have been a handful of examples of SMW ACE being showcased. For example, there was Super Mario Maker in SMW, as well as SMB1 in SMW, both of which have been showcased at GDQ events. I would believe that these two runs themselves have a better case for obsoleting the 2014 ACE TAS based on the criteria I listed. Without any TASVideos submission, there are no raw numbers to point to for audience feedback, but they entertained live audiences and were showcased while GDQ events were rapidly growing in terms of popularity and fundraising ability. There is also a strong argument for improved technical quality, both in terms of the payload that was executed as well as a more efficient ACE setup in Yoshi's Island 2. For ACE movies like these, I think obsoletion should be done with care to ensure that new movies are not regressing in overall quality compared to previous ones. While I have no doubts as to the technical quality of this TAS, the difference in entertainment feedback is far too significant to ignore. As a result, I would suggest that this decision is reconsidered while taking into context the current TASVideos Movie Rules (which have changed since I used to judge runs).
Post subject: Do not obsolete existing ACE.
dart193
He/Him
Player (35)
Joined: 1/20/2013
Posts: 63
First of all, thanks to the author for making both those glitchy TASes! I did not maybe enjoyed all the parts (after all, it is somewhat hard to understand what is even going on), but both TASes show what the game is capable of doing without crashing and have a lot of fun and entertaining moments. However, I absolutely did not enjoy the decision to obsolete previous TAS with this one. Honestly, I would rather obsolete glitchfest TAS with this one rather than previous ACE. Or better - make a new branch. Here are the TASes I am going to talk about: ACE glitchfest (this submission) - [6035] SNES Super Mario World "arbitrary code execution, glitchfest" by IgorOliveira666 in 42:49.44 Non-ACE glitchfest - [4685] SNES Super Mario World "glitchfest" by IgorOliveira666 in 2:54:33.62 Minigames ACE (obsoleted movie) - [2513] SNES Super Mario World "arbitrary code execution" by Masterjun in 02:25.19 All 3 TASes attain different goals: -non-ACE glitchfest TAS demonstrates how crazy SMW looks and plays when things get weird by, well, glitching it. It shows "normal" gameplay that can be attained without making the game execute arbitrary code. -this TAS demonstrates even more glitches that are mostly attained by changing powerup-box contents and active powerup as well as sprites in 2 slots; these glitches cannot be shown without ACE but the run itself is still a valid gameplay. This makes it pretty valuable since with only such a small addition the range of glitches increases significally. -masterjun's ACE TAS removes normal gameplay and instead codes two minigames. These minigames, however, use (or seem to be using) elements from normal game. Namely, platforms (for pong) and moving block line (for snake). This make the run very entertaining despite not exactly being SMW anymore. Now, visually both glitchy TASes look quite similar - in that you can hardly undestand what is going on in there, though deep knowledge of the game may help that. Masterjun's TAS, however, is both competely different and everything that happens on screen is absolutely clear to most viewers (well, except if you never played/seen/heard of snake and pong) and is significally different to two other TASes. As far as I understand current site goals, we can have branches with arbitrary goals for as long as they provide different enough content, in addition to standard branches. The opposite also seems to be true: arbitrary TASes that are similar to each other should obsolete each other. Glitchfest TAS has an arbitrary goal to showcase as many glitches as possible without breaking the game. It looks like no other TASes look. This TAS, being ACE, has a goal of reaching control over the game by executing arbitrary code. However, it is similar to glitchfest. In fact, the TAS looks like it did not achieve total control over the game, merely coding a few buttons processing to change 4 variables. Masterjun's TAS, however, achieves a total control over the game. It shows something radically different, not only in comparison to other TASes, but even to the game itself! In my opinion, it is technically supreme to current ACE. Of entertaining, it was no worse either - sure, current TAS is longer but the "Wow!!!" that Masterjun's TAS produces beats it for me. Therefore, I would offer two possibilites here: 1) Obsolete "glitchfest" TAS with this submission. However, current glitchfest TAS showcases colossal amount of glitches without ACE so its value is too high to be obsoleted by an ACE version. 2) Do not obsolete anything and create a new branch.
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11475
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
In the previous judgment I wrote:
Second, due to heavy time pressure (AGDQ 2014), what we see here is what Masterjun came up with overall. It may be not perfect for everybody, so there is a room for obsoletion - if better stuff is programmed within total control. But for now it is the best payload existing. And posts and votes on this submission prove that. Since this movie's goal is in no way speed, it can not be obsoleted by reaching the total control point faster, or by making input during total control shorter. Only by providing a better payload. Which will be judged by the audience response. If people like the new movie more (as happened with Pokemon total control), this one will be obsoleted by it.
Now I didn't explicitly go and ask for feedback on this submission because I wanted t judge it quickly, and recently we have problems with getting feedback. Looks like making a decision was a more effective way to get this feedback, and I don't even think anything bad happened: we can't delay every uncertain submission for months, but we can fix a decision if it gets backlash. Thankfully it's easy to fix this one.
dart193 wrote:
Now, visually both glitchy TASes look quite similar - in that you can hardly undestand what is going on in there, though deep knowledge of the game may help that. Masterjun's TAS, however, is both competely different and everything that happens on screen is absolutely clear to most viewers (well, except if you never played/seen/heard of snake and pong) and is significally different to two other TASes.
I like this point. The only unclear thing is what would be a good way to label these movies, because ultimately there are only two ways to do an ACE TAS: you either program something entirely new into the game, or you change what is in the game. Sometimes it's a combination of both. What I'm unsure about is whether it makes sense to have several movies with the same payload type published separately, or is it better to split them only by payload type, or in some other way? Masterjun's ACE is an entirely-new type, and this submission is a hack of what is there. Or maybe we approach it from a different angle and just rename this movie to "ACE, glitchfest"?
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.
Experienced player (633)
Joined: 5/2/2014
Posts: 21
feos wrote:
In the previous judgment I wrote:
Second, due to heavy time pressure (AGDQ 2014), what we see here is what Masterjun came up with overall. It may be not perfect for everybody, so there is a room for obsoletion - if better stuff is programmed within total control. But for now it is the best payload existing. And posts and votes on this submission prove that. Since this movie's goal is in no way speed, it can not be obsoleted by reaching the total control point faster, or by making input during total control shorter. Only by providing a better payload. Which will be judged by the audience response. If people like the new movie more (as happened with Pokemon total control), this one will be obsoleted by it.
Now I didn't explicitly go and ask for feedback on this submission because I wanted t judge it quickly, and recently we have problems with getting feedback. Looks like making a decision was a more effective way to get this feedback, and I don't even think anything bad happened: we can't delay every uncertain submission for months, but we can fix a decision if it gets backlash. Thankfully it's easy to fix this one.
dart193 wrote:
Now, visually both glitchy TASes look quite similar - in that you can hardly undestand what is going on in there, though deep knowledge of the game may help that. Masterjun's TAS, however, is both competely different and everything that happens on screen is absolutely clear to most viewers (well, except if you never played/seen/heard of snake and pong) and is significally different to two other TASes.
I like this point. The only unclear thing is what would be a good way to label these movies, because ultimately there are only two ways to do an ACE TAS: you either program something entirely new into the game, or you change what is in the game. Sometimes it's a combination of both. What I'm unsure about is whether it makes sense to have several movies with the same payload type published separately, or is it better to split them only by payload type, or in some other way? Masterjun's ACE is an entirely-new type, and this submission is a hack of what is there. Or maybe we approach it from a different angle and just rename this movie to "ACE, glitchfest"?
Renaming this as "ace glitchfest" seems like a good decision to me.
dart193
He/Him
Player (35)
Joined: 1/20/2013
Posts: 63
I support the idea of labeling this movie as "ace, glitchfest". It clearly tells both the goal of the TAS (showcase glitches) and means of reaching the goal (via ACE). People that are not too deep into TASes might get confused why there are 2 different glitchfests though. This can be avoided by rewriting this movie description. Currently the description does not mentions anything about glitches at all focusing instead on the fact that its an ACE TAS. Non-ACE TAS has a very clear description of what is in the movie, including mentioning the fact that the game even crashes a few times during the movie.
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11475
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Done.
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.