program run on Mega doesn't run the same as DUE?

I wrote out a program on my arduino DUE that would light up LEDs and go along to a song. However, I decided that for my second prototype, that I would use a MEGA because I know it can handle more current. The thing I noticed though, was that the timing was definitely off. Does anyone know why this is? I did use a sainsmart Mega:

and for the first prototype, I used the Arduino DUE made by Arduino.org. So I am wondering, does the problem lie in the fact that they are 2 different manufacturers? or is it that one's a DUE and one's a MEGA? or is it that no 2 microcontrollers are the same no matter what? Thanks for the help ahead of time.

Does anyone know why this is?

Not a clue.

Do you have a lot of fudge factors in your invisible code that might need to be tweaked for the Mega? Could be that if you have a lot of short delays, the higher overhead time of the Mega might be affecting things.

or is it that no 2 microcontrollers are the same no matter what?

Any two uCs that are the same are exactly the same.

But an ARM and an AVR are not the same. So yes there may well be something different that affects your program.

At this point though nobody can tell because we can't see the code.