Posts for Wulf2k


Experienced Forum User
Joined: 10/18/2011
Posts: 64
I'm a little late on this one, but I'm not seeing the part that makes it not-impressive. No matter what conditions you set the RAM to in the first game, you still need to find a glitch in the second game that will let you execute that pre/un-initialized memory as code, no? At the time of the cart swap, execution ends for the first game and starts up fresh with the second game. If it properly initializes all RAM before use and has no glitches of its own, its safe from this sort of thing. Right?
Experienced Forum User
Joined: 10/18/2011
Posts: 64
Just a few days ago I did a fairly major code update that tightened up the timing on the inputs. Apparently VB.NET just won't get any more accurate than 50ish milliseconds when using timers, so I switched the inputs over to their own thread with more accurate sleeps. It still isn't 100% accurate with single frame inputs, but I believe that any remaining issues are down to network latency which can't be reasonably improved. Eventually I'm going to switch to Arduino acting as a real controller, but I doubt that'll be ready before the run is complete. Two things I've discovered that (to my knowledge) can only be done with this input method and not by hand with a controller are rolling out of a run instead of jumping, and jumping back while running forward, which both involve single frame-presses and direction changes. Even with this they only come out ~50% of the time. As for your question, I think the commands exist already, they're just under-used. 9 degrees of movement on each joystick axis should allow nearly any human-realistic movement once you're used to them. At least for this style of game. If the l-stick isn't quite accurate enough, you can combine it with camera rotation on the rstick to get exactly what you need. Very few of the players take full advantage of this, but it always looks nice when they do. Of course, that's the trade-off between easy to enter, and accurate. Most of them just walk forward/right/forward-right and brute force their way to the destination.
Experienced Forum User
Joined: 10/18/2011
Posts: 64
They've downed a fair few more bosses, but I thought I'd share this one in particular since it worked out so well. https://youtu.be/7i9yrWUgRvU Shadows of Yharnam. It's almost getting to the point where the quotes around "TAS" are optional....
Experienced Forum User
Joined: 10/18/2011
Posts: 64
Some of the guys are beginning to suspect that an inconsistent framerate is the biggest source of strings desyncing. In Old Yharnham, one rather complicated path goes past a bunch of enemies, through a bunch of doors, around a bunch of corners, up a ladder, and makes a jump, before it ends up fine (nearly) every time. Another string runs nearly straight, gets a good view of the horizon and falls off a ledge, only hits the ladder below with about 50% accuracy. That's unfortunate.
Experienced Forum User
Joined: 10/18/2011
Posts: 64
I'd imagine this type of input (stringed together commands) is probably the future of TAS for newer and much longer games.
Have there been any TAS (or TAS-lite) attempts on the newer systems? I'd imagine there should be some RNG-free games that would be ideal for this sort of treatment. Super Meat Boy is coming to mind as something that would probably be perfectly suited for this style of TAS.
Experienced Forum User
Joined: 10/18/2011
Posts: 64
And they just downed Father G https://youtu.be/e3ivK3px6x0 Chat's skill with string input is developing rapidly. Reliably repeatable input strings are being added every time I check back in.
Experienced Forum User
Joined: 10/18/2011
Posts: 64
Well, they just managed to beat the Cleric Beast. Whatever you want to call this, it's definitely.... "something". https://youtu.be/8JTGIbQ1K68
Experienced Forum User
Joined: 10/18/2011
Posts: 64
feos wrote:
You can use them as a bot that mashes random buttons and load some sort of a state and get them enter different inputs until they achieve some special goal for the given segment. For us it's speed. For Bisqwit's SMB bot it was beating the game: The point it a TAS is to rerecord. When you set a goal and do the rerecording, you start superplaying. Now look at the top left corner of this page.
Yeah, calling it a speedrun was a rookie mistake. I should know better. And you're right about the randombot aspect. It's a fun social experience mixing and matching other people's strings to see what shakes out. One of the members had actually programmed his chatbot to spit out random commands for a bit. Most of it's garbage, but there are a few neat sequences that can be reused to reposition consistently.
Experienced Forum User
Joined: 10/18/2011
Posts: 64
This is strictly console verified, as it's the PS4 that's accepting your commands. Right?
Correct. Edit: Sorry, mostly correct. It's the PS4 that's accepting my commands, but it's accepting them through the PS4 remote play app. So, console verified, not controller verified?
One thing I am curious about is whether inputs can be recorded and played back using something like this. You know, pull out that controller, do some actions, then reset the game back to a known state and see if whatever program you had recording the controller can play it back flawlessly.
Currently, it's not 100% because I'm hacked into the Remote Play app instead of the controller directly. Minor network delays are enough to throw off complex commands, which can mean the difference between just barely missing an obstacle or clipping it, and changing your angle. That's why my future goal is to Arduino the controller input to the console directly instead of through Remote Play. If you craft the commands with a bit of flexibility they're rather repeatable. I looped one sequence of commands about 20 times last night that would jump off a cliff, kill a guy at the bottom, climb the ladder, warp out, and warp back in, with perfectly timed delays so that you could jump back off the cliff and catch him at the some point in his patrol for a loop. The loading times are surprisingly consistent. No noticeable difference in the amount of time between the loading screen ending and the commands beginning during that loop. I started trying to parse screen data a few days ago but need to improve my skills there. My method of trying to grab pixel data was far too slow to do anything meaningful with. Edit:
One thing I am curious about is whether inputs can be recorded and played back using something like this
To address this specifically, it could be. I'd have to tweak the format a bit, and maybe hook between the controller and ps4 to round the stick's values a bit so that the command buffer isn't filled faster than the Twitch chat could possibly update, but it should work. It would probably work much better to get rid of the Twitch component entirely, but that would be a rather different experience. Maybe once it's done I can refine that aspect of things a tad.
Experienced Forum User
Joined: 10/18/2011
Posts: 64
Chat provides a comma separated list of inputs and frame durations which are then fed to the PS4. Everybody then watches them play out with minimal ability to affect the outcome. It's primitive, but I'd say it's no less tool-assisted than any other TAS. For example, here's the latest input string they used to reach and attack the first boss. I'd argue that the tool that parses and feeds this input to the PS4 is assisting.
noholdo, c7155-1, holdo, c7155-13, c6155-15, c4155-39, c7355-30, c7155-15, c5155-38, c2155-10, c1155-25, c5155-22, noholdo, c7555-22, llx2, holdo, c6155-25, c8155-37, c5155-55, c7155-18, c5155-35, x, wfx4, noholdo, r3, xx2, rof, r3, r1x3, rof, r3, r1x3, rof, r3, r1x3, rof, r3, r1x3, rof, r3, r1x3, rof, r3, r1x3, rof, r3, r1x3, rof, r3, r1x3, rof, r3, r1x3, rof, trix2, r3, r1x3, rof, r3, r1x3, rof, r3, r1x3, rof, r3, r1x3, rof, r3, r1x3, rof, r3, r1x3, rof, r3, r1x3, rof, r3, r1x3, rof, trix2, r3
As for speedrun, yes, it's definitely a poor speedrun. But I believe the term TAS has been applied to quite a few runs that don't go for speed. Anyway, if nobody's interested that's fine, it's just the closest thing to a TAS that the PS4 is going to be seeing any time soon.
Experienced Forum User
Joined: 10/18/2011
Posts: 64
Let me know if this isn't appropriate for the forum and I'll stop posting / delete it Here's a video of an input string that reaches the first boss from the CY lamp. https://youtu.be/J48PGP8bYhU New command list now includes c####-##, where each of the first 4 numbers is a value for pressing each analog stick axis, with the last ## being a rough number of frames to hold it for. I was also able to work out a command string that would walk from the hunter's dream lamp-post, warp to central yarnham, wait an exact duration for the loading screen to finish and then kill the patrolling guy at the bottom of the ladder. The loading screen gave me both a consistent time and position reference, so the randomness of his patrol position was removed. It's getting slightly TAS-ier, even though I'll never be able to truly control the RNG.
Experienced Forum User
Joined: 10/18/2011
Posts: 64
TAS = Twitch-Assisted Speedrun Something? So anyway, this isn't exactly what you guys normally go for, but I figured it had morphed into something that was close enough that it might catch the interest of a few of you. http://www.twitch.tv/wulf2k/ http://wulf2k.ca/bb-commands.html I've got a bot monitoring the Twitch chat for command strings which it will then feed to a hacked "PS4 Remote Play" app with as close to frame-precision accuracy as it can manage through the network. ...Which sadly, isn't really that accurate, but close enough that a command string can usually be repeatable over a few tries. Example sq, x - This will return the character to the last used lamp, providing us with a consistent starting point. lr, hlrx7, wfx2, wfl, wfr, flong, hwf, hwbl, wf, llx3, xx2, r3, x, r3, hllx3, flong, wf, wfr, wf, wfl, wfx2, ll, wfx2, wflx2, wfr, wfx3, wfr, wfl, wfx3, hwfr, hwfl, lrx4, r3, r1x4, r1x4, r1x4 This is the latest string of commands I just pulled from what the guys are working on in chat. From the Central Yharnam lamp, it will fairly reliably end input in a safe spot semi-near the shortcut gate, and they're adding to it from there. The commands were initially created for my TwitchPlaysDemon'sSouls run, then adapted for DarkSouls. On those systems I was able to modify the executable file and feed it an exact number of frames to execute that controller input for, then pause execution to await new input. That worked well enough. (Update: They just opened the shortcut. Yay progress.) So anyway, without the ability to pause the game and adjust to what you see after the Twitch stream catches up, it's become far more of a TAS-style run where people are trying to enter an entire string that will accomplish a goal. Tonight I'll be adding more commands to give a more granular level of control over the inputs, something allowing you to specify more exact analog stick values with a frame-duration to hold them for, instead of just using the preset values I assigned to commands when I first set things up. So long story short, that's a thing that people can do right now. Feel free to stop by if that's your cup of tea. The options menu and ability to use blood vials are restricted to people that have stuck around long enough to prove they're not just trying to troll the run, but everything else is available to anybody. On a more technical level, my next "wish upon a star" level of improvement is to get around the Remote Play app's inherent level of delay and hook up an Arduino to either the PS4 directly, or just breadboard it into a PS4 controller and press buttons as directed. If there's anybody that's familiar with any of the console-verification bots I'd be interested in hearing their input on a PS4 equivalent device.
Experienced Forum User
Joined: 10/18/2011
Posts: 64
And if anybody is familiar with Yabause, how do I do the whole 're-recording' thing? I can get the movie recording, but say I want to go back to a certain frame and alter it, then keep recording from that point on, how do I go about it? Also, the OSD is backwards and upside down. Does anybody else have that issue? Makes it a bit difficult to tell what frame I'm on.
Post subject: Dragon Force
Experienced Forum User
Joined: 10/18/2011
Posts: 64
I doubt I'll follow this through to completion, but I created an account here to toy with the idea of doing a Dragon Force TAS. Is anybody familiar with any of the hidden mechanics / formulas of the game? Or just interested in the game at all?