mirror of
https://github.com/holub/mame
synced 2025-06-30 07:58:56 +03:00
Merge branch 'master' of https://github.com/mamedev/mame
This commit is contained in:
commit
da46f4b361
@ -1512,6 +1512,32 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
<software name="xmerlin">
|
||||||
|
<description>Merlin</description>
|
||||||
|
<year>198?</year>
|
||||||
|
<publisher>Dreamcards</publisher>
|
||||||
|
<info name="developer" value="Lindsay R. Ford and V.J.R. Morin"/>
|
||||||
|
<info name="serial" value="110L2" />
|
||||||
|
<info name="usage" value="LOAD while in BASIC, then RUN" />
|
||||||
|
<part name="cass" interface="super80_cass">
|
||||||
|
<dataarea name="cass" size="59435768">
|
||||||
|
<rom name="xmerlin.wav" size="59435768" crc="c70585ab" sha1="b2d5ec48b8d7d5e9a54952f8261fc9d3b468119d" offset="0" />
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
<software name="xmerlin2" cloneof="xmerlin">
|
||||||
|
<description>Merlin (R2)</description>
|
||||||
|
<year>198?</year>
|
||||||
|
<publisher>Dreamcards</publisher>
|
||||||
|
<info name="developer" value="Lindsay R. Ford and V.J.R. Morin"/>
|
||||||
|
<info name="serial" value="110L2R2" />
|
||||||
|
<info name="usage" value="LOAD while in BASIC, then RUN" />
|
||||||
|
<part name="cass" interface="super80_cass">
|
||||||
|
<dataarea name="cass" size="59435590">
|
||||||
|
<rom name="xmerlin2.wav" size="59435590" crc="a8f28490" sha1="3724868526b15215b0d2e949c9fb7d50694b9d44" offset="0" />
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
<software name="x6845p">
|
<software name="x6845p">
|
||||||
<description>6845 Programmer</description>
|
<description>6845 Programmer</description>
|
||||||
<year>198?</year>
|
<year>198?</year>
|
||||||
@ -1537,4 +1563,156 @@
|
|||||||
</dataarea>
|
</dataarea>
|
||||||
</part>
|
</part>
|
||||||
</software>
|
</software>
|
||||||
|
<software name="xbeez80">
|
||||||
|
<description>BEE-Z80</description>
|
||||||
|
<year>1983</year>
|
||||||
|
<publisher>Mytek</publisher>
|
||||||
|
<info name="serial" value="182" />
|
||||||
|
<info name="usage" value="L to load, GA00 to run" />
|
||||||
|
<part name="cass" interface="super80_cass">
|
||||||
|
<dataarea name="cass" size="7924504">
|
||||||
|
<rom name="xbeez80.wav" size="7924504" crc="cc10ad3e" sha1="9d8f58c0f3a2bd4a02295b88324281c4b48036c5" offset="0" />
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
<software name="xbemon">
|
||||||
|
<description>Bemon</description>
|
||||||
|
<year>198?</year>
|
||||||
|
<publisher>unknown</publisher>
|
||||||
|
<info name="serial" value="186" />
|
||||||
|
<info name="usage" value="L to load, G6000 to run" />
|
||||||
|
<part name="cass" interface="super80_cass">
|
||||||
|
<dataarea name="cass" size="7915586">
|
||||||
|
<rom name="xbemon.wav" size="7915586" crc="9d51f95b" sha1="69f70b13c3044d3bf0f938a7305924c5bcd2c495" offset="0" />
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
<software name="xwbee">
|
||||||
|
<description>WordBee</description>
|
||||||
|
<year>198?</year>
|
||||||
|
<publisher>unknown</publisher>
|
||||||
|
<info name="serial" value="199L2" />
|
||||||
|
<info name="usage" value="L to load, G9000 to run" />
|
||||||
|
<part name="cass" interface="super80_cass">
|
||||||
|
<dataarea name="cass" size="15771980">
|
||||||
|
<rom name="xwbee.wav" size="15771980" crc="6ed39e7e" sha1="4161f2561caef238a6b8083f426ea444d31592dc" offset="0" />
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
<software name="xwbee2">
|
||||||
|
<description>WordBee (L3)</description>
|
||||||
|
<year>198?</year>
|
||||||
|
<publisher>unknown</publisher>
|
||||||
|
<info name="serial" value="199L3R2" />
|
||||||
|
<info name="usage" value="L to load, G9000 to run" />
|
||||||
|
<part name="cass" interface="super80_cass">
|
||||||
|
<dataarea name="cass" size="15772104">
|
||||||
|
<rom name="xwbee2.wav" size="15772104" crc="8abe9d89" sha1="c267e868fd65f4fe3a9eb54c28d107d9605a70ff" offset="0" />
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
<software name="xmsinv">
|
||||||
|
<description>Microspace Invaders</description>
|
||||||
|
<year>198?</year>
|
||||||
|
<publisher>unknown</publisher>
|
||||||
|
<info name="developer" value="Tim Morris-Yates"/>
|
||||||
|
<info name="serial" value="242R1" />
|
||||||
|
<info name="usage" value="L to load, G1000 to run" />
|
||||||
|
<part name="cass" interface="super80_cass">
|
||||||
|
<dataarea name="cass" size="13594488">
|
||||||
|
<rom name="xmsinv.wav" size="13594488" crc="8d8b0eb2" sha1="9709eb883513d75dc2213c571e79fadff4f98b51" offset="0" />
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
<software name="xmsinvj">
|
||||||
|
<description>Microspace Invaders (with arrows)</description>
|
||||||
|
<year>198?</year>
|
||||||
|
<publisher>unknown</publisher>
|
||||||
|
<info name="developer" value="Tim Morris-Yates"/>
|
||||||
|
<info name="serial" value="242R1J" />
|
||||||
|
<info name="usage" value="L to load, G1000 to run" />
|
||||||
|
<part name="cass" interface="super80_cass">
|
||||||
|
<dataarea name="cass" size="13594394">
|
||||||
|
<rom name="xmsinvj.wav" size="13594394" crc="12e8a9e0" sha1="37cd4db1f0b9fe208d3b4b11ff504792a7e6a556" offset="0" />
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
<software name="xmsinv2">
|
||||||
|
<description>Microspace Invaders (R2)</description>
|
||||||
|
<year>198?</year>
|
||||||
|
<publisher>unknown</publisher>
|
||||||
|
<info name="developer" value="Tim Morris-Yates"/>
|
||||||
|
<info name="serial" value="242R2" />
|
||||||
|
<info name="usage" value="L to load, G1000 to run" />
|
||||||
|
<part name="cass" interface="super80_cass">
|
||||||
|
<dataarea name="cass" size="13593974">
|
||||||
|
<rom name="xmsinv2.wav" size="13593974" crc="3ea62952" sha1="1f5b2c0d2667f7c2369ebe3c139e52db39bb8974" offset="0" />
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
<software name="xmsinv2j">
|
||||||
|
<description>Microspace Invaders (L2)(with arrows)</description>
|
||||||
|
<year>198?</year>
|
||||||
|
<publisher>unknown</publisher>
|
||||||
|
<info name="developer" value="Tim Morris-Yates"/>
|
||||||
|
<info name="serial" value="242R2J" />
|
||||||
|
<info name="usage" value="L to load, G1000 to run" />
|
||||||
|
<part name="cass" interface="super80_cass">
|
||||||
|
<dataarea name="cass" size="13593876">
|
||||||
|
<rom name="xmsinv2j.wav" size="13593876" crc="b4a74d1c" sha1="6cec67c82499d62d65fbbc111071e4727b2d6cb9" offset="0" />
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
<software name="xkilo">
|
||||||
|
<description>Kilopede</description>
|
||||||
|
<year>1983</year>
|
||||||
|
<publisher>Mytek</publisher>
|
||||||
|
<info name="developer" value="Matthew Hickey"/>
|
||||||
|
<info name="serial" value="254" />
|
||||||
|
<info name="usage" value="L to load, G1C0A to run" />
|
||||||
|
<part name="cass" interface="super80_cass">
|
||||||
|
<dataarea name="cass" size="12734362">
|
||||||
|
<rom name="xkilo.wav" size="12734362" crc="49f4d2df" sha1="09b5bce6679942cc4ef538ee35c5a05165596b80" offset="0" />
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
<software name="xkiloj">
|
||||||
|
<description>Kilopede (with arrows)</description>
|
||||||
|
<year>1983</year>
|
||||||
|
<publisher>Mytek</publisher>
|
||||||
|
<info name="developer" value="Matthew Hickey"/>
|
||||||
|
<info name="serial" value="254J" />
|
||||||
|
<info name="usage" value="L to load, G1C0A to run" />
|
||||||
|
<part name="cass" interface="super80_cass">
|
||||||
|
<dataarea name="cass" size="12734342">
|
||||||
|
<rom name="xkiloj.wav" size="12734342" crc="8bb81ded" sha1="3b151c71d5ac977ffe2b127dbc6935fe7ec7ea40" offset="0" />
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
<software name="xkilo1">
|
||||||
|
<description>Kilopede (R1)</description>
|
||||||
|
<year>1983</year>
|
||||||
|
<publisher>Mytek</publisher>
|
||||||
|
<info name="developer" value="Matthew Hickey"/>
|
||||||
|
<info name="serial" value="254R1" />
|
||||||
|
<info name="usage" value="L to load, G1C0A to run" />
|
||||||
|
<part name="cass" interface="super80_cass">
|
||||||
|
<dataarea name="cass" size="12734206">
|
||||||
|
<rom name="xkilo1.wav" size="12734206" crc="ab4a7ba6" sha1="cf3e780fd8028110ef0a48e7081f5995a74c98bd" offset="0" />
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
|
<software name="xkilo1j">
|
||||||
|
<description>Kilopede (R1)(with arrows)</description>
|
||||||
|
<year>1983</year>
|
||||||
|
<publisher>Mytek</publisher>
|
||||||
|
<info name="developer" value="Matthew Hickey"/>
|
||||||
|
<info name="serial" value="254R1J" />
|
||||||
|
<info name="usage" value="L to load, G1C0A to run" />
|
||||||
|
<part name="cass" interface="super80_cass">
|
||||||
|
<dataarea name="cass" size="12734186">
|
||||||
|
<rom name="xkilo1j.wav" size="12734186" crc="b8d35ef2" sha1="290db24766016be5ba4d106e4fd9eab310e9671e" offset="0" />
|
||||||
|
</dataarea>
|
||||||
|
</part>
|
||||||
|
</software>
|
||||||
</softwarelist>
|
</softwarelist>
|
||||||
|
@ -2378,22 +2378,21 @@ void nv2a_renderer::convert_vertices_poly(vertex_nv *source, vertex_t *destinati
|
|||||||
for (int j = 0; j < 4; j++)
|
for (int j = 0; j < 4; j++)
|
||||||
v[i] += matrix.projection[i][j] * t[j];
|
v[i] += matrix.projection[i][j] * t[j];
|
||||||
};
|
};
|
||||||
/*if (matrix.scale[3] != 0)
|
/*for (int i = 0; i < 3; i++) {
|
||||||
for (int i = 0; i < 4; i++) {
|
v[i] *= matrix.scale[i];
|
||||||
v[i] *= matrix.scale[i];
|
}
|
||||||
}
|
for (int i = 0; i < 3; i++) {
|
||||||
for (int i = 0; i < 4; i++) {
|
|
||||||
v[i] += matrix.translate[i];
|
v[i] += matrix.translate[i];
|
||||||
}*/
|
}*/
|
||||||
destination[m].x = (v[0] / v[3])*supersample_factor_x; // source[m].attribute[0].fv[0];
|
destination[m].x = (v[0] / v[3])*supersample_factor_x; // source[m].attribute[0].fv[0];
|
||||||
destination[m].y = (v[1] / v[3])*supersample_factor_y; // source[m].attribute[0].fv[1];
|
destination[m].y = (v[1] / v[3])*supersample_factor_y; // source[m].attribute[0].fv[1];
|
||||||
|
destination[m].p[(int)VERTEX_PARAMETER::PARAM_Z] = v[2] / v[3];
|
||||||
for (u = (int)VERTEX_PARAMETER::PARAM_COLOR_B; u <= (int)VERTEX_PARAMETER::PARAM_COLOR_A; u++) // 0=b 1=g 2=r 3=a
|
for (u = (int)VERTEX_PARAMETER::PARAM_COLOR_B; u <= (int)VERTEX_PARAMETER::PARAM_COLOR_A; u++) // 0=b 1=g 2=r 3=a
|
||||||
destination[m].p[u] = source[m].attribute[3].fv[u];
|
destination[m].p[u] = source[m].attribute[3].fv[u];
|
||||||
for (u = 0; u < 4; u++) {
|
for (u = 0; u < 4; u++) {
|
||||||
destination[m].p[(int)VERTEX_PARAMETER::PARAM_TEXTURE0_U + u * 2] = source[m].attribute[9 + u].fv[0];
|
destination[m].p[(int)VERTEX_PARAMETER::PARAM_TEXTURE0_U + u * 2] = source[m].attribute[9 + u].fv[0];
|
||||||
destination[m].p[(int)VERTEX_PARAMETER::PARAM_TEXTURE0_V + u * 2] = source[m].attribute[9 + u].fv[1];
|
destination[m].p[(int)VERTEX_PARAMETER::PARAM_TEXTURE0_V + u * 2] = source[m].attribute[9 + u].fv[1];
|
||||||
}
|
}
|
||||||
destination[m].p[(int)VERTEX_PARAMETER::PARAM_Z] = v[2] / v[3];
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -2669,8 +2668,8 @@ void nv2a_renderer::assemble_primitive(vertex_nv *source, int count, render_dele
|
|||||||
if (vertex_accumulated == 4) {
|
if (vertex_accumulated == 4) {
|
||||||
primitives_count++;
|
primitives_count++;
|
||||||
vertex_accumulated = 0;
|
vertex_accumulated = 0;
|
||||||
render_triangle_culling(limits_rendertarget, renderspans, 4 + 4 * 2, vertex_xy[vertex_count], vertex_xy[vertex_count + 1], vertex_xy[vertex_count + 2]);
|
render_triangle_culling(limits_rendertarget, renderspans, 5 + 4 * 2, vertex_xy[vertex_count], vertex_xy[vertex_count + 1], vertex_xy[vertex_count + 2]);
|
||||||
render_triangle_culling(limits_rendertarget, renderspans, 4 + 4 * 2, vertex_xy[vertex_count], vertex_xy[vertex_count + 2], vertex_xy[vertex_count + 3]);
|
render_triangle_culling(limits_rendertarget, renderspans, 5 + 4 * 2, vertex_xy[vertex_count], vertex_xy[vertex_count + 2], vertex_xy[vertex_count + 3]);
|
||||||
vertex_count = (vertex_count + 4) & 1023;
|
vertex_count = (vertex_count + 4) & 1023;
|
||||||
wait();
|
wait();
|
||||||
}
|
}
|
||||||
@ -2681,7 +2680,7 @@ void nv2a_renderer::assemble_primitive(vertex_nv *source, int count, render_dele
|
|||||||
if (vertex_accumulated == 3) {
|
if (vertex_accumulated == 3) {
|
||||||
primitives_count++;
|
primitives_count++;
|
||||||
vertex_accumulated = 0;
|
vertex_accumulated = 0;
|
||||||
render_triangle_culling(limits_rendertarget, renderspans, 4 + 4 * 2, vertex_xy[vertex_count], vertex_xy[(vertex_count + 1) & 1023], vertex_xy[(vertex_count + 2) & 1023]); // 4 rgba, 4 texture units 2 uv
|
render_triangle_culling(limits_rendertarget, renderspans, 5 + 4 * 2, vertex_xy[vertex_count], vertex_xy[(vertex_count + 1) & 1023], vertex_xy[(vertex_count + 2) & 1023]); // 4 rgba, 4 texture units 2 uv
|
||||||
vertex_count = (vertex_count + 3) & 1023;
|
vertex_count = (vertex_count + 3) & 1023;
|
||||||
wait();
|
wait();
|
||||||
}
|
}
|
||||||
@ -2704,7 +2703,7 @@ void nv2a_renderer::assemble_primitive(vertex_nv *source, int count, render_dele
|
|||||||
// if software sends the vertices 0 1 2 3 4 5 6
|
// if software sends the vertices 0 1 2 3 4 5 6
|
||||||
// hardware will draw triangles made by (0,1,2) (0,2,3) (0,3,4) (0,4,5) (0,5,6)
|
// hardware will draw triangles made by (0,1,2) (0,2,3) (0,3,4) (0,4,5) (0,5,6)
|
||||||
convert_vertices_poly(source, vertex_xy + vertex_count, 1);
|
convert_vertices_poly(source, vertex_xy + vertex_count, 1);
|
||||||
render_triangle_culling(limits_rendertarget, renderspans, 4 + 4 * 2, vertex_xy[1024], vertex_xy[(vertex_count - 1) & 1023], vertex_xy[vertex_count]);
|
render_triangle_culling(limits_rendertarget, renderspans, 5 + 4 * 2, vertex_xy[1024], vertex_xy[(vertex_count - 1) & 1023], vertex_xy[vertex_count]);
|
||||||
vertex_count = (vertex_count + 1) & 1023;
|
vertex_count = (vertex_count + 1) & 1023;
|
||||||
wait();
|
wait();
|
||||||
}
|
}
|
||||||
@ -2728,9 +2727,9 @@ void nv2a_renderer::assemble_primitive(vertex_nv *source, int count, render_dele
|
|||||||
// hardware will draw triangles made by (0,1,2) (1,3,2) (2,3,4) (3,5,4) (4,5,6)
|
// hardware will draw triangles made by (0,1,2) (1,3,2) (2,3,4) (3,5,4) (4,5,6)
|
||||||
convert_vertices_poly(source, vertex_xy + vertex_count, 1);
|
convert_vertices_poly(source, vertex_xy + vertex_count, 1);
|
||||||
if ((vertex_count & 1) == 0)
|
if ((vertex_count & 1) == 0)
|
||||||
render_triangle_culling(limits_rendertarget, renderspans, 4 + 4 * 2, vertex_xy[(vertex_count - 2) & 1023], vertex_xy[(vertex_count - 1) & 1023], vertex_xy[vertex_count]);
|
render_triangle_culling(limits_rendertarget, renderspans, 5 + 4 * 2, vertex_xy[(vertex_count - 2) & 1023], vertex_xy[(vertex_count - 1) & 1023], vertex_xy[vertex_count]);
|
||||||
else
|
else
|
||||||
render_triangle_culling(limits_rendertarget, renderspans, 4 + 4 * 2, vertex_xy[(vertex_count - 2) & 1023], vertex_xy[vertex_count], vertex_xy[(vertex_count - 1) & 1023]);
|
render_triangle_culling(limits_rendertarget, renderspans, 5 + 4 * 2, vertex_xy[(vertex_count - 2) & 1023], vertex_xy[vertex_count], vertex_xy[(vertex_count - 1) & 1023]);
|
||||||
vertex_count = (vertex_count + 1) & 1023;
|
vertex_count = (vertex_count + 1) & 1023;
|
||||||
wait();
|
wait();
|
||||||
}
|
}
|
||||||
@ -2755,8 +2754,8 @@ void nv2a_renderer::assemble_primitive(vertex_nv *source, int count, render_dele
|
|||||||
{
|
{
|
||||||
primitives_count++;
|
primitives_count++;
|
||||||
// quad is made of vertices vertex count +0 +1 +3 +2
|
// quad is made of vertices vertex count +0 +1 +3 +2
|
||||||
render_triangle_culling(limits_rendertarget, renderspans, 4 + 4 * 2, vertex_xy[vertex_count + 0], vertex_xy[vertex_count + 1], vertex_xy[(vertex_count + 3) & 1023]);
|
render_triangle_culling(limits_rendertarget, renderspans, 5 + 4 * 2, vertex_xy[vertex_count + 0], vertex_xy[vertex_count + 1], vertex_xy[(vertex_count + 3) & 1023]);
|
||||||
render_triangle_culling(limits_rendertarget, renderspans, 4 + 4 * 2, vertex_xy[(vertex_count + 3) & 1023], vertex_xy[(vertex_count + 2) & 1023], vertex_xy[vertex_count + 0]);
|
render_triangle_culling(limits_rendertarget, renderspans, 5 + 4 * 2, vertex_xy[(vertex_count + 3) & 1023], vertex_xy[(vertex_count + 2) & 1023], vertex_xy[vertex_count + 0]);
|
||||||
vertex_accumulated = 2;
|
vertex_accumulated = 2;
|
||||||
vertex_count = (vertex_count + 2) & 1023;
|
vertex_count = (vertex_count + 2) & 1023;
|
||||||
wait();
|
wait();
|
||||||
|
Loading…
Reference in New Issue
Block a user