Browse Source

get hi/lorom sniff working properly

David Voswinkel 15 years ago
parent
commit
5a2bba0d33
3 changed files with 285 additions and 9 deletions
  1. 266 1
      snesram.tmproj
  2. 18 8
      tools/ucon64/2.0/src/backup/snesram.c
  3. 1 0
      tools/ucon64/2.0/src/console/snes.c

+ 266 - 1
snesram.tmproj

@@ -2,6 +2,8 @@
 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
 <dict>
+	<key>currentDocument</key>
+	<string>avr/usbload/main.c</string>
 	<key>documents</key>
 	<array>
 		<dict>
@@ -19,6 +21,194 @@
 	<integer>271</integer>
 	<key>metaData</key>
 	<dict>
+		<key>avr/usbload/commandline/snesuploader.c</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>0</integer>
+				<key>line</key>
+				<integer>200</integer>
+			</dict>
+			<key>columnSelection</key>
+			<false/>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>172</integer>
+			<key>selectFrom</key>
+			<dict>
+				<key>column</key>
+				<integer>0</integer>
+				<key>line</key>
+				<integer>195</integer>
+			</dict>
+			<key>selectTo</key>
+			<dict>
+				<key>column</key>
+				<integer>0</integer>
+				<key>line</key>
+				<integer>200</integer>
+			</dict>
+		</dict>
+		<key>avr/usbload/config.h</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>40</integer>
+				<key>line</key>
+				<integer>18</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>0</integer>
+		</dict>
+		<key>avr/usbload/dump.c</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>1</integer>
+				<key>line</key>
+				<integer>50</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>0</integer>
+		</dict>
+		<key>avr/usbload/dump.h</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>0</integer>
+				<key>line</key>
+				<integer>2</integer>
+			</dict>
+			<key>columnSelection</key>
+			<false/>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>0</integer>
+			<key>selectFrom</key>
+			<dict>
+				<key>column</key>
+				<integer>0</integer>
+				<key>line</key>
+				<integer>0</integer>
+			</dict>
+			<key>selectTo</key>
+			<dict>
+				<key>column</key>
+				<integer>0</integer>
+				<key>line</key>
+				<integer>2</integer>
+			</dict>
+		</dict>
+		<key>avr/usbload/fifo.h</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>avr/usbload/main.c</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>22</integer>
+				<key>line</key>
+				<integer>25</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>29</integer>
+		</dict>
+		<key>avr/usbload/requests.h</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>0</integer>
+				<key>line</key>
+				<integer>26</integer>
+			</dict>
+			<key>columnSelection</key>
+			<false/>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>0</integer>
+			<key>selectFrom</key>
+			<dict>
+				<key>column</key>
+				<integer>34</integer>
+				<key>line</key>
+				<integer>33</integer>
+			</dict>
+			<key>selectTo</key>
+			<dict>
+				<key>column</key>
+				<integer>0</integer>
+				<key>line</key>
+				<integer>26</integer>
+			</dict>
+		</dict>
+		<key>avr/usbload/sram.c</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>avr/usbload/watchdog.c</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>20</integer>
+				<key>line</key>
+				<integer>0</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>0</integer>
+		</dict>
+		<key>avr/usbload/watchdog.h</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>0</integer>
+				<key>line</key>
+				<integer>19</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>0</integer>
+		</dict>
 		<key>poc/avr_sdcard/fat.h</key>
 		<dict>
 			<key>caret</key>
@@ -75,7 +265,50 @@
 			<key>firstVisibleLine</key>
 			<integer>211</integer>
 		</dict>
+		<key>tools/ucon64/2.0/src/backup/snesram.c</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>53</integer>
+				<key>line</key>
+				<integer>204</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>164</integer>
+		</dict>
+		<key>tools/ucon64/2.0/src/backup/snesram.h</key>
+		<dict>
+			<key>caret</key>
+			<dict>
+				<key>column</key>
+				<integer>0</integer>
+				<key>line</key>
+				<integer>32</integer>
+			</dict>
+			<key>firstVisibleColumn</key>
+			<integer>0</integer>
+			<key>firstVisibleLine</key>
+			<integer>19</integer>
+		</dict>
 	</dict>
