Roll Eyes
Lips Sealed
<- 12345678
List results:
Search options:
Use \ before commas in usernames
F*ckin' sanity effects...
Wow, that was super-cool!  Thanks, Mr. K.
General Kong - Bullets and Bananas
Not run related, but saw This as a nice nod to Mr. K, Hurblat and Mike.
Pasky/Bootygay was working on reversing Contra III today.  With a little persuasion, he reversed the attack pattern on the stage 1 boss.  I've got some good news and some bad news.

Bad News
This fight is COMPLETELY RANDOM and CANNOT BE MANIPULATED IN REAL TIME PERIOD.  The attack pattern is determined by the game's RNG.  The game's RNG starts running once the game has been reset.  One idea for a strategy was to use an audio cue to enter the boss fight on the same frame to get the quick kill.  We can't do this because we just can't navigate the menu well enough to start the game on the same frame to line up the audio cue we'd need to pull off a strategy like this.

Good News
With Pasky's help, I've matched the time until the boss fires a shot to a counter that can be seen at address 7E0434.  This is not only helpful for making a TAS, but it also helps to figure out probability.  While I don't have a table of all possible values yet, I do have a few things to say about this.  The max number of frames until the boss fires is 135.  The pacifist TAS by Ash Williams takes out the boss in 100 frames.  Hurblat had good timing on his run and as far as I can tell was also able to defeat this boss in 100 frames.  There are several combinations for this boss that are over 100 frames and one that is even exactly 100 frames.  Hurblat already knew how critical it was to have good timing on this boss in addition to relying on luck and now the research bears this out.  In terms of how this affects a two player run, the two player TAS takes this boss out in 53 frames so the odds of getting this to work out are pretty good.  We wouldn't have the same equipment as the TAS however, so I'm guessing we'd probably be taking the boss out at around 6--70 frames, I'm just not in a good position to test it.

And to Pasky, THANK YOU, I can finally lay this mystery to rest.
It's becoming clear to me that while there are still a few optimizations to be found in the routes for this game, the next big source of improvement is going to be lag reduction.  Some of the causes of this we can't help.  Some of the causes we can.  The latest release of BizHawk has a working lag frame counter.  This will finally let me get a solid measuring point for how certain actions cause lag and it will let me figure out how it's going to impact the games route.  Using a bomb, for example causes a mere 28 frames of lag if there are no enemies on the screen.  You can get the bomb to lag the game up to 88 frames in other situations.  That's a full second of difference.  Over the course of the next few days I'll be working on a doc that will cover lag in various places and I'll see if I can find some more practical recommendations for reducing it.

I'm also going to be working on getting my gun damage calculations up and get these posted and linked here.

Stage 1 has been completed
I've got a rather large research update.  I've done some additional testing on the brain fight.  We knew that there was some variation on the duration of the different attack patterns.  I also had the intuition that the same attack pattern had different lengths.  I've tested the grey orb, white orb, and red brain orb patterns in detail.  Here is what I found:

White Orb 737
Grey Orb 930-983
Red Brain 684-724
Blue Orb 926*
Spiked Orb 679*
Snake Orb 1005
Eyeball Orb 671-732
Walker Orb 804*
White Orb with Bomb 799
Red Brain Orb with Bomb 767
*I was to lazy to find the range for this pattern because I don't care about it for any %

To be able to kill the brain in the minimum 4 cycles you need to do at least 2000 damage per cycle.  The grey orb pattern lets you do the most damage.  You can easily do 2800 damage in one cycle to the brain.  This is not only because you are point blank, but it's also because the pattern lasts longer.  It's about three seconds longer than the red brain pattern even if you bomb the red brains.  Speaking of the red brain pattern you can just barely get 2000 damage per cycle with the red brain pattern.  In order to do enough damage you must mirror the brain's movements and not miss for four cycles straight. 

An ideal fight would be three red brain patterns and then a grey orb pattern for the last cycle.  The last cycle ends when the brain is destroyed so the damage you deal and not the length of the cycle become the important factor here.  I'm anticipating that in real time, you can expect to fall a bit behind of the 2000 damage per cycle goal and a grey orb pattern should be enough to push you over the top.  Getting a grey orb pattern during the first three cycles will put you slightly ahead damage wise, but some of the benefit of the additional damage will be lost because of the way that the boss health gets halved.

