<!--

Note 1: This 401404 ROM definition for the Mitsubishi Evo9 ACD Control Module, authored by David "Merlin" HINDE, 16th February 2010.
	Please report any errors or additions to merlin.tuning@gmail.com


Note 2: Editing the definition xml file from within EcuFlash will alter the layout and structure of the definition
	and all the comments and spacing will be removed. Use Notepad to edit the definition file to maintain its integrity.


Note 3: This ROM/ECU has 128k byte memory, the XML is setup for the 7202FA chip, see xml read_Evo789_ACD.xml shown below. 
	
	<rom>
	<romid>
		<xmlid>read_Evo789_ACD</xmlid>
		<make>Mitsubishi</make>
		<submodel>ACD ECU MH7203FA</submodel>
		<flashmethod>mitsukernel</flashmethod>			
		<memmodel>H8539FA</memmodel>
	</romid>
	</rom>


Note 4: This xml shows all Address locations offset by hex 10000 from ROM absolute address.


Note 5: The Evo7-8-9 ACD Control Module requires a checksum when flashing. See checksummodule>mitsuh8 in the xml shown below.


Last Revision:
16 Feb	2010
01 Mar	2010
05 Mar	2010
26 Apr	2010
25 Aug	2010
25 Sep	2013
06 Jan	2014	A-Maps changed form G-FORCE to THROTTLE, axis 0x123f0. B-Maps changed from THROTTLE to G-FORCE, axis 0x12568, scaling name="Hex16_1.5G" units="G" toexpr="x/300". 
		A-Maps now labled "ACD THROTTLE Lockup Adder". B-Maps now labled "ACD G-FORCE Lockup Reduction". "SteeringAngle_ACD" units="degrees" toexpr="x*0.8".
		ACD TUNING NOTES added for A, B and C maps.
20 Jan	2014	Scalings updated. MUT data added. Pump Control Limits added. Map Filter Time Constants added.
		Maps, Tables and Tuning Notes added/upgraded.
22 Jan	2014	Cornering G-Force Lockup Reduction v G scaling removed. Slipage%128 and Slipage%256 scaling removed. 
		SteeringLockup%128 scaling removed. SpeedDelta%16_ACD scaling removed.
		Scaling Hex16_1.5G changed to G-Force. Scaling Speed_Difference_ACD changed to SpeedDelta_kph.
		Scaling Speed _ACD changed to Speed_kph. Scaling Percent_AYC changed to PercentAYC.  Scaling Throttle%16_ACD changed to Throttle%. 
		SlipFactor scaling applied to B and C maps and LockFactor scaling applied to A maps for better understanding of map usage. 
24 Jan	2014	Speed Delta descriptions and notes changed to reflect positive and negative wheel speed differences.
25 Jan	2014	All known maps and tables that directly add to lockup have Adder in the description.
		All known maps and tables that modify an Adder now have Coeff. in the description.

-->



<rom>
	<romid>
		<xmlid>401404</xmlid>
		<internalidaddress>11000</internalidaddress>
		<internalidhex>401404</internalidhex>
		<make>Mitsubishi</make>
		<market>AUDM</market>
		<model>MN168749</model>
		<submodel>EVO9 ACD+AYC ECU</submodel>
		<transmission>Manual</transmission>
		<year>2005</year>
		<flashmethod>mitsukernel</flashmethod>
        	<checksummodule>mitsuh8</checksummodule>
		<memmodel>H8539FA</memmodel>
	</romid>



<!--  *** SCALING ***  -->

<scaling name="Ascii" storagetype="uint8" storagebits="8">
    <data name=" " value="20"/>
    <data name="0" value="30"/>
    <data name="1" value="31"/>
    <data name="2" value="32"/>
    <data name="3" value="33"/>
    <data name="4" value="34"/>
    <data name="5" value="35"/>
    <data name="6" value="36"/>
    <data name="7" value="37"/>
    <data name="8" value="38"/>
    <data name="9" value="39"/>
    <data name="A" value="41"/>
    <data name="B" value="42"/>
    <data name="C" value="43"/>
    <data name="D" value="44"/>
    <data name="E" value="45"/>
    <data name="F" value="46"/>
    <data name="G" value="47"/>
    <data name="H" value="48"/>
    <data name="I" value="49"/>
    <data name="J" value="4A"/>
    <data name="K" value="4B"/>
    <data name="L" value="4C"/>
    <data name="M" value="4D"/>
    <data name="N" value="4E"/>
    <data name="O" value="4F"/>
    <data name="P" value="50"/>
    <data name="Q" value="51"/>
    <data name="R" value="52"/>
    <data name="S" value="53"/>
    <data name="T" value="54"/>
    <data name="U" value="55"/>
    <data name="V" value="56"/>
    <data name="W" value="57"/>
    <data name="X" value="58"/>
    <data name="Y" value="59"/>
    <data name="Z" value="5A"/>
    <data name="a" value="61"/>
    <data name="b" value="62"/>
    <data name="c" value="63"/>
    <data name="d" value="64"/>
    <data name="e" value="65"/>
    <data name="f" value="66"/>
    <data name="g" value="67"/>
    <data name="h" value="68"/>
    <data name="i" value="69"/>
    <data name="j" value="6A"/>
    <data name="k" value="6B"/>
    <data name="l" value="6C"/>
    <data name="m" value="6D"/>
    <data name="n" value="6E"/>
    <data name="o" value="6F"/>
    <data name="p" value="70"/>
    <data name="q" value="71"/>
    <data name="r" value="72"/>
    <data name="s" value="73"/>
    <data name="t" value="74"/>
    <data name="u" value="75"/>
    <data name="v" value="76"/>
    <data name="w" value="77"/>
    <data name="x" value="78"/>
    <data name="y" value="79"/>
    <data name="z" value="7A"/>
    <data name=" " value="20"/>
    <data name=" " value="21"/>
    <data name="`" value="22"/>
    <data name="#" value="23"/>
    <data name="$" value="24"/>
    <data name="%" value="25"/>
    <data name=" " value="26"/>
    <data name="'" value="27"/>
    <data name="(" value="28"/>
    <data name=")" value="29"/>
    <data name="*" value="2A"/>
    <data name="+" value="2B"/>
    <data name="," value="2C"/>
    <data name="-" value="2D"/>
    <data name="." value="2E"/>
    <data name=" " value="2F"/>
    <data name="_" value="00"/>
    <data name=" " value="FF"/>
  </scaling>

