Posts for micro500


1 2
6 7 8
Emulator Coder, Experienced Forum User, Published Author, Player (68)
Joined: 10/4/2005
Posts: 197
WIP. It ends while I'm in the suit avoiding the flying fish. I couldn't get the jumping to work as I wanted, so I'll work on it tomorrow. So as I was redoing the car part, I tested if the UFOs create any lag, and found they didn't, so I let some pass for entertainment. After that, I lost some frames having to avoid the gun they clearly wanted me to grab. However the frames I'm saving not taking it are totally worth it.
mklip2001 wrote:
As for the one health point, does it save time to die from the rotating screws in World 3? You tend to wait a while for some of those screws, and maybe invinciblity after dying would help.
Unfortunately the invincibility time is very short, both after re-spawning and getting hit, so I will need to find a spot where I spawn next to enemies to avoid. Also, if I choose to die, I need to spend my next life making up the 180 frames I lose from re-spawning. This might be possible, so I'll keep that idea in mind. Thanks!
Emulator Coder, Experienced Forum User, Published Author, Player (68)
Joined: 10/4/2005
Posts: 197
Crap, its been a month. Here's a very belated WIP. It ends right before the car in world 2.
mklip2001 wrote:
Did your oxygen meter work more like you wanted it to?
No, I still had to waste some frames before grabbing it, but looking back at my previous video, it seems like it was a problem then as well. The rest of world 1 went smoother than I expected, especially climbing up to the rocket. I expected to have to try a bunch of different methods of kicking and climbing to avoid the mosquitoes and still get up. First try, one kick, and I was done. Starting level 2, I found the elevator glitch works going down too, saving 27 frames. I'm going to check tomorrow how much time the death warping saved. EDIT: So apparently death warping actually wasted time, around 40 frames worth. Now I need to decide how to handle death, since I was planning to have full health after that point. Looking through my previous video, I can't find any places where death warping would work and save time. I may just live with one point of health for the rest of the run. I found a fun but useless glitch when playing around level 2. If I die before I hit the ground at the beginning (by touching the alien pacing back and forth), it spawns me back to the rocket cut scene. The scene works mostly ok, but as the rocket takes off it loads some glitchy graphics below it. I then end up in level 2 again.
Emulator Coder, Experienced Forum User, Published Author, Player (68)
Joined: 10/4/2005
Posts: 197
I've been busy with other things, but finally,here is a new WIP. As it turns out, I could improve the swim-hopping. By changing how long I jump for I saved 40 frames. Apparently that was enough to allow me to avoid the third bouncing spring, meaning I only needed 2 points of health instead of 3. I could go back quite a ways in the video and save that frame I lost to avoid losing health, but I have no plans on doing that since it is only one frame. So far, this video is 434 frames faster than my last.
Emulator Coder, Experienced Forum User, Published Author, Player (68)
Joined: 10/4/2005
Posts: 197
I finally got some time to work on this again, so here is the current WIP. It ends after I collect the hat and die. During the swimming part I tried to die as soon as possible, but I couldn't find a way to use the oxygen that let me die any sooner than the frame I did. I tried different intervals of pressing B to refill the oxygen, and also tried holding the oxygen at full for a little while when I first entered the water. However at the end of each I kept dying at the same frame, so I stuck with it. If I can find a way to avoid that, it would save another 5-6 frames. I also tested using the infinite bomb, and it took about 5 seconds longer just to get to the scissors, and it would have taken even longer to cut the cable, so I gave up on that route. Now that I'm posting this I realized I might not have done the water-hopping to get the oxygen optimally, so I'll likely go back and try it again. For now though, enjoy!
Emulator Coder, Experienced Forum User, Published Author, Player (68)
Joined: 10/4/2005
Posts: 197
mklip2001 wrote:
Also, you mentioned gaining 3 frames for free at a menu. Do you think menus have a frame rule for when they open and close?
It was actually 4 frames, but this game still has strange lag. In some of my other attempts I actually gained another frame from lag, causing me to only improve the video 3 frames. In the WIP I posted I indeed saved 4 frames, and dodges all hits, but I compared it to another WIP I made where I dodge all hits, but waste a frame falling. In the WIP I posted I am 1 frame ahead when I used the magnet box, but the other WIP catches back up when the screen started to change. Then it took another frame longer to change screens in the posted WIP, causing me to fall another frame behind. I went back to using the other WIP and I'll get it posted soon. As for there being a frame rule, maybe? There is a byte in memory which constantly counts up until it overflows, maybe at a specific value it causes less lag? I also considered it being related to the background music, but I tried waiting until the music looped again with no luck. I passed the sharks, got the bomb and got the scissors, but I found something important. The two conveyors that move up and down after getting the scissors are reset when I leave the shark area. They are reset with one fully up, the other fully down. They move any time I am in the two higher maps in the area, including when I go to get the bomb. After getting the scissors, the right conveyor is up too far for me to catch, meaning I have to waste time on one of those two maps until the left one comes back down. I am again wondering if bringing a bomb from before the shark area would be faster. The conveyors wouldn't move until I go to use them, and I would have to waste a little time for them to be in a state where I can get on them, but it might be faster. That's the next thing I'll try. And thanks for all the support! The next few weeks are going to be busy, but I'll be working on this whenever I can.
Emulator Coder, Experienced Forum User, Published Author, Player (68)
Joined: 10/4/2005
Posts: 197
New WIP here It ends at the same point but this time I don't take a hit. Now that I have an idea of how the randomness works in the game, I tried to manipulate it. I found two different ways to handle the catwalk area, both of which gave me a different randomness. I also found different ways to jump to the lower level after getting the bomb, which gave a different randomness. I tried all the combinations, and on my last try I got this. I also got in touch with one of the people who worked on the game. He reposted the same info that is on reddit, but he did explain what the second prize world was for. It was to give the company the chance to run a second contest, if they chose to. I'm hoping to contact the programmer too.
Emulator Coder, Experienced Forum User, Published Author, Player (68)
Joined: 10/4/2005
Posts: 197
Here is my most recent WIP. It ends after using the magnet control box to drop the sub. My rope climbing was as fast as I could find, after 7 different tries, including not using the middle platform. I also made the bomb usage more interesting and faster. EDIT: Mysteriously, the time between closing the menu after selecting the bomb and the world loading was 4 frames shorter, but only if I opened the select menu at a certain frame within a 3 frame range. I did that, because a free 4 frames is awesome. I wish I knew why that time was shorter though. After that point I was a little torn as to what to do about the caterpillar. I have one attempt where I avoid the shot, but then I had to waste 27 frames before I can jump over him without getting hurt. I took the hit, and jumped inside of him just before the invincibility ran out, allowing me to get past him without losing frames, but taking a hit. If I need to take more than 2 hits before getting the hat, I may revisit this area. I also found the RNG for the game. There is a function located at $F1DA which does some math to $436 and $437, and returns a "random" number. This function seems to be called only when a random number is needed, except for some times I don't understand yet. The function is called pretty frequently when enemies are on screen, to randomize things like shots and movement. And it looks like the randomness is seeded by the time at which you open the select menu at the start of the game, and the code you enter. From what I can tell, the only way to manipulate the randomness is by staying near enemies for longer to let the function run. The only other thing I can do is change where shots go by changing my position. I do this in my current WIP, when the caterpillar shoots at me before using the magnet control box. The game has already decided to shoot at me, but when it looks at my position to decide in which direction to shoot it sees I'm in the air and shoots in that direction.
Emulator Coder, Experienced Forum User, Published Author, Player (68)
Joined: 10/4/2005
Posts: 197
Sorry, no progress on my movie today, but I did make quite a bit of progress at understanding the secret prize code. After you enter the code and press start, the game processes this code with the help of a lookup table. I'll spare the details for now, but the code becomes 120 bits of data, or 15 bytes. It then sums up the first 13 bytes, and counts how many times it overflows. It then checks the sum versus the 14th byte, which with the current known password matches. The overflow count is then checked versus the 15th byte, and again matches. These 120 bits are then rolled left 27-28 times (I need to look at that again), and then the first 8 are summed. The sum is compared to the 9th byte, and the overflow to the 10th. If these four checks are ok, the first 4 bytes are copied to a different location, and the bytes are all overwritten at some point. The 4 bytes (which I'm going to call the magic numbers) have operations done to them as you play. When you leave a map that hasn't been processed yet, it uses that map number to do some operations. The operations seem to be slightly different depending on which map is being processed, but what usually happens is this. First, one of the numbers is chosen (depends on map #). The map number is shifted 3 times then added to this number. Then all four numbers are reversed in location (1,2,3,4 becomes 4,3,2,1), and then I believe the numbers are sequentially summed together, starting with the last number. You end up with 4 seemingly random numbers. I played through the game trying to see what would happen when it was time to load the prize world. It processed the magic numbers one more time, then seemed to just load the map without looking at the numbers. I haven't found yet how it checks those numbers, but before loading the map, it did a long loop which filled $0200-027F with more seemingly random numbers. It then copied those to the PPU memory. Later on from there it updated the map number, and continued to load the map. I'm going to keep looking at this part. Another thing I found while doing this is that my thoughts were correct about there being checkpoints in the game. In level 2, when you go to enter the car, the magic numbers are processed in a different way than usual. In level 3 when I drop the first machine part, the same thing happened. In level 4, I think the same thing happened when the barrel was halfway down the waterfall. I didn't see anything like this in the 1st or 5th levels, but its possible I may have missed it. This seems to mean if this processing doesn't happen, the numbers don't work out in the end and the prize world won't load, like in my previous attempts. From what I've seen so far, it might be possible to reverse engineer this code, but I can't be sure yet. I'll keep posting details as I get them.
Emulator Coder, Experienced Forum User, Published Author, Player (68)
Joined: 10/4/2005
Posts: 197
I started working on the new movie. I tested my new code entry method in which I alternate between entering the code and the serial number. I also pressed start as early as possible (which I didn't do in my previous movie). The result? I saved 35 frames. I played through the game to make sure it works (and at the same time testing not getting the gun), which it did. But then I figured as long as I'm testing things, why not try not entering a serial number? It worked too. I remade the video, and I am now 42 frames ahead. Here is my current WIP (only the code entry) if you're interested. It syncs in v2.1.4a. Testing other things, dying takes ~180 frames from the hit to respawning. Until avoiding enemies adds up to that long, dying may not be worth it after all unless I get death warped. I'm still not sure yet though how to health yet though. I may play through a level, see where I need to avoid enemies, and decide which takes the longest and just take a hit. And if I need to die, I'll figure out if I can death warp, or at least die where I'll respawn in the same place.
Emulator Coder, Experienced Forum User, Published Author, Player (68)
Joined: 10/4/2005
Posts: 197
I've been using v2.1.4a on vista, and I ran into two strange problems. First, when I was recording a movie, apparently a reset flag was saved to the movie file, but I never told the emulator to do that. I continued working on the movie with no problem, and I didn't even realize it was there until I replayed the movie. It happened somewhere around frame 2050, and I was working around frame 2300, if it matters. I manually removed it from my movie file and I haven't had a problem since. Later on, the emulator seemed to have "background input" stuck on. Checking and unchecking the option in the menu visibly worked, but typing in other programs made the emulator frame advance and pause/unpause. I ended up closing and reopening the emulator, which fixed it. I had the ram watch open at the time. Unfortunately I have no way to repeat these, but if they happen again I'll post here again.
Emulator Coder, Experienced Forum User, Published Author, Player (68)
Joined: 10/4/2005
Posts: 197
Bag of Magic Food wrote:
Hmm, nice, did the programmer say what the second prize world was even for?
Nope. It was probably to give MTV a choice of which level to release. Who knows. So I had an idea for a possible improvement. It failed, but it got me thinking. I re-read the post on reddit which discussed how the code works. Apparently something is done with it either before every map is loaded, or before each map is loaded the first time. It seems to be some kind of checksum. I'm wondering if by skipping the car scene, the checksum is thrown off because that map is never loaded. If that's true, then it may be possible to create a code which works out correctly even when you skip that part. That's assuming the workings of the code are ever figured out. If you're curious, my possible improvement was to enter the car area, then die. If it warped me back out of that area, the checksum may end up being correct, but I no longer have to go through that area. Too bad dying just brought me back where I die.
Emulator Coder, Experienced Forum User, Published Author, Player (68)
Joined: 10/4/2005
Posts: 197
mklip2001 wrote:
One random thought: you wait a while for the automatic platforms in Stage 1 near the scissors and the oxygen tank. Have you figured out what controls their position? I was wondering if it's possible to catch the platforms sooner. (For instance, if a counter describing their position starts the first time you scroll to their screen, maybe it would actually save time to scroll them on screen before using your bomb underwater, but this is probably not going to work.) Maybe this could also work on the platform area after the ID card in Stage 2.
I'm not actually sure how these run. I don't think they are counted as sprites, so there might be a specific counter for them. I've been hoping to find a way to manipulate these kinds of things, but I haven't had any luck yet. I'm going to take another look though.
Route thoughts: * Instead of taking all the damage in Stage 5, you'll probably save more time taking damage in Stage 3 with the rotating screws, especially the ones where it seems you currently wait for more than one full cycle before getting under them. * You get 1up bonuses in Stage 6. Could you use these to take more damage and save more time? I know that the death costs time, but you might save even more time just from having some hits to spare.
I definitely agree I waste more time waiting for the screws than its worth in some cases. If it that happens again, I'll most likely just take the hit. In stage 6, I'll need to see if my waiting adds up enough to constitute dying. However, dying might not matter much since I think the rides still while I'm respawning. I could take hits all the way to the next waiting area, then die, and grab my next ride with full health. I'll look into that.
Bag of Magic Food wrote:
So there are multiple serial numbers that can work on the same game? Has anyone hacked to find them all?
No need, I'm pretty sure all serial numbers (00000000-99999999) work, and just give you a different winner code. For my TAS i'm just going to use all 0s, since it is the quickest to input. Speaking of hacking though, a few months ago a group on reddit hacked away at this game. Among other things, they got in touch with one of the programmers who revealed there is a second prize code that can be entered at the beginning, giving you a different prize world. No one has managed to find that code yet, but I did hack my way into that second prize world. More details about that here. Also check out the rest of the subthread on reddit if you're interested. I would love to find the second code, and I would definitely do another TAS for that world if the code is ever found. However from what I understand the code is pretty complicated. From what I remember, the code is turned into a checksum before some or all of the levels, and other calculations are performed. When it comes time to warp you to the prize world, if everything works out, you get sent there. If not, you get a minigame area and a message telling you to wait until the contest date. If anyone wants to give it a go trying to figure out how the code works, I would be glad to help out.
Emulator Coder, Experienced Forum User, Published Author, Player (68)
Joined: 10/4/2005
Posts: 197
Bag of Magic Food wrote:
Does that mean there would be some worth to an "any%"/"non-prize-world" run, since you could do a skip that the full run can't?
Maybe, but most likely not. You will around a minute by not doing the car scene, but you will spend time walking to the teleporter. You'll end up only saving ~30 seconds, and the rest of the run will look almost the same unless ways are found to skip through other levels.
Bag of Magic Food wrote:
Wait, you have to enter a serial number? Does that mean you could save a little time by dumping another ROM that had serial number digits that were closer together?
The serial number is not unique to the cartridge. When you entered the contest you get a unique serial number which you would enter at the start of the game along with the code. The serial number gets factored into the winner code at the end of the game, but has no effect on the rest of the game from what I can tell. I don't think there would be any difference if you dumped different cartridges. And I'm going to be sure to describe all this in my description when I finally publish this run.
Emulator Coder, Experienced Forum User, Published Author, Player (68)
Joined: 10/4/2005
Posts: 197
Bag of Magic Food wrote:
Oh, do you suppose events like those were checkpoints the game uses to make sure you're not cheating to reach or complete the prize world?
Something like that. I'm thinking it was a way for the game to know you completed the second level, since there shouldn't be a way around it. They made it look like there was by having a teleporter, but the doors after would stop you. So I looked into some ideas for my final route, here's what I found: The tomato guy starts jumping when I pass somewhere around the middle of the third spring, meaning I can't start him without either getting hurt or stopping until the spring goes back up. I tried collecting the key from level 2, then using it on level 3. Apparently the key is deleted from your inventory between levels, so I can't skip a portion of that level. Not collecting the gun and getting rid of the card quickly will save ~15 seconds from switching items. Not bad. I tested out the two places I thought the infinite bomb might work. In level 1 it took ~600 frames longer to get a bomb after dropping the sub. However in level 5 getting a bomb should save ~40-50 frames in my next run. I tested it off of my current run, and it took ~410 frames to get the bomb before the two springs and the first card. I went back and tried getting the bomb before the TV and the key near the beginning of the level, and it took ~503 frames, but 154 of those were spent switching past the ID card and the gun. It should take around 358 frame ignoring those. I've also found the way items are added to the inventory is pretty strange. Keys are added right next to the boots, but other items are added near the air. When I use most items and they're removed from my inventory, it resets to the air. That becomes handy for the potion, but makes everything else farther away. I may also be able to save some frames in the code entry by not entering the serial number first, but by alternating between the code and the serial.
Emulator Coder, Experienced Forum User, Published Author, Player (68)
Joined: 10/4/2005
Posts: 197
mklip2001 wrote:
STAGE 1 * It's too bad kicking is a little slower... it's really impressive to see radium-plated goodness on the way to the first bomb use. * Your underwater movement seems a little off after coming out of the sub. You come up far to the right for the platforms up to the bomb, and then when you leave the bomb's area, you swing far to the right before jumping out of the water. This may be necessary though. * You take three hits on the springs in the area with the red ball. Couldn't you only take two and still get the red ball to start following you at the same time? If you do this, you can take another point of damage on the mosquitoes at the very end of the level rather than kicking them. Never mind, you need the boots at the start of Stage 2 and you want to be able to deathwarp from the goggles. Still, it might be worth considering to see if you can take another hit somewhere else...
Kicking is pretty entertaining, so I'll most likely trade off some speed for it, I just don't have specific places in mind yet. I will still use the boots when avoiding fails though. You're right, coming out of the water far right is necessary. The platform doesnt let me jump through it, so I have to go around. I think I tried making the tomato start jumping before the 3rd spring and was unsucessful, but it has been a while. I'll add that to my list of things to try. Also, avoiding the mosquitos at the end is very difficult, and sometimes impossible. If I can do it I will, but the boots will most likely be necessary.
STAGE 2 * Nice door and elevator glitches! * Do the UFO's in the tank-driving area cause lag? You let one or two pass you up to drop bombs. * You seem like you get out of the donut-bouncy thing a little late and slow down at the end. (I always was amused by calling it the condom ride, personally.)
I read about the duck-walking door glitch somewhere, maybe an old thread for this game? I found the elevator glitch by just messing around. Pretty nice to see it save some time. I let the UFOs pass out of laziness. When that part of the video I accidentally savestated after they appeared, with no states before. I got lazy and went along with it instead of replaying the video to fix it. If they don't cause lag (they might, I'll check later), I'll do something similar in the final video since I think it's more entertaining then shooting them when they appear. Getting out of that suit is bugged. The game wouldn't actually let me out of it until that point.
STAGE 3 * I'm pretty confused by the beginning of this stage. You have a Juice meter up, which should mean you can fire the ray gun, but then you switch items to the card and then to the boots?! In fact, I don't see a single instance this stage where you use the ray gun. * You have to wait a while for the screw things to move up before you walk under them. Is there enough health in the budget for you to take damage here to save time? It might even be the case that you save more time taking damage here than you do dying after the goggles in Stage 2. * What happens if you try to jump through the ship before putting down the machine parts? Does it instakill you? It's been too long since I played the game to remember. * You seem to slow down a bit more right after getting the key in the bottom-left corner.
I switch items so quickly, the game can't keep up. If you look closely when I go from the card to the gun I don't have a juice meter up at that point. When I switch from the gun to the boots the meter goes up, even though the gun is away. I thought it was fairly entertaining to see that, so I kept doing it. It doesn't save or waste time from what I can see (the boots are an equal distance left and right in the menu). Health is one of the things I'm going to really consider in my final run. I plan to die after getting the hard hat in stage 1, but beyond that I'm not sure yet. Jumping into the ship is instant death, unfortunately. I played with it for a while and couldn't find a way around it. The slowdown is on purpose. The UFO flies back and forth consistently, and if I try to leave the area immediately after getting the key I have to run into it, so I stopped for just as long needed after getting the key.
STAGE 4 * More weirdness with the gun meter, especially when you use the potion. * How can you walk through most of the worms but yet you have to kick the one on the way to the springboard? * After the springboard, you somehow flew through a bee unharmed. Nice!
The worms have a very small hitbox, which is only on their backend. If they are coming at you, you can almost completely walk through them without harm. You'll see when I walk through them I jump, to avoid harm. If they are going away from you, you immediately get hurt, so I kicked that worm to avoid that.
STAGE 5 * Your first damage on the crawler looks really odd, especially since you seem like you wait longer to dodge the monitor's bullet when getting the key shortly afterward. Maybe take damage from the bullet instead? * In the next hallway with the shooting monitors, it also looks like you could take one less hit and instead take a hit from a bouncing spring later.
I was rushing a bit through this level. I couldn't avoid the crawler without stoping and letting it crawl back up. I'm undecided what to do here. In my previous attempts, I used the ray gun to kill it, but I'm most likely going to skip getting the ray gun until the final level (more on that later). I could wait a short time and let it pass, or I could take the hit. From my work on the final level, I may need to take some hits there as well, so leaving myself with only one point may not work too well. For the final run, I'm most likely going to skip the ray gun in level 2. It just takes up space in my inventory, and I never use it. Also, when I enter level 6 I have no item out, so the gun will be there. And I only need the gun immediately after that point, so it will work well. I've found having unused items in my inventory can really take some time. Comparing this run to my previous run where I didn't pick up the ID card, I lose ~5-6 seconds by the end of the 4th world from switching back and forth around it. I'm planning to use the ID card to get rid of it, which will mean no duck-walking through the door after the disappearing platforms.
Brushy wrote:
I did wonder about one thing though, because the menu manipulation seemed odd to me. What's the deal with that?
Do you mean how I handle the select menu? I choose my item and close the menu as soon as I can. It's also faster to close and reopen the menu multiple times than to scroll through it. Here is my finished WIP. Some things to note about the new parts: In stage 4, letting the TVs fall back after getting the card wasn't necessary, but is more fun. I also managed to get the second spring out of my way by jumping just right. In stage 5, I can't quit the minigame even after I collected all those things. I also have to collect at least 3 of the blinking ones to turn on the rides. However the blinking ones add more time on (annoying), so I only collect 3. Later on after falling through the wall, I stop before a clown. I couldn't jump over it without hitting it or the clown on the balloon later on, so I waited. And the pacing back and forth was necessary, kind of. Since I only have one point of health left, I needed to avoid the clowns at the end of level, so I tried to manipulate when they appeared in a way they I could jump over them. Pacing was easiest, and apparently worked. I'll do something more precise in the final video. Now its time to really start route planning. How's my current route? Do you see any possible shortcuts?
Emulator Coder, Experienced Forum User, Published Author, Player (68)
Joined: 10/4/2005
Posts: 197
It seems the newer versions of the emulators make the character in my WIP lose a point of health on the catwalk. He is supposed to have 1 point left after going back through the springs, but instead he dies. I tried hex editing the section that is different, with no luck. If you really want to see my current WIP, it seems you'll have to use an old emulator. Or you could wait a few days when I start working with the newest emulator. Speaking of a WIP, here is my progress for today. The video ends soon after I collect the first key card.
mklip2001 wrote:
I don't have TASing experience, but I'm happy to review runs and suggest possible shortcuts / route changes, or just be general encouragement!
Thanks, any help is handy. My route will be mostly what I'm doing in my WIP, but I do have some ideas for possible improvements that I plan to test. Since you can't see the WIP I'll get a description of my route up soon.
Out of curiosity, though, you mention the infinite bomb glitch. Will that actually save time? It doesn't seem like there are any areas where it will really help to have a long-lasting bomb. What would help is if you could have more than one bomb in your inventory, though.
I'm wondering if after you drop the submarine, if you go back across the catwalk and get an infinite bomb, if that is faster than getting the bomb after the sub/shark area. I'm guessing it won't be, but I want to be sure. I was also wondering if getting an infinite bomb before getting the key in level 5 would save any time. Again, I don't think it will, but it's worth a shot. I'm also pretty sure its impossible to have 2 bombs in your inventory. If I remember correctly from my exploration of the game memory, the bomb has its own special place in your inventory, and there is only one space. You can however have 2 bombs on screen at a time, but they have to be right next to where you get the bombs (not very useful).
Emulator Coder, Experienced Forum User, Published Author, Player (68)
Joined: 10/4/2005
Posts: 197
Brushy, I went over your WIP, and found the parts where my video lost frames. Here's a breakdown of how far apart we were: After the code screen: 297 Same spot on the catwalk: 285 After collecting the bomb, same spot on catwalk: 280 Before collecting the magnet control box: 277 Magnet box disappears: 265 Submarine drops off screen: 267 Black screen after magnet scene is over: 255 Getting in the sub: 253 Sub is at the first wall: 252 Sub is at second wall: 239 Sub is at third wall, until end of your video: 223 The first drop in frames came from the rope climb before the boots, but I've known that's a weak spot in my video. The next interesting thing, it is quite a bit faster to hold down when falling into water. You can see that when you get the magnet box, and when you go to get in the sub. The other major time loss came from my sloppy handling of the submarine. The rest of the frames lost are from kicking. All of these seem pretty easy to add to my strategy, and will definitely save some times, so thanks!
Emulator Coder, Experienced Forum User, Published Author, Player (68)
Joined: 10/4/2005
Posts: 197
Thanks for all the feedback Brushy. What do you mean by using select? I didn't seem to see you doing it in your WIP, but I also didn't watch it frame by frame, yet. As for the reason my video loses its edge over yours, half I know why, the rest I'm not sure. I know you jumped to get the boots differently (and apparently faster) than I did, but you also apparently managed to get to the area to drop off the bomb faster. You also got underwater faster and steered the submarine differently. I'm going to study it more when I start the game over. I re-watched my own WIP as well (since it's been a while) and I saw some places to improve, and remembered a glitch I may try to abuse. I call it the infinite bomb glitch. If you stand where the bombs are given out, drop one, then in the next frame set it off, you pick up another bomb while the first is exploding, resulting in you holding a bomb without a ticking timer. You can hold it for as long as desired it seems, but you do "lose" an item in your inventory until you get rid of the bomb. Another glitch I plan to use is for the prize world. Your character's hit detection goes to crap when you're riding the roller coasters. Standing on the edge of the car pushes you through walls, which allows me to skip much of the level, including the second game room. Other glitches I found include the character being able to move a bit when crouching if you press left+right, which becomes handy on the machine level. Under the plungers you can move slightly after crouching, sometimes letting me escape a few in one duck. I should look at how that works, since the character seems to be in a loop when you do it and after so many frames he will stand up (killing himself). I'm wondering if you can restart that loop somehow to prevent him from doing that.
Brushy wrote:
* Kicking costs a frame. If you can avoid the enemy by any other means, do so
I realized that around the middle of the WIP I posted. If I want to go for full out speed I can try to avoid the enemies, but I think it's also entertaining to see them flip off screen. I'll see how the final run goes to decide how I'll handle that.
*Jumping off a ledge is a frame faster than just walking off of it
I also saw this at some point in my run. You freeze for a second between the walking and falling animation, which is one cause for the slow down. You also fall slower for a little while. This also comes into play if you run over 1 square thick pits. You cross them, but you lose a frame in the process from "falling" into the pit.
*The menus accept input very early
I abuse that a bit in the password entry screen, and the select menu. But not only can you enter buttons early, in some cases you can close the menu and still do things. I'm not sure if I did it in that WIP, but you can press start/a at specific times where the menu is closing while the last letter shows up on screen. Playing through the game after shows the code was accepted. Too bad my run desyncs. If you still can't get it to work I can encode a version. Any ideas how randomness works in this game? It seems to be generated before an area is loaded, and based off of what enemies were around before, which you kill, and when. It doesn't seem to be too controllable. I think that's about it for now. I'll try to get another WIP up soon, assuming anyone can get these to play.
Post subject: Treasure Master
Emulator Coder, Experienced Forum User, Published Author, Player (68)
Joined: 10/4/2005
Posts: 197
I've been working on this on and off (mostly off) for the past several years, but seeing a submission for this movie gave me the kick in the pants I needed to get back to work and get it done (finally). I had a problem with the prize world not showing up which set me back a while. After making my first video of this game, I immediately started working on a better version. I skipped as much as I could, but in the end I got no prize world. After many, many, many, (many) tests, I found skipping the car chase scene and not collecting the ID card after it broke everything. I found this after trying ~10 different ways of entering the code, and then playing through the game each time (major pain). My final run will include that car chase scene unless some way is found to avoid it. But that's ok, the car chase can be pretty entertaining. I have a WIP which is ~15 minutes so far for the first 4 levels. Right now microstorage is down, but when it's back up I'll post it there. For now, here is a temporary filebin post: WIP. As a note, it only syncs for me with FCEUX 2.0.4, which will give you an idea of how long I've been working on this. Sorry for the inconvenience. From the looks of this, my final run will be around 21 minutes, most likely less. This WIP won't be my last. I keep finding things I could improve, and I think I can take care of it all in one more run. And of course I'll be using the most recent emulator version for that. For now I'd like to finish my current WIP, and I'll keep updating that here. Also, if anyone has any tips of things to improve, things I've missed in my run so far, let me know. It will be greatly appreciated. I saw there was another WIP in the discussion thread for the submission, but without microstorage I can't download it. I'll take a look at that when its back up.
Post subject: Console Verification Thread
Emulator Coder, Experienced Forum User, Published Author, Player (68)
Joined: 10/4/2005
Posts: 197
Moderator edit 2020/04/20: The research and its practical applications from this thread have been compiled on the following pages: * List of console verified movies * Console verification guide * Console verification tests Please refer to them for up-to-date information. Original post below. -- As a school project I manged to play the current TAS record for SMB on the actual NES. I was also able to play the warpless run and the walkathon runs. I've been meaning to get my project info online for a while, but here are some quick details. I used the Arduino Duemilanove as the controller for the whole thing. To connect to the NES, I used circuits similar to the ones on the link DarkKobold posted. I hooked the pulse line from the NES to one of the interrupt pins on the Arduino, and had an interrupt occur every time a pulse happened. This was the only reliable method I found to know when the NES wanted buttons. I wrote a lua script to remove any frames that are marked as lag by FCEUX. Then by running my script when a movie is loaded, it will output only frames the NES would actually be interested in. I then stored this information to an SD card. Doing this with SMB proved to be very reliable. Even if the NES starts in a semi-random state, the worst I had to do every time was restart the console once or twice and it worked fine. And if it started fine, it worked until the game was beaten. I've seen it run about 20-30 times consistently. I tried a few other games including Marble Madness, and SMB3. Marble Madness seemed to desync quickly. SMB3 was a lot more interesting. Looking at it on an oscilloscope showed that for every frame, the controllers are pulsed twice. However, looking at the disassembler, I saw that even though the controllers are pulsed twice each frame, only one is read per pulse. If I remember correctly, the second controller is read first, then the first controller. Anyway, when I found the double pulsing, I just changed my code slightly to hold each button press for 2 pulses instead of one. It took quite a few console resets to get it to even get to the level select screen correctly. If it made it there, sometimes it would desync before even jumping over the pipe, causing him to die on the flower. Once or twice he did make it pretty far into the level, even jumping down through the block, but he got stuck. I'll try to get the full details of my project up soon (source code, circuit schematics, etc).
Post subject: Lagged Frames?
Emulator Coder, Experienced Forum User, Published Author, Player (68)
Joined: 10/4/2005
Posts: 197
In an attempt to learn more about how the NES and an emulator works, I've been playing with the debugger in FCEUX. I'm starting to wonder when the emulator counts a frame, and what constitutes a lagged frame? Is it when the program running doesn't look for input during that frame?
Emulator Coder, Experienced Forum User, Published Author, Player (68)
Joined: 10/4/2005
Posts: 197
Dromiceius wrote:
I have one guess as to why the else clause never executes: FCEU.lagged() returns false instead of nil on a lag frame. Try "if FCEU.lagged ~= false then" ...maybe?
The weird thing is, the else clause does execute, but only the gui.text line. I did however try messing with different combinations of false and nil, and == vs ~=, with no luck. Does this run correctly for anyone?
Emulator Coder, Experienced Forum User, Published Author, Player (68)
Joined: 10/4/2005
Posts: 197
I'm trying to get used to lua scripting, and I wrote a basic script to switch to turbo speed for any lagged frames, and back to normal speed for any other frames.
while (true) do
  if (FCEU.lagged()) then
    FCEU.speedmode("turbo");
    gui.text(0, 0, "LAGGED!");
  else
    FCEU.speedmode("normal");
    gui.text(0, 0, "       ");
  end;
  FCEU.frameadvance();
end;
It does switch to turbo when a lagged frame is detected, but it doesn't switch back after the lagged frames are over. Also, "emulation speed 100%" stays on screen all the time. What am I doing wrong, and is there a better way to do that?
Emulator Coder, Experienced Forum User, Published Author, Player (68)
Joined: 10/4/2005
Posts: 197
DeHackEd wrote:
Recording works on .12 and will probably work in .16 as well.
Its possible that I am doing it wrong. I am new at this. :) I can't even seem to load a video with a key press, or from the command like ("-play"), it just loads the game like normal. I would love to get FCEU working on linux, wine is pretty slow for me.
Emulator Coder, Experienced Forum User, Published Author, Player (68)
Joined: 10/4/2005
Posts: 197
Heh, "emulating" windows, emulating an NES. Wine works, I guess. Its still no substitute for running FCEU using binaries built for my machine. I can live with using it, but I would prefer working with the linux version. Thanks
1 2
6 7 8