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();
}
|