I haven't tested a lot to find the range of some of the other patterns, but the red brain and grey orb patterns are the way to go.  There are a few reasons why the red brain pattern is ideal.  I found that you can detonate a bomb nearly instantly after selecting the red brain pattern.  Before the attack pattern begins the bomb does not actually lag the game because there aren't hitboxes on the screen (usually in other areas this can still cause lag but it doesn't here for some reason).  I was able to get the bomb lag down to 30 frames and there was still enough of it left to take out the red brains for this pattern.  The white orb pattern which we usually get by accident is not ideal.  Not only is it about the same time as the red brain pattern with lag, but you also cannot detonate a bomb as early as the white orbs that circle you have more health and need to be in the bomb blast longer to be destroyed.  It's a short pattern, but you can't do as much damage as you can with the red brain pattern.  You'll also need at least one grey orb pattern to make up for the damage you didn't do.

Let's talk hitboxes for a second.  I have no clue.  What I can say is that the orbs aren't vulnerable when they start spinning.  They are vulnerable when they've expanded outward all the way.  There isn't a good visual cue for this, but it's a little over a second after you see their spite start to come out from the brain.  The hitboxes make no sense.  Supposedly they were just in the center.  We know their hurtbox is that when they're attacking because we've seen that when abusing the grey orb pattern and dodging blue orbs.  Their hitbox is just strange. 

In the left image I was trying to hit the snake orb.  This crush missile did not explode.  The game really wants you to get the blue orb.  Notice where the crush missile was that "triggered" this attack cycle.  I'm wondering if the game may simply not detect or have very buggy detection on these orbs when they are moving at rapid speed.  Research continues.  I'm still wrapping my mind around what would be ideal for low %.

Good stuff, Mr. K!
Delicious research, K!
It's really great that you're doing this. I've always been too lazy to actually do the deep research.
I've had ideas about some of these things, but I never investigated them enough.

From my notes (early 2011):

"Final boss round times
Blue balls: 13.0 s
Orbiting orbs (with bomb): ~10.7 s
Red brains (with bomb): 10.4 s
Grey rocks: 14.4 s
Eyes: 9.8 s
Walker: 10.4 s"


"Stage 6
* Final boss fight: Brains, brains, brains, rocks."

And yet I didn't do anything with that knowledge. Luckily you're way better than me at actually figuring these things out Smiley
Edit history:
DK28: 2013-04-21 11:12:49 pm
General Kong - Bullets and Bananas
I'm in awe.  May be time to pick this up again.
Easy mode....
Edit history:
Mr. K: 2013-05-02 12:09:02 pm
Okay so I've figured out a good chunk of the games randomness.  The memory address that control most of it is 0000E8 and 0000E9 - maybe it's a two bytes and I'm reading it wrong, but whatever.  Now I can say with great accuracy what's random and what's not.  No, I still haven't cracked how enemy spawns work.  So pretty much anything that is related to RNG can't be manipulated in real time.

Stage 1 -RNG control the boss attack pattern and the time counter until the boss will shoot
Stage 2- RNG controls the turret pattern (there are two possible patterns).  These addresses also control the direction that crush missiles will disperse out.
Stage 3 - Controls the initial direction the boss lasers take when they come after you
Stage 4 - The height of the riders and whether the rider drops bombs or shoots is based on RNG.  The tightrope guy is based on RNG, but it's really complex how he works it seems to take into account positioning as well.  The jetpack assassins movements are RNG.  On the boss, missiles after the initial wave are RNG.  The height of the chaff the boss drops is RNG.  After the shield is gone the height of the fireballs the boss shoots at you is RNG.
Stage 5 - During the second phase of the boss fight, when fire is shot out - which hole the fire comes from is RNG.
Stage 6 - The direction of the spawns the Contra midboss drops are RNG.  Whether or not the spiders drop down is RNG (though they may react to shots).  The direction of the projectiles that drop from the ceiling during the Super C boss fight is RNG.  When the tentacles reach out and what pattern they do is RNG.  For the brain fight - the speed and direction of the orbs during the selection process is determined by the RNG.  The direction each blue orb starts out with is RNG.  For the spiked orb, which item gets dropped is RNG and whether or not it's an item or a power up.  For the grey orb how soon the pattern starts is RNG.  The final fight on the helicopter is RNG as to what you get at the beginning and it's cycle based after that.

Now here's where it gets interesting.  To add a touch of realism, whenever there is an explosion the game calls up the RNG to determine how the explosion disperses.  This gives it a slight touch of realism perhaps?  More importantly this also affects the crush gun.  The direction that crush shots explode once they make contact is random.  This means that there will always be a slight and uncontrollable variation with how much damage crush will do.  Ideally the missile explosions will disperse more in the direction of an enemy with good RNG, but they may move further away.  The two memory addresses I've given above control the dispersion of the crush shots in top view stages.  If you freeze those addresses, after a crush missile explodes you will see that the explosion does not move.  I'm still locating the addresses for side scrolling stages, but I'm getting closer to finding them. 

One interesting thing about this is that with the right combination of addresses you can turn the first boss fight into impossible mode.

Once again, you're doing great things!
Knowing is half the battle, and there is no knowledge that is not power.
General Kong - Bullets and Bananas
Quote from Hurblat:
there is no knowledge that is not power.

Love Raiden...

More awesomeness K!
Edit history:
Mr. K: 2013-06-02 10:32:50 am
So we've now realized a couple of things.  While I read cyghfer's post in the tech support forums about analog capture, I forgot to read Kryssstal's post about VC timing.  Hurblat and I's most recent 2 player run was captured at 30.0494 instead of something along the lines of 29.97.  Virtual Console has a lower framerate than the SNES and it caused the run to be faster than it should've been.  We've also conclusively determined that the Virtual Console runs Contra III slower than an actual SNES does.  The difference equates to approximately 1 second over the course of an any% run.  We synced up both a SNES console and VC and found over the course of an hour that the SNES was about five seconds ahead.  The timing of our most recent run should have been 13:47, though it and its predecessor may be as low as 13:46 and 13:47.  We plan to start playing on a SNES in the future where we know the exact framerate and will just bypass this VC timing issue going forward.
I started doing low % again.  I got a 21:33.  The run was not deathless, but it had insane luck.  I'm going to try to get as close as I can to this time without deaths and submit.  Also, I'm running on SNES instead of Virtual Console now.
Wow!  On the edge of my seat K!!!!!!!!!!!!!
Edit history:
Mr. K: 2013-11-28 06:26:07 pm
Contra III came out on Wii U e Shop today.  I've switched over to playing on SNES, but I'm going to be downloading it anyway out of principle.  I'll do some timing comparisons for SNES / Wii VC / Wii U VC when I get done with finals.  If anyone has a Wii U, please support Contra III and download this masterpiece.
General Kong - Bullets and Bananas
Everything in the world stops when the Contra III thread is updated.  Looking forward to your finds K, if there's a categorical difference, I will run game this again...
SPEEDruns not SAFEruns
I will download it as soon as I get home!!! Congrats on that time Mr.K!!! I really need to pick this game up .....
Edit history:
Mr. K: 2014-01-02 06:38:31 pm
Mr. K: 2014-01-02 06:38:08 pm
21:44 deathless, but I had the most bizarre brain fight in history.  I'll probably push this lower after AGDQ. 
Edit:  Run was decent but the brain fight was a putrid combination of bad execution and bad RNG.
I will be watching this when I get home...
SPEEDruns not SAFEruns
Was awesome stuff Mr.K! I may have to pick this game up, it looks like an amazing run
Edit history:
Mr. K: 2014-04-26 10:09:52 am
Just for fun I started testing the timing differences between Contra III on the Wii U Virtual Console and SNES by simply syncing the two up after a reset.  The results are promising:

-The Wii U VC runs very slightly faster than SNES (as opposed to Wii VC which runs slower)
-The timing difference between the two was a little over two seconds after an hour (compared to the Wii being behind by nearly five seconds after half an hour)
-The gap of time between Wii U VC and SNES is much smaller than the gap between Wii VC and SNES
-Adjusting for other differences and assuming the difference was consistent, the difference in any % would be less than a second and the difference in low % would probably be just over a second

I need to use a more rigorous testing method in the future and I need to start testing more games.  My view on this is that since the Wii U has much better hardware than the Wii that it has more resources to dedicate to trying to emulate the original games more accurately.  If we knew the Wii U VC's native framerate in a way that was accurate to several decimal places we could test it with VirtualDub.  I think these promising results warrant testing more games.  Contra III's intro and demo loop lag a lot so the results here will be more dramatic than with other games.
-The Wii U VC runs very slightly faster than SNES (as opposed to Wii VC which runs slower)

Is that true for all NES and SNES games? Because the difference was the same for all games on Wii VC as far as I know.
If yes, I hope nobody will go full retard and try to claim WRs by this...
Edit history:
Mr. K: 2014-04-28 11:29:23 pm
Mr. K: 2014-04-28 11:28:43 pm
I meant to say that the Wii U VC runs faster for Contra III as that's the only game I've tested.  I still need to test more games.  If someone can provide a precise framerate for Wii U VC I can start doing more rigorous testing with VirtualDub and report on differences measured by the exact number of frames over a set period of time as opposed to sync tests.  I imagine it's something along the lines of 29.97, but we have NES and SNES framerates accurate to within many more decimals that I'd like it to be as far of a comparison as possible.  Games with intro loops that have a significant amount of lag frames I think tend to be good candidates.