         self.pc = 0
         self.delayTimer = 0
         self.soundTimer = 0
-    }
-    
+        
+        // And load the fonts
+        self.loadFonts()
+    }
+
     /**
      * Starts the main loop
      */

            
            // LD_V_DT (Set the register V to the value in dt)
            0xF007: { arg in
                let registerX = Int(arg & 0x1)
                self.V[registerX] = self.delayTimer
            },
            

            
            // LD_ST_V (Set the soundTimer to the value in register V)
            0xF018: { arg in
                let registerX = Int(arg)
                self.soundTimer = self.V[registerX]
            },
            
            // ADD_I_V (I and the register are added and stored in I)
            0xF01E: { arg in
                let registerX = Int(arg)
                self.I = self.I + UInt16(self.V[registerX])
            },
            
            // LD_F_V (I is set to the address of the corresponding font block representing the value in register V)
            0xF029: { arg in
                let registerX = Int(arg)
                let valueX = self.V[registerX]
                
                // Get the memory offset for this hex number (a single font consists of 5 bytes)
                let memoryOffset = Chip8.FontMemoryLocation + UInt16(valueX * 5)
                
                // And point to the beginning of the font
                self.I = memoryOffset
            },
            
            // LD_B_V (Stores the binary decimal representation of the value of register V in I)
