Submission Text Full Submission Page

Suggested intro text

Welcome to the 4 frame improvement to the SMW credits glitch run! Credit to p4plus2 for thinking of the method to do this.

Suggested game objectives

  • Emulator used: lsnes-expansion-p4plus2-credittohim-uuuh-hedidnttestthisyetthough
  • Aims for the goal of completing the process of reaching the THE END of a completed game which reached the state of the finished goal of winning in the game... as fast as possible!
  • It also uses a bunch of controllers to complete the goal of finishi-
  • It's also faster than the current run by 4 frames
  • Credit to p4plus2 for finding the mysterious thing that makes this possible

Suggested comments

How to play back the file on a normal lsnes rr2 version

For your convenience (and probably mine because I don't have the version either), I made a fancy Lua script to run which makes the run play back correctly! In fact, it's also already in the movie file itself so you can also simply extract the script.
It also only needs to run on the last frame of input (after that you can use Reset Lua VM to remove all remaining callbacks) so it doesn't make the run any longer.

What do you mean you want an explanation for the mysterious thing

Okay, okay, it's the expansion port on the SNES! (see picture below) (credit to p4plus2 for thinking of this)

SNES expansion port

Turns out the expansion port registers are found on addresses $2184-$21FF which makes them very similar to controller regsiters (adresses $4218-$421F).
The differences are quite important though.
One is pretty obvious: Instead of 8 arbitrary bytes with the controllers, we have 124 arbitrary bytes with the expansion port.
The other one is just as useful though: In practice (as in, on actual hardware), all 124 bytes can be changed at the speed of the SNES CPU. This means in theory you could set all 124 bytes to 0xA9 and start executing them. Then right after the CPU fetched the first byte you can change all 124 bytes to hold, say, 0x96. The resulting first instruction would be A9 96 (LDA #$96).
Since the value can change every fetch of the byte, p4plus2 found the easy method to emulate it by just writing a byte buffer for all the bytes returned to the CPU as soon as it requires them. This is the expansionportdata file you see inside the movie file, even though it's useless since it isn't read by the normal emulator.
In this movie a jump to the expansion port is used to write a program into memory (all in the last frame, so that it doesn't make the movie longer). This program then runs until it finally jumps to the credits.

Now a few words from an Aidful Individual who learned to write submission texts

I die jump with platform, Select is trologed. For my have to be have along the Super Mario's cut prized.
  • He Pokemon.
This is prevented for the battle, they. Hat have set that good scroll and a Mario quickly reason.
But TAS work.

Suggested screenshot

(whaaat !? it's not an actual screenshot from the movie !?)

Fog: Judging.
Fog: Dropping this one, this run seems much more suited for Nach.

Nach: The console's controller ports are a normal way for players to enter input. Many different kinds of devices were made to use the controller ports, and Nintendo recommended third parties make their own controllers, and they did, and received Nintendo approval. All those making SNES games should be aware that controller input can be anything. Some games taking this into account issue an error message upon load if using a controller input they did not want to support. This makes using any controller input via the controller port "fair game" to use in a TAS.
The expansion port was designed to create add-on hardware for the SNES, similar to how the Sega Genesis has various CD addons and potentially other kinds of interesting things that may add additional capabilities to the SNES. Games are not expected to make use of the expansion port unless designed specifically for a particular add-on. The expansion port is not intended to be used to create controllers, nor was anything of the kind ever released for it. Using the expansion port in this way for player input is not considered a legitimate way to play Super Mario World. Rejecting, with prejudice.


creaothceann
He/Him
Editor
Joined: 4/7/2005
Posts: 1874
Location: Germany
SmashManiac wrote:
Yes, the extension port was never designed for human input, but it was still designed for input.
The port allows full access to the system busses, so it's actually designed for data input and output (and not just controller input).
Editor, Player (44)
Joined: 7/11/2010
Posts: 1029
Patashu wrote:
ais523 wrote:
The reason left+right is banned on most speedrunning sites is not that it's impossible, but that doing it tends to cause physical damage to the controller (making it break eventually). It's unfair to make someone keep buying new controllers to be able to speedrun.
I never heard this reasoning before. And it's so pragmatic too! Do you know if this reasoning is listed anywhere on, for example, a www.speedrun.com page?
SDA's rules have this to say:
SDA wrote:
Impossible inputs: Some games, such as The Legend of Zelda: A Link to the Past, show unusual behavior when one feeds them with usually impossible input, such as up+down pressed simultaneously. As such actions require worn out controllers, non-standard controllers or excessive force, they are treated as hardware modification and are thus banned as well.
Not quite the same, but it's getting at the same point.
Dwedit
He/Him
Joined: 3/24/2006
Posts: 692
Location: Chicago
Says that the expansion port has only an 8-bit address, so it's not the full system bus.
creaothceann
He/Him
Editor
Joined: 4/7/2005
Posts: 1874
Location: Germany
It's Address Bus B (which controls system addresses XX:21XX and is connected to CPU, WRAM, PPU1, PPU2, expansion port and APU) and the Data Bus.
Dwedit
He/Him
Joined: 3/24/2006
Posts: 692
Location: Chicago
Regardless of anything else, adding something that connects to the system bus is more like adding a Game Genie than a controller.
Player (41)
Joined: 1/22/2014
Posts: 38
Location: Sweden
Dwedit wrote:
Regardless of anything else, adding something that connects to the system bus is more like adding a Game Genie than a controller.
Agreed, the fact is that a device sitting in the expansion port can take control over the CPU pretty much at any time by hijacking and overriding the bus at the right time. There's no need for any kind of exploit in the game at all.
Amaraticando
It/Its
Editor, Player (162)
Joined: 1/10/2012
Posts: 673
Location: Brazil
IMO: the expansion port should not be allowed. http://www.retrocollect.com/News/save-states-console-add-on-snes-tap-set-for-the-super-nintendo.html BTW: #neverforget the release date of this movie...
Editor, Reviewer, Skilled player (1361)
Joined: 9/12/2016
Posts: 1646
Location: Italy
Chanoyu wrote:
Yes, the extension port was never designed for human input, but it was still designed for input.
The Exertainment exercise bike is a human input device, isn't it?
Masterjun wrote:
Yes it is, and I can confirm the game Cannondale Cup checks for serveral values on the expansion port registers.
Then it would be necessary to check if the the very same inputs provided to the expansion port in this run could be provided via an officially produced and sold input device, and thus hypothetically reproduced in real-time on actual console without having to rely on custom or unofficial hardware (assuming you're a superhuman).
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
Player (138)
Joined: 9/18/2007
Posts: 389
The movie includes some (in my opinion) unacceptable payload It only makes sense for members of this site at the date of the submission and it seems to be made especially to raise a discussion about the expansion port in general. So even if we come to the conclusion that the expansion port should be treated just like another controller port, I could not accept this video. But the current set of rules will allow us to reject this movie without too much discussion 1) This movie is not an optimal speedrun, as it is easy to write a movie of equal frame amount which reaches the credits faster, so ACE is used "inefficiently". 2) For a playaround, the payload has almost "nothing to do with the game". I agree that using the expansion port in that way should be banned, as this is like using custom hardware.
adelikat
He/Him
Emulator Coder, Site Developer, Site Owner, Expert player (3576)
Joined: 11/3/2004
Posts: 4754
Location: Tennessee
Dwedit wrote:
Regardless of anything else, adding something that connects to the system bus is more like adding a Game Genie than a controller.
If I recall, Ilari and I discussed this back in 2013 and came up to pretty much this exact conclusion. And there's a reason it isn't actually supported in lsnes
It's hard to look this good. My TAS projects
Joined: 9/8/2014
Posts: 19
It looks like the exertainment exercise bike sends data in specific combinations. I think that the expancion port should be allowed if and only if the imputs emmulate what would be possible on official hardware such as the exercise bike. If this run could be simulated by using an actual exercise bike (or some other authorised snes asccesery that i have not heard of), I say accept it. Otherwise, I say reject it.
Former player
Joined: 6/30/2010
Posts: 1107
Location: Zurich, Switzerland
adelikat wrote:
Dwedit wrote:
Regardless of anything else, adding something that connects to the system bus is more like adding a Game Genie than a controller.
If I recall, Ilari and I discussed this back in 2013 and came up to pretty much this exact conclusion. And there's a reason it isn't actually supported in lsnes
Maybe it could only be allowed for TASes if the game is actually designed to support it. That would make more sense to me than to just ban it in general.
Current project: Gex 3 any% Paused: Gex 64 any% There are no N64 emulators. Just SM64 emulators with hacky support for all the other games.
Buddybenj
He/Him
Joined: 1/12/2013
Posts: 166
Location: USA
andypanther wrote:
adelikat wrote:
Dwedit wrote:
Regardless of anything else, adding something that connects to the system bus is more like adding a Game Genie than a controller.
If I recall, Ilari and I discussed this back in 2013 and came up to pretty much this exact conclusion. And there's a reason it isn't actually supported in lsnes
Maybe it could only be allowed for TASes if the game is actually designed to support it. That would make more sense to me than to just ban it in general.
Just to play devil's advocate, why should it be restricted to games that support it? We allow the use of the SNES Multitap on Super Mario World even though the game never uses more than two controllers AFAIK. So, why should other accessories be restricted to the games they're meant for?
Projects: Interested in TASing N64 Mario Golf. GBA Mario Tennis: Power Tour is on hold.
BigBoct
He/Him
Editor, Former player
Joined: 8/9/2007
Posts: 1692
Location: Tiffin/Republic, OH
The multitaps are legitimate hardware made for the Super Nintendo. As far as I know, nothing official was ever made to use the expansion port.
Previous Name: boct1584
Buddybenj
He/Him
Joined: 1/12/2013
Posts: 166
Location: USA
boct1584 wrote:
The multitaps are legitimate hardware made for the Super Nintendo. As far as I know, nothing official was ever made to use the expansion port.
According to this link posted by Masterjun, there are a few commercial games that use the port.
Projects: Interested in TASing N64 Mario Golf. GBA Mario Tennis: Power Tour is on hold.
TASVideosGrue
They/Them
Joined: 10/1/2008
Posts: 2792
Location: The dark corners of the TASVideos server
om, nom, nom... minty!