get hi/lorom sniff working properly

This commit is contained in:
David Voswinkel 2009-07-12 11:57:01 +02:00
parent 0f9ebb146e
commit 5a2bba0d33
3 changed files with 285 additions and 9 deletions

View File

@ -2,6 +2,8 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>currentDocument</key>
<string>avr/usbload/main.c</string>
<key>documents</key> <key>documents</key>
<array> <array>
<dict> <dict>
@ -19,6 +21,194 @@
<integer>271</integer> <integer>271</integer>
<key>metaData</key> <key>metaData</key>
<dict> <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> <key>poc/avr_sdcard/fat.h</key>
<dict> <dict>
<key>caret</key> <key>caret</key>
@ -75,7 +265,50 @@
<key>firstVisibleLine</key> <key>firstVisibleLine</key>
<integer>211</integer> <integer>211</integer>
</dict> </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> </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> <key>showFileHierarchyDrawer</key>
<false/> <false/>
<key>showFileHierarchyPanel</key> <key>showFileHierarchyPanel</key>
@ -123,7 +356,39 @@
<key>isExpanded</key> <key>isExpanded</key>
<true/> <true/>
<key>subItems</key> <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> </dict>
</dict> </dict>

View File

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

View File

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