<scaling name="blobbits" storagetype="bloblist" storagebits="1">
		<data name="0" value="00"/>
		<data name="1" value="01"/>
	</scaling>


<scaling name="CaseAlphaNumeric" storagetype="bloblist" storagebits="8">
	<data name="MB" value="10"/>
	<data name="MD" value="20"/>
	<data name="MR" value="30"/>
	<data name="MN" value="60"/>
	<data name="1860" value="80"/>
	<data name="8631" value="90"/>
  </scaling>

<scaling name="CF128" units="Multiplication Factor" toexpr="x/128" frexpr="x*128" format="%.2f" min="0" max="2" inc="0.0078125" storagetype="uint8" endian="big"/>
<scaling name="CF255" units="Correction Factor" toexpr="x/255" frexpr="x*255" format="%.3f" min="0" max="1" inc="0.0039" storagetype="uint8" endian="big"/>


<scaling name="G-Force" units="G" toexpr="x/300" frexpr="x*300" format="%.2f" min="0" max="1.5" inc="0.01" storagetype="uint16"/>


<scaling name="Hex8" units="hex" toexpr="x" frexpr="x" format="%02X" min="0" max="255" inc="1" storagetype="uint8" endian="big"/>
<scaling name="Hex16" units="hex" toexpr="x" frexpr="x" format="%04X" min="0" max="65535" inc="1" storagetype="uint16" endian="big"/>


<scaling name="Percent128" units="%" toexpr="x/1.28" frexpr="x*1.28" format="%.0f" min="0" max="100" inc="0.78125" storagetype="uint8" endian="big"/>
<scaling name="Percent256" units="Lockup %" toexpr="x/2.56" frexpr="x*2.56" format="%.0f" min="0" max="100" inc="0.39" storagetype="uint8" endian="big"/>
<scaling name="PercentAYC" units="Outside Wheel Drive %" toexpr="x/2.56" frexpr="x*2.56" format="%.0f" min="0" max="100" inc="0.39" storagetype="uint8" endian="big"/>


<scaling name="LockFactor" units="0 = Open________ACD LOCK FACTOR_______30 = Lock" toexpr="x/2.56" frexpr="x*2.56" format="%.0f" min="0" max="40" inc="0.39" storagetype="uint8" endian="big"/>
<scaling name="SlipFactor" units="1.00 = Lock __________ACD SLIP FACTOR__________ 0.00 = Open" toexpr="x/128" frexpr="x*128" format="%.2f" min="0" max="1" inc="0.78125" storagetype="uint8" endian="big"/>


<scaling name="Speed_kph" units="kph" toexpr="x/58.824" frexpr="x*58.824" format="%.0f" min="0" max="250" inc="1" storagetype="uint16" endian="big"/>
<scaling name="Speed_mph" units="mph" toexpr="x/58.824*0.62137" frexpr="x*58.824/0.62137" format="%.1f" min="0" max="510" inc="1" storagetype="uint16" endian="big"/>
<scaling name="SpeedDelta_kph" units="kph" toexpr="(x-32768)/(65535/1115)" frexpr="(x/(1115/65535))+32768" format="%.1f" min="-18" max="18" inc="1" storagetype="uint16" endian="big" /> 

<scaling name="SteeringAngle_ACD" units="degrees" toexpr="x*0.8" frexpr="x/0.8" format="%.0f" min="0" max="512" inc="0.8" storagetype="uint16" endian="big"/>
<scaling name="SteeringAngleVelocity" units="degrees/Sec" toexpr="x*0.8" frexpr="x/0.8" format="%.0f" min="0" max="512" inc="0.8" storagetype="uint16" endian="big"/>


<scaling name="Throttle%" units="%" toexpr="x/65535*100" frexpr="x*65535/100" format="%.0f" min="0" max="100" inc="1" storagetype="uint16"/>


<scaling name="uint8" units="units" toexpr="x" frexpr="x" format="%.0f" min="0" max="255" inc="1" storagetype="uint8" endian="big"/>
<scaling name="uint16" units="units" toexpr="x" frexpr="x" format="%.0f" min="0" max="65535" inc="1" storagetype="uint16" endian="big"/>


<scaling name="ACD_Pressure8" units="BAR" toexpr="x/5" frexpr="x*5" format="%.1f" min="0" max="20" inc="0.2" storagetype="uint8" endian="big"/>





<!--
MUT	DESCRIPTION			LOG REF		UNITS		EVAL

1C	Throttle Position Sensor	TPS		%		x*100/256
18	Vehicle Speed			SPEED		kph		x

1F	Steering Angle			S_ANGLE		degrees		(128-x)*2
20	Steering Angle Speed		S_RATE/S	degrees/Sec	(128-x)*2

1D	G-Force Accel/Decel		G_LON		G		(128-x)*0.02	+ Accel, - Decel
1E	G-Force Cornering		G_LAT		G		(128-x)*0.02	+ Left,  - Right

01	Brake Peddle			F_Brake		On/Off		x bit 16
02	Hand Brake Lever		H_Brake		On/Off		x bit 1

1A	ACD Proportional Valve Current	ACD_mA		mA		4.3*x
1B	AYC Proportional Valve Current	ACD_mA		mA		4.3*x

19	ACD Controller Supply Voltage	Supply_V	Volts		x/10
22	Pressure Sensor Supply Voltage	Sensor_V	Volts		x/10
23	Valve Supply Voltage		Valve_V		Volts		x/10
21	Accumulator Oil Pressure	Oil_P		Bar		x/5	



