Просмотр исходного кода

o cleanup
o refactor debug function
o add ifeq platform to makefile
o get crc working on bank 0

optixx 15 лет назад
Родитель
Сommit
369667e154
10 измененных файлов с 176 добавлено и 641 удалено
  1. 2 2
      scripts/crc_xmodem.py
  2. 19 23
      snes/crc/Makefile
  3. 0 183
      snes/crc/TMPA264.TMP
  4. 0 0
      snes/crc/TMPA701.TMP
  5. 0 183
      snes/crc/TMPA737.TMP
  6. 11 47
      snes/crc/debug.c
  7. 4 1
      snes/crc/debug.h
  8. 30 28
      snes/crc/main.c
  9. 0 3
      snes/crc/wine.sh
  10. 110 171
      snesram.tmproj

+ 2 - 2
scripts/crc_xmodem.py

@@ -34,7 +34,7 @@ def test_performance():
 
 def test_algo():
     data='david'
-    data='d'
+    data='da'
     print "%x" % do_crc(data)
   
 
@@ -60,7 +60,7 @@ def main():
     #print result
 
 if __name__ == '__main__':
-    test_algo()
+    #test_algo()
     main()
 
 

+ 19 - 23
snes/crc/Makefile

@@ -1,31 +1,25 @@
 # SDK Config
 
-# Linux Wine 
-SDK=/home/david/.wine/drive_c/65xx_FreeSDK
-WINE=wine
-EMU=zsnes
-EMU_DEBUG=/home/david/Devel/arch/snes/tools/zsnes_linux_debug151/src/zsnesd -d 
-
-
-# OSX Crossover Office
-SDK=/Users/david/.wine/drive_c/65xx_FreeSDK
-CC=/Applications/CrossOver.app/Contents/SharedSupport/CrossOver/bin/wineloader winewrapper.exe --wait-children --start -- C:/65xx_FreeSDK/bin/WDC816CC.exe
-AS=/Applications/CrossOver.app/Contents/SharedSupport/CrossOver/bin/wineloader winewrapper.exe --wait-children --start -- C:/65xx_FreeSDK/bin/WDC816AS.exe
-LD=/Applications/CrossOver.app/Contents/SharedSupport/CrossOver/bin/wineloader winewrapper.exe --wait-children --start -- C:/65xx_FreeSDK/bin/WDCLN.exe
-EMU=zsnes
-
-# Mac Wine 
-SDK=/Users/david/.wine/drive_c/65xx_FreeSDK
-WINE=wine
-EMU=zsnes
-CC=$(WINE) $(SDK)/bin/WDC816CC.exe
-AS=$(WINE) $(SDK)/bin/WDC816AS.exe
-LD=$(WINE) $(SDK)/bin/WDCLN.exe
-
 
+PLATFORM=mac
 
+ifeq ($(PLATFORM),linux)
 
+    # Linux Wine 
+    SDK=/home/david/.wine/drive_c/65xx_FreeSDK
+    WINE=wine
+    EMU=zsnes
+    EMU_DEBUG=/home/david/Devel/arch/snes/tools/zsnes_linux_debug151/src/zsnesd -d 
+else
+    # Mac Wine 
+    SDK=/Users/david/.wine/drive_c/65xx_FreeSDK
+    WINE=wine
+    EMU=zsnes
+endif
 
+CC=$(WINE) $(SDK)/bin/WDC816CC.exe
+AS=$(WINE) $(SDK)/bin/WDC816AS.exe
+LD=$(WINE) $(SDK)/bin/WDCLN.exe
 PADBIN=$(WINE) tools/padbin.exe
 PCX2SNES=$(WINE) tools/Pcx2Snes.exe
 
@@ -33,7 +27,7 @@ PCX2SNES=$(WINE) tools/Pcx2Snes.exe
 INC=$(SDK)/include
 LIBS=$(SDK)/lib/cs
 #OBJS=StartupSnes.obj main.obj pad.obj event.obj myEvents.obj PPU.obj debug.obj ressource.obj
-OBJS=StartupSnes.obj main.obj pad.obj  PPU.obj debug.obj ressource.obj crc.obj
+OBJS=StartupSnes.obj main.obj pad.obj PPU.obj debug.obj ressource.obj crc.obj
 APP=crc.smc
 GFX=kungfu debugfont
 
