Previous 199869 Revisions Next

r23572 Sunday 9th June, 2013 at 18:56:17 UTC by Fabio Priuli
(MESS) megadriv: added some more pirate games recently dumped, including
original protected versions of some already emulated games. thanks to Cah4e3
Azathoth, magicrip and the Russian crew for the dumps and to EkeEke for the
info on Tekken Special (the only one using a new protection scheme). nw.
[hash]megadriv.xml
[src/mame/machine]megadriv.c
[src/mess/drivers]megadriv.c
[src/mess/machine]md_rom.c md_rom.h md_slot.c md_slot.h

trunk/hash/megadriv.xml
r23571r23572
1403614036      <year>199?</year>
1403714037      <publisher>&lt;unlicensed&gt;</publisher>
1403814038      <part name="cart" interface="megadriv_cart">
14039         <feature name="slot" value="rom_mjlov"/>
1403914040         <dataarea name="rom" size="1048576">
14041            <rom name="insane paradise (ch) [a2].bin" size="1048576" crc="2f15bb22" sha1="59e3cf744636e4a27876f271f302d2620bbcbf39" offset="0x000000" loadflag="load16_word_swap"/>
14042         </dataarea>
14043      </part>
14044   </software>
14045
14046   <software name="fengkuan1" cloneof="fengkuan">
14047      <description>Feng Kuang Tao Hua Yuan (Chi, Unprotected)</description>
14048      <year>199?</year>
14049      <publisher>&lt;unlicensed&gt;</publisher>
14050      <part name="cart" interface="megadriv_cart">
14051         <dataarea name="rom" size="1048576">
1404014052            <rom name="feng kuang tao hua yuan (chi) (unl).bin" size="1048576" crc="8d40d64f" sha1="0330611a5fcb1f3ca173fcb3387fd35b865f1131" offset="0x000000" loadflag="load16_word_swap"/>
1404114053         </dataarea>
1404214054      </part>
r23571r23572
2556025572      </part>
2556125573   </software>
2556225574
25575   <software name="tekkensp">
25576      <description>Tekken Special</description>
25577      <year>199?</year>
25578      <publisher>&lt;unlicensed&gt;</publisher>
25579      <part name="cart" interface="megadriv_cart">
25580         <feature name="slot" value="rom_tekkensp"/>
25581         <dataarea name="rom" size="2097152">
25582            <rom name="tekken special (unl).bin" size="2097152" crc="010f6369" sha1="403a33cfbf72cc98c23c45850897e1e6185b7237" offset="0x000000" loadflag="load16_word_swap"/>
25583         </dataarea>
25584      </part>
25585   </software>
25586
2556325587   <software name="tekkn3sp">
2556425588      <description>Tekken 3 Special</description>
2556525589      <year>199?</year>
r23571r23572
2829228316      <year>1996</year>
2829328317      <publisher>Ming</publisher>
2829428318      <part name="cart" interface="megadriv_cart">
28319         <feature name="slot" value="rom_yasech"/>
28320         <dataarea name="rom" size="2097152">
28321            <rom name="wu kong wai zhuan (chi) [a4].bin" size="2097152" crc="0bd70e54" sha1="7e35547d0505e83e3a6b05ad34c1db3a65998532" offset="0x000000" loadflag="load16_word_swap"/>
28322         </dataarea>
28323         <dataarea name="sram" size="16384">
28324         </dataarea>
28325      </part>
28326   </software>
28327
28328   <software name="wukongc1" cloneof="wukong">
28329      <description>Wu Kong Wai Zhuan (Chi, Unprotected)</description>
28330      <year>1996</year>
28331      <publisher>Ming</publisher>
28332      <part name="cart" interface="megadriv_cart">
2829528333         <feature name="slot" value="rom_sram"/>
2829628334         <dataarea name="rom" size="2097152">
2829728335            <rom name="wu kong wai zhuan (chi) (unl).bin" size="2097152" crc="880a916e" sha1="dd4d7f7433ab82680d7d36124beca0bacebcd6e4" offset="0x000000" loadflag="load16_word_swap"/>
r23571r23572
2932829366      </part>
2932929367   </software>
2933029368
29369   <software name="mjclub">
29370      <description>Super Mahjong Club</description>
29371      <year>199?</year>
29372      <publisher>&lt;unlicensed&gt;</publisher>
29373      <part name="cart" interface="megadriv_cart">
29374         <feature name="slot" value="rom_mjlov"/>
29375         <dataarea name="rom" size="1048576">
29376            <rom name="super majon club (unl).bin" size="1048576" crc="1d81a67c" sha1="03f48da0541dac5a11788460c427d5fdb34bbd1b" offset="0x000000" loadflag="load16_word_swap"/>
29377         </dataarea>
29378      </part>
29379   </software>
29380
2933129381   <software name="smario2">
2933229382      <description>Super Mario 2 1998</description>
2933329383      <year>199?</year>
r23571r23572
3037530425      </part>
3037630426   </software>
3037730427
30428   <software name="plantzom">
30429      <description>Plants Vs Zombies (Rus)</description>
30430      <year>199?</year>
30431      <publisher>&lt;unlicensed&gt;</publisher>
30432      <part name="cart" interface="megadriv_cart">
30433         <dataarea name="rom" size="524288">
30434            <rom name="plants vs zombies (rus).bin" size="524288" crc="414648d2" sha1="aa4596a19aad478647b480151401cf60c6612458" offset="00000" loadflag="load16_word_swap"/>
30435         </dataarea>
30436      </part>
30437   </software>
30438
3037830439   <software name="pokecda" cloneof="pokecd">
3037930440      <description>Pokemon Crazy Drummer (Alt)</description>
3038030441      <year>199?</year>
r23571r23572
3063830699      </part>
3063930700   </software>
3064030701
30702   <software name="wotanks">
30703      <description>World of Tanks (Rus)</description>
30704      <year>199?</year>
30705      <publisher>&lt;unlicensed&gt;</publisher>
30706      <part name="cart" interface="megadriv_cart">
30707         <dataarea name="rom" size="1048576">
30708            <rom name="world of tanks (rus).bin" size="1048576" crc="7ac9e951" sha1="d96484af69fce78dc3e038df72b73b37584db3b7" offset="00000" loadflag="load16_word_swap"/>
30709         </dataarea>
30710      </part>
30711   </software>
30712
3064130713   <software name="winx" cloneof="valis">
3064230714      <description>Winx - Shkola Volshyebnits (Rus)</description>
3064330715      <year>199?</year>
trunk/src/mess/machine/md_slot.c
r23571r23572
280280   { SMOUSE, "rom_smouse" },
281281   { SOULBLAD, "rom_soulblad" },
282282   { SQUIRRELK, "rom_squir" },
283   { TEKKENSP, "rom_tekkesp" },
283284   { TOPFIGHTER, "rom_topf" },
284285
285286   { SEGA_SRAM_FULLPATH, "rom_sram" },
trunk/src/mess/machine/md_slot.h
r23571r23572
6969   SMOUSE,                      /* Smart Mouse */
7070   SOULBLAD,                    /* Soul Blade */
7171   SQUIRRELK,                   /* Squirrel King */
72   TEKKENSP,                    /* Tekken Special */
7273   TOPFIGHTER,                  /* Top Fighter 2000 MK VIII */
7374
7475   // when loading from fullpath, we need to treat SRAM in custom way
trunk/src/mess/machine/md_rom.c
r23571r23572
5151const device_type MD_ROM_REALTEC = &device_creator<md_rom_realtec_device>;
5252const device_type MD_ROM_REDCL = &device_creator<md_rom_redcl_device>;
5353const device_type MD_ROM_SQUIR = &device_creator<md_rom_squir_device>;
54const device_type MD_ROM_TEKKENSP = &device_creator<md_rom_tekkensp_device>;
5455const device_type MD_ROM_TOPF = &device_creator<md_rom_topf_device>;
5556const device_type MD_ROM_RADICA = &device_creator<md_rom_radica_device>;
5657const device_type MD_ROM_BEGGARP = &device_creator<md_rom_beggarp_device>;
r23571r23572
204205{
205206}
206207
208md_rom_tekkensp_device::md_rom_tekkensp_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
209               : md_std_rom_device(mconfig, MD_ROM_TEKKENSP, "MD Tekken Special", tag, owner, clock, "md_rom_tekkensp", __FILE__)
210{
211}
212
207213md_rom_topf_device::md_rom_topf_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
208214               : md_std_rom_device(mconfig, MD_ROM_TOPF, "MD Top Fighter", tag, owner, clock, "md_rom_topf", __FILE__)
209215{
r23571r23572
351357   memset(m_ctrl, 0, sizeof(m_ctrl));
352358}
353359
360void md_rom_tekkensp_device::device_start()
361{
362   save_item(NAME(m_reg));
363}
364
365void md_rom_tekkensp_device::device_reset()
366{
367   m_reg = 0;
368}
369
354370void md_rom_topf_device::device_start()
355371{
356372   save_item(NAME(m_latch));
r23571r23572
11611177}
11621178
11631179/*-------------------------------------------------
1180 TEKKEN SPECIAL
1181 -------------------------------------------------*/
1182
1183READ16_MEMBER(md_rom_tekkensp_device::read)
1184{
1185   if (offset < 0x400000/2)
1186      return m_rom[MD_ADDR(offset)];
1187   else if ((offset & 0x07) == 1 && m_reg)
1188      return (m_reg - 1) << 8;
1189   else
1190      return 0xffff;
1191}
1192
1193WRITE16_MEMBER(md_rom_tekkensp_device::write)
1194{
1195   if (offset < 0x400000/2)
1196      return;
1197
1198   // thanks to EkeEke for the documentation
1199   switch (offset & 0x07)
1200   {
1201      case 0x00:
1202         // data output reset ? (game writes $FF before & after protection check)
1203         m_reg = 0;
1204         break;
1205      case 0x01:
1206         // read only ?
1207         break;
1208      case 0x06:
1209         // data output mode bit 0 ? (game writes $01)
1210         break;
1211      case 0x07:
1212         // data output mode bit 1 ? (never written by game)
1213         break;
1214      default:
1215         if (data & 0x100)   // data input (only connected to D0 ?)
1216         {
1217            // 4-bit hardware register ($400004 corresponds to bit0, $400006 to bit1, etc)
1218            int shift = (offset - 2) & 3;
1219            m_reg |= (1 << shift);
1220         }
1221         break;
1222   }
1223}
1224
1225/*-------------------------------------------------
11641226 TOP FIGHTER
11651227 -------------------------------------------------*/
11661228
trunk/src/mess/machine/md_rom.h
r23571r23572
440440   UINT16 m_latch;
441441};
442442
443// ======================> md_rom_tekkensp_device
444
445class md_rom_tekkensp_device : public md_std_rom_device
446{
447public:
448   // construction/destruction
449   md_rom_tekkensp_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
450   
451   // device-level overrides
452   virtual void device_start();
453   virtual void device_reset();
454   
455   // reading and writing
456   virtual DECLARE_READ16_MEMBER(read);
457   virtual DECLARE_WRITE16_MEMBER(write);
458   
459private:
460   UINT16 m_reg;
461};
462
443463// ======================> md_rom_topf_device
444464
445465class md_rom_topf_device : public md_std_rom_device
r23571r23572
554574extern const device_type MD_ROM_SOULB;
555575extern const device_type MD_ROM_SSF2;
556576extern const device_type MD_ROM_SQUIR;
577extern const device_type MD_ROM_TEKKENSP;
557578extern const device_type MD_ROM_TOPF;
558579extern const device_type MD_ROM_RADICA;
559580extern const device_type MD_ROM_BEGGARP;
trunk/src/mess/drivers/megadriv.c
r23571r23572
418418   SLOT_INTERFACE_INTERNAL("rom_smouse",  MD_ROM_SMOUSE)
419419   SLOT_INTERFACE_INTERNAL("rom_soulb",  MD_ROM_SOULB)
420420   SLOT_INTERFACE_INTERNAL("rom_squir",  MD_ROM_SQUIR)
421   SLOT_INTERFACE_INTERNAL("rom_tekkensp",  MD_ROM_TEKKENSP)
421422   SLOT_INTERFACE_INTERNAL("rom_topf",  MD_ROM_TOPF)
422423SLOT_INTERFACE_END
423424
trunk/src/mame/machine/megadriv.c
r23571r23572
11481148   m_megadrive_io_read_data_port_ptr = read8_delegate(FUNC(md_base_state::megadrive_io_read_data_port_3button),this);
11491149   m_megadrive_io_write_data_port_ptr = write16_delegate(FUNC(md_base_state::megadrive_io_write_data_port_3button),this);
11501150
1151   {
1152      /* only really useful on official games, ea games etc. don't bother
1153        some games specify a single address, (start 200001, end 200001)
1154        this usually means there is serial eeprom instead */
1155      int i;
1156      UINT16 *rom = (UINT16*)memregion("maincpu")->base();
1157
1158      mame_printf_debug("DEBUG:: Header: Backup RAM string (ignore for games without)\n");
1159      for (i=0;i<12;i++)
1160      {
1161         if (i==2) mame_printf_debug("\nstart: ");
1162         if (i==4) mame_printf_debug("\nend  : ");
1163         if (i==6) mame_printf_debug("\n");
1164
1165         mame_printf_debug("%04x ",rom[(0x1b0/2)+i]);
1166      }
1167      mame_printf_debug("\n");
1168   }
1169
11701151   m_export = 0;
11711152   m_pal = 0;
11721153}

Previous 199869 Revisions Next


© 1997-2024 The MAME Team