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