blob: b4d41fbd9d7e382b515ba22d9fbf1885f845d37e (
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
55
56
|
class _MetaPacketType():
def __init_subclass__(self):
keys = [key for key in self.__dict__.keys() if type(self.__dict__[key]) == int]
self._key2name = dict()
for key in keys:
self._key2name[self.__dict__[key]] = key
class PacketType(_MetaPacketType):
# 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
@classmethod
def lookup(cls, key):
return cls._key2name.get(key, f'UNKNOWN_PACKET_{key:04X}')
|