(Link to video)
This movie uses the same exploit used for the game end glitch to achieve total control and do some fun stuff. As I submit, dwangoAC is showing a slightly modified version on console for Awesome Games Done Quick 2016 [dead link removed]. Watch the movie before continuing if you don't want spoilers!

Goals

  • Colors a dinosaur
  • 1st TAS to get 99 lives for both Mario and Luigi
  • There were no other goals
I discovered how to achieve total control of SMB3 shortly after Tompa and I published the game end glitch version in 2014. I had it in mind to do a playaround movie integrating new custom powers with regular SMB3 gameplay.
A major challenge was the fact that almost all of my programming experience was in higher level languages like Java -- I knew next to nothing about assembly language or the NES architecture: terms like PPU, nametable and bank switching meant nothing to me.
Thanks to the many excellent web resources available for NES programmers, I worked my way up the learning curve and implemented increasingly sophisticated pieces of new functionality. Along the way, true encouraged me to tweak things so they'd verify on console, a process which required some rewrites to use the PRG1 ROM instead of PRG0.
I had a lot of code written, but no real plan as of Oct 2015 when dwangoAC contacted me about including SMB3 total control in Awesome Games Done Quick 2016. Having a deadline to work against forced me to focus and finally get this done.

Powers

When I first thought about doing this run, I was intrigued by the idea of pairing custom/augmented gameplay features with ordinary gameplay, so that was the starting point for much of what I ended up implementing.

Back Door

I thought it'd be fun to pretend that SMB3's legendary lead developer, Shigeru Miyamoto, had left an intentional "back door" hidden in the game which we had only just now discovered. Presented as an 80's style shell interface, the back door pretends to allow commands (with options) to be entered to enable the otherwise impossible happenings that follow.

Color a Dinosaur

Tasvideos.org has a bit of a running joke about the coloring of dinosaurs, ever since a couple of April Fool's submissions for an actual NES game called 'Color a Dinosaur' a few years back. SMB3 is widely felt to be the greatest NES game of all time, so I thought its first task under total control should be an homage to a game of more modest fame.
All of the coloring actions – change color, move the cursor, draw, and start over can be done by a human in realtime if anyone wants to try to top my masterpiece.

Speed Boost/Shine Spark

I'm a big fan of SNES Super Metroid and both its real time speedruns and TASs. I though it would be cool to create a speed mechanic for SMB3 as much as possible like how the speed boots/shine spark work in Super Metroid. This effect required several hundred bytes of code, hence the prolonged loading time, and was technically the most difficult to implement. It is quite easy to play around with in realtime, especially on levels like 2-4 that are big both horizontally and vertically.

Suit-Swap

The suit swap is a very simple but versatile bit of code that gives Mario a new suit based on the game's timer. As the player has no way of knowing the current timer value, the effect in realtime play is to choose a random suit. Under TAS conditions, of course, I can choose whichever suit I want based on which frame I activate the effect.
Of note, there are only 7 legal suits, but the Suit Swap rolls over every 8th frame. Assigning the 8th suit gives the surprising result of Mario's sprites being a complete jumble when standing, invisible when ducking, and the game physics treating him as if he's swimming! I use it a couple of times in this movie just to show the bizarre behavior.

Shell Shield

The shell shield wasn't based on any particular inspiration; I just thought it'd be cool. It was pretty easy to write, and involves using one of the 5 enemy slots for an invincible koopa shell that follows Mario around, killing enemies and laying waste to destructible blocks. The shell shield can be activated/deactivated with the select button. When deactivated, the shell becomes an ordinary, destructible koopa shell that can be stomped and grabbed if desired…though it can also hit you so you need to carefully time when you release it! It's my favorite power to play around with in realtime.
Mario will stomp the shell shield when falling, allowing him to essentially fly if he wishes by holding the a/jump button while in the air to maximize the boost achieved with each stomp. This was an actual case where a bug turned out to secretly be a feature – I did not intend this behavior, but liked the flexibility it provides so much that I left it in.

PwnScroll

