Converting a 8mhz Program to 16 MHz

I have a program designed to interface with a PS2 controller, which requires a large amount of timing to get the modified SPI interface correct, unfortunately the program that i ported was originally designed to run at 8mhz and the arduino Duemilanove is clocked at 16mhz, so I was wondering if there is a way to adjust the code to run on my arduino whether by adjusting the arduino’s clock speed or by adjusting the software.

#define PSclock     2               // PD2
#define PSdata      3               // PD3
#define PSack       4               // PD4
#define PScommand   5               // PD5
#define PSattention     6               // PD6 int main(void)
#ifndef cbi
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#endif
#ifndef sbi
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#endif 
short int temp, data0, data1, data2, data3, data4, data5, i ,debounceSelect;
void setup () {




  // PSx controller I/O pin setup:
  pinMode (PSclock, OUTPUT);                 // clock. output. (blue)

  pinMode (PSdata, INPUT);                  // data. input. (brown)
  digitalWrite (PSdata, HIGH);               //    enable pullup resistor

  pinMode (PSack, INPUT);                  // acknowledge. input. (green)
  digitalWrite (PSack, HIGH);              //    enable pullup resistor

  pinMode (PScommand, OUTPUT);                 // command. output. (orange)

  pinMode (PSattention, OUTPUT); 
  ;                 // attention. output. (yellow)
  Serial.begin (9600); 

  // enable interupts

  sei();

  // watchdog timer reset and enable
  //wdt_reset();
  //wdt_enable(0x02);

  //timerInit();


  // this loop continues to put PSx controller into analouge mode untill the 
  // controller responds with 0x73 in the 2nd byte.  
  // (PS2 controller responds with 0x73 when in analouge mode.)
  // the status LEDs will continue to count upwards untill a controller is found.
  // if everything is working correctly this should happen on the first pass of 
  // this loop but occasionally errors occur and a 2nd or 3rd itteration happen.
  unsigned char chk_ana = 0, cnt = 0;
  while(chk_ana != 0x73){
    // put controller in config mode
    digitalWrite(PScommand, HIGH);
    digitalWrite(PSclock, HIGH);
    digitalWrite(PSattention,LOW);

    gameByte(0x01);
    gameByte(0x43);
    gameByte(0x00);
    gameByte(0x01);
    gameByte(0x00);

    pinMode(PScommand, HIGH);
    delay(1);
    digitalWrite(PSattention, HIGH);

    delay(10);

    // put controller in analog mode
    digitalWrite(PScommand, HIGH);
    digitalWrite(PSclock, HIGH);
    digitalWrite(PSattention, LOW);

    gameByte(0x01);
    gameByte(0x44);
    gameByte(0x00);
    gameByte(0x01);
    gameByte(0x03);
    gameByte(0x00);
    gameByte(0x00);
    gameByte(0x00);
    gameByte(0x00);

    digitalWrite(PScommand, HIGH);
    delay(1);
    digitalWrite(PSattention,HIGH);

    delay(10);

    // exit config mode
    digitalWrite(PScommand, HIGH);
    digitalWrite(PSclock, HIGH);
    digitalWrite(PSattention,LOW);

    gameByte(0x01);
    gameByte(0x43);
    gameByte(0x00);
    gameByte(0x00);
    gameByte(0x5A);
    gameByte(0x5A);
    gameByte(0x5A);
    gameByte(0x5A);
    gameByte(0x5A);

    digitalWrite(PScommand, HIGH);
    delay(1);
    digitalWrite(PSattention, HIGH);

    delay(10);

    // poll controller and check in analog mode.
    digitalWrite(PScommand, HIGH);
    digitalWrite(PSclock, HIGH);
    digitalWrite(PSattention,LOW);

    gameByte(0x01);
    chk_ana = gameByte(0x42);            // the 2nd byte to be returned from the controller should = 0x73 for "red" analouge controller.
    gameByte(0x00);
    gameByte(0x00);
    gameByte(0x00);
    gameByte(0x00);
    gameByte(0x00);
    gameByte(0x00);
    gameByte(0x00);

    digitalWrite(PScommand, HIGH);
    delay(1);
    digitalWrite(PSattention, HIGH);

    delay(10);


    // keep increasing counter to be dispalyed untill PSx controller confirms it's in analouge mode.
    Serial.println (cnt++);                     
    if (cnt > 254){ 
      cnt=0;
    }
  }
}
short int temp, data0, data1, data2, data3, data4, data5, i ,debounceSelect;
// main program loop:
void loop (){

  digitalWrite(PScommand, HIGH);
  digitalWrite(PSclock, HIGH);
  digitalWrite(PSattention,LOW);

  gameByte(0x01);                                       // bite 0. header.
  temp = gameByte(0x42);                          // bite 1. header. (should possibly put test on this byte to detect unplugging of controller.)
  gameByte(0x00);                                       // bite 2. header.

  data0 = gameByte(0x00);                         // bite 3. first data bite.
  data1 = gameByte(0x00);                         // bite 4.
  data2 = gameByte(0x00);                         // bite 5.
  data3 = gameByte(0x00);                         // bite 6.
  data4 = gameByte(0x00);                         // bite 7.
  data5 = gameByte(0x00);                         // bite 8.

   __asm__("nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t");
  digitalWrite(PScommand, HIGH);                      // close communication with PSx controller
 __asm__("nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t");
  digitalWrite(PSattention,HIGH);                        // all done.



  if(!(data0 & _BV(0)) && !debounceSelect)        // capture one unique press of the "select" button
  {
    debounceSelect = 1;
  }
  else if ((data0 & _BV(0)) && debounceSelect)
  {
    if(i++ >= 5) i=0;
    debounceSelect = 0;
  }


  // this switch decides which data register to show on status LEDs depending on how many times
  // the "select" button on the PS2 controller has been pressed.
  switch(i)
  {
  case 0:
    Serial.print ("case 0: ");
    Serial.println(data0);
    break;
  case 1:
    Serial.print ("case 1: ");
    Serial.println(data1);
    break;
  case 2:
    Serial.print ("case 2: ");
    Serial.println(data2);
    break;
  case 3:
    Serial.print ("case 3: ");
    Serial.println(data3);
    break;
  case 4:
    Serial.print ("case 4: ");
    Serial.println(data4);
    break;
  case 5:
    Serial.print ("case 5: ");
    Serial.println(data5);
  }       


} //void loop 

// PSx controller communication function.
// send a byte on the command line and receive one on the data line.
// needs Attention pin to have gone low before called to activate controller.
int gameByte(short int command)
{
  short int i ; 
 //delay one microsecond more accurate as arduino delay microsecond only really does 2us didnt want to use function probably ruins accuracy 
   __asm__("nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t""nop\n\t");
  short int data = 0x00;                             // clear data variable to save setting low bits later.
  for(i=0;i<8;i++)
  {
    if(command & _BV(i)) digitalWrite(PScommand, HIGH);       // bit bang "command" out on PScommand wire.
    else digitalWrite(PScommand, LOW);
    digitalWrite(PSclock, LOW);                             // CLOCK LOW
    delayMicroseconds(20);                                              // wait for output to stabilise
    if((PIND & _BV(PSdata)))sbi(data, i);    // read PSdata pin and store
    //else cbi(data, i);
    digitalWrite(PSclock, HIGH);                             // CLOCK HIGH
  }
  digitalWrite(PScommand,HIGH);

  delayMicroseconds(20);
  ;                                                   // wait for ACK to pass.

  return(data);
}

The only lines that depend on execution speed are the ones with the in-line assembler (__asm). If you copy and paste those lines so that each one is doubled, that should double the delay and get the timing back to normal.