Donkey Kong Forum

Related Games => Donkey Kong Junior => Topic started by: gstrain on September 01, 2013, 07:10:14 pm

Title: DK Jr. springboard discussion
Post by: gstrain on September 01, 2013, 07:10:14 pm
This question is proposed to all of us. So far no specifications have ever been made either by TG or by DKF. No restrictions are placed on the use of auto fire, multiple buttons mapped for the same purpose on keyboard.

Mame is another animal. Since there is no default mame mapping for DK or DK Jr then maybe consider making it as much like arcade with one button for jump, and no auto fire. But like I said, no one can verify keyboard mapping. 

I don't think we need any official rule accept maybe to mention what is allowed so that this question can be anticipated and be already answered for newer members or anyone else for that matter.

Thank you to any and all who chime in on the question.

Auto-fire is against rules at both TG and MARP and should be here too.  For DK it doesn't matter, but for springboard on DK Jr and possibly DK3 it could.  In MAME its possible to detect probable auto-fire usage by analyzing the inp file for overly consistent input patterns.

TG doesn't have rules on multiple mappings, but MARP has a rule forbidding it, and the use of "macros" where a single key is mapped to a specific sequence of timed input.  For DK games I can't think of a case where it would help you, but for fighting games it can make certain combos much easier since you can use a special key to always press two buttons at the exact same time or always time a button press to occur in the exact same frame as a movement.  In MAME it is pretty easy to detect this sort of multi-mapping when it is pervasive by analyzing the inp.  Human input will never have the frame perfect timing every time that you get with multi-mapping.

Like I said, for DK itself, I don't think either of these matter at all.

-George
Title: Re: DK Jr. springboard discussion
Post by: Graham Wolfe on September 01, 2013, 07:32:06 pm
Ok for speed on springboard I've been multi mapping jump. I guess for some people this is irrelevant and when I play arcade I just double tap the jump to create the same scenario as pressing jump on two buttons on my keyboard. The reason I don't double tap keyboard as fast is mainly because arcade buttons have a spring inside which makes someone with big fingers like myself able to press it faster. On keyboard I get no such luxury and I prefer using two keys side by side to make my double tap. To be honest I don't even know if it actually works but to me it feels easier maybe it's a mental thing. In either case I wouldn't use anything far from normal settings as if one did that such as rapid fire they would be ineffective in an arcade setting. Since TG and DKF don't mind multi mapping then ill continue using that at home for the springboard jump and double Tap in arcade settings. Obviously if this was an advantage I wouldn't have hit 550k in an arcade as I would lack a key function to passing the springboard stage.

In any case I appreciate the quick feedback.
Title: Re: DK Jr. springboard discussion
Post by: up2ng on September 01, 2013, 07:37:35 pm
Definitely some interesting questions from Graham.  Mapping multiple jump buttons would be very helpful to deal with the broken Springboard IMO.  Hopefully no one is doing this on the MAME side currently -- I think that would open a can of worms . . .

Graham may not realize that the videos he is probably watching of top players playing DKJR often feature a "Track and Field Style" approach to using the jump button during the Springboard Jump -- the button itself is unmodified but the players ARE pressing the button incredibly quickly.

Note:  Just saw your last post -- you mention "I don't even know if it actually works" . . .  You may not be aware of some of the technical (code level) details that have been discovered with the Springboard -- long story short, it actually IS broken -- there is a small window of frames that you can press the jump button to get it to function properly, BUT every other frame within this window fails.  Therefore, pressing the button incredibly quickly during this time window IS advantageous to the player since it will increase your chances of landing on a "good frame". . .
Title: Re: DK Jr. springboard discussion
Post by: gstrain on September 01, 2013, 07:55:18 pm
Definitely some interesting questions from Graham.  Mapping multiple jump buttons would be very helpful to deal with the broken Springboard IMO.  Hopefully no one is doing this on the MAME side currently -- I think that would open a can of worms . . .

Graham may not realize that the videos he is probably watching of top players playing DKJR often feature a "Track and Field Style" approach to using the jump button during the Springboard Jump -- the button itself is unmodified but the players ARE pressing the button incredibly quickly.

Note:  Just saw your last post -- you mention "I don't even know if it actually works" . . .  You may not be aware of some of the technical (code level) details that have been discovered with the Springboard -- long story short, it actually IS broken -- there is a small window of frames that you can press the jump button to get it to function properly, BUT every other frame within this window fails.  Therefore, pressing the button incredibly quickly during this time window IS advantageous to the player since it will increase your chances of landing on a "good frame". . .
Note that this sort of "multi-mapping" (two different keys/buttons to the same input) is not actually detectable in MAME .inp files since the file just records inputs, not the source.  The .inp file would be indistinguishable from someone using "Track 'N Field" style presses on a single button.

-George
Title: Re: DK Jr. springboard discussion
Post by: Graham Wolfe on September 01, 2013, 09:22:20 pm
Well what I've been doing with decent success (not 100%) is press two jump buttons twice, so 4 total inputs on keyboard. Funny enough is when i'm on, my single presses are much more accurate but due to having to have near perfect timing which i'm known for in the fighting game community.

I was the first player to find Jin's Lightning God Fist (1 frame in 60 frames in a 1 second window) in America, every other Tekken player I worked with thought it was random like ryu's red fireball in original street fighter. I did it successfully 7/10 times when asked to perform it for a strategy guide we were writing and the chief editor finally gave in when I told him random doesn't happen 7/10 times when they believed it was 5 or 10%.

Anyway back to DKJR, If what Dean said is true then I am not gaining any any benefit from the method I'm using but psychologically it makes me feel as if I am since I'm foolishly pressing both jump at the same exact moment but twice real fast, similar to how I press the arcade jump. I guess I can unbind the left jump button since I'm not even rolling the buttons like I would on an arcade stick due to the lack of a bevel on keyboard buttons.

Btw what is the framerate for these games?
Title: Re: DK Jr. springboard discussion
Post by: ChrisP on September 01, 2013, 09:24:52 pm
You may not be aware of some of the technical (code level) details that have been discovered with the Springboard -- long story short, it actually IS broken -- there is a small window of frames that you can press the jump button to get it to function properly, BUT every other frame within this window fails.  Therefore, pressing the button incredibly quickly during this time window IS advantageous to the player since it will increase your chances of landing on a "good frame". . .

Dean, you may have gone into this elsewhere at some point in the past, but I've been curious why you interpret this as "broken."

It seems to me that not being able to get the superjump every time was intentional. In fact, I would actually find it stranger if it was designed such that you COULD get the superjump every time. To me it just seems like another deliberate random element added to make the game more dynamic, like the 300-500-800 smashes in DK.

Is there something about the way the code is "phrased" that would imply that having to hit the button on a good frame was an accident?
Title: Re: DK Jr. springboard discussion
Post by: Graham Wolfe on September 01, 2013, 10:07:06 pm
well hitting 1*3*5* isnt really too bad. In Street Fighter 2 we have a 1 frame window to hit reversals but what we do to compensate is roll the buttons for certain moves. Funny thing is this my brother prefers single press and he almost always hits his reversals. Obviously no one is perfect but with enough practice (and want to succeed) you can really narrow down your margin of error.
Title: Re: DK Jr. springboard discussion
Post by: gstrain on September 01, 2013, 10:28:13 pm
Well what I've been doing with decent success (not 100%) is press two jump buttons twice, so 4 total inputs on keyboard. Funny enough is when i'm on, my single presses are much more accurate but due to having to have near perfect timing which i'm known for in the fighting game community.

Anyway back to DKJR, If what Dean said is true then I am not gaining any any benefit from the method I'm using but psychologically it makes me feel as if I am since I'm foolishly pressing both jump at the same exact moment but twice real fast, similar to how I press the arcade jump. I guess I can unbind the left jump button since I'm not even rolling the buttons like I would on an arcade stick due to the lack of a bevel on keyboard buttons.

Btw what is the framerate for these games?
Framerate is 60 frames a second and inputs are read at the same rate.

If you're actually pressing both buttons at the exact same moment, the extra button isn't doing anything.  MAME is just reading the input port each frame, and it will be on if either button is pressed.  You can't turn the input port on more than once in a frame regardless of how many buttons you map to it and press simultaneously.
Title: Re: DK Jr. springboard discussion
Post by: Graham Wolfe on September 01, 2013, 10:37:47 pm
yeah it was just nice because my hands are kinda big for a keyboard and im on a laptop. in either case after i got wolfmame all working I just tried the jump using one mapped jump instead of 2, im having identical results as before so it was just a psychological thing.