@@ -51,6 +45,8 @@ upload:
 	sync
 	diskutil unmount /Volumes/SNES
 
+crc:
+	python ../../scripts/crc_xmodem.py $(APP)
 
 kungfu:
 		$(PCX2SNES) ressource/kungfu -n -c16 -screen

+ 0 - 183
snes/crc/TMPA264.TMP

@@ -1,183 +0,0 @@
-;:ts=8
-R0	equ	1
-R1	equ	5
-R2	equ	9
-R3	equ	13
-	code
-	xdef	__initInternalRegisters
-	func
-__initInternalRegisters:
-	longa	on
-	longi	on
-	tsc
-	sec
-	sbc	#L2
-	tcs
-	phd
-	tcd
-	stz	|__characterLocation
-	stz	|__characterLocation+2
-	stz	|__characterLocation+4
-	stz	|__characterLocation+6
-	jsr	__initDebugMap
-L4:
-	pld
-	tsc
-	clc
-	adc	#L2
-	tcs
-	rts
-L2	equ	0
-L3	equ	1
-	ends
-	efunc
-	code
-	xdef	__preInit
-	func
-__preInit:
-	longa	on
-	longi	on
-	tsc
-	sec
-	sbc	#L5
-	tcs
-	phd
-	tcd
-L7:
-	pld
-	tsc
-	clc
-	adc	#L5
-	tcs
-	rts
-L5	equ	0
-L6	equ	1
-	ends
-	efunc
-	code
-	xdef	__main
-	func
-__main:
-	longa	on
-	longi	on
-	tsc
-	sec
-	sbc	#L8
-	tcs
-	phd
-	tcd
-	jsr	__initInternalRegisters
-	pea	#<$0
-	pea	#<$0
-	pea	#<$1000
-	jsr	__setTileMapLocation
-	pea	#<$0
-	pea	#<$2000
-	jsr	__setCharacterLocation
-	pea	#<$100
-	pea	#<$0
-	lda	#<__title_pal
-	pha
-	jsr	__CGRAMLoad
-	sep	#$20
-	longa	off
-	lda	#$1
-	sta	|8453
-	rep	#$20
-	longa	on
-	sep	#$20
-	longa	off
-	lda	#$1
-	sta	|8492
-	rep	#$20
-	longa	on
-	sep	#$20
-	longa	off
-	lda	#$0
-	sta	|8493
-	rep	#$20
-	longa	on
-	sep	#$20
-	longa	off
-	lda	#$f
-	sta	|8448
-	rep	#$20
-	longa	on
-	stz	|__currentScrollEvent
-	stz	|__scrollValue
-	jsr	__debug
-L10001:
-	brl	L10001
-L8	equ	0
-L9	equ	1
-	ends
-	efunc
-	code
-	xdef	__IRQHandler
-	func
-__IRQHandler:
-	longa	on
-	longi	on
-	tsc
-	sec
-	sbc	#L10
-	tcs
-	phd
-	tcd
-L12:
-	pld
-	tsc
-	clc
-	adc	#L10
-	tcs
-	rts
-L10	equ	0
-L11	equ	1
-	ends
-	efunc
-	code
-	xdef	__NMIHandler
-	func
-__NMIHandler:
-	longa	on
-	longi	on
-	tsc
-	sec
-	sbc	#L13
-	tcs
-	phd
-	tcd
-L15:
-	pld
-	tsc
-	clc
-	adc	#L13
-	tcs
-	rts
-L13	equ	0
-L14	equ	1
-	ends
-	efunc
-	xref	__debug
-	xref	__initDebugMap
-	xref	__CGRAMLoad
-	xref	__setCharacterLocation
-	xref	__setTileMapLocation
-	udata
-	xdef	__scrollValue
-__scrollValue
-	ds	2
-	ends
-	udata
-	xdef	__currentScrollEvent
-__currentScrollEvent
-	ds	2
-	ends
-	udata
-	xdef	__pad1
-__pad1
-	ds	2
-	ends
-	xref	__characterLocation
-	xref	__title_pal
-	end

+ 0 - 0
snes/crc/TMPA701.TMP


+ 0 - 183
snes/crc/TMPA737.TMP

