Build Capital Quest for CoCo 3 with maps and emulator tests

This commit is contained in:
Brian Holman committed 2026-11-09 18:44:56 -07:00
commit 9f7d6f4786
44 files changed
+6238

No files matched your search

+27
View File
@@ -0,0 +1,27 @@
# State/capital verification
`states.tsv` is the canonical 50-row alphabetical dataset. Postal code, full
state name, and capital travel together into `src/states.c`. Geography span
index N is always TSV row N; no second alphabetical ordering is introduced.
Alaska = Juneau; Hawaii = Honolulu. DC and territories are excluded.
Checked 2026-11-09 against both full lists:
- <https://www.50states.com/tools/thelist.htm>
- <https://factsinstitute.com/countries/state-capitals/>
Minnesota is displayed as **Saint Paul**. Normalization also accepts **St. Paul**
and **St Paul**, in any case and with repeated or surrounding whitespace.
`map-seeds.json` documents source SVG interior coordinates, replacing outside
callout-label positions for small Northeast states. The conversion asserts
that each seed is land and is in a distinct connected state region. Detached
land is assigned to its nearest identified region, with explicit geographic rules for the
Alaska/Hawaii inset islands and Michigan's Upper Peninsula. Geometry is a simplified educational
map, not a survey or political boundary authority.
`map-manifest.json` records source region sizes, per-view dimensions, source
crop bounds and per-state pixel coverage. `tests/check_assets.py` checks all
50 identity slots, disjoint span coverage, bounds, and small-state/inset
presence. `tools/prepare_assets.py` reproduces all generated C and previews
using only Python's standard library; no SVG is parsed by the CoCo program.
+249
View File
@@ -0,0 +1,249 @@
{
"national": {
"size": [
200,
110
],
"source_box": [
0,
0,
2000,
1200
],
"pixels": {
"AL": 155,
"AK": 266,
"AZ": 374,
"AR": 160,
"CA": 516,
"CO": 327,
"CT": 18,
"DE": 7,
"FL": 204,
"GA": 180,
"HI": 20,
"ID": 251,
"IL": 173,
"IN": 105,
"IA": 172,
"KS": 256,
"KY": 109,
"LA": 150,
"ME": 111,
"MD": 22,
"MA": 21,
"MI": 177,
"MN": 265,
"MS": 143,
"MO": 205,
"MT": 473,
"NE": 236,
"NV": 350,
"NH": 19,
"NJ": 23,
"NM": 395,
"NY": 134,
"NC": 156,
"ND": 219,
"OH": 124,
"OK": 204,
"OR": 303,
"PA": 138,
"RI": 3,
"SC": 94,
"SD": 243,
"TN": 121,
"TX": 913,
"UT": 263,
"VT": 22,
"VA": 113,
"WA": 210,
"WV": 67,
"WI": 183,
"WY": 308
},
"bytes": 2676
},
"northeast": {
"size": [
100,
100
],
"source_box": [
1540,
120,
1980,
600
],
"pixels": {
"AL": 0,
"AK": 0,
"AZ": 0,
"AR": 0,
"CA": 0,
"CO": 0,
"CT": 92,
"DE": 28,
"FL": 0,
"GA": 0,
"HI": 0,
"ID": 0,
"IL": 0,
"IN": 0,
"IA": 0,
"KS": 0,
"KY": 3,
"LA": 0,
"ME": 551,
"MD": 148,
"MA": 128,
"MI": 0,
"MN": 0,
"MS": 0,
"MO": 0,
"MT": 0,
"NE": 0,
"NV": 0,
"NH": 137,
"NJ": 134,
"NM": 0,
"NY": 813,
"NC": 0,
"ND": 0,
"OH": 221,
"OK": 0,
"OR": 0,
"PA": 774,
"RI": 14,
"SC": 0,
"SD": 0,
"TN": 0,
"TX": 0,
"UT": 0,
"VT": 149,
"VA": 395,
"WA": 0,
"WV": 383,
"WI": 0,
"WY": 0
},
"bytes": 1128
},
"hawaii": {
"size": [
100,
82
],
"source_box": [
565,
995,
785,
1185
],
"pixels": {
"AL": 0,
"AK": 0,
"AZ": 0,
"AR": 0,
"CA": 0,
"CO": 0,
"CT": 0,
"DE": 0,
"FL": 0,
"GA": 0,
"HI": 474,
"ID": 0,
"IL": 0,
"IN": 0,
"IA": 0,
"KS": 0,
"KY": 0,
"LA": 0,
"ME": 0,
"MD": 0,
"MA": 0,
"MI": 0,
"MN": 0,
"MS": 0,
"MO": 0,
"MT": 0,
"NE": 0,
"NV": 0,
"NH": 0,
"NJ": 0,
"NM": 0,
"NY": 0,
"NC": 0,
"ND": 0,
"OH": 0,
"OK": 0,
"OR": 0,
"PA": 0,
"RI": 0,
"SC": 0,
"SD": 0,
"TN": 0,
"TX": 0,
"UT": 0,
"VT": 0,
"VA": 0,
"WA": 0,
"WV": 0,
"WI": 0,
"WY": 0
},
"bytes": 276
},
"source_component_pixels": {
"TX": 99510,
"NY": 17088,
"AZ": 42572,
"CA": 58649,
"NV": 41220,
"UT": 31555,
"CO": 38944,
"NM": 45545,
"AK": 23435,
"HI": 1239,
"OK": 25671,
"KS": 30684,
"NE": 28657,
"SD": 28575,
"WY": 36519,
"ID": 30691,
"OR": 36095,
"WA": 24459,
"MT": 55176,
"ND": 26235,
"MN": 31079,
"WI": 20411,
"IA": 20753,
"IL": 20647,
"MO": 25757,
"AR": 19475,
"LA": 16798,
"MS": 17411,
"AL": 18924,
"GA": 21645,
"FL": 20584,
"SC": 11222,
"NC": 17586,
"TN": 15180,
"KY": 14470,
"IN": 13097,
"MI": 14854,
"OH": 14990,
"WV": 8390,
"VA": 13925,
"PA": 16573,
"ME": 11502,
"VT": 3240,
"NH": 3064,
"MA": 2498,
"RI": 227,
"CT": 1599,
"NJ": 2543,
"DE": 517,
"MD": 2607
}
}
+202
View File
@@ -0,0 +1,202 @@
{
"TX": [
983,
910
],
"NY": [
1732,
330
],
"AZ": [
532,
728
],
"CA": [
280,
568
],
"NV": [
402,
480
],
"UT": [
572,
524
],
"CO": [
760,
558
],
"NM": [
726,
744
],
"AK": [
338,
988
],
"HI": [
739,
1130
],
"OK": [
1042,
728
],
"KS": [
1004,
594
],
"NE": [
970,
462
],
"SD": [
950,
334
],
"WY": [
714,
374
],
"ID": [
524,
314
],
"OR": [
330,
264
],
"WA": [
370,
126
],
"MT": [
684,
198
],
"ND": [
952,
206
],
"MN": [
1126,
260
],
"WI": [
1278,
326
],
"IA": [
1170,
440
],
"IL": [
1312,
516
],
"MO": [
1196,
598
],
"AR": [
1206,
754
],
"LA": [
1214,
912
],
"MS": [
1310,
834
],
"AL": [
1418,
824
],
"GA": [
1534,
816
],
"FL": [
1636,
1008
],
"SC": [
1626,
756
],
"NC": [
1678,
672
],
"TN": [
1420,
696
],
"KY": [
1462,
612
],
"IN": [
1410,
512
],
"MI": [
1432,
364
],
"OH": [
1512,
488
],
"WV": [
1584,
556
],
"VA": [
1670,
582
],
"PA": [
1676,
434
],
"ME": [
1886,
186
],
"VT": [
1800,
280
],
"NH": [
1840,
280
],
"MA": [
1830,
340
],
"RI": [
1860,
360
],
"CT": [
1830,
375
],
"NJ": [
1780,
440
],
"DE": [
1764,
509
],
"MD": [
1720,
536
]
}
+50
View File
@@ -0,0 +1,50 @@
AL Alabama Montgomery
AK Alaska Juneau
AZ Arizona Phoenix
AR Arkansas Little Rock
CA California Sacramento
CO Colorado Denver
CT Connecticut Hartford
DE Delaware Dover
FL Florida Tallahassee
GA Georgia Atlanta
HI Hawaii Honolulu
ID Idaho Boise
IL Illinois Springfield
IN Indiana Indianapolis
IA Iowa Des Moines
KS Kansas Topeka
KY Kentucky Frankfort
LA Louisiana Baton Rouge
ME Maine Augusta
MD Maryland Annapolis
MA Massachusetts Boston
MI Michigan Lansing
MN Minnesota Saint Paul
MS Mississippi Jackson
MO Missouri Jefferson City
MT Montana Helena
NE Nebraska Lincoln
NV Nevada Carson City
NH New Hampshire Concord
NJ New Jersey Trenton
NM New Mexico Santa Fe
NY New York Albany
NC North Carolina Raleigh
ND North Dakota Bismarck
OH Ohio Columbus
OK Oklahoma Oklahoma City
OR Oregon Salem
PA Pennsylvania Harrisburg
RI Rhode Island Providence
SC South Carolina Columbia
SD South Dakota Pierre
TN Tennessee Nashville
TX Texas Austin
UT Utah Salt Lake City
VT Vermont Montpelier
VA Virginia Richmond
WA Washington Olympia
WV West Virginia Charleston
WI Wisconsin Madison
WY Wyoming Cheyenne
1 AL Alabama Montgomery
2 AK Alaska Juneau
3 AZ Arizona Phoenix
4 AR Arkansas Little Rock
5 CA California Sacramento
6 CO Colorado Denver
7 CT Connecticut Hartford
8 DE Delaware Dover
9 FL Florida Tallahassee
10 GA Georgia Atlanta
11 HI Hawaii Honolulu
12 ID Idaho Boise
13 IL Illinois Springfield
14 IN Indiana Indianapolis
15 IA Iowa Des Moines
16 KS Kansas Topeka
17 KY Kentucky Frankfort
18 LA Louisiana Baton Rouge
19 ME Maine Augusta
20 MD Maryland Annapolis
21 MA Massachusetts Boston
22 MI Michigan Lansing
23 MN Minnesota Saint Paul
24 MS Mississippi Jackson
25 MO Missouri Jefferson City
26 MT Montana Helena
27 NE Nebraska Lincoln
28 NV Nevada Carson City
29 NH New Hampshire Concord
30 NJ New Jersey Trenton
31 NM New Mexico Santa Fe
32 NY New York Albany
33 NC North Carolina Raleigh
34 ND North Dakota Bismarck
35 OH Ohio Columbus
36 OK Oklahoma Oklahoma City
37 OR Oregon Salem
38 PA Pennsylvania Harrisburg
39 RI Rhode Island Providence
40 SC South Carolina Columbia
41 SD South Dakota Pierre
42 TN Tennessee Nashville
43 TX Texas Austin
44 UT Utah Salt Lake City
45 VT Vermont Montpelier
46 VA Virginia Richmond
47 WA Washington Olympia
48 WV West Virginia Charleston
49 WI Wisconsin Madison
50 WY Wyoming Cheyenne