yeah i was actually mashing both buttons simultaneously not rolling before, just mashing 2 buttons at the same moment because it was easier for my hands than pointer pressing a single key on a keyboard. I can still do this but having one mapped will just make sure no one thinks there is any unfair advantage.
Title: Re: DK Jr. springboard discussion
Post by: up2ng on September 02, 2013, 12:47:36 am
You may not be aware of some of the technical (code level) details that have been discovered with the Springboard -- long story short, it actually IS broken -- there is a small window of frames that you can press the jump button to get it to function properly, BUT every other frame within this window fails.  Therefore, pressing the button incredibly quickly during this time window IS advantageous to the player since it will increase your chances of landing on a "good frame". . .

Dean, you may have gone into this elsewhere at some point in the past, but I've been curious why you interpret this as "broken."

It seems to me that not being able to get the superjump every time was intentional. In fact, I would actually find it stranger if it was designed such that you COULD get the superjump every time. To me it just seems like another deliberate random element added to make the game more dynamic, like the 300-500-800 smashes in DK.

Is there something about the way the code is "phrased" that would imply that having to hit the button on a good frame was an accident?

That's strange, I've never heard anyone assume that before.  I feel the exact opposite -- to me, something like a "springboard" in a video game is something that I would intuitively believe should "always" work if the player executed it correctly.  There really should be nothing "random" about it.  Now, if you intended to just sort of bounce off of it or if you legitimately "missed" the timing of your jump then I can see why it should be programmed to give no "spring" to your jump in these cases, but when a good player intends to "spring" off of a springboard, they should be able to do so pretty much every time.

Think about other Nintendo platformers / Mario games.  Super Mario Bros. is a great example.  In that game the springboard is "fixed" -- as long as you jump within a reasonable period of time, you spring off of the springboard 100% of the time.

Keep in mind that a 6-frame window is really not a very long time anyways.  It would still take some knowledge and skill to press the button at the correct time to be within a 6-frame window (1/10 of a second).  Now, I haven't actually seen the code for DKJR, but I do have some knowledge about software code and logic in general and I know that these games were made very quickly and are full of bugs, poor design and poor code and based on that I have a very strong hunch that this is a bug.

When you slow it down and look at it frame-by-frame, what happens is that Junior is in contact with the springboard one frame and then Junior moves up a little bit the next frame, but the springboard does not -- they are now NOT in contact.  Then, the next frame, the springboard moves up and Junior does not and so they are back in contact again . . . and so on until the springboard is fully extended.  To me, this just screams huge bug.  The software probably performs a check of Junior's y-position to see if he is in contact with the springboard at the moment the button is pressed, assuming that he will be in contact throughout the motion -- but actually he is not because the two objects animate out of synch with each other.  This is silly anyways since there are probably dozens of other ways this software could have been effectively written, such as at the moment the springboard is fully retracted, simply count off 6 frames and make Junior "super jump" if the button is pressed -- why do we need to check Junior's position?  The ONLY time the springboard should be retracting is if Junior is ON it!  lol. 

I've seen some explanations that the out of synch animations might actually be done on purpose purely for aesthetic reasons when animating these motions -- it might not look as good if the two objects were rising together.  I don't buy it, but I suppose that's possible.  If so, they should have known to account for this in the super jump algorithm, but they didn't.  My belief is that they didn't even realize the objects were animating out of synch with each other and when the game was tested by novice players, the springboard did occasionally work, so they just assumed that it was working and that the testers just weren't very good at it.  But actually, it's broken.

Is it possible that this was actually done on purpose as a design choice for Junior to fail his super jump attempts a large percentage of the time?  Technically I'd have to admit that this is possible since there is no proof to the contrary, but realistically -- no, absolutely not . . . this is a bug, and an incredibly annoying one at that.
Title: Re: DK Jr. springboard discussion
Post by: marky_d on September 02, 2013, 01:39:57 pm
For those who play Junior, what would you say your averages are on making the superjump on the first attempt over the course of a game? I would say mine is probably around 90% using the 'scratch' technique. I heard that Ben made it through an entire game without missing one, and I have done that one time as well (18 of 18). Admittedly making ALL of then will require a bit of luck haha.
Title: Re: DK Jr. springboard discussion
Post by: marinomitch13 on September 02, 2013, 02:03:34 pm
I do the double flap and get about 80%, I'd say. If I did a 3 finger scratch with a little timing, I think I'd do better, but I'm in no rush for 10% or so more.
Title: Re: DK Jr. springboard discussion
Post by: up2ng on September 02, 2013, 03:23:16 pm
It still surprises me that people can press a button quickly enough for it to matter in this case, although I have seen plenty of evidence that Track and Field players can manage to get a button press to register incredibly quickly -- without doing that, it would surprise me if just pressing the button twice is really effective. 

Just for fun, I encourage folks to do a Yahoo search for "Online Stopwatch" and click the first link.  Select Stopwatch (not Count Down).  Now, use your mouse and "double click" on the button. . .

When I use a normal (fast) double clicking style of the mouse button, I generally get around 0.165 seconds.  That's pretty fast.  But, it's not even close to fast enough for this particular issue in DKJR.  I'd have to dig around to double check, but I think there's only 3 "good" frames for the springboard -- if there's a 4th good frame, obviously it makes things a lot easier.  But, with only 3 good frames, we're talking about frame #1, #3 and #5 and that's it.  So, if you "miss" on your first button press and land on frame #2, you need to be incredibly fast to press the button again to catch frame #5.  We're talking about pressing the button 0.05 seconds later.

Now, go back to the online stopwatch and see how long it takes you to manage a time of 0.05 seconds.  Just now, after about 15 tries, I managed exactly 0.05 on the stopwatch by using two different fingers on my other hand to press the left mouse button (most of the time my mouse just would not register the 2nd button press).  Using one finger to hit the button twice the best I could do after 7 or 8 tries was 0.067 seconds -- again, not good enough.

If you happened to "miss" by landing on frame #0 instead of frame #2, you'd have a bit more time and with very fast presses I could see catching the frame #5, but you'd have to press the button very quickly.  The point that I'm trying to emphasize is that it's a VERY small amount of time to try to push a button twice and I think a lot of people are doing it but it's not actually effective.

Still, a ton of people are reporting "mastering" the springboard jump and/or are getting success 80 - 90% long term -- honestly, that just doesn't make sense to me.  I feel like it really should be about 50/50, and maybe slightly better like 60/40 if we feel like a gamer really can press a button on an exact frame more often than not (Graham reports 7/10 success with this in fighting games, which I would think is around the upper end of what anyone could expect long term).  But, unless someone is an unusually good Track and Field player and can consistantly get the button to register once every three frames it seems to me that long term success rates should remain frustratingly low for all other players.
Title: Re: DK Jr. springboard discussion
Post by: Graham Wolfe on September 02, 2013, 03:39:15 pm
Dean, if you watch my submission I am pretty steady on my jumps, I was able to land them as a child pretty consistently with a single press. The thing is if its a constant then it shouldn't be too bad. But here I'm using a double tap. I look at it this way, I know the single press timing well as I've practiced that. I suggest if you can master single press it will definitely help you master the jump as you can double tap to double your chances but knowing the single press makes it a lot more successful. Just make a save state of l4 springboard and just keep jumping over and over until you get the feel of it with 1 press, then toss in double tap or triple tap if you are quick enough.

Keep in mind in street fighter we often are forced to press a 1 frame move to live. I was playing the best zangief player in the world and basically if I missed this 1 frame reversal I lost the match, I landed it EVERY time knowing it was death otherwise. Part of making more success is having your adrenaline running you'll notice your palms get sweaty if you are really focused and this happens. When you are playing like that your reflexes and accuracy does increase. Basically when you get a fight or flight reaction from your body you can do things that are not normally possible. If you can train yourself to get in this mindset when playing you can improve your game, if you don't do this already. If this all sounds crazy you should see some of the stuff I've seen done by my brother and myself. I landed a 1/100,000 chance move, probably first ever done in any tournament setting when I was dead if the move didn't land. It was an impossible move. This stuff sounds like science fiction to some people but it is actually quite normal if you see it happen enough you begin to understand that it is something you can apply as a way to improve performance.
Title: Re: DK Jr. springboard discussion
Post by: marinomitch13 on September 02, 2013, 04:08:43 pm
Dean, a few things about button mashing that would affect the expected numbers:

1) The arcade button is bigger and allows for more ability to get more fingers on the button in less time. I don't know what button you have been using on the keyboard, but if it is just the normal 'up' button people use (such as the up arrow, or 'w') I'd imagine it gets a little cramped.

2) People that do the 'pressing' technique of the 'Double Flap' tend to utilize it (and tend to do best) if they start doing the flap a bit ahead of time. This allows some time for the fast-twitch action of the fingers to 'get some momentum' of sorts, and end up doing more mashes per second. Getting the groove going with your fingers is much different than just starting and stoping with one finger -or even two- fingers.

