OV7670 module using the OV767X library - alternate pins

Hi, I'm trying to use the 0V7670 camera module (18 pin version) to connect to my Arduino.
When I hook it up to the pins in the OV767X header file as describe, I don't get a good image, but the camera at least connects (the same problem that zhupinqi has here).

However, the standard pins use up all of the digital pins and I need to use the PWM pins and 2 other digital pins for other sensors.

As such, I tried editing the header file to use analog pins as inputs instead of the digital pins:

Updated Header:
#define OV7670_VSYNC 4
#define OV7670_HREF  21
#define OV7670_PLK   12
#define OV7670_XCLK  20
#define OV7670_D0    0
#define OV7670_D1    1
#define OV7670_D2    15
#define OV7670_D3    11
#define OV7670_D4    16
#define OV7670_D5    8
#define OV7670_D6    17
#define OV7670_D7    7

Original Header:
#define OV7670_VSYNC 8
#define OV7670_HREF 10
#define OV7670_PLK   12
#define OV7670_XCLK  9
#define OV7670_D0    0
#define OV7670_D1    1
#define OV7670_D2    2
#define OV7670_D3    3
#define OV7670_D4    4
#define OV7670_D5    5
#define OV7670_D6    6
#define OV7670_D7    7

And now anytime I try and use the sensor, when I check the Serial Monitor I get the error:

-> Failed to initialize camera!

Any help would be greatly appreciated