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': 1,
'CONSOLE_REGION': 2,
'GAME_TITLE': 3,
'ROM_NAME': 4,
'ATTRIBUTION': 5,
'CATEGORY': 6,
'EMULATOR_NAME': 7,
'EMULATOR_VERSION': 8,
'EMULATOR_CORE': 9,
'TAS_LAST_MODIFIED': 10,
'DUMP_CREATED': 11,
'DUMP_LAST_MODIFIED': 12,
'TOTAL_FRAMES': 13,
'RERECORDS': 14,
'SOURCE_LINK': 15,
'BLANK_FRAMES': 16,
'VERIFIED': 17,
'MEMORY_INIT': 18,
'GAME_IDENTIFIER': 19,
'MOVIE_LICENSE': 20,
'MOVIE_FILE': 21,
'PORT_CONTROLLER': 240,
// NES Specific Keys
'NES_LATCH_FILTER': 257,
'NES_CLOCK_FILTER': 258,
'NES_OVERREAD': 259,
'NES_GAME_GENIE_CODE': 260,
// SNES Specific Keys
'SNES_CLOCK_FILTER': 514,
'SNES_OVERREAD': 515,
'SNES_GAME_GENIE_CODE': 516,
'SNES_LATCH_TRAIN': 517,
// Genesis Specific Keys
'GENESIS_GAME_GENIE_CODE': 2052,
// Input Frame/Timing Keys
'INPUT_CHUNK': 65025,
'INPUT_MOMENT': 65026,
'TRANSITION': 65027,
'LAG_FRAME_CHUNK': 65028,
'MOVIE_TRANSITION': 65029,
// Extraneous Keys
'COMMENT': 65281,
'EXPERIMENTAL': 65534,
'UNSPECIFIED': 65535,
} 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();
}
|