Abstract: A rotary gasoline engine has two sets of pistons, which move reciprocally. The reciprocal output of said pistons is coupled to an undulating ramp, which converts the reciprocal motion to rotary motion. The engine casing has a hollow center though which no shaft runs. Dual rotary outputs are provided, one through a rotatable output block at the top end of the casing, the other through a rotatable block at the bottom end of the casing in response to the reciprocal motion of the pistons.