Auto-scrolling levels are a dominant feature of most every SMB3 realtime speedrun and TAS that doesn't use the game end glitch. Autoscrollers can be frustrating to TAS because they're so long, there's little if anything you can do to save time, and it's difficult to think of entertaining ways to spend all that time.
The World 8 autoscrollers have a special place in my heart due to being difficult (for me, at least) in realtime play, and necessary for all non-glitched SMB3 TASs (since even with warps you still have to do world 8).
That made it a priority to imagine what the game might look like if Mario could control when and where the screen scrolled, or if the autoscrollers functioned as regular levels. Both are demonstrated here.
Watching Mario jump past the tank at full running speed may not look all that interesting to those less familiar with the game, but for someone who's spent hours watching those tanks scroll slooooowly by, there's something magical in it! (It might be worth querying Mitch or another realtime player on their thoughts on the autoscrollers and their pwnage).
The autoscroller functions can be used in realtime, but it's easy to crash the game or accidentally die. Disabling autoscrolling at the beginning of a stage seems pretty safe, at least for 8-Tank!

Anti-Gravity

This power was somewhat inspired by something you can do in NES Battle of Olympus to flip upside down and walk on the ceiling. I debated for a long time which level would best showcase this, and ended up on Bowser's Castle because it's prominently vertical and I found a surprising shortcut it enables – clipping into the wall as small Mario running upside down just above the lava. Because of the size and complexity of real collision detection in SMB3, this power is a total hack and not usable in realtime, though I have to say I like how it looks in the TASs I've done with it.

Bowser

I've played around with Bowser during previous TASs, doing things like fighting him with star invincibility active (he dies, but the game hangs). I was pleasantly surprised to see that the shell shield kills him with a single blow and actually proceeds to the ending (though in the interest of time I manually jump to the ending several seconds early).

Ending

Pretty much every TAS I've watched on YouTube has commenters denouncing videos clearly labeled as tool-assisted as fakes, cheats, etc, so I thought it'd be funny if Mario had to face a similarly skeptical Princess.
As a side note, the Princess's normal text here is hard-coded in the ROM. Because of how total control is achieved in SMB3, it can take a lot of effort to change something like that to read from customized RAM instead – in this case a few hundred bytes of code/data are required.

Bootstrapping to Total Control

As explained in the game end glitch run, touching the glitch tile, an invisible note block, makes the processor try to update memory outside of the normal tile data, at an address ($9C70) that reprograms how the processor interprets addresses. This causes execution to jump to an unintended area of the ROM and execute incorrect instructions due to byte misalignment. Eventually, the stack overflows and it starts executing RAM instructions starting at address $0081, which is just before the location of the player x value at $0090. The 10 bytes manipulated to boostrap total control are koopa x values at $0091-5, and koopa walking counters at $9A-9E.
For the game-end glitch, only a single assembly instruction was required: JSR $8FE1, a subroutine jump to the ending. This code was "written" by careful gameplay to manipulate enemies into x positions (20, 143, 225) that would generate the above instruction.
Total control starts with this loop at frame 11287, with execution starting at RAM address $0091:
$0091: JSR $96E5 ; subroutine that waits until frame ends; NMI updates controllers & $15 counter
$0094: LDA $F7   ; load controller 1 state
$0096: BRK       ; do nothing 
$0098: BRK       ; do nothing
$009a: INX       ; increment X register
$009b: STA,X $7d ; store controller data to next spot in RAM
$009d: BNE $0091 ; if X isn't zero, loop to $0091
The code is written around what the initial value of the X register is expected to be, and starts writing code at $0098: within the loop itself! This was necessary because $98 and $99 can't be manipulated by gameplay in 7-1. The modified loop will exit after the next phase of the total control program, written immediately following the initial loop, is ready.
$0091: JSR $96E5 ; subroutine that waits until frame ends; NMI updates controllers & $15 counter
$0094: LDA $F7   ; load controller 1 state
$0096: BRK       ; do nothing 
$0098: BEQ $009f ; if nothing pressed on controller 1, jump to $009f
$009a: INX       ; increment X register
$009b: STA,X $7d ; store controller data to next spot in RAM
$009d: BNE $0091 ; if X isn't zero, loop to $0091
Ultimately, the controllers are used to create general total control program that checks each frame for start+select on controller 2, and if detected uses the coming input to load a new payload into memory. If there's no new payload, it calls $0147 as a subroutine; payloads deposited here are the entry point for custom behavior.

