Previous 199869 Revisions Next

r41716 Friday 13th November, 2015 at 13:30:25 UTC by Thomas Klausner
OSD/SDL: add missing header to fix build on NetBSD.
[hash]psx.xml
[src/mame/drivers]namcos23.cpp
[src/osd/sdl]sdlptty_unix.cpp

trunk/hash/psx.xml
r250227r250228
22<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
33<softwarelist name="psx" description="Sony Playstation CD-ROMs">
44
5<!-- Interactive CD Sampler Discs-->
5   <!-- todo, reconvert original dumps using current CHDMAN version - Feb 2014 -->
66
7<!-- size="364872255" crc="536126e5" -->   
8   <software name="intcdv1m">
9      <description>Interactive CD Sampler Disc - Volume 01 (M Rated)</description>
10      <year>1995</year>
11      <publisher>SCEA</publisher>
12      <part name="cdrom" interface="psx_cdrom">
13         <diskarea name="cdrom">
14            <disk name="Interactive CD Sampler Disc - Volume 1 (m rated)" sha1="4bc8e61f799ecd19c1b8207943eaab8359d34858"/>
15         </diskarea>
16      </part>
17   </software>
18
19<!-- size="428110417" crc="48bd3d35" -->
20   <software name="intcdv2">
21      <description>Interactive CD Sampler Disc - Volume 02</description>
22      <year>1996</year>
23      <publisher>SCEA</publisher>
24      <part name="cdrom" interface="psx_cdrom">
25         <diskarea name="cdrom">
26            <disk name="Interactive CD Sampler Disc - Volume 2" sha1="5801f9972e483b9e2a7f316796b57b74d8baa5e7"/>
27         </diskarea>
28      </part>
29   </software>
30
31<!-- size="476195663" crc="fb8d356b" -->
32   <software name="intcdv30">
33      <description>Interactive CD Sampler Disc - Volume 03 (1.0)</description>
34      <year>1996</year>
35      <publisher>SCEA</publisher>
36      <part name="cdrom" interface="psx_cdrom">
37         <diskarea name="cdrom">
38            <disk name="Interactive CD Sampler Disc - Volume 3 (1.0)" sha1="f82e72d70b10badb35a91a09950d0d89db50855c"/>
39         </diskarea>
40      </part>
41   </software>
42
43<!-- size="487436207" crc="336304eb" -->
44   <software name="intcdv31">
45      <description>Interactive CD Sampler Disc - Volume 03 (1.1)</description>
46      <year>1996</year>
47      <publisher>SCEA</publisher>
48      <part name="cdrom" interface="psx_cdrom">
49         <diskarea name="cdrom">
50            <disk name="Interactive CD Sampler Disc - Volume 3 (1.1)" sha1="5f6fa89b8c9b31b3dabdc7ac06806bc721d2aa16"/>
51         </diskarea>
52      </part>
53   </software>
54
55<!-- size="487436203" crc="d96b31d2" -->
56   <software name="intcdv32">
57      <description>Interactive CD Sampler Disc - Volume 03 (1.2)</description>
58      <year>1996</year>
59      <publisher>SCEA</publisher>
60      <part name="cdrom" interface="psx_cdrom">
61         <diskarea name="cdrom">
62            <disk name="Interactive CD Sampler Disc - Volume 3 (1.2)" sha1="20f261877d3f63bd9215ca791800417ff7287e46"/>
63         </diskarea>
64      </part>
65   </software>
66
67<!-- size="354903558" crc="67ca3059" -->
68   <software name="intcdv4">
69      <description>Interactive CD Sampler Disc - Volume 04</description>
70      <year>1997</year>
71      <publisher>SCEA</publisher>
72      <part name="cdrom" interface="psx_cdrom">
73         <diskarea name="cdrom">
74            <disk name="Interactive CD Sampler Disc - Volume 4" sha1="c353a52e8b7831f11d3ce8ea771e865e9ba3431a"/>
75         </diskarea>
76      </part>
77   </software>
78
79<!-- size="291855185" crc="8119ed78" -->
80   <software name="intcdv5">
81      <description>Interactive CD Sampler Disc - Volume 05</description>
82      <year>1997</year>
83      <publisher>SCEA</publisher>
84      <part name="cdrom" interface="psx_cdrom">
85         <diskarea name="cdrom">
86            <disk name="Interactive CD Sampler Disc - Volume 5" sha1="9aef2ff7583b61d24302a35831a25ed5549610e1"/>
87         </diskarea>
88      </part>
89   </software>
90
91<!-- size="427620748" crc="917b5f35" -->
92   <software name="intcdv6">
93      <description>Interactive CD Sampler Disc - Volume 06</description>
94      <year>1998</year>
95      <publisher>SCEA</publisher>
96      <part name="cdrom" interface="psx_cdrom">
97         <diskarea name="cdrom">
98            <disk name="Interactive CD Sampler Disc - Volume 6" sha1="c35833fdd8a46016b3ccafa9ae08f68c10309737"/>
99         </diskarea>
100      </part>
101   </software>
102
103<!-- size="397092409" crc="17f17815" -->
104   <software name="intcdv7">
105      <description>Interactive CD Sampler Disc - Volume 07</description>
106      <year>1998</year>
107      <publisher>SCEA</publisher>
108      <part name="cdrom" interface="psx_cdrom">
109         <diskarea name="cdrom">
110            <disk name="Interactive CD Sampler Disc - Volume 7" sha1="81db574e4599e022cfac938516cff29bb09d1388"/>
111         </diskarea>
112      </part>
113   </software>
114
115<!-- size="420000809" crc="91d8b335" -->
116   <software name="intcdv8">
117      <description>Interactive CD Sampler Disc - Volume 08</description>
118      <year>1998</year>
119      <publisher>SCEA</publisher>
120      <part name="cdrom" interface="psx_cdrom">
121         <diskarea name="cdrom">
122            <disk name="Interactive CD Sampler Disc - Volume 8" sha1="7f23e2d284a104e6914d34527960567111914264"/>
123         </diskarea>
124      </part>
125   </software>
126
127<!-- size="389598196" crc="993e0ab1" -->
128   <software name="intcdv9">
129      <description>Interactive CD Sampler Disc - Volume 09</description>
130      <year>1998</year>
131      <publisher>SCEA</publisher>
132      <part name="cdrom" interface="psx_cdrom">
133         <diskarea name="cdrom">
134            <disk name="Interactive CD Sampler Disc - Volume 9" sha1="286559ce34f06a7f2eb2b441e9188da0e158d107"/>
135         </diskarea>
136      </part>
137   </software>
138
139<!-- size="365007076" crc="5f5fd01f" -->
140   <software name="intcdv10">
141      <description>Interactive CD Sampler Disc - Volume 10</description>
142      <year>1999</year>
143      <publisher>SCEA</publisher>
144      <part name="cdrom" interface="psx_cdrom">
145         <diskarea name="cdrom">
146            <disk name="Interactive CD Sampler Disc - Volume 10" sha1="8c414a1e26ac98d07f774cc8b16eb2fa8da0ca61"/>
147         </diskarea>
148      </part>
149   </software>
150
151<!-- size="272935197" crc="82e6fdf0" -->
152   <software name="intcdv11">
153      <description>Interactive CD Sampler Disc - Volume 11</description>
154      <year>1999</year>
155      <publisher>SCEA</publisher>
156      <part name="cdrom" interface="psx_cdrom">
157         <diskarea name="cdrom">
158            <disk name="Interactive CD Sampler Disc - Volume 11" sha1="3029004840d98c2789d2a0d93bdd762b3c56df0f"/>
159         </diskarea>
160      </part>
161   </software>
162
163<!-- size="149681460" crc="99551669" -->
164   <software name="intcdtru">
165      <description>Toys R Us - Interactive CD Sampler Disc</description>
166      <year>1998</year>
167      <publisher>SCEA</publisher>
168      <part name="cdrom" interface="psx_cdrom">
169         <diskarea name="cdrom">
170            <disk name="Toys R Us - Interactive CD Sampler Disc" sha1="4abae391a7ad1e38c2ee7cbd7401caebcf091df3"/>
171         </diskarea>
172      </part>
173   </software>
174
175<!-- size="93662349" crc="59bd7278" -->
176   <software name="intcdff7">
177      <description>Final Fantasy VII Interactive Sampler CD</description>
178      <year>1996</year>
179      <publisher>SCEA</publisher>
180      <part name="cdrom" interface="psx_cdrom">
181         <diskarea name="cdrom">
182            <disk name="Final Fantasy VII Interactive Sampler CD" sha1="0a88439b32be5172e79847f79ae33b6ba22b1de6"/>
183         </diskarea>
184      </part>
185   </software>
186
1877<!--
1888***********************
1899NON-REDUMP Rips
r250227r250228
20727   that subtle errors are introduced either in this procedure, or in the original creation of the mdf/mds/cdi image. These should
20828   be verified with the original media, and are marked as bad dumps.
20929-->
210   <!-- todo, reconvert original dumps using current CHDMAN version - Feb 2014 -->
21130
31
21232<!-- Pirate disks -->
21333
21434   <software name="ddrdmp" supported="no">
trunk/src/mame/drivers/namcos23.cpp
r250227r250228
8686        return
8787
8888
89c8000000:
90  8011e384:
91   if((a2000000.w & 0xfff0 != 0x0080) (c417_r, 808e or 008e)
92     +10.w = 2
93     +16.w = 42
94     +16.w = 23c0
95     +10.w = 3
96     801deaf0.w *0x28 -> +12.w (fixed)
97
98
99
100
101':maincpu' (801142FC): unmapped program memory write to 0C800010 = 00020000 & FFFF0000
102':maincpu' (801143A8): unmapped program memory write to 0C800010 = 00020000 & FFFF0000
103':maincpu' (801143B4): unmapped program memory write to 0C800014 = 00000042 & 0000FFFF
104':maincpu' (801143C0): unmapped program memory write to 0C800014 = 000023C0 & 0000FFFF
105':maincpu' (801143CC): unmapped program memory write to 0C800010 = 00030000 & FFFF0000
106':maincpu' (801143E0): unmapped program memory write to 0C800010 = 00000000 & 0000FFFF
107':maincpu' (801143E0): unmapped program memory write to 0C800010 = 00000000 & 0000FFFF
108':maincpu' (801143E0): unmapped program memory write to 0C800010 = 00000000 & 0000FFFF
109':maincpu' (801143E0): unmapped program memory write to 0C800010 = 00000000 & 0000FFFF
110
11189****************************************************************************
11290
11391Namco System 23 and Super System 23 Hardware Overview (last updated 7th April 2013 at 12.49am)
r250227r250228
15451523   DECLARE_WRITE16_MEMBER(iob_p6_w);
15461524   DECLARE_READ8_MEMBER(iob_gun_r);
15471525   DECLARE_READ16_MEMBER(iob_analog_r);
1548   DECLARE_WRITE16_MEMBER(c435_state_pio_w);
1549   DECLARE_WRITE16_MEMBER(c435_state_reset_w);
15501526   DECLARE_DRIVER_INIT(s23);
15511527   TILE_GET_INFO_MEMBER(TextTilemapGetInfo);
15521528   DECLARE_VIDEO_START(s23);
r250227r250228
15611537   UINT16 nthword(const UINT32 *pSource, int offs);
15621538   inline INT32 u32_to_s24(UINT32 v);
15631539   inline INT32 u32_to_s10(UINT32 v);
1564   float f24_to_f32(UINT32 v);
1565
15661540   INT32 *c435_getv(UINT16 id);
15671541   INT16 *c435_getm(UINT16 id);
15681542
1569   void c435_state_set_interrupt(const UINT16 *param);
1570   void c435_state_set_projection_matrix_line(const UINT16 *param);
1571   void c435_state_set(UINT16 type, const UINT16 *param);
1572   int c435_get_state_entry_size(UINT16 type);
1573
15741543   void c435_matrix_matrix_mul();
15751544   void c435_matrix_set();
15761545   void c435_vector_set();
15771546   void c435_matrix_vector_mul();
15781547   void c435_vector_matrix_mul();
1579   void c435_state_set();
15801548   void c435_scaling_set();
1549   void c435_state_set_interrupt();
1550   void c435_state_set();
15811551   void c435_render();
15821552   void c435_flush();
15831553
r250227r250228
16321602   return v & 0x200 ? v | 0xfffffe00 : v & 0x1ff;
16331603}
16341604
1635float namcos23_state::f24_to_f32(UINT32 v)
1636{
1637   // 8 bits exponent, 16 mantissa
1638   // mantissa is 16-bits signed, 2-complement
1639   // value is m * 2**(e-46)
1640   // 1 is e=32, m=0x4000, -1 is e=31, m=0x8000
16411605
1642   // This code turns it into a standard float
1643   if(!v)
1644      return 0;
1645
1646   UINT32 r = v & 0x8000 ? 0x80000000 : 0;
1647   UINT16 m = r ? -v : v;
1648   UINT8 e = (v >> 16) + 0x60;
1649   while(!(m & 0x8000)) {
1650      m <<= 1;
1651      e--;
1652   }
1653
1654   r = r | (e << 23) | ((m & 0x7fff) << 8);
1655   return *(float *)&r;
1656}
1657
16581606INLINE UINT8 light(UINT8 c, float l)
16591607{
16601608   if(l < 1)
r250227r250228
16841632   return m_matrices[id];
16851633}
16861634
1687void namcos23_state::c435_state_set_interrupt(const UINT16 *param)
1688{
1689   if(param[0] & 1)
1690      update_main_interrupts(m_main_irqcause | MAIN_C435_IRQ);
1691   else
1692      update_main_interrupts(m_main_irqcause & ~MAIN_C435_IRQ);
1693}
1694
1695void namcos23_state::c435_state_set_projection_matrix_line(const UINT16 *param)
1696{
1697   // timecrs2:
1698   //   sx = 640/2, sy = 480/2, t = tan(fov/2) (fov=45 degrees)
1699   //   line 1: 1 0 -(sx-a)/(sx/t) 0 -1  0 -(sx+a)/(sx/t) 0
1700   //   line 2: 0 1 -(sy-b)/(sx/t) 0  0 -1 -(sy+b)/(sx/t) 0
1701   //   line 3: 0 0 -1             c  0  0              0 sx/t
1702
1703   char buf[4096];
1704   char *p = buf;
1705   p += sprintf(p, "projection matrix line:");
1706   for(int i=0; i<8; i++)
1707      p += sprintf(p, " %f", f24_to_f32((param[2*i+1] << 16) | param[2*i+2]));
1708   p += sprintf(p, "\n");
1709   logerror(buf);
1710}
1711
1712void namcos23_state::c435_state_set(UINT16 type, const UINT16 *param)
1713{
1714   switch(type) {
1715   case 0x0001: c435_state_set_interrupt(param); break;
1716   case 0x00c8: c435_state_set_projection_matrix_line(param); break;
1717   default: {
1718      char buf[4096];
1719      char *p = buf;
1720      p += sprintf(buf, "WARNING: Unhandled state type %04x :", type);
1721      for(int i=0; i<c435_get_state_entry_size(type); i++)
1722         p += sprintf(p, " %04x", param[i]);
1723      p += sprintf(p, "\n");
1724      logerror(buf);
1725      break;
1726   }
1727   }
1728}
1729
1730WRITE16_MEMBER(namcos23_state::c435_state_reset_w)
1731{
1732   m_c435_buffer_pos = 0;
1733}
1734
1735WRITE16_MEMBER(namcos23_state::c435_state_pio_w)
1736{
1737   m_c435_buffer[m_c435_buffer_pos++] = data;
1738   int psize = c435_get_state_entry_size(m_c435_buffer[0]);
1739   if(m_c435_buffer_pos < psize+1)
1740      return;
1741   c435_state_set(m_c435_buffer[0], m_c435_buffer+1);
1742   m_c435_buffer_pos = 0;
1743}
1744
1745int namcos23_state::c435_get_state_entry_size(UINT16 type)
1746{
1747   switch(type) {
1748   case 0x0001: return 1;
1749   case 0x0009: return 19;
1750   case 0x0042: return 41;
1751   case 0x0046: return 13;
1752   case 0x00c0: return 33;
1753   case 0x00c6: return 13;
1754   case 0x00c8: return 17;
1755   default:
1756      logerror("WARNING: Unknown size for state type %04x\n", type);
1757      return -1;
1758   }
1759}
1760
17611635void namcos23_state::c435_matrix_matrix_mul() // 0.0
17621636{
17631637   if((m_c435_buffer[0] & 0xf) != 4) {
17641638      logerror("WARNING: c435_matrix_matrix_mul with size %d\n", m_c435_buffer[0] & 0xf);
17651639      return;
17661640   }
1767   if(m_c435_buffer[0] != 0x0004)
1768      logerror("WARNING: c435_matrix_matrix_mul header %04x\n", m_c435_buffer[0]);
17691641   if(m_c435_buffer[3] != 0xffff)
17701642      logerror("WARNING: c435_matrix_matrix_mul with +2=%04x\n", m_c435_buffer[3]);
17711643
r250227r250228
17911663      return;
17921664   }
17931665
1794   if(m_c435_buffer[0] != 0x0814 && m_c435_buffer[0] != 0x1014)
1795      logerror("WARNING: c435_matrix_vector_mul header %04x\n", m_c435_buffer[0]);
1796
1797
17981666   if(m_c435_buffer[3] != 0xffff) {
17991667      INT32 *t        = c435_getv(m_c435_buffer[1]);
18001668      const INT16 *m  = c435_getm(m_c435_buffer[2]);
r250227r250228
18221690      logerror("WARNING: c435_matrix_set with size %d\n", m_c435_buffer[0] & 0xf);
18231691      return;
18241692   }
1825
1826   if(m_c435_buffer[0] != 0x004a)
1827      logerror("WARNING: c435_matrix_set header %04x\n", m_c435_buffer[0]);
1828
18291693   INT16 *t = c435_getm(m_c435_buffer[1]);
18301694   for(int i=0; i<9; i++)
18311695      t[i] = m_c435_buffer[i+2];
r250227r250228
18371701      logerror("WARNING: c435_vector_set with size %d\n", m_c435_buffer[0] & 0xf);
18381702      return;
18391703   }
1840   if(m_c435_buffer[0] != 0x057)
1841      logerror("WARNING: c435_vector_set header %04x\n", m_c435_buffer[0]);
1842
18431704   INT32 *t = c435_getv(m_c435_buffer[1]);
18441705   for(int i=0; i<3; i++)
18451706      t[i] = u32_to_s24((m_c435_buffer[2*i+2] << 16) | m_c435_buffer[2*i+3]);
r250227r250228
18541715   m_scaling = m_c435_buffer[1];
18551716}
18561717
1718void namcos23_state::c435_state_set_interrupt() // 4.f.0001
1719{
1720   if(m_c435_buffer[0] != 0x4f02) {
1721      logerror("WARNING: c435_state_set_interrupt with size %d\n", m_c435_buffer[0] & 0xff);
1722      return;
1723   }
1724   if(m_c435_buffer[2] & 1)
1725      update_main_interrupts(m_main_irqcause | MAIN_C435_IRQ);
1726   else
1727      update_main_interrupts(m_main_irqcause & ~MAIN_C435_IRQ);
1728}
1729
18571730void namcos23_state::c435_state_set() // 4.f
18581731{
18591732   if((m_c435_buffer[0] & 0xff) == 0) {
1860      logerror("WARNING: c435_state_set with zero size\n");
1733      logerror("WARNING: c435_state_set with size %d\n", m_c435_buffer[0] & 0xff);
18611734      return;
18621735   }
1863   int size = c435_get_state_entry_size(m_c435_buffer[1]);
1864   if(size != (m_c435_buffer[0] & 0xff)-1)
1865   {
1866      logerror("WARNING: c435_state_set size disagreement (type=%04x, got %d, expected %d)\n", m_c435_buffer[1], (m_c435_buffer[0] & 0xff)-1, size);
1867      return;
1736   switch(m_c435_buffer[1]) {
1737   case 0x0001: c435_state_set_interrupt(); break;
1738   default:
1739      logerror("WARNING: c435_state_set(%04x, ...)\n", m_c435_buffer[1]);
1740      break;
18681741   }
1869
1870   c435_state_set(m_c435_buffer[1], m_c435_buffer+2);
18711742}
18721743
18731744void namcos23_state::c435_render() // 8
18741745{
18751746   if((m_c435_buffer[0] & 0xf) != 3) {
1876      logerror("WARNING: c435_render with size %d, header %04x\n", m_c435_buffer[0] & 0xf, m_c435_buffer[0]);
1747      logerror("WARNING: c435_render with size %d, header %04x", m_c435_buffer[0] & 0xf, m_c435_buffer[0]);
18771748      return;
18781749   }
18791750
r250227r250228
18971768   re->model.scaling = use_scaling ? m_scaling / 16384.0 : 1.0;
18981769   memcpy(re->model.m, m, sizeof(re->model.m));
18991770   memcpy(re->model.v, v, sizeof(re->model.v));
1900   //   re->model.v[2] *= 768/420.0;
1901
19021771   if(0)
1903      logerror("Render %04x (%f %f %f %f %f %f %f %f %f) (%f %f %f) %f\n",
1772      fprintf(stderr, "Render %04x (%f %f %f %f %f %f %f %f %f) (%f %f %f)\n",
19041773            re->model.model,
19051774            re->model.m[0]/16384.0, re->model.m[1]/16384.0, re->model.m[2]/16384.0,
19061775            re->model.m[3]/16384.0, re->model.m[4]/16384.0, re->model.m[5]/16384.0,
19071776            re->model.m[6]/16384.0, re->model.m[7]/16384.0, re->model.m[8]/16384.0,
1908            re->model.v[0]/16384.0, re->model.v[1]/16384.0, re->model.v[2]/16384.0,
1909            re->model.scaling);
1777            re->model.v[0]/16384.0, re->model.v[1]/16384.0, re->model.v[2]/16384.0);
19101778
19111779   render.count[render.cur]++;
19121780}
r250227r250228
19621830   }
19631831
19641832   if(!known) {
1965      char buf[4096];
1966      char *p = buf;
1967      p += sprintf(p, "c435 -");
1833      logerror("c435 -");
19681834      for(int i=0; i<m_c435_buffer_pos; i++)
1969         p += sprintf(p, " %04x", m_c435_buffer[i]);
1970      p += sprintf(p, "\n");
1971      logerror(buf);
1835         logerror(" %04x", m_c435_buffer[i]);
1836      logerror("\n");
19721837   }
19731838
19741839   m_c435_buffer_pos = 0;
r250227r250228
20651930   // 640/(3.125/3.75) = 768
20661931   // 480/(2.34375/3.75) = 768
20671932
2068#if 1
2069   pv.x = 320 + 768*pv.x;
2070   pv.y = 240 - 768*pv.y;
2071#else
2072   pv.x = 320 + 410*pv.x;
2073   pv.y = 240 - 410*pv.y;
2074#endif
2075
1933   pv.x = 320 + 768 * pv.x;
1934   pv.y = 240 - 768 * pv.y;
20761935   pv.p[0] = 1.0f / pv.p[0];
20771936}
20781937
r250227r250228
20981957void namcos23_state::render_one_model(const namcos23_render_entry *re)
20991958{
21001959   render_t &render = m_render;
2101   if(re->model.model < 0x80) {
2102      logerror("WARNING: model %02x requested\n", re->model.model);
2103      return;
2104   }
2105
2106   if(re->model.model == 3486)
2107      return;
2108
21091960   UINT32 adr = m_ptrom[re->model.model];
21101961   if(adr >= m_ptrom_limit) {
21111962      logerror("WARNING: model %04x base address %08x out-of-bounds - pointram?\n", re->model.model, adr);
r250227r250228
29102761   AM_RANGE(0x0a000000, 0x0affffff) AM_ROM AM_REGION("data", 0x1000000) AM_MIRROR(0x1000000)
29112762   AM_RANGE(0x0c000000, 0x0c00001f) AM_READWRITE16(c412_r, c412_w, 0xffffffff)
29122763   AM_RANGE(0x0c400000, 0x0c400007) AM_READWRITE16(c421_r, c421_w, 0xffffffff)
2913   AM_RANGE(0x0c800010, 0x0c800013) AM_WRITE16(c435_state_reset_w, 0xffff0000)
2914   AM_RANGE(0x0c800014, 0x0c800017) AM_WRITE16(c435_state_pio_w, 0x0000ffff)
29152764   AM_RANGE(0x0d000000, 0x0d00000f) AM_READWRITE16(ctl_r, ctl_w, 0xffffffff)
29162765   AM_RANGE(0x0e800000, 0x0e800003) AM_READWRITE16(sub_comm_r, sub_comm_w, 0xffffffff) // not sure
29172766   AM_RANGE(0x0fc00000, 0x0fffffff) AM_WRITENOP AM_ROM AM_REGION("user1", 0)
trunk/src/osd/sdl/sdlptty_unix.cpp
r250227r250228
1919# include <termios.h>
2020# include <libutil.h>
2121#elif defined(SDLMAME_NETBSD) || defined(SDLMAME_MACOSX)
22# include <termios.h>
2223# include <util.h>
2324#elif defined(SDLMAME_OPENBSD)
2425# include <termios.h>


Previous 199869 Revisions Next


© 1997-2024 The MAME Team