Joined: 6/25/2007
Posts: 732
Location: Vancouver, British Columbia, Canada
In Hourglass, open RAM Search (Tools -> RAM Search). Search. Under "Compare To", click "Previous Value". In the game, go right. Search for increased value. Go left. Search for decreased value. Stand still. Search for equal value. Go right. Search for increased value. Go left. Search for decreased value. At this point, you should have only one or a few results, which will change as you move left and right. These are values affected by your X position.
If you plan on doing lots of Windows TASing and want to know values often, it would be a good idea to get CheatEngine and run its tutorial program, which is a program which teaches you how to find (and edit, but just ignore that) values in Windows applications, including learning about heap addressing.
Note that Hourglass's RAM Search is currently only sufficient for very few games. If you can't find anything with it, you might try another program such as MHS. I would guess that addresses of integers found in MHS could be entered into the RAM Watch window once they are found.
Joined: 12/17/2005
Posts: 77
Location: Bjurholm, Sweden
I noticed that oscillating speed too but also if you jump while still accelerating on the ground, you will travel in the air with a slightly higher speed.
Also, when you land again, it will oscillate at a slightly higher speed as well.
Will probably make it a bit harder to optimize...
Joined: 6/25/2007
Posts: 732
Location: Vancouver, British Columbia, Canada
Woah. If I'm reading what you just said right, it sounds like if you repeat that process perfectly over some distance, you could accelerate ever-so-slightly.
Joined: 12/17/2005
Posts: 77
Location: Bjurholm, Sweden
I've been thinking if it would be possible but it would be very small increase every time.
But what I mean is that if you jump while accelerating (not while oscillating at full speed), you'll get some extra speed, I doubt you can continue to get more speed increases.
I'll try some more later when I have time.
By the way, I don't know if this will work for everyone, but here's a RAM Watch file that might help for a Cave Story TAS:
I have couple more values in mine, which are helpful for optimizing text-boxes.
0
12
00000 0049E66C d s 0 X speed
00001 0049E670 d s 0 Y speed
00002 0049E654 d u 0 X pos
00003 0049E658 d s 0 Y pos
00004 0049E664 d s 0 X cam offset
00005 0049E660 w s 0 Y cam offset
00006 0049E6B0 w h 0 flags
00007 0049E6CC w s 0 health
00008 0049E1EC d u 0 framecounter
00009 004A5ADC b s 0 Event Status
0000A 004A5B00 d s 0 Wait length
0000B 004A5AFC d s 0 Waited Frames
A small explanation of those last 3:
Event status is a flag that happens during script events that says what kind of action is currently taking place.
means text is being displayed
means it is waiting for input
means text is scrolling
means delaying for a pre-set number of frames, during which,
"Wait length" is set to the number of frames to delay for
"Waited frames" counts up from 0 until it reaches wait length
means the screen is fading in or out
means it is waiting for the user to reply to a Yes/No popup, and
means it is waiting for the player to fall to the ground.
nitsuja wrote:
Watching the X velocity value, it seems that the character has a continuously oscillating speed when on the ground that locks to something in the air (like in SNES Mario games, I think), which can probably be abused by always jumping at good speed values to go slightly faster than normal.
I can verify that this works from old and lost test files made back in the early days of wintaser testing. I cannot currently remember the optimal jumping pattern that I found, though, and I can recall that water was simply horrible to optimize this way.
How fleeting are all human passions compared with the massive continuity of ducks.
I'm not sure I have the wherewithal to complete the project on my own, but I've produced a WIP that get to the collection of the polar star with something approaching optimization.
If anybody else is working on cave story, perhaps we could compare notes.
How fleeting are all human passions compared with the massive continuity of ducks.
Here's 11 frames faster to the polar star chest. I'm not sure what the conditions are for reaching 845 speed or whether it's possible to exceed that.
(EDIT: this is for the same version of the game Upthorn's movie was for: Doukutsu 1.0.0.6 with English translation 1.03)
I've found this test run on nico video. Its scary how many results you already get if you just search for 'hourglass'.
is there no acceleration in this game? the guy does everything but optimize it
There is quite noticeable acceleration (although of course a TAS will try to make it look like there isn't, by staying at a high speed as much as possible), but yes, he doesn't seem to be optimizing the movement very well. One thing to note is that hitting a wall doesn't completely reduce your speed value to zero (I think this is one of the tricks this game does to make the controls feel more responsive), but it still reduces it to roughly half of your regular movement speed, so hitting a wall only slows you down if you would have exceeded that speed before clearing it.
I've found this test run on nico video. Its scary how many results you already get if you just search for 'hourglass'.
It looks like he finished this test run, and made a post about it here complete with encodes on Youtube and a link to the movie file, which synced for me with Hourglass r35 and untranslated Doukutsu 1.0.0.6.
I see lots of suboptimal movement here at the very least, but I guess that makes sense considering the low rerecord count (6673 rerecords for 54 minutes) and the likelihood that he wasn't watching the speed values in memory either.
I just did test just to see how it works, and i must admit i love Hourglass.
As for the video, i think i improved some little stuff compared to the dude who did the test (not couting that he got the HP Up). As for the end, i think it would save some frames to pick Curly a little bit before.
Joined: 6/25/2007
Posts: 732
Location: Vancouver, British Columbia, Canada
Rolanmen1, at the end of your test, I found myself extremely excited to see the rest of the Hell run. :D I've seen tons of unassisted Hell runs before.
Edit: I watched the entire test run (by the amazing Japanese TASer) linked above. There were tons of clever tricks used, but the thing that's most interesting to me is that he didn't get the missile launcher at all. It definitely speeds up the Ballos fight, and probably speeds up other fights. I wonder if the tradeoff is worth it. Anyway, it's really exciting to see that a Cave Story 100% run is beatable in under 1 hour.
I've found this test run on nico video. Its scary how many results you already get if you just search for 'hourglass'.
It looks like he finished this test run, and made a post about it here complete with encodes on Youtube and a link to the movie file, which synced for me with Hourglass r35 and untranslated Doukutsu 1.0.0.6.
I see lots of suboptimal movement here at the very least, but I guess that makes sense considering the low rerecord count (6673 rerecords for 54 minutes) and the likelihood that he wasn't watching the speed values in memory either.
I started to work on this, but i can't make his movie to sync, i think i have the lastest version of Hourglass and unpatched 1.0.0.6 version of Duokotsu.
Joined: 6/25/2007
Posts: 732
Location: Vancouver, British Columbia, Canada
I believe you have to set your AppLocale to Japanese (can be done in Hourglass as of ~r35) after installing the East Asian Language Pack with Windows update.
I believe you have to set your AppLocale to Japanese (can be done in Hourglass as of ~r35) after installing the East Asian Language Pack with Windows update.
Joined: 6/25/2007
Posts: 732
Location: Vancouver, British Columbia, Canada
What I did was downloaded http://homepage2.nifty.com/rochet/binaries/dou_1006.zip and extracted it to "games\cave story\clean" since I know I have saved config data that could cause desynchronization. Doing the same might work for you.
What? No, far from it! Did you never hear about this game? It's one of the highest rated indie games ever. It got so popular it was recently ported to WiiWare and DSiWare, with a 3DS remake on the way. And it got this popular for good reason, as this is a very well crafted action game. It might look simplistic on the outside, yes, but looks can be deceiving (in this case, they most definitely are!).
I'm kinda inclined to agree with him. Good game and all, but like IWBTG it seems rather plodding as a TAS.
I don't know if you're taking into account that the character can get upgrades throughout the game (unlike IWBTG). Like Metroid games, there's a speed booster item partway through that makes the character much faster, and before that point, like Mario games there are TAS-only tricks to go faster by taking advantage of oscillating speed values. And there are plenty of boss fights and opportunity for killing lots of enemies without slowing down, and overall good audio and visual presentation, so... it seems like a better game choice than many of the games with published movies on the site, actually. Sure, it's missing heavy glitching opportunities (as far as I know), but we don't need that in everything.