My "IDE"

This project required thousands of instructions be introduced into memory using keypresses on 2 controllers. (Technical note: I could have cut loading times in half using 4 controllers via the NES 4-play device. I didn't pursue this because current replay devices don't support the 4-play, so console verification would not have been possible).
Obviously, there's no IDE that exists for the purpose of writing 6502 assembly code for output as an FCEUX movie file, so I did the best I could using Excel spreadsheets.
Each payload follows a standard format: a 4-byte header (2 frames of 2-controller input) indicates how many bytes (2-128) to write and to which RAM address. The controller presses that follow are read as the specified payload, 2 bytes per frame, and are written into RAM. Interestingly, because everything is happening in RAM, exactly the same process is used to inject code for execution as to, say, poke a memory value (e.g. set number of lives to 99).
My Excel setup used columns, formulas and the like to make it as easy as possible to lay out a payload in a standard way. For each payload, I'd hand-write the assembly instructions/data in human-readable form, then "compile" them myself into the correct bytes for each controller under columns C1/C2. The spreadsheet then automatically generates the correct FCEUX input which can be copied/pasted into the movie file.
Anyone who's curious can see my Excel IDE as of today, which includes most of the code used in the movie, and some (Zelda music code) that wasn't.
The above process worked pretty well. The major sources of error were typo's in converting instructions into bytes and forgetting to correctly update the header when a payload's size or location changed. Debugging was generally pretty straightforward using the FCEUX trace logger.

Need...Input...

One unexpected hurdle in making this was the need to make a custom input poller. The NMI is nice enough to load the controller data each frame, but SMB3 actually has logic to detect illegal button presses like L+R and U+D and zeroes the d-pad input out in those cases! That doesn't sound like a big deal, but when you're looking to write code, it's nice for each controller to be able to have 256 possible states (1 byte/controller/frame) rather than only 144. So one of the earliest tasks once I start setting up Total Control is to write my own input routine and use that to free up all possible controller states.

Limitations RAM Hacking the NES

It turns out that "Total Control" doesn't equate to omnipotence: NES architectural features place limits on what can be accomplished via RAM hacking.
Chief among these is that the vast majority of the game's code and data resides in ROM - which cannot be modified. As a result, many tasks that would be trivial for a ROM hacker -- e.g. minor changes to a subroutine or tweaking music/sound effects -- present much greater challenges. For example, modifying a subroutine generally requires replicating much of the code leading up to the section of interest - which can be hundreds of instructions!
The way the PPU works also limits graphical changes. The PPU assembles the game's backgrounds and sprites from a gallery 8x8 pixel tiles called pattern tables. These exist in ROM, so while a ROM hacker could easily make substitutions to make bricks look exactly as they do in SMB1, or create a sprite from original graphics, that just isn't possible here.
So -- true total control requires ROM hacking, but one thing no ROM hacker can honestly say is that their hack runs on the original, unmodified hardware. :)

Missing the Cut

One payload that I omitted from this submission was code that would substitute whatever music the game was trying to play with a custom music track, namely the level 9 dungeon music from NES The Legend of Zelda.
This task is complicated greatly by the inability to modify the ROM, and while I was able to get the music playing, some sound effects degraded the sound in unexpected ways and in the available time for AGDQ I couldn't get it polished enough to include.
As music and sound effects have to play nice to share the same sound channels, I think I can get this working perfectly with more research into how the sound/music code interacts, but it's out for now.

Running SMB3 Gameplay Under Total Control

The ideal model for running total control functionality alongside the regular game engine would be if an infinite loop like this executed every frame:
while (true)
  doNormalSMB3()
  doTotalControlStuff()
end
Unfortunately, the game developers weren't so thoughtful: the game's main loop looks more like this:
A:
  (dozens of instructions)
B:
  (dozens of instructions)
  goto D (i.e. the JMP instruction)
C:
  (dozens of instructions)
D:
  (dozens of instructions)