3) Most people that do very well at the super jump (that I've seen/heard of) tend to use the 'scratch'. This is drastically different than the 'double flap' in that it's not as much of a 'pressing' technique, rather, the 'scratch' is more of a 'sliding' technique. People that get very good at the 'scratch'  almost drag their fingers across the button rather than actually pressing in a more downward direction. I think that this allows for the mashes to be executed significantly faster, since it comes down to space, rather than fast twitch muscle reaction. Even if you're able to pull off the double flap on a keyboard, I don't think you'd be able to accurately replicate the 'scratch' on a keyboard button.
Title: Re: DK Jr. springboard discussion
Post by: gstrain on September 02, 2013, 04:22:31 pm
It still surprises me that people can press a button quickly enough for it to matter in this case, although I have seen plenty of evidence that Track and Field players can manage to get a button press to register incredibly quickly -- without doing that, it would surprise me if just pressing the button twice is really effective. 

Just for fun, I encourage folks to do a Yahoo search for "Online Stopwatch" and click the first link.  Select Stopwatch (not Count Down).  Now, use your mouse and "double click" on the button. . .

When I use a normal (fast) double clicking style of the mouse button, I generally get around 0.165 seconds.  That's pretty fast.  But, it's not even close to fast enough for this particular issue in DKJR.  I'd have to dig around to double check, but I think there's only 3 "good" frames for the springboard -- if there's a 4th good frame, obviously it makes things a lot easier.  But, with only 3 good frames, we're talking about frame #1, #3 and #5 and that's it.  So, if you "miss" on your first button press and land on frame #2, you need to be incredibly fast to press the button again to catch frame #5.  We're talking about pressing the button 0.05 seconds later.

Now, go back to the online stopwatch and see how long it takes you to manage a time of 0.05 seconds.  Just now, after about 15 tries, I managed exactly 0.05 on the stopwatch by using two different fingers on my other hand to press the left mouse button (most of the time my mouse just would not register the 2nd button press).  Using one finger to hit the button twice the best I could do after 7 or 8 tries was 0.067 seconds -- again, not good enough.
Dean, I don't think mouse clicks are a very good comparison.  It's faster to push a button especially if you are using multiple fingers.

A few years back I did an analysis of the 100M dash from TJT's Track 'N' Field MAME replay at MARP where he used a 6 finger technique.  During the run he had 86 separate hits of the right button and 88 of the left button, for a total of 174 distinct presses.  This was during 455 frames, which is 7.58333 seconds.  So his average speed was 22.945 presses a second, meaning he was able to do distinct button presses at a sustained rate of one every .0435 seconds for seven and a half seconds.  Also keep in mind that at this rate players need to be careful to not press TOO FAST.  Even if you are making distinct button presses if you don't have a "no press" during intermediate frames, your presses won't register as separate presses.  So the maximum you can possibly register is 30 presses a second, not 60, and these top players using 6 or 8 finger techniques need to focus on rythym to make sure there are sufficient gaps in presses and not just pressing as fast a possible.

-George
 
Title: Re: DK Jr. springboard discussion
Post by: up2ng on September 02, 2013, 05:23:44 pm
Ok, I give up.  Clearly with a little practice we can learn to master pressing a button on a single frame with less than 1/120th of a second margin for error in each direction pretty much every time.  A child can do this after all.  It's also clearly a common skill for people to press a button twice in 1/20th of a second.  Sounds good to me.  I don't know what I was thinking.
Title: Re: DK Jr. springboard discussion
Post by: Graham Wolfe on September 02, 2013, 05:56:12 pm
keep this in mind, everyone is subjected to this same issue so no one has an advantage over you but we deal. its just one of those things, kind of like how mario stops after a jump, something i hate from DK but i guess you guys dont mind
Title: Re: DK Jr. springboard discussion
Post by: marinomitch13 on September 02, 2013, 06:55:42 pm
Ok, I give up.  Clearly with a little practice we can learn to master pressing a button on a single frame with less than 1/120th of a second margin for error in each direction pretty much every time.  A child can do this after all.  It's also clearly a common skill for people to press a button twice in 1/20th of a second.  Sounds good to me.  I don't know what I was thinking.

Dkjr is 60fps, right? Your numbers express this fact. However, I think you're thinking about it too much as being a skill of precision, rather than just mashing increasing probabilistic luck. If there are 60 frames in 1 second, and there is a 8 frame range when the spring is fully compressed to when Jr's sprite changes and leaves the spring (see here: http://www.classicarcadegaming.com/forums/index.php/topic,3570.msg44273.html#msg44273 (http://www.classicarcadegaming.com/forums/index.php/topic,3570.msg44273.html#msg44273)), then you have a .13333 sec range in which to get as many smashes as you can. If you are able to mash at 32 mashes per second (way easier to do with a finger scratch in one go than it is to maintain while using 2 hands -like is needed for T&F), then you will be able to do 1 mash about every .03125 seconds on average. Now, this is just an average, it's not likely that you'll be able to space the mashes out consistently, but that doesn't matter a whole lot, because it's more about the probability of hitting a 'good' frame given the number of opportunities you can get in during the timeframe -and, since it is extremely unlikely that your smashes would be perfectly space enough to land on frames 2, 4, 6, 8. So, if you get in 4 smashes during the given time frame, you'd have about an (.5)^4=.0.625% chance of not hitting a 'good' frame on average. This is a 93.75% success rate. If you only do a 3 finger scratch and only get in 3 smashes, then you have a (4/8)%^3=.125% chance of not hitting a good frame on average. A 87.5% success rate. 2 smashes, similarly, yields a 75% success rate -which my be more typical for someone utilizing the 'double flap'. Given what you've stated about getting on average a .165 time on the stopwatch you should be able to probably average about 2 smashes per the .133333 seconds if you were using the double flap, as it would probably double your clicking speed. I know this because I averaged about .1 on the stopwatch with 1 finger, about .065 with double flap (again, harder without a lead-in to build momentum), and about .045 the 2 finger scratch.
Title: Re: DK Jr. springboard discussion
Post by: Graham Wolfe on September 02, 2013, 07:19:58 pm
Honestly due to lack of ability to mash buttons (keyboard) you could bind left arrow, down arrow, right arrow all to jump and roll them. For reversals in fighting game community 1/60 frame, we roll light punch, medium punch, heavy punch during specials. I'd say our success rate is like near perfect at least 19/20 using that technique though honestly I never miss using that when it matters because I hit 3 frames consecutively before or after but within the 1 frame window
Title: Re: DK Jr. springboard discussion
Post by: Graham Wolfe on September 02, 2013, 07:26:39 pm
But I will add, the timing took me years to get down but you guys got years on the dks.
Technically it's not against the rules to multi bind just can't use auto fire which is pretty standard.
I don't really see a problem due to already having some handicap by using keyboard. Though some might argue keyboard is easier than stick. But the rate mark hits jump
is impossible to emulate on keyboard
Title: DK Jr. springboard discussion
Post by: up2ng on September 02, 2013, 08:13:26 pm
Mitch, you should reread your own link.  Notice the bold -- there are only 3 good frames within a 5 frame window.  Therefore, the timeframes we are talking about are precisely what I have just written in this thread here:

https://donkeykongforum.net/index.php?topic=374.msg8973#msg8973 (https://donkeykongforum.net/index.php?topic=374.msg8973#msg8973)

I never argued that it wasn't possible using Track and Field style button mashing -- in fact, if you go back, I suggested that this might be the only possible way to guarantee that you are getting two button presses within the good frame window.  I am very suspicious that the "double flap" is not fast enough to do this, although I guess I'd have to see exactly what you're doing with your hands when you do this -- maybe the description isn't matching up with what I imagine is happening.  I would say that someone just pressing the button twice is almost certainly not consistantly fast enough to press the button twice at precisely 0.05 seconds apart from each other (faster is bad, slower is bad). 

I also agree that mapping multiple buttons in MAME "might" work, although probably not in the way Graham is thinking.  In his Street Fighter example, he believes that he is hitting 3 consecutive frames with the three buttons.  Unfortunately, this is not possible in DKJR, because the game only thinks there is one button.  Therefore, once a jump button is pressed, it will need to be UNPRESSED for an entire frame before any jump button can be pressed again (and have it actually register as a new input).  So, rolling three buttons to catch 3 frames in a row will actually yield exactly ONE input in DKJR -- but, I'm sure a player could develop a technique using two fingers and two buttons to press (AND RELEASE) them extremely quickly.

Anyways, I guess just seeing a lot of threads where people talk about how they have "mastered" the Springboard jump (this is NOT the only thread on the subject, trust me) is annoying to me.  The springboard is broken -- and a lot of these players who talk about it probably don't even know it.  It's spoken about like it's just another difficult aspect of the game's design that can be learned (like MASTERING the springs in DK, for example) -- and yet, it's not.  Unlike the springs in DK (or any other difficult but legitimate game design) the springboard actually doesn't work correctly.  If you are extraordinarily gifted at creating a button pressing rhythm at just the right speed using something like a Track and Field style technique you CAN increase your probability, but you are still leaving it somewhat up to chance and you WILL fail some nontrivial percentage of the time.  To say anything else on the subject is, quite frankly, just silliness.
Title: Re: DK Jr. springboard discussion
Post by: syscrusher on September 02, 2013, 08:26:32 pm
With my 1-button mashing speed, I can consistently get over 80% no problem.  I don't think my mashing is particularly fast either.  I have gotten 100% and 90% on kill screen runs a few times.  Can't argue with actual results.
Title: Re: DK Jr. springboard discussion
Post by: Graham Wolfe on September 02, 2013, 09:07:39 pm
keep in mind everyone, hitting 1 frame in 60 is doable, so a lot of you who might be mashing might just have learned the timing very well. Like i said in fighting games my brother, a very consistent person, prefers single press reversals which he lands in the 80% range on a good day. This was from years of practice he learned his timing well. Same can be for springboard. Like I said about that 7/10 wind god fist from Tekken that was something I had just picked up over the course of a few weeks but given more time I could prolly pull it off at least 8/10 times on command since it was 1 frame out of 60. I think 80% is a good percentage for someone who has mastered the timing. You can either do that or super mash like Mark which seems to be a very good alternative if one does not want to hope he is having a good day.

Dean I guess that is a problem with multi mapping as for fighting games there are 3 separate punch and each can be pressed independently.
Title: Re: DK Jr. springboard discussion
Post by: marinomitch13 on September 02, 2013, 09:51:53 pm
Mitch, you should reread your own link.  Notice the bold -- there are only 3 good frames within a 5 frame window.

I realized I had misread the post to say 4 possible frames as Dean was posting, and I was trying to edit it before Dean posted, but he beat me to it! And even with that mistake, I had made another by using 8 frames, when I should have used 7.


So with this correct setup, you have 5/60 of a second, which is .08333 total seconds to get as many mashes in as you can. If you can get 3 smashes in, you have a 1- (2/5)^3=93.6% chance on average of making the jump. 2 smashes is 84% chance. 1 smack is obviously 60%. However, these percentages assume a sort of 'random selection type' probability and are therefore just rough estimates. The specific nature of your actual pressing rate, that is, how your 1, 2, or 3 mashes fit into the timeframe (e.g. was your rate relatively consistent? were all the smashes bunched together in only one area of the timeframe?), can affect your results in either direction.

If I had to guess, and account for all the mashing rhythms and mashing rates, I'd say most people who have already gotten the timing down and are trying to mash their best would probably tend towards getting 2 mashes in. about an 80% success rate sounds reasonable. The fact that someone like Mark has gotten a perfect run is probably just him getting lucky many times in a row during that one game.

The springboard is broken -- and a lot of these players who talk about it probably don't even know it.  It's spoken about like it's just another difficult aspect of the game's design that can be learned (like MASTERING the springs in DK, for example) -- and yet, it's not.  Unlike the springs in DK (or any other difficult but legitimate game design) the springboard actually doesn't work correctly. 

To know that the springboard is 'broken' and doesn't work 'correctly' it would seem one would have to make a judgment about the intent of the programmers. I'm sure they had people test the game out, and I'm sure most the people that tested it out weren't experts at T&F mashing, so if the programers heard any word back about how the game was maybe 'broken' or lacking with respect to the springboard, why didn't they 'fix' it? It seems more likely that the programmers would have known about it (at least after some testing) and where ultimately ok with how it has ultimately ended up.

As far as I've heard, a key component to DKjr's 'clunkiness' is that it only registers inputs on every other frame. The programmers wanted this feel -or at least for this to be a fundamental aspect of the game. However, to have this 'clunkiness' aspect but also make the springboard a timing-based element to the game, necessarily created the added fact that the spring jump would also be luck based. It seems to me the intention was likely just that: To make the springboard timing based. However, they also had to be ok with the effect that their other desire for the game had on that aspect of the game (the springboard) as well. It was probably a compromise from their point of view, but it appears they were ultimately satisfied with it. It seems too bold to call it 'broken' or in-'correct' to me.
Title: Re: DK Jr. springboard discussion
Post by: ChrisP on September 02, 2013, 10:36:42 pm
My argument for it being deliberate, from a "level design" basis,  is that making the springboard a matter of simply pressing the button a single time would render it almost totally devoid of challenge. The "long path" must be there for a reason. Why put the long path there at all if the superjump was trivially easy to perform?

(However, the counterargument to that could be that the intended challenge there was to time the superjump such that Junior would land on the floating island, with the long path being a plan B for those who couldn't time the jump correctly.)

Then again, the randomness may have been an intentional attempt to "hide" the superjump as a sort of easter egg. Many new players would probably try pressing the jump button to see what happened while on the springboard, most likely not discover the superjump right away, and write it off until one day - surprise! - they hit the jump. Then they'd try it again the next time, it wouldn't work, and the whole thing would be confounding and mysterious.

I am partial to this theory that it may indeed have been an accidental bug, but was kept in the game anyway because they liked the effect.

Remember, many bugs were found and fixed in DK between the original Japanese version and the final TKG-4 version. The springboard is a fundamental part of the gameplay in Junior and there is no possible way that they weren't aware of the superjump issue by the time the game was brought to America, and certainly not by the time Nintendo released the Easy and Hard upgrade kits. The behavior of the springboard persists to the last upgrade. Whether it was originally a bug or part of the design, it was intentionally not fixed.

Full agreement though that it's annoying when people say they've "mastered" the springboard. That's like saying you've "mastered" rolling a six on a die.
Title: Re: DK Jr. springboard discussion
Post by: JCHarrist on September 02, 2013, 10:48:18 pm

Then again, the randomness may have been an intentional attempt to "hide" the superjump as a sort of easter egg.

It's printed right on the instruction card.

(http://www.arcadeshop.com/pics/dkjkcpicu.jpg)

If jump button is pressed with RIGHT TIMING.

I think it works exactly as intended.
Title: Re: DK Jr. springboard discussion
Post by: ChrisP on September 02, 2013, 10:57:47 pm
Oh shit.

I think we have a weiner.

I guess that's what we get for never having looked at an actual Junior instruction card!

Richie was right about MAME players!  ;D
Title: Re: DK Jr. springboard discussion
Post by: marky_d on September 02, 2013, 11:01:48 pm
Full agreement though that it's annoying when people say they've "mastered" the springboard. That's like saying you've "mastered" rolling a six on a die.

I am in full agreement with your thoughts here, but who exactly has said they have "mastered" the springboard? I don't remember anyone saying that. Maybe I missed it somewhere?
Title: Re: DK Jr. springboard discussion
Post by: ChrisP on September 02, 2013, 11:03:45 pm
Actually... if I remember correctly, Calvin Frampton did.  :D


EDIT: yes

http://www.classicarcadegaming.com/forums/index.php/topic,2243.120.html (http://www.classicarcadegaming.com/forums/index.php/topic,2243.120.html)
Q-About how often were you able to successfully perform a "Super-Jump" off of the Springboard in your high score game?

A-Most games close to 100%.  I did not know anyone that was 100%.  I doubt it is possible to successfully perform the super jump 100% of the time in every game.  I was very good at the super jump.
Title: Re: DK Jr. springboard discussion
Post by: marky_d on September 02, 2013, 11:20:15 pm
Actually... if I remember correctly, Calvin Frampton did.  :D


EDIT: yes

http://www.classicarcadegaming.com/forums/index.php/topic,2243.120.html (http://www.classicarcadegaming.com/forums/index.php/topic,2243.120.html)
Q-About how often were you able to successfully perform a "Super-Jump" off of the Springboard in your high score game?

A-Most games close to 100%.  I did not know anyone that was 100%.  I doubt it is possible to successfully perform the super jump 100% of the time in every game.  I was very good at the super jump.


Well, I'm not sure he's saying he has mastered it because he concedes that he wasn't 100%, and didn't define what "close to 100%" was. And he also threw that also undefined "most games" in there. Hell, if I'm really on that day, I'll be at 90% or better and that is close to 100% and I would never claim I've "mastered" it, just doing my best to maximize my chances.
Title: Re: DK Jr. springboard discussion
Post by: TheSunshineFund on September 03, 2013, 04:14:13 am
It is what it is....it's been this way for over 30 years, it's not going to change.  Just track and field it and hope.  Most folks at this point seem to get a very reasonable success rate.

Love it?
Title: Re: DK Jr. springboard discussion
Post by: TheSunshineFund on September 03, 2013, 07:26:09 am
The springboard is like Mt.Everest.  Mountains can't be conquered, rather, you conquer yourself...your hopes, your fears.....

Love it?
Title: Re: DK Jr. springboard discussion
Post by: up2ng on September 04, 2013, 01:41:13 pm
Quote
So with this correct setup, you have 5/60 of a second, which is .08333 total seconds to get as many mashes in as you can. If you can get 3 smashes in, you have a 1- (2/5)^3=93.6% chance on average of making the jump. 2 smashes is 84% chance. 1 smack is obviously 60%. However, these percentages assume a sort of 'random selection type' probability and are therefore just rough estimates. The specific nature of your actual pressing rate, that is, how your 1, 2, or 3 mashes fit into the timeframe (e.g. was your rate relatively consistent? were all the smashes bunched together in only one area of the timeframe?), can affect your results in either direction.

Mitch, you're still not getting it.  There's no such thing as "getting as many mashes in as you can".  The game requires the button to be pressed during one frame AND THEN BECOME UNPRESSED FOR THE NEXT FRAME before you're even allowed to attempt another button press.  Therefore, if you miss frame #1 and land on frame #2, there is ONLY ONE MORE OPPORTUNITY to press the button, and that's at exactly frame #5.  Of course, as I said before, you could miss in the other direction and land on frame #0, but this is obviously outside the 5-frame window and therefore if we're counting mashes WITHIN the 5-frame window, the only meaningful numbers are 1 or 2.  (You could get 3 mashes in by hitting exactly frames #1, 3, and 5, but what's the point?  Once you've hit frame #1 you have your superjump already, so this hitting pattern is meaningless.)  So, again, if you miss by landing on frame #2, you need to press the button again EXACTLY 0.05 seconds later to hit frame #5.  Pressing the button too quickly, such as 0.033 seconds later is bad because you're hitting frame #4, another miss.  Pressing the button slightly later, such as 0.066 seconds later is also a miss.

As you can see, your notion of using 0.08333 seconds in any calculation related to this issue is simply wrong.  On top of that, your probability calculations are also wrong since you cannot simply pick 2 or 3 slots out of a hat filled with 5 slots -- some of them CANNOT be picked because the game will not register inputs that come too quickly.  Furthermore, the notion that pressing the button once should yield 60% success -- I have a problem with that logic as well -- again, we're not simply picking one ball out of a hat filled with 5 balls, 3 of which are good ones.  No, we are pressing the button in the midst of an "every other frame" sequence . . . I would say that 50/50 is more like it UNLESS the player does have the skill to land on a single frame of his choosing like Graham is suggesting. 

Quote
To know that the springboard is 'broken' and doesn't work 'correctly' it would seem one would have to make a judgment about the intent of the programmers.

Absolutely.  I've already explained what I believe the intent of the programmers was.  Not only do I believe it, but I'm basically 100% sure of it, and the people that know me know that I almost never claim to be 100% sure about anything, so it's really an extra strong statement that I'm making about the subject.  The programmers intended for there to be a 6-frame window where the player could press the button and a superjump would result.  This would require some skill, timing and knowledge, but once a player popped enough quarters and he had a decent amount of skill, he would be able to learn to do this maneuver basically every time.  Let's be clear, I'm ABSOLUTELY sure that this was the intent of the programmers.

Quote
I'm sure they had people test the game out, and I'm sure most the people that tested it out weren't experts at T&F mashing, so if the programers heard any word back about how the game was maybe 'broken' or lacking with respect to the springboard, why didn't they 'fix' it? It seems more likely that the programmers would have known about it (at least after some testing) and where ultimately ok with how it has ultimately ended up.

I absolutely 100% disagree with this.  First, I think it WAS tested, and it was likely tested by people on staff who were novice video game players (back in 1979 - 1981 were there many EXPERT video game players working at these corporations?  They were occasionally able to get the superjump.  When they couldn't get it, they probably assumed they were not doing it correctly.  It worked for them often enough to assume that it worked.

Saying that the programmers likely would have known about this problem is a massively gigantic assumption.  These games were created extraordinarily quickly with very little staff and with extremely primitive software tools (both for development and for testing).  Do you know how WE discovered this problem?  We used MAME, paused and slowed the game down, used save states and tried to press the button on every frame of animation during the springboard animation sequence to see what happened.  Do you think the developers of this software had ANYTHING like that at their disposal in 1979 - 1981?  You are absolutely fooling yourselves if you think so.  With the technology that was available in those days, it's a wonder any game could be created at all.  Not to mention that software development design and best practices didn't really even exist back then -- the way the code is written is just filled and riddled with all sorts of bugs, many of which could be avoided just by using some basic software best practices that are common today and have been around for a while (but not THAT long).

Quote
As far as I've heard, a key component to DKjr's 'clunkiness' is that it only registers inputs on every other frame. The programmers wanted this feel -or at least for this to be a fundamental aspect of the game.

I've actually never heard this before.  Where did you find that information?  Even if this were true (and I'm extremely doubtful), to say that the programmers wanted this feel is just nonsense.  Programmers want their games to be good, not bad.

Quote
However, to have this 'clunkiness' aspect but also make the springboard a timing-based element to the game, necessarily created the added fact that the spring jump would also be luck based.

This is a huge leap of logic and I reject it.

Go back and reread specifically what causes this bug.  It's because Junior's animation is out of synch with the spring's animation (not just the animation, but the underlying x,y locations for the objects are out of synch).  So, Junior rises off the platform, but the springboard does not rise.  Then, the springboard rises up to meet him and he has not moved.  Then, he moves up again, then the spring moves up again, etc.  This is CLEARLY a bug.

Quote
My argument for it being deliberate, from a "level design" basis,  is that making the springboard a matter of simply pressing the button a single time would render it almost totally devoid of challenge. The "long path" must be there for a reason. Why put the long path there at all if the superjump was trivially easy to perform?

Chris, I absolutely 100% disagree with this statement.  Pressing the button within a 6-frame window (1/10th of 1 second) and having to time this button press at a precise moment during the animation is NOT a lack of challenge at all.  Sure, for extraordinarily skilled players, we could learn to hit the jump pretty much 100% of the time after some trial and error (maybe $5 - $10 worth of quarters), but for the average 8 year old playing on one of these machines in an arcade setting in 1981, it would have been extremely challenging and they would have likely been successful only once in a while.  Again, go back and play Super Mario Bros. and tell me you've never missed the superjump on one of those springboards?

Quote
Then again, the randomness may have been an intentional attempt to "hide" the superjump as a sort of easter egg.

Wrong.  This is a BASIC design feature of this level.  There are only four screens in this game and this is a prominent feature in one of them.  The intention was for it to work correctly, but it doesn't.

Quote
I am partial to this theory that it may indeed have been an accidental bug, but was kept in the game anyway because they liked the effect.

This is also wrong.  I think you guys are reading way too much into what programmers were trying to do with their games in 1981.  This is CLEARLY an element where randomness was NOT part of their thinking. 

Ok, let me try and spell it out this way.  This board is basically the Elevator board from Donkey Kong.  A lot of the design and even the code was just flat out stolen from Donkey Kong so that they could crank out this game even faster.  The Donkey Kong Elevator screen has TWO possible paths.  You can jump across the gap and take the upper path, or you can ride the elevator down to the bottom and take the lower path.  WHY EVEN HAVE A LOWER SECTION THERE AT ALL IF JUMPING ACROSS THE GAP WAS TRIVIALLY EASY TO PERFORM?  Yet, it's there.
*********************************
NOW, suppose we had a situation where you jumped across the gap, and at the moment you landed, every other frame, you fell through the floor and ended up on the lower section of the Elevator screen . . . That's Donkey Kong Junior.
*********************************

IF that's how Donkey Kong played, would we say that was intentional design or a bug?  It would be extremely stupid and just would not fit with how the rest of the game plays -- so why would it be intentional?  CLEARLY, it would be a bug.

Quote
The springboard is a fundamental part of the gameplay in Junior and there is no possible way that they weren't aware of the superjump issue by the time the game was brought to America, and certainly not by the time Nintendo released the Easy and Hard upgrade kits. The behavior of the springboard persists to the last upgrade. Whether it was originally a bug or part of the design, it was intentionally not fixed.

I absolutely and totally 100% disagree with this.  You are forgetting that the Springboard WORKS SOMETIMES, AND it was meant to be a relatively difficult maneuver that was possible to miss just based on poor timing.  Again, there would have been no way for them to know the CAUSE of this bug, the out of synch animations between Junior and the Spring because in 1981 they were not pausing and going frame by frame through the game with a tool like MAME.  So, just because it persists to the last upgrade DOES NOT MEAN they were aware that there was a bug.  In fact, I can pretty much guarantee you that they were not aware of it just based on the nature of it.

So, I don't believe it was intentionally not fixed -- although that's also possible, again, just based on how these companies were operating at lightening speeds, with limited staff, and always working on their next project -- fixing a bug on an already released game was probably at the bottom of their priority list.

Quote
It's printed right on the instruction card.
...
If jump button is pressed with RIGHT TIMING.

I think it works exactly as intended.

LMAO!  That's outrageously funny, I was with you RIGHT up until your last sentence.  Based on the first two sentences, I would come to EXACTLY the opposite conclusion . . .

It's printed right on the instruction card.
If jump button is pressed with RIGHT TIMING.
THEREFORE, it's CLEARLY a bug.

Quote
I am in full agreement with your thoughts here, but who exactly has said they have "mastered" the springboard? I don't remember anyone saying that. Maybe I missed it somewhere?

...

Quote
I suggest if you can master single press it will definitely help you master the jump as you can double tap to double your chances but knowing the single press makes it a lot more successful.

I'm not really trying to pick on Graham here, it was just the easiest example to find.  Literally dozens of people have claimed to have mastered the springboard jump over the years in various threads -- particularly, before it was pointed out to them that the springboard is broken and cannot be mastered.

Quote
It is what it is....it's been this way for over 30 years, it's not going to change.  Just track and field it and hope.  Most folks at this point seem to get a very reasonable success rate.

FINALLY, a statement in this thread that I can agree with.  Thank you Steve!

Quote
Love it?

No.
Title: Re: DK Jr. springboard discussion
Post by: Graham Wolfe on September 04, 2013, 02:26:09 pm
Ahh you mistake my mastery as being 100%. I'm saying to where your rate of error is 1/10 or better
No human does 100% perfection.
Title: Re: DK Jr. springboard discussion
Post by: ChrisP on September 04, 2013, 04:27:25 pm
The most convincing aspect of Dean's argument is the syncing issue.

I agree that at least that issue WAS a true bug, and that the natural consequence of that bug is the springboard's behavior.

I also opened up Junior just now to look at this specifically with an eye for how long he is actually on the board (because I'd never REALLY paid attention I just mashed the button), and I must admit that having to hit the button while the spring is rising IS a very short time, a time that would constitute a "challenge", and would justify the "right timing" statement on the instruction card.

So to me, the question is becoming not whether it's a bug (I'm becoming persuaded that it was, after that post), but whether the bug was discovered, and whether it was passively "who cares?" left in, or actively "we LIKE this bug!" left in.

This is also wrong.  I think you guys are reading way too much into what programmers were trying to do with their games in 1981.  This is CLEARLY an element where randomness was NOT part of their thinking. 

I don't think too much can be read into their thinking, and I don't think you're giving them ENOUGH credit. Some of the design in DK and Junior is very subtle, even beautifully subtle, and intricate changes were consciously made to the games. Adding jump "steering" into DK for example, or the new bird motions in the Junior P-kit, seem far more fine-grained and less apparent than the springboard clearly not working as often as it was supposed to. (It would only take a few dozen tries in testing for the problem to be obvious... it doesn't really take "skill" per se to hit a button really fast, to know with certainty that it was indeed hit on the rise of the spring, and that what was supposed to happen didn't happen.)

However, I could see them making the determination that fixing it would be a pain in the ass, especially if they didn't know why it was happening, and of no benefit to the bottom line, so they didn't bother dealing with it.

Quote
Love it?

No.

LOL.
Title: Re: DK Jr. springboard discussion
Post by: up2ng on September 04, 2013, 04:49:38 pm
I think I may have come across as too argumentative and condecending in my previous post -- that was not my intention.  I was just trying to further explain my reasoning for why I think the springboard is broken.  Hopefully no one took offense.

Like Steve said, it is what it is and if we want to do well on that game we need to just accept it.

Title: Re: DK Jr. springboard discussion
Post by: marinomitch13 on September 04, 2013, 05:51:46 pm
As I told Dean on his stream just now, we just need Jeremy to do another dissertation on this issue! :D  ;)
Title: Re: DK Jr. springboard discussion
Post by: JCHarrist on September 04, 2013, 06:20:27 pm
My testing is showing that every other frame out of a 10 frame window will trigger the superjump. So there's actually 5 "trigger" frames and they are equally spaced out around the spring bottoming out. It doesn't have to be on the upstroke.

Title: Re: DK Jr. springboard discussion
Post by: marinomitch13 on September 04, 2013, 06:23:46 pm
Interesting developments in Juniorville!
Title: Re: DK Jr. springboard discussion
Post by: Graham Wolfe on September 04, 2013, 07:06:33 pm
Oh no wonder multi presses help if this is true it's very possible to get 2 taps or even 3 using marks trick as well as scrubs like me getting 2 chances on keyboard
Title: Re: DK Jr. springboard discussion
Post by: Simpsons99 on September 04, 2013, 07:14:56 pm
Some people mash the Jump button..  Some people have Timed Jumps that get the super spring Jump..  I Have pretty much mastered the Timed Jumps to get the super spring Jump.
Title: Re: DK Jr. springboard discussion
Post by: JCHarrist on September 04, 2013, 07:46:05 pm
Here's the entire 10 frame sequence.  Junior and the spring animation only move every other frame. The first frame of each animation (green circles) is when a button press will cause the superjump.

(http://i198.photobucket.com/albums/aa293/jcharrist/JrSpring_zps544e54f8.png)

While the space between Junior and the springboard changes slightly during the sequence, they are never moving "out of sync" with each other.



Title: Re: DK Jr. springboard discussion
Post by: ChrisP on September 04, 2013, 08:24:35 pm
OK, good, I'm not crazy!

I Shift-Ped my way through that too today, and when I only saw Junior in contact with the spring on the first two frames, it was confusing to me because this "on/off" thing that Dean and Zerst were talking about was not what I was seeing.
Title: Re: DK Jr. springboard discussion
Post by: marinomitch13 on September 04, 2013, 08:50:26 pm
Some people mash the Jump button..  Some people have Timed Jumps that get the super spring Jump..  I Have pretty much mastered the Timed Jumps to get the super spring Jump.

Now we know who has been claiming they've 'mastered' the jump!

Dean, do with him what you will...
Title: Re: DK Jr. springboard discussion
Post by: marinomitch13 on September 04, 2013, 08:57:23 pm
These findings make sense out of the data. I was gonna respond to Dean, but then I realized that the math wasn't adding up to what people have actually and certainly experienced, so I was leaning towards questioning some of the assumptions that I had previously been running on (mainly the content of Zerst's findings).

All is well in the world again -especially cuz Dean got a new WR tonight too!

However, just to be fair, I have to wonder if maybe Dean actually has some sort of rare harder rom version of the spring jump. That would be the remaining thing we ought to check.
Title: Re: DK Jr. springboard discussion
Post by: ChrisP on September 04, 2013, 09:19:57 pm
Well, the other night in Allen's stream Zerst also said (with a lot of confidence) that with an 8-way joystick one can climb and steer barrels at the same time in DK, which is something that I thought had been conclusively debunked.

I've played with an 8-way and I've certainly never been able to do that. (All I've ever been able to do with an 8-way was run off edges when trying to climb.  :) )

Not to pick on Zerst, but according to him, he barely even plays DK (with a 4-way, 8-way, or anything else) so I'm not sure why he felt so certain.

In any case, the stuff about the springboard frames was accepted rather uncritically from him, and if he was mistaken about the climb-steer (which I'm pretty sure he is), he might have been mistaken about this too. Anybody can misinterpret code.
Title: Re: DK Jr. springboard discussion
Post by: marinomitch13 on September 04, 2013, 09:32:31 pm
Well, the other night in Allen's stream Zerst also said (with a lot of confidence) that with an 8-way joystick one can climb and steer barrels at the same time in DK, which is something that I thought had been conclusively debunked.

Yeah, I was there for that. I'm pretty sure I remember just testing this sort of thing in mame, bitd, and you actually can't utilize both inputs at once. The first input actually has to be stopped for the next one to happen. Regardless, Zerst is actually the only person I've heard not say that two inputs at once was impossible on DK.
Title: Re: DK Jr. springboard discussion
Post by: Graham Wolfe on September 04, 2013, 11:50:54 pm
just played a kill screen game on mame with 20 successful spring jumps in a row (only missed a jump on the very first springboard) but i died on a springboard stage and made the jump first try again on it.

was using double tap method on keyboard

its all about feeling the jump =)
Title: Re: DK Jr. springboard discussion
Post by: JCHarrist on September 09, 2013, 07:38:47 pm
Here's my code breakdown for the superjump. I don't guarantee that all of this is 100% accurate but I'm confident that the routine that polls the jump button and updates Junior's position while on the spring was intended to run every other frame.

Memory location $6A90 was set up for just this purpose and the first few lines of code from 4D6C to 4D79 handle the frame skipping.


Relevant memory locations:

$6010 = input from joystick and jump button: 01=right:02=left:03=down:04=up:80=jump:81=right jump:82=left jump

$6203 = Junior's X position

$6205 = Junior's Y position

$620F = ?? not sure.. sprite # maybe??

$6667 = spring position. 50=fully extended....53=fully compressed.

$6A87 = 1 if Junior collision with with spring detected else 0

$6A89 = 0 if spring on downstroke or bottom. 1 if spring on upstroke

$6A8A = normally 0 or 54 but records spring position from which superjump was successful = 51,52,or 53.

$6A8B = 1 if Junior on spring else 0.

$6A90 = alternates between 0 and 1 every frame

$6A9F = direction Junior was moving when he hit spring. 1=right: 2=left



Code: [Select]

Arrive here from 5816 when Junior is on spring:

4D6C: ld   a,($6A90) // load $6A90 into A
4D6F: and  a       // clear carry flag
4D70: jr   z,$4D77    // if zero, skip ahead to 4D77, else continue

4D72: dec  a        // decrement A to 0
4D73: ld   ($6A90),a // load 0 into $6A90 so it will continue to springboard routine on the next frame
4D76: ret // return to main program

Springboard code:

4D77: ld   a,$01      // load 01 into A
4D79: ld   ($6A90),a // load 01 into $6A90 so it will skip this routine on the next frame
4D7C: ld   a,($6010) // load control input into A
4D7F: ld   e,$01 // load 01 into E
4D81: bit  0,a // set zero flag if NOT moving right
4D83: jr   nz,$4D8D // jump ahead to 4D8D if moving right
4D85: ld   e,$FF // load FF into E
4D87: bit  1,a // set zero flag if NOT moving left
4D89: jr   nz,$4D8D // jump ahead to 4D8D if moving left
4D8B: ld   e,$00 // load 00 into E (joystick is centered)


4D8D: ld   a,($6203) // load Juniors X position into A
4D90: add  a,e // add E to Juniors X positon
4D91: ld   ($6203),a // update Juniors X position (this will move him 1 pixel in the direction the joystick is being held)
4D94: ld   a,$01      // load 01 into A
4D96: ld   ($620F),a // load 1 into $620F (?? not sure what $620F is.. sprite # ??)
4D99: ld   a,($6A89) // load $6A89 into A ($6A89=0 on the downstroke or at the bottom, 1 on the upstroke)
4D9C: and  a // clear carry flag, set zero flag if on the downstroke
4D9D: ld   a,($6667) // load $6667 into A ($6667 =spring position. 50=fully extended..53=fully compressed. 0 if Junior is not on spring)
4DA0: jr   nz,$4DF6  // jump ahead to 4DF6 if on the upstroke

4DA2: cp   $53 // compare spring postion to 53
4DA4: jr   z,$4DB1 // jump to 4DB1 if fully compressed

4DA6: inc  a // increment spring position
4DA7: ld   ($6667),a // update spring position
4DAA: ld   b,a // load spring position into B
4DAB: ld   c,$00 // load 00 into C
4DAD: ld   a,$00 // load 00 into A
4DAF: jr   $4DBA // jump to 4DBA


Arrive here from 4DA4 if spring fully compressed:

4DB1: dec  a // decrement A
4DB2: ld   ($6667),a // load into spring position
4DB5: ld   b,a // load spring position into B
4DB6: ld   c,$04 // load 04 into C
4DB8: ld   a,$01 // load 01 into A

Arrive here from 4DAF if spring not fully compressed:

4DBA: ld   ($6A89),a // load 00 into $6A89 (spring on downstroke)
4DBD: ld   a,b // load spring position into A
4DBE: and  $03 // AND A with 03
4DC0: or   c // OR A with C
4DC1: ld   e,a // load A into E
4DC2: ld   d,$00 // load 00 into D
4DC4: ld   hl,$4E19 // load $4E19 (start address of data table) into HL
4DC7: add  hl,de // add offset to start address
4DC8: ld   b,(hl) // load data from table into B
4DC9: ld   a,($6205) // load Juniors Y position into A
4DCC: add  a,b // add offset
4DCD: ld   ($6205),a // load back into Junior's Y position
4DD0: ld   ($694F),a // update left sprite position
4DD3: ld   ($6957),a // update right sprite position
4DD6: ld   a,($6A87) // load $6A87 into A
4DD9: and  a // clear carry flag
4DDA: ret  nz // return if not zero

4DDB: ld   a,($6010) // springboard check for jump button. Jump button will set bit 7

4DDE: rlca            //rotate left. if bit 7 set then carry flag will be set
4DDF: ret  nc        // if no superjump, return

4DE0: ld   a,($6667) // load spring position into A
4DE3: ld   ($6A8A),a // load A into $6A8A (superjump successful)
4DE6: ld   a,$01 // load 01 into A
4DE8: ld   ($6A87),a // load A into $6A87
4DEB: ld   a,($6A89) // load $6A89 into A
4DEE: and  a // clear carry flag
4DEF: ret  nz // return if on upstroke

4DF0: ld   a,$53 // load 53 into A
4DF2: ld   ($6A8A),a // load 53 into $6A8A
4DF5: ret // return


Arrive here from 4DA0 when on the upstroke:

4DF6: cp   $50 // compare A to 50
4DF8: jr   nz,$4DB1 // jump to 4DB1 if spring not fully extended
4DFA: ld   a,($6A8A) // load $6A8A into A
4DFD: and  a // clear carry flag, check for zero
4DFE: jr   nz,$4E05 // jump to 4E05 if not zero
4E00: ld   a,$54 // load 54 into A
4E02: ld   ($6A8A),a // load 54 into $6A8A (clear superjump indicator)

4E05: xor  a // A=0
4E06: ld   ($6A8B),a // load 0 into $6A8B..(Junior no longer on spring)
4E09: ld   ($6398),a // load 0 into $6398
4E0C: ld   a,($6A9F) // load $6A9F into A
4E0F: ld   ($6010),a // load A into $6010
4E12: xor  a // A=0
4E13: ld   ($6A9F),a // load A into $6A9F
4E16: jp   $1B6E // jump to 1B6E


data table:

4E19: 00           
4E1A: 02           
4E1B: 03           
4E1C: 03           
4E1D: FB           
4E1E: FB           
4E1F: FD
4E20: 00

Title: Re: DK Jr. springboard discussion
Post by: marinomitch13 on September 09, 2013, 08:30:57 pm
I'm having trouble following the logic of the programming. So what does this say about the springboard in terms of the range of when you can get a successful super jump? Is it every-other frame for 10 total frames like you thought?
Title: Re: DK Jr. springboard discussion
Post by: JCHarrist on September 09, 2013, 08:47:36 pm
I'm having trouble following the logic of the programming. So what does this say about the springboard in terms of the range of when you can get a successful super jump? Is it every-other frame for 10 total frames like you thought?

Yes, the spring position goes 50,51,52,53,52,51,50. If the jump button is pressed on the first frame of position 51,52 or 53 either on the way down or back up, the superjump will activate.
Title: Re: DK Jr. springboard discussion
Post by: marky_d on September 09, 2013, 09:17:01 pm
So am I understanding this right? There are 5 positions (chances) with alternating frames of jump/no jump when the button is pressed, therefore explaining button mashing's success rate?
Title: Re: DK Jr. springboard discussion
Post by: JCHarrist on September 09, 2013, 09:36:37 pm
So am I understanding this right? There are 5 positions (chances) with alternating frames of jump/no jump when the button is pressed, therefore explaining button mashing's success rate?

Yes, here's how the spring position relates to the 10 frames.

Green circle = superjump if button pressed. Red X = no superjump.

(http://i198.photobucket.com/albums/aa293/jcharrist/JrSpring_zps293a2e41.png)
Title: Re: DK Jr. springboard discussion
Post by: marinomitch13 on September 09, 2013, 09:49:21 pm
So, we can label the frames like this:

1 Good
2 Bad
3 Good
4 Bad
5 Good
6 Bad
7 Good
8 Bad
9 Good

Even if your first press lands on frame 2, then you probably still have good chances to land on frames 5, 7, or 9 (frame 3 is too close to be practical)! The odds of landing on frame 2 rather than 1 or 3 are probably close to 50%, and the odds of still not getting the super jump after initially landing on frame 2 are probably themselves close to 40% (frames 5-9), so a rough estimation of not getting the super jump in this case would be close to 20%. So about an 80% success rate seems realistic, considering the average mashing speed of players. For those that mash faster, it may be the case that you actually can get 3 attempts in during the allotted time even if you land on frame 2 first, which would give your last mash something close to 50% and result in more like a 90% success rate overall.
Title: Re: DK Jr. springboard discussion
Post by: up2ng on September 09, 2013, 10:03:16 pm
Here's my code breakdown for the superjump. I don't guarantee that all of this is 100% accurate but I'm confident that the routine that polls the jump button and updates Junior's position while on the spring was intended to run every other frame.

JC, Excellent job on the code translation for this section of DKJR!  However, once again, I believe strongly that you are jumping to conclusions.  I don't think that we can say from the code that is shown here that examining the jump button was INTENDED to run every other frame.  In my opinion, that aspect of the code is a bug.

I believe strongly that there was some reason why the programmers decided to skip frames during this section of code.  One possibility was that they are simply trying to run too many instructions for the processor to execute every frame when combined with everything else that it's trying to do on each frame.  But, I don't think that's it. . .  What I DO strongly suspect here is that the programmers were concentrating heavily on the ANIMATION of both the springboard itself and of Junior's position throughout this process and at some point they felt that the animation would be better if the sprites were updating themselves every other frame.  Once this was decided, instead of using some sort of counter that would keep track of whether or not you were on the first or second frame and then running the entire rest of this block of code as normal, but updating the sprites and object positions only every other frame, they decided instead that the best way to handle this would be to simply check this counter up front and then RETURN out of this code block on the inbetween frames, COMPLETELY FORGETTING that they still need to be checking the JUMP button EVERY frame!

Just bad programming.  Again, there were very easy ways that this could have been written properly, but instead they lumped in checking the jump button into the same routine as updating the sprite animation and then they were skipping the entire routine every other frame -- which in my opinion is most likely a bug.

Then, they tested it, it worked once or twice and they said "Great!  Done.  What's next. . .  OMG, when is this game being released again?  There's SO much more to do. . ."

Programming error not caught.  BAM, broken springboard.
Title: Re: DK Jr. springboard discussion
Post by: marinomitch13 on September 09, 2013, 10:23:38 pm
Then, they tested it, it worked once or twice and they said "Great!  Done.

Wouldn't it actually be a matter of them testing it and if it always caused the superjump when the jump button was pressed while Junior was on the spring, then they'd know it was probably working? You don't think they'd be able to tell if they didn't mis-time the jump and still didn't get the super jump?

If they thought it would always work, then they'd likely only press once. If they only pressed once, what are the odds that during their testing that every time they attempted the springboard and thought they had timed it right that they'd happen to get a superjump?
Title: Re: DK Jr. springboard discussion
Post by: marky_d on September 09, 2013, 10:36:31 pm
I am wondering that if it was an unintended bug that made the game more difficult why they didn't correct it when they released the easier romset. Since they were jacking with the code anyways it would seem like a great opportunity to fix it to make the game easier.
Title: Re: DK Jr. springboard discussion
Post by: marinomitch13 on September 09, 2013, 10:47:14 pm
I am wondering that if it was an unintended bug that made the game more difficult why they didn't correct it when they released the easier romset. Since they were jacking with the code anyways it would seem like a great opportunity to fix it to make the game easier.

Oh, so unlike in DK where they were actually making the game harder by removing the ladder cheat and adding in mid-air steering, with DKjr they actually made it easier?
Title: Re: DK Jr. springboard discussion
Post by: marky_d on September 09, 2013, 10:49:34 pm
I am wondering that if it was an unintended bug that made the game more difficult why they didn't correct it when they released the easier romset. Since they were jacking with the code anyways it would seem like a great opportunity to fix it to make the game easier.

Oh, so unlike in DK where they were actually making the game harder by removing the ladder cheat and adding in mid-air steering, with DKjr they actually made it easier?

Well there were two revisions (that I know of), an "easy" and "hard". Easy is available on mame, and Chris has the unmamed harder revision but hasn't dumped the roms.
Title: Re: DK Jr. springboard discussion
Post by: marinomitch13 on September 09, 2013, 10:53:25 pm
Chris has the unmamed harder revision but hasn't dumped the roms.

Shamelessly depriving Brian of another DKjr version. Tsk. Tsk.
Title: Re: DK Jr. springboard discussion
Post by: up2ng on September 09, 2013, 11:03:58 pm
Quote
You don't think they'd be able to tell if they didn't mis-time the jump and still didn't get the super jump?

As a matter of fact, no, I don't.  I think you really need to try hard to go back in time to 1981 - 1982.  Widespread, mass-produced, popular video games have only EXISTED for less than 5 years (history buffs are going to disagree with that but I don't care).  Things were changing RAPIDLY and nobody really knew much about anything.  Plus, most people, and certainly the people that would be working at a software company absolutely did not have the skills at video game playing that this community assumes that "everybody" has.  It is very likely that they felt that pressing the button once within a specific 9-frame window was enough of a challenge that you wouldn't really be sure if you were timing it correctly and if it didn't work during a test, they probably assumed that they simply "missed it" -- which was probably great in their eyes . . . they were trying to create something somewhat challenging that would take some skill and that a lot of people would at least occasionally miss -- ESPECIALLY if they were BRAND NEW to the game -- which all testers were by default.

The fact that it "sometimes" worked, and they were happy with the animation and the resulting object locations in both cases -- was probably good news to everyone and they just assumed it was working probably.  They probably didn't realize that it just wasn't working as often as it should have.  For example, if they expected people to be able to execute it properly 80% of the time and the testers were only getting it to work 40% of the time, they probably just didn't put two and two together -- they simply thought that if they had "right timing" that it worked, and then they moved on.

Quote
I am wondering that if it was an unintended bug that made the game more difficult why hey didn't correct it when they released the easier romset.

I'm not very familiar with the timeline of how later releases like this were developed (was the easy romset developed by Nintendo or is it a hack?  Usually the company would INCREASE difficulty to help their arcade operators earn more quarters).  But, it's my understanding that a lot of these software updates that were offered to the arcade operators were ready for distribution on the order of months (and NOT years or decades) after the original game was released.  The point that I'm getting at is that they very likely WERE NOT AWARE OF THIS BUG at the time since it sometimes worked.



Anyways, I hope I'm explaining my reasoning well enough in this thread.  In my own mind, this whole issue is amazingly clear to me and I'm actually pretty flabbergasted that more people (ESPECIALLY the programmers in our community) don't see it the same way.  Honestly, to me this is such a "DUH" kind of conversation that this whole thread feels like a wierd Twilight Zone episode.

Of course, none of this means that I'm right.  I may very well be wrong . . . but I doubt it!  ;-)
Title: Re: DK Jr. springboard discussion
Post by: marinomitch13 on September 09, 2013, 11:09:11 pm
Dean, make sure you vote!!!: https://donkeykongforum.net/index.php?topic=515.0 (https://donkeykongforum.net/index.php?topic=515.0)

LOL!  ;D
Title: Re: DK Jr. springboard discussion
Post by: marky_d on September 09, 2013, 11:21:29 pm
I'm not very familiar with the timeline of how later releases like this were developed (was the easy romset developed by Nintendo or is it a hack? 

It looks like these revisions were made available by Nintendo 7 months after the game's release...

DJR-03  Donkey Kong Modification Kits                 02-23-83
   --------------------------------------------------------------
   Nintendo Service Department Bulletin # DJR-03         02-23-83
   GAME: Donkey Kong Junior
   SUBJECT: Play Time
   
   It has come to our attention that play time on Donkey Kong
   Junior is, in some cases, excessive, while in other cases
   there is concern over the ability of players to learn the
   game and thereby retain an interest in playing.
   
   We are making available, through our Nintendo Distributors,
   two EPROM change kits, designated DJR1-E and DJR1-P.
   
   The E kit consists of four (4) chips and is an easier version
   of the program.  it presents the board sequence in a way which
   familiarizes the players with the game faster.  The board
   order is vines, springboard, Mario's hideout and keys.
   
   The P kit is a more difficult version consisting of two chips.
   The order remains the same while more and faster
   obstacles (snapjaws, nitpickers, etc.) are presented.
   --------------------------------------------------------------
Title: Re: DK Jr. springboard discussion
Post by: marky_d on September 09, 2013, 11:25:15 pm
Having posted that it is interesting how they describe the easier romset  :D.