Previous 199869 Revisions Next

r21832 Wednesday 13th March, 2013 at 15:30:59 UTC by Fabio Priuli
(MESS) snes: better support for Korean Super 20 in 1. Now games 15-20 work. nw.
[hash]snes.xml
[src/mess/machine]sns_rom.c

trunk/hash/snes.xml
r21831r21832
43374337      <description>Super 5 in 1 (Bad Dump)</description>
43384338      <year>199?</year>
43394339      <publisher>&lt;unlicensed&gt;</publisher>
4340      <info name="alt_title" value="슈퍼20합" />
43414340      <part name="cart" interface="snes_cart">
43424341
43434342         <feature name="slot" value="lorom_mcpir1" />
r21831r21832
43514350      <description>Super 6 in 1</description>
43524351      <year>199?</year>
43534352      <publisher>&lt;unlicensed&gt;</publisher>
4354      <info name="alt_title" value="슈퍼20합" />
43554353      <part name="cart" interface="snes_cart">
43564354
43574355         <feature name="slot" value="lorom_mcpir1" />
r21831r21832
43664364      <description>1997 New 7 in 1 (Bad Dump)</description>
43674365      <year>199?</year>
43684366      <publisher>&lt;unlicensed&gt;</publisher>
4369      <info name="alt_title" value="슈퍼20합" />
43704367      <part name="cart" interface="snes_cart">
43714368
43724369         <feature name="slot" value="lorom_mcpir2" />
r21831r21832
43814378      <description>Super 7-in-1 1997 (Bad Dump)</description>
43824379      <year>199?</year>
43834380      <publisher>&lt;unlicensed&gt;</publisher>
4384      <info name="alt_title" value="슈퍼20합" />
43854381      <part name="cart" interface="snes_cart">
43864382
43874383         <feature name="slot" value="lorom_mcpir1" />
r21831r21832
43964392      <description>8 in 1 and 10 in 1 (Bad Dump)</description>
43974393      <year>199?</year>
43984394      <publisher>&lt;unlicensed&gt;</publisher>
4399      <info name="alt_title" value="슈퍼20합" />
44004395      <part name="cart" interface="snes_cart">
44014396
44024397         <feature name="slot" value="lorom_mcpir1" />
r21831r21832
44114406      <description>Super 11 in 1 (Bad Dump)</description>
44124407      <year>199?</year>
44134408      <publisher>&lt;unlicensed&gt;</publisher>
4414      <info name="alt_title" value="슈퍼20합" />
44154409      <part name="cart" interface="snes_cart">
44164410
44174411         <feature name="slot" value="lorom_mcpir1" />
r21831r21832
44214415      </part>
44224416   </software>
44234417
4424   <software name="super20m" supported="partial">
4418   <software name="sup20hab" supported="partial">
44254419      <!-- single cartridge source: d4s -->
4426      <description>Super 20 Collection (Kor)</description>
4420      <description>Super 20 Hab (Kor)</description>
44274421      <year>199?</year>
44284422      <publisher>&lt;unlicensed&gt;</publisher>
44294423      <info name="alt_title" value="슈퍼20합" />
trunk/src/mess/machine/sns_rom.c
r21831r21832
446446}
447447
448448// Korean 20 in 1 collection with NES games
449// base bank is selected (in 32KB chunks) by bits 0-4 of data written at 0x808000
449// - base bank is selected (in 32KB chunks) by bits 0-4 of data written at 0x808000
450// - bits 6-7 seem related to prg size: 0x00 means 4*32KB, 0xc0 means 2*32KB, 0x80 means 1*32KB
451//   (they are used to setup how large is the ROM to be accessed, games 15-20 don't work well if
452//   accesses in [01-3f] don't go to the only 32KB bank)
453// - bit 5 is always 0
454// it's worth to notice that for FC games size of bank is twice the size of original FC PRG
450455READ8_MEMBER(sns_rom_20col_device::read_l)
451456{
452457   return read_h(space, offset);
r21831r21832
454459
455460READ8_MEMBER(sns_rom_20col_device::read_h)
456461{
457   int bank = (offset / 0x10000);
458   return m_rom[(rom_bank_map[bank] + m_base_bank) * 0x8000 + (offset & 0x7fff)];
462   int prg32k = (!BIT(m_base_bank, 6) && BIT(m_base_bank, 7));
463   int bank = prg32k ? 0 : (offset / 0x10000);
464   return m_rom[((m_base_bank & 0x1f) + bank) * 0x8000 + (offset & 0x7fff)];
459465}
460466
461467WRITE8_MEMBER( sns_rom_20col_device::chip_write )
r21831r21832
481487   // [18] donkey kong jr - 9a
482488   // [19] mario bros - 9b
483489   // [20] popeye - 9c
484   m_base_bank = data & 0x1f;
490   m_base_bank = data & 0xdf;
485491//   printf("offset %X data %X bank %X\n", offset, data, m_base_bank);
486492}
487493

Previous 199869 Revisions Next


© 1997-2024 The MAME Team