Previous 199869 Revisions Next

r34545 Thursday 22nd January, 2015 at 19:48:48 UTC by Couriersud
png2bdc.py: Converted to python 2.5 syntax. (nw)
[src/build]png2bdc.py
[src/mame/drivers]model2.c model3.c stv.c
[src/mame/includes]model3.h
[src/mame/machine]315-5881_helper.c

trunk/src/build/png2bdc.py
r243056r243057
116116    CACHED_CHAR_SIZE = 12
117117    CACHED_HEADER_SIZE = 16
118118   
119    try:
119    #try:
120    if 0 == 0:
120121        fp.write('f')
121122        fp.write('o')
122123        fp.write('n')
123124        fp.write('t')
124        fp.write(bytearray([hash32 >> 24 & 0xff]))
125        fp.write(bytearray([hash32 >> 16 & 0xff]))
126        fp.write(bytearray([hash32 >> 8 & 0xff]))
127        fp.write(bytearray([hash32 >> 0 & 0xff]))
128        fp.write(bytearray([font.height >> 8 & 0xff]))
129        fp.write(bytearray([font.height >> 0 & 0xff]))
130        fp.write(bytearray([font.yOffs >> 8 & 0xff]))
131        fp.write(bytearray([font.yOffs >> 0 & 0xff]))
132        fp.write(bytearray([numChars >> 24 & 0xff]))
133        fp.write(bytearray([numChars >> 16 & 0xff]))
134        fp.write(bytearray([numChars >> 8 & 0xff]))
135        fp.write(bytearray([numChars >> 0 & 0xff]))
125        fp.write(chr(hash32 >> 24 & 0xff))
126        fp.write(chr(hash32 >> 16 & 0xff))
127        fp.write(chr(hash32 >> 8 & 0xff))
128        fp.write(chr(hash32 >> 0 & 0xff))
129        fp.write(chr(font.height >> 8 & 0xff))
130        fp.write(chr(font.height >> 0 & 0xff))
131        fp.write(chr(font.yOffs >> 8 & 0xff))
132        fp.write(chr(font.yOffs >> 0 & 0xff))
133        fp.write(chr(numChars >> 24 & 0xff))
134        fp.write(chr(numChars >> 16 & 0xff))
135        fp.write(chr(numChars >> 8 & 0xff))
136        fp.write(chr(numChars >> 0 & 0xff))
136137       
137138        # Write a blank table at first (?)
138139        charTable = [0]*(numChars * CACHED_CHAR_SIZE)
139        fp.write(bytearray(charTable))
140        for i in range(numChars * CACHED_CHAR_SIZE):
141            fp.write(chr(charTable[i]))
140142       
141143        # Loop over all characters
142144        tableIndex = 0
r243056r243057
171173                    dBuffer.append(accum)
172174               
173175                # Write the data
174                fp.write(bytearray(dBuffer))
176                for j in range(len(dBuffer)):
177                    fp.write(chr(dBuffer[j]))
175178           
176179            destIndex = tableIndex * CACHED_CHAR_SIZE
177180            charTable[destIndex +  0] = i >> 8 & 0xff
r243056r243057
190193   
191194        # Seek back to the beginning and rewrite the table
192195        fp.seek(CACHED_HEADER_SIZE, 0)
193        fp.write(bytearray(charTable))
196        for i in range(numChars * CACHED_CHAR_SIZE):
197            fp.write(chr(charTable[i]))
194198   
195199        fp.close()
196200        return 0
197201
198    except:
202    #except:
199203        return 1
200204   
201205
trunk/src/mame/drivers/model2.c
r243056r243057
13231323   {
13241324      if (first_read == 1)
13251325      {
1326         // the RAM based schemes expect a dummy value before the start of the stream
1327         // to match the previous simulation (dynamite cop) I use 0x0000 here
1326         // is there a CPU core bug or similar?
1327         // the only way to return the same stream as the previous simulation (for dynamite cop) is to return a
1328         // 0x0000 as the first return value before returning the actual sequence.
1329         // note that even with our simulation code pilot kids crashes in the way it would if the protection failed, so something seems wrong.
13281330         first_read = 0;
13291331         retval = 0;
13301332      }
trunk/src/mame/drivers/model3.c
r243056r243057
17561756
17571757READ64_MEMBER(model3_state::model3_security_r)
17581758{
1759   UINT64 retvalue = U64(0xffffffffffffffff);
1760
17611759   switch(offset)
17621760   {
1763      case 0x00 / 8:    retvalue = 0; break;       /* status */
1761      case 0x00/8:    return 0;       /* status */
17641762      case 0x1c/8:                    /* security board data read */
17651763      {
17661764         if (core_stricmp(machine().system().name, "vs299") == 0 ||
17671765            core_stricmp(machine().system().name, "vs2v991") == 0)
17681766         {
1769            retvalue = (UINT64)vs299_prot_data[m_prot_data_ptr++] << 48;
1767            return (UINT64)vs299_prot_data[m_prot_data_ptr++] << 48;
17701768         }
17711769         else if (core_stricmp(machine().system().name, "swtrilgy") == 0 ||
17721770                  core_stricmp(machine().system().name, "swtrilgya") == 0)
r243056r243057
17761774            {
17771775               m_prot_data_ptr = 0;
17781776            }
1779            retvalue = data;
1777            return data;
17801778         }
17811779         else if (core_stricmp(machine().system().name, "fvipers2") == 0)
17821780         {
r243056r243057
17851783            {
17861784               m_prot_data_ptr = 0;
17871785            }
1788            retvalue = data;
1786            return data;
17891787         }
17901788         else if (core_stricmp(machine().system().name, "spikeout") == 0 ||
17911789                  core_stricmp(machine().system().name, "spikeofe") == 0)
r243056r243057
17951793            {
17961794               m_prot_data_ptr = 0;
17971795            }
1798            retvalue = data;
1796            return data;
17991797         }
18001798         else if (core_stricmp(machine().system().name, "eca") == 0 ||
18011799                  core_stricmp(machine().system().name, "ecax") == 0)
r243056r243057
18051803            {
18061804               m_prot_data_ptr = 0;
18071805            }
1808            retvalue = data;
1806            return data;
18091807         }
18101808         else if (core_stricmp(machine().system().name, "oceanhun") == 0)
18111809         {
r243056r243057
18141812            {
18151813               m_prot_data_ptr = 0;
18161814            }
1817            retvalue = data;
1815            return data;
18181816         }
18191817         else
18201818         {
1821            retvalue = 0;
1819            return 0;
18221820         }
1823         break;
18241821      }
18251822   }
1826   printf("model3_security_r offset %08x : %08x%08x (%08x%08x)\n", offset * 8, (UINT32)(retvalue >> 32), (UINT32)(retvalue & 0xffffffff), (UINT32)(mem_mask >> 32), (UINT32)(mem_mask & 0xffffffff));
1827
1828   return retvalue;
1823   return U64(0xffffffffffffffff);
18291824}
18301825
1831READ64_MEMBER(model3_state::model3_5881prot_r)
1832{
1833   UINT64 retvalue = U64(0xffffffffffffffff);
1834
1835   if (offset == 0x00 / 8)
1836   {
1837      retvalue = 0;
1838   }
1839   else if (offset == 0x18 / 8)
1840   {
1841      if (first_read == 1)
1842      {
1843         // the RAM based schemes expect a dummy value before the start of the stream
1844         // to match the previous simulation I use 0xffff here
1845         first_read = 0;
1846         retvalue = 0xffff << 16;
1847      }
1848      else
1849      {
1850         UINT8* base;
1851         retvalue = m_cryptdevice->do_decrypt(base);
1852         //   retvalue = ((retvalue & 0xff00) >> 8) | ((retvalue & 0x00ff) << 8); // don't endian swap the return value on this hardware
1853         retvalue <<= 16;
1854      }
1855
1856   //   printf("model3_5881prot_r offset %08x : %08x%08x (%08x%08x)\n", offset * 8, (UINT32)(retvalue >> 32), (UINT32)(retvalue & 0xffffffff), (UINT32)(mem_mask >> 32), (UINT32)(mem_mask & 0xffffffff));
1857   }
1858   else
1859   {
1860      printf("model3_5881prot_r offset %08x : %08x%08x (%08x%08x)\n", offset * 8, (UINT32)(retvalue >> 32), (UINT32)(retvalue & 0xffffffff), (UINT32)(mem_mask >> 32), (UINT32)(mem_mask & 0xffffffff));
1861   }
1862
1863   return retvalue;
1864
1865
1866}
1867
1868WRITE64_MEMBER(model3_state::model3_5881prot_w)
1869{
1870   if (offset == 0x10 / 8)
1871   {
1872      // code is copied to RAM first, so base address is always 0
1873      m_cryptdevice->set_addr_low(0);
1874      m_cryptdevice->set_addr_high(0);
1875
1876      if (data != 0)
1877         printf("model3_5881prot_w address isn't 0?\n");
1878
1879      first_read = 1;
1880   }
1881   else if (offset == 0x18 / 8)
1882   {
1883      UINT16 subkey = data >> (32 + 16);
1884      subkey = ((subkey & 0xff00) >> 8) | ((subkey & 0x00ff) << 8); // endian swap the sub-key for this hardware
1885      printf("model3_5881prot_w setting subkey %04x\n", subkey);
1886      m_cryptdevice->set_subkey(subkey);
1887   }
1888   else
1889   {
1890      printf("model3_5881prot_w offset %08x : %08x%08x (%08x%08x)\n", offset * 8, (UINT32)(data >> 32), (UINT32)(data & 0xffffffff), (UINT32)(mem_mask >> 32), (UINT32)(mem_mask & 0xffffffff));
1891   }
1892
1893
1894
1895}
1896
18971826WRITE64_MEMBER(model3_state::daytona2_rombank_w)
18981827{
18991828   if (ACCESSING_BITS_56_63)
r243056r243057
19181847   AM_RANGE(0xf00c0000, 0xf00dffff) AM_MIRROR(0x0e000000) AM_RAM AM_SHARE("backup")    /* backup SRAM */
19191848   AM_RANGE(0xf0100000, 0xf010003f) AM_MIRROR(0x0e000000) AM_READWRITE(model3_sys_r, model3_sys_w )
19201849   AM_RANGE(0xf0140000, 0xf014003f) AM_MIRROR(0x0e000000) AM_READWRITE(model3_rtc_r, model3_rtc_w )
1850   AM_RANGE(0xf0180000, 0xf019ffff) AM_MIRROR(0x0e000000) AM_RAM                           /* Security Board RAM */
1851   AM_RANGE(0xf01a0000, 0xf01a003f) AM_MIRROR(0x0e000000) AM_READ(model3_security_r )  /* Security board */
19211852
19221853   AM_RANGE(0xf1000000, 0xf10f7fff) AM_READWRITE(model3_char_r, model3_char_w )    /* character RAM */
19231854   AM_RANGE(0xf10f8000, 0xf10fffff) AM_READWRITE(model3_tile_r, model3_tile_w )    /* tilemaps */
r243056r243057
56605591   MCFG_SOUND_ROUTE(0, "rspeaker", 2.0)
56615592MACHINE_CONFIG_END
56625593
5663UINT16 model3_state::crypt_read_callback(UINT32 addr)
5664{
5665   UINT16 dat = 0;
5666   if (addr < 0x8000)
5667   {
5668      dat = m_maincpu->space().read_word((0xf0180000 + 4 * addr)); // every other word is unused in this RAM, probably 32-bit ram on 64-bit bus?
5669   }
5670
5671//   dat = ((dat & 0xff00) >> 8) | ((dat & 0x00ff) << 8);
5672//   printf("reading %04x\n", dat);
5673   return dat;
5674}
5675
5676static MACHINE_CONFIG_DERIVED( model3_21_5881, model3_21 )
5677   MCFG_DEVICE_ADD("315_5881", SEGA315_5881_CRYPT, 0)
5678   MCFG_SET_READ_CALLBACK(model3_state, crypt_read_callback)
5679MACHINE_CONFIG_END
5680
5681
56825594static void interleave_vroms(running_machine &machine)
56835595{
56845596   model3_state *state = machine.driver_data<model3_state>();
r243056r243057
57105622   }
57115623}
57125624
5713DRIVER_INIT_MEMBER(model3_state, genprot)
5714{
5715   INT64 key = get_315_5881_key(machine());
5716
5717   m_maincpu->space(AS_PROGRAM).install_ram(0xf0180000, 0xf019ffff, 0, 0x0e000000);
5718
5719   if (key != -1)
5720   {
5721//      m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf01a0000, 0xf01a003f, read64_delegate(FUNC(model3_state::model3_5881prot_r), this), write64_delegate(FUNC(model3_state::model3_5881prot_w), this));
5722      m_cryptdevice->set_key(key);
5723      m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xf01a0000, 0xf01a003f, 0, 0x0e000000, read64_delegate(FUNC(model3_state::model3_5881prot_r), this), write64_delegate(FUNC(model3_state::model3_5881prot_w), this) );                   
5724   }
5725   else
5726   {
5727      m_maincpu->space(AS_PROGRAM).install_read_handler(0xf01a0000, 0xf01a003f, 0, 0x0e000000, read64_delegate(FUNC(model3_state::model3_security_r), this) );                   
5728   }
5729}
5730
57315625DRIVER_INIT_MEMBER(model3_state,model3_10)
57325626{
57335627   interleave_vroms(machine());
r243056r243057
59485842
59495843DRIVER_INIT_MEMBER(model3_state,swtrilgy)
59505844{
5951
59525845   UINT32 *rom = (UINT32*)memregion("user1")->base();
59535846   DRIVER_INIT_CALL(model3_20);
59545847
r243056r243057
59595852
59605853   rom[(0x043dc^4)/4] = 0x48000090;        // skip force feedback setup
59615854   rom[(0xf6e44^4)/4] = 0x60000000;
5962
5963
5964   DRIVER_INIT_CALL(genprot);
5965
59665855}
59675856
59685857DRIVER_INIT_MEMBER(model3_state,swtrilga)
r243056r243057
61146003GAME( 1999, vs299,    vs2v991, model3_20, model3, model3_state,      vs299, ROT0, "Sega", "Virtua Striker 2 '99", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
61156004
61166005/* Model 3 Step 2.1 */
6117GAME( 1998, daytona2,         0, model3_21,      daytona2, model3_state, daytona2, ROT0, "Sega", "Daytona USA 2 (Revision A)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
6118GAME( 1998, dayto2pe,         0, model3_21,      daytona2, model3_state, dayto2pe, ROT0, "Sega", "Daytona USA 2 Power Edition", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
6119GAME( 1998, dirtdvls,         0, model3_21,      scud, model3_state,     dirtdvls, ROT0, "Sega", "Dirt Devils (set 1) (Revision A)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
6120GAME( 1998, dirtdvlsa, dirtdvls, model3_21,      scud, model3_state,     dirtdvls, ROT0, "Sega", "Dirt Devils (set 2) (Revision A)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
6121GAME( 1998, swtrilgy,         0, model3_21_5881, swtrilgy, model3_state, swtrilgy, ROT0, "Sega / LucasArts", "Star Wars Trilogy (Revision A)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
6122GAME( 1998, swtrilgya, swtrilgy, model3_21_5881, swtrilgy, model3_state, swtrilga, ROT0, "Sega / LucasArts", "Star Wars Trilogy", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
6123GAME( 1998, spikeout,         0, model3_21,      model3, model3_state,   spikeout, ROT0, "Sega", "Spikeout (Revision C)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
6124GAME( 1998, spikeofe,         0, model3_21,      model3, model3_state,   spikeofe, ROT0, "Sega", "Spikeout Final Edition", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
6125GAME( 1998, magtruck,         0, model3_21,      eca, model3_state,      magtruck, ROT0, "Sega", "Magical Truck Adventure", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
6126GAME( 1999, eca,              0, model3_21,      eca, model3_state,           eca, ROT0, "Sega", "Emergency Call Ambulance", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
6127GAME( 1999, ecax,           eca, model3_21,      eca, model3_state,           eca, ROT0, "Sega", "Emergency Call Ambulance (Export)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
6128GAME( 1999, ecap,           eca, model3_21,      eca, model3_state,           eca, ROT0, "Sega", "Emergency Call Ambulance (US location test?)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
6006GAME( 1998, daytona2,         0, model3_21, daytona2, model3_state, daytona2, ROT0, "Sega", "Daytona USA 2 (Revision A)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
6007GAME( 1998, dayto2pe,         0, model3_21, daytona2, model3_state, dayto2pe, ROT0, "Sega", "Daytona USA 2 Power Edition", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
6008GAME( 1998, dirtdvls,         0, model3_21, scud, model3_state,     dirtdvls, ROT0, "Sega", "Dirt Devils (set 1) (Revision A)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
6009GAME( 1998, dirtdvlsa, dirtdvls, model3_21, scud, model3_state,     dirtdvls, ROT0, "Sega", "Dirt Devils (set 2) (Revision A)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
6010GAME( 1998, swtrilgy,         0, model3_21, swtrilgy, model3_state, swtrilgy, ROT0, "Sega / LucasArts", "Star Wars Trilogy (Revision A)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
6011GAME( 1998, swtrilgya, swtrilgy, model3_21, swtrilgy, model3_state, swtrilga, ROT0, "Sega / LucasArts", "Star Wars Trilogy", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
6012GAME( 1998, spikeout,         0, model3_21, model3, model3_state,   spikeout, ROT0, "Sega", "Spikeout (Revision C)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
6013GAME( 1998, spikeofe,         0, model3_21, model3, model3_state,   spikeofe, ROT0, "Sega", "Spikeout Final Edition", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
6014GAME( 1998, magtruck,         0, model3_21, eca, model3_state,      magtruck, ROT0, "Sega", "Magical Truck Adventure", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
6015GAME( 1999, eca,              0, model3_21, eca, model3_state,           eca, ROT0, "Sega", "Emergency Call Ambulance", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
6016GAME( 1999, ecax,           eca, model3_21, eca, model3_state,           eca, ROT0, "Sega", "Emergency Call Ambulance (Export)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
6017GAME( 1999, ecap,           eca, model3_21, eca, model3_state,           eca, ROT0, "Sega", "Emergency Call Ambulance (US location test?)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
trunk/src/mame/drivers/stv.c
r243056r243057
30073007
30083008//GAME YEAR, NAME,     PARENT,  MACH, INP, INIT,      MONITOR
30093009/* Playable */
3010GAME( 1998, astrass,   stvbios, stv,      stv6b, stv_state,      astrass,    ROT0,   "Sunsoft",                      "Astra SuperStars (J 980514 V1.002)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
3010GAME( 1998, astrass,   stvbios, stv,      stv6b, stv_state,     astrass,    ROT0,   "Sunsoft",                      "Astra SuperStars (J 980514 V1.002)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
30113011GAME( 1995, bakubaku,  stvbios, stv,      stv, stv_state,        stv,        ROT0,   "Sega",                         "Baku Baku Animal (J 950407 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
30123012GAME( 1996, batmanfr,  stvbios, batmanfr, stv, stv_state,        batmanfr,   ROT0,   "Acclaim",                      "Batman Forever (JUE 960507 V1.000)", GAME_NO_SOUND | GAME_IMPERFECT_GRAPHICS )
30133013GAME( 1996, colmns97,  stvbios, stv,      stv, stv_state,        colmns97,   ROT0,   "Sega",                         "Columns '97 (JET 961209 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
30143014GAME( 1997, cotton2,   stvbios, stv,      stv, stv_state,        cotton2,    ROT0,   "Success",                      "Cotton 2 (JUET 970902 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
30153015GAME( 1998, cottonbm,  stvbios, stv,      stv, stv_state,        cottonbm,   ROT0,   "Success",                      "Cotton Boomerang (JUET 980709 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
30163016GAME( 1995, critcrsh,  stvbios, stv,      critcrsh, stv_state,   critcrsh,   ROT0,   "Sega",                         "Critter Crusher (EA 951204 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
3017GAME( 1999, danchih,   stvbios, stv,      stvmp, stv_state,      danchih,    ROT0,   "Altron (Tecmo license)",       "Danchi de Hanafuda (J 990607 V1.400)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
3017GAME( 1999, danchih,   stvbios, stv,      stvmp, stv_state,     danchih,    ROT0,   "Altron (Tecmo license)",       "Danchi de Hanafuda (J 990607 V1.400)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
30183018GAME( 2000, danchiq,   stvbios, stv,      stv, stv_state,        danchiq,    ROT0,   "Altron",                       "Danchi de Quiz Okusan Yontaku Desuyo! (J 001128 V1.200)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
30193019GAME( 1996, diehard,   stvbios, stv,      stv, stv_state,        diehard,    ROT0,   "Sega",                         "Die Hard Arcade (UET 960515 V1.000)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND  )
30203020GAME( 1996, dnmtdeka,  diehard, stv,      stv, stv_state,        dnmtdeka,   ROT0,   "Sega",                         "Dynamite Deka (J 960515 V1.000)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND  )
30213021GAME( 1995, ejihon,    stvbios, stv,      stv, stv_state,        stv,        ROT0,   "Sega",                         "Ejihon Tantei Jimusyo (J 950613 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
3022GAME( 1998, elandore,  stvbios, stv,      stv6b, stv_state,      elandore,   ROT0,   "Sai-Mate",                     "Touryuu Densetsu Elan-Doree / Elan Doree - Legend of Dragoon (JUET 980922 V1.006)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
3023GAME( 1999, ffreveng,  stvbios, stv,      stv, stv_state,        ffreveng,   ROT0,   "Capcom",                       "Final Fight Revenge (JUET 990714 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
30243022GAME( 1995, fhboxers,  stvbios, stv,      stv, stv_state,        fhboxers,   ROT0,   "Sega",                         "Funky Head Boxers (JUETBKAL 951218 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
30253023GAME( 1997, findlove,  stvbios, stv,      stv, stv_state,        stv,        ROT0,   "Daiki / FCF",                  "Zenkoku Seifuku Bishoujo Grand Prix Find Love (J 971212 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
3026GAME( 1994, gaxeduel,  stvbios, stv,      stv6b, stv_state,      gaxeduel,   ROT0,   "Sega",                         "Golden Axe - The Duel (JUETL 950117 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS)
3024GAME( 1994, gaxeduel,  stvbios, stv,      stv6b, stv_state,     gaxeduel,   ROT0,   "Sega",                         "Golden Axe - The Duel (JUETL 950117 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS)
30273025GAME( 1998, grdforce,  stvbios, stv,      stv, stv_state,        grdforce,   ROT0,   "Success",                      "Guardian Force (JUET 980318 V0.105)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
3028GAME( 1998, groovef,   stvbios, stv,      stv6b, stv_state,      groovef,    ROT0,   "Atlus",                        "Groove on Fight - Gouketsuji Ichizoku 3 (J 970416 V1.001)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
3026GAME( 1998, groovef,   stvbios, stv,      stv6b, stv_state,     groovef,    ROT0,   "Atlus",                        "Groove on Fight - Gouketsuji Ichizoku 3 (J 970416 V1.001)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
30293027GAME( 1997, hanagumi,  stvbios, stv,      stv, stv_state,        hanagumi,   ROT0,   "Sega",                         "Sakura Taisen - Hanagumi Taisen Columns (J 971007 V1.010)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
30303028GAME( 1996, introdon,  stvbios, stv,      stv, stv_state,        stv,        ROT0,   "Sunsoft / Success",            "Karaoke Quiz Intro Don Don! (J 960213 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
3031GAME( 1995, kiwames,   stvbios, stv,      stvmp, stv_state,      stvmp,      ROT0,   "Athena",                       "Pro Mahjong Kiwame S (J 951020 V1.208)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
3029GAME( 1995, kiwames,   stvbios, stv,      stvmp, stv_state,     stvmp,      ROT0,   "Athena",                       "Pro Mahjong Kiwame S (J 951020 V1.208)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
30323030GAME( 1997, maruchan,  stvbios, stv,      stv, stv_state,        maruchan,   ROT0,   "Sega / Toyosuisan",            "Maru-Chan de Goo! (J 971216 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
30333031GAME( 1996, mausuke,   stvbios, stv,      stv, stv_state,        mausuke,    ROT0,   "Data East",                    "Mausuke no Ojama the World (J 960314 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
30343032GAME( 1998, myfairld,  stvbios, stv,      myfairld, stv_state,   stvmp,      ROT0,   "Micronet",                     "Virtual Mahjong 2 - My Fair Lady (J 980608 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
r243056r243057
30463044GAME( 1995, sandor,    stvbios, stv,      stv, stv_state,        sandor,     ROT0,   "Sega",                         "Puzzle & Action: Sando-R (J 951114 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
30473045GAME( 1997, thunt,     sandor,  stv,      stv, stv_state,        thunt,      ROT0,   "Sega",                         "Puzzle & Action: Treasure Hunt (JUET 970901 V2.00E)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
30483046GAME( 1997, thuntk,    sandor,  stv,      stv, stv_state,        sandor,     ROT0,   "Sega / Deniam",                "Puzzle & Action: BoMulEul Chajara (JUET 970125 V2.00K)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
3049GAME( 1998, twcup98,   stvbios, stv,      stv, stv_state,        twcup98,    ROT0,   "Tecmo",                        "Tecmo World Cup '98 (JUET 980410 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
30503047GAME( 1995, smleague,  stvbios, stv,      stv, stv_state,        smleague,   ROT0,   "Sega",                         "Super Major League (U 960108 V1.000)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
30513048GAME( 1995, finlarch,  smleague,stv,      stv, stv_state,        finlarch,   ROT0,   "Sega",                         "Final Arch (J 950714 V1.001)", GAME_NOT_WORKING | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
30523049GAME( 1996, sokyugrt,  stvbios, stv,      stv, stv_state,        sokyugrt,   ROT0,   "Raizing / Eighting",           "Soukyugurentai / Terra Diver (JUET 960821 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
r243056r243057
30563053GAME( 1997, winterht,  stvbios, stv,      stv, stv_state,        winterht,   ROT0,   "Sega",                         "Winter Heat (JUET 971012 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
30573054GAME( 1997, znpwfv,    stvbios, stv,      stv, stv_state,        znpwfv,     ROT0,   "Sega",                         "Zen Nippon Pro-Wrestling Featuring Virtua (J 971123 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
30583055
3056/* Almost */
3057GAME( 1998, twcup98,   stvbios, stv,      stv, stv_state,        twcup98,    ROT0,   "Tecmo",                        "Tecmo World Cup '98 (JUET 980410 V1.000)", GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
3058GAME( 1998, elandore,  stvbios, stv,      stv6b, stv_state,     elandore,   ROT0,   "Sai-Mate",                     "Touryuu Densetsu Elan-Doree / Elan Doree - Legend of Dragoon (JUET 980922 V1.006)", GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION | GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
3059
30593060/* Unemulated printer / camera devices */
30603061GAME( 1998, stress,    stvbios, stv,      stv, stv_state,        stv,        ROT0,   "Sega",                         "Stress Busters (J 981020 V1.000)", GAME_NOT_WORKING | GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND )
30613062GAME( 1997, nclubv3,   stvbios, stv,      stv, stv_state,        nameclv3,   ROT0,   "Sega",                         "Name Club Ver.3 (J 970723 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS | GAME_NOT_WORKING )
r243056r243057
30823083GAME( 1997, techbowl,  stvbios, stv,      stv, stv_state,        stv,        ROT0,   "Sega",                         "Technical Bowling (J 971212 V1.000)", GAME_NOT_WORKING )
30833084GAME( 1999, micrombc,  stvbios, stv,      stv, stv_state,        stv,        ROT0,   "Sega",                         "Microman Battle Charge (J 990326 V1.000)", GAME_NOT_WORKING )
30843085
3086/* Black screen */
3087GAME( 1999, ffreveng,  stvbios, stv,      stv, stv_state,        ffreveng,   ROT0,   "Capcom",                       "Final Fight Revenge (JUET 990714 V1.000)", GAME_IMPERFECT_SOUND | GAME_IMPERFECT_GRAPHICS )
3088
30853089/* CD games */
30863090GAME( 1995, sfish2,    0,       stv,      stv, stv_state,        stv,        ROT0,   "Sega",                         "Sport Fishing 2 (UET 951106 V1.10e)", GAME_NO_SOUND | GAME_NOT_WORKING )
30873091GAME( 1995, sfish2j,   sfish2,  stv,      stv, stv_state,        stv,        ROT0,   "Sega",                         "Sport Fishing 2 (J 951201 V1.100)", GAME_NO_SOUND | GAME_NOT_WORKING )
trunk/src/mame/includes/model3.h
r243056r243057
44#include "audio/dsbz80.h"
55#include "machine/eepromser.h"
66#include "sound/scsp.h"
7#include "machine/315-5881_crypt.h"
87
98typedef float MATRIX[4][4];
109typedef float VECTOR[4];
r243056r243057
7877      m_dsbz80(*this, DSBZ80_TAG),
7978      m_soundram(*this, "soundram"),
8079      m_gfxdecode(*this, "gfxdecode"),
81      m_palette(*this, "palette"),
82      m_cryptdevice(*this, "315_5881")
80      m_palette(*this, "palette")
8381   {
8482      m_step15_with_mpc106 = false;
8583      m_step20_with_old_real3d = false;
r243056r243057
9997
10098   required_device<gfxdecode_device> m_gfxdecode;
10199   required_device<palette_device> m_palette;
102   optional_device<sega_315_5881_crypt_device> m_cryptdevice;
103100
104101   tilemap_t *m_layer4[4];
105102   tilemap_t *m_layer8[4];
r243056r243057
235232   DECLARE_WRITE16_MEMBER(model3snd_ctrl);
236233   UINT32 pci_device_get_reg();
237234   void pci_device_set_reg(UINT32 value);
238   DECLARE_DRIVER_INIT(genprot);
239235   DECLARE_DRIVER_INIT(lemans24);
240236   DECLARE_DRIVER_INIT(vs298);
241237   DECLARE_DRIVER_INIT(vs299);
r243056r243057
337333   void tap_write(int tck, int tms, int tdi, int trst);
338334   void tap_reset();
339335   void tap_set_asic_ids();
340
341   DECLARE_READ64_MEMBER(model3_5881prot_r);
342   DECLARE_WRITE64_MEMBER(model3_5881prot_w);
343   int first_read;
344   UINT16 crypt_read_callback(UINT32 addr);
345
346336};
trunk/src/mame/machine/315-5881_helper.c
r243056r243057
3434   // name             key              gameid #     year     chip label     platform
3535   { "twcup98",         0x05200913 }, // 25209801    1998     317-5039-COM   ST-V
3636   { "astrass",         0x052e2901 }, // 25349801    1998     317-5040-COM   ST-V      (yes, the 317-5040-COM chip was reused for 3 different games and on both Naomi and ST-V!)
37   { "rsgun",           0x05272d01 }, //             1998     317-5041-COM   ST-V
38   { "sss",             0x052b6901 }, //             1998     317-5042-COM   ST-V
39   { "elandore",        0x05226d41 }, //             1998     317-5043-COM   ST-V
37   { "rsgun",           -1         }, //             1998     317-5041-COM   ST-V
38   { "sss",             -1         }, //             1998     317-5042-COM   ST-V
39   { "elandore",        -1         }, //             1998     317-5043-COM   ST-V
4040   { "ffreveng",        0x0524ac01 }, //             1998     317-5049-COM   ST-V
4141
4242   { "gundmct",         0x000e8010 }, // 841-0017    2001     ???            Naomi
r243056r243057
137137
138138
139139   { "vs298",           0x09234e96 }, //             ????     317-0237-COM   Model 3
140   { "swtrilgy",        0x11272a01 }, //             ????     317-0241-COM   Model 3
141   { "swtrilgya",       0x11272a01 }, //             ????     317-0241-COM   Model 3
140   { "swt",             0x11272a01 }, //             ????     317-0241-COM   Model 3
142141   { "vs299",           0x09222ac8 }, //             ????     317-0245-COM   Model 3
143142
144
145143   { NULL, 0 }    // end of table
146144};
147145


Previous 199869 Revisions Next


© 1997-2024 The MAME Team