Post subject: TwitchPlays Hollow Knight aka PS4 Tool Assisted Superbadplay
Joined: 10/18/2011
Posts: 64
https://twitch.tv/wulf2k Just finished a Salt & Sanctuary run, all bosses downed in record time (for one of these runs). Moved on to Hollow Knight, which seems to be much more challenging due to not simply being able to outlevel everything. The gist is that I've written a TwitchChat parser that converts text inputs to faked controller inputs, which are sent to a hacked RemotePlay app connected to my PS4. After enough time trying to make progress like this, long series of queued commands became the most obvious way to progress. You die/warp/load/whatever, you're at a known starting position. Write a string that will get you to your next objective, regardless of whatever RNG throws at you. You can't control the RNG, you can't control the exact timing of the packets being sent with updated controller info, all you can control is the controller status in PC memory. https://docs.google.com/spreadsheets/d/1QKKXgs7NrLfsTI4IfnenpmR-9LAXmyuniCa-lRqSg_g/edit#gid=0 An outline for our Hollow Knight strings so far. An example string, deconstructed, for those interested enough to read this far: nha,wr,hx,wr,nha,wr,wf,wrx4,hx3,wr-20,sq-10x9,sq-10x9,sq-10x9,wr-15,h,hx,wl,nhx,wlx9|99 nha = release any previously held inputs. Best to start strings with this in case anybody left a "hold button" command on previously. wr,hx,wr,nha,wr = walk right, toggle "hold x" on, walk right, release held inputs, walk right. This walks right and jumps and walks right more. I believe the 'walk' commands are defaulted to one second durations. wf,wrx4,hx3,wr-20 = walk "forward" is a holdover from old games. walk "up" (wu) should work just as well, just hold up on the left analog stick. walk right 4 seconds. hx3 is not actually "hold x" in this context, it's "h" x3, hold nothing for 3 seconds. Then walk right for 20/30ths of a second. sq-10x9 = tap square, release for 10/30ths of a second, do this 9 times. Spam attack. wr-15,h,hx,wl,nhx,wlx9 = walk right half a second, hold still for one second, toggle holding x on, walk left, release x, walk left 9 seconds. | 99 = take the entire preceding string, and do it 99 times. The above string takes you from one of the benches, walks right to kill the first enemy, grabs the coins, then walks back to the bench. It's a terribly slow farm, but safe, and it seems to be what the guys have left running when nobody's actively playing. And here's the first boss being killed, more real-timey than TAS, but an example of how it plays out. https://clips.twitch.tv/CoweringCrispyLobsterCoolStoryBro It's not a terribly efficient way to play, but it's the closest to real-time communal TASing that I've ever seen. Feel free to pop by and discuss or try it out. !controls in chat for a more in-depth explanation.
Banned User, Player (89)
Joined: 8/2/2017
Posts: 89
Location: Brazil
If we could reverse engineer RemotePlay, it will be possible to create TASes on PS4 but with possible desyncs.
Cuphead TASes desyncs unfortunately.
Joined: 10/18/2011
Posts: 64
I have no doubt the accuracy could be improved beyond what I've set up, but the RemotePlay will never offer true TAS-level control. It doesn't truly sync the button presses on any sort of predictable clock. Network delays will always give you an uncertainty factor. That being said, my code's on Github. It would be a fairly simple matter for somebody to look where I hook, and then add a counter and a better input lookup system and feed it the exact same inputs at the exact same request number.