(Link to video)

Game objectives

  • Emulator used: lsnes rr2-β15
  • Demonstration
  • Heavy glitch abuse
  • Heavy luck manipulation

Comments

My first submission of 2014 is a Total Control TAS. I would suggest watching the movie before reading this submission text. Since this run was (just) streamed at AGDQ 2014, you can say that this was console verified :D. As you might notice, this TAS doesn't aim for speed and the reason why it doesn't end on last input is because I wanted the last picture as a suggested picture.

How did you do this?

If you really want to know then I suggest reading the submission text of the glitched SMW TAS, as the first around 100 seconds (until the game-breaking glitch) are the same.
In short: I manipulate where the moving objects (sprites) are located or where they despawn, then I swap the item in Yoshi's mouth with a flying ?-block (thus the yellow glitched shell) and using a glitch (stunning) to spawn a sprite which isn't used by SMW and since it tries to jump to the sprite routine location, it indexes everything wrong and jumps to a place I manipulated earlier with the sprites (OAM) and because of the P-Switch it jumps to controller registers and from there the arbitrary code execution is started.
Even shorter: Magic.

This run and the TASBot

So this TAS was designed to sync on the TASBot by true and dwangoAC. For example, I was limited by using only 3 multitap frames while I'm able to do 30. Though the bot can use all 8 controllers (2 multitaps) and since every controller has 16 buttons, that means 16 bits or 2 bytes for each controller, which are 2*8=16 bytes per multitap frame and 16*3=48 bytes per frame.

Suggested Screenshots

