diff options
-rw-r--r-- | hash/a2600.xml | 6 | ||||
-rw-r--r-- | src/mess/drivers/a2600.c | 11 |
2 files changed, 14 insertions, 3 deletions
diff --git a/hash/a2600.xml b/hash/a2600.xml index 5debf8e9d52..f61f556b6d0 100644 --- a/hash/a2600.xml +++ b/hash/a2600.xml @@ -217,6 +217,7 @@ Info from Atariage and Atarimania <info name="serial" value="CX26137" /> <!-- Not Sure About it. --> <sharedfeat name="compatibility" value="NTSC"/> <part name="cart" interface="a2600_cart"> + <feature name="mapper" value="4in1" /> <dataarea name="rom" size="8192"> <rom name="4 in 1 - canyon bomber, home run, night driver, sky diver (02-19-1987) (atari) (cx26137) (prototype).bin" size="8192" crc="8b304851" sha1="bc60987b668d6fa26c49f5aba5815622710140d9" offset="0" /> </dataarea> @@ -230,17 +231,20 @@ Info from Atariage and Atarimania <info name="serial" value="P460" /> <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="a2600_cart"> + <feature name="mapper" value="4in1" /> <dataarea name="rom" size="16384"> <rom name="4 game in one - rodeo champ, open sesame, bobby is going home, festival.bin" size="16384" crc="69ca1a92" sha1="b6193826df511f39077013369e625e56577f2f36" offset="0" /> </dataarea> </part> </software> - <software name="4game1a" supported="no"> + <software name="4game1a"> <description>4 Game in One - Ice Hockey + Phantom UFO + Spy Vs. Spy + Cosmic Avenger</description> <year>198?</year> <publisher>Bitcorp</publisher> + <sharedfeat name="compatibility" value="PAL"/> <part name="cart" interface="a2600_cart"> + <feature name="mapper" value="4in1" /> <dataarea name="rom" size="16384"> <rom name="4 game in one - ice hockey, phantom ufo, spy vs. spy, cosmic avenger.bin" size="16384" crc="caf86fa7" sha1="724c1ce352d0219699892f7c78083f825a71ac1a" offset="0" /> </dataarea> 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 ) |