Depends on the chamber shape, size, squish area, valves etc. (As you know.) The theory is that optimised chamber designs need less advance as the flame front travels quicker. Also, leaner mixtures need greater advance as they burn slower. The idea is to find the minimum timing for best torque (MBT). Advancing more means cylinder pressures are higher earlier, losing torque and risking detonation. If a turbo car use an EGT meter - you'll retard a lot to prevent pinging but too much will raise chamber temps to alloy melting potential - that's the boost limiting factor.
For starters with cars I've MS'd, I use the following basic info, then tune on the road and dyno from there. Its very conservative given most rallying installs will use 98 octane, (and the info is US sourced where RON in unleaded is 87 (regular), 89 (mid-grade) and 93 (premium). With Matt T's FJ20 (for example) it didn't require a whole lot of fine tuning once I added around 5 deg at total timing to take account of the difference in RON. (Ended up at 32deg once advance was all in at WOT, more didn't give more torque, less the torque dropped off.)
The basic principles are to determine a maximum advance for your engine and work backwards from there with heuristics:
- older engines (1960s up to 1990 or so) with two valves - max advance = 36°
- newer two-valve engines - max advance = 32°
- three or four valve engines - max advance = 30°
then adjust for bore size:
- under 3.5" (89mm) - subtract 3°
- between 3.5" and 4.000" (101.6mm) - no adjustment
- over 4.001" (+101.6mm) - add 3°
then adjust for the fuel:
- regular - subtract 2°
- mid-grade - subtract 1°
- premium - no adjustment
That gives a maximum advance figure. It you have an aftermarket combination with a good squish area and optimized quench, subtract another 2°. If you have a flathead, add 3° or 4° or more.
Use this to fill in the table at 100 kPa from 3000 rpm to the redline.
From idle to 3000 rpm, you want the advance (@100kPa) to increase fairly linearly from the idle advance to the maximum advance. idle advance is really a matter of tuning, but assume 8° to 16° in most cases, with stock engines being on the lower end, and 'hotter' engines being on the upper end.
So for a hot engine with 36° maximum advance and 16° idle advance (at 800rpm), the spark table might look like this for 100kPa:
100 16° 16° 18° 24° 28° 36°
rpm 600 800 1000 1500 2000 3000
Below 100 kPa, add 0.3° per 1 kPa drop. So for example, if total spark at 100kPa and 4000 rpm was 36°, the advance at 50 kPa would be:
36° + 0.3° x (100-50) = 51°
and the advance at 45 kPa and 800 rpm would be:
16° + 0.3° x (100-45) = 32.5°
However all of these would need to be tuned, and it often helps idle stability to limit the advance at idle to under 20°.
If you can, it might help to increase advance in the high MAP areas at idleish RPMs to improve off idle performance. Retard timing a lot at low MAP/high RPM for flames on overrun
Idle is usually tuned by looking for minimum MAP - this gives the greatest stability.