10	Wheel Speed, Front Right	FR_SPEED	kph		x		1.0 kph resolution
11	Wheel Speed, Front Left		FL_SPEED	kph		x
12	Wheel Speed, Rear  Right	RR_SPEED	kph		x
13	Wheel Speed, Rear  Left		RL_SPEED	kph		x

14	Wheel Speed, Front Right	FR_Speed	kph		x/5		0.2 kph resolution
15	Wheel Speed, Front Left		FL_Speed	kph		x/5
16	Wheel Speed, Rear  Right	RR_Speed	kph		x/5
17	Wheel Speed, Rear  Left		RL_Speed	kph		x/5

80	ROM ID1				ID1		Hex		x
81	ROM ID2				ID2		Hex		x
82	ROM ID3				ID3		Hex		x

EF	PART NUMBER 1			ID4		Hex		x
EE	PART NUMBER 2			ID5		Hex		x
ED	PART NUMBER 3			ID6		Hex		x
EC	PART NUMBER 4			ID7		Hex		x
-->





<!--  *** CONTROL MODULE ***  -->

<table name="ECU ID Hex Revision" category="Control Module" address="11000" type="2D" scaling="Hex8">
<table name="Byte Position" type="Static X Axis" elements="3">
	<data>b1</data>
	<data>b2</data>
	<data>b3</data>
   </table>
  </table><!--  401404  -->
	

<table name="MUT Table 1" category="Control Module" address="13316" type="3D" scaling="Hex16">
<table name="X" type="Static X Axis" elements="2">
	<data>RequestID</data>
	<data>Memory Location</data>
    </table>
   <table name="Y" type="Static Y Axis" elements="31"/>
  </table>


<table name="MUT Table 2" category="Control Module" address="13392" type="3D" scaling="Hex16">
<table name="X" type="Static X Axis" elements="2">
	<data>RequestID</data>
	<data>Memory Location</data>
    </table>
   <table name="Y" type="Static Y Axis" elements="26"/>
  </table>


<table name="ECU ID Logger" category="Control Module" address="1350E" type="2D" scaling="Hex8">
<table name="Byte Position" type="Static X Axis" elements="2">
	<data>b1</data>
	<data>b2</data>
   </table>
  </table><!--  DD 84  -->


<table name="ECU Case ID" category="Control Module" address="13511" type="3D" scaling="Hex8">
<table name="Part Number" type="Static X Axis" elements="3">
	<data>ASCII.</data>
	<data>ASCII.</data>
	<data>HEX  .</data>
    </table>
   <table name="PN1" address="13510" type="Y Axis" elements="1" scaling="CaseAlphaNumeric"/>
  </table><!--  60 16 87 49  -->


<table name="Control Module Program Series" category="Control Module" address="2fefa" type="2D" scaling="Ascii">
<table name="Byte Position" type="Static Y Axis" elements="6">
	<data>b1</data>
	<data>b2</data>
	<data>b3</data>
	<data>b4</data>
	<data>b5</data>
	<data>b6</data>
   </table>
  </table><!--  DM4014  -->


<table name="TUNE NOTES" address="2FF00" category="Control Module" type="3D" scaling="Ascii">
<table name="Steering Angle" address="12158" type="X Axis" elements="16" scaling="SteeringAngle_ACD"/>
<table name="SPEED" address="120BA" type="Y Axis" elements="16" scaling="Speed_ACD"/>
</table>





<!--  *** PUMP CONTROL LIMITS ***  -->

<table name="Pump Pressure Upper Limit" address="11018" category="Pump Control Limits" type="1D" scaling="ACD_Pressure8"/>

<table name="Pump Pressure Lower Limit" address="11019" category="Pump Control Limits" type="1D" scaling="ACD_Pressure8"/>





<!--  *** MAP FILTER TIME CONSTANTS ***  -->

<!--  *** ACD MAP FILTER TIME CONSTANT TUNING NOTES

	These time constants act as reaction filters, or Attack Time and Decay Time filters to the various maps, tables and combinations.
	They all work the same way, one is for upward pressure movement (Attack), the other for downward pressure movement (Decay).

	A value of FFFF will have no filtering time and thus minimum map reaction delay, ie virtually instantaneous change to throttle and steering input.
	A value of 0000 will have maximum delay to the point where there will be no pressure change.

	Ralliart roms typically have much faster attack time constant for steering and wheel slip inputs with slower than stock decay times.
	Ralliart roms typically have much faster attack and decay time constants on the A*B Map result.	

	The un-filtered A*B result can be monitored at F29E+F29F.
	The filtered    A*B result can be monitored at F2A0+F2A1.

	There is a minimum A*B change required before valve current will change.
	The rest state valve current is 60mA. Valve current jumps to 260mA minimum in response to A*B input change and then incriments from there.
	When valve current is falling as a result of minimal A*B input, when the valve current reaches 260mA it then steps back to the 60mA rest state.

-->


<scaling name="TimeConstant" units="Sec" toexpr="1/x*1317.7" frexpr="1/x*1317.7" format="%.2f" min="0" max="20" inc="0.01" storagetype="uint16"/>


<table name="Map Filter Time Constants (Sec)" category="Map Filter Time Constants" address="110C8" type="2D" scaling="TimeConstant">
<table name="Filter Function" type="Static Y Axis" elements="12">
	<data>D*E    Attack Time Filter (stock 0.25) (Ralliart C1 0.20)</data>
	<data>D*E    Decay  Time Filter (stock 0.25) (Ralliart C1 2.00)</data>
	<data>F      Attack Time Filter (stock 0.25) (Ralliart C1 0.33)</data>
	<data>F      Decay  Time Filter (stock 0.50) (Ralliart C1 0.33)</data>
	<data>A*B    Attack Time Filter (stock 0.50) (Ralliart C1 0.33)</data>
	<data>A*B    Decay  Time Filter (stock 0.50) (Ralliart C1 0.33)</data>
	<data>H      Attack Time Filter (stock 4.00) (Ralliart C1 4.00)</data>
	<data>H      Decay  Time Filter (stock 0.25) (Ralliart C1 0.25)</data>
	<data>C*G*H  Attack Time Filter (stock 0.25) (Ralliart C1 0.20)</data>
	<data>C*G*H  Decay  Time Filter (stock 0.25) (Ralliart C1 0.50)</data>
	<data>I*K    Attack Time Filter (stock 0.25) (Ralliart C1 0.25)</data>
	<data>I*K    Decay  Time Filter (stock 0.50) (Ralliart C1 0.50)</data>
   </table>
  </table>

