Joined: 11/18/2006
Posts: 2426
Location: Back where I belong
Actually, after downloading L-Spiro's tool, it looks to be a ton more user friendly than Gocha's tool, so I'll play around with it and see about picking this up again. If you have any helpful hints about trying to find addresses in a 3D game, a PM still works:)
Joined: 6/13/2006
Posts: 3300
Location: Massachussetts, USA
Well, a FPS is going to be much trickier to know what addresses you want as compared to say, a 2D platformer or an RPG. I gave some suggestions to Rising Tempest, but he said he didn't need them; testing usually is sufficient.
I'm going to be upfront and say that the best way to find addresses is threefold:
1) familiarity with searching. After you've been using addresses for a while, searching/watching becomes second nature.
2) know what you're looking for. If you know how the address is supposed to behave, you'll be able to identify it better
3) know how you're going to look for it. Know which method of culling will get you the address you need. For speed, stand still, find values of zero, walk a little, search for increase, go to max speed, search for increase, decrease your speed, search for what addresses decreased, then stop, and search for what is now 0, etc. etc. etc. It's a process of elimation, and be sure you understand how you're going to eliminate and why.
I love MHS, especially since it is not laggy at all, unlike gocha's tool. It even has other tasty features that I have not tapped into due to lack of computer/hacking knowledge.
Horizontal speed probably won't be too necessary; when strafing there's only one speed, right?
Vertical speed I can see being helpful since you jump a lot.
Is the boss HP shown on the screen? if not, boss HP addresses are immensely helpful.
L-Spiro used MHS to make 3D rendered maps for goldeneye. If maps would help with routes, you can ask him to guide you through the process to make Turok maps.
Sometimes there's an address whose number indicates what you're character is doing.
when searching for speed, you'll sometimes find an address that kinda works, but the max speed number is different based on which direction you're going.
Adelikat finds x/y/z coordinates to be very handy for 3d N64 games, sometimes in place of speed addresses.
There's probably an in-game timer address too, as well as lag indicator.
For MHS, you want to look at byte, short, unsigned short, long, and unsigned long data types.
Adelikat still remains my superior in finding 3D addresses (that guy can find an address without searching at all if he wants, just by studying 100+ addresses in the watcher), and he just finished a project so send a query his way. Plus, he "accepted" the game so I'm sure he'd love to help out.
You mentioned restarting, I suggest to also just noodle around in your free time, you might find some frame saver that'd you'd rather have from the beginning rather than halfway through. I restarted my JFG .m64 to get the ball rolling for when I start that in the future, and instantly found a frame saver per loading doorway.
Joined: 11/18/2006
Posts: 2426
Location: Back where I belong
Searching I'm good with, it's a matter of knowing exactly how a FPS would affect what I'm looking for. I found an address that determines whether Turok is moving or not (a simple 1 or 0), and thought I had found an address for speed, but it wasn't quite fitting right for me. Strafing left had a value of 128, right was 256, backwards was 1024, and forwards was 2056 (suspicious, huh?). The funny thing was, when buttons are pressed together, the values simply add together. So that means strafing to the right and forwards was 128 units faster than strafing to the left and forwards, which I don't actually think occurs. Also, when I added rotation into the mix, the value jumped up to 800,000 something, so since I'd be doing a lot of strafing with aiming, that value is basically worthless.
Probably one of the most helpful addresses I could find would be a simple z coordinate to show my height when I'm jumping. Boss HP will be easy for me to do now that I've fooled around with the tool some (they were always pretty easy w/ the other games I've done), so I'll take a look at that also. I start school up again early next week, so I may have some class time to work on this or just dick around with some memory watching before I actually decide to redo the first 10 minutes. I just watched my WIP again tonite, and although it seems pretty good, I also notice some small details that showed my inexperience with TASing in general when I made it. Although I'm still pretty inexperienced with 3D games.
So all in all, LSpiro's tool looks to be easy to use, however finding useful addresses may not be as simple (possibly because what I want to know may not be just in one address). I'll see what I can do, though.
Joined: 3/17/2007
Posts: 97
Location: Berkeley, CA
You've just met your first bitmask! :-) The numbers in binary are just
L =00000000 10000000
B=00000100 00000000
L+B=00000100 10000000
etc., so this is an easy way for a computer to store a bunch of "true or false" values in one place. (Your forward was probably a combination, 2048+8=2^11 + 2^3.)
Joined: 11/18/2006
Posts: 2426
Location: Back where I belong
I knew that those were common binary values, but I didn't really think about them being used like that, thanks nitsujrehtona. Another question: I was able to play around a little bit with the memory tool and found a value for my z coordinate. However, I also found another 7 or 8 values that seemed to behave in the exact same way. Is it common for multiple memory addresses to code for the same variable, or do you think that each one has some sort of specific purpose, and I just didn't do enough testing to discover it?
Joined: 11/18/2006
Posts: 2426
Location: Back where I belong
One of the biggest problems I was running into during my run was the jumping aspect- when the perfect frame was to get the highest up on a ladder, or on a climbable wall, for starters. Boss hitpoints would also be an appropriate useage of memory watching, as would x/y coordinates for floor switches or platforms. Granted, there aren't as many uses as other games, but I could find a few helpful applications for them.
Joined: 11/18/2006
Posts: 2426
Location: Back where I belong
I've been working on this again, since from reading the submission, everyone wants to see a run. I decided not to start over, and have been working on finishing up level 2 today. However I was watching my movie and seemed to remember from my playing days that the Longhunter could be killed closer to the key, and would drop his plasma rifle nearby. So I did some testing, and shaved off another 2 seconds from the boss fight. However I've also managed to save another 6 seconds in level 2 from my work today. Problem is, I may not be able to hex them together to make a viable movie, so I may end up doing all of level 2 over again. Shit.
However I'm not giving up yet with the hexing, so we'll see over the next couple days how things go. And if anyone is experienced at making .m64 files splice together well, let me know. I could probably use some help.
Joined: 11/18/2006
Posts: 2426
Location: Back where I belong
I was just thinking about that last night, and did some experimenting with it today. To achieve the minisidejump, Turok needs to be standing still, then press a side direction for one frame, release for one frame, then the side direction button again. However, the key to this is that turok needs to be standing still (or have his movement memory address hit 0 somewhere in between those three button presses). This takes roughly 90 to 100 frames to be accomplished. So basically this might be an effective technique for starting from a dead stop, but it doesnt' look like it will be faster than just strafe running.
Oh, I've given up on trying to hex this movie. The game stores turok's velocity when he enters a door or picks up a key, and then expresses that velocity for roughly 2 frames afterwards. Which means that hexing will probably take more effort to redo than just redoing the 3 minutes of play I lost. I had to redo the swimming before the first key anyway (trying to optimize swimming is a pain in this game, but I've found that holding a direction for about 14 frames, then releasing for one frame, produces the quickest velocity underwater. However it may only show big gains when the path is straight, so underwater tunnels with lots of turning may not be much faster.
Oh, and I'm working to see if I can manipulate only boxes of explosive shells on the longhunter. Hopefully then I'll have more time to lure him towards the center, and I should be able to shave off another 2 or 3 seconds due to a combination of him dying faster, and me being nearly on top of the key at the end of the level.
i tested to run a straight line in the longhunter room and it seems like it was some frames faster. if it saves time in such a little span of time it might add up to 30 seconds in the whole run. 30 seconds is not that much though, considering how annoying it would be to constantly do those minijumps
don't you think it's boring to try to do a run that is so Perfect? did you know that i did my TAS in one week and i used no frame advance?
Joined: 11/18/2006
Posts: 2426
Location: Back where I belong
I tested it in the same room, and found that strafing was faster than just pure sidejumping, but a combination of the two is the fastest. While Turok's speed is very high for the 20 frames that he's in the air, the necessity to slow to a stop takes too long, and would be very annoying to the viewer anyway (Turok the sideways hopping frog??)
Also, sometimes it is boring to try and optimize a game like this (unlike a 2D platformer), because I know no matter what I do, there is probably something faster. But I also know that if I submit something, it had better be as close as perfect as I can make it (to the best of my abilities). That's why I went back to the Longhunter, because I realized I could beat him faster by a surprising amount. But the boring parts of optimization is why this has sat on my workbench for a year. On the other hand, the level of optimization is why I've scraped 30 seconds off of your run, and will probably be able to hit 2.5 minutes by the end. So, to me, that's worth it.
EDIT: Meh, saved about 2.3 seconds from my previous version, with a couple extra explosive shells to boot. It was a pain trying to manipulate all boxes of explosives, but I managed to do it, however trying to manipulate the longhunter to follow me was a pain, so I lost some time between shots getting him to follow me. It's a tradeoff, either I have him follow me while shooting him (more entertaining), or I just run to the key after he's dead (dull). In any case, I'm 8 minutes in, and have saved 31 seconds, and am ready to start up level 2 again, maybe be able to find some more time savers now that I have some good memory addresses. Oh, the two humvees have 875 HP, and the longhunter has 1100.
Joined: 6/13/2006
Posts: 3300
Location: Massachussetts, USA
mmbossman wrote:
the sideways hopping frog??
This is the current title for Link in OoT/MM. :-p thanks swordlesslink.
Your reasons/explanations are right on the buttonmmbossman. It won't be 100% perfect, but you have the right goal of trying to make it as perfect as you possibly can, and yes a long effort TAS that beats a one-week effort TAS by minutes is very much worth it.
and yes a long effort TAS that beats a one-week effort TAS by minutes is very much worth it.
is a one week effort that beats another one week effort in by minutes worth it? that's what i do... i find the fastest path, then i run the game in one week, then i find a faster path and run it again in one week... until i get bored (after the 3rd time).
i often spend more time in finding the fastest path than doing the TAS. in boring games (rpg) it's the most interesting thing and saves most time. then i can just run the game in my mind, and i don't even bother to do the TAS anymore because i know what it'll look like anyway...
Joined: 11/18/2006
Posts: 2426
Location: Back where I belong
The only problem with your path finding method is that unless you find some major break between run #1 and #2, they should be pretty similar. However, the level of optimization within the path may still be very low. If working on optimizing a route isn't fun for you, that's certainly fine, but both Comicalflop and I like to see things as near to perfect as possible. You provided me with a good route and some good ways to improve it, and I thank you for that. I'm just finding ways of improving your route on a smaller level (ie frame optimizations).
You seem to have more of a true speedrunner mindset when it comes to TASes, because while I totally understand that the route in a game is important (and a poor route, not matter how optimized, will still be easily beat), I also think that the level of perfectness within that route is as important for TASing (while not so much for speedrunning).
One other thing: Do you (nfq) or anyone know why the boost jump in level 6 near the exit works, or know of any other spots like that? It kind of looks like you get stuck between polygons and the wall seems to provide an ejection force, but I don't really understand why it works. I have this nagging feeling that at least one of the keys in level 2 can utilize it (probably #3), but I need to find out more about it to see where I can replicate it.
but both Comicalflop and I like to see things as near to perfect as possible.
me too, but i don't have enough IQ to do it. it's too hard to play with keyboard and frame advance, i can only play with a controller...
You seem to have more of a true speedrunner mindset when it comes to TASes,
true speedrunning is not fun because you have to be good at the game and have luck, but with tools it's easy to do a goodlooking run.
I also think that the level of perfectness within that route is as important for TASing (while not so much for speedrunning).
of course... but the thing is that my route is not perfect, so the playing doesn't have to be perfect either...
One other thing: Do you (nfq) or anyone know why the boost jump in level 6 near the exit works, or know of any other spots like that?
there are several spots like that but i haven't found any use of them. for example, i tried to boost myself to the key in the beginning of level 4, but i couldn't boost to that direction.
why it works..? kinda similar to the walljump... you get stuck between two polygons and turok starts to rise upwards... does it matter why?
just try all places where you can get stuck... but i think i already tried many places.
Joined: 6/13/2006
Posts: 3300
Location: Massachussetts, USA
Perfection in TASes has has nothing to do with IQ. It depends on how intimately/deeply you know the game, how well you know video game mechanics, how well you know speedrunning techniques, how much you test, how much patience you have to test and find the optimal routes/moves, etc.
Joined: 11/18/2006
Posts: 2426
Location: Back where I belong
After restarting from the second humvee in the first boss encounter, I've made my way to the 3rd checkpoint in level 2 (the one right before the 2nd key), and have made some pretty good improvements. I saved 140 frames over my old run from the improved boss fight, and I've managed to improve level 2 by roughly another 95 frames, which was a very unexpected outcome. This is still obsoleting old work I did the last time I worked on this (about 4 months ago?), so I can tell my general skills and thought processes about TASing in general have improved somewhat even since then. So currently I'm 34.5 seconds ahead of nfq, 10 minutes into the run.
I've also had some fun fiddling around with l-spiro's tool, and have found some helpful HP values. Both the Mantis and the Campaigner have 3300 HP, while Thunder the T-Rex (as Marshmallow calls him), has a whopping 6600. Thankfully, due to knowing these, I'll be able to better control damage dealt by "variable" weapons, such as the grenade launcher and the nuke.
Any interesting point for actual speedrunners out there(and it may come in handy for me later):
A normal Purr-lin has 210 HP, and a single explosive shell and a single tek arrow both deal 50 HP damage. So if you're worried about ammo conservation, jack him with four explosive shots, and then one shot from the pulse rifle (13 HP) or the pistol (10 HP) will put them down for good.
Joined: 11/18/2006
Posts: 2426
Location: Back where I belong
Well for some reason Microstorage wouldn't allow me to upload an .m64 loaded from an external savestate, but here's something interesting:
http://www.sendspace.com/file/28ergp
This is done in the first minute or so of level 7, right before the warp to the large open area with lots of aliens and raising pillars in the center. It may not be faster to do this route because it takes a while to raise all the way up the wall, but I didn't fool around with it too much, so I may be able to do it and save some time. And even if it's a tiny bit slower (ie more than 30 seconds), I'll probably keep it in just because it looks so damn cool. Unless I have some ammo management issues at that points.
EDIT: Might be helpful if I included the savestate needed to watch.
http://www.sendspace.com/file/z4x2v7
Joined: 11/18/2006
Posts: 2426
Location: Back where I belong
Triple post time: Is there any benefit from doing level 5 before 4? I will have 95 life force tokens at the end of level 2 (100 for an extra life), so I won't have any problems utilizing all three of the death warps in level 4 and level 6 (and if I end up being a couple shy on the last level 6 warp there are some purple lifeforces right before the last key). I think, although haven't tested, that getting the grenade launcher is faster in level 4, so that is a positive right there, and I haven't been able to think of any other reason to do level 5 first. Anyone?
Some notes on walls:
* There seem to be three types of wall glitches that can be performed. The first, and most worthless, is the wall where you can get stuck in between polygons, but are unable to do anything useful when positioned there except run in place. Stop running and you fall out of the wall. All the walls surrounding the last two keys of level 2 are like this.
* The second, and somewhat more helpful, is the walljump-able walls, as seen in levels 3 and 2 so far. They are great for slicing off chunks of the game when you need to head straight up. I haven't found any more of these than nfq found for his run.
* The third, and (when used correctly), most helpful, are the walls that allow you to become stuck, and then move Turok upwards in a short, jerky motion. They react to gunfire by launching Turok sideways at an extremely high rate of speed (ie I call them wall cannons), although they don't add any height other than that garnered by regular jumping during the launch. These are seen in level 6 and 7 (see the links in the above post). If I manage to find more of type 3 walls I will certainly try to apply them, because not only are they useful, but they look really cool.
A few other things that I've noticed and come up with from working on this in the past week.
-There's no need to get the assault rifle after the first high priest in level 5, since it has a poor rate of fire and does moderate damage (30 hp if all 3 bullets connect).
- With ram watching I may be able to fire a couple grenades in the air at the 2nd high priest guarding the last key of level 4. Grenades do a max of 95 hp (sometimes 96?) damage, and those dudes only have 210, so a quick volley of 4 grenades (2 per preist), followed by 2 quick pulse rifle shots should allow me to run right on through without wasting time with them.
- If I utilize the wall cannon in level 7 as shown, it would mean I have to skip two boxes of grenades and a backpack. The grenades aren't a big deal since there's another 15 near the end of the level, but the backpack worries me, since I wouldn't be able to carry 3 nuke charges. I may try to use the wall cannon to just fire me around the corner if possible, so I can still skip the alien room, and be able to get the backpack. If not, and the wall cannon saves a ton of time, I may decide to make my Thunder fight a tad longer to manipulate a couple nuke ammo spawns.
-Right now I'm at the last checkpoint of level 2, and expect to be done with the level tomorrow. From the longhunter to this point I managed to save around 5 seconds from my previous try, and am overall 40 seconds faster. At my current rate of saving time I will be able to complete this run in 36.7 minutes, but that figure could change dramatically with new discoveries.
A WIP will be coming at the end of level 2. Any thoughts or comments?
Here are my thoughts.
1) I'm excited that you're continuing this run. I think it's very fun to watch.
2) I don't know enough about the game on a TAS level to be helpful at all.
3) It took me like a million tries to figure out how to play that movie, but wow that was cool.
<Swordless> Go hug a tree, you vegetarian (I bet you really are one)
Am I correct in thinking that Level 4 should take less time than Level 5? I seem to remember lots of long (pointless) corridors in the Catacombs.
Also, if I remember right, Level 5 is the first place you can get a mini-gun right (or maybe I remember there being one in Level 2 behind a grenade wall)? But that's probably of no use for a TAS. I guess I can't think of any advantage to doing 5 before 4.
Joined: 11/18/2006
Posts: 2426
Location: Back where I belong
I haven't compared times, but I do think level 4 takes a little less time than level 5, but it won't be by much because a lot of the long, dull corridors will be skipped. You are right in that it is the first place an accessible minigun is avaiable (you're also right about the one in level 2), but other than sounding cool, it's not very useful because it's pretty weak. It just sprays a whole lot of lead very fast. I'll probably use it on taking down some of the weaker enemies, since I won't be using it for any of the bosses.
EDIT: WIP time
To the start of level 4 I'm 43 seconds ahead. The swimming in this game sucks balls, but I was able to get all my swimming times at least respectable, although they look slow at some points. Also, check out a possible screen shot at input frame #16534.
if you do level 4 before 5, you lose your backpack when you do the deathwarp, so you won't have it for the mantis insect boss, that's why i think it would be better to do level 5 before 4 even though the grenade launcher takes more time.
If I manage to find more of type 3 walls I will certainly try to apply them, because not only are they useful, but they look really cool.
there's one in the beginning of level 3 and 4. i knew about the level 7 one too, but i didn't find any of these useful. if you still wanna know, i can show more specific where they are unless you find them yourself. there's one on level 2 too... they're EVERYWHERE.
who knows... maybe they can be useful. i always seemed to get boosted in the wrong direction...
A few other things that I've noticed and come up with from working on this in the past week.
-There's no need to get the assault rifle after the first high priest in level 5, since it has a poor rate of fire and does moderate damage (30 hp if all 3 bullets connect).
i just took it because you don't lose any time if you take it (since you have to wait for the door to open), and it's cool to have many weapons.
I may decide to make my Thunder fight a tad longer to manipulate a couple nuke ammo spawns.
i don't think nuke ammo spawns on the t-rex fight, otherwise i would have probably done that in my run since the nuke is really useful. what does it do, 1000HP damage? i think chronoscepter is even stronger though. might be interesting to see a "100%" run too where you take all those parts.