Banner
Views: 926,917,407
Time:
6 users online: ageVerrly, Alex_X8, Anas, Mirann, Rilla Roo,  xHF01x - Guests: 47 - Bots: 89 Users: 51,805 (2,055 active)
Latest: b2yonsf
Tip: $5.27
Not logged in.
Details for Tolerance Timer (aka Input Buffering & "Coyote Time")
SMW Patches - Tolerance Timer (aka Input Buffering & "Coyote Time") Link - Show random
File Name: Tolerance Timer (aka Input Buffering & "Coyote Time")
Added:
Version History: View
Authors: RPG Hacker
Tool: Asar
Requires Free Space: Yes
Bug Fix: No
Featured: No
Description: (2021-05-05: made the patch less unwieldy, single-file, and compatible with newer Asar versions.)

---

This patch aims at making the game's controls more responsive while also lessening the impact of input lag (such as in BSNES or Higan).

So far, two different tricks are supported in the patch and both of them are based on simple timers that add some kind of tolerance window to the game.

The first trick (aka "Coyote Time") allows Mario to perform late jumps. This means that if Mario is about to fall down a platform, as long as a certain amount of time hasn't passed yet, Mario can still perform a jump.

The second trick (aka "Input buffering") basically does the exact opposite to this, as it allows Mario to perform early jumps. This means that if Mario is currently still in the air and pressing a jump button, if he lands on a platform within the next few frames, he will immediately jump off that platform, as if the jump button was pressed the exact moment he landed on it.

By default, both hacks are set to use a frame count of 3 frames (which is equal to about 50 ms of time), but this can be adjusted in the patch. I personally think that 3 frames is a great starting point, but depending on your hack's design, other settings might work even better for you. You can also activate and deactivate both hacks independently from each other. Just take a look at ttconfig.cfg for details on each setting.

Please play around with the patch for yourself to see how much of a difference it makes, espcially in hacks with tight and precise (single block to single block) jumps.

Requires up to 5 bytes of free RAM, depending on which features you enable (3 for late jumps and 2 for early jumps).

Feel free to contribute to this and other patches via my GitHub repository.
Tags: bsnes, delay, early, early jump, early jumps, emulator, enhancement, gameplay, higan, input delay, input lag, input latency, jump, lag, late, late jump, late jumps, latency, lorom, needs remoderation, physics, sa-1, timer, tolerance
Download: Download - 1.90 KiB
78 downloads
Screenshots
Image
BreadWheatmann
Originally posted by RPG Hacker
Oh, whoops. Sounds like quite the specific situation. Yeah, that should be fixable by just clearing the timer on level load. If I remember correctly, there's already some free RAMs available that clears automatically on level load, so by just setting the respective timer define to one of those addresses, you might be able to hot-fix the issue yourself.


Well, I tried messing around with it some, and it looks like clearing it on level load works, but not with a retry system rom. I'll try using a RAM timer ($7E188A) that auto resets upon hurt or death, but if that doesn't work, is there any way I could insert some code into retry_extra.asm to manually reset the timer upon death? What would that code be exactly? Thanks!

edit: the death-reset free ram timer worked! Thanks for the help!
Posted by: BreadWheatmann - | Link
RPG Hacker
Oh, whoops. Sounds like quite the specific situation. Yeah, that should be fixable by just clearing the timer on level load. If I remember correctly, there's already some free RAMs available that clears automatically on level load, so by just setting the respective timer define to one of those addresses, you might be able to hot-fix the issue yourself.
Posted by:  RPG Hacker - | Link
BreadWheatmann
So, after a bit more playtesting I've found a small bug that needs addressing. Most of the time, when exiting a pipe at the start of a screen and going straight into freefall, the coyote time works just fine. However, when using the multiple checkpoint retry system, if Mario dies while standing on the ground, then respawns in midair, the late-jump timer is not reset. This means that players can spawn out of a pipe and be instantly able to jump, even if they haven't yet touched the ground that life, which can break a lot of setups. This could probably be fixed by adding a check to see if the player has died, in which case all the timer is reset and the late jump is made impossible. So, uh, yea, now ya know. Have a nice day!

edit: I tested it on a completely clean rom without a retry system, and the problem still occurred. Seems that the timer and late-jump-allowed trigger stay active through death, and can even be carried over to completely different levels after going through the overworld.
Posted by: BreadWheatmann - | Link
BreadWheatmann
This is absolutely incredible and in my opinion a must-have patch, even for kaizo hacks. It makes this game feel FAR more responsive and modern, and as far as I can tell it has 0 drawbacks (unless you consider giving frustratingly frame-perfect tricks a little bit of leniency and consistency a bad thing). No longer will players have to literally time it down to the frame to jump off a falling platform optimally, or pick up a throw block while leaping from it, allowing levels past those annoying roadblocks and actually get to the fun part - the cool setups that tricks like those allow. I hope this becomes a standard inclusion in new hacks moving forward. Great patch!
Posted by: BreadWheatmann - | Link
Vitor Vilela
Works all cool! I remember in the other day someone talking that Mortal Kombat II had a lot of input lag and the first think I thought was a patch similar to this to buffer commands ahead of time.
Posted by:  Vitor Vilela - | Link
RPG Hacker
Oh, right, I never updated this for the newer Asar versions. Thanks for doing that.
If you wanna do me a solid, please also add "coyote time" and "input buffering" somewhere to the title or description, because that's what these things are officially known as.
Posted by:  RPG Hacker - | Link

The purpose of this site is not to distribute copyrighted material, but to honor one of our favourite games.

Copyright © 2005 - 2021 - SMW Central
Legal Information - Privacy Policy - Link To Us


Menu

Follow Us On

  • YouTube
  • Twitch
  • Twitter

Affiliates

  • Super Mario Bros. X Community
  • ROMhacking.net
  • Mario Fan Games Galaxy
  • sm64romhacks