<table name="Map Filter Time Constants (Hex)" category="Map Filter Time Constants" address="110C8" type="2D" scaling="Hex16">
<table name="Filter Function" type="Static Y Axis" elements="12">
	<data>D*E    Attack Time Filter (stock CDE3) (Ralliart C1 FFFF)</data><!--  Unknown 2*3  -->
	<data>D*E    Decay  Time Filter (stock CDE3) (Ralliart C1 19BC)</data><!--  Unknown 2*3  -->
	<data>F      Attack Time Filter (stock CDE3) (Ralliart C1 9A6A)</data><!--  Unknown 4  -->
	<data>F      Decay  Time Filter (stock 6600) (Ralliart C1 9A6A)</data><!--  Unknown 4  -->
	<data>A*B    Attack Time Filter (stock 66F2) (Ralliart C1 9A6A)</data>
	<data>A*B    Decay  Time Filter (stock 66F2) (Ralliart C1 9A6A)</data>
	<data>H      Attack Time Filter (stock 0CDE) (Ralliart C1 0CDE)</data><!--  Unknown 6  -->
	<data>H      Decay  Time Filter (stock CDE3) (Ralliart C1 CDE3)</data><!--  Unknown 6  -->
	<data>C*G*H  Attack Time Filter (stock CDE3) (Ralliart C1 FFFF)</data><!--  C*Unk5*Unk6  -->
	<data>C*G*H  Decay  Time Filter (stock CDE3) (Ralliart C1 62F2)</data><!--  C*Unk5*Unk6  -->
	<data>I*K    Attack Time Filter (stock CDE3) (Ralliart C1 CDE3)</data>
	<data>I*K    Decay  Time Filter (stock 66F2) (Ralliart C1 66F2)</data>
   </table>
  </table>


<table name="Unknown at 110E0 (Sec)" category="Map Filter Time Constants" address="110E0" type="2D" scaling="TimeConstant">
<table name="Filter Function" type="Static Y Axis" elements="8">
	<data>? (stock 0.30) (Ralliart C1 0.30)</data>
	<data>? (stock 0.30) (Ralliart C1 0.30)</data>
	<data>? (stock 1.19) (Ralliart C1 1.19)</data>
	<data>? (stock 0.02) (Ralliart C1 0.02)</data>
	<data>? (stock 1.19) (Ralliart C1 1.19)</data>
	<data>? (stock 0.02) (Ralliart C1 0.02)</data>
	<data>? (stock 1.19) (Ralliart C1 1.19)</data>
	<data>? (stock 0.02) (Ralliart C1 0.02)</data>
   </table>
  </table>


<table name="Unknown at 110E0 (Hex)" category="Map Filter Time Constants" address="110E0" type="2D" scaling="Hex16">
<table name="Filter Function" type="Static Y Axis" elements="8">
	<data>? (stock 1157)</data>
	<data>? (stock 1157)</data>
	<data>? (stock 0456)</data>
	<data>? (stock FF00)</data>
	<data>? (stock 0456)</data>
	<data>? (stock FF00)</data>
	<data>? (stock 0456)</data>
	<data>? (stock FF00)</data>
   </table>
  </table>


<table name="Final Tau for A*B + C*G*H + E*D (Sec)" category="Map Filter Time Constants" address="110F4" type="2D" scaling="TimeConstant">
<table name="Filter Function" type="Static Y Axis" elements="2">
	<data>Attack Time Filter (stock Evo8 0.09) (Ralliart C1 0.09) (Ralliart K2 2.58)</data>
	<data>Decay  Time Filter (stock Ev08 3.96) (Ralliart C1 3.96) (Ralliart K2 5.17)</data>
   </table>
  </table>


<table name="Unknown at 11102 (Sec)" category="Map Filter Time Constants" address="11102" type="2D" scaling="TimeConstant">
<table name="Filter Function" type="Static Y Axis" elements="2">
	<data>? (stock 0.89) (Ralliart C1 0.04)</data>
	<data>? (stock 1.87) (Ralliart C1 0.65)</data>
   </table>
  </table>


<table name="Unknown at 11102 (Hex)" category="Map Filter Time Constants" address="11102" type="2D" scaling="Hex16">
<table name="Filter Function" type="Static Y Axis" elements="2">
	<data>? (stock 05D0) (Ralliart C1 7F63)</data>
	<data>? (stock 02C1) (Ralliart C1 07F6)</data>
   </table>
  </table>





<!--  *** AYC ***  -->

<!--  *** AYC MAP TUNING NOTES
	
	The AYC 3D map describes the drive percentage to the outside rear wheel.
	Larger values increase the clutch-pack pressure to the outside wheel.
	
-->


<table name="AYC Unknown Coeff. Q1" address="12090" category="AYC Maps" type="2D" scaling="uint8">
<table name="SPEED" address="12044" type="Y Axis" elements="36" scaling="Speed_kph"/>
</table>


<table name="AYC Unknown Coeff. Q2" address="12106" category="AYC Maps" type="2D" scaling="uint8">
<table name="SPEED" address="120BA" type="Y Axis" elements="36" scaling="Speed_kph"/>
</table>

<table name="AYC Unknown Coeff. Q3" address="1212E" category="AYC Maps" type="2D" scaling="uint8">
<table name="SPEED" address="120BA" type="Y Axis" elements="36" scaling="Speed_kph"/>
</table>



