summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/drivers/a2600.c
diff options
context:
space:
mode:
author Wilbert Pol <wilbert@jdg.info>2012-10-07 20:12:10 +0000
committer Wilbert Pol <wilbert@jdg.info>2012-10-07 20:12:10 +0000
commite5d37a459596eaed3422f0741037cb7e4c116fd2 (patch)
tree66ff43089750de8bd72330362292979d56befd77 /src/mess/drivers/a2600.c
parentf4252feeeabb1281dbc7d0e143f35c30855f13a1 (diff)
(MESS) a2600.c: Added proper support for games using a 4in1 mapper. (Wilbert Pol)
Diffstat (limited to 'src/mess/drivers/a2600.c')
-rw-r--r--src/mess/drivers/a2600.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/mess/drivers/a2600.c b/src/mess/drivers/a2600.c
index db8bed6297a..36e1d4a266b 100644
--- a/src/mess/drivers/a2600.c
+++ b/src/mess/drivers/a2600.c
@@ -198,7 +198,8 @@ enum
modeDPC,
mode32in1,
modeJVP,
- mode8in1
+ mode8in1,
+ mode4in1
};
static const UINT16 supported_screen_heights[4] = { 262, 312, 328, 342 };
@@ -609,7 +610,8 @@ static DEVICE_IMAGE_LOAD( a2600_cart )
{
static const struct { const char *mapper_name; int mapper_type; } mapper_types[] =
{
- { "8in1", mode8in1 },
+ { "4in1", mode4in1 },
+ { "8in1", mode8in1 },
};
for (int i = 0; i < ARRAY_LENGTH(mapper_types) && state->m_banking_mode == 0xff; i++)
@@ -1906,6 +1908,11 @@ void a2600_state::machine_reset()
install_banks(1, 0x0000);
break;
+ case mode4in1:
+ m_current_reset_bank_counter = m_current_reset_bank_counter & 0x03;
+ install_banks(1, m_current_reset_bank_counter * 0x1000);
+ break;
+
case mode8in1:
m_current_reset_bank_counter = m_current_reset_bank_counter & 0x07;
if ( m_current_reset_bank_counter == 7 )