goto A
So the bottom of the call stack has several hundred instructions spanning the title screen, world map, mini-games, and regular gameplay. Even worse, under many conditions (dying, completing a level, entering a pipe, etc) dozens of frames could elapse in some deeply buried subroutine, and under some conditions the code will manually jump to another section of the main loop, rather than returning normally. Without careful management, such behaviors can easily allow the game to "escape" total control, reverting to normal or (more likely) glitched/unstable behavior.
The structure of the main loop necessitated a lot of work to pare it down to something that could reasonably be replicated in RAM while preserving the ability to play the game. The world map and mini-games were among the pieces of functionality sacrificed to achieve this; hence the movie jumps from level to level via a "back door" rather than other approaches that might have been used. I have the code written to enable use of doors/tubes but didn't load it for this run to save space and because I found enough antics to pull in the levels proper.

Thanks

  • My family for understanding that hours of holiday time just *had* to be spent hacking a 27 year old game
  • Tompa - my SMB3 partner in crime
  • true - for nudging me to work on console verification
  • dwangoAC - for the AGDQ idea and making it happen
  • Southbird - for the incomprehensibly massive job of disassembling and fully commenting the game
  • 6502.org and Nesdev Wiki for reference material I used constantly

Nach: I was really excited to see this movie, it incorporates most of what I threw out there on SMB3 over a year ago (what no Kuribo's Shoe???). I even suggested to Masterjun again just last Thursday that he should make a run where Mario has VVVVVV's gravity powers, based on some earlier work. I am thrilled that someone finally made this. There's a ton of potential with this kind of run, and this is a terrific start to show off what's possible and really get the ball rolling.
There is the question as to whether this should obsolete the existing run which uses the same exploit to just simply jump to the end of the game, as this is way more entertaining. With the precedent set, even though I personally disagree with it, I will consider this as a branch onto itself.
This movie did a good job in catering to in-house jokes, being super entertaining for viewers everywhere, and had excellent choices made in the abilities it showed off. The new abilities added are the kind of thing you'd expect from a movie of this genre, and were spot on. The levels chosen to show off the new abilities are among the most iconic in the game and well recognizable and quite fitting for the abilities portrayed in each one. Throughout the custom parts added, a lot of attention to details for entertainment can be seen.
Aside from not providing an opportunity to show off Kuribo's Shoe, I can't think of anything negative about this run. This is by far one of the most entertaining movies ever submitted, with practically every bit of it carefully selected to provide maximum entertainment value. Accepting to Stars.
fsvgm777:
-> encode-this-movie
Unable to encode this movie
-> sudo encode-this-movie


WE ENCODING, GRAB THE FILES!

Joined: 1/27/2014
Posts: 181
• 1st TAS to get 99 lives for both Mario and Luigi
Yes! Great TAS. I love the shell shield personally and the suit switcher. IMO, this is what beating the Star Road should have done.
fsvgm777
She/Her
Senior Publisher, Player (221)
Joined: 5/28/2009
Posts: 1185
Location: Luxembourg
That was absolutely hilarious to watch (on stream). Yes vote. Note to other publishers: I'll be encoding/publishing it once it gets accepted.
Steam Community page - Cohost profile Oh, I'm just a concerned observer.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
This would be a perfect fit for the long-proposed "demo" category. Which doesn't exist. As it is, it doesn't really fit into any category. The major reason is that it doesn't complete the game. Even "playarounds" complete the game. It's one of the fundamental rules. Sure, it shows an "the end" screen, but that's not completing the game. If we start accepting anything that's "entertaining", then we'll have to start accepting runs that only go half-way through the game, or just demonstrate a funny glitch and that's it. That would be perfect for the "demo" category (if they have enough merit for publication), but nowhere else. Create that category, and you get ten thumbs up from me. Otherwise, no.
Editor, Expert player (2013)
Joined: 8/25/2013
Posts: 1199
Warp wrote:
The major reason is that it doesn't complete the game. Even "playarounds" complete the game.
I guess you missed the part where the credits rolled, you know, in the run. Personally, this is a PERFECT playaround movie. Because he's literally playing around with the game's code to produce a highly entertaining TAS.
effort on the first draft means less effort on any draft thereafter - some loser
Warepire
He/Him
Editor
Joined: 3/2/2010
Posts: 2174
Location: A little to the left of nowhere (Sweden)
This was absolutely brilliant.
Editor, Experienced player (818)
Joined: 5/2/2015
Posts: 671
Location: France
Warp wrote:
As it is, it doesn't really fit into any category. The major reason is that it doesn't complete the game. Even "playarounds" complete the game. It's one of the fundamental rules. Sure, it shows an "the end" screen, but that's not completing the game.
In a playaround's case, completing a game is a broad word. What about those games who don't have an ending?
Player (26)
Joined: 8/29/2011
Posts: 1206
Location: Amsterdam
Hilarious and great movie. Obvious shoe-in vote.
Warp wrote:
As it is, it doesn't really fit into any category. The major reason is that it doesn't complete the game. Even "playarounds" complete the game.
This is a perfect fit for our "Moons" category, along with similar playarounds like this one and that one.
arandomgameTASer wrote:
I guess you missed the part where the credits rolled, you know, in the run. Personally, this is a PERFECT playaround movie. Because he's literally playing around with the game's code to produce a highly entertaining TAS.
Indeed.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11272
Location: RU
God, I waited for this kind of run for so long... and it's finally there!!! I'm basically speechless, finally a total control that is a playaround and a glitchfest in one. All possible awards to this one please. Oh yeah, instant star, and I even think NewcomerRec as well.
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.
Player (64)
Joined: 10/4/2015
Posts: 102
Holy shit, I can see why this made AGDQ.
Enter the Matrix is a piece of garbage but I'm gonna finish it if it kills me.
ars4326
He/Him
Experienced player (764)
Joined: 12/8/2012
Posts: 706
Location: Missouri, USA
This was an amazing run! So many good things to say about this one: Programming in a new (brief) game; programming in new moves and debugging controls -- and to top that all off, it was played back on console. This TAS is an attraction, no doubt. I'm in agreement with feos that the newcomer tag would be appropriate to add to this one. (And as for future 2016 awards, it's definitely already in the front-running for me in a few categories. I'd personally though, restrict my nominations for it to three awards, to give other runs a chance to earn an award, too.)
"But as it is written, Eye hath not seen, nor ear heard, neither have entered into the heart of man, the things which God hath prepared for them that love him." - 1 Corinthians 2:9
Skilled player (1436)
Joined: 11/26/2011
Posts: 655
Location: RU
That was fucking awesome.
I show you how deep the rabbit hole goes. Current projects: NES: Tetris "fastest 999999" (improvement, with r57shell) Genesis: Adventures of Batman & Robin (with Truncated); Pocahontas; Comix Zone (improvement); Mickey Mania (improvement); RoboCop versus The Terminator (improvement); Gargoyles (with feos)
Pokota
He/Him
Joined: 2/5/2014
Posts: 779
Warp wrote:
This would be a perfect fit for the long-proposed "demo" category. Which doesn't exist. As it is, it doesn't really fit into any category. The major reason is that it doesn't complete the game. Even "playarounds" complete the game. It's one of the fundamental rules. Sure, it shows an "the end" screen, but that's not completing the game. If we start accepting anything that's "entertaining", then we'll have to start accepting runs that only go half-way through the game, or just demonstrate a funny glitch and that's it. That would be perfect for the "demo" category (if they have enough merit for publication), but nowhere else. Create that category, and you get ten thumbs up from me. Otherwise, no.
Adventures in Lua When did I get a vest?
Post subject: when quoting an argument, don't ignore the replies it got
Noxxa
They/Them
Moderator, Expert player (4140)
Joined: 8/14/2009
Posts: 4083
Location: The Netherlands
Pokota wrote:
Warp wrote:
This would be a perfect fit for the long-proposed "demo" category. Which doesn't exist. As it is, it doesn't really fit into any category. The major reason is that it doesn't complete the game. Even "playarounds" complete the game. It's one of the fundamental rules. Sure, it shows an "the end" screen, but that's not completing the game. If we start accepting anything that's "entertaining", then we'll have to start accepting runs that only go half-way through the game, or just demonstrate a funny glitch and that's it. That would be perfect for the "demo" category (if they have enough merit for publication), but nowhere else. Create that category, and you get ten thumbs up from me. Otherwise, no.
arandomgameTASer wrote:
I guess you missed the part where the credits rolled, you know, in the run. Personally, this is a PERFECT playaround movie. Because he's literally playing around with the game's code to produce a highly entertaining TAS.
Radiant wrote:
This is a perfect fit for our "Moons" category, along with similar playarounds like this one and that one.
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, Skilled player (1410)
Joined: 12/28/2013
Posts: 396
Location: Rio de Janeiro, Brasil
How didn't this finish the game? Because it didn't kill the boss the way it should? I thought we had already overcome that...
My YouTube channel: https://www.youtube.com/channel/UCVoUfT49xN9TU-gDMHv57sw Projects: SMW 96 exit. SDW any%, with Amaraticando. SMA2 SMW small only Kaizo Mario World 3
Skilled player (1707)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
I'm surprised people are more upset about the ending/boss than the fact 99 lives was quickly obtained in 1 frame rather than the usual hopping. :P Edit: I turned on annotations, and sometimes I get this: Can this be fixed to make it more readable?
Spikestuff
They/Them
Editor, Publisher, Expert player (2300)
Joined: 10/12/2011
Posts: 6339
Location: The land down under.
jlun2 wrote:
Can this be fixed to make it more readable?
Downloads TAS Opens up fceux Playback TAS Dumps the subtitles Here's a link for you Lord Tom for a Closed Caption version and not annotations. Download Link (4kb)
WebNations/Sabih wrote:
+fsvgm777 never censoring anything.
Disables Comments and Ratings for the YouTube account. Something better for yourself and also others.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
arandomgameTASer wrote:
I guess you missed the part where the credits rolled, you know, in the run.
No I didn't. I mentioned right there in my post. If there were a way to trigger arbitrary code execution in the first second of starting the game, and this were used to make the program execution jump to the end credits, would you consider that a game completion? I don't. It didn't complete the game. It showed the end credits. Not the same thing. There would be a really, really easy way to solve all this bickering and stretching the definition of "Moons" beyond recognition in order to accommodate whatever popular demonstration and glitchfest is currently the hot topic: Create the demo category. Keep the definitions of the different categories clear and well-defined.
Invariel
He/Him
Editor, Site Developer, Player (169)
Joined: 8/11/2011
Posts: 539
Location: Toronto, Ontario
Warp wrote:
If there were a way to trigger arbitrary code execution in the first second of starting the game, and this were used to make the program execution jump to the end credits, would you consider that a game completion? I don't. It didn't complete the game. It showed the end credits. Not the same thing.
Yeah, we sure hate publishing ACE runs, and runs which glitch straight through to the end credits on this site. [1834] NES Wizardry III: Legacy of Llylgamyn "game end glitch" by MiezaruMono in 00:12.86 [2403] NES Battletoads "game end glitch" by MESHUGGAH, feos in 00:56.76 [2406] NES Kirby's Adventure "game end glitch" by MESHUGGAH, CoolKirby, Masterjun, MUGG, TASeditor & illayaya in 00:35.91 [2463] PCE Ninja Gaiden "game end glitch" by Bernka & Rum in 01:23.73 [2551] SNES Wizardry V: Heart of the Maelstrom "game end glitch" by pirohiko in 01:02.85 [2601] NES Mega Man "game end glitch" by pirohiko & finalfighter in 00:32.11 [2609] SNES Kirby Super Star "game end glitch" by Masterjun in 00:23.03 [2611] Windows VVVVVV "game end glitch" by Masterjun in 00:45.33 [2651] GB Super Mario Land 2: 6 Golden Coins "game end glitch" by MUGG, Masterjun in 00:41.56 [2687] GB Pokémon: Red Version "save glitch" by MrWint in 01:09.95 [2749] GB Wario Land: Super Mario Land 3 "game end glitch" by McHazard in 01:31.15 [2751] SNES Super Mario World 2: Yoshi's Island "game end glitch" by Masterjun in 01:17.54 [2890] SNES Lufia II: Rise of the Sinistrals "game end glitch" by Genisto in 00:57.36 [2895] SMS Ys: The Vanished Omens "game end glitch" by IzzyThePenguin in 00:17.11 [2926] SNES Super Mario World "game end glitch" by BrunoVisnadi, Amaraticando, Masterjun in 00:41.81 And, in the event that you want a game that just jumps to the end without a glitch and without ACE, [1145] Genesis King's Bounty by gia & Aqfaq in 00:09.93.
I am still the wizard that did it. "On my business card, I am a corporate president. In my mind, I am a game developer. But in my heart, I am a gamer." -- Satoru Iwata <scrimpy> at least I now know where every map, energy and save room in this game is
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11272
Location: RU
Warp wrote:
arandomgameTASer wrote:
I guess you missed the part where the credits rolled, you know, in the run.
No I didn't. I mentioned right there in my post. If there were a way to trigger arbitrary code execution in the first second of starting the game, and this were used to make the program execution jump to the end credits, would you consider that a game completion? I don't. It didn't complete the game. It showed the end credits. Not the same thing. There would be a really, really easy way to solve all this bickering and stretching the definition of "Moons" beyond recognition in order to accommodate whatever popular demonstration and glitchfest is currently the hot topic: Create the demo category. Keep the definitions of the different categories clear and well-defined.
This sounds like a nice intent, but you can't draw the clear line between "regular people consider this regular legit game completion" and "this just does not complete the game despite of reaching the credits technically". You (or whoever else) can set that line in any way, but there won't be solid common opinion on what really is legit game completion. So while I support Demo introduction fully, I don't think we must throw anything that "regular people don't consider regular" there, simply because it can't be defined once and for all. In my eyes Demo is for things that can't be currently accepted (due to sane tier rules), but are entertaining. Anyway, I'd invite anyone who cares about Demo tier category into the proper thread where I made elaborate posts about it all.
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.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
Invariel wrote:
Yeah, we sure hate publishing ACE runs, and runs which glitch straight through to the end credits on this site.
I know perfectly well that the site doesn't "hate publishing ACE runs". How exactly does that affect what I wrote?
And, in the event that you want a game that just jumps to the end without a glitch and without ACE, [1145] Genesis King's Bounty by gia & Aqfaq in 00:09.93.
Would you consider it an invalid completion of the game, even when strictly adhering to the game's own rules and gameplay?
Invariel
He/Him
Editor, Site Developer, Player (169)
Joined: 8/11/2011
Posts: 539
Location: Toronto, Ontario
It's because the site clearly disagrees with what you consider "legitimate game completion", as there are several ACE and glitch runs that complete the game within a few seconds of power on. That thing you were specifically complaining about that I quoted.
I am still the wizard that did it. "On my business card, I am a corporate president. In my mind, I am a game developer. But in my heart, I am a gamer." -- Satoru Iwata <scrimpy> at least I now know where every map, energy and save room in this game is
Noxxa
They/Them
Moderator, Expert player (4140)
Joined: 8/14/2009
Posts: 4083
Location: The Netherlands
Warp, if your issue lies with site policy in general (and not with only this specific run), please take your discussion to a separate topic. Discussing it in a topic like this is only bound to derail it.
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.
Lord_Tom
He/Him
Expert player (3274)
Joined: 5/25/2007
Posts: 399
Location: New England
ais523 wrote:
Would it be possible to write the payload faster using subframe input?
It'd be easy enough to have my routine poll the controllers multiple times per frame; the question I don't know the answer to is whether there's a way to specify subframe input in a movie file without hacking the emulator...and whether the result would sync on console.
Lord_Tom
He/Him
Expert player (3274)
Joined: 5/25/2007
Posts: 399
Location: New England
Masterjun wrote:
This is an incredible movie! This reminded me of my first days getting into crazy glitch stuff (the smw run with the fishes), as this is exactly the way how I got into assembly language and low-level shenanigans. I'm really happy to see another person that seems to have a lot of fun (and the abilities) to utterly destroy games and rebuild them solely to entertain other people, which was done exceptionally well.
I think we do see things the same way, thanks for the great tribute. :) It's been great seeing the positive response to this, including Mitch "what?!" FlowerPower at AGDQ. Thanks everyone!
Mitjitsu
He/Him
Banned User, Experienced player (532)
Joined: 4/24/2006
Posts: 2997
Wow, not only is this movie incredible, but you also took it several levels beyond other total control movies. Thanks for the detailed submission, as it prevented me from bombarding you with highly technical and somewhat boring questions.