some comments on the previous posts.
1. The appearent value jumps in the idle ignition tables are due to the respective tables being stored at (usually) slightly different ROM addresses from one BIN to another. Shift the start address in the XDF parameter until the values seem to make sense. A detailed code analysis is required to identify the tables and scalars, however - everything else if dubious.
To underline this point, following a screenshot of showing a small subset (<5%) of the subprograms being used in the MiuG3 code on the left side and another part of the ignition calculation main routine.
2. The main ignition delta is present, but filled with 0 values. The screenshot below shows the selection process of either table depending on the cylinder currently being processed. If rl6 in loc_C4D1DA is 0 (left cylinder), then the code moves to the IgnAdv_main_8EBE table. If it's 1, then the IgnAdv_Delta_Table_
C79514 is used and the value from this table is added to the IgnAdv_main_8EBE values.
3. The ignition values in the idle ignition section can be different for drivetrain engaged (gear engaged, clutch released) or disengaged (neutral selected or gear engaged/clutch drawn). However, this isn't required for dry clutch engines. On a wet clutch engine it could make sense as the oil would transmit a torque between the clutch plates even when the clutch is drawn and thus slightly brake the engine.
4. The speedo correction factor isn't used in the code. It, after being calculated here, is used for correcting the speed sensor pulse frequency to match actual speed and send to the dashboard as part of a CAN packet.
PS I went thru the main portion of the non-housekeeping routines of the MiuG3 code during the last weeks and will post detailed findings in the V7/MiuG3 thread.
If's there's any interest....