+	<key>openDocuments</key>
+	<array>
+		<string>avr/usbload/dump.c</string>
+		<string>avr/usbload/sram.c</string>
+		<string>avr/usbload/main.c</string>
+		<string>avr/usbload/watchdog.h</string>
+		<string>avr/usbload/dump.h</string>
+		<string>avr/usbload/watchdog.c</string>
+		<string>avr/usbload/config.h</string>
+		<string>avr/usbload/requests.h</string>
+		<string>tools/ucon64/2.0/src/backup/snesram.h</string>
+		<string>avr/usbload/commandline/snesuploader.c</string>
+		<string>tools/ucon64/2.0/src/backup/snesram.c</string>
+		<string>avr/usbload/fifo.h</string>
+	</array>
 	<key>showFileHierarchyDrawer</key>
 	<false/>
 	<key>showFileHierarchyPanel</key>
@@ -123,7 +356,39 @@
 					<key>isExpanded</key>
 					<true/>
 					<key>subItems</key>
-					<dict/>
+					<dict>
+						<key>ucon64</key>
+						<dict>
+							<key>isExpanded</key>
+							<true/>
+							<key>subItems</key>
+							<dict>
+								<key>2.0</key>
+								<dict>
+									<key>isExpanded</key>
+									<true/>
+									<key>subItems</key>
+									<dict>
+										<key>src</key>
+										<dict>
+											<key>isExpanded</key>
+											<true/>
+											<key>subItems</key>
+											<dict>
+												<key>backup</key>
+												<dict>
+													<key>isExpanded</key>
+													<true/>
+													<key>subItems</key>
+													<dict/>
+												</dict>
+											</dict>
+										</dict>
+									</dict>
+								</dict>
+							</dict>
+						</dict>
+					</dict>
 				</dict>
 			</dict>
 		</dict>

+ 18 - 8
tools/ucon64/2.0/src/backup/snesram.c

@@ -33,13 +33,18 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 #endif
 #include "misc/getopt2.h"                       // st_getopt2_t
 #include "misc/file.h"
+#include "misc/opendevice.h"
+
+
 #include "ucon64.h"
 #include "ucon64_misc.h"
 #include "ffe.h"
 #include "smc.h"
 #include "snesram.h"
 
-#include "../misc/opendevice.h"
+#include "console/snes.h"
+
+#define SNES_HEADER_LEN (sizeof (st_snes_header_t))
 
 const st_getopt2_t snesram_usage[] =
   {
@@ -85,8 +90,9 @@ snesram_write_rom (const char *filename)
   uint8_t bank_cnt = 0;
   uint16_t bank_shift;
   uint32_t bank_size;
-  uint32_t hirom;
+  uint32_t hirom = 0;
   uint8_t byte = 0;
+  st_rominfo_t rominfo;
 
   
   usb_init();
@@ -111,15 +117,19 @@ snesram_write_rom (const char *filename)
       fprintf (stderr, ucon64_msg[FILE_BUFFER_ERROR], READ_BUFFER_SIZE);
       exit (1);
     }
+    
+    snes_init (&rominfo);
+    printf(rominfo.misc);
+    printf("\n");
 
-    if (UCON64_ISSET (ucon64.snes_hirom)) { 
+    if (UCON64_ISSET (ucon64.snes_hirom))
         hirom = ucon64.snes_hirom ? 1 : 0;
-    } else {
-        fseek (file, 0x00ffd5, SEEK_SET);
-        fread(&byte, 1, 1, file);
-        hirom = ((byte & 1 && byte != 0x23) || byte == 0x3a) ? 1 : 0; // & 1 => 0x21, 0x31, 0x35
+    else {
+        hirom = snes_get_snes_hirom ();
     }
-    printf("Hirom: %i\n",hirom);
+
+
+
     if (hirom) {
         bank_shift = SNES_HIROM_SHIFT;
         bank_size = 1 << SNES_HIROM_SHIFT;

+ 1 - 0
tools/ucon64/2.0/src/console/snes.c

@@ -3261,6 +3261,7 @@ snes_init (st_rominfo_t *rominfo)
       snes_hirom = 0;
       if (UCON64_ISSET (ucon64.snes_hirom))     // see snes_set_hirom()
         snes_hirom = ucon64.snes_hirom;
+      //ucon64.snes_hirom = snes_hirom;
       snes_hirom_ok = 1;
 
       rominfo->interleaved = 0;