mirror of
https://github.com/holub/mame
synced 2025-07-04 09:28:51 +03:00
(MESS) snes: better support for Korean Super 20 in 1. Now games 15-20 work. nw.
This commit is contained in:
parent
5d93535c4d
commit
b62b0f7ab1
@ -4337,7 +4337,6 @@ more investigation needed...
|
|||||||
<description>Super 5 in 1 (Bad Dump)</description>
|
<description>Super 5 in 1 (Bad Dump)</description>
|
||||||
<year>199?</year>
|
<year>199?</year>
|
||||||
<publisher><unlicensed></publisher>
|
<publisher><unlicensed></publisher>
|
||||||
<info name="alt_title" value="슈퍼20합" />
|
|
||||||
<part name="cart" interface="snes_cart">
|
<part name="cart" interface="snes_cart">
|
||||||
|
|
||||||
<feature name="slot" value="lorom_mcpir1" />
|
<feature name="slot" value="lorom_mcpir1" />
|
||||||
@ -4351,7 +4350,6 @@ more investigation needed...
|
|||||||
<description>Super 6 in 1</description>
|
<description>Super 6 in 1</description>
|
||||||
<year>199?</year>
|
<year>199?</year>
|
||||||
<publisher><unlicensed></publisher>
|
<publisher><unlicensed></publisher>
|
||||||
<info name="alt_title" value="슈퍼20합" />
|
|
||||||
<part name="cart" interface="snes_cart">
|
<part name="cart" interface="snes_cart">
|
||||||
|
|
||||||
<feature name="slot" value="lorom_mcpir1" />
|
<feature name="slot" value="lorom_mcpir1" />
|
||||||
@ -4366,7 +4364,6 @@ more investigation needed...
|
|||||||
<description>1997 New 7 in 1 (Bad Dump)</description>
|
<description>1997 New 7 in 1 (Bad Dump)</description>
|
||||||
<year>199?</year>
|
<year>199?</year>
|
||||||
<publisher><unlicensed></publisher>
|
<publisher><unlicensed></publisher>
|
||||||
<info name="alt_title" value="슈퍼20합" />
|
|
||||||
<part name="cart" interface="snes_cart">
|
<part name="cart" interface="snes_cart">
|
||||||
|
|
||||||
<feature name="slot" value="lorom_mcpir2" />
|
<feature name="slot" value="lorom_mcpir2" />
|
||||||
@ -4381,7 +4378,6 @@ more investigation needed...
|
|||||||
<description>Super 7-in-1 1997 (Bad Dump)</description>
|
<description>Super 7-in-1 1997 (Bad Dump)</description>
|
||||||
<year>199?</year>
|
<year>199?</year>
|
||||||
<publisher><unlicensed></publisher>
|
<publisher><unlicensed></publisher>
|
||||||
<info name="alt_title" value="슈퍼20합" />
|
|
||||||
<part name="cart" interface="snes_cart">
|
<part name="cart" interface="snes_cart">
|
||||||
|
|
||||||
<feature name="slot" value="lorom_mcpir1" />
|
<feature name="slot" value="lorom_mcpir1" />
|
||||||
@ -4396,7 +4392,6 @@ more investigation needed...
|
|||||||
<description>8 in 1 and 10 in 1 (Bad Dump)</description>
|
<description>8 in 1 and 10 in 1 (Bad Dump)</description>
|
||||||
<year>199?</year>
|
<year>199?</year>
|
||||||
<publisher><unlicensed></publisher>
|
<publisher><unlicensed></publisher>
|
||||||
<info name="alt_title" value="슈퍼20합" />
|
|
||||||
<part name="cart" interface="snes_cart">
|
<part name="cart" interface="snes_cart">
|
||||||
|
|
||||||
<feature name="slot" value="lorom_mcpir1" />
|
<feature name="slot" value="lorom_mcpir1" />
|
||||||
@ -4411,7 +4406,6 @@ more investigation needed...
|
|||||||
<description>Super 11 in 1 (Bad Dump)</description>
|
<description>Super 11 in 1 (Bad Dump)</description>
|
||||||
<year>199?</year>
|
<year>199?</year>
|
||||||
<publisher><unlicensed></publisher>
|
<publisher><unlicensed></publisher>
|
||||||
<info name="alt_title" value="슈퍼20합" />
|
|
||||||
<part name="cart" interface="snes_cart">
|
<part name="cart" interface="snes_cart">
|
||||||
|
|
||||||
<feature name="slot" value="lorom_mcpir1" />
|
<feature name="slot" value="lorom_mcpir1" />
|
||||||
@ -4421,9 +4415,9 @@ more investigation needed...
|
|||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
|
||||||
<software name="super20m" supported="partial">
|
<software name="sup20hab" supported="partial">
|
||||||
<!-- single cartridge source: d4s -->
|
<!-- single cartridge source: d4s -->
|
||||||
<description>Super 20 Collection (Kor)</description>
|
<description>Super 20 Hab (Kor)</description>
|
||||||
<year>199?</year>
|
<year>199?</year>
|
||||||
<publisher><unlicensed></publisher>
|
<publisher><unlicensed></publisher>
|
||||||
<info name="alt_title" value="슈퍼20합" />
|
<info name="alt_title" value="슈퍼20합" />
|
||||||
|
@ -446,7 +446,12 @@ WRITE8_MEMBER( sns_rom_mcpirate2_device::chip_write )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Korean 20 in 1 collection with NES games
|
// Korean 20 in 1 collection with NES games
|
||||||
// base bank is selected (in 32KB chunks) by bits 0-4 of data written at 0x808000
|
// - base bank is selected (in 32KB chunks) by bits 0-4 of data written at 0x808000
|
||||||
|
// - bits 6-7 seem related to prg size: 0x00 means 4*32KB, 0xc0 means 2*32KB, 0x80 means 1*32KB
|
||||||
|
// (they are used to setup how large is the ROM to be accessed, games 15-20 don't work well if
|
||||||
|
// accesses in [01-3f] don't go to the only 32KB bank)
|
||||||
|
// - bit 5 is always 0
|
||||||
|
// it's worth to notice that for FC games size of bank is twice the size of original FC PRG
|
||||||
READ8_MEMBER(sns_rom_20col_device::read_l)
|
READ8_MEMBER(sns_rom_20col_device::read_l)
|
||||||
{
|
{
|
||||||
return read_h(space, offset);
|
return read_h(space, offset);
|
||||||
@ -454,8 +459,9 @@ READ8_MEMBER(sns_rom_20col_device::read_l)
|
|||||||
|
|
||||||
READ8_MEMBER(sns_rom_20col_device::read_h)
|
READ8_MEMBER(sns_rom_20col_device::read_h)
|
||||||
{
|
{
|
||||||
int bank = (offset / 0x10000);
|
int prg32k = (!BIT(m_base_bank, 6) && BIT(m_base_bank, 7));
|
||||||
return m_rom[(rom_bank_map[bank] + m_base_bank) * 0x8000 + (offset & 0x7fff)];
|
int bank = prg32k ? 0 : (offset / 0x10000);
|
||||||
|
return m_rom[((m_base_bank & 0x1f) + bank) * 0x8000 + (offset & 0x7fff)];
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE8_MEMBER( sns_rom_20col_device::chip_write )
|
WRITE8_MEMBER( sns_rom_20col_device::chip_write )
|
||||||
@ -481,7 +487,7 @@ WRITE8_MEMBER( sns_rom_20col_device::chip_write )
|
|||||||
// [18] donkey kong jr - 9a
|
// [18] donkey kong jr - 9a
|
||||||
// [19] mario bros - 9b
|
// [19] mario bros - 9b
|
||||||
// [20] popeye - 9c
|
// [20] popeye - 9c
|
||||||
m_base_bank = data & 0x1f;
|
m_base_bank = data & 0xdf;
|
||||||
// printf("offset %X data %X bank %X\n", offset, data, m_base_bank);
|
// printf("offset %X data %X bank %X\n", offset, data, m_base_bank);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user