ROM Hack Question Super Smash Bros Ultimate Replay Format?

gudenau

Largely ignored
OP
Member
Joined
Jul 7, 2010
Messages
3,882
Trophies
2
Location
/dev/random
Website
www.gudenau.net
XP
5,365
Country
United States
Does anyone happen to know the format for SSBU replays? Would be useful if we could extract the inputs for overlays on videos without having to use extra hardware or software to capture the inputs live.
 

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,321
Country
United Kingdom
Token search says not a lot, though seemingly is a move replay format.
https://www.ssbwiki.com/Replay
Mentions some hackers being able to up a limit as well from the stock 3 minutes, and that game updates seemingly break them (though I suspect homebrew could revert things to earlier updates... hmm might be good to set up a collection of those if they have not already been made).

Anyway this sort of thing is a prime candidate for testing and reverse engineering basics as the game itself provides the option to generate new data to analyse, which is different to most things where the whole Read Only Memory nature of it all rather gets in the way.
I would set up a plain level. 2 players, 1 life maybe, no items. If you are really good then fix the random seed mentioned on the wiki there to be the same every time*. Have one player basically walk to the edge and stand there. Another then can do some moves, the other player suicides and end match, save and grab.
From here you can build up a basic setup.
There are several schools of thought on how to set about this.
Simple repetition is not necessarily a bad way to go about it.
Acoustics tell us that repetition is bad; echoes of the same pattern. To that end you can go completely random, or just spike runs of the same input with something else entirely.
Some might instead of doing one move at a time might aim for something more comprehensive. For some things this can work, however I would probably temper this a bit and instead take some basics and try to predict the modifiers and effects thereof rather than getting it experimentally otherwise you will end up doing left stick at ? degrees, left stick at ? + 1 degrees, +2... and that is no fun. If you want to do runs of say two presses of A, three of B, four of R, three of L, five of something else... so you can align a pattern and have it be comprehensive then OK. You might even use the second player as more than control after you know where their moves are stored**.

It will be a long winded process but you might find some join you once you have a start.
As well as generally interested smash brothers hackers (which are considerable in number compared to a lot of franchises) then you will possibly want to speak to the tool assisted speedrun set as they will likely have some interest here (an input replay option is pretty much the definition of TAS after all), general video making, maybe competitions (I will spare my usual cynicism here***), and possibly those looking to do machinima with this game (replay options you can change video angles for after all).
If you are not tempted to add some invalid inputs (be it generally or change where characters apparently are, or to test what the AI does in response to certain things as apparently the AI is generally deterministic and plays the game) when you have enough of the basics down then might want to work on that hacker mindset. Whether the replays will have a hash or not I don't know, I presume they at least have a version number associated for the updates to stop things working.

After this if you wanted to play with a more assembly based approach then you might get the esoteric stuff, maybe some hidden things unknown previously or the like.

*if no cheat exists at present then I would make a savestate in the game (same really quick match setup), take the replay of what is hopefully a basic match. Load the savestate back (though same settings would do in a pinch if no savestates are available) and hopefully a new random seed is made, new replay. Hopefully then the seed becomes apparent and you can find it in memory and fix it to be the same.

**two main approaches to such things as it is a problem in computing -- audio video tending to be the big one for most as you have to contemplate how you grab presumably lots of video data at the same time as audio, though having separate files is good for other reasons even if it is slow and thus troubles discs, streaming and other such things.
1) You do some kind of time level filter. Each frame (possibly sub frame) or millisecond or input fetch you note things down for each input.
2) You keep the characters separate and have a time value associated with each input, or a separate time key.

***can't wait for the whole metagaming debate to arise when someone is shown to be holding back -- one time they can do frame perfect inputs but another time they are demonstrably holding back and you have evidence to show it vs the boring and basic not playing with mains or general accusations of holding back I have seen in the past.
 

gudenau

