Ambient sound locations and identified effects
The 2D city map and 3D city explorer show 30 recovered Delphi sound-source positions. Toggle Ambient sound locations, click a marker, or select a source from the dropdown to inspect its coordinates, identification confidence and baseline audition. The 3D dropdown also visits the cell.
Coordinates below are zero-based (column, row) in map resource 00/68. All source positions are cell centres. Overlay colours distinguish bells (gold), small beacons (cyan), and regional sources (pink). 3D markers show horizontal footprints, remain visible through geometry, and are inspection annotations; they do not represent source height, audible range, or the set of voices currently playing. Halon and underground sound locations have not been mapped.
Fixed bells
The four bell records sit exactly on type 105 bell towers, surrounding the fountains. They are hardcoded positional emitters, not sound references embedded in the fountain or tower meshes. Listening during gameplay supports the identification.
| Effect | Cell | Pitch parameter | Repeat timer units | Approximate seconds |
|---|---|---|---|---|
| 385A | (56,65) | 1300 | 1024 | 2.048 |
| 386E | (61,65) | 918 | 1072 | 2.144 |
| 3882 | (56,70) | 770 | 1120 | 2.240 |
| 3896 | (61,70) | 650 | 1168 | 2.336 |
All four use patch 1 and native height 1024. Callback 36C1 advances each previous deadline and clears retrigger bits. Distinct pitches and intervals explain the overlapping tolls. Mixer voice availability still affects playback. Timing uses PIT rate 1193180 / 2386, approximately 500.075 timer units/second.
Regional industrial sources
| Effect | Candidate cells (underlying map type) | Identification |
|---|---|---|
| 380A | (21,15): 84; (116,58): 85; (115,112): 0 | Periodic power-complex ambience, inferred from location; not listening-confirmed |
| 381E | (23,12): 83; (111,59): 0; (111,112): 0 | Tentative power-station identification from listening, supported by positions |
| 3832 | (31,13): 80; (23,44): 80; (52,15): 80; (50,38): 79 | Factory chimney ambience generally, identified during gameplay; source positions verified |
These are region-selected proxy positions, not one emitter at every matching building. Empty cells between power-station components are intentional source coordinates. Each record selects one candidate using listener coordinates; the overlay displays all candidates for inspection.
Tables 3774 (380A), 377E (381E), and 3788 (3832) each contain two threshold bytes followed by four packed cell words. The source selected by 36E2–3702 is:
| Listener region | Table word offset |
|---|---|
| x < threshold, y < threshold | +4 |
| x < threshold, y >= threshold | +2 |
| x >= threshold, y < threshold | +8 |
| x >= threshold, y >= threshold | +6 |
380A and 381E use thresholds (64,88); their x<64, y>=88 region is disabled (FFFF). Callback 36DB also rejects these when byte 7E61 is nonzero. 3832 uses thresholds (40,26) and enters after that mode check. 380A repeats after 1920 timer units (~3.84 seconds); 381E and 3832 have zero stored duration (continuous). The 3832 audition includes its original clock-driven pitch modulation.
Small radar-beacon beeps
37A6 selects a source on the Cartesian lattice 13,49,85,121 on both axes, matching all 16 type-12 cells in Delphi. Callback 3685 calls 3AFD to select the nearby lattice point, rejects out-of-map coordinates, and checks mutable state bits E0, rather than explicitly testing the model type. Timer-change bit 0200 gates retriggering. Stored duration is 112 timer units, native height 1664. These 16 markers represent possible positions for one selected source, not 16 simultaneous voices.
Other identified sounds and remaining work
3792: Caero boost activation (Enter), confirmed during playtesting and by handlerB956–B977.37CE: another full boost-reserve pip, confirmed during playtesting and by HUD update5700–571B.38AA: Caero weapon/control confirmation.B903selects38D2for other craft. Also used for engine/shield controls.38FA: Skimma shield startup/ready sequence. The E handler sets pitch0302, durationFF; display code later sets pitch0362, duration12. The stored baseline audition has different pitch/duration and is not an exact rendering of either triggered phase.37BA: energy-beacon continuous sound. Callback372Fselects the nearest energy beacon, sets level to 218 times its state byte, and positions the source at native height 2400. Its stored zero level explains the missing baseline audition. Not included in this overlay yet.3846: landing/gate-associated source, controlled by landing coordinatesC81Eand byte3708. Descriptive identity is not listening-confirmed; no fixed marker has been invented for this dynamic source.
Gameplay observation: type 11 are tiny streetlights. Flying closely among them, away from an energy tower, appears to yield roughly one bar on the charge meter. Their possible contribution to brightness/charging is unconfirmed; trace the brightness and charging calculation before attributing this to the streetlights. No ambient sound has been attributed to type 11.
Follow-up: playtesting shows that crashing into a type-11 streetlight leaves its destroyed model visible during the player's death-camera pullback. Bank 30's type-11 definition at pool offset 0874 does have a damage link to 096C, consistent with this observation. The collision-to-state mutation itself has not yet been traced; this does not establish equivalent collision damage for other buildings.
The recovered Caero recharge path (7F35 → 8450) only accepts type 1 at the nearest energy-tower lattice position and does not sum streetlight contributions. Its distance falloff has no occlusion test and can return weak power well away from a tower. Residual tower power is therefore a possible explanation for the reported low meter reading, not a demonstrated streetlight effect. A separate visual-lighting contribution from type 11 remains unresolved.
Observation clarification: there is no observed dynamic visual illumination from these lamps; ground-light artwork is part of the models. The observation to investigate is specifically a one-bar minimum charging/light-meter reading near a streetlight, absent elsewhere between towers. Do not dismiss this proximity-dependent report as residual tower power without a controlled trace. Likewise, the destruction observation concerns whether player collisions trigger damage-state changes for streetlights but not other buildings, not whether a damage model exists. Both comparisons remain open investigations.
Reproduction and evidence
Run PYTHONPATH=/tmp/darker-python python3 tools/inspect_ambient_sounds.py to inspect native records and execute callback checks. Verification results cover four bell schedules, twelve regional selection cases, sixteen beacon positions/schedules and sixteen state-gate rejections. These are isolated original-code checks, not full mixer/gameplay tests.
Identifications contain descriptions, confidence and source cells; native source data retain heights, pitches and region-selection examples. tools/ambient_map.py supplies both viewers from those identifications. Rebuild with python3 tools/inspect_city.py, python3 tools/city_scene.py, and python3 tools/effect_gallery.py.
The type-12 lattice also controls regional contact-display coverage: see radar beacon logic for native-code checks and damage behaviour.
Follow-up: player collision and damage now verifies the streetlight-specific crash mutation, controlled native geometric sweeps, and the exact limits of the player damage cheat. Earlier open questions on that response path are superseded by these tests.