44 lines
2.4 KiB
Markdown
44 lines
2.4 KiB
Markdown
# 64K Feature Audit
|
|
|
|
Every entry of chunk5's `PatchTable` (`Apply64KPatchTable`) redirects a
|
|
48K stub into a chunk3 routine when the game finds a language card. The
|
|
port never executes the patch table; `chunk5Boot` sets `patched64K` and
|
|
each patched call site chooses the chunk3 translation on that flag
|
|
(`Has64K` at `$08C6` is forced to 1, mirroring the oracle's boot).
|
|
Updated 2026-09-06.
|
|
|
|
| Patch hook | Port |
|
|
|---|---|
|
|
| `LookupADFStation` (`$05` record) | `chunk3LookupADFStation` |
|
|
| `ApplyWind` | `chunk2ApplyWind` |
|
|
| `ComputeWindComponents` | `chunk2ComputeWindComponents` |
|
|
| `ComputeDayPhase` | `chunk3ComputeDayPhase` |
|
|
| `HandleCrashOrSplash` | `chunk3HandleCrashOrSplash` |
|
|
| `RealityModeHook` | `chunk3RealityModeHook` |
|
|
| `DrawSlewOverlays` | `chunk3DrawSlewOverlays` |
|
|
| `CoursePlottingSystem` | `chunk2CoursePlottingMenu` |
|
|
| `UpdateCoursePlotter` | `chunk2UpdateCoursePlotter` |
|
|
| `DemoMode64K` | `chunk2DemoMode64K` |
|
|
| `UpdateAltimeter10K` | `chunk2UpdateAltimeter10K` |
|
|
| `ADFKeyboardHook` | `chunk3ADFKeyboardHook` |
|
|
| `RequestADFStationLookup` | `chunk3RequestADFStationLookup` |
|
|
| `UpdateADFIndicator` | `chunk3UpdateADFIndicator` |
|
|
| `DrawViewOverlays` | `chunk3DrawViewOverlays` |
|
|
| `UpdateInstrumentLights` | `chunk3UpdateInstrumentLights` |
|
|
| `UpdateEngineWithMagneto` | `chunk3UpdateEngineWithMagneto` |
|
|
| `DrawMagnetoStateHook` | `chunk3DrawMagnetoStateHook` |
|
|
| `SetMagnetoFromA` | `chunk3SetMagnetoFromA` |
|
|
| `SelectRadarViewPatch` / `Select3DViewPatch` | `chunk3SelectRadarViewPatch` / `chunk3Select3DViewPatch` |
|
|
| `HideOrShowInstruments` | `chunk3HideOrShowInstruments` |
|
|
| `DrawATISMessage` | `chunk3DrawATISMessage` |
|
|
| `UpdateCOMMessageChunks` | `chunk3UpdateCOMMessageChunks` |
|
|
| `KeyDecreasePatch` / `KeyIncreasePatch` | `chunk3KeyDecreasePatch` / `chunk3KeyIncreasePatch` |
|
|
| `SceneryLoaderEntry1..7` | `chunk3SceneryLoaderEntry` (entries 5 and 7 hold no code in this build) |
|
|
| `ShowWarReport` | `chunk3ShowWarReport` (called by the WW1 overlay) |
|
|
| `SceneryRotatedTransform` (`$03` opcode) | `chunk3SceneryRotatedTransform` |
|
|
| `SceneryOp64KCallback` (`$0E` opcode) | `sceneryVm.c`: jump to the absolute address in the stream |
|
|
|
|
The regression scripts in `port/tools/verify/regress.sh` run with
|
|
64K mode on, so every hook above is exercised against the oracle
|
|
wherever a key script reaches it (ADF, reality mode, night lights,
|
|
crash, course plotter, demo, WW1 and the war report included).
|