Got it!
First, with a project open, I created a dummy zoom preset (doesn’t matter what the zoom factor is, just give it a unique name, I called it “tempKK”), then closed Cubase. (Note: evidently, changes to the presets do not actually get written to the XML file until Cubase is closed, at least that’s what happened on my system).
Then I opened RAMPresets.xml with notepad, and did a search (Ctrl-F) for “tempKK”. I found this section of code:
<list name="Items" type="obj">
<obj class="FPreset" ID="658622992">
<string name="Name" value="tempkkk" wide="true"/>
<member name="Object">
<float name="Zoom Factor" value="0.25275236780754667"/>
</member>
<int name="Unrenamed" value="1"/>
</obj>
</list>
and replaced it with the these lines from my old list:
<list name="Presets" type="list">
<item>
<string name="Name" value="~6 minutes" wide="true"/>
<member name="Object">
<float name="Zoom Factor" value="0.55962049961090088"/>
</member>
</item>
<item>
<string name="Name" value="~1 minute" wide="true"/>
<member name="Object">
<float name="Zoom Factor" value="0.10077371448278427"/>
</member>
</item>
<item>
<string name="Name" value="~30 seconds" wide="true"/>
<member name="Object">
<float name="Zoom Factor" value="0.046263042837381363"/>
</member>
</item>
<item>
<string name="Name" value="~10 seconds" wide="true"/>
<member name="Object">
<float name="Zoom Factor" value="0.015332357957959175"/>
</member>
</item>
<item>
<string name="Name" value="~3 seconds" wide="true"/>
<member name="Object">
<float name="Zoom Factor" value="0.0047794175334274769"/>
</member>
</item>
<item>
<string name="Name" value="~1 second" wide="true"/>
<member name="Object">
<float name="Zoom Factor" value="0.0016678598476573825"/>
</member>
</item>
<item>
<string name="Name" value="~200 ms" wide="true"/>
<member name="Object">
<float name="Zoom Factor" value="0.00036527018528431654"/>
</member>
</item>
<item>
<string name="Name" value="~30 ms" wide="true"/>
<member name="Object">
<float name="Zoom Factor" value="4.8153884563362226e-005"/>
</member>
</item>
<item>
<string name="Name" value="~10 ms" wide="true"/>
<member name="Object">
<float name="Zoom Factor" value="1.6573909306316637e-005"/>
</member>
</item>
<item>
<string name="Name" value="~5 ms" wide="true"/>
<member name="Object">
<float name="Zoom Factor" value="8.0800382420420647e-006"/>
</member>
</item>
<item>
<string name="Name" value="~1 ms" wide="true"/>
<member name="Object">
<float name="Zoom Factor" value="1.7523874475955381e-006"/>
</member>
</item>
<item>
<string name="Name" value="half-sec" wide="true"/>
<member name="Object">
<float name="Zoom Factor" value="0.00049451162340119481"/>
</member>
<int name="Unrenamed" value="1"/>
</item>
<item>
<string name="Name" value="~3 minutes" wide="true"/>
<member name="Object">
<float name="Zoom Factor" value="0.21857455372810364"/>
</member>
</item>
</list>
Ta-da, all me presets are restored!
I don’t know why the newer XML file used “obj” rather than “item” for its list items, but it seems to work with the older code inserted. (I’ll report back here if it seems to cause any problems down the road)