-
Notifications
You must be signed in to change notification settings - Fork 4
/
platforms.json
94 lines (94 loc) · 3.19 KB
/
platforms.json
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
{
"description": "JSON Schema definition of the known CHIP-8 platforms.",
"definitions": {
"platform": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "An ID for this platform, by which to reference it in programs.json."
},
"name": {
"type": "string",
"description": "The full name of the platform, by which it is most commonly known."
},
"description": {
"type": "string",
"description": "A generic description of the platform."
},
"release": {
"type": "string",
"description": "The date at which the platform was first released in ISO 8601 date format. Can be a year, a year and a month or a year, month and day.",
"pattern": "^[\\dx\\?]{4}(\\-\\d{1,2}){0,2}$"
},
"authors": {
"type": "array",
"description": "The list of authors who worked on developing this platform.",
"items": {
"type": "string"
}
},
"urls": {
"type": "array",
"description": "A list of URLs that are relevant for this platform, like a systems specification or additional materials.",
"items": {
"type": "string"
}
},
"copyright": {
"type": "string",
"description": "The copyright situation of this platform. May be free form text. If a specific license is known, please use the `license` field instead."
},
"license": {
"type": "string",
"description": "The license(s) applicable to this platform. Must be an SPDX license expression (see https://spdx.github.io/spdx-spec/v2.3/SPDX-license-expressions/ and https://spdx.org/licenses/)."
},
"displayResolutions": {
"type": "array",
"description": "All the display resolutions that this platform supports.",
"items": {
"type": "string",
"pattern": "^\\d+x\\d+$"
}
},
"defaultTickrate": {
"type": "integer",
"description": "The preferred number of cycles per frame to run the interpreter at. It's the default because ROMs can overwrite this value. CHIP-8 runs at a framerate of 60Hz, so this tickrate times 60 is the desired 'CPU clockspeed' of the system."
},
"quirks": {
"type": "object",
"description": "The quirk settings as they are known for this platform. Each key references a quirk from quirks.json.",
"propertyNames": {
"type": "string",
"enum": [
"shift",
"memoryIncrementByX",
"memoryLeaveIUnchanged",
"wrap",
"jump",
"vblank",
"logic"
]
},
"patternProperties": {
".*": {
"type": "boolean"
}
}
}
},
"required": [
"id",
"name",
"displayResolutions",
"defaultTickrate",
"quirks"
],
"additionalProperties": false
}
},
"type": "array",
"items": {
"$ref": "#/definitions/platform"
}
}