SNES Controller Decoder Problem

Hello all.

I have an old SNES controller that I wanted to use with my Arduino. Using this guide, I wrote a program which decodes which button is being pressed.

/* Pin Setup */
int clockPin = 3;  /* yellow */
int latchPin = 4;  /* orange */
int serialPin = 5; /* red */
/* white (5v)   brown (0v) */

/* Function Prototype */
String whatsPressed();

void setup() {

  /* Inputs/Outputs */
  pinMode(clockPin, OUTPUT);   /*  Output  */
  pinMode(latchPin, OUTPUT);   /*  Output  */
  pinMode(serialPin, INPUT);   /*  Input   */
  

  /* Start clock HIGH and latch LOW */
  digitalWrite(clockPin, HIGH); 
  digitalWrite(latchPin, LOW);

  /* Tell user what button is pressed */
  Serial.begin(9600);
  
}

void loop() {
  whatsPressed();
  Serial.println("\n");
}

/* Function: to print what button is pressed */
String whatsPressed(){
  /* Begin Latch */
  digitalWrite(latchPin, HIGH);
  delayMicroseconds(12);
  digitalWrite(latchPin, LOW);
  delayMicroseconds(6);
  /* End Latch */
  char* possibleButtonsInOrder[]={"BBBBB","Y","Select","Start","Up","Down","Left","Right","A","X","L","R"};
  
  for(int i=0; i<12; i++){
    if(digitalRead(serialPin)==0){
      Serial.print(possibleButtonsInOrder[i]);
    }
    digitalWrite(clockPin, LOW);
    delayMicroseconds(6);
    digitalWrite(clockPin, HIGH);
    delayMicroseconds(6);
    }
   delay(100);
}

My program works great and displays what button is being pressed all except for the first button. I want it to print “BBBBB” but it keeps printing as 1 BBB. What is happening is that a 1 (coming from nowhere!!) is printed, and up to 3 characters after. Everything else in the program works great! Where is the “1” coming from? Am I trying to print “too fast” ? Thankyou!