What happens is you blow it up right at the beggining of the game, before getting any parts ? Do you get to play the last level or you get a gameover ?
Volt Kraken No-Orb Jet Bike TAS:
http://www.youtube.com/watch?v=S2a-Pu454J4
For those who liked the Jet Stingray stage TAS (in Mega Man X4) or want to see Alia stop talking. Not part of any full run (I continued from a slight modification of paul_t's movie).
Yes, I know already. The game timer does not run when X/Zero is shooting the orbs at the door.
I know Angerfist wants to do a "classic style" zero (beat all 8 bosses before proceeding to the final area, although the specifications of this are currently pending, detalied later in this post). I may or may not do a low % zero independently of AngerFist though, depending on how things go.
No, infact, it's gotten worse. Contemplating what FractalFusion had said, I tried various inputs to get the god damned cannon to fire straight away.
Finally, after a collection of crap, I had success! However, this success was short lived as the input following the stage was horrendously poorly optimized, as it was done through a lazy keymashing macro I made while turboing. "No problem," I had thought, as I believed that the input made during the "oh shit it's gonna crash! USE THE CANNON OR THE SHUTTLE, LUKE" scene was irrelevant and wouldn't affect the outcome of the cannon's success.
Lo and behold, after hexing in almost completely optimized input of alternate key input, when I had finally reached the firing scene, the colony was not destroyed. This leads me to believe there is a counter of sorts, rather than a specific "it will succeed/it will fail" 1/0 value. The tedious part here is that I have no fucking clue how I'd optimize or manipulate something that I have no idea how to actually find.
Other than this point, I did a bit of semi-optimized testing in regards to the boss "re"fights that would occur in a low% run. Let me just say that zero utterly rapes everything, so much that the only boss that x would even have a chance of beating faster is the final form of sigma himself due to his weakness location. Everything else falls to sdc without too much trouble outside of iggy glow due to his teleporting around, that bat dude due to his flying around, and the griffin type dude due to his running around and diving. The blob falls before his second form, the eyes die suitably fast outside of the green one, and ultimate armour X doesn't even stand a chance.
Basically, SDC is king in x5.
Now, on the topic of a "classic" run, there's one main point I can think of:
- Should the cannon be manipulated to fail as opposed to firing either right away (and succeeding), or after all 4 parts have been gotten (and then succeeding), so that the spaceship parts aren't completely worthless to actually get? This adds a bit more time onto the run due to the extra cutscene that it would incur, but would make more sense.
I was previously under the impression that if you succeed in firing the cannon, dynamo and all related events would no longer appear after boss fights, but after checking, that would not seem to be the case. Oh well.
/end wall of text
even considering Ultimate X's Nova Strike speeds up movement somewhat? i guess i can believe that.
hell no. just to add another long cutscene and another Alia cutscene? sounds counterproductive for a speedrun, dont you think? the cannon must succeed.
firing the cannon should be done asap because it spends 2 hours on the game's clock, which are needed to have Hyper Dash asap. for those that don't know, the bosses' levels determine what rewards you get. when they're at level 8 or higher, they give enhancement chips (Hyper Dash, Quick Charge, etc.) and the levels are determined by how much time has gone by and by rank.
Interestingly enough, having the cannon succeed before beating any levels still only has the first boss you fight at level 3, kind of defeating the point of firing it so early outside of a virus level run. Thusly, firing the cannon has seemingly no effect on the current hour. If we beat one of the main bosses and get a GA rank, it should put the boss levels to 8 from that. Probably need to test that though.
Something I found while playing around normally and then transferring an almost complete memory card save from psx to pcsx is that the ability you get from the griffin dude more or less destroys the ability to do a sdc, at least at the rate available prior to having it (since it's executed by dashing and then slashing in a very short period of time) so even though the jumper upgrade might come in handy in other stages, the fact that it's bound to cost time on boss (re)fights is a downside of massive proportions.
Something else I pondered, and even just checked (but was shot down) was doing the first virus level, obtaining a PA rank from it, and then doing plantman's stage to get the z saber powerup. if it doubled the damage a sdc hit did, it might've evened out the time it takes to do the stage. This was shot down though by the fact you can only go up one rank/stage though, and that parts take 2 levels to make. A pity.
not if you use Zero. Zero starts at SA rank, which adds 2 boss levels. so it most certainly does add 2 hours.
no need, cause that's exactly what i did in my run. i beat Dinorex with Zero, got a GA from him, fired the cannon (and shuttle, but that strangely doesn't add any time), and entered and exited out of Dinorex to add the one more hour. when i fought Grizzly with Zero, he was lvl 8.
that's why he's either done near last or not at all. but there are other ways to cancel saber swings besides dash. ducking works, and some people have said using forward is a decent substitiute.
for those that haven't seen it, here's my 8boss speedrun.
Joined: 4/21/2004
Posts: 3517
Location: Stockholm, Sweden
Atma and I have literally busted our chops for weeks trying to get the right cutscene (the one where the colony gets destroyed) optimized. We obviously can optimize the texts, but thats where the problem is. It is related to when we kill Sigma and the buttons we press during the texts. For instance, this optimized version: http://files.filefront.com/movie+optimized+sigmapxm/;12200578;/fileinfo.html kills sigma very fast. Now, if you either play the following cutscenes in realtime or frame advance, your chance of getting the right cutscene is very low.
However, this version, http://files.filefront.com/movie+unoptimizedpxm/;12200604;/fileinfo.html which is an unoptimized Sigma battle has a much higher ratio of getting to the right cutscene, played in realtime, but has a bit lower chance of succeeding when you frame advance. The first link is our current WIP. If anyone (Fractalfusion, Satoryu?) is interested in helping us getting passed this extremely annoying situation, then by all means, grab our WIP and go nuts. Because once this is done, we will be able to progress a lot faster.
Edit:
We are using the following plugins:
Graphics: P.E. Op.S. Soft Driver 1.18
Sound: Pete's MIDAS Audio Driver 1.7
First and Second controller: N-Rage 0.95
CD-ROM: P.E. Op.S. CDR Driver 1.4 (Interface: W2K/XP IOCTL scsi commands, Read mode: BE_2 (ATAPI SPEC_2), try auto detection, Caching mode: Read ahead, "use additional.." is enabled, "try again reading on error" is enabled; 5 and subchannel reading: "Don't read..").
Bios: SCPH1001.bin
Joined: 4/21/2004
Posts: 3517
Location: Stockholm, Sweden
Quick update. We are done with the following stages: Mattrex, Grizzly Slash, 1st Dynamo, Duff McWhalen and very soon, Squid Adler. I think there are many parts which are done quite fast so I think you will enjoy the run once its done.
Some bad news and some worse news.
Bad news: We still only got past squid adler, I didn't really do much on it past that point due to laziness and heat.
Worse news: turns out that converting it to the pcsx 0.0.6/7 movie format effectively destroys all the progress that we've made. It first desyncs right at the very start on the first capcom fmv, I added in a frame, and it synced past that.
"All good then" I thought. Turns out it's not quite so simple. It played through about 2 and a half seconds of the intro stage before Zero hits an enemy he didn't previously, causes hit lag as a result, and then proceeds to just kinda screw around until he eventually dies. "Maybe I can just redo the initial portion and it'll work out" I thought again. I proceeded to do such and then copied the input to the existing file. After a little bit of editing to make the text work out nicely I watched it some more. "It finally syncs! probably," but moments later Zero was about to jump up the wall towards the ladder that leads to sigma and chickened out, turning his back to it.
At this point I thought "yeah, fuck that. I'm not going to spend hours editing input to try and successfully resync this". All the progress we've made could *almost* be considered wasted, except for the fact we have 5 stages of routes and such we already know how to use.
So yeah. We will almost certainly be restarting this run from the beginning, so progress will be set back a fair bit.
Information about possible desyncs in v0.0.7.
While making the TAS in v0.0.7 (I use test4, but it might extend to v0.0.7) occasionally after stopping the movie and playing it back later, the movie desyncs for no reason at all. However, when I load the latest savestate, it fixes itself.
I suspect that it has something to do with bad implementation of bulletproof rerecording.
I do not know if this is the problem or not.
I've had that problem occur in another movie, but it isn't the problem that has occured here. The previous movie was made in v0.0.5, and while it succeeds in the conversion, the timing must be ever so slight different enough that it it fails to accurately skip the first fmv, and if resynced, just continues to desync due to unknown reasons.
I finally figured out what makes the cannon work or not. Using RAM search, it was quite easy to find.
I set up the position again (beating Grizzly and Firefly and entering Grizzly's stage), then used RAM search to find the RNG (I know it changes during Grizzly's stage and it doesn't at the stage select screen). The RNG is at memory address 93F70-93F71. But that's not all.
While doing a number of tests, I discovered a strong correlation between the 1-byte value of 93F70 and success. The cannon didn't succeed often but on the first occasion it did, the value of 93F70 was 6. This led me to conclude that low numbers cause success. Sure enough 7 worked as well. 8 didn't work, so 7 seemed to be the largest number. But I decided to check 128+ just in case, and sure enough, it worked as well. Further tests revealed 64+ and 192+ worked, but 32+ didn't. So in conclusion, the game takes mod 64 and makes it success if the result is less than 8.
Of course, that was for two parts. For no parts, I discovered that instead of 8 it is 4. So the probability of success with no parts is 1/16, a lot higher than expected.
Here's the reason why Atma and Angerfist had that problem though: RNG values are thrown whenever the flashes occur in the cutscene of ____ blowing up (I can't fill in the blank). Once it switches to the war room cutscene, it doesn't change anymore. 8 RNG values are thrown at the stage select screen (always), then one value when the success is to be determined.
If the probability is 1/16, you may wonder why success "almost never happens". It's because every time you reset, it seeds the RNG with a fixed number. Then when you load your save and launch the cannon, it always comes to the same RNG number, which is fail. So if you are speedrunning this game[Edit: segmented and want to reset, reload, retry for the cannon], you should start a new game or training with Zero on Xtreme, game over, and quit to main menu.
i've tried it on console, and never had success. i don't think i understand what has to be done. do you have to get a game over when you first start the game? can you change the difficulty after you get the game over?
regardless, i applaud you for figuring this out.
I meant that if you were segmenting and you wanted to reset, reload, retry, you should not jump in right away but play a new game or training (and game over) to change the RNG value.
I don't know if this happens for the PC version. Cremator said that reset, reload, retry worked for him eventually but having the cannon work was "unheard of". Maybe unheard of from console players?
I found out the problem.
When converting to v0.0.7 format, the address 2C (which is the controller data offset) erroneously points to address 76 (the 'D' in "NOMOVIEID") instead of 77, where the controller data is supposed to start. Changing it to 77, I was able to run the optimized intro movie (that Angerfist posted) completely without desync.
Try it and see if you can recover your movie.
Huh, I didn't notice that. What's stranger is that despite not noticing that, I still fixed it in another movie file that I added an extra frame to. And on top of that, the one that has an extra frame added to it is a couple of frames faster due to slightly different enemy placement.
As things go, we decided to go with the version that requires us to redo essentially the entire run (that has an extra frame in the intro) to fix up a couple of other minor things, but for people who wanted to see how far we had gotten, here is a pxm (for those without the iso, Part 1 and Part 2 are on youtube).
Thanks anyway FF, it'll be good to be able to compare to that movie without having to use 0.0.5 in a seperate directory.
Joined: 8/14/2009
Posts: 4089
Location: The Netherlands
Okay, recently I've been doing some research into Mega Man X5's RNG.
The RNG consists of two 1-byte values, 93F70 and 93F71. For convenience, I'll call them RNG1 and RNG2, respectively.
Everytime the RNG cycles, it does the following calculations:
-Take RNG1's value unsigned and a variable (let's call it A). If it's between 0 and 85, A=0. If it's between 86 and 170, A=1. If it's between 171 and 255, A=2.
-For RNG1, add (3*RNG2) and A.
-For RNG2, multiply by 3 and add A.
Or more mathematically put:
-if RNG1 >= 0 and RNG1 <= 85, A=0
-if RNG1 >= 86 and RNG1 <= 170, A=1
-if RNG1 >= 171 and RNG1 <= 255, A=2
-RNG1=RNG1+(RNG2*3)+A
-RNG2=(RNG2*3)+A
I also wrote a program in C++ that predicts RNG values.
Language: C++
#include <iostream>
#include <algorithm>
using namespace std;
char rng1, rng2, a;
int loop;
int main(){
//seed: 55//13 is the game's starting seed
rng1=55;
rng2=13;
loop=0;
while(loop<20) {
//program loops 20 times, rolling the RNG 20 times
//change this number if needed
//display current RNG values
cout << int(rng1) << ", " << int(rng2) << endl;
//uses signed values instead of unsigned
//otherwise the values are the same as in the post
if(rng1 >=0 && rng1<=85) { a=0;}
if(rng1 >=86 || rng1<=-86) { a=1;}
if(rng1 >=-87 && rng1<=-1) { a=2;}
rng1 = rng1 + (3*rng2)+a;
rng2 = (rng2*3)+a;
++loop;
}
//stopping instant program exit the noob way :)
string dump;
cin >> dump;
return 0;
}
This may help in finding improvements, especially for the cannon.
As for how to manipulate it, from what I've found out so far:
-Jumping as either X or Zero advances the RNG twice more.
-Pressing Triangle to shoot the Z-Buster as Zero advances the RNG once.
-Doing either the first or the second slash as Zero advance the RNG once each.
And probably a bunch of other things. This needs more testing.
http://www.youtube.com/Noxxa
<dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects.
<Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits
<adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.