<table name="AYC Rear Diff Proportioning Map - % Torque" address="12171" category="AYC Maps" type="3D" scaling="PercentAYC">
<table name="Steering Angle" address="12158" type="X Axis" elements="9" scaling="SteeringAngle_ACD"/>
<table name="SPEED" address="120BA" type="Y Axis" elements="36" scaling="Speed_kph"/>
</table>





<!--  *** J Tables are multiplied with the AYC Map ***  -->

<table name="AYC Tarmac Coeff. Accel (J1.1)" address="122D0" category="AYC Maps" type="2D" scaling="CF128">
<table name="SPEED" address="122bc" type="Y Axis" elements="8" scaling="Speed_kph"/>
</table>

<table name="AYC  Gravel Coeff. Accel (J1.2)" address="122DC" category="AYC Maps" type="2D" scaling="CF128">
<table name="SPEED" address="122bc" type="Y Axis" elements="8" scaling="Speed_kph"/>
</table>

<table name="AYC   Snow Coeff. Accel (J1.3)" address="122E8" category="AYC Maps" type="2D" scaling="CF128">
<table name="SPEED" address="122bc" type="Y Axis" elements="8" scaling="Speed_kph"/>
</table>


<table name="AYC Tarmac Coeff. Decel (J2.1)" address="128E0" category="AYC Maps" type="2D" scaling="CF128">
<table name="SPEED" address="122bc" type="Y Axis" elements="8" scaling="Speed_kph"/>
</table>

<table name="AYC  Gravel Coeff. Decel (J2.2)" address="128EC" category="AYC Maps" type="2D" scaling="CF128">
<table name="SPEED" address="122bc" type="Y Axis" elements="8" scaling="Speed_kph"/>
</table>

<table name="AYC   Snow Coeff. Decel (J2.3)" address="128F8" category="AYC Maps" type="2D" scaling="CF128">
<table name="SPEED" address="122bc" type="Y Axis" elements="8" scaling="Speed_kph"/>
</table>





<!--  *** ACD A MAPS - THROTTLE LOCKUP ADDER for a given THROTTLE and SPEED ***  -->

<!--  *** ACD A MAP TUNING NOTES
	
	The A-Maps take Throttle and Speed as inputs and are the main ACD maps. 
	The A-Maps are multiplied with the B-Maps and then the C-Map result and Wheel Slip result are added to A*B.
	 
	Larger values increase the lock, smaller values decrease lock (increase slip).
	When throttle is more than 50% the ACD is progressively locked.
	
	Accel and Decel are generally identical pairs.
	
	Loose surfaces require more ACD lock so the SNOW setting may be typically 3x the TARMAC setting.
	
	Rally driving is enhanced with some added constant base pressure, fill all zeros above 14%TPS with 2-5. 
	
	Always leave the parking cells set to zero to prevent binding.
	
	The un-filtered A*B result can be monitored at F29E+F29F.
	
	The    filtered A*B result can be monitored at F2A0+F2A1.
	
-->


<table name="ACD THROTTLE Lockup Adder - Tarmac Accel (A1.1)" address="12425" category="ACD THROTTLE Lockup Adder (A Maps)" type="3D" scaling="LockFactor">
<table name="THROTTLE" address="123F0" type="X Axis" elements="10" scaling="Throttle%"/>
<table name="SPEED" address="1240A" type="Y Axis" elements="10" scaling="Speed_kph"/></table>


<table name="ACD THROTTLE Lockup Adder - Gravel Accel (A1.3)" address="12491" category="ACD THROTTLE Lockup Adder (A Maps)" type="3D" scaling="LockFactor">
<table name="THROTTLE" address="123F0" type="X Axis" elements="10" scaling="Throttle%"/>
<table name="SPEED" address="1240A" type="Y Axis" elements="10" scaling="Speed_kph"/></table>


<table name="ACD THROTTLE Lockup Adder - Snow Accel (A1.2)" address="124FD" category="ACD THROTTLE Lockup Adder (A Maps)" type="3D" scaling="LockFactor">
<table name="THROTTLE" address="123F0" type="X Axis" elements="10" scaling="Throttle%"/>
<table name="SPEED" address="1240A" type="Y Axis" elements="10" scaling="Speed_kph"/></table>


<table name="ACD THROTTLE Lockup Adder - Decel Tarmac (A2.1)" address="1292B" category="ACD THROTTLE Lockup Adder (A Maps)" type="3D" scaling="LockFactor">
<table name="THROTTLE" address="123F0" type="X Axis" elements="10" scaling="Throttle%"/>
<table name="SPEED" address="1240A" type="Y Axis" elements="10" scaling="Speed_kph"/></table>


<table name="ACD THROTTLE Lockup Adder - Gravel Decel (A2.3)" address="12997" category="ACD THROTTLE Lockup Adder (A Maps)" type="3D" scaling="LockFactor">
<table name="THROTTLE" address="123F0" type="X Axis" elements="10" scaling="Throttle%"/>
<table name="SPEED" address="1240A" type="Y Axis" elements="10" scaling="Speed_kph"/></table>


<table name="ACD THROTTLE Lockup Adder - Snow Decel (A2.2)" address="12A03" category="ACD THROTTLE Lockup Adder (A Maps)" type="3D" scaling="LockFactor">
<table name="THROTTLE" address="123F0" type="X Axis" elements="10" scaling="Throttle%"/>
<table name="SPEED" address="1240A" type="Y Axis" elements="10" scaling="Speed_kph"/></table>





<!--  *** ACD B MAPS - G-FORCE LOCKUP REDUCTION for a given G-FORCE and SPEED ***  -->

