mirror of
https://github.com/holub/mame
synced 2025-04-20 15:32:45 +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>
|
||||
<year>199?</year>
|
||||
<publisher><unlicensed></publisher>
|
||||
<info name="alt_title" value="슈퍼20합" />
|
||||
<part name="cart" interface="snes_cart">
|
||||
|
||||
<feature name="slot" value="lorom_mcpir1" />
|
||||
@ -4351,7 +4350,6 @@ more investigation needed...
|
||||
<description>Super 6 in 1</description>
|
||||
<year>199?</year>
|
||||
<publisher><unlicensed></publisher>
|
||||
<info name="alt_title" value="슈퍼20합" />
|
||||
<part name="cart" interface="snes_cart">
|
||||
|
||||
<feature name="slot" value="lorom_mcpir1" />
|
||||
@ -4366,7 +4364,6 @@ more investigation needed...
|
||||
<description>1997 New 7 in 1 (Bad Dump)</description>
|
||||
<year>199?</year>
|
||||
<publisher><unlicensed></publisher>
|
||||
<info name="alt_title" value="슈퍼20합" />
|
||||
<part name="cart" interface="snes_cart">
|
||||
|
||||
<feature name="slot" value="lorom_mcpir2" />
|
||||
@ -4381,7 +4378,6 @@ more investigation needed...
|
||||
<description>Super 7-in-1 1997 (Bad Dump)</description>
|
||||
<year>199?</year>
|
||||
<publisher><unlicensed></publisher>
|
||||
<info name="alt_title" value="슈퍼20합" />
|
||||
<part name="cart" interface="snes_cart">
|
||||
|
||||
<feature name="slot" value="lorom_mcpir1" />
|
||||
@ -4396,7 +4392,6 @@ more investigation needed...
|
||||
<description>8 in 1 and 10 in 1 (Bad Dump)</description>
|
||||
<year>199?</year>
|
||||
<publisher><unlicensed></publisher>
|
||||
<info name="alt_title" value="슈퍼20합" />
|
||||
<part name="cart" interface="snes_cart">
|
||||
|
||||
<feature name="slot" value="lorom_mcpir1" />
|
||||
@ -4411,7 +4406,6 @@ more investigation needed...
|
||||
<description>Super 11 in 1 (Bad Dump)</description>
|
||||
<year>199?</year>
|
||||
<publisher><unlicensed></publisher>
|
||||
<info name="alt_title" value="슈퍼20합" />
|
||||
<part name="cart" interface="snes_cart">
|
||||
|
||||
<feature name="slot" value="lorom_mcpir1" />
|
||||
@ -4421,9 +4415,9 @@ more investigation needed...
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<software name="super20m" supported="partial">
|
||||
<software name="sup20hab" supported="partial">
|
||||
<!-- single cartridge source: d4s -->
|
||||
<description>Super 20 Collection (Kor)</description>
|
||||
<description>Super 20 Hab (Kor)</description>
|
||||
<year>199?</year>
|
||||
<publisher><unlicensed></publisher>
|
||||
<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
|
||||
// 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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
int bank = (offset / 0x10000);
|
||||
return m_rom[(rom_bank_map[bank] + m_base_bank) * 0x8000 + (offset & 0x7fff)];
|
||||
int prg32k = (!BIT(m_base_bank, 6) && BIT(m_base_bank, 7));
|
||||
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 )
|
||||
@ -481,7 +487,7 @@ WRITE8_MEMBER( sns_rom_20col_device::chip_write )
|
||||
// [18] donkey kong jr - 9a
|
||||
// [19] mario bros - 9b
|
||||
// [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);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user