Gameboy v8 (#2477)

Miscellaneous Game Boy changes:
* gameboy: add Super Chinese Land 1.2.3' to MBC1 Collection check code
* gameboy: fix MMM01 zero-adjust logic for ROM bank

New working software list additions
--------------------------------
* gameboy.xml: Sachen 4 in 1 (Euro, 4B-003) [Tauwasser]
This commit is contained in:
Tauwasser 2017-07-15 06:17:28 +02:00 committed by Vas Crabb
parent 15c2bb0c08
commit 7aad252b34
3 changed files with 17 additions and 3 deletions

View File

@ -7,7 +7,6 @@
- Shanghai Pocket by Sunsoft: are serial and release date correct or do they refer to the GBC version?
Undumped pirate carts:
- 4B-003: Sachen 4-in-1 version 3 (Taiwan's Mahjong, Japan's Mahjong, Hong Kong's Mahjong, Store Tris)
- GOWIN carts (see below the list of known games)
-->
@ -24950,6 +24949,19 @@
</dataarea>
</part>
</software>
<software name="4in1_003">
<description>4 in 1 (Euro, 4B-003)</description>
<year>19??</year>
<publisher>Sachen</publisher>
<info name="serial" value="4B-003"/>
<part name="cart" interface="gameboy_cart">
<feature name="slot" value="rom_sachen1" />
<dataarea name="rom" size="65536">
<rom name="4b-003.bin" size="65536" crc="c294aa21" sha1="b5a3ee09692476d801d873a703d508d17ee24fbd" offset="0" />
</dataarea>
</part>
</software>
<!-- 4in1_003 missing -->

View File

@ -480,9 +480,11 @@ bool gb_cart_slot_device_base::is_mbc1col_game(const uint8_t *ROM, uint32_t len)
"MORTALKOMBAT DUO",
/* Mortal Kombat I & II US */
"MORTALKOMBATI&II",
/* Super Chinese Land 1,2,3' */
"SUPERCHINESE 123"
};
const uint8_t rows = sizeof(internal_names) / sizeof(internal_names[0]);
const uint8_t rows = ARRAY_LENGTH(internal_names);
for (uint8_t i = 0x00; i < rows; ++i) {
if (0 == memcmp(&ROM[0x134], &internal_names[i][0], name_length))

View File

@ -720,7 +720,7 @@ WRITE8_MEMBER(gb_rom_m161_device::write_bank)
READ8_MEMBER(gb_rom_mmm01_device::read_rom)
{
uint16_t romb = m_romb & ~m_romb_nwe;
uint16_t romb = m_romb & ~(0x1e0 | m_romb_nwe);
uint16_t romb_base = m_romb & (0x1e0 | m_romb_nwe);
uint8_t ramb_masked = ((offset & 0x4000) | m_mode ? m_ramb : m_ramb & ~0x03);