<!--  *** ACD B MAP TUNING NOTES
	
	The B-Maps are G-Force multipliers to the A-Maps, their function is to reduce lockup during high G force corners.
	
	The B-Map result is multiplied with the A-Map, using scaling CF128 which has a range of zero to one.
	
	A map value of 1.00 will have no affect on ACD lockup (ie lockup will follow the A.Map).
	A map value of 0.00 will cause the ACD to go fully open (ie the A-Map is cancelled allowing maximum slip).
	
	Decel maps are generally set to have no decrease in ACD lockup below 140 kph, this is to aid decel stability under braking/decel.
	
	
-->


<table name="ACD G-FORCE Lockup Reduction Coeff. Tarmac Accel (B1.1)" address="12583" category="ACD G-Force Lockup Reduction (B Maps)" type="3D" scaling="SlipFactor">
<table name="G-FORCE" address="12568" type="X Axis" elements="10" scaling="G-Force"/>
<table name="SPEED" address="1240A" type="Y Axis" elements="10" scaling="Speed_kph"/></table>


<table name="ACD G-FORCE Lockup Reduction Coeff. Gravel Accel (B1.3)" address="125EF" category="ACD G-Force Lockup Reduction (B Maps)" type="3D" scaling="SlipFactor">
<table name="G-FORCE" address="12568" type="X Axis" elements="10" scaling="G-Force"/>
<table name="SPEED" address="1240A" type="Y Axis" elements="10" scaling="Speed_kph"/></table>


<table name="ACD G-FORCE Lockup Reduction Coeff. Snow   Accel (B1.2)" address="1265B" category="ACD G-Force Lockup Reduction (B Maps)" type="3D" scaling="SlipFactor">
<table name="G-FORCE" address="12568" type="X Axis" elements="10" scaling="G-Force"/>
<table name="SPEED" address="1240A" type="Y Axis" elements="10" scaling="Speed_kph"/></table>


<table name="ACD G-FORCE Lockup Reduction Coeff. Tarmac Decel (B2.1)" address="12A6F" category="ACD G-Force Lockup Reduction (B Maps)" type="3D" scaling="SlipFactor">
<table name="G-FORCE" address="12568" type="X Axis" elements="10" scaling="G-Force"/>
<table name="SPEED" address="1240A" type="Y Axis" elements="10" scaling="Speed_kph"/></table>


<table name="ACD G-FORCE Lockup Reduction Coeff. Gravel Decel (B2.3)" address="12ADB" category="ACD G-Force Lockup Reduction (B Maps)" type="3D" scaling="SlipFactor">
<table name="G-FORCE" address="12568" type="X Axis" elements="10" scaling="G-Force"/>
<table name="SPEED" address="1240A" type="Y Axis" elements="10" scaling="Speed_kph"/></table>


<table name="ACD G-FORCE Lockup Reduction Coeff. Snow   Decel (B2.2)" address="12B47" category="ACD G-Force Lockup Reduction (B Maps)" type="3D" scaling="SlipFactor">
<table name="G-FORCE" address="12568" type="X Axis" elements="10" scaling="G-Force"/>
<table name="SPEED" address="1240A" type="Y Axis" elements="10" scaling="Speed_kph"/></table>





<!--  *** ACD C MAPS - STEERING ANGLE SLIP ADDER for STEERING ANGLE v VEHICLE SPEED ***  -->

<!--  *** ACD C*G*H TUNING NOTES
	
	The CGH group of tables combine four variables to increase ACD lockup based on: 
		Wheel Speed Delta (difference), Wheel Speed, Steering Angle and Steering Angle Velocity.
	
	Table G-Tables provide the additional LockFactor, the C-Maps provide the Steering Angle corrections and the H-Tables provide the Steering Angle Velocity corrections.
	Both stock and Ralliart roms are setup so additional lockup is only added when front/rear slip exceeds -4.3 kph (see table G1,G2, G3).
	
	The relevant C-Map is multiplied with Steering Angle Wheel Slip Multiplier (G) and Steering Angle Velocity Multiplier (H). 
	The result is added to A*B to drive the ACD proportioning valve.
	
	Steering and Wheel Slip calc: C * G * H
	
	The un-filtered C*G*H result can be monitored at F2AA+F2AB.
	The    filtered C*G*H result can be monitored at F2AC+F2AD.
	
	On stock roms the G tables are set to zero except for -6.9 kph setting, therfore the C-Maps do not contribute until there is more than -4.3 kph wheel speed differance.
	
	On stock roms the Steering Angle Velocity tables are fully set to 1.00 and thus do not modify the result.
	The 0-40 deg/Sec elements can be reduced a bit to reduce lockup with rapid steering wheel movement. 
	
	C-Maps - Larger values increase the lock, smaller values decrease lock (increase slip). A zero in either the C-Maps or the G tables will result in no extra lockup (x*0=0).
	
	Accel and Decel are generally identical pairs.
	
	At low speeds (typically less than 20 kph) the ACD is set loose (not locked).
	
	When the steering angle is less than 40 degrees the ACD is tight (locked).
	When the steering angle is more than 40 degrees the ACD is progressively loosened.
	Gravel and SNOW settings will have more lock than TARMAC setting as steering angle is increased. 
	
-->


<!--  ***  Wheel Slip Adder G1, G2, G3 Tables ***  -->

<table name="Wheel Slip Adder, Tarmac (G1)" address="126F4" category="ACD Steering Angle Adder (C Maps)" type="2D" scaling="LockFactor">
<table name="WHEEL SPEED DELTA" address="126C6" type="Y Axis" elements="5" scaling="SpeedDelta_kph"/>
</table>

<table name="Wheel Slip Adder, Gravel (G2)" address="126FE" category="ACD Steering Angle Adder (C Maps)" type="2D" scaling="LockFactor">
<table name="WHEEL SPEED DELTA" address="126D6" type="Y Axis" elements="5" scaling="SpeedDelta_kph"/>
</table>

<table name="Wheel Slip Adder, Snow   (G3)" address="12708" category="ACD Steering Angle Adder (C Maps)" type="2D" scaling="LockFactor">
<table name="WHEEL SPEED DELTA" address="126E6" type="Y Axis" elements="5" scaling="SpeedDelta_kph"/>
</table>





