<roms>
 <rom>
  <romid>
   <xmlid>HITACHIBASE</xmlid>
  </romid>

  <!-- Scalings -->
  <scaling name="TimingDegrees" units="deg BTDC" expression="x" to_byte="x" format="0.0" min="0" max="50" inc="0.5" storagetype="uint8" endian="big"/>
  <scaling name="RPM_x100" units="RPM" expression="x*100" to_byte="x/100" format="#" min="0" max="8000" inc="100" storagetype="uint8" endian="big"/>
  <scaling name="EngineLoad_Pct" units="%" expression="x*100.0/125.0" to_byte="x*125.0/100.0" format="0.0" min="0" max="100" inc="1" storagetype="uint8" endian="big"/>
  <scaling name="CoolantTempC" units="°C" expression="x-40" to_byte="x+40" format="#" min="-40" max="120" inc="1" storagetype="uint8" endian="big"/>
  <scaling name="IdleRPM_x25" units="RPM" expression="x*25" to_byte="x/25" format="#" min="400" max="2500" inc="25" storagetype="uint8" endian="big"/>
  <scaling name="FuelEnrichment" units="AFR" expression="14.7 - (x*0.05)" to_byte="(14.7-x)/0.05" format="0.00" min="10" max="15" inc="0.1" storagetype="uint8" endian="big"/>

  <!-- Master Table Declarations -->
  <table type="3D" name="Base Ignition Timing (Primary)" category="Ignition" storagetype="uint8" endian="big" sizex="8" sizey="8" userlevel="1" logparam="P10">
   <scaling name="TimingDegrees" units="deg BTDC" expression="x" to_byte="x" format="0.0" min="0" max="50" inc="0.5" storagetype="uint8" endian="big"/>
   <table type="X Axis" name="Engine Load" storagetype="uint8" endian="big" logparam="P1">
    <scaling name="EngineLoad_Pct" units="%" expression="x*100.0/125.0" to_byte="x*125.0/100.0" format="0.0" min="0" max="100" inc="1" storagetype="uint8" endian="big"/>
   </table>
   <table type="Y Axis" name="Engine Speed" storagetype="uint8" endian="big" logparam="P8">
    <scaling name="RPM_x100" units="RPM" expression="x*100" to_byte="x/100" format="#" min="0" max="8000" inc="100" storagetype="uint8" endian="big"/>
   </table>
   <description>Primary Base Ignition Timing Advance Table across Engine Load (%) vs RPM</description>
  </table>

  <table type="2D" name="Target Idle Speed vs Coolant Temp" category="Idle Control" storagetype="uint8" endian="big" sizey="12" userlevel="1">
   <scaling name="IdleRPM_x25" units="RPM" expression="x*25" to_byte="x/25" format="#" min="400" max="2500" inc="25" storagetype="uint8" endian="big"/>
   <table type="Y Axis" name="Coolant Temperature" storagetype="uint8" endian="big" logparam="P2">
    <scaling name="CoolantTempC" units="°C" expression="x-40" to_byte="x+40" format="#" min="-40" max="120" inc="1" storagetype="uint8" endian="big"/>
   </table>
   <description>Target Engine Idle RPM across Engine Coolant Temperature (-30°C to +80°C)</description>
  </table>

  <table type="3D" name="Primary Open Loop Fueling Target" category="Fuel" storagetype="uint8" endian="big" sizex="8" sizey="8" userlevel="1">
   <scaling name="FuelEnrichment" units="AFR" expression="14.7 - (x*0.05)" to_byte="(14.7-x)/0.05" format="0.00" min="10" max="15" inc="0.1" storagetype="uint8" endian="big"/>
   <table type="X Axis" name="Engine Load" storagetype="uint8" endian="big" logparam="P1">
    <scaling name="EngineLoad_Pct" units="%" expression="x*100.0/125.0" to_byte="x*125.0/100.0" format="0.0" min="0" max="100" inc="1" storagetype="uint8" endian="big"/>
   </table>
   <table type="Y Axis" name="Engine Speed" storagetype="uint8" endian="big" logparam="P8">
    <scaling name="RPM_x100" units="RPM" expression="x*100" to_byte="x/100" format="#" min="0" max="8000" inc="100" storagetype="uint8" endian="big"/>
   </table>
   <description>Primary Open Loop Fueling Air-Fuel Ratio (AFR) Target Map</description>
  </table>

 </rom>

 <!-- TARGET ROM: 3DA6003005 -->
 <rom base="HITACHIBASE">
  <romid>
   <xmlid>3DA6003005</xmlid>
   <internalidaddress>A8D9</internalidaddress>
   <internalidstring>DB1S16K4</internalidstring>
   <ecuid>3DA6003005</ecuid>
   <year>00-06</year>
   <market>USDM/EDM/JDM</market>
   <make>Subaru</make>
   <model>Impreza / Legacy / Forester</model>
   <submodel>NA Hitachi Speed-Density</submodel>
   <transmission>MT/AT</transmission>
   <memmodel>SH7055</memmodel>
   <flashmethod>subaruhitachi</flashmethod>
   <filesize>512kb</filesize>
  </romid>

  <!-- Authentic Base Ignition Timing Table -->
  <table name="Base Ignition Timing (Primary)" storageaddress="0xB616">
   <table type="X Axis" storageaddress="0xB5F0" />
   <table type="Y Axis" storageaddress="0xB654" />
  </table>

  <!-- Authentic Target Idle Speed vs Coolant Temp -->
  <table name="Target Idle Speed vs Coolant Temp" storageaddress="0xE804">
   <table type="Y Axis" storageaddress="0x8F18" />
  </table>

  <!-- Authentic Primary Open Loop Fueling -->
  <table name="Primary Open Loop Fueling Target" storageaddress="0xEC20">
   <table type="X Axis" storageaddress="0xB5F0" />
   <table type="Y Axis" storageaddress="0xB654" />
  </table>

 </rom>
</roms>
