From cb3ea89190e066d01d1c9d8b4bbcbbd64177e21b Mon Sep 17 00:00:00 2001 From: bigbass1997 Date: Fri, 8 Oct 2021 09:56:48 -0500 Subject: Added index type to FE02, and added Other type to console region. --- spec.md | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'spec.md') diff --git a/spec.md b/spec.md index 71ea21d..df783e2 100644 --- a/spec.md +++ b/spec.md @@ -47,6 +47,7 @@ Key | Payload Size | Name | Description 0002 | 1 byte | ConsoleRegion | Console region required to play this TAS. -> 01 = NTSC -> 02 = PAL + -> 03 = Other/Unknown 0003 | variable | GameTitle | (string) Title of the game. 0004 | variable | Author | (string) Name of one author of the TAS. (e.g. "Bender B. Rodriguez") @@ -65,9 +66,8 @@ Key | Payload Size | Name | Description 000F | 1 byte | Verified | Whether or not this TAS has been verified by someone. (boolean, value of either 00 or 01) 0010 | 1 + 1 + v + k + n + p bytes | MemoryInit | Initialization of named memory space. First byte is the kind of initialization. - Second byte is whether or not this is required for verifications (0 = optional, 1 = required). Then the name of the space. - And an optional custom payload. (1 byte type, 1 byte verification requirement, v = 1 byte exponent for k, k = length of n, n = name string, p = memory payload) - + Second byte is whether or not this is required for verifications (0 = optional, 1 = required). Then the name of the space. + And an optional custom payload. (1 byte type, 1 byte verification requirement, v = 1 byte exponent for k, k = length of n, n = name string, p = memory payload) -> 01 = No intialization required (p = 0) -> 02 = All 0x00 (p = 0) -> 03 = All 0xFF (p = 0) @@ -167,13 +167,16 @@ FE01 | 1 + n bytes | InputChunks | Port number (1-indexed) + a variable n 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. -FE02 | 1 + 4 + n bytes | InputMoment | Port number (1-indexed) + 32-bit 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 (e.g. GB/C/A), - or they may use a default input state until the next InputMoment is reached. - Index number can be based on anything, but should be consistent throughout a file (e.g. clock cycles, frames, seconds, etc). - Sequential order is not necessary. Refer to 'inputmaps.txt' for input formats. +FE02 | 1 + 1 + 4 + n bytes | InputMoment | Port number (1-indexed) + 1 byte type + 32-bit 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 (e.g. GB/C/A), + or they may use a default input state until the next InputMoment is reached. + Index number can be based on anything, but should be consistent throughout a file (e.g. clock cycles, frames, seconds, etc). + Sequential order is not necessary. Refer to 'inputmaps.txt' for input formats. + -> 01 = frames + -> 02 = cycles + -> 03 = milliseconds FE03 | 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