Post subject: TASing multiple emulators simultaneously
MESHUGGAH
Other
Skilled player (1919)
Joined: 11/14/2009
Posts: 1353
Location: 𝔐𝔞𝔤𝑦𝔞𝔯
I've started a little project a few days ago to help AngerFist to record 9 TASes with 1 input. My basic idea was to make a C# app that launches the 9 FCEUX instances and sends the desired input individually. As far as I know, simulating input can only be done by using SendInput (DirectInput) to the active focused window (SetForegroundWindow). Since it doesn't changes instantly, and GetForegroundWindow neither can tell that it was really that window was the active one on that very moment and even other applications could steal focus (or the user mistakenly presses alt-tab etc), I'm not sure is it still a good approach to deal with simulating input rather than changing the appropriate memory values. I'm currently implementing the "Add input to input list" -> "Send input for each FCEUX individually" -> "Check it's really worked" (if not, try again). I also think that... - It could be trouble some to inject code or alter the way FCEUX works. - While reading memory shouldn't be a problem, writing memory could crash the instance. However it wouldn't be troublesome to relaunch it and resume to TASing, and this would also eliminate the "focus" problem (the only way to send "simulated" input). I'm looking for mainly advices and/or thoughts about which approach should be used. edit: a screenshot if you don't understand what I'm talking about
PhD in TASing 🎓 speedrun enthusiast ❤🚷🔥 white hat hacker ▓ black box tester ░ censorships and rules...
Banned User
Joined: 3/10/2004
Posts: 7698
Location: Finland
Not to belittle your efforts in any way, as it's really an admirable work to make a TAS of so many games with one input, but nevertheless I really wish people made more 2-game TASes rather than million-game TASes. (And the 2 games should be chosen as to mazimize the amount of visual synchronization between the two games. The clearer it is visually that the same input is controlling both games, the better.) The problem with million-game TASes is that they are chaotic and extremely difficult to follow. A 2-game TAS, on the other hand, can be really awesome to watch, if well done.
Site Admin, Skilled player (1255)
Joined: 4/17/2010
Posts: 11495
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
How about IPC? Link to video Link to video Warp, this thread does not discuss miltigame tases. It discusses how to make the process of creating them more handy.
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.
MESHUGGAH
Other
Skilled player (1919)
Joined: 11/14/2009
Posts: 1353
Location: 𝔐𝔞𝔤𝑦𝔞𝔯
feos wrote:
How about IPC?
This actually looks like a really good and reliable approach. However never done that before and source code is not available.
PhD in TASing 🎓 speedrun enthusiast ❤🚷🔥 white hat hacker ▓ black box tester ░ censorships and rules...
Site Admin, Skilled player (1255)
Joined: 4/17/2010
Posts: 11495
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
FCEUX support sockets, there must be some docs. Write an app that would generate sockets and send them to fceuxes. Background input would not need to be enabled I believe. Quoting IRC so nothing gets lost: feos: your app would need fceux instances to report success of the last action, and then you would say "Ready" to prompt for new actions feos: or it just won't accept anything before all instances return success feos: "Add emulators" does not look necessary feos: meshuggahTAS: virtual controller might as well poll and return the movie state as an uneditable listvew. say, active frame in the middle, 5 future frames with controller state below, 5 past frames with controller state above. feos: and yeah, you would need to plug controller to your app as emulators allow. so that you could press A+W and Left+Up presses get registered feos: press keys, hit frameadvance. everyone is happy feos: virtualpad would visualize which buttons are pressed with input keys
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.
Mitjitsu
He/Him
Banned User
Joined: 4/24/2006
Posts: 2997
A million TASes at once is an impressive technical achievement, but the outcome is usually less than fun to watch.
MESHUGGAH
Other
Skilled player (1919)
Joined: 11/14/2009
Posts: 1353
Location: 𝔐𝔞𝔤𝑦𝔞𝔯
While I tried to understand coroutines, callbacks and threads, I had no success attempt at making them fully async. Also since I don't use IDE, it's hard to debug force close issues. I hold this project until I get success between 2 instances with full async.
PhD in TASing 🎓 speedrun enthusiast ❤🚷🔥 white hat hacker ▓ black box tester ░ censorships and rules...
Active player (437)
Joined: 4/21/2004
Posts: 3517
Location: Stockholm, Sweden
Warp and Mitjitsu: you are in the wrong thread. Keep off topic posts in a different thread. Meshuggah, I'll try Ans method by sunday and let you know if it worked or not.
Nitrogenesis wrote:
Guys I come from the DidyKnogRacist communite, and you are all wrong, tihs is the run of the mileniun and everyone who says otherwise dosnt know any bater! I found this run vary ease to masturbate too!!!! Don't fuck with me, I know this game so that mean I'm always right!StupedfackincommunityTASVideoz!!!!!!
Arc wrote:
I enjoyed this movie in which hands firmly gripping a shaft lead to balls deep in multiple holes.
natt wrote:
I don't want to get involved in this discussion, but as a point of fact C# is literally the first goddamn thing on that fucking page you linked did you even fucking read it
Cooljay wrote:
Mayor Haggar and Cody are such nice people for the community. Metro City's hospitals reached an all time new record of incoming patients due to their great efforts :P
Banned User
Joined: 3/10/2004
Posts: 7698
Location: Finland
AngerFist wrote:
Warp and Mitjitsu: you are in the wrong thread. Keep off topic posts in a different thread.
I can't help but find irony in that.