Posts for Kejardon

Experienced Forum User
Joined: 8/9/2004
Posts: 123
Puzzle time! How do you kill a Ridley using the wave beam, spazer beam, plasma beam, 10 missiles, 10 super missiles, 12 power bombs, the x-ray scope, and most importantly, a reserve tank? Answer (warning: May cause seizures. Especially when I miss a shot)
kwinse wrote:
Kejardon wrote:
Kriole wrote:
Samus is damaged by a Rinka in the opening.
That's a script action; no damage. ... it just dawned on me I know way too much about SM.
It took THAT to make you realize?
Experienced Forum User
Joined: 8/9/2004
Posts: 123
oh wow. I never managed to pause the game twice in a row without Samus dieing - I assumed that the check for death came before the check for pausing. Apparently I just missed the frame ~50 times or so instead. >_> I thought that glitch would only manage to delay death for a second or two, not cheat it indefinitely until you get a health pickup. It's actually kinda disappointing. But used in moderation, I think it can still look good. JXQ: I've lost count.
kwinse wrote:
Kejardon wrote:
Kriole wrote:
Samus is damaged by a Rinka in the opening.
That's a script action; no damage. ... it just dawned on me I know way too much about SM.
It took THAT to make you realize?
Experienced Forum User
Joined: 8/9/2004
Posts: 123
7E0DBE has the total subpixel change in position. There's stuff missing still, though - it doesn't add in movement from environmental effects (0B56 - 0B5D, moving floor in Wrecked Ship, falling sand in Maridia) and it doesn't account for collisions. 0DA2 - 0DB9 tell how far Samus moved *last* frame in various ways. It all depends on what you're particularly concerned about though. There's no best-choice for every situation. Saturn: For Speedbooster with only one tank, are you abusing the life-lengthening glitches via pause screen? Samus will not die if the game is currently pausing or unpausing, and with perfect timing you can even enter a room with 00 energy and manage to start pausing the game before Samus dies to get as much as a two-pause extension before Samus dies. You just need to pick up even a 5 health drop right before the game finishes unpausing and before you start pausing again to be able to stay alive between energy recharges. And with a reserve tank set to manual, you can keep refilling only enough health to finish the unpause transition and repause again with 01 energy, so you can for many purposes almost double the amount of energy in the reserve tank.
kwinse wrote:
Kejardon wrote:
Kriole wrote:
Samus is damaged by a Rinka in the opening.
That's a script action; no damage. ... it just dawned on me I know way too much about SM.
It took THAT to make you realize?
Experienced Forum User
Joined: 8/9/2004
Posts: 123
A very simply programmed bot would be able to do anything a human can do. It would just take eons to do so. A complexly programmed bot would not be able to do anything a human can do, but it would be able to do many things much much faster. I think there's a problem with the original question. <_<
kwinse wrote:
Kejardon wrote:
Kriole wrote:
Samus is damaged by a Rinka in the opening.
That's a script action; no damage. ... it just dawned on me I know way too much about SM.
It took THAT to make you realize?
Experienced Forum User
Joined: 8/9/2004
Posts: 123
The speed of the APU is critical with room transitions that load new music. I've already reprogrammed it a bit to speed it up ~20% (39 frames is now 32 frames). Super Metroid doesn't do anything particularly unusual or fancy, and it's a well known game. A good emulator should be able to emulate it nigh-perfectly. And from what I know of the game, testing room transitions that load new music and graphics and a large room (west exit of Wrecked Ship would probably be really good) would probably be the best overall test of timing you can do - Lots of data movement between fast ROM, slow ROM, RAM, APU, VRAM, and DMA. There's no reason for different tries to change, so if the SNES is more than a frame or two different than the emulator, the timing is off somewhere.
kwinse wrote:
Kejardon wrote:
Kriole wrote:
Samus is damaged by a Rinka in the opening.
That's a script action; no damage. ... it just dawned on me I know way too much about SM.
It took THAT to make you realize?
Experienced Forum User
Joined: 8/9/2004
Posts: 123
Just tested: Samus can stand 5 pixels right onto a hole, and 4 pixels left onto a hole. 4 holes and 5 good blocks: 21 on, 7 off, 25 on, 7 off, 25 on, 7 off, 25 on, 7 off, 20 on. Going exactly 8 pixels per frame with perfect pixel positioning (position must alternate between XXX4 and XXXC) should work, and is within Samus's running capibility. Tested (used codes to get correct speed and positioning) and it works fine. It should be easy to do in a TAS. *Optimizing* it would be tricky though, and should be done empirically, not theoretically. So have fun. :P
kwinse wrote:
Kejardon wrote:
Kriole wrote:
Samus is damaged by a Rinka in the opening.
That's a script action; no damage. ... it just dawned on me I know way too much about SM.
It took THAT to make you realize?
Experienced Forum User
Joined: 8/9/2004
Posts: 123
Samus *can* run fast enough to go over a hole. Samus is 11 pixels wide, and a hole is 16 pixels wide. Samus only needs to go 7 pixels (and have correct positioning) to go over a hole without falling in it. Crumble blocks are a bit more complex. Keep in mind that Samus can be standing on two blocks at once (and also hit two ceiling blocks at once). In such a case, the game alternates the first block to check according to a frame counter... I forget which one right now. If the first block checked is solid, the second block is never checked. If the game checks the left block one frame and then Samus moves far enough, a block may be skipped entirely as the game checks the right block.
kwinse wrote:
Kejardon wrote:
Kriole wrote:
Samus is damaged by a Rinka in the opening.
That's a script action; no damage. ... it just dawned on me I know way too much about SM.
It took THAT to make you realize?
Experienced Forum User
Joined: 8/9/2004
Posts: 123
Because you're looking for the wrong thing. There is a minimum and a maximum speed allowed for space jumping. If you want to know if Samus can space jump, you need to check her vertical speed (7E0B2D). 0080 to 0500 for water, 0280 to 0500 for air.
kwinse wrote:
Kejardon wrote:
Kriole wrote:
Samus is damaged by a Rinka in the opening.
That's a script action; no damage. ... it just dawned on me I know way too much about SM.
It took THAT to make you realize?
Experienced Forum User
Joined: 8/9/2004
Posts: 123
hero of the day wrote:
Let me explain how this works. I recently found out that the elite pirates can take damage even when they are not in their yellow attack form. When they throw their arms at samus, they are actually vulnerable for 2 frames. If you hit them with a charged/plasma/wave/ice, you will do 900 damage. They only have 1,800 hp, so 2 hits are required. If you turn on the x-ray just after it makes first contact and wait for 10 frames, they will become vulnerable again and a second hit will happen from just the one beam, killing them instantly.
I first found this out on accident with super jump echoes. :P That might be the only place where super jump echoes are an actual useful weapon. Though, it's apparently not very feasible to do so quickly. Saturn did so I think, but I think it was actually slower than using super missiles normally - it was useful mainly because it saved weaponry. Hmm. Come to think of it, it might be interesting to use the enhanced chainsaw beam on them... ::edit:: Or not. If they block it, game crashes. If they are damaged by it, they get standard plasma invincibility, and it still takes 6 hits to kill them. :/
kwinse wrote:
Kejardon wrote:
Kriole wrote:
Samus is damaged by a Rinka in the opening.
That's a script action; no damage. ... it just dawned on me I know way too much about SM.
It took THAT to make you realize?
Experienced Forum User
Joined: 8/9/2004
Posts: 123
Warp wrote:
I assume that in most console games all jumps are hard-coded into the machine code, ie. they do not contain jump addresses read from a variable or such, which could be abused.
This wouldn't be accurate at all. Many, MANY jumps are actually done according to data in RAM. Overflow an index table, or rewrite a particular pointer in RAM, and walla, you have a subroutine call to RAM. Actually overflowing the table or rewriting the pointer would be a tricky feat though. Breaking the stack in a useful way actually sounds a bit harder than that. It's pretty common to break the stack in a non-useful way though. :P
Warp wrote:
And of course even if you find a memory-corrupting bug in some game, the chances that it's such a bug that you can abuse it to write any values you want to the desired memory address are rather small. :)
Rather small is an understatement. Saying that 'Rather small is an understatement' is an implied understatement. This is the sort of thing comparable with throwing a penny 20 feet and manage to get it to land and stop perfectly on a itty bitty pedastal. On the penny's side. With only about 10 tries. The most likely way I can think of this being accomplished is with something like a demo recorder that records button presses every frame and writes that to RAM, and then some bug to manage to call that RAM as code. I do not know of any such demo recorder. Nor do I know of any bug that allows you to call any particular spot of RAM you want as code. I kinda doubt anybody's going to take me up on my offer anytime soon. :/ It'd be simply awesome if it ever did happen though.
kwinse wrote:
Kejardon wrote:
Kriole wrote:
Samus is damaged by a Rinka in the opening.
That's a script action; no damage. ... it just dawned on me I know way too much about SM.
It took THAT to make you realize?
Experienced Forum User
Joined: 8/9/2004
Posts: 123
It's possible to freeze many games without killing the sound. On the SNES especially, where the sound is handled by a seperate processor entirely. If you hit a BRA $FE, I'd say you frozen the game well enough.
kwinse wrote:
Kejardon wrote:
Kriole wrote:
Samus is damaged by a Rinka in the opening.
That's a script action; no damage. ... it just dawned on me I know way too much about SM.
It took THAT to make you realize?
Experienced Forum User
Joined: 8/9/2004
Posts: 123
The glitch in Super Metroid I referred to dumps a graphic image into RAM where it DOESN'T belong. It overwrites a ton of variables that drastically change the current status of the game. Triggering the glitch different ways will change the RAM differently - I haven't looked into it enough to figure out how. There is no known way to call said RAM as code though, and it'd be basically impossible to program how you'd want to anyways. I wasn't referring to a glitch in Final Fantasy 6, I was saying that it loads code into RAM and then executes it. I don't know how often it does it, but I do remember seeing it happen during the intro scene where Terra, Biggs, and Wedge are marching to Narshe. I don't know of any way to edit the code before it's run though.
kwinse wrote:
Kejardon wrote:
Kriole wrote:
Samus is damaged by a Rinka in the opening.
That's a script action; no damage. ... it just dawned on me I know way too much about SM.
It took THAT to make you realize?
Experienced Forum User
Joined: 8/9/2004
Posts: 123
Super Metroid has a few glitches on par with that (most well-known is the space/time beam). But to actually program something to make a significant mod... that's not really feasible unless a bug lets you rewrite RAM however you please, as easily as a hex-editor. And even then it might still be real difficult to call the code when and how you want it (with free reign with a hex-editor, though, I know it'd be a piece of cake in Super Metroid) If someone found such a bug or something that works as a hex-editor and a viable method of accessing RAM as code, I wouldn't mind programming the 'mod' for them. :P ::edit:: On the topic of ROM and RAM, there is no way to rewrite existing codes in ROM. Using RAM as program space is a bit unorthodox (I don't know if the NES can do it at all), but IIRC FF6 does actually do so a few times, and pointers to code are often stored in RAM. In a LoROM game it'd be easy to hijack such pointers to a bit of unused RAM in 7E:0000 - 7E:1FFF, and if necessary, JML from there to a larger chunk of unused RAM. Finding a good unused chunk of RAM may likely be the hardest thing to do, actually.
kwinse wrote:
Kejardon wrote:
Kriole wrote:
Samus is damaged by a Rinka in the opening.
That's a script action; no damage. ... it just dawned on me I know way too much about SM.
It took THAT to make you realize?
Experienced Forum User
Joined: 8/9/2004
Posts: 123
There's no way to open that door with a normal beam from that screen, no. A door on the *far* left can be opened from the *far* right pretty much all the time, a door aligned on the right of a screen can be opened from the *far* left in only very specific conditions, and I don't think there's any way to open doors on the top or bottom of the room with a looped beam. In your case, even if it was a door on the right you wanted to open, you're not at the far left of the room anyways - there's that secret powerbomb pack that's farther left of that screen.
kwinse wrote:
Kejardon wrote:
Kriole wrote:
Samus is damaged by a Rinka in the opening.
That's a script action; no damage. ... it just dawned on me I know way too much about SM.
It took THAT to make you realize?
Experienced Forum User
Joined: 8/9/2004
Posts: 123
If your total energy (counting reserves too) dips below 30, enemies will only drop energy until your energy rises back up to at least 50. I'd have to check the code again to see if it was inclusive/exclusive, but I know those are the borderlines.
kwinse wrote:
Kejardon wrote:
Kriole wrote:
Samus is damaged by a Rinka in the opening.
That's a script action; no damage. ... it just dawned on me I know way too much about SM.
It took THAT to make you realize?
Experienced Forum User
Joined: 8/9/2004
Posts: 123
Wow this is offtopic... but oh well. :P I have to agree too. Speedruns that are blazingly fast are interesting if you have an understanding of the game (and the specific mechanics used in the speedrun) already, but otherwise, the blazingly-fast-ness is kinda boring. Entertainment is accessible for anyone though. I found this movie and was well entertained, even though I hardly know anything about DI: http://www.youtube.com/watch?v=1jBBZk_7EWE This is the sort of stuff I wouldn't mind going from game to game watching, even if I have no idea what the game is much like. Speedruns tend to be much less interesting to me, even if I know they're impressive. ::edit:: and naturally, the video doesn't seem to be working right now... ;>_>
kwinse wrote:
Kejardon wrote:
Kriole wrote:
Samus is damaged by a Rinka in the opening.
That's a script action; no damage. ... it just dawned on me I know way too much about SM.
It took THAT to make you realize?
Experienced Forum User
Joined: 8/9/2004
Posts: 123
It's nothing much special. The enemies will respawn individually, shortly after the explosion clears or the item they drop is picked up or disappears. However, they don't visibly appear and start moving until all 5 have respawned. You can easily snipe them while kneeling on the ledge and still get the drops - item drops have pretty large hit boxes. And as a plus, you can kill the ones that have respawned even if they're not visible. It'd probably make it faster to manipulate them all to drop good items that way - split them up into 2 or 3 groups to kill at a time. And why did the server have to go and shut down *right* as I tried to submit my post?
kwinse wrote:
Kejardon wrote:
Kriole wrote:
Samus is damaged by a Rinka in the opening.
That's a script action; no damage. ... it just dawned on me I know way too much about SM.
It took THAT to make you realize?
Experienced Forum User
Joined: 8/9/2004
Posts: 123
There's not really a speed limit. I once disabled the code to kill projectiles when they went offscreen. My beams eventually went so fast that they reversed direction (beam speed only goes up to 127.255 pixels per frame, then switches to -128.000 pixels per frame), returned to where I fired them from, stopped, and then continued moving forward again. And JXQ explained the speed plenty well. :)
kwinse wrote:
Kejardon wrote:
Kriole wrote:
Samus is damaged by a Rinka in the opening.
That's a script action; no damage. ... it just dawned on me I know way too much about SM.
It took THAT to make you realize?
Experienced Forum User
Joined: 8/9/2004
Posts: 123
Samus's super missiles accelerate at the ludicrous rate of 1 pixel per frame^2(On NTSC *and* PAL, so PAL super missiles are slower in real time). There's nothing faster in the game, so generally it's better to start out as far from the gate as you can and fire than to run and gain speed to fire. There are of course some exceptions. The most well known is that firing gives an additional positional boost which can be significant, especially diagonal up-left. If you can gain speed before you're able to fire and keep it till you can, then a small position loss can be overcome by a large initial speed. But it has to be a *large* speed boost and a *small* position loss: In only about 9 blocks, super missiles will already be moving at 17 pixels per frame, fast enough to go through single blocks. Also sort of in the same vein, Super Missiles need to be within 4 blocks of the screen, else they disappear. If you want them to pass two blocks at once, you'll have to keep up with them somehow, since if you do the math, the Super Missiles will have to travel for 34 blocks to be able to pass 2 blocks at once (assuming you start from rest). There's also a bizarre little oddity: Firing to the left will give her projectiles a speed boost equal to Samus's last frame's subpixel change in vertical position (3/4 a pixel up is the same as 3/4 a pixel down). Blame that on poor RAM management. And one last short note I must've forgotten to mention here. There is actually code that is supposed to keep super missiles from going through walls. It *utterly* fails to ever work: The super missiles' second projectile will hit the wall and explode, but the first projectile will go through it anyways. And the first projectile is for all practical purposes the entire normal super missile.
kwinse wrote:
Kejardon wrote:
Kriole wrote:
Samus is damaged by a Rinka in the opening.
That's a script action; no damage. ... it just dawned on me I know way too much about SM.
It took THAT to make you realize?
Experienced Forum User
Joined: 8/9/2004
Posts: 123
I have an idea. kilojoules from M2K2 discovered a new glitch that might have some interesting applications. Why don't we talk about that instead? :P
kwinse wrote:
Kejardon wrote:
Kriole wrote:
Samus is damaged by a Rinka in the opening.
That's a script action; no damage. ... it just dawned on me I know way too much about SM.
It took THAT to make you realize?
Experienced Forum User
Joined: 8/9/2004
Posts: 123
P.JBoy wrote:
upthorn wrote:
P.JBoy wrote:
upthorn wrote:
Fact: without testing all possible input combinations, you cannot be certain you got a perfect time.
That is not true. Some input combinations can't affect anything at all.
But you can't be sure which is which unless you disassemble both the ROM and the Emulator and work through it all to make sure of the behavior on each press.
Or ask Kejardon
moozooh wrote:
Kejardon wrote:
I've been wrong before as well
Sorry, not 100% reliable. :)
I can be certain about a few particulars, including frames during which input won't matter, or certain inputs that don't do anything. So you don't need to test *all* possible input combinations. Only about sqrt(all possible input combinations). Which is still an obscenely huge number that would take a quantum computer to complete in any reasonable amount of time.
kwinse wrote:
Kejardon wrote:
Kriole wrote:
Samus is damaged by a Rinka in the opening.
That's a script action; no damage. ... it just dawned on me I know way too much about SM.
It took THAT to make you realize?
Experienced Forum User
Joined: 8/9/2004
Posts: 123
The timer uses an index (7E05B6, incremented every NMI, aka every real-time frame) for a table of 01's and 02's. Every active (aka normal gameplay) frame, it will decrease the clock by that much. However, since 7E05B6 can be incremented and skip over 02's during something like a room transition, the end time for a room can end up 1/100th of a second faster/slower even with identical gameplay for that room. It's not really something to worry about though. It's really insignificant, and delaying to get a better time index for a room will give you a net gain of 0. You'd have to delay once and get a better index for *two* rooms. And that time is only for Ceres - it doesn't help your end game time nor real time.
kwinse wrote:
Kejardon wrote:
Kriole wrote:
Samus is damaged by a Rinka in the opening.
That's a script action; no damage. ... it just dawned on me I know way too much about SM.
It took THAT to make you realize?
Experienced Forum User
Joined: 8/9/2004
Posts: 123
If you play with the super missile fix I have online for that, you might stumble over it. Super missiles, as the text file online says, consist of two projectiles. The second projectile is not always deleted correctly, and you can end up overwriting a live projectile with a new one. This ends up with all sorts of bugs, like super missiles popping in and out of existence, changing directions in mid-air according to Samus's aiming (guided super missiles! ... no, I'm not going to implement that), and Samus firing explosions instead of super missiles. I'm in the process of fixing that. Specifically, I'm deleting the second projectile. It's only used for preventing super missiles from going through walls, and the code to do that doesn't even work - super missiles will go through walls regardless. I'm also rewriting that code so super missiles actually won't go through walls (unless you get them going obscenely fast) so it'll work as it was intended. Unfortunately, the bug is useless for opening that gate, as far as I can see. You won't get the guided super missiles or randomly spawning ones without the multiple super missile fix, so even though you can get fast-moving super missiles on the other side of the gate, they won't be moving towards the trigger.
kwinse wrote:
Kejardon wrote:
Kriole wrote:
Samus is damaged by a Rinka in the opening.
That's a script action; no damage. ... it just dawned on me I know way too much about SM.
It took THAT to make you realize?
Experienced Forum User
Joined: 8/9/2004
Posts: 123
actually, you aren't firing the super missiles from the same height. The second one is 3 pixels lower than the first one. There's a feature in the game where, if you press the fire button one frame early, it will fire *next* frame. That's probably affecting your tests. I've poked around the super missile code. If you want to get it to go through two blocks, you'll need the super missile to travel through 2 screens. No other exploits look feasible at the moment - a fast diagonal shot looks like the best option still.
kwinse wrote:
Kejardon wrote:
Kriole wrote:
Samus is damaged by a Rinka in the opening.
That's a script action; no damage. ... it just dawned on me I know way too much about SM.
It took THAT to make you realize?
Experienced Forum User
Joined: 8/9/2004
Posts: 123
wow, I need to check this topic more often. Nice boomerang trick, I don't know why I never thought of using that for getting stuck in doors. >_< Saturn: I don't remember saying it was impossible, though I might've. But I've been wrong before as well, so don't shut it down *yet*. Although, I don't have any ideas at the moment that would succeed in opening the gate. I know that, with a ton of speed and positioning, you can get a super missile to pass through and open the gate from the left in the same way you do it from the right. I'm assuming you've already played around with that and confirmed it's impossible to get the necessary speed in that space. I've completely disassembled gate triggers of all types already. You have to hit the block the trigger is on with a super missile - there's no other viable tricks for opening the gate. There's a bug with super missiles that I need to fix for Insanity anyways, so I'll start disassembling that code and see if I can turn up anything useful there.
kwinse wrote:
Kejardon wrote:
Kriole wrote:
Samus is damaged by a Rinka in the opening.
That's a script action; no damage. ... it just dawned on me I know way too much about SM.
It took THAT to make you realize?