ST second cart now supported (via command line).
This commit is contained in:
@@ -928,6 +928,29 @@ void loadZipFile(char *filename)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void load_file_fs(char *path)
|
||||||
|
{
|
||||||
|
unsigned int pathlen = strlen(path);
|
||||||
|
const char *ext = path+pathlen-4;
|
||||||
|
if (pathlen >= 5 && !strcasecmp(ext, ".jma"))
|
||||||
|
{
|
||||||
|
load_jma_file(path);
|
||||||
|
}
|
||||||
|
else if (pathlen >= 5 && !strcasecmp(ext, ".zip"))
|
||||||
|
{
|
||||||
|
loadZipFile(path);
|
||||||
|
}
|
||||||
|
else if (pathlen >= 4 && !strcasecmp(ext+1, ".gz"))
|
||||||
|
{
|
||||||
|
loadGZipFile(path);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
loadFile(path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
char *STCart2 = 0;
|
||||||
void SplitSetup(char *basepath, char *basefile, unsigned int MirrorSystem)
|
void SplitSetup(char *basepath, char *basefile, unsigned int MirrorSystem)
|
||||||
{
|
{
|
||||||
unsigned char *ROM = (unsigned char *)romdata;
|
unsigned char *ROM = (unsigned char *)romdata;
|
||||||
@@ -936,30 +959,22 @@ void SplitSetup(char *basepath, char *basefile, unsigned int MirrorSystem)
|
|||||||
if (maxromspace < addOnStart+addOnSize) { return; }
|
if (maxromspace < addOnStart+addOnSize) { return; }
|
||||||
memcpy(ROM+addOnStart, ROM, addOnSize);
|
memcpy(ROM+addOnStart, ROM, addOnSize);
|
||||||
|
|
||||||
if (*basepath == 0)
|
if (STCart2)
|
||||||
|
{
|
||||||
|
if (maxromspace < 0x300000) { return; }
|
||||||
|
curromspace = 0;
|
||||||
|
load_file_fs(STCart2);
|
||||||
|
memcpy(ROM+0x200000, ROM, addOnSize);
|
||||||
|
curromspace = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!*basepath)
|
||||||
{
|
{
|
||||||
loadZipFile(basefile);
|
loadZipFile(basefile);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
unsigned int pathlen = strlen(basepath);
|
load_file_fs(basepath);
|
||||||
char *ext = basepath+pathlen-4;
|
|
||||||
if (pathlen >= 5 && !strcasecmp(ext, ".jma"))
|
|
||||||
{
|
|
||||||
load_jma_file(basepath);
|
|
||||||
}
|
|
||||||
else if (pathlen >= 5 && !strcasecmp(ext, ".zip"))
|
|
||||||
{
|
|
||||||
loadZipFile(basepath);
|
|
||||||
}
|
|
||||||
else if (pathlen >= 4 && !strcasecmp(ext+1, ".gz"))
|
|
||||||
{
|
|
||||||
loadGZipFile(basepath);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
loadFile(basepath);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((curromspace & 0x7FFF) == 512)
|
if ((curromspace & 0x7FFF) == 512)
|
||||||
@@ -984,10 +999,19 @@ void SplitSetup(char *basepath, char *basefile, unsigned int MirrorSystem)
|
|||||||
case 3:
|
case 3:
|
||||||
memcpy(ROM+0x40000, ROM, 0x40000);
|
memcpy(ROM+0x40000, ROM, 0x40000);
|
||||||
memcpy(ROM+0x80000, ROM, 0x80000);
|
memcpy(ROM+0x80000, ROM, 0x80000);
|
||||||
|
if (STCart2 && addOnSize < 0x100000)
|
||||||
|
{
|
||||||
|
memcpy(ROM+0x180000, ROM+0x100000, 0x80000);
|
||||||
|
memcpy(ROM+0x280000, ROM+0x200000, 0x80000);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
curromspace = addOnStart+addOnSize;
|
curromspace = addOnStart+addOnSize;
|
||||||
|
if (STCart2)
|
||||||
|
{
|
||||||
|
curromspace = 0x300000;
|
||||||
|
}
|
||||||
SplittedROM = true;
|
SplittedROM = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1393,6 +1417,9 @@ extern unsigned char cycpl;
|
|||||||
void headerhack()
|
void headerhack()
|
||||||
{
|
{
|
||||||
char *RomData = (char *)romdata;
|
char *RomData = (char *)romdata;
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
disablehdma = 0;
|
disablehdma = 0;
|
||||||
hdmaearlstart = 0;
|
hdmaearlstart = 0;
|
||||||
WindowDisables = 0;
|
WindowDisables = 0;
|
||||||
|
|||||||
@@ -50,6 +50,8 @@ extern unsigned char Palette0, pl1contrl, pl2contrl, MMXSupport, Force8b, ForceP
|
|||||||
showallext, autoloadstate, smallscreenon, autoloadmovie, ZMVZClose,
|
showallext, autoloadstate, smallscreenon, autoloadmovie, ZMVZClose,
|
||||||
ZMVRawDump;
|
ZMVRawDump;
|
||||||
|
|
||||||
|
extern char *STCart2;
|
||||||
|
|
||||||
void ConvertJoyMap1(), ConvertJoyMap2(), zstart(), makeextension();
|
void ConvertJoyMap1(), ConvertJoyMap2(), zstart(), makeextension();
|
||||||
|
|
||||||
#define put_line(x) \
|
#define put_line(x) \
|
||||||
@@ -549,6 +551,8 @@ static void handle_params(int argc, char *argv[])
|
|||||||
fvar[0] = strlen(argv[i]);
|
fvar[0] = strlen(argv[i]);
|
||||||
strncpy(&fvar[1],argv[i],127);
|
strncpy(&fvar[1],argv[i],127);
|
||||||
makeextension();
|
makeextension();
|
||||||
|
|
||||||
|
STCart2 = argv[i+1]; //Sufami Turbo second cart
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user