Posts for oxysoft


oxysoft
He/Him
Experienced Forum User
Joined: 9/27/2015
Posts: 48
what an interesting mechanic https://youtu.be/9b2mczdQva0 So it's possible to rotate and sidestep while activating a switch but here's the kicker: the game checks if there's a switch near your when you press square, then checks it again a dozen frames later when actually activating the switch.
oxysoft
He/Him
Experienced Forum User
Joined: 9/27/2015
Posts: 48
Warepire wrote:
Nice. Question: In the glitched training text box state, can you jump? There's a trick with the text box you demo'd, and that is that you can jump before it triggers, and land on the moving platform, closing the text box as you wait to be able to jump the next gap. Or would this trick make the above mentioned trick obsolete?
There is a byte that freezes character inputs (so anything but the two camera related shoulder buttons) and using this new trick makes it so that this byte is never set to 1, so it does indeed obsolete the trick you mentioned. That is, only for the non npc text boxes. As explained in the post for this trick, the "cancel chat" byte is set back to 0 when you talk to another npc, but not for non-npc text boxes. Although I didn't mention it in my first post, this trick can obviously be used with the npc at the end of the jumping course to skip the other text boxes later (assuming the drill sergeant is skipped) Edit: Actually, you stop for 3-4 frames when the box is triggered but you don't stop when you jump so I think it might be worth it to jump when it is activated to save these frames. But since you move slower in air, it may not be worth it. Also, it's decided: skipping the grape key for the castle basement will softlock the game when coming out. Getting out of the catacombs without beating Clarence will also softlock the game. I haven't found skips for those two, I just changed my coordinates in memory to test it. No need to search for skips for these areas anymore. I think I will begin TASing the start (pre-sea town stuff) because it's highly unlikely that the route will change.
oxysoft
He/Him
Experienced Forum User
Joined: 9/27/2015
Posts: 48
Warepire wrote:
oxysoft wrote:
I found a really cool trick just now which will save about a second and can be done RTA. https://youtu.be/xu54YyfngUU I wasn't quite sure how this happened at first so I loaded up no$psx and IDA and analyzed the assembly until I realized something interesting. When you go through optional text boxes in the game, (i.e talking to side npcs) you can press triangle to just end it there, rather than having to go through all of it. I noticed that if you press triangle at the end of a chat with an npc, this byte which indicates that the text must end prematurely lingers and stays enabled. It only gets set back to 0 when you talk to another npc. What is nice however is that the training text boxes do not set this byte back to 0, and thus, Kingsley is able to walk again as soon as the text boxes begin to display. Finally, speeches that are unskippable, (i.e old wrinkle in the room prior) will accept the triangle input right at the end, meaning you can set this byte at the end of an unskippable speech. tldr just spam triangle (or learn to time it) at the end of Old Wrinkle's speech in the room before and you'll be free to walk during the training text boxes.
This solved the scenario I found once with the arrow pickup text box during the training. See the SDA thread.
oxysoft wrote:
And I'd be down to fill a wiki page for this game if the admins give us one
Request one on IRC, and also request to become an Editor so you can update it.
The wiki page has been created and I have started to add some content http://tasvideos.org/GameResources/PSX/KingsleysAdventure.html Coming up, it might be interesting to investigate the intrinsic details of all these clips and upwarps. (i.e the perfect angles for the 90 degree corner upwarps, when to jump when getting hit, etc.)
oxysoft
He/Him
Experienced Forum User
Joined: 9/27/2015
Posts: 48
I found a really cool trick just now which will save about a second and can be done RTA. https://youtu.be/xu54YyfngUU I wasn't quite sure how this happened at first so I loaded up no$psx and IDA and analyzed the assembly until I realized something interesting. When you go through optional text boxes in the game, (i.e talking to side npcs) you can press triangle to just end it there, rather than having to go through all of it. I noticed that if you press triangle at the end of a chat with an npc, this byte which indicates that the text must end prematurely lingers and stays enabled. It only gets set back to 0 when you talk to another npc. What is nice however is that the training text boxes do not set this byte back to 0, and thus, Kingsley is able to walk again as soon as the text boxes begin to display. Finally, speeches that are unskippable, (i.e old wrinkle in the room prior) will accept the triangle input right at the end, meaning you can set this byte at the end of an unskippable speech. tldr just spam triangle (or learn to time it) at the end of Old Wrinkle's speech in the room before and you'll be free to walk during the training text boxes.
Warepire wrote:
You don't need to actually put the videos into video tags, also, for all these, please make bk2s that start from save-states and demonstrate them with input, to host next to the YT videos. This is also starting to build up to be enough information to give the game a Wiki page.
You don't really need to see the inputs, video should be good enough to reproduce these tricks. I'm definitely going to record the inputs though once I build up enough courage to fuck with the more enigmatic and rare spider clips. And I'd be down to fill a wiki page for this game if the admins give us one
oxysoft
He/Him
Experienced Forum User
Joined: 9/27/2015
Posts: 48
Ok guys, I found a new way to clip into walls, which opens up many new skips. Not only were we able to clip into sharp acute angle corners before, but when a tall enemy is available, we can also clip through 90 degree angle corners. The following skips were performed with this strategy. https://youtu.be/Bf741W84I48 https://youtu.be/VmVNkV7ALuM https://youtu.be/MEmDzinccrc https://youtu.be/C1QyIEcQgAc https://youtu.be/1bE1s38QxNY Note: skipping snuff actually softlocks the game. The room with Lucy doesn't have a warp out trigger when you don't have the fork and knife from Snuff. Why is that even a thing? No idea. What if that warp out trigger was simply moved someplace else in that map though? Some memory inspection might be interesting. I've seen it happen though: monsters around me instantly dying unexpectedly, for no apparent reasons, when I clipped in walls. What if the same was applicable for a boss ?!? Would we even get the true knight sword and gloves if we didn't have the fork and knives? so many questions ... 90 degree corner clip instructions Now I shall explain how it's done and I'll give an example rather than a general case explanation, should be easier this way. It's a bit harder than the acute corner clip but once you get it down, it's actually not too hard to do at all. This is our corner
   A
