summaryrefslogtreecommitdiff
path: root/src/constants.ts
blob: 44c763fed3e4ef3a643813c3a595d9e2bf78f6b4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54

export const PACKET_TYPES = {
  // General Keys
  'CONSOLE_TYPE':              0x0001,
  'CONSOLE_REGION':            0x0002,
  'GAME_TITLE':                0x0003,
  'ROM_NAME':                  0x0004,
  'ATTRIBUTION':               0x0005,
  'CATEGORY':                  0x0006,
  'EMULATOR_NAME':             0x0007,
  'EMULATOR_VERSION':          0x0008,
  'EMULATOR_CORE':             0x0009,
  'TAS_LAST_MODIFIED':         0x000A,
  'DUMP_CREATED':              0x000B,
  'DUMP_LAST_MODIFIED':        0x000C,
  'TOTAL_FRAMES':              0x000D,
  'RERECORDS':                 0x000E,
  'SOURCE_LINK':               0x000F,
  'BLANK_FRAMES':              0x0010,
  'VERIFIED':                  0x0011,
  'MEMORY_INIT':               0x0012,
  'GAME_IDENTIFIER':           0x0013,
  'MOVIE_LICENSE':             0x0014,
  'MOVIE_FILE':                0x0015,
  'PORT_CONTROLLER':           0x00F0,
  'PORT_OVERREAD':             0x00F1,
  // NES Specific Keys
  'NES_LATCH_FILTER':          0x0101,
  'NES_CLOCK_FILTER':          0x0102,
  'NES_GAME_GENIE_CODE':       0x0104,
  // SNES Specific Keys
  'SNES_LATCH_FILTER':         0x0201,
  'SNES_CLOCK_FILTER':         0x0202,
  'SNES_GAME_GENIE_CODE':      0x0204,
  'SNES_LATCH_TRAIN':          0x0205,
  // Genesis Specific Keys
  'GENESIS_GAME_GENIE_CODE':   0x0804,
  // Input Frame/Timing Keys
  'INPUT_CHUNK':               0xFE01,
  'INPUT_MOMENT':              0xFE02,
  'TRANSITION':                0xFE03,
  'LAG_FRAME_CHUNK':           0xFE04,
  'MOVIE_TRANSITION':          0xFE05,
  // Extraneous Keys
  'COMMENT':                   0xFF01,
  'EXPERIMENTAL':              0xFFFE,
  'UNSPECIFIED':               0xFFFF,
} as const;
export function packetName(key: number) {
  for (const name of Object.keys(PACKET_TYPES)) {
    if (PACKET_TYPES[name as keyof typeof PACKET_TYPES] === key) return name;
  }
  return 'Unknown Packet ' + key.toString(16).toUpperCase();
}