diff --git a/source/funkin/input/PreciseInputManager.hx b/source/funkin/input/PreciseInputManager.hx index 7e6a6569b..6217b2fe7 100644 --- a/source/funkin/input/PreciseInputManager.hx +++ b/source/funkin/input/PreciseInputManager.hx @@ -84,6 +84,11 @@ class PreciseInputManager extends FlxKeyManager }; } + /** + * Convert from int to Int64. + */ + static final NS_PER_MS:Int64 = Constants.NS_PER_MS; + /** * Returns a precise timestamp, measured in nanoseconds. * Timestamp is only useful for comparing against other timestamps. @@ -97,11 +102,11 @@ class PreciseInputManager extends FlxKeyManager // NOTE: This timestamp isn't that precise on standard HTML5 builds. // This is because of browser safeguards against timing attacks. // See https://web.dev/coop-coep to enable headers which allow for more precise timestamps. - return haxe.Int64.fromFloat(js.Browser.window.performance.now() * Constants.NS_PER_MS); + return haxe.Int64.fromFloat(js.Browser.window.performance.now()) * NS_PER_MS; #elseif cpp // NOTE: If the game hard crashes on this line, rebuild Lime! // `lime rebuild windows -clean` - return lime._internal.backend.native.NativeCFFI.lime_sdl_get_ticks() * Constants.NS_PER_MS; + return lime._internal.backend.native.NativeCFFI.lime_sdl_get_ticks() * NS_PER_MS; #else throw "Eric didn't implement precise timestamps on this platform!"; #end diff --git a/source/funkin/play/PlayState.hx b/source/funkin/play/PlayState.hx index 4e8b1ce9d..297f14d69 100644 --- a/source/funkin/play/PlayState.hx +++ b/source/funkin/play/PlayState.hx @@ -2326,8 +2326,7 @@ class PlayState extends MusicBeatSubState vocals.playerVolume = 1; // Calculate the input latency (do this as late as possible). - var currentTimestampNs:Int64 = PreciseInputManager.getCurrentTimestamp(); - var inputLatencyMs:Float = haxe.Int64.toInt(currentTimestampNs - input.timestamp) / Constants.NS_PER_MS; + var inputLatencyMs:Float = haxe.Int64.toInt(PreciseInputManager.getCurrentTimestamp() - input.timestamp) / 1000.0 / 1000.0; trace('Input: ${daNote.noteData.getDirectionName()} pressed ${inputLatencyMs}ms ago!'); // Get the offset and compensate for input latency.