Thanks to

  • p4plus2 for helping me with more experienced ASM stuff
  • everyone that gave me weird ideas what to include in this run :D
  • AGDQ 2014 for creating a huge time pressure for me (that wasn't actually good)
  • true and dwangoAC for the console verification of this
  • YI2 for being the perfect level for Total Control

feos: Judging...
feos: Added AGDQ TASBot stream.
feos: This TAS is definitely TEH GREATEST MOVIE EVAH. Which somehow didn't prevent flamewars about it. First, I'll say about the similarities of this and the current any% run.
They use the same input to setup total control. It is known to be optimal, the fastest. Which means there is no copyright on it - in some cases only certain combination of button presses can be used to achieve the best result, and no matter how you alter it, it's basically the same.
None of these movies is a playaround within that setup time, so artistic choices would not matter. The way it is done is, again, the fastest. And therefore it was directly picked to be used in this submission (by the same author).
So what is the actual difference, after total control is gained? The any% run completes the game as fast as possible. It jumps right to the ending sequence. It is a world record in SMW. This submission does not complete the game. It does not jump to real ending. And it does not aim for speed (shortest input). Its goal is to demonstrate a concept: what can be done within SMW when total control is gained.
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.
Sum: accepting as a new branch.

1 2
8 9
Expert player (2448)
Joined: 12/23/2007
Posts: 822
Is it just my problem or does anyone has the same problem having desync audio when playing both encodes? All the previous encodes I downloaded play normally, but this one desyncs everytime on both 10bit444 and 512kb encodes.
Recent projects: SMB warpless TAS (2018), SMB warpless walkathon (2019), SMB something never done before (2019), Extra Mario Bros. (best ending) (2020).
Editor, Skilled player (1936)
Joined: 6/15/2005
Posts: 3239
I have that problem as well. Both "Mirror archive.org (MKV Modern HQ)" and "Mirror archive.org (MP4 Compatibility)" encodes start with the audio in the middle of the movie (after the logo, it starts with a Yoshi sound and is partway through the BGM at the very beginning, when there should be no sound).
Emulator Coder, Skilled player (1140)
Joined: 5/1/2010
Posts: 1217
Indeed, the audio in the downloadables (except VHQ) is busted. I'll replace those encodes. Edit: Done.
Joined: 2/20/2010
Posts: 209
Location: I'm in space
W T F there is no spoon.
Oh, play it cool. Play it cool. Here come the space cops.
nfq
Player (92)
Joined: 5/10/2005
Posts: 1204
feos wrote:
A TAS of a snake game alone? Really? Aiming for what, entertainment? Errr...... Speed? Um...
True wrote:
just tag this shit "playaround" or realize that this isn't a fucking TAS of snake
Fuck yeah. BTW, I made a TAS of snake a while ago, and strangely it actually got a lot of views: http://www.youtube.com/watch?v=kTIPpbIbkos As for Masterjun's mindfuck of SMW. I saw it on a video that was posted a day after it was done on AGDQ, but I didn't post here earlier because I was stunned by the awesomeness. I still don't understand how you can program a game with controllers, but then again, I know almost nothing about programming. It seems like you would need a keyboard to be able to use enough characters to program something. 7 SNES controllers might have almost as many keys as a keyboard, but I wonder how Masterjun transformed the SNES buttons, like L, R, A, B, start, etc into keyboard keys like {}/;()abcdetc, which are used in programming language, so that he could program. Even if you have 7 controllers, you still only have the normal SNES buttons like L, R, A, B and so on. And what programming language did he use? Java, Lua scripting, C++ or what?
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
nfq wrote:
It seems like you would need a keyboard to be able to use enough characters to program something. 7 SNES controllers might have almost as many keys as a keyboard, but I wonder how Masterjun transformed the SNES buttons, like L, R, A, B, start, etc into keyboard keys like {}/;()abcdetc, which are used in programming language, so that he could program. Even if you have 7 controllers, you still only have the normal SNES buttons like L, R, A, B and so on. And what programming language did he use? Java, Lua scripting, C++ or what?
He was sending assembler commands SNES can execute, as plain machine code. Language is for you to write and read, CPU only handles compiled machine code. Each controller button is represented with 1 bit, so 8 buttons are read as 1 byte. He pressed the buttons to form the bytes he needed, that are sent as actual controller data, but since the game execution pointer is stuck in controller registers, these bytes get executed as legit code.
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.
Emulator Coder, Skilled player (1140)
Joined: 5/1/2010
Posts: 1217
nfq wrote:
I still don't understand how you can program a game with controllers, but then again, I know almost nothing about programming.
Basically, by writing SNES program code into SNES working RAM and then telling the CPU to jump to that.
nfq wrote:
It seems like you would need a keyboard to be able to use enough characters to program something.
Being able to input requires just one (time-dependent) or two (time-independent) buttons.
nfq wrote:
7 SNES controllers might have almost as many keys as a keyboard, but I wonder how Masterjun transformed the SNES buttons, like L, R, A, B, start, etc into keyboard keys like {}/;()abcdetc, which are used in programming language, so that he could program. Even if you have 7 controllers, you still only have the normal SNES buttons like L, R, A, B and so on. And what programming language did he use? Java, Lua scripting, C++ or what?
It is actually 8. And the reasons why 8 was used instead of 4 was limitations of the bot. Getting the control needs 4 (64 buttons). Specifically, with the hardware at the time one can reliably read all controllers 3 times per video frame (about 180 times per second)[1]. Thus with 8 controllers, one can move data at double the speed (48 bytes per frame instead of 24).[2] The programs were written using SNES CPU assembly, first translated into machine language via a program, and then the machine language was translated into button presses to input it via another program. [1] Well, there is safety margin in that, so it could have done faster (4 times per frame / 240 times per second could very well have worked). [2] This is nowhere even near what can be done if one doesn't care about if bots can play it back nor about input being any sort of nice. I have seen somewhat over 1024 bytes per frame (and that was with 4 controllers).
Joined: 11/30/2012
Posts: 1
Hum... No one know who was the Super Mario beta test? After 30 year that he did the job, you can say: Look, you did a bad job! I found a bug in your game! hahaha... And there are A LOT OF BUGS in the game! You just need to be a machine to play it.
Skilled player (1703)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
rodrigozanatta wrote:
Hum... No one know who was the Super Mario beta test? After 30 year that he did the job, you can say: Look, you did a bad job! I found a bug in your game! hahaha... And there are A LOT OF BUGS in the game! You just need to be a machine to play it.
Well, that's the problem. Most of these bugs are frame specific, and I don't think they had emulators with frame advance to test bugs on back then. So it's not really the bug tester's fault. :P
Editor, Skilled player (1502)
Joined: 7/9/2010
Posts: 1317
jlun2 wrote:
rodrigozanatta wrote:
Hum... No one know who was the Super Mario beta test? After 30 year that he did the job, you can say: Look, you did a bad job! I found a bug in your game! hahaha... And there are A LOT OF BUGS in the game! You just need to be a machine to play it.
Well, that's the problem. Most of these bugs are frame specific, and I don't think they had emulators with frame advance to test bugs on back then. So it's not really the bug tester's fault. :P
But they have the scource code, that's the only thing they need for finding bugs.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Skilled player (1703)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
TASeditor wrote:
But they have the scource code, that's the only thing they need for finding bugs.
If it was that easy, most games wouldn't even have glitches. Also http://en.wikipedia.org/wiki/Emergent_gameplay
Editor
Joined: 11/3/2013
Posts: 506
To say that there are a lot of bugs in this game is to discredit the enormous achievement that it is to tear apart a game that had been considered very robust for over twenty years of real-time playing, and for ten years of dedicated searching with emulators and other tools designed to make finding and replicating bugs easier.
1 2
8 9