From c6626d7822ed73922d124c7989117c53a8d4e7f5 Mon Sep 17 00:00:00 2001 From: bigbass1997 Date: Fri, 27 Aug 2021 22:54:36 -0500 Subject: Added proposal for InputMoment packet. --- spec.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/spec.md b/spec.md index 103da5d..3f98e85 100644 --- a/spec.md +++ b/spec.md @@ -165,7 +165,14 @@ FE01 | 1 + n bytes | InputChunks | Port number (1-indexed) + a variable n Refer to transitions to know if any controller types change mid-playback. These packets, and the input chunks therein, are in sequential order! Therefore, any following input packets are appended to the inputs contained in this one. - Input values are usually in native format (usually active-low), refer to `inputmaps.txt` for details. + Input values are usually in native format (usually active-low), refer to 'inputmaps.txt' for details. + +FE0x | 1 + 4 + n bytes | InputMoment | (PROPOSED) Port number (1-indexed) + 32-bit frame/index number + a single instance of input for that port. + Similar to InputChunks but instead specifies an input at a specific point in time. + Useful for consoles with many repeated inputs or that use clock cycles as an index number. + Some consoles may interpret these packets as inputs that are held until the next specified InputMoment, + or they may use a default input state until the next InputMoment is reached. + Sequential order is not necessary. Refer to 'inputmaps.txt' for input formats. FE02 | 4 + 1 + n bytes | Transition | Defines a transition at a specific point in the TAS. First 4 bytes is the frame/index number (0-indexed) based on all inputs contained in all FE01 packets. Then 1 byte specifying the transition type. Followed by a variable number of bytes if applicable. -> 01 = "Soft" Reset (n = 0) -- cgit v1.2.3