now it runs rough when cold.
My check eng light came on on 1997 BMW 528i
You will need to read the codes to find out what issue is causing the check engine light to come on. Running rough may be a result of what ever is failing.
The check engine light will enable the technician to correctly diagnose your symptoms. Running rough or misfire is often caused by worn out spark plugs.