Added 64in1 and 128in1 multicart bankswitch schemes, although for

the latter you'll probably require the patience of Job.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2529 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
stephena 2012-06-07 14:09:11 +00:00
parent ed5aad268d
commit 21f25d1553
4 changed files with 98 additions and 71 deletions

View File

@ -27,6 +27,10 @@
this, added Shift-Control-f key to step backwards through the
available modes.
* Added '64in1' and '128in1' multicart bankswitching schemes, which work
the same as the 2in1/4in1/etc ones (Control-r switches to each
consecutive game in the ROM).
* Fixed several bugs in DPC+ bankswitching scheme, including ability
to load and save state files. As well, ROMs now work correctly after
console format autodetection.

View File

@ -137,6 +137,26 @@ Cartridge* Cartridge::create(const uInt8* image, uInt32 size, string& md5,
buf << id;
}
}
else if(type == "64IN1")
{
// Make sure we have a valid sized image
if(size == 64*2048 || size == 64*4096)
{
dtype = type;
type = createFromMultiCart(image, size, 64, md5, id, settings);
buf << id;
}
}
else if(type == "128IN1")
{
// Make sure we have a valid sized image
if(size == 128*2048 || size == 128*4096)
{
dtype = type;
type = createFromMultiCart(image, size, 128, md5, id, settings);
buf << id;
}
}
// We should know the cart's type by now so let's create it
if(type == "0840")

View File

@ -142,7 +142,9 @@ GameInfoDialog::GameInfoDialog(
items.push_back("4IN1 Multicart (8-32K)", "4IN1" );
items.push_back("8IN1 Multicart (16-64K)", "8IN1" );
items.push_back("16IN1 Multicart (32-128K)", "16IN1");
items.push_back("32IN1 Multicart (64-128K)", "32IN1");
items.push_back("32IN1 Multicart (64/128K)", "32IN1");
items.push_back("64IN1 Multicart (128/256K)", "64IN1");
items.push_back("128IN1 Multicart (256/512K)","128IN1");
items.push_back("2K (64-2048 bytes Atari)", "2K" );
items.push_back("3E (32K Tigervision)", "3E" );
items.push_back("3F (512K Tigervision)", "3F" );
@ -165,7 +167,7 @@ GameInfoDialog::GameInfoDialog(
items.push_back("F8 (8K Atari)", "F8" );
items.push_back("F8SC (8K Atari + ram)", "F8SC" );
items.push_back("FA (CBS RAM Plus)", "FA" );
items.push_back("FA2 (CBS RAM Plus 24K)", "FA2" );
items.push_back("FA2 (CBS RAM Plus 24/28K)", "FA2" );
items.push_back("FE (8K Decathlon)", "FE" );
items.push_back("MC (C. Wilkson Megacart)", "MC" );
items.push_back("SB (128-256K SUPERbank)", "SB" );

View File

@ -64,14 +64,15 @@ GlobalPropsDialog::
new StaticTextWidget(this, font, xpos, ypos+1, lwidth, fontHeight,
"Bankswitch type:", kTextAlignLeft);
items.clear();
items.push_back("Default", "DEFAULT");
items.push_back("Auto-detect", "AUTO-DETECT");
items.push_back("0840 (8K ECONObank)", "0840" );
items.push_back("2IN1 Multicart (4-32K)", "2IN1" );
items.push_back("4IN1 Multicart (8-32K)", "4IN1" );
items.push_back("8IN1 Multicart (16-64K)", "8IN1" );
items.push_back("16IN1 Multicart (32-128K)", "16IN1");
items.push_back("32IN1 Multicart (64-128K)", "32IN1");
items.push_back("32IN1 Multicart (64/128K)", "32IN1");
items.push_back("64IN1 Multicart (128/256K)", "64IN1");
items.push_back("128IN1 Multicart (256/512K)","128IN1");
items.push_back("2K (64-2048 bytes Atari)", "2K" );
items.push_back("3E (32K Tigervision)", "3E" );
items.push_back("3F (512K Tigervision)", "3F" );
@ -94,7 +95,7 @@ GlobalPropsDialog::
items.push_back("F8 (8K Atari)", "F8" );
items.push_back("F8SC (8K Atari + ram)", "F8SC" );
items.push_back("FA (CBS RAM Plus)", "FA" );
items.push_back("FA2 (CBS RAM Plus 24K)", "FA2" );
items.push_back("FA2 (CBS RAM Plus 24/28K)", "FA2" );
items.push_back("FE (8K Decathlon)", "FE" );
items.push_back("MC (C. Wilkson Megacart)", "MC" );
items.push_back("SB (128-256K SUPERbank)", "SB" );