sin, the mathematical function. You feed it a value, and it gives you a value in return, that swings from -1 to 1 to back to -1 and so forth infinitely. Example:
Sin(1) = 0.8414709848
Sin(2) = 0.90929742682
Sin(3) = 0.14112000806
Sin(4) = -0.7568024953
Sin(5) = -0.95892427466
Sin(6) = -0.27941549819
Sin(7) = 0.65698659871
Sin(8) = 0.98935824662
Sin(9) = 0.41211848524
and so forth
This is because Sin is the Y height of a circle as you trace around the circle (where Cos is the X value... or I might have Y and X mixed up, doesn't really matter) like so:
This calculation cannot be done in the m68k processor of the genesis quickly enough (this is why Yoshi's Island uses a math co-processor for rotation of sprites) so, to fake it, they precalculated out Sin according to 255 radians (approximately a circle), and used the current value of Sin(X) as the offset for the pixels being drawn. So Row 1, at the top of the screen, is offset by Sin(1) which means they shift over a value similar to 0.8414709848 , while row 2 is offset by Sin(2) which means they shift over a value similar to 0.90929742682 and so forth. In actuality, to animate the rolling background, the value of the current row is also added to a figure that counts up as time goes forward, so the starting offset changes each frame.
Because of the way a unit circle works, you can get the values on the opposite side of the circle by negating the value of Sin. So, rather than store all the values of Sin from 0-255, they only stored 1/4 of the values and just multiply by negatives (which the genesis CPU can do quickly) to arrive at the correct values while only using 1/4 the rom space.