 unsigned long startTime = 0;
 bool sequentialMode = true;
 unsigned int sceneCounter = 0;
+
+unsigned char backBuffer[HEIGHT][WIDTH / 8] = { 0 };
+
+unsigned char inline backBufferGet(int x, int y) {
+		return (backBuffer[y][x / 8] >> (7 - (x % 8))) & 0x01;
+}
+
+void backBufferSet(int x, int y, unsigned char c) {
+		if (c == 1) {
+				backBuffer[y][x / 8] |= (0x01 << (7 - (x % 8)));
+		} else {
+				backBuffer[y][x / 8] &= ~(0x01 << (7 - (x % 8)));
+		}
+}
+
+void screenToBackBuffer() {
+		for (int i = 0; i < WIDTH; i++) {
+				for (int j = 0; j < HEIGHT; j++) {
+						backBufferSet(i, j, TV.get_pixel(i, j));
+				}
+		}
+}
+
+void backBufferToScreen() {
+		for (int i = 0; i < WIDTH; i++) {
+				for (int j = 0; j < HEIGHT; j++) {
+						TV.set_pixel(i, j, backBufferGet(i, j));
+				}
+		}
+}
 
 const unsigned char* getPlanetSymbol(int i) {
 		switch (i) {

		}
}

void loop() {
		bool changed = false;
		if (currentScene != lastScene) {

		constellationI++;
		
		TV.delay(700);
		//sp(1,1,1);

		checkSceneEnded(20);
}
