# Techno Corners x30 V1.5 Fix

## Broken metal map and potential desynchronization

The original SMF header pointed both the metal map and the feature section beyond the end of the file. The metal map pointer was 15,454,970 bytes and the feature pointer was 18,731,799 bytes, while the file was only 9,922,847 bytes long.

Recoil 2025.06.05 allocates the metal-map buffer without initializing it before reading the SMF data. Because the metal-map pointer was outside the file, the read could leave that buffer containing arbitrary memory. This explains the excessive metal shown across the northern part of the map and is a plausible source of multiplayer desynchronization: different players could start with different metal values.

The repair points the feature section to the existing empty feature header at byte 9,922,839, and appends a complete, zero-filled 960 × 960 metal map at byte 9,922,847. The terrain, textures, minimap, tile indices and other existing SMF data were preserved. The map's existing Lua gadget places its configured metal spots during initialization and at game start, including the team-specific start-position spots. The gadget itself was not changed as part of this repair.

## Map identity

The map name was changed to **Techno Corners x30 V1.5 Fix**, and its version to **1.5 Fix**. The description and legacy SMD metadata were updated to match. The map was packaged as `Techno_Corners_x30_V1.5_Fix.sd7` using maximum 7-Zip compression with solid mode disabled.

## Validation and limits

- The archive passed its integrity and SMF structure checks, including its tile references and Lua 5.1 syntax.
- Recoil 2025.06.05 unitsync read the map metadata, height, terrain-type and metal layers, and all nine minimap levels successfully.
- A headless simulation with Tech Annihilation test-12081-c9eb4cf checked all 921,600 metal cells at frame 5 against the spots expected from the map gadget. The check passed. With one team starting in the north, 48 cells contained metal in the north and 32 in the south; the extra 16 cells were that team's start-position spots.
- No multiplayer synchronization test was performed. The invalid read was fixed, but these checks do not prove that every possible source of desynchronization has been eliminated.

All players must use the same fixed map version and matching game content.