<!--  *** ACD Steering Angle Slip Coefficient C Maps ***  -->

<table name="Steering Angle Slip Coeff. Tarmac Accel (C1.1)" address="12749" category="ACD Steering Angle Adder (C Maps)" type="3D" scaling="CF128">
<table name="Steering Angle" address="1272E" type="X Axis" elements="10" scaling="SteeringAngle"/>
<table name="SPEED" address="12714" type="Y Axis" elements="10" scaling="Speed_kph"/></table>

<table name="Steering Angle Slip Coeff. Gravel Accel (C1.3)" address="127B5" category="ACD Steering Angle Adder (C Maps)" type="3D" scaling="CF128">
<table name="Steering Angle" address="1272E" type="X Axis" elements="10" scaling="SteeringAngle"/>
<table name="SPEED" address="12714" type="Y Axis" elements="10" scaling="Speed_kph"/></table>

<table name="Steering Angle Slip Coeff. Snow Accel (C1.2)" address="12821" category="ACD Steering Angle Adder (C Maps)" type="3D" scaling="CF128">
<table name="Steering Angle" address="1272E" type="X Axis" elements="10" scaling="SteeringAngle"/>
<table name="SPEED" address="12714" type="Y Axis" elements="10" scaling="Speed_kph"/></table>



<table name="Steering Angle Slip Coeff. Tarmac Decel (C2.1)" address="12BD1" category="ACD Steering Angle Adder (C Maps)" type="3D" scaling="CF128">
<table name="Steering Angle" address="1272E" type="X Axis" elements="10" scaling="SteeringAngle"/>
<table name="SPEED" address="12714" type="Y Axis" elements="10" scaling="Speed_kph"/></table>

<table name="Steering Angle Slip Coeff. Gravel Decel (C2.3)" address="12C3D" category="ACD Steering Angle Adder (C Maps)" type="3D" scaling="CF128">
<table name="Steering Angle" address="1272E" type="X Axis" elements="10" scaling="SteeringAngle"/>
<table name="SPEED" address="12714" type="Y Axis" elements="10" scaling="Speed_kph"/></table>

<table name="Steering Angle Slip Coeff. Snow Decel (C2.2)" address="12CA9" category="ACD Steering Angle Adder (C Maps)" type="3D" scaling="CF128">
<table name="Steering Angle" address="1272E" type="X Axis" elements="10" scaling="SteeringAngle"/>
<table name="SPEED" address="12714" type="Y Axis" elements="10" scaling="Speed_kph"/></table>





<!--  *** Steering Angle Velocity Coefficient H1.1  H1.2  H1.3  H2.1  H2.2  H2.3 Tables ***  -->

<table name="Steering Angle Velocity Coeff. Tarmac Accel (H1.1)" address="128b4" category="ACD Steering Angle Adder (C Maps)" type="2D" scaling="CF128">
<table name="STEERING ANGLE VELOCITY" address="1288C" type="Y Axis" elements="4" scaling="SteeringAngleVelocity"/>
</table>

<table name="Steering Angle Velocity Coeff. Gravel Accel (H1.2)" address="128bc" category="ACD Steering Angle Adder (C Maps)" type="2D" scaling="CF128">
<table name="STEERING ANGLE VELOCITY" address="1289A" type="Y Axis" elements="4" scaling="SteeringAngleVelocity"/>
</table>

<table name="Steering Angle Velocity Coeff.   Snow Accel (H1.3)" address="128c4" category="ACD Steering Angle Adder (C Maps)" type="2D" scaling="CF128">
<table name="STEERING ANGLE VELOCITY" address="128A8" type="Y Axis" elements="4" scaling="SteeringAngleVelocity"/>
</table>



<table name="Steering Angle Velocity Coeff. Tarmac Decel (H2.1)" address="12D12" category="ACD Steering Angle Adder (C Maps)" type="2D" scaling="CF128">
<table name="STEERING ANGLE VELOCITY" address="1288C" type="Y Axis" elements="4" scaling="SteeringAngleVelocity"/>
</table>

<table name="Steering Angle Velocity Coeff. Gravel Decel (H2.2)" address="12D1A" category="ACD Steering Angle Adder (C Maps)" type="2D" scaling="CF128">
<table name="STEERING ANGLE VELOCITY" address="1289A" type="Y Axis" elements="4" scaling="SteeringAngleVelocity"/>
</table>

<table name="Steering Angle Velocity Coeff.   Snow Decel (H2.3)" address="12D22" category="ACD Steering Angle Adder (C Maps)" type="2D" scaling="CF128">
<table name="STEERING ANGLE VELOCITY" address="128A8" type="Y Axis" elements="4" scaling="SteeringAngleVelocity"/>
</table>




<!--  *** ACD SPEED DELTA LOCKUP ADDER Tables D E F ***  -->

<!--  *** ACD SPEED DELTA LOCKUP ADDER TUNING NOTES
	
	These are the tables that function to increase ACD Lockup (Higher pump pressure) when the ACD Controller registers a differance 
	in wheel speed front to rear (SPEED DELTA). They appear to operate independantly to the C*G*H Steering/Wheel Slip adder combination.
	
	Tables D and E operate together, table F operates independantly. 
	The rom decides which will be added to the total lockup calculation based on which is the larger.
	
	Table group D*E operate on positive and negative wheel speed differences.
	Table F operates on only positive wheel speed difference.
	
	The three correction shaping tables (D1 D2 D3) are normalized to 255 (using CF255 scaling) and can have a value from zero to one.
	The six Accel/Decel Speed Delta Lockup Adder tables (E.1 E1.2 E1.3 and E2.1 E2.2 E2.3) use LockFactor scaling.
	The normalized base value is multiplied with the LockFactor Accel / Decel value.
	
	This result is then compared with the three Un-compensated Speed Delta Lockup Adder tables (F1, F2, F3). 
	The larger of the two results is then added to the total result: A*B + C*G*H + (D*E or F).
	
	
	The un-filtered D*E   result can be monitored at F28C+F28D.
	
	The un-filtered F     result can be monitored at F298+F299.
	