--------|
      ^ | B
      0 |
    M   |
I have labeled the two sides A and B, and kingsley is the little zero. The arrow above him signifies his orientation obviously. Finally, M is the monster. In this example, we'll assume we'd like to clip into B. To clip into A, simply invert the settings I am explaining here. Note: it must be a tall monster, these give good knockback. Spiders, crabs etc. have worked ONCE for me and in 30 minutes of testing after that, it never happened again. This goes without saying that we must study small monster clips more for the TAS. I should probably record the inputs when I'm testing this stuff... Now, the trick is to sidestep towards B while running into A. Thus, you are seemingly smudged in the corner. Simply jump while the enemy is attacking you. It might be good to freeze your health while you practice this so you don't keep dying. After doing it a few time, you'll realize the timing and it becomes quite a reliable way to clip. It's a good clip for speedruns. ------------------------------------------------------------------------------------------- The third dungeon 1. Behind the mayor's house, is a slanted hill which lets you clip into the house, but you get warped on top of the house before you can hit the loading zone. It could be possible however if we found a way to stop the warping. 2. There is unfortunately no skip to quickly get into the catacombs, but there is a way to shorten this. In the second dungeon, there is a grape key early on that can easily be skipped with the new skip presented in this post. (haven't tried) The idea would be to perform the rare pineapple key skip at the beginning with the spiders, then skip the grape key as well. Now, that grape key is easily obtained by stepping on two pressure plates which are needed anyway because they spawn the spiders. So we could theoretically snatch the grape key then skip the next two gates, and use that grape key to activate the door to catacombs early, but I have no idea if the game actually reuses the same key item or simply applies the same sprite to two different key items. 3. To activate the battle with Clarence you actually need to get the three ingredient items, so there is no way to skip them. I wonder if we were to exit the catacombs early, if it would register as having beaten Clarence. There is no easy way to get up to the exit easily though. No magic corners and no good monster for the 90deg corners. The only monsters we have are small monsters, with the same type of knockback as spiders and crabs. There may be an incredibly hard clip that is possible with them but I have no idea. 4. If we can't clip up there, we can at least use sub-skips to quickly gather the ingredients. If you jump onto a pickup item (key, ingredient, etc.) from way up above, you don't actually die, it cancels the death and you are able to live. The room with the caged green leaf has an interesting skip which I will upload later if I can all successfully perform it. First, you use the hammer guys to clip on the walls. These walls extend up to 10000 units high, the same as some other walls we've seen in this game. So from there, jump onto the item and survive. Now, you would think there is no way out but after tinkering with the idea for a bit, I came to the interesting realization: the enemies in that room are a perfect match. When you are inside that cage, they will attempt to hit you from outside. Their hammer extends way into the cage, and it's possible to clip back up the walls. In fact, I have done it once this morning. Assuming we don't have another case of adjacent wall that is much lower, we should be able to walk these high walls and drop back onto the loading zone. By the way, this forum should have spoilers that you can reveal and hide like on other forums, so you could put videos in them and it wouldn't load them until you actually expand it. This page is starting to load slowly with all the videos ...
Warepire wrote:
oxysoft wrote:
I'm gonna conclude today's hunt with the route for the slime room, combining Warepipe's early cloud checkpoint strat and a new skip.
You too? congratulations...
Hahaha, that's how the guy on the SDA forum called you so many times so I must have just copied that into my memory
oxysoft
He/Him
Experienced Forum User
Joined: 9/27/2015
Posts: 48
I'm gonna conclude today's hunt with the route for the slime room, combining Warepipe's early cloud checkpoint strat and a new skip. https://youtu.be/PR1ggaxKYMg It's doable with one enemy and clipping through the wall from a hit, as shown in the video, but it's easier when the second enemy arrives and proceeds to shove you and the first enemy UP the wall (not through!) What's interesting though in this one is that I clipped through a 90 degree corner using just a hit from an enemy, which I didn't know was possible before this. I thought you always needed to bunch up 2-3 mobs into one spot so you get pushed out. I might go back and check if I can skip anything else using these enemies. I did try clips like this earlier using crabs and spiders but I don't think these shove you far enough to actually clip through.
solarplex wrote:
unreliable during an RTA, but not for a TAS :P
Absolutely. I'm just mentioning in the case that anyone would be interested in these strats for RTA. edit: I was able to clip twice through the wall with the pineapple key lock using spiders spawned from the two pressure plates for the grape key. It is insanely difficult and consisted of me just running straight into the wall, hoping for a miraculous spider hit. I *believe* it might have to do with the twitching when you run into the corner. I must have had the perfect angle and got hit the very frame I twitched partially inside the wall. The first time, I believe there was only one spider so the amount of spiders shouldn't matter. In any case, this must be studied more because it would be an excellent skip (would save around a minute or two) and could open the door to more such clips. The corner used is a very obtuse angle which contradicts the earlier assumption that only very acute angled corners are fucked. It goes without saying that this is TAS ONLY, no way in hell would it be viable for RTA.
oxysoft
He/Him
Experienced Forum User
Joined: 9/27/2015
Posts: 48
Warepire wrote:
oxysoft wrote:
By the way, the first post mentions a zip glitch but the recording of it is gone.
You've done amazing progress so far, I did not dream of the game being this broken, I suspect there are many places in dungeons where things can be skipped thanks to this, you might want to play with slanted walls (if there are any) in the Root Beer Monastery cellar. This could potentially skip the entire dungeon (don't know what that would do to the game-state though).
I already had a feeling the collisions in this game were fucked from my hunt a couple days ago with the stone block, all that remained was to find ways to exploit it. Diving into the first dungeon, I found another skip using the fish guys. This one isn't very hard to do RTA but it's unreliable as hell. https://youtu.be/c8969WJ_guM Not only is it unreliable, but enemies can actually clip onto that ledge with you and push you off, as seen in this video. Oddly, they can also die instantly when they clip into the wall as well. Edit: Found a way to softlock the game https://youtu.be/oAdNdgKhkBo
oxysoft
He/Him
Experienced Forum User
Joined: 9/27/2015
Posts: 48
solarplex wrote:
Any corners in the first room that will allow you to clip up and out? (couches, desk, bed)
Any of those would be slower. Talking to her takes around one second since you can just spam X and O to go through the text really quickly. However, I do have some extremely awesome news. Using my newfound knowledge of slanted walls, I began searching for more of those. And there just so happens to be one that is conveniently placed in the grape key room! As to actually performing it, this one is much less RTA friendly. It requires a more precise angle because there's actually room on the other side, here You just end up on that side if your angle of attack is too direct. Instead, you need to shift it a bit once you get inside the wall. Once you're up there in the ceiling, the path to the loading zone is much further than training room skip. I have not performed it yet, and there's a good chance that it will softlock the game instead when coming out if the grape wall doesn't go down. edit: It's impossible. The second wall you'd have to jump on doesn't extend up into the sky so you can't stand on it. We'd have to find some new strat to make it possible
oxysoft
He/Him
Experienced Forum User
Joined: 9/27/2015
Posts: 48
solarplex wrote:
Nice finds! Keep on finding those skips! :)
Thanks, this is my first steps into the world of TASing and it's been fun so far to search for exploits in a game that is still relatively unexplored. Adelina skip (skip the shield) https://youtu.be/P4Q-G6Ci3oI This is actually slower than talking to her because it requires a steep angle (her trigger zone is too wide) and thus, a slow setup. It doesn't seem like it has any impacts on the game later as well so it doesn't really save time anywhere else. I still uploaded it for archival purposes however. What's funny though is that the shield only serves as decoration. If you play further into the game without it, you can block hits just fine with your arms.
oxysoft
He/Him
Experienced Forum User
Joined: 9/27/2015
Posts: 48
this just happened https://youtu.be/XYL5LOhMpiY drill sergeant skip hype. Very easy to do RTA as well: simply run into the statue at this angle, jump and let go of the stick so you don't accidentally jump out the level and die. You'll be at the top and free to walk along the walls from there edit: not only drill sergeant skip it seems https://youtu.be/nrlV98qj6s4 This wall's collision hitbox actually shoots way up into the sky, which is why the screen turns black. The trick is to walk along the other invisible collision boundaries that are shooting into the sky near you, and then jump into the loading zone. Another interesting fact is that if you jump behind the wall where the jumping training was, there is no loading zone because the game never expected kingsley to be able to get there Note that these skips are possible because the walls are slanted. Any object like this placed right next to a slanted wall should allow a similar clip. There is an exception to this however: In the same room with the drill sergeant, there are two carrots on both sides of the room, both next to perpendicular walls. I wasn't able to redo it but by running straight into them and playing with the side stepping, I was able once to jump out of the world. I'm gonna play around with it some more because it could prove to be essential to some other skips. edit2: It it possible to skip the Armorer at the end with VERY precise jumping and sidestepping. (jump diagonally to the wall of the small warp cabin/room then sidestep in the air so you land right outside of the npc's trigger circular zone) This means he does not take the dagger back but it also means another thing: Old Wrinkle does not show up in the room after and the storyline does not advance, meaning that the king does not give you the grape key. If a skip was found for this key, this would be the potential route for the start: 1. Progress normally, until the fight against the drill instructor 2. Clip into the sky using the statues 3. Jump down onto the load zone 4. Progress normally (perform glitch to skip one of the tutorial dialogue from the movable rock statue?) 5. Armorer speech skip (assuming it doesn't completely halt the storyline) 6. Grape lock wall skip Here is a video of the armorer skip https://youtu.be/0cHUPoDG5xQ Again, completely out of reach for RTA. The angle has to be perfect and while it may not look like it, I'm completely hogging the npc's trigger circle
oxysoft
He/Him
Experienced Forum User
Joined: 9/27/2015
Posts: 48
Warepire wrote:
Been meaning to look into this game from a TAS standpoint, there's a lot of information from people that have tried this RTA. Look here: https://forum.speeddemosarchive.com/post/kingsleys_adventure2.html Edit: I had forgotten I started making a RAM watch for this game, doesn't contain a lot of values, but it's a start. Here: http://tasvideos.org/userfiles/info/26109395001919905
Very nice, I wasn't aware of that. I'll have to spend some time to sort through all of that and study these strats. By the way, the first post mentions a zip glitch but the recording of it is gone. Edit: Old Wrinkle can be skipped at the very beginning but I couldn't find any use to it
oxysoft
He/Him
Experienced Forum User
Joined: 9/27/2015
Posts: 48
By positioning yourself in a slightly angled orientation opposite to the load zone, you can fuck with the AI, like this https://www.youtube.com/watch?v=Jm1L1iTpVzE This should be used in the TAS for entertainment purposes
Post subject: Kingsley's Adventure
oxysoft
He/Him
Experienced Forum User
Joined: 9/27/2015
Posts: 48
I was disappointed to see that there was no interest in TASing this game yet, so I decided to create this thread and hopefully attract some of the folks that might remember this game from when they were a kid. I am currently looking for glitches and skips that could be taken advantage of before routing anything. If nothing is found, I don't know if it'll be entertaining because it's somewhat slow sometime. However, anyone who has played this game before could very well be interested in seeing it get destroyed due to how awful the controls were in this game. I played around with the block of stone that you can move around during the tutorial at the start and it seems that one of the corners is shifted a bit, as you can see from this picture It only applies to collision with the level. Doesn't seem like it'll have any use however. Any other finds are to be posted in this thread
oxysoft
He/Him
Experienced Forum User
Joined: 9/27/2015
Posts: 48
got4n wrote:
JosJuice wrote:
oxysoft wrote:
About the DTM I shared earlier, the version I was using was Dolphin-r7161.
I assume you mean 4.0-7161? The r numbering scheme hasn't been used for a few years, and the new versions shouldn't be confused with old versions that end in the same number. Also, yes - there are definitely things that Dolphin lacks from a TASing perspective. Progress on TAS-related things is unfortunately slow, but I appreciate you and others writing about what's bad with Dolphin so that we're aware that there's work to be done.
And seriously, implementing a complex language on Dolphin is easy? I think you've made a mistake, if it was so easy it'd have been long time since it would've been implemented. nonono it's way more harder than you think, don't think that fixing bugs in a program is that easy.
I'm sorry? I have a few years of programming under my belt and this experience enables me to make accurate judgements about the difficulty of implementing or fixing certain bugs. "implementing a complex language on Dolphin" as you put it actually isn't all that complicated. No sane person is going to implement their own lua parser/interpreter. There are libraries already available for that that will take this weight off of your shoulders and it becomes as simple as adding a few hooks within the emulator's core, and providing certain utility objects with functions which in turn call c++ methods for various operations like drawing stuff on screen or accessing the game's memory. Dolphin is a great GC and Wii emulator, and it is very accurate. I have already established that in my earlier posts. I'm not attacking the developers or the emulator, I was simply stating the discomforts that I have had trying to use it for TASing. Say what you want, but its TASing features are far from being perfect and could use a lot of polishing. Your replies are coming off as highly passive aggressive by the way, and I don't see the need for that.
oxysoft
He/Him
Experienced Forum User
Joined: 9/27/2015
Posts: 48
Defend it all you want, but the fact remains that it isn't a very good specialized TASing emulator. It's a great emulator, but when you compare it to Bizhawk and the likes, it's hard to say nice things about it. Adding on what I said earlier, it doesn't have a lua scripting interface, (nor any for that matter) and that's pretty major. Well, if it did, it would enable manual on-screen ram watches assuming that they follow the standards established by other emulators so they should at least look into implementing this feature. If they want Dolphin to be usable for TASing, then they should take the extra steps to provide the all of the expected tools needed for the job. Maybe I'm expecting too much by comparing it to Bizhawk; After all, TASing back in the days was only savestates, so maybe I shouldn't complain. The aforementioned things in my previous posts and this one however are pretty simple things to implement and would make one's TASing experience with Dolphin that much more enjoyable. I'd do it myself and make a pull request or something, but I don't know C++. About the DTM I shared earlier, the version I was using was Dolphin-r7161.
oxysoft
He/Him
Experienced Forum User
Joined: 9/27/2015
Posts: 48
Spikestuff wrote:
oxysoft wrote:
How do you even have the patience to do 2 players?
Do not focus on a single player TAS for this game... unless it's for test purposes.
What's the rationale for any% though? Of course it is faster with 2 players, but just as there are 1 and 2 player speedruns categories, I don't see the problem with having both a 1 and 2 player tas
oxysoft
He/Him
Experienced Forum User
Joined: 9/27/2015
Posts: 48
Spikestuff wrote:
Link to video Don't even start complaining about this being not optimal. It's a test TAS, I'm not going to give a single shit about this entire thing. I'll be releasing these stage by stage I guess.
Very nice! On the second ball, I thought you somehow manipulated Dingodile to pulse the ball until I realized he wasn't a cpu... Makes me wonder if that would even be possible. It would only really be worth it for the far end cpu but I doubt it is possible, I'm pretty sure the CPUs were programmed in a way that makes them unable to hit a ball as soon as it comes out. How do you even have the patience to do 2 players? It's not too bad with the Ballistix stages but it'll be something to TAS some of the later ones like the fighting ones, and the pogo stages where there is a set time and you can't make it go any faster (where single player wouldn't waste any time!) I decided to move my researches to a more organized google spreadsheet. I'm starting to think that this lua tas minimap i'm making might not be as useful as I previously thought. I'm still hunting for AI logic though, and that would certainly be very useful if it were to be displayed on the minimap. I found the rng cycle in memory also which is an interesting piece of information. Some of the inputs sometime do not cycle the rng and display this number can be helpful in quickly determining if an input had any effect. I found the subroutine used to generate numbers in range [0, n[ (standard nextInt(int n) function) as well and it begins at 0x00015590, n is stored in r7.
oxysoft
He/Him
Experienced Forum User
Joined: 9/27/2015
Posts: 48
This is going to be great, someone should post this on the pixeljoint forums; There lots of highly talented pixel artists there who love weird restrictions. Could be worth a mention on the wayofthepixel forum as well
oxysoft
He/Him
Experienced Forum User
Joined: 9/27/2015
Posts: 48
got4n wrote:
oxysoft wrote:
niamek wrote:
Epic. :D However, I have some ideas. When you run, did you try to do something like that: 1st frame:Jump 2nd frame: Float 3rd frame: Turbo(Or whatever they are called. Change the frames if it's too early to roll. Instead of running some distance, you're "turboing" by rolling always? Concerning the first, did you try the others slides? Having played that game too often, I know by heart the races. The slides are much faster than running(provided there is no speed pannels) I noticed some things that might be improvable in the first race. The second too. But hey that was epic. Will definitively follow if you do continue, which I hope. :)
The earliest you can hover/fly after a jump is the 8th frame unfortunately, but it is still faster in places where you would normally walk a long distance, to jump and cancel your y-velocity by floating for one frame after the 8th that is. If the distance is too short however, your net gain will be lower since your velocity is lower while you are in the air. When I go back to this game eventually, I will calculate exactly how many frames you have to be rolling to make it more worth it than simply walking. I really want to go back to this game but Dolphin is such a bad emulator for TASing: desyncs, buggy frame advance, doesn't re-rerender when loading a savestate but only the frame after, shitty ram watching (can't see float values, entire software crashed when I deleted a watch ..?) etc... From a programming standpoint, these should be fairly easy fixes, save for the desyncs of course. In the meantime, I am doing work on and reverse engineering Crash Bash for a possible TAS.
"I really want to go back to this game but Dolphin is such a bad emulator for TASing: desyncs, buggy frame advance, doesn't re-rerender when loading a savestate but only the frame after, shitty ram watching (can't see float values, entire software crashed when I deleted a watch ..?) etc..." "desyncs", NO. Dolphin became much more stable espicially in GC, I'm pretty sure it's because you kept Dual Core and Idle Skipping ON and you're on HLE. "buggy frame advance" Just take 4.0-5400, was said million times. "ram watching" just use cheat engine, I can see the speed of characters atm actually
I did have dual core and idle skipping turned off for the recording of these movies. I never had a problem replaying these movies from start to end UNTIL I played some ssbm on netplay with a friend as well as rayman arena alone casually to get a feel for the rest of the levels and see how I'd be routing some of them in advance. From that point on, Dolphin never played any of my Rayman Arena movies correctly anymore. It desyncs in a very peculiar way as well. First I tried playing my movie from the start of the third race and it would play somewhat fine for the first second, but then my character would step on the speed pad and although the inputs for the Y button were showing up on every other frame, the character never received those inputs (no smoke clouds of speed etc.) Otherwise, when I play the movie from the beginning, it seems to happen very early in the game (pre-start menu) and the game is 2 frames late when it arrives on the memory card menus. (the one were you can format etc.) In my movie, I usually go down twice then pick "continue without saving" but because it is 2 frames late, it only goes down once and then presses A on "format"... Here is the movie file, see if it plays for you and it might just be me https://drive.google.com/file/d/0B1BJqPPfhZhdQjQ2dWp2ZjVURzQ/view?usp=sharing And yea, about the ram watch, I did end up building cheat tables but it's already bad enough that it had gotten to that, it doesn't excuse the fact that Dolphin has shitty ram watches
oxysoft
He/Him
Experienced Forum User
Joined: 9/27/2015
Posts: 48
niamek wrote:
Epic. :D However, I have some ideas. When you run, did you try to do something like that: 1st frame:Jump 2nd frame: Float 3rd frame: Turbo(Or whatever they are called. Change the frames if it's too early to roll. Instead of running some distance, you're "turboing" by rolling always? Concerning the first, did you try the others slides? Having played that game too often, I know by heart the races. The slides are much faster than running(provided there is no speed pannels) I noticed some things that might be improvable in the first race. The second too. But hey that was epic. Will definitively follow if you do continue, which I hope. :)
The earliest you can hover/fly after a jump is the 8th frame unfortunately, but it is still faster in places where you would normally walk a long distance, to jump and cancel your y-velocity by floating for one frame after the 8th that is. If the distance is too short however, your net gain will be lower since your velocity is lower while you are in the air. When I go back to this game eventually, I will calculate exactly how many frames you have to be rolling to make it more worth it than simply walking. I really want to go back to this game but Dolphin is such a bad emulator for TASing: desyncs, buggy frame advance, doesn't re-rerender when loading a savestate but only the frame after, shitty ram watching (can't see float values, entire software crashed when I deleted a watch ..?) etc... From a programming standpoint, these should be fairly easy fixes, save for the desyncs of course. In the meantime, I am doing work on and reverse engineering Crash Bash for a possible TAS.
oxysoft
He/Him
Experienced Forum User
Joined: 9/27/2015
Posts: 48
Spikestuff wrote:
Courtesy of zah666 who I wished made a TASVideos account. Link to video
Looks nice. I have never touched CTR on the TAS level but that looks optimizable to me (for example the jump at the very beginning, I feel he could land a few frames earlier if he cut the corner better)
oxysoft
He/Him
Experienced Forum User
Joined: 9/27/2015
Posts: 48
I had begun TASing this game and when I was about to finish the third race, Dolphin decided it wouldn't play my movie files without desyncing and it still hasn't worked since then ... I had uploaded the first two races however Link to video Link to video Both are much less optimized than my third race was going to be but the first race still improves on OP's attempt by using a slightly different route. I had no ram watch in neither of these two races, and built one when I started routing the third race which is now lost in limbo :/ I had done some glitch hunting as well but was unsuccessful in finding anything of interest. I almost got out of map in the third race using the small walls that move back and forth towards the end but that's about it. I did find something minor however: it seems that something interesting happens when you hit the ground and roll, then promptly grab onto a lum. I believe it causes your angular speed to cap at 60.0 and also it seems that you will end up lower in the swing cycle once you are at swinging distance from the lum. Let me explain: when you shoot your orb and hook onto a lum, there is a distance constraint assigned to each lums and if your character is further than this distance constraint, you will be given a high angular velocity and be propelled towards the swinging arc defined by this constraint. until you are in range of the distance constraint. Most of the time, if not always, you'll be placed at the max height of your swinging which means you'll have to re-accelerate downwards to swing to the other side. By landing and rolling and then hooking a frame or two after, it is possible to end up lower and further into the swinging process which means you won't have to accelerate downwards, you'll already be almost past the lum and almost already be re-accelerating upward on the other side. Finally, the stairs at the end of the the third race are quite glitchy and there are certain frames where shooting your orb will cause it to bounce and move up in a diagonal fashion. On certain frames, it is possible to shoot right past the stairs as well, activating the switch beneath. On each laps, I was going to bounce the orb for style on the first set of stairs then shoot through on the second set, causing me to level in the second layer which ends up being faster at the end because you skip a small bit of climbing. Finally, why Globox? Because he's fucking epic, why else. For a re-tas of this however, I might consider trying out each characters because as I found out recently, there are certain glitches in the duel maps that seem to be only possible with certain characters. The same could possibly apply to races as well. Supposedly, the hitboxes would be different for each characters.
oxysoft
He/Him
Experienced Forum User
Joined: 9/27/2015
Posts: 48
Hi there. I've been interested in TASing this game and I thought I was doing pretty good after I had done the first two rounds of the first minigame's trophy, then I saw that video posted above from the japanese guy. Obviously I'm not manipulating the rng nearly enough. I don't think I have the patience to go to such lengths, trying to manipulate the rng blindly like that so it got me thinking, what if we found certain data within the ram like AI information and where the next ball is going to come out of, etc. A lua script could be made after that to render on the screen this data and it would cut down on the fiddling a whole lot. I spent about an hour looking for valuable data 2 days ago but I was unfortunately unsuccessful in all of my searches. I'm gonna try again tonight and hopefully find something edit1: So tonight was a productive night. First, here is the result of my researches http://pastebin.com/a1HA1Y7A. I was able to find some interesting information from the ball managing system as you can see, as well as addresses from the first ball slot (which are not in this research document, I added them in a watch and was too lazy to update the document) There are some cool things I found. First, where the next ball will spawn is determined the very frame a ball is scored. This frame can be determined by finding the addresses for the score of the players (not the rendered score! the actual score in memory) and find the frame it decrements. At that frame, a value is set at the address 0C1F16 which turns out to actually be equal to the side of the player that was scored, and does not actually tell us which corner the next ball will spawn but which side's corner it will spawn (so 2 options) The next frame, the ball is created in memory at its spawn corner so this address isn't that useful in the end if we draw the balls on a TAS minimap. However, this is where things start getting kind of sketchy: At first it seemed that the first ball slot is always positioned at the same offset in memory. Once I had that, I started looking for the second ball and when I found it, calculated the offset between the two (from the X position as the anchor) and I thought I could find the other slots just by offsetting by that many bytes but for some reasons, the resulting addresses did not seem to match with data from the third, fourth, etc. balls on field. I was able to confirm this by using the ram search and found that the X and Y position of the third ball were curiously shifted a bit below. Furthermore, the addresses I had for the X,Y of the second ball did not correspond to any ball later on in the game, and neither did the addresses of the first ball. So the ball structs seem to get shifted around and it doesn't seem like they follow each other in memory either. So I hit a wall as of now and I'm still trying to think of an idea. I tried to search for pointer references to these structs in memory but couldn't find anything. Here is a picture of the TAS minimap as of now http://i.imgur.com/w2YZBzc.png (don't mind my messy watches) edit2: Today was a productive day! I studied a bit of assembly for the first time (with MIPS instruction set of course, the one used by the playstation) and learned how to use the r3000 debugger that comes with pSX 1.3. From there, I reverse engineered my way into finding where the struct for a ball begins. It turns out that it begins 32 bytes before the X value is defined; In other words, 4 dwords earlier. (pun unintended!!) Using that knowledge, I was able to find that the address 0x05A978 contains a pointer to the latest ball spawned on the field. I tweaked my lua script to take that in account and this is the result A minimap that shows the field and balls From there, I can start programming the projected path a ball will take and then perhaps reverse engineer the enemy AI and find addresses describing future movements, but this is obviously much easier said than done.