@@ -1,183 +0,0 @@
-;:ts=8
-R0	equ	1
-R1	equ	5
-R2	equ	9
-R3	equ	13
-	code
-	xdef	__initInternalRegisters
-	func
-__initInternalRegisters:
-	longa	on
-	longi	on
-	tsc
-	sec
-	sbc	#L2
-	tcs
-	phd
-	tcd
-	stz	|__characterLocation
-	stz	|__characterLocation+2
-	stz	|__characterLocation+4
-	stz	|__characterLocation+6
-	jsr	__initDebugMap
-L4:
-	pld
-	tsc
-	clc
-	adc	#L2
-	tcs
-	rts
-L2	equ	0
-L3	equ	1
-	ends
-	efunc
-	code
-	xdef	__preInit
-	func
-__preInit:
-	longa	on
-	longi	on
-	tsc
-	sec
-	sbc	#L5
-	tcs
-	phd
-	tcd
-L7:
-	pld
-	tsc
-	clc
-	adc	#L5
-	tcs
-	rts
-L5	equ	0
-L6	equ	1
-	ends
-	efunc
-	code
-	xdef	__main
-	func
-__main:
-	longa	on
-	longi	on
-	tsc
-	sec
-	sbc	#L8
-	tcs
-	phd
-	tcd
-	jsr	__initInternalRegisters
-	pea	#<$0
-	pea	#<$0
-	pea	#<$1000
-	jsr	__setTileMapLocation
-	pea	#<$0
-	pea	#<$2000
-	jsr	__setCharacterLocation
-	pea	#<$100
-	pea	#<$0
-	lda	#<__title_pal
-	pha
-	jsr	__CGRAMLoad
-	sep	#$20
-	longa	off
-	lda	#$1
-	sta	|8453
-	rep	#$20
-	longa	on
-	sep	#$20
-	longa	off
-	lda	#$1
-	sta	|8492
-	rep	#$20
-	longa	on
-	sep	#$20
-	longa	off
-	lda	#$0
-	sta	|8493
-	rep	#$20
-	longa	on
-	sep	#$20
-	longa	off
-	lda	#$f
-	sta	|8448
-	rep	#$20
-	longa	on
-	stz	|__currentScrollEvent
-	stz	|__scrollValue
-	jsr	__debug
-L10001:
-	brl	L10001
-L8	equ	0
-L9	equ	1
-	ends
-	efunc
-	code
-	xdef	__IRQHandler
-	func
-__IRQHandler:
-	longa	on
-	longi	on
-	tsc
-	sec
-	sbc	#L10
-	tcs
-	phd
-	tcd
-L12:
-	pld
-	tsc
-	clc
-	adc	#L10
-	tcs
-	rts
-L10	equ	0
-L11	equ	1
-	ends
-	efunc
-	code
-	xdef	__NMIHandler
-	func
-__NMIHandler:
-	longa	on
-	longi	on
-	tsc
-	sec
-	sbc	#L13
-	tcs
-	phd
-	tcd
-L15:
-	pld
-	tsc
-	clc
-	adc	#L13
-	tcs
-	rts
-L13	equ	0
-L14	equ	1
-	ends
-	efunc
-	xref	__debug
-	xref	__initDebugMap
-	xref	__CGRAMLoad
-	xref	__setCharacterLocation
-	xref	__setTileMapLocation
-	udata
-	xdef	__scrollValue
-__scrollValue
-	ds	2
-	ends
-	udata
-	xdef	__currentScrollEvent
-__currentScrollEvent
-	ds	2
-	ends
-	udata
-	xdef	__pad1
-__pad1
-	ds	2
-	ends
-	xref	__characterLocation
-	xref	__title_pal
-	end

+ 11 - 47
snes/crc/debug.c

@@ -5,7 +5,6 @@
 #include "crc.h"
 
 word debugMap[0x400];
