Skilled player (1706)
Joined: 9/17/2009
Posts: 4952
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
I want to make an improvement of the current 100% Wario Land 2 TAS, one that abuses OoB tricks for vault, while the other does not to show more of the game. I reached the train stage, and I have a question. Is going on top of the train considered "Out of Bounds"? It uses the normal exit, and unlike other stages, you can get back to the main are (other stages you get stuck outside if you go OoB). Here's an example of the current TAS route: What the youtube encode will be like: What the level hitboxes are like: Here's if you get on top of the train: What the youtube encode will be like: What the level hitboxes are like: Here's getting on top of the train, then coming back down: What the youtube encode will be like: What the level hitboxes are like: Which one of the above would be fine? As a comparison to the above, this is how using OoB would look like. I would've completely skip this section as follows: What the youtube encode will be like: What the level hitboxes are like:
Judge, Skilled player (1288)
Joined: 9/12/2016
Posts: 1645
Location: Italy
I think movie differences should be maximized. So I suggest to avoid getting out of the train for the no-OoB version.
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"
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11268
Location: RU
I don't see significant difference between the way you clip for a bit and the way you clip for the whole level. So it looks like a similar OOB technique, which would look out of place in a run that avoids OOB.
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.
InputEvelution
She/Her
Editor, Player (13)
Joined: 3/27/2018
Posts: 166
Location: Australia
So this is about something that I don't believe is currently possible with the tools available from what I understand, but I'm nonetheless curious as to how submittable it would be in theory. Sonic Adventure 2 Battle has an option to download one of the Chao in your garden to one of three Sonic GBA titles (Sonic Advance, Sonic Advance 2 and Sonic Pinball Party), in which you can interact with it in the Tiny Chao Garden. You're actually able to upgrade its stats in this setting by buying it fruit with the rings you've collected in those games, which helps for the Chao Races and Chao Karate, which you need to get a Chao through all of in order to get all 180 emblems and have reached 100% completion. Phantasy Star Online happens to have an obscure easter egg where you're able to locate a Chao, and by completing some quest or mission (I'm not sure what the full specifics are) you're able to also unlock the Tiny Chao Garden and download it to one of the already mentioned GBA games. The difference is that in this setting you get a Tails Chao with the garden (otherwise inaccessible in SA2B), which already has a certain amount of stats towards various areas that become important during the races (and maybe higher grades that help with levelling up those stats too?). This means that the fastest way to 100% SA2B in a TAS would theoretically be to start a TAS of Phantasy Star Online and one of the Sonic GBA games at the same time, with Phantasy Star Online working as fast as possible to unlock the Chao while rings are farmed for buying the necessary items for levelling up Chao in the GBA game, download Tiny Chao Garden with Tails to GBA, level it up while the SA2B TAS continues to move through with everything except the Chao stuff, move the Tails chao off the GBA and into SA2B, level it up further (if even necessary by this many hours), and continue from there. If the necessary TAS tools for such a complex method of completion were to be added in the future, would it be acceptable for TASVideos? I suspect the precedent here would likely be that all 100% completion work has to be completed within the game the goal of 100% completion is for and that game alone, but I figured I might as well ask.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11268
Location: RU
Where are you downloading it from? As for multiple games http://tasvideos.org/MovieRules.html#RomImageMustBeIntegral
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.
InputEvelution
She/Her
Editor, Player (13)
Joined: 3/27/2018
Posts: 166
Location: Australia
The Tiny Chao Garden is downloaded from the GC games to the GBA games.
JosJuice
She/They
Editor, Emulator Coder
Joined: 7/3/2010
Posts: 193
Location: Sweden
For reference for those who are unfamiliar with the relevant games, transferring Chao between games in this way is similar to trading Pokémon with a link cable. There has been a TAS published to Moons which uses Pokémon trading, so I suppose the concept in general is something which at least can be accepted to Moons. There are however the important differences that in this case you wouldn't be playing two copies of essentially the same game but rather three entirely different games, and that you (presumably) wouldn't be beating all three games but only SA2B. I don't believe the "The ROM image must be integral" rule is any obstacle to this. The developers intentionally made it possible to link these specific games to each other.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11268
Location: RU
Does it mean that actually transferring them across different devices can also be emulated, technically?
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.
JosJuice
She/They
Editor, Emulator Coder
Joined: 7/3/2010
Posts: 193
Location: Sweden
Yes. Dolphin and VBA-M have support for GC-GBA communication, but the current code for it is very spotty even for casual use and impossible to use in a TAS.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11268
Location: RU
They'd still be able to just write and read files from disk, similar to how save files are usually handled? It this process inherently interactive and parallel on a real device?
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.
JosJuice
She/They
Editor, Emulator Coder
Joined: 7/3/2010
Posts: 193
Location: Sweden
feos wrote:
They'd still be able to just write and read files from disk, similar to how save files are usually handled?
I'm not sure what you're referring to here. The games all have separate save files, and these save files are handled like in any other game.
feos wrote:
It this process inherently interactive and parallel on a real device?
Yes. You connect a link cable between the GBA and one of the GameCube's controller ports, essentially the same way as you would link two GBAs up for a multiplayer game. The GameCube can then communicate with the game running on the GBA, or if the GBA is just booting up, the GameCube can send an executable to the GBA BIOS which it will then execute from RAM. (Usually, such an executable contains code for doing further communication with the GameCube.)
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11268
Location: RU
If it's emulated and officially endorsed by the game developer/publisher, we should allow it in TASes. But I can imagine that making a TAS on 2 different consoles at once would be as complicated as judging such a thing. It looks like we only need this setup as a verification movie?
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.
JosJuice
She/They
Editor, Emulator Coder
Joined: 7/3/2010
Posts: 193
Location: Sweden
feos wrote:
But I can imagine that making a TAS on 2 different consoles at once would be as complicated as judging such a thing.
Indeed. I don't think this is going to be TASable any time soon.
feos wrote:
It looks like we only need this setup as a verification movie?
No, you would need to link SA2B to a GBA game during the course of the SA2B TAS.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11268
Location: RU
How would one even sync the 2 movies running on 2 different emulators? I think the link cable setup only works because it's the same emu with one movie, running 2 games.
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.
JosJuice
She/They
Editor, Emulator Coder
Joined: 7/3/2010
Posts: 193
Location: Sweden
I suppose you would need some kind of protocol for ensuring that the two emulators stay in sync time-wise, unless you're going to embed both emulators into one program. (The idea of embedding mGBA into Dolphin has been floated in the past, though more for the purpose of emulating the Game Boy Player than for making GBA linking TASable.)
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11268
Location: RU
If this setup unlocks something unique, it will be allowed eventually. However, I can't guarantee that including other games into the same movie will be considered vaultable full completion. My instant reaction is that it's not worth the insanity and simply doing stuff within the same one game is your best bet. While TASing two different games that are meant to be played together, I don't think we'd allow arbitrary combinations of goals. The same goal in both games would be probably worth considering. Also if an easter egg is so obscure, it doesn't sound like the game is explicitly meant to belong to another game's gameplay?
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.
Joined: 11/4/2020
Posts: 5
I have a slightly unusual TAS that I worked on. It's for a game called Stephen's Sausage Roll, which is a grid-based puzzler. - As opposed to taking the usual emulation approaches (since Windows emulation is generally bad, and I would have to find a way to make the game loop a consistent speed), I wrote an injection which modifies the game's "Read player input" function to return from a buffer (the TAS inputs). This breaks the "No tampering with the files the game is composed of" rule. - The game is written in Unity (which is written in C#), which only generates bytecode for functions after they are called. This means that I can only run my injection on the "Read player input" function only after I start a new game and move the player. This breaks the "The movie must begin from console power-on" rule. I'm wondering if the rules could be bent slightly to allow this submission. For reference, here's a video of World 1: https://www.youtube.com/watch?v=0jklIVuIcX8 and here is a link to the repo, so you can see the code injection: https://github.com/jbzdarkid/SSRDecompile/blob/main/Source/InputBuffer.cpp#L42
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11268
Location: RU
This game seems to have a linux port, does it work in libTAS?
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.
Joined: 11/4/2020
Posts: 5
It does have a linux port, but it's not working nicely with libTAS. I checked the forums, and people are saying that Unity games mostly aren't supported (I suspect due to the complexity of the engine). I'm happy to keep poking at it, but it might be a lot of work to get this started.
Patashu
He/Him
Joined: 10/2/2005
Posts: 4016
Could this be generalized to arbitrarily inject TASing tools into any unity game, or is it SSR-specific?
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Experienced player (633)
Joined: 1/23/2019
Posts: 38
Location: China
If "Rush'n Attack" has pacifism, will it be accepted? I'd like to try to make it if I can
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11268
Location: RU
darkid wrote:
It does have a linux port, but it's not working nicely with libTAS. I checked the forums, and people are saying that Unity games mostly aren't supported (I suspect due to the complexity of the engine). I'm happy to keep poking at it, but it might be a lot of work to get this started.
Please ask Keylie directly, maybe he finds a way to make your game work.
DreamYao wrote:
If "Rush'n Attack" has pacifism, will it be accepted? I'd like to try to make it if I can
It may not look different enough from the regular branch, and it may not be entertaining enough. We had to obsolete [2400] NES Cross Fire "pacifist, no damage" by NhatNM in 05:56.36 because of that.
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.
Joined: 11/4/2020
Posts: 5
Patashu wrote:
Could this be generalized to arbitrarily inject TASing tools into any unity game, or is it SSR-specific?
The hack I wrote is SSR-specific, but the infrastructure isn't. The challenge is that (to my knowledge) most games read *all* keys every frame. This game happens to have a "What is the movement for the current frame" function. Without that, you'd need to keep track of which keypresses occur in which order. Still quite possible, though.
feos wrote:
Please ask Keylie directly, maybe he finds a way to make your game work.
I assume you mean this Keylie? I'll send them a PM.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11268
Location: RU
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.
Joined: 11/4/2020
Posts: 5
Well, I've spent a couple of weeks trying to get this to work, with a lot of help from Keylie. I'm having two main issues: - Playback is inconsistent. Due to the way Unity loads content, stepping over a frame has different impact from just playing the movie outright. (Specifically, if you step and then wait, lag is incurred without any frame cost, but if you play, lag occurs and the framecount increments.) - Savestates aren't working. Due to the way this game is written, it creates and discards threads fairly often (at the start and end of every level, as well as on every menu change). So, along with the other issue, I have to frame-by-frame step from the beginning of playback to work on this TAS. I don't think this is a practical approach for this game -- is there any other option?