-->


<table name="Speed Delta (+/-) Coeff. Tarmac (D1)" address="12320" category="ACD Speed Delta Lockup Adder" type="2D" scaling="CF255">
<table name="WHEEL SPEED DELTA" address="122F6" type="Y Axis" elements="19" scaling="SpeedDelta_kph"/>
</table>

<table name="Speed Delta (+/-) Coeff. Gravel (D2)" address="12338" category="ACD Speed Delta Lockup Adder" type="2D" scaling="CF255">
<table name="WHEEL SPEED DELTA" address="122F6" type="Y Axis" elements="19" scaling="SpeedDelta_kph"/>
</table>

<table name="Speed Delta (+/-) Coeff. Snow    (D3)" address="12350" category="ACD Speed Delta Lockup Adder" type="2D" scaling="CF255">
<table name="WHEEL SPEED DELTA" address="122F6" type="Y Axis" elements="19" scaling="SpeedDelta_kph"/>
</table>



<table name="Speed Delta (+/-) Lockup Adder, Tarmac Accel (E1.1)" address="1237E" category="ACD Speed Delta Lockup Adder" type="2D" scaling="LockFactor">
<table name="SPEED" address="1236A" type="Y Axis" elements="8" scaling="Speed_kph"/>
</table>

<table name="Speed Delta (+/-) Lockup Adder, Gravel Accel (E1.2)" address="1238A" category="ACD Speed Delta Lockup Adder" type="2D" scaling="LockFactor">
<table name="SPEED" address="1236A" type="Y Axis" elements="8" scaling="Speed_kph"/>
</table>

<table name="Speed Delta (+/-) Lockup Adder, Snow   Accel (E1.3)" address="12396" category="ACD Speed Delta Lockup Adder" type="2D" scaling="LockFactor">
<table name="SPEED" address="1236A" type="Y Axis" elements="8" scaling="Speed_kph"/>
</table>

<table name="Speed Delta (+/-) Lockup Adder, Tarmac Decel (E2.1)" address="12904" category="ACD Speed Delta Lockup Adder" type="2D" scaling="LockFactor">
<table name="SPEED" address="1236A" type="Y Axis" elements="8" scaling="Speed_kph"/>
</table>

<table name="Speed Delta (+/-) Lockup Adder, Gravel Decel (E2.2)" address="12910" category="ACD Speed Delta Lockup Adder" type="2D" scaling="LockFactor">
<table name="SPEED" address="1236A" type="Y Axis" elements="8" scaling="Speed_kph"/>
</table>

<table name="Speed Delta (+/-) Lockup Adder, Snow   Decel (E2.3)" address="1291C" category="ACD Speed Delta Lockup Adder" type="2D" scaling="LockFactor">
<table name="SPEED" address="1236A" type="Y Axis" elements="8" scaling="Speed_kph"/>
</table>





<table name="Speed Delta (+) Lockup Adder, Tarmac (F1)" address="123BE" category="ACD Speed Delta Lockup Adder" type="2D" scaling="LockFactor">
<table name="WHEEL SPEED DELTA" address="123A4" type="Y Axis" elements="11" scaling="SpeedDelta_kph"/>
</table>

<table name="Speed Delta (+) Lockup Adder, Gravel (F2)" address="123CE" category="ACD Speed Delta Lockup Adder" type="2D" scaling="LockFactor">
<table name="WHEEL SPEED DELTA" address="123A4" type="Y Axis" elements="11" scaling="SpeedDelta_kph"/>
</table>

<table name="Speed Delta (+) Lockup Adder, Snow   (F3)" address="123DE" category="ACD Speed Delta Lockup Adder" type="2D" scaling="LockFactor">
<table name="WHEEL SPEED DELTA" address="123A4" type="Y Axis" elements="11" scaling="SpeedDelta_kph"/>
</table>





<!--  *** ACD VALVE EXCITATION CALC ***  -->

<!--  *** ACD VALVE EXCITATION CALC NOTES
	
	The end result of A*B + C*G*H + (D*E or F) is sent through the time constant filter (110F4 etc).
	The filtered result is then mltiplied with a constant (at 110F6).
	The result is stored and can be monitored at F2BE.
	
	Table-I and Table-K are multiplied together (result stored at F2CE) and compared with the value stored at F2BE. 
	Note that I and K have not been changed in any of the Ralliart roms, so probably best  not to change them.
	
	
-->



<table name="Unknown A*B + C*G*H + D*E Multiplier at 110F6" address="110F6" category="ACD Valve Drive Calc" type="2D" scaling="uint16">
<table name="Filter Function" type="Static Y Axis" elements="1">
	<data>014D </data>
   </table>
  </table>

<table name="Table I" address="13142" category="ACD Valve Drive Calc" type="2D" scaling="CF128">
<table name="WHEEL SPEED DELTA" address="1312c" type="Y Axis" elements="9" scaling="SpeedDelta_kph"/>
</table>

<table name="Table K" address="13178" category="ACD Valve Drive Calc" type="2D" scaling="CF128">
<table name="SPEED" address="1316C" type="Y Axis" elements="4" scaling="Speed_kph"/>
</table>





<!--  *** Other Known Un-deciphered 2D Tables ***  -->

<table name="Table L" address="128D8" category="2D Tables" type="2D" scaling="CF255">
<table name="X" address="128CE" type="Y Axis" elements="3" scaling="uint16"/>
</table>

<table name="Table M" address="131B8" category="2D Tables" type="2D" scaling="CF255">
<table name="X" address="131AE" type="Y Axis" elements="2" scaling="uint16"/>
</table>

<table name="Table N" address="12D3A" category="2D Tables" type="2D" scaling="CF255">
<table name="WHEEL SPEED DELTA" address="12D2C" type="Y Axis" elements="5" scaling="SpeedDelta_kph"/>
</table>






</rom>