Largely ignored
OP
Member
Joined
Jul 7, 2010
Messages
3,882
Trophies
2
Location
/dev/random
Website
www.gudenau.net
XP
5,365
Country
United States
Token search says not a lot, though seemingly is a move replay format.
https://www.ssbwiki.com/Replay
Mentions some hackers being able to up a limit as well from the stock 3 minutes, and that game updates seemingly break them (though I suspect homebrew could revert things to earlier updates... hmm might be good to set up a collection of those if they have not already been made).

Anyway this sort of thing is a prime candidate for testing and reverse engineering basics as the game itself provides the option to generate new data to analyse, which is different to most things where the whole Read Only Memory nature of it all rather gets in the way.
I would set up a plain level. 2 players, 1 life maybe, no items. If you are really good then fix the random seed mentioned on the wiki there to be the same every time*. Have one player basically walk to the edge and stand there. Another then can do some moves, the other player suicides and end match, save and grab.
From here you can build up a basic setup.
There are several schools of thought on how to set about this.
Simple repetition is not necessarily a bad way to go about it.
Acoustics tell us that repetition is bad; echoes of the same pattern. To that end you can go completely random, or just spike runs of the same input with something else entirely.
Some might instead of doing one move at a time might aim for something more comprehensive. For some things this can work, however I would probably temper this a bit and instead take some basics and try to predict the modifiers and effects thereof rather than getting it experimentally otherwise you will end up doing left stick at ? degrees, left stick at ? + 1 degrees, +2... and that is no fun. If you want to do runs of say two presses of A, three of B, four of R, three of L, five of something else... so you can align a pattern and have it be comprehensive then OK. You might even use the second player as more than control after you know where their moves are stored**.

It will be a long winded process but you might find some join you once you have a start.
As well as generally interested smash brothers hackers (which are considerable in number compared to a lot of franchises) then you will possibly want to speak to the tool assisted speedrun set as they will likely have some interest here (an input replay option is pretty much the definition of TAS after all), general video making, maybe competitions (I will spare my usual cynicism here***), and possibly those looking to do machinima with this game (replay options you can change video angles for after all).
If you are not tempted to add some invalid inputs (be it generally or change where characters apparently are, or to test what the AI does in response to certain things as apparently the AI is generally deterministic and plays the game) when you have enough of the basics down then might want to work on that hacker mindset. Whether the replays will have a hash or not I don't know, I presume they at least have a version number associated for the updates to stop things working.

After this if you wanted to play with a more assembly based approach then you might get the esoteric stuff, maybe some hidden things unknown previously or the like.

*if no cheat exists at present then I would make a savestate in the game (same really quick match setup), take the replay of what is hopefully a basic match. Load the savestate back (though same settings would do in a pinch if no savestates are available) and hopefully a new random seed is made, new replay. Hopefully then the seed becomes apparent and you can find it in memory and fix it to be the same.

**two main approaches to such things as it is a problem in computing -- audio video tending to be the big one for most as you have to contemplate how you grab presumably lots of video data at the same time as audio, though having separate files is good for other reasons even if it is slow and thus troubles discs, streaming and other such things.
1) You do some kind of time level filter. Each frame (possibly sub frame) or millisecond or input fetch you note things down for each input.
2) You keep the characters separate and have a time value associated with each input, or a separate time key.

***can't wait for the whole metagaming debate to arise when someone is shown to be holding back -- one time they can do frame perfect inputs but another time they are demonstrably holding back and you have evidence to show it vs the boring and basic not playing with mains or general accusations of holding back I have seen in the past.

So as far as you know no one knows the format.

I do know a couple of things about it just from playing with it. It records the version of the game and the game knows what moves where changed when. So if you have a reply of two characters that are exactly the same on two different versions the replay should work. It will attempt to play it and stop the reply when something changes. No idea where the files would be stored or what the correct way to access them might be though. I would expect them to be on the NAND somewhere.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    SylverReZ @ SylverReZ: https://www.youtube.com/watch?v=3eGAHfC5P-Y