Posts for Meerkov


Experienced Forum User, Published Author, Active player (398)
Joined: 10/4/2015
Posts: 98
Experienced Forum User, Published Author, Active player (398)
Joined: 10/4/2015
Posts: 98
You think I can't have both fastest real and fastest in game? : ) I've got 3 new tricks not used in your run.
Experienced Forum User, Published Author, Active player (398)
Joined: 10/4/2015
Posts: 98
I'm coming for this record by the way. I'm using 2 fast characters, so my strategy is going to be different on the levels. The lag is real bad like you said. Who the heck programmed this game? Can we go back in time and fire them?
Experienced Forum User, Published Author, Active player (398)
Joined: 10/4/2015
Posts: 98
Ok so you can get 1 mirror piece each level, for a total of 15/16 by the end of world 5. However, world 6 actually grants you 0 pieces, because the bad guy talks instead. So, yep, it's impossible to finish the mirror early. Seems like maybe the developers intended for you to be able to play until the mirror was completed, but maybe that feature got cut.
Experienced Forum User, Published Author, Active player (398)
Joined: 10/4/2015
Posts: 98
Neat game, saw this game for the first time maybe a month ago. What happens if you collect all the puzzle pieces? Do you get a better ending?
Experienced Forum User, Published Author, Active player (398)
Joined: 10/4/2015
Posts: 98
I think it's entertaining, even if GunCon would speed it up. Fastest run on the site right now, since the others have not been submitted. (Personally I don't think unsubmitted runs should prevent an otherwise good run from being accepted).
Experienced Forum User, Published Author, Active player (398)
Joined: 10/4/2015
Posts: 98
Voted meh. It's pretty short and also there seems to be some debate over whether this is the "true ending" or not. I'm not convinced that getting 230k+ points would make a more entertaining video though. The variations (different colors?) don't sound like it would be very different.
Experienced Forum User, Published Author, Active player (398)
Joined: 10/4/2015
Posts: 98
Maybe I don't have nostalgia for this game, but it seems like most of the tracks were almost identical. "meh" vote, because I think it's acceptable to vault. But I'm not convinced that 100% is any more entertaining than any% as a goal.
Experienced Forum User, Published Author, Active player (398)
Joined: 10/4/2015
Posts: 98
ThunderAxe31 wrote:
There are literally no tricks
I can't really argue with you, but I will point out that beating the game without taking damage is already a trick by itself in this game. The hit boxes are really bad. :) heh.
Experienced Forum User, Published Author, Active player (398)
Joined: 10/4/2015
Posts: 98
Hmm, I'm not familiar with Super Metroid runs. This didn't look like an ACE to me. It looked like the pausing/unpausing was to glitch past the door trigger and go out of bounds. The wiggling on the elevator was to gain enough downward velocity to clip through the floor (I think). I'll be interested to read the writeup for how the glitches worked, nice job.
Experienced Forum User, Published Author, Active player (398)
Joined: 10/4/2015
Posts: 98
@Niamek: So from the way I understand it, each movement type/state has an "target speed". Hills max at 5px, normal walk is 4px, and "freefalling/jumping" is also 4px. You maintain velocity when switching between movement types, but will start decelerating or accelerating towards the target speed. For example, when you jump off of a Beaver/Minecart, your velocity is very fast at 7px. But in the air you slow down back to 4px as the jump continues, or if you land on the ground, you'll maintain whatever velocity as you slow down to the target speed. The same is true for hills. You do have 5px for a bit, but you decelerate back to 4px pretty fast, and it's no different if you jump on the last frame of the hill, or if you just walk and decelerate on the ground instead. This is why when you jump near the top of the water, you can accelerate up to 4px/frame. If you go under the water, the target speed is 2px/frame, so you quickly lose speed (but not instantly). Hopping at the surface lets you be in the "jumping/freefalling" state instead of the "swimming/falling" state.
Experienced Forum User, Published Author, Active player (398)
Joined: 10/4/2015
Posts: 98
Yeah the collectibles are pocket watches because... Pocket watches are a type of clock-> and some clocks have alarms->you use alarms to wake up->you wake up from sleeping->which is like hibernation->a thing bears do? That's my best guess. And yeah, picnic baskets are temporary platforms. After jumping on them, they disappear after a second. They don't heal you, and like everything else in the game, the collision is a bit wonky. The final collectible just reacts when you touch it and changes the graphic. I don't really understand what the devs were thinking.
Experienced Forum User, Published Author, Active player (398)
Joined: 10/4/2015
Posts: 98
I don't really have good ideas for arbitrary things. I guess it might be funny to build a city full of TOPs instantaneously, or trigger Monster Attacks, or update the graphics to look like Sim City 2000... But I'm a fan of just proof-of-concept jumping to the routine to the 600k message popup. That way no waiting is needed. My creativity is limited : )
Experienced Forum User, Published Author, Active player (398)
Joined: 10/4/2015
Posts: 98
It'll probably take me a few days to find some time to sit down with it and step through line by line of the execution. I guess I'll set a breakpoint on reading 0xAA and try to follow it from there. It seems like we have all the tools we need to get a really cool ACE, as long as we figure out the bootstrap step.
Experienced Forum User, Published Author, Active player (398)
Joined: 10/4/2015
Posts: 98
Ok, watched the movie with commentary, I think it's great (though I voted "meh" just because, well let's admit it, waiting for dozens of minutes isn't very exciting). It's probably Vault, under "Glitch" category, but I think it's pretty nice! I never understand why some people say things like "It's not faster than RTA". If it's optimal, it's optimal regardless of whether it can be done at human speed. The perfection of inputs is the interesting part, and this run has very short input. Then again, I think there should be a published Barney run too, so maybe I'm biased.
Experienced Forum User, Published Author, Active player (398)
Joined: 10/4/2015
Posts: 98
I tried various tools, it seems none of them will work except in the normal build area (approximately ~0x10200 to 0x16000). However, I discovered something actually useful too. Memory location 0x03200, as well as before and after it, all represent (drumroll please): the viewable map tiles! (Well, more or less, at least). It's not exactly a 1 to 1 mapping. For instance, it seems like it pre-loads some tiles outside of the viewable space. "black" space is represented by "0103". (I forget the byte order) Grass/Forest/Water/Coast all have different value ("A506" is grass I think) etc etc. What does this mean? It means a jump to 0x3200 or anywhere nearby should result in arbitrary code execution, based on what tiles are currently cached in the map rendering area of memory. It just so turns out that 0032 is the value we can write using Roads... So! If you're thinking what I'm thinking, then all we need is for the control to jump to 0x3200 and it's GG. Step 1: Escape into the black area Step 2: Overwrite the Camera X position to allow fast scrolling Step 3: Fast scroll left, and down, viewing a render of the city Step 4: Build the city/bytecode (To be determined exactly what) Step 5: Use fast/slow scrolling to keep the city on the screen, but manipulate the exact "write" location as necessary) Step 6: Write a road at 0xAA, to cause the stack to return control to 0x3200? (Unclear if this is right?) Result: Win? Edit: Actually I was wrong, I was looking at 0x13200. Jumping to 0x3200-0x8000 is a block of (mostly?) BRK(00) instructions. Re: the post below this, it's probably because it's an open bus, and I can't see what's there. If I recall, there was non-00 values somewhere around 0x4100, however this doesn't seem practical to use since it's hard to determine what's written there?).
Experienced Forum User, Published Author, Active player (398)
Joined: 10/4/2015
Posts: 98
Haha, and I thought the Sim City run (~7 minutes input, ~50 minute of gameplay) was long. I look forward to the encoding, great glitch!
Experienced Forum User, Published Author, Active player (398)
Joined: 10/4/2015
Posts: 98
Yep, correct except it's 0032, 0062, and 0072.
Experienced Forum User, Published Author, Active player (398)
Joined: 10/4/2015
Posts: 98
Ok I tested some more. I agree, changing the population density did not increase the population (I did not test whether you can build a R/C/I on top of the artificially increased pop density to get any benefit). That's maybe something to consider for a follow up test (build a bunch of R, then artificially raise the landvalue?). One interesting thing is that using this, you can create land in the middle of water, which has a very high land value. It definitely does build in the info layers (you can view the info map and see random dots of green added wherever you built in memory). Regardless... Things I found: The formula appears to be: offset = (CameraX+(CursorX/8))*0x02 + (CameraY+(CursorY/8))*0xF0) % 0x10000 memoryLocation = offset + 0x10200 So what's actually happening here is a rollover from 0x1FFFF to 0x00000. At least, that's what it looks like to me. (FatRatKnight is calling it bank x7E0000 and x7F0000, but I'm just calling it x00000 and x10000 because that's how it renders in BizHawk's hex viewer and I'm lazy). However, when I was playing around with it, this did *not exactly* match up to what I was seeing.At one point I was offset by 0xE000 from where I thought I was writing, but still restricted to the same memory I could write before anyway. Regardless, it appears to be close enough to accurate for me. You can assume that you can't write beyond x001FF. It always jumps back up to x10200 if you go higher. Ok, so what else did I find? x0134 freezes the game x00AA or 0x00AC will reset the game as soon as the player releases all buttons they are holding. The game will no longer accept input, but the music will play. It will never finish initializing the game. x0006 plays a sound depending on the value written. It's mostly just annoying x00D8 will freeze the game For example, if the user holds LEFT when building on x134, the game will continue to run as if the player is holding LEFT, but it will no longer respond to pressing or releasing buttons. Doesn't reproduce if holding a different direction.
Experienced Forum User, Published Author, Active player (398)
Joined: 10/4/2015
Posts: 98
> where the camera and other stuff at the 0x0000-0x01FF range is in the 7E bank. True, I don't have it right in front of me at the moment, but I can assure you by scrolling left on the first line, you can overwrite the camera. This has the effect that you can use fast panning (Y+dir) without snapping back into the playable space, allowing you to quickly scroll through memory locations. That also has the effect that you can no longer snap back into the playable space, because normally the fast pan would have returned the cursor to the play area (some sort of bound checking on fast scrolling near the edge, which is broken when the camera is no longer "near the edge"). So it's kind of a double edged sword. I'm thinking of a new trick: Ok, so all the stats are in various places in memory. You can certainly write into almost all of them (for sure anything above 0xA000). Population Density is located at 0x7F8E28 - 0x7F99E0 So, if I understand correctly, it might be possible to write telephone wires into those memory addresses to increase the population of the city, right? It might get re-calculated at certain steps, of course, but this seems like a viable way to affect the population without figuring out the Arbitrary Code. I feel pretty confident about that, I'll try it later today (or soon, will update thread with findings).
Experienced Forum User, Published Author, Active player (398)
Joined: 10/4/2015
Posts: 98
I was looking at this run, and there's a lot to be improved. For starters: all the building can be sped up to ~14 frames per 5 tiles of railroad. That is instead of the 15 frames used now. That's a 6.6% speedup on the rail section. It uses a combination of Fast panning (Y+dir) and slow panning (dir). That's pretty good just to start with and will shave a few seconds. But it also has the benefit of moving the cursor closer to the edge of the map at no frame cost. This means that the un-submitted TAS can be improved because you don't need to backtrack to cover the bottom of the map, you can get it in the first pass. That'll save at least another couple seconds because you'll have to pan over the map at least 1 less time. If I'm remembering right, that run was around 6 minute 42 seconds. I think with better camera/movement optimizations you could get the time close to 6 minutes. That's a nice start, of course. It's really annoying because it's a lot of very precise button presses. Probably you'd want to write a script to produce the right button press sequence just so you don't go crazy. And of course, there is that obnoxiously slow 1st year to trigger the money glitch. Another thing is the use of Map 61. Since it's a TAS, why not just use map 00? Surely with the money glitch, we hardly care about which map as long as it wins eventually right? That should save another few seconds of load time. However, I'm currently not investigating this because I'm really curious about building in the black area. By going out of bounds, you can start writing to certain areas of memory that you're not supposed to. For example, it was remarked in this thread that you can write between 0x0000 and 0x0200. It was also mentioned that the camera location is at 0x01BE. But surprisingly, no one seems to have pointed out that this means you can actually overwrite the camera/cursor location. The problem is, we actually want to overwrite 0x0BD0 (or somewhere near there). That's around where money/population seems to be stored. For instance, if we could give ourselves infinite money, even if we did absolutely nothing else using the black area, then we could avoid the entire first year of waiting around for the money glitch. Can we scroll all the way left, and eventually get to 0x0BD0? Mmm I don't think so. However, I think that the out of bounds glitch has not been explored enough. List of things I was able to do by writing to random spots between 0x0000 and 0x0200: Reset back to title screen (music still plays, but accepts no input, Ram reinitialized). Overwrite camera location (maybe useful for re-positioning it somewhere useful?) Graphical glitches Sound glitches Lock game (permanent) Lock game (until enough time has passed) Lock game (as long as buttons are held + a few seconds) Open the Build menu (when it was closed) etc. Probably a lot of those glitches are not very interesting, but resetting to the title screen was quite unusual. It almost makes me think that perhaps a jump *did* end up getting executed. This seems like something that could be really cool (execute a city as code), but I'd be satisfied if there was a way to just scroll to the population or money counter to overwrite it.
Experienced Forum User, Published Author, Active player (398)
Joined: 10/4/2015
Posts: 98
Considering this is any%, the current run is ~5 minutes faster. So I have to vote "no", even though this might be shorter real time. This came up in the Sim City run as well, because the time to last input is only 7 minutes, but then you need to wait another 35 minutes for the game to "win". However, a speed run going for "shortest real time" for Sim City would probably actually be quite different and thus interesting, but this one is not significantly different.
Experienced Forum User, Published Author, Active player (398)
Joined: 10/4/2015
Posts: 98
While I think bad games have their place on this site... The fact it's a game for small children (very easy) with large autoscroller sections... This is really meh. There's a few times the camera jerks, which I assume had something to do with turning around because you're walking backwards (around 4:21). Or did it hit a wall? In either case, it at least seems like the fastest submission for this game the site will ever see. Giving a "meh".
Experienced Forum User, Published Author, Active player (398)
Joined: 10/4/2015
Posts: 98
Thanks for the yes vote :). Indeed, the player can control how fast the game scrolls, and running through the full level at top speed is very hard for a normal player. The player is normally expected to slow down through difficult obstacles, and open many more balloons while searching for the randomly placed cards. There are a few real time speedruns on YouTube which show that avoiding these obstacles is very very hard when moving at top speed, as is guessing where the cards are going to be since it's somewhat random. Also my recovery time when hit by an obstacle is supernaturally fast, because I can buttonmash at 1 button per frame, which recovers the character at least 30 frames faster than then best human player could. I was also able to reduce the time you spend opening the balloons by carefully timing the jump so I land on the balloon very low to the ground, which causes it to open faster. So there is a lot of manipulation going on. : )
Experienced Forum User, Published Author, Active player (398)
Joined: 10/4/2015
Posts: 98
Hi zoboner, the skipped spring actually leads to a bonus level, so I skip it because it's a waste of time. There is no way to skip a key, because it's the reward for beating the level. For example, if you finish a level but only had 3/4 of the cards, you have to restart the whole level. So there is no choice, you have to collect the key to continue.