# Floppy resources compared with the reference CD

The [comparison browser](floppy-resources/index.html) shows every floppy resource whose decoded bytes are absent from the September 1994 CD, with original downloads, CD counterparts and readable differences. The complete [entry inventory](../extracted/floppy_1993_11_loose/resources/manifest.json) accounts for every resource, including shared content. [Comparison data](floppy-resources/comparison.json) retains the source hashes and correspondence evidence.

Both retained floppy installations contain **3,460 identical decoded archive entries**, totalling 23,421,008 bytes. The archived installation has patched executables, but its DID.DAT differs from the clean floppy archive only in two trailer bytes. Those bytes belong to the install-time hardware fingerprint; the preceding archive body is copied from prebuilt disk data, not regenerated. See [archive assembly and the original launcher check](launcher-compatibility.md#is-diddat-generated-during-installation). It supplies no additional archive resources.

**3,376 floppy entries have byte-identical decoded content somewhere in the CD archive.** The remaining **84 entries, totalling 154,591 bytes**, have been extracted under `extracted/floppy_1993_11_loose/resources/`. Of these, 69 have identified changed or renamed CD counterparts; 15 are waypoint authoring sources without an identified CD source counterpart.

| Extracted family | Entries | What differs |
| --- | ---: | --- |
| Mission scripts | 27 | Flak coverage, messages, aircraft selection and target coordinates |
| Compiled actor/waypoint programs | 11 | Actor placement, flight routes, attacks and additional surface units |
| Waypoint source files | 25 | 11 earlier versions of retained sources; 14 additional source files |
| Presentation programs | 9 | Floppy game flow and counterparts of the eight CD presentation programs |
| Other text | 11 | Two scenery authoring tables, eight translated mission-map fragments and one unnamed waypoint source |
| Scenery definition | 1 | One parameter-stream word in `ss/test.ssd` |

There are **no floppy-only model, bitmap, animation, palette, sprite, texture or music payloads** in these archives: their decoded content is already present on CD. The 15 missing source resources likewise do not establish 15 missing playable missions. The compiled versions of all 14 named route sources remain on CD; the unnamed source contains briefing text also retained on CD.

## Waypoint authoring material absent from CD

All 14 named source files have byte-identical compiled counterparts in the CD archive. Their comparison-browser entries link to those programs in the existing route viewer.

| Floppy candidate filename | Contents |
| --- | --- |
| `waytxt/mis_101.way` | Yugoslavia aircraft route and three combat air patrol groups |
| `waytxt/mis_102.way` | Yugoslavia raid and two patrol groups |
| `waytxt/mis_103.way` | Nine routes, including F-22 raids, patrols and an F-117 raid |
| `waytxt/mis_104.way` | Ten routes, including Eurofighter attacks and multiple patrols |
| `waytxt/mis_201.way` | Fourteen routes with MiGs, allied strike aircraft and AWACS |
| `waytxt/mis_202.way` | Eleven routes, including strike groups, a refueller and AWACS |
| `waytxt/mis_203.way` | Fourteen routes, including F-117 strikes and defensive groups |
| `waytxt/mis_204.way` | Thirteen routes; another strike/patrol arrangement |
| `waytxt/mis_501.way` | Single Libya F-16 patrol |
| `waytxt/miss1111.way` | Mixed aircraft, refuellers, SAMs and fleets; player-route and briefing annotations |
| `waytxt/miss8888.way` | `bom_test`: radio announcements around bombing passes, GBU10/MK82/BLU109 drop instructions and a time-warp prompt |
| `waytxt/nev_8888.way` | Ship routes and a placeholder briefing: visiting granny, Kwik Save, the post office and taking everything back to granny |
| `waytxt/refuel.way` | Four aircraft patrol routes around the same Colombia area |
| `waytxt/timtest1.way` | A player point and a three-aircraft F-22 route |

The fifteenth source, identifier **`a3508451`**, remains under its identifier-based extraction path. It includes a Colombia map header and route, followed by the French **OPERATION BRAS DROIT** briefing describing support for bombers in Serbia. That briefing and its English waypoint annotations also occur in the CD's [French mission 850 map text](resources/index.html#91bf8ca1). The mismatched map/story context and unrecovered filename are retained without assigning it to a new campaign mission.

Numbered filenames and other hash matches remain **candidates**, not verified original filenames. Completing the `mis_101`/`mis_102`/`mis_501` series recovered three names not directly mentioned in retained text. The compiled counterparts are identified independently with each archive's filename hash and native actor-record format.

## Mission and route revisions

The 27 changed mission scripts are **501, 502, 505, 507, 513, 517, 804, 821, 822, 825, 830, 902, 923, 924, 926, 927, 928, 929, 930, 943, 946, 947, 961, 962, 970, 982 and 983**. The browser provides the complete differences; examples include:

- The CD adds or moves flak areas in numerous missions, including 502, 505, 804 and several Tour of Duty missions.
- Mission 830's third ground target moves from **134,64** to **133,64**.
- Mission 513 changes the `plane` value from 3 to 2; mission 517 changes it from 3 to 1 and slightly moves the start position.
- Missions 507, 822, 825, 982 and 983 gain radio messages. Mission 943 loses an instruction to withhold fire; mission 970's message loses the words identifying the contacts as hostile.
- Other changes include spelling, spacing and DOS end-of-file handling. A differing payload does not always imply differing mission rules.

Compiled route programs change in **501, 504, 505, 510, 822, 825, 842, 848, 901, 982 and 983**. The corresponding 11 retained text sources change too. Decoded actor records expose these changes without interpreting unknown operands:

- Mission 501 lowers an aircraft's initial/commanded altitude from 8,000 to 6,000 and removes another aircraft group.
- Mission 504 expands an aircraft route. Mission 510 moves a group and raises its altitude from 4,500 to 15,000.
- Missions 505, 822, 825, 842, 848 and 983 gain a surface-unit record.
- Mission 901 changes the ground-attack instruction sequence; mission 982 moves a refueller and its route.

In `french/`, `german/`, `italian/` and `spanish/`, the CD versions of `miss825.way` and `miss848.way` retain the translated briefing prose but remove trailing **English** waypoint annotation blocks. These eight files are text fragments, rather than the complete source/compiled route programs.

## Presentation programs

The floppy launcher uses `demo.par`; the reference CD uses `tfx.par`. The floppy name does not mean that this is a limited demonstration: it contains the main game/campaign flow. Its presentation references use the unprefixed filenames below.

| Floppy | Reference CD | Comparison of decoded presentation instructions |
| --- | --- | --- |
| `intro.par` | `cdintro.par` | Same instructions and artwork |
| `fwsintro.par` | `cdfwsint.par` | Same instructions and artwork |
| `yugmid1.par` | `cdyugmid.par` | Same instructions and artwork |
| `busted1.par` | `cdbusted.par` | CD appends the three prison stills |
| `death1.par` | `cddeath1.par` | CD adds the UN exterior animation |
| `colintro.par` | `cdcolint.par` | Text and presentation-setting revisions |
| `somintro.par` | `cdsomint.par` | Text and presentation-setting revisions |
| `yugintro.par` | `cdyugint.par` | CD adds a still and revises text, layout and timing |

All nine binary programs are preserved, including the three whose decoded comparison views are unchanged. Saved parser graphs contain pointer/padding/editor bytes, so binary inequality alone does not establish extra scenes. The readable comparison omits those bookkeeping bytes, retains opaque non-visual payloads and does not claim complete behavioural equivalence. Original bytes remain authoritative.

The existing presentation player continues to show the reference CD programs. The comparison browser displays the floppy programs' decoded instructions and text; common artwork remains available in the existing media browser. These are still 320×200, 256-colour presentations, not a separate high-resolution format.

## Scenery authoring differences

The floppy `ss/ssinfo.fn` lists **919** model names; the CD appends `F117` and `F22`, bringing its count to **921**. The corresponding models are CD additions, rather than missing floppy shapes. `ss/ssinfo.h` gains three part-index enumeration declarations for the `QQQEFA`, `QQF_117A` and `Q_22` model families.

In `ss/test.ssd`, one word in parameter 0's stream changes from **`0x1200` to `0x0f00`**. The original and decoded programs are preserved; no flight-model or geometry change is inferred from that word alone.

## Loose files and provenance

The sweep also checks all **19** loose files beneath `TUNES`, `MISSIONS`, `WAYBIN` and `WAYTXT` in the two installations:

- The six intro music files decode to the same resources already in both archives.
- The archived installation's loose `MISSIONS/MISS830.MIS` decodes to the **CD** version, rather than the version in its floppy DID.DAT. That installation therefore mixes resource revisions outside its archive.
- Nine unique loose payloads are absent from either archive. They are retained under the delta extraction's `loose/` directory, with their original installation paths recorded. They include `0.LIB`, `0.YUG`, `1.YUG`, a `WAYBIN/COL` file and `UNCFILES` mission-list bookkeeping. Their presence in a long-used installation does not prove they shipped with the floppy release. Identical empty `COL` payloads already represented on CD are referenced instead.

Saved games, user configuration, `GRAB_*.LBM` screenshots, backups and executables remain in their original installations; they are not promoted into the shipped-resource comparison. Executable patch lineage is documented [separately](patch-lineage.md). The incomplete disk-1 image duplicates the loose set's `DISKA.DAT`; its distinct installer is retained as media, rather than counted as another full resource set.

## Reproduction and verification

Run from the research root:

```sh
python3 tools/compare_floppy_resources.py
python3 tools/check_floppy_resources.py
```

The comparison decodes every DID entry from both floppy installations and the reference CD, checks the CD extraction against its archive, and uses SHA-256 plus byte equality to identify shared payloads across the complete archive. It resolves filename hashes using each archive's own directory/extension tables: `.par` and `.dir` exchange extension codes between floppy and CD, so raw identifiers alone are insufficient for pairing files. Known parser counterparts are paired through their game-flow references.

The delta manifest stores all 3,460 entry indices, offsets, stored/decoded hashes and content paths. Shared content paths point into the existing CD extraction; the other paths point to the 84 extracted floppy files. The second floppy resource set is checked independently before sharing this extraction. The checker reopens the source archives and verifies every manifest payload and loose-file extraction. Original media and installations are read-only inputs.