-
 void initDebugMap(void) {
 	word i;
 	for(i=0; i<0x400; i++) {
@@ -13,7 +12,6 @@ void initDebugMap(void) {
 	}
 }
 
-
 void int2hex(word i, char *buf)
 {
     word a;
@@ -27,54 +25,20 @@ void int2hex(word i, char *buf)
     buf[a] = 0;
 }
 
-void debug(void) {
-	word i,j;
-	word crc01;
-	word crc02;
-	padStatus pad1;
-	char line_header[32] = "BANK CRC  ADDR 123456789ABCDEF";
-    char line[32] = "                             ";	
-	char test_buffer[] = "da";
-	void *pointer;
-	
-	VRAMLoad((word) debugFont_pic, 0x5000, 2048);
-	CGRAMLoad((word) debugFont_pal, (byte) 0x00, (word) 16);
-	VRAMLoad((word) debugMap, 0x4000, 0x0800);
-	setTileMapLocation(0x4000, (byte) 0x00, (byte) 0);
-	setCharacterLocation(0x5000, (byte) 0);
-	*(byte*) 0x2100 = 0x0f; // enable background
-
-    j=0;
+void writeln(char *buffer,word y){
+    char i;
     waitForVBlank();
 	for(i=0; i<32; i++) {
 		waitForVBlank();
-		VRAMByteWrite((byte) (line_header[i]-32), (word) (0x4000+i+(j*0x20)));
+		VRAMByteWrite((byte) (buffer[i]-32), (word) (0x4000+i+(y*0x20)));
 	}
-
-	while(1){
-		pointer = (void*)0x8000;
-		crc02 = crc_update(test_buffer,2);
-		//crc01 = crc_update(pointer,255);
-		for(j=0; j<8; j++) {
-    		crc01 = crc_update(pointer,0x8000);
-			int2hex(j,&line[0]);
-			int2hex(crc01,&line[5]);
-			int2hex((word)pointer,&line[10]);
-            waitForVBlank();
-			for(i=0; i<32; i++) {
-				waitForVBlank();
-				VRAMByteWrite((byte) (line[i]-32), (word) (0x4000+i+((j+1)*0x20)));
-			}
-            //pointer+=0x010000;
-		}
-		while(!pad1.start) {
-			waitForVBlank();
-			pad1 = readPad((byte) 0);
-		}
-	}	
-	
 }
 
-#pragma section CODE=BANK3,offset $3:0000 
-char far dummy[128];
-
+void enableDebugScreen(void){
+	VRAMLoad((word) debugFont_pic, 0x5000, 2048);
+	CGRAMLoad((word) debugFont_pal, (byte) 0x00, (word) 16);
+	VRAMLoad((word) debugMap, 0x4000, 0x0800);
+	setTileMapLocation(0x4000, (byte) 0x00, (byte) 0);
+	setCharacterLocation(0x5000, (byte) 0);
+	*(byte*) 0x2100 = 0x0f; // enable background
+}

+ 4 - 1
snes/crc/debug.h

@@ -1,2 +1,5 @@
 void initDebugMap(void);
-void debug(void);
+void debug(void);
+void int2hex(word i, char *buf);
+void writeln(char* line,word y);
+void enableDebugScreen(void);

+ 30 - 28
snes/crc/main.c

@@ -5,20 +5,18 @@
 #include "ressource.h";
 #include "PPU.h"
 #include "debug.h"
+#include "crc.h"
+
 
 #include <stdlib.h>
 
 padStatus pad1;
 
-event *currentScrollEvent;
-word scrollValue;
-
 void initInternalRegisters(void) {
 	characterLocation[0] = 0x0000;
 	characterLocation[1] = 0x0000;
 	characterLocation[2] = 0x0000;
 	characterLocation[3] = 0x0000;
-
 	initDebugMap();
 }
 
@@ -28,38 +26,42 @@ void preInit(void) {
 }
 
 void main(void) {
+	word i,j;
+	word crc01;
+	word crc02;
+	padStatus pad1;
+	char line_header[32] = "BANK CRC 123456789ABCDEF";
+    char line[32] = "                             ";	
+	char test_buffer[] = "da";
+	char *pointer;
 
 	initInternalRegisters();
 
-	// Screen map data @ VRAM location $1000
-	setTileMapLocation(0x1000, (byte) 0x00, (byte) 0);
-	//*(byte*) 0x2107 = 0x10;
-	
-	// Plane 0 Tile graphics @ $2000
-	setCharacterLocation(0x2000, (byte) 0);
-	//*(byte*) 0x210b = 0x02;
-
-	//VRAMLoad((word) title_pic, 0x2000, 0x1BE0);
-	//VRAMLoad((word) title_map, 0x1000, 0x0800);
-	CGRAMLoad((word) title_pal, (byte) 0x00, (word) 256);
-	
-	// TODO sitwch to mode 0 for trying
 	*(byte*) 0x2105 = 0x01;	// MODE 1 value
-
 	*(byte*) 0x212c = 0x01; // Plane 0 (bit one) enable register
 	*(byte*) 0x212d = 0x00;	// All subPlane disable
-
 	*(byte*) 0x2100 = 0x0f; // enable background
 
-	currentScrollEvent = NULL;
-	scrollValue = 0;
-
-	//initEvents();
-	//enablePad();
-	debug();
-	//addEvent(&NMIReadPad, 1);
-	
-	// Loop forever
+    enableDebugScreen();
+
+    writeln(line_header,0);
+
+	while(1){
+		pointer = (void*)0x8000;
+		crc02 = crc_update(test_buffer,2);
+		//crc01 = crc_update(pointer,255);
+		for(j=0; j<8; j++) {
+    		crc01 = crc_update(pointer,0x8000);
+			int2hex(j,&line[0]);
+			int2hex(crc01,&line[5]);
+			//int2hex((word)pointer,&line[10]);
+            writeln(line,j+1);
+		}
+		while(!pad1.start) {
+			waitForVBlank();
+			pad1 = readPad((byte) 0);
+		}
+	}	
 	while(1);
 }
 

+ 0 - 3
snes/crc/wine.sh

@@ -1,3 +0,0 @@
-#!/bin/sh
-wine $*
-exit 0

+ 110 - 171
snesram.tmproj

@@ -3,7 +3,7 @@
 <plist version="1.0">
 <dict>
 	<key>currentDocument</key>
-	<string>poc/avr_sdcard/main.c</string>
+	<string>poc/avr_sdcard/mmc.c</string>
 	<key>documents</key>
 	<array>
 		<dict>
@@ -21,70 +21,14 @@
 	<integer>200</integer>
 	<key>metaData</key>
 	<dict>
-		<key>bsnes/cpu/cpu.cpp</key>
-		<dict>
-			<key>caret</key>
-			<dict>
-				<key>column</key>
-				<integer>0</integer>
-				<key>line</key>
-				<integer>0</integer>
-			</dict>
-			<key>firstVisibleColumn</key>
-			<integer>0</integer>
-			<key>firstVisibleLine</key>
-			<integer>0</integer>
-		</dict>
-		<key>bsnes/cpu/cpu.hpp</key>
-		<dict>
-			<key>caret</key>
-			<dict>
-				<key>column</key>
-				<integer>0</integer>
-				<key>line</key>
-				<integer>0</integer>
-			</dict>
-			<key>firstVisibleColumn</key>
-			<integer>0</integer>
-			<key>firstVisibleLine</key>
-			<integer>23</integer>
-		</dict>
-		<key>bsnes/cpu/scpu/scpu.cpp</key>
-		<dict>
-			<key>caret</key>
-			<dict>
-				<key>column</key>
-				<integer>0</integer>
-				<key>line</key>
-				<integer>0</integer>
-			</dict>
-			<key>firstVisibleColumn</key>
-			<integer>0</integer>
-			<key>firstVisibleLine</key>
-			<integer>10</integer>
-		</dict>
-		<key>bsnes/cpu/scpu/timing/timing.cpp</key>
-		<dict>
-			<key>caret</key>
-			<dict>
-				<key>column</key>
-				<integer>0</integer>
-				<key>line</key>
-				<integer>0</integer>
-			</dict>
-			<key>firstVisibleColumn</key>
-			<integer>0</integer>
-			<key>firstVisibleLine</key>
-			<integer>0</integer>
-		</dict>
 		<key>poc/avr_sdcard/fat.c</key>
 		<dict>
 			<key>caret</key>
 			<dict>
 				<key>column</key>
-				<integer>3</integer>
+				<integer>9</integer>
 				<key>line</key>
-				<integer>281</integer>
+				<integer>307</integer>
 			</dict>
 			<key>firstVisibleColumn</key>
 			<integer>0</integer>
@@ -110,9 +54,9 @@
 			<key>caret</key>
 			<dict>
 				<key>column</key>
-				<integer>9</integer>
+				<integer>0</integer>
 				<key>line</key>
-				<integer>62</integer>
+				<integer>0</integer>
 			</dict>
 			<key>firstVisibleColumn</key>
 			<integer>0</integer>
@@ -124,14 +68,14 @@
 			<key>caret</key>
 			<dict>
 				<key>column</key>
-				<integer>0</integer>
+				<integer>23</integer>
 				<key>line</key>
-				<integer>0</integer>
+				<integer>38</integer>
 			</dict>
 			<key>firstVisibleColumn</key>
 			<integer>0</integer>
 			<key>firstVisibleLine</key>
-			<integer>0</integer>
+			<integer>4</integer>
 		</dict>
 		<key>poc/avr_sdcard/mmc.h</key>
 		<dict>
@@ -166,9 +110,9 @@
 			<key>caret</key>
 			<dict>
 				<key>column</key>
-				<integer>7</integer>
+				<integer>4</integer>
 				<key>line</key>
-				<integer>24</integer>
+				<integer>23</integer>
 			</dict>
 			<key>firstVisibleColumn</key>
 			<integer>0</integer>
@@ -189,65 +133,35 @@
 			<key>firstVisibleLine</key>
 			<integer>0</integer>
 		</dict>
-		<key>scripts/rom.py</key>
+		<key>snes/banktest/LoadGraphics.asm</key>
 		<dict>
 			<key>caret</key>
 			<dict>
 				<key>column</key>
-				<integer>25</integer>
+				<integer>0</integer>
 				<key>line</key>
-				<integer>144</integer>
+				<integer>0</integer>
 			</dict>
 			<key>firstVisibleColumn</key>
 			<integer>0</integer>
 			<key>firstVisibleLine</key>
-			<integer>140</integer>
-		</dict>
-		<key>snes/ascii/header.inc</key>
-		<dict>
-			<key>caret</key>
-			<dict>
-				<key>column</key>
-				<integer>13</integer>
-				<key>line</key>
-				<integer>55</integer>
-			</dict>
-			<key>columnSelection</key>
-			<false/>
-			<key>firstVisibleColumn</key>
 			<integer>0</integer>
-			<key>firstVisibleLine</key>
-			<integer>14</integer>
-			<key>selectFrom</key>
-			<dict>
-				<key>column</key>
-				<integer>12</integer>
-				<key>line</key>
-				<integer>55</integer>
-			</dict>
-			<key>selectTo</key>
-			<dict>
-				<key>column</key>
-				<integer>13</integer>
-				<key>line</key>
-				<integer>55</integer>
-			</dict>
 		</dict>
-		<key>snes/ascii/main.asm</key>
+		<key>snes/banktest/header.inc</key>
 		<dict>
 			<key>caret</key>
 			<dict>
 				<key>column</key>
 				<integer>0</integer>
 				<key>line</key>
-				<integer>8</integer>
+				<integer>0</integer>
 			</dict>
 			<key>firstVisibleColumn</key>
 			<integer>0</integer>
 			<key>firstVisibleLine</key>
 			<integer>0</integer>
 		</dict>
-		<key>snes/banktest/LoadGraphics.asm</key>
+		<key>snes/banktest/init.inc</key>
 		<dict>
 			<key>caret</key>
 			<dict>
@@ -259,23 +173,23 @@
 			<key>firstVisibleColumn</key>
 			<integer>0</integer>
 			<key>firstVisibleLine</key>
-			<integer>0</integer>
+			<integer>211</integer>
 		</dict>
-		<key>snes/banktest/header.inc</key>
+		<key>snes/banktest/vram2.asm</key>
 		<dict>
 			<key>caret</key>
 			<dict>
 				<key>column</key>
 				<integer>0</integer>
 				<key>line</key>
-				<integer>0</integer>
+				<integer>91</integer>
 			</dict>
 			<key>firstVisibleColumn</key>
 			<integer>0</integer>
 			<key>firstVisibleLine</key>
-			<integer>0</integer>
+			<integer>43</integer>
 		</dict>
-		<key>snes/banktest/init.inc</key>
+		<key>snes/crc/PPU.c</key>
 		<dict>
 			<key>caret</key>
 			<dict>
@@ -287,53 +201,37 @@
 			<key>firstVisibleColumn</key>
 			<integer>0</integer>
 			<key>firstVisibleLine</key>
-			<integer>211</integer>
+			<integer>0</integer>
 		</dict>
-		<key>snes/banktest/vram2.asm</key>
+		<key>snes/crc/PPU.h</key>
 		<dict>
 			<key>caret</key>
 			<dict>
 				<key>column</key>
 				<integer>0</integer>
 				<key>line</key>
-				<integer>91</integer>
+				<integer>0</integer>
 			</dict>
 			<key>firstVisibleColumn</key>
 			<integer>0</integer>
 			<key>firstVisibleLine</key>
-			<integer>43</integer>
+			<integer>0</integer>
 		</dict>
-		<key>snes/simpletest/sprite.asm</key>
+		<key>snes/crc/crc.c</key>
 		<dict>
 			<key>caret</key>
 			<dict>
 				<key>column</key>
-				<integer>0</integer>
+				<integer>22</integer>
 				<key>line</key>
-				<integer>166</integer>
+				<integer>10</integer>
 			</dict>
-			<key>columnSelection</key>
-			<false/>
 			<key>firstVisibleColumn</key>
 			<integer>0</integer>
 			<key>firstVisibleLine</key>
-			<integer>158</integer>
-			<key>selectFrom</key>
-			<dict>
-				<key>column</key>
-				<integer>0</integer>
-				<key>line</key>
-				<integer>162</integer>
-			</dict>
-			<key>selectTo</key>
-			<dict>
-				<key>column</key>
-				<integer>0</integer>
-				<key>line</key>
-				<integer>166</integer>
-			</dict>
+			<integer>0</integer>
 		</dict>
-		<key>zsnes/docs/README.LINUX</key>
+		<key>snes/crc/crc.h</key>
 		<dict>
 			<key>caret</key>
 			<dict>
@@ -347,7 +245,7 @@
 			<key>firstVisibleLine</key>
 			<integer>0</integer>
 		</dict>
-		<key>zsnes/docs/README.SVN</key>
+		<key>snes/crc/data.h</key>
 		<dict>
 			<key>caret</key>
 			<dict>
@@ -361,21 +259,21 @@
 			<key>firstVisibleLine</key>
 			<integer>0</integer>
 		</dict>
-		<key>zsnes/docs/authors.txt</key>
+		<key>snes/crc/debug.c</key>
 		<dict>
 			<key>caret</key>
 			<dict>
 				<key>column</key>
-				<integer>0</integer>
+				<integer>2</integer>
 				<key>line</key>
-				<integer>0</integer>
+				<integer>48</integer>
 			</dict>
 			<key>firstVisibleColumn</key>
 			<integer>0</integer>
 			<key>firstVisibleLine</key>
-			<integer>0</integer>
+			<integer>22</integer>
 		</dict>
-		<key>zsnes/docs/install.txt</key>
+		<key>snes/crc/debug.h</key>
 		<dict>
 			<key>caret</key>
 			<dict>
@@ -387,51 +285,51 @@
 			<key>firstVisibleColumn</key>
 			<integer>0</integer>
 			<key>firstVisibleLine</key>
-			<integer>132</integer>
+			<integer>0</integer>
 		</dict>
-		<key>zsnes/docs/license.txt</key>
+		<key>snes/crc/event.c</key>
 		<dict>
 			<key>caret</key>
 			<dict>
 				<key>column</key>
 				<integer>0</integer>
 				<key>line</key>
-				<integer>0</integer>
+				<integer>24</integer>
 			</dict>
 			<key>firstVisibleColumn</key>
 			<integer>0</integer>
 			<key>firstVisibleLine</key>
-			<integer>0</integer>
+			<integer>2</integer>
 		</dict>
-		<key>zsnes/docs/opengl.txt</key>
+		<key>snes/crc/main.c</key>
 		<dict>
 			<key>caret</key>
 			<dict>
 				<key>column</key>
-				<integer>0</integer>
+				<integer>17</integer>
 				<key>line</key>
-				<integer>0</integer>
+				<integer>54</integer>
 			</dict>
 			<key>firstVisibleColumn</key>
 			<integer>0</integer>
 			<key>firstVisibleLine</key>
-			<integer>0</integer>
+			<integer>20</integer>
 		</dict>
-		<key>zsnes/src/chips/dsp4emu.c</key>
+		<key>snes/crc/pad.c</key>
 		<dict>
 			<key>caret</key>
 			<dict>
 				<key>column</key>
-				<integer>0</integer>
+				<integer>35</integer>
 				<key>line</key>
-				<integer>0</integer>
+				<integer>8</integer>
 			</dict>
 			<key>firstVisibleColumn</key>
 			<integer>0</integer>
 			<key>firstVisibleLine</key>
-			<integer>113</integer>
+			<integer>0</integer>
 		</dict>
-		<key>zsnes/src/chips/seta10.c</key>
+		<key>snes/crc/rom.map</key>
 		<dict>
 			<key>caret</key>
 			<dict>
@@ -443,31 +341,26 @@
 			<key>firstVisibleColumn</key>
 			<integer>0</integer>
 			<key>firstVisibleLine</key>
-			<integer>453</integer>
+			<integer>11</integer>
 		</dict>
 	</dict>
 	<key>openDocuments</key>
 	<array>
-		<string>snes/simpletest/sprite.asm</string>
-		<string>snes/ascii/main.asm</string>
-		<string>snes/ascii/header.inc</string>
-		<string>scripts/rom.py</string>
-		<string>poc/avr_sdcard/main.c</string>
-		<string>scripts/crc_xmodem.py</string>
-		<string>bsnes/cpu/cpu.cpp</string>
-		<string>bsnes/cpu/cpu.hpp</string>
-		<string>bsnes/cpu/scpu/scpu.cpp</string>
-		<string>bsnes/cpu/scpu/timing/timing.cpp</string>
+		<string>snes/crc/debug.h</string>
+		<string>snes/crc/debug.c</string>
+		<string>snes/crc/rom.map</string>
 		<string>scripts/b.py</string>
-		<string>snes/banktest/vram2.asm</string>
-		<string>poc/avr_sdcard/mmc.h</string>
-		<string>snes/banktest/header.inc</string>
-		<string>snes/banktest/init.inc</string>
-		<string>snes/banktest/LoadGraphics.asm</string>
-		<string>poc/avr_sdcard/fat.h</string>
 		<string>poc/avr_sdcard/fat.c</string>
-		<string>poc/avr_sdcard/uart.c</string>
+		<string>snes/crc/PPU.h</string>
+		<string>snes/crc/PPU.c</string>
+		<string>snes/crc/data.h</string>
+		<string>snes/crc/crc.h</string>
+		<string>snes/crc/crc.c</string>
+		<string>snes/crc/event.c</string>
+		<string>snes/crc/main.c</string>
 		<string>poc/avr_sdcard/mmc.c</string>
+		<string>poc/avr_sdcard/main.c</string>
+		<string>snes/crc/pad.c</string>
 	</array>
 	<key>showFileHierarchyDrawer</key>
 	<false/>
@@ -480,10 +373,56 @@
 			<key>isExpanded</key>
 			<true/>
 			<key>subItems</key>
-			<dict/>
+			<dict>
+				<key>poc</key>
+				<dict>
+					<key>isExpanded</key>
+					<true/>
+					<key>subItems</key>
+					<dict>
+						<key>avr_sdcard</key>
+						<dict>
+							<key>isExpanded</key>
+							<true/>
+							<key>subItems</key>
+							<dict/>
+						</dict>
+					</dict>
+				</dict>
+				<key>scripts</key>
+				<dict>
+					<key>isExpanded</key>
+					<true/>
+					<key>subItems</key>
+					<dict/>
+				</dict>
+				<key>snes</key>
+				<dict>
+					<key>isExpanded</key>
+					<true/>
+					<key>subItems</key>
+					<dict>
+						<key>crc</key>
+						<dict>
+							<key>isExpanded</key>
+							<true/>
+							<key>subItems</key>
+							<dict>
+								<key>tools</key>
+								<dict>
+									<key>isExpanded</key>
+									<true/>
+									<key>subItems</key>
+									<dict/>
+								</dict>
+							</dict>
+						</dict>
+					</dict>
+				</dict>
+			</dict>
 		</dict>
 	</dict>
 	<key>windowFrame</key>
-	<string>{{2, 60}, {738, 818}}</string>
+	<string>{{4, 60}, {738, 818}}</string>
 </dict>
 </plist>