trunk/src/mame/video/chihiro.c
| r249171 | r249172 | |
| 1240 | 1240 | } |
| 1241 | 1241 | } |
| 1242 | 1242 | |
| 1243 | inline UINT8 *nv2a_renderer::read_pixel(int x, int y, UINT32 c[4]) |
| 1244 | { |
| 1245 | UINT32 offset; |
| 1246 | UINT32 color; |
| 1247 | UINT32 *addr; |
| 1248 | UINT16 *addr16; |
| 1249 | UINT8 *addr8; |
| 1250 | |
| 1251 | if (type_rendertarget == SWIZZLED) |
| 1252 | offset = (dilated0[dilate_rendertarget][x] + dilated1[dilate_rendertarget][y]) * bytespixel_rendertarget; |
| 1253 | else // type_rendertarget == LINEAR*/ |
| 1254 | offset = pitch_rendertarget * y + x * bytespixel_rendertarget; |
| 1255 | switch (colorformat_rendertarget) { |
| 1256 | case NV2A_COLOR_FORMAT_R5G6B5: |
| 1257 | addr16 = (UINT16 *)((UINT8 *)rendertarget + offset); |
| 1258 | color = *addr16; |
| 1259 | c[3] = 0xff; |
| 1260 | c[2] = pal5bit((color & 0xf800) >> 11); |
| 1261 | c[1] = pal6bit((color & 0x07e0) >> 5); |
| 1262 | c[0] = pal5bit(color & 0x1f); |
| 1263 | return (UINT8 *)addr16; |
| 1264 | case NV2A_COLOR_FORMAT_X8R8G8B8: |
| 1265 | addr = (UINT32 *)((UINT8 *)rendertarget + offset); |
| 1266 | color = *addr; |
| 1267 | |
| 1268 | c[3] = 0xff; |
| 1269 | c[2] = (color >> 16) & 255; |
| 1270 | c[1] = (color >> 8) & 255; |
| 1271 | c[0] = color & 255; |
| 1272 | return (UINT8 *)addr; |
| 1273 | case NV2A_COLOR_FORMAT_A8R8G8B8: |
| 1274 | addr = (UINT32 *)((UINT8 *)rendertarget + offset); |
| 1275 | color = *addr; |
| 1276 | c[3] = color >> 24; |
| 1277 | c[2] = (color >> 16) & 255; |
| 1278 | c[1] = (color >> 8) & 255; |
| 1279 | c[0] = color & 255; |
| 1280 | return (UINT8 *)addr; |
| 1281 | case NV2A_COLOR_FORMAT_B8: |
| 1282 | addr8 = (UINT8 *)rendertarget + offset; |
| 1283 | c[0] = *addr8; |
| 1284 | c[1] = c[2] = 0; |
| 1285 | c[3] = 0xff; |
| 1286 | return addr8; |
| 1287 | } |
| 1288 | return NULL; |
| 1289 | } |
| 1290 | |
| 1243 | 1291 | void nv2a_renderer::write_pixel(int x, int y, UINT32 color, UINT32 depth) |
| 1244 | 1292 | { |
| 1245 | | UINT32 *addr, *daddr; |
| 1246 | | UINT32 fbcolor, deptsten; |
| 1293 | UINT8 *addr; |
| 1294 | UINT32 *daddr32; |
| 1295 | UINT16 *daddr16; |
| 1296 | UINT32 deptsten; |
| 1247 | 1297 | UINT32 c[4], fb[4], s[4], d[4], cc[4]; |
| 1248 | 1298 | UINT32 dep, sten, stenc, stenv; |
| 1249 | 1299 | bool stencil_passed; |
| 1250 | 1300 | bool depth_passed; |
| 1251 | 1301 | |
| 1252 | | if (type_rendertarget == SWIZZLED) |
| 1253 | | addr = rendertarget + (dilated0[dilate_rendertarget][x] + dilated1[dilate_rendertarget][y]); |
| 1254 | | else // type_rendertarget == LINEAR*/ |
| 1255 | | addr = rendertarget + (pitch_rendertarget / 4)*y + x; |
| 1256 | | fbcolor = 0; |
| 1302 | fb[3] = fb[2] = fb[1] = fb[0] = 0; |
| 1303 | addr = NULL; |
| 1257 | 1304 | if (color_mask != 0) |
| 1258 | | fbcolor = *addr; |
| 1259 | | daddr=depthbuffer + (pitch_depthbuffer / 4)*y + x; |
| 1260 | | deptsten = *daddr; |
| 1305 | addr = read_pixel(x, y, fb); |
| 1306 | if (depthformat_rendertarget == NV2A_RT_DEPTH_FORMAT_Z24S8) { |
| 1307 | daddr32 = depthbuffer + (pitch_depthbuffer / 4) * y + x; |
| 1308 | deptsten = *daddr32; |
| 1309 | dep = deptsten >> 8; |
| 1310 | sten = deptsten & 255; |
| 1311 | daddr16 = NULL; |
| 1312 | } |
| 1313 | else if (depthformat_rendertarget == NV2A_RT_DEPTH_FORMAT_Z16) { |
| 1314 | daddr16 = (UINT16 *)depthbuffer + (pitch_depthbuffer / 2) * y + x; |
| 1315 | deptsten = *daddr16; |
| 1316 | dep = (deptsten << 8) | 0xff; |
| 1317 | sten = 0; |
| 1318 | daddr32 = NULL; |
| 1319 | } |
| 1320 | else { |
| 1321 | daddr32 = NULL; |
| 1322 | daddr16 = NULL; |
| 1323 | dep = 0xffffff; |
| 1324 | sten = 0; |
| 1325 | } |
| 1326 | if (depth > 0xffffff) |
| 1327 | depth = 0xffffff; |
| 1261 | 1328 | c[3] = color >> 24; |
| 1262 | 1329 | c[2] = (color >> 16) & 255; |
| 1263 | 1330 | c[1] = (color >> 8) & 255; |
| 1264 | 1331 | c[0] = color & 255; |
| 1265 | | fb[3] = fbcolor >> 24; |
| 1266 | | fb[2] = (fbcolor >> 16) & 255; |
| 1267 | | fb[1] = (fbcolor >> 8) & 255; |
| 1268 | | fb[0] = fbcolor & 255; |
| 1269 | 1332 | cc[3] = blend_color >> 24; |
| 1270 | 1333 | cc[2] = (blend_color >> 16) & 255; |
| 1271 | 1334 | cc[1] = (blend_color >> 8) & 255; |
| 1272 | 1335 | cc[0] = blend_color & 255; |
| 1273 | | dep = deptsten >> 8; |
| 1274 | | sten = deptsten & 255; |
| 1275 | | if (depth > 0xffffff) |
| 1276 | | depth = 0xffffff; |
| 1277 | | if (depth & 0x80000000) |
| 1278 | | depth = 0; |
| 1279 | 1336 | // ownership test and scissor test not done |
| 1280 | 1337 | // alpha test |
| 1281 | 1338 | if (alpha_test_enabled) { |
| r249171 | r249172 | |
| 1383 | 1440 | sten = 255; |
| 1384 | 1441 | break; |
| 1385 | 1442 | } |
| 1386 | | deptsten = (dep << 8) | sten; |
| 1387 | | *daddr = deptsten; |
| 1443 | if (depthformat_rendertarget == NV2A_RT_DEPTH_FORMAT_Z24S8) { |
| 1444 | deptsten = (dep << 8) | sten; |
| 1445 | *daddr32 = deptsten; |
| 1446 | } |
| 1447 | else if (depthformat_rendertarget == NV2A_RT_DEPTH_FORMAT_Z16) { |
| 1448 | deptsten = dep >> 8; |
| 1449 | *daddr16 = (UINT16)deptsten; |
| 1450 | } |
| 1388 | 1451 | return; |
| 1389 | 1452 | } |
| 1390 | 1453 | } |
| r249171 | r249172 | |
| 1458 | 1521 | sten = 255; |
| 1459 | 1522 | break; |
| 1460 | 1523 | } |
| 1461 | | deptsten = (dep << 8) | sten; |
| 1462 | | *daddr = deptsten; |
| 1524 | if (depthformat_rendertarget == NV2A_RT_DEPTH_FORMAT_Z24S8) { |
| 1525 | deptsten = (dep << 8) | sten; |
| 1526 | *daddr32 = deptsten; |
| 1527 | } |
| 1528 | else if (depthformat_rendertarget == NV2A_RT_DEPTH_FORMAT_Z16) { |
| 1529 | deptsten = dep >> 8; |
| 1530 | *daddr16 = (UINT16)deptsten; |
| 1531 | } |
| 1463 | 1532 | return; |
| 1464 | 1533 | } |
| 1465 | 1534 | switch (stencil_op_zpass) { |
| r249171 | r249172 | |
| 1782 | 1851 | } |
| 1783 | 1852 | } |
| 1784 | 1853 | if (color_mask != 0) { |
| 1785 | | UINT32 fbcolor_tmp; |
| 1854 | UINT32 ct,ft,w; |
| 1786 | 1855 | |
| 1787 | | fbcolor_tmp = (c[3] << 24) | (c[2] << 16) | (c[1] << 8) | c[0]; |
| 1788 | | *addr = (fbcolor & ~color_mask) | (fbcolor_tmp & color_mask); |
| 1856 | ct = (c[3] << 24) | (c[2] << 16) | (c[1] << 8) | c[0]; |
| 1857 | ft = (fb[3] << 24) | (fb[2] << 16) | (fb[1] << 8) | fb[0]; |
| 1858 | w = (ft & ~color_mask) | (ct & color_mask); |
| 1859 | switch (colorformat_rendertarget) { |
| 1860 | case NV2A_COLOR_FORMAT_R5G6B5: |
| 1861 | w = ((w >> 8) & 0xf800) + ((w >> 5) & 0x7e0) + ((w >> 3) & 0x1f); |
| 1862 | *((UINT16 *)addr) = (UINT16)w; |
| 1863 | break; |
| 1864 | case NV2A_COLOR_FORMAT_X8R8G8B8: |
| 1865 | *((UINT32 *)addr) = w; |
| 1866 | break; |
| 1867 | case NV2A_COLOR_FORMAT_A8R8G8B8: |
| 1868 | *((UINT32 *)addr) = w; |
| 1869 | break; |
| 1870 | case NV2A_COLOR_FORMAT_B8: |
| 1871 | *addr = (UINT8)w; |
| 1872 | break; |
| 1873 | } |
| 1789 | 1874 | } |
| 1790 | 1875 | if (depth_write_enabled) |
| 1791 | 1876 | dep = depth; |
| 1792 | | deptsten = (dep << 8) | sten; |
| 1793 | | *daddr = deptsten; |
| 1877 | if (depthformat_rendertarget == NV2A_RT_DEPTH_FORMAT_Z24S8) { |
| 1878 | deptsten = (dep << 8) | sten; |
| 1879 | *daddr32 = deptsten; |
| 1880 | } |
| 1881 | else if (depthformat_rendertarget == NV2A_RT_DEPTH_FORMAT_Z16) { |
| 1882 | deptsten = dep >> 8; |
| 1883 | *daddr16 = (UINT16)deptsten; |
| 1884 | } |
| 1794 | 1885 | } |
| 1795 | 1886 | |
| 1796 | 1887 | void nv2a_renderer::render_color(INT32 scanline, const extent_t &extent, const nvidia_object_data &objectdata, int threadid) |
| r249171 | r249172 | |
| 2238 | 2329 | } |
| 2239 | 2330 | } |
| 2240 | 2331 | |
| 2332 | void nv2a_renderer::clear_depth_buffer(int what, UINT32 value) |
| 2333 | { |
| 2334 | int m; |
| 2335 | |
| 2336 | m = antialias_control; |
| 2337 | if (antialiasing_rendertarget != 0) |
| 2338 | m = 2; |
| 2339 | else |
| 2340 | m = 1; |
| 2341 | if (what == 3) { |
| 2342 | if (depthformat_rendertarget == NV2A_RT_DEPTH_FORMAT_Z24S8) { |
| 2343 | UINT32 *p, *pl; |
| 2344 | int x, y; |
| 2345 | |
| 2346 | pl = (UINT32 *)depthbuffer; |
| 2347 | for (y = (limits_rendertarget.bottom() + 1) * m; y != 0; y--) { |
| 2348 | p = pl; |
| 2349 | for (x = (limits_rendertarget.right() + 1) * m; x != 0; x--) { |
| 2350 | *p = value; |
| 2351 | p++; |
| 2352 | } |
| 2353 | pl = pl + pitch_rendertarget / 4; |
| 2354 | } |
| 2355 | } |
| 2356 | else if (depthformat_rendertarget == NV2A_RT_DEPTH_FORMAT_Z16) { |
| 2357 | UINT16 *p, *pl; |
| 2358 | int x, y; |
| 2359 | |
| 2360 | pl = (UINT16 *)depthbuffer; |
| 2361 | for (y = (limits_rendertarget.bottom() + 1) * m; y != 0; y--) { |
| 2362 | p = pl; |
| 2363 | for (x = (limits_rendertarget.right() + 1) * m; x != 0; x--) { |
| 2364 | *p = (UINT16)value; |
| 2365 | p++; |
| 2366 | } |
| 2367 | pl = pl + pitch_rendertarget / 2; |
| 2368 | } |
| 2369 | } |
| 2370 | } |
| 2371 | else { |
| 2372 | if (depthformat_rendertarget == NV2A_RT_DEPTH_FORMAT_Z24S8) { |
| 2373 | UINT32 mask; |
| 2374 | UINT32 *p, *pl; |
| 2375 | int x, y; |
| 2376 | |
| 2377 | if ((what & 0x03) == 2) |
| 2378 | mask = 0x000000ff; |
| 2379 | else |
| 2380 | mask = 0xffffff00; |
| 2381 | value = value & mask; |
| 2382 | pl = depthbuffer; |
| 2383 | for (y = (limits_rendertarget.bottom() + 1) * m; y != 0; y--) { |
| 2384 | p = pl; |
| 2385 | for (x = (limits_rendertarget.right() + 1) * m; x != 0; x--) { |
| 2386 | *p = (*p & ~mask) | value; |
| 2387 | p++; |
| 2388 | } |
| 2389 | pl = pl + pitch_rendertarget / 4; |
| 2390 | } |
| 2391 | } |
| 2392 | else if ((depthformat_rendertarget == NV2A_RT_DEPTH_FORMAT_Z16) && (what == 1)) { |
| 2393 | UINT16 *p, *pl; |
| 2394 | int x, y; |
| 2395 | |
| 2396 | pl = (UINT16 *)depthbuffer; |
| 2397 | for (y = (limits_rendertarget.bottom() + 1) * m; y != 0; y--) { |
| 2398 | p = pl; |
| 2399 | for (x = (limits_rendertarget.right() + 1) * m; x != 0; x--) { |
| 2400 | *p = (UINT16)value; |
| 2401 | p++; |
| 2402 | } |
| 2403 | pl = pl + pitch_rendertarget / 2; |
| 2404 | } |
| 2405 | } |
| 2406 | } |
| 2407 | } |
| 2408 | |
| 2241 | 2409 | int nv2a_renderer::geforce_exec_method(address_space & space, UINT32 chanel, UINT32 subchannel, UINT32 method, UINT32 address, int &countlen) |
| 2242 | 2410 | { |
| 2243 | 2411 | UINT32 maddress; |
| r249171 | r249172 | |
| 2359 | 2527 | convert_vertices_poly(vert, xy, 4); |
| 2360 | 2528 | render_polygon<4>(limits_rendertarget, renderspans, 4 + 4 * 2, xy); // 4 rgba, 4 texture units 2 uv |
| 2361 | 2529 | } |
| 2530 | wait(); |
| 2362 | 2531 | } |
| 2363 | 2532 | else if (type == nv2a_renderer::TRIANGLE_FAN) { |
| 2364 | 2533 | if ((countlen * mult + indexesleft_count) >= 3) { |
| r249171 | r249172 | |
| 2405 | 2574 | convert_vertices_poly(vert, xy, 3); |
| 2406 | 2575 | render_triangle(limits_rendertarget, renderspans, 4 + 4 * 2, xy[0], xy[1], xy[2]); // 4 rgba, 4 texture units 2 uv |
| 2407 | 2576 | } |
| 2577 | wait(); |
| 2408 | 2578 | } |
| 2409 | 2579 | else if (type == nv2a_renderer::TRIANGLE_STRIP) { |
| 2410 | 2580 | if ((countlen * mult + indexesleft_count) >= 3) { |
| r249171 | r249172 | |
| 2432 | 2602 | xy[(n + 2) & 3].y = xy[(n + 2) & 3].y + 1.0f; |
| 2433 | 2603 | render_triangle(limits_rendertarget, renderspans, 4 + 4 * 2, xy[((n & 1) + n) & 3], xy[((~n & 1) + n) & 3], xy[(2 + n) & 3]); |
| 2434 | 2604 | } |
| 2605 | wait(); |
| 2435 | 2606 | } |
| 2436 | 2607 | } |
| 2437 | 2608 | else { |
| r249171 | r249172 | |
| 2519 | 2690 | address = address + c * 3; |
| 2520 | 2691 | render_triangle(limits_rendertarget, renderspans, 4 + 4 * 2, xy[0], xy[1], xy[2]); // 4 rgba, 4 texture units 2 uv |
| 2521 | 2692 | } |
| 2693 | wait(); |
| 2522 | 2694 | } |
| 2523 | 2695 | else if (type == nv2a_renderer::TRIANGLE_STRIP) { |
| 2524 | 2696 | vertex_nv vert[4]; |
| r249171 | r249172 | |
| 2666 | 2838 | space.write_dword(base + offset, data); |
| 2667 | 2839 | countlen--; |
| 2668 | 2840 | } |
| 2841 | if (maddress == 0x1d7c) { |
| 2842 | antialias_control = data; |
| 2843 | countlen--; |
| 2844 | } |
| 2669 | 2845 | if (maddress == 0x1d98) { |
| 2670 | 2846 | countlen--; |
| 2671 | 2847 | } |
| r249171 | r249172 | |
| 2675 | 2851 | if (maddress == 0x1d94) { |
| 2676 | 2852 | int m; |
| 2677 | 2853 | |
| 2678 | | m = channel[chanel][subchannel].object.method[0x1d7c / 4]; |
| 2854 | m = antialias_control; |
| 2679 | 2855 | if (antialiasing_rendertarget != 0) |
| 2680 | 2856 | m = 2; |
| 2681 | 2857 | else |
| r249171 | r249172 | |
| 2683 | 2859 | // possible buffers: color, depth, stencil |
| 2684 | 2860 | // clear framebuffer |
| 2685 | 2861 | if (data & 0xf0) { |
| 2686 | | bitmap_rgb32 bm(rendertarget, (limits_rendertarget.right() + 1) * m, (limits_rendertarget.bottom() + 1) * m, pitch_rendertarget / 4); // why *2 ? |
| 2687 | | // clear colors |
| 2688 | | UINT32 color = channel[chanel][subchannel].object.method[0x1d90 / 4]; |
| 2689 | | bm.fill(color); |
| 2862 | if (bytespixel_rendertarget == 4) { |
| 2863 | bitmap_rgb32 bm(rendertarget, (limits_rendertarget.right() + 1) * m, (limits_rendertarget.bottom() + 1) * m, pitch_rendertarget / 4); |
| 2864 | |
| 2865 | UINT32 color = channel[chanel][subchannel].object.method[0x1d90 / 4]; |
| 2866 | bm.fill(color); |
| 2867 | } |
| 2868 | else if (bytespixel_rendertarget == 2) { |
| 2869 | bitmap_ind16 bm((UINT16 *)rendertarget, (limits_rendertarget.right() + 1) * m, (limits_rendertarget.bottom() + 1) * m, pitch_rendertarget / 2); |
| 2870 | |
| 2871 | UINT16 color = channel[chanel][subchannel].object.method[0x1d90 / 4] & 0xffff; |
| 2872 | |
| 2873 | bm.fill(color); |
| 2874 | } |
| 2875 | else if (bytespixel_rendertarget == 1) { |
| 2876 | UINT8 color = channel[chanel][subchannel].object.method[0x1d90 / 4] & 0xff; |
| 2877 | |
| 2878 | memset(rendertarget, color, pitch_rendertarget*(limits_rendertarget.bottom() + 1) * m); |
| 2879 | } |
| 2690 | 2880 | #ifdef LOG_NV2A |
| 2691 | 2881 | printf("clearscreen\n\r"); |
| 2692 | 2882 | #endif |
| 2693 | 2883 | } |
| 2694 | | if ((data & 0x03) == 3) { |
| 2695 | | bitmap_rgb32 bm(depthbuffer, (limits_rendertarget.right() + 1) * m, (limits_rendertarget.bottom() + 1) * m, pitch_rendertarget / 4); // why *2 ? |
| 2696 | | // clear zbuffer and stencil |
| 2697 | | UINT32 depth_stencil = channel[chanel][subchannel].object.method[0x1d8c / 4]; |
| 2698 | | bm.fill(depth_stencil); |
| 2699 | | } |
| 2700 | | else if (((data & 0x03) == 1) || ((data & 0x03) == 2)) |
| 2701 | | logerror("Unsupported clear method parameter %d\n\r", data & 0x03); |
| 2884 | clear_depth_buffer(data & 3, channel[chanel][subchannel].object.method[0x1d8c / 4]); |
| 2702 | 2885 | countlen--; |
| 2703 | 2886 | } |
| 2704 | 2887 | if (maddress == 0x0200) { |
| r249171 | r249172 | |
| 2720 | 2903 | log2width_rendertarget = (data >> 16) & 255; |
| 2721 | 2904 | antialiasing_rendertarget = (data >> 12) & 15; |
| 2722 | 2905 | type_rendertarget = (data >> 8) & 15; |
| 2723 | | depth_rendertarget = (data >> 4) & 15; |
| 2724 | | color_rendertarget = (data >> 0) & 15;; |
| 2906 | depthformat_rendertarget = (data >> 4) & 15; |
| 2907 | colorformat_rendertarget = (data >> 0) & 15; |
| 2908 | switch (colorformat_rendertarget) { |
| 2909 | case NV2A_COLOR_FORMAT_R5G6B5: |
| 2910 | bytespixel_rendertarget = 2; |
| 2911 | break; |
| 2912 | case NV2A_COLOR_FORMAT_X8R8G8B8: |
| 2913 | case NV2A_COLOR_FORMAT_A8R8G8B8: |
| 2914 | bytespixel_rendertarget = 4; |
| 2915 | break; |
| 2916 | case NV2A_COLOR_FORMAT_B8: |
| 2917 | bytespixel_rendertarget = 1; |
| 2918 | break; |
| 2919 | default: |
| 2920 | #ifdef LOG_NV2A |
| 2921 | printf("Unknown render target color format %d\n\r", colorformat_rendertarget); |
| 2922 | #endif |
| 2923 | bytespixel_rendertarget = 4; |
| 2924 | break; |
| 2925 | } |
| 2725 | 2926 | dilate_rendertarget = dilatechose[(log2width_rendertarget << 4) + log2height_rendertarget]; |
| 2726 | 2927 | } |
| 2727 | 2928 | if (maddress == 0x020c) { |
trunk/src/mess/drivers/xbox.c
| r249171 | r249172 | |
| 122 | 122 | |
| 123 | 123 | void xbox_state::hack_eeprom() |
| 124 | 124 | { |
| 125 | | // 8003b744,3b744=0x90 0x90 |
| 126 | | /*m_maincpu->space(0).write_byte(0x3b744, 0x90); |
| 127 | | m_maincpu->space(0).write_byte(0x3b745, 0x90); |
| 128 | | m_maincpu->space(0).write_byte(0x3b766, 0xc9); |
| 129 | | m_maincpu->space(0).write_byte(0x3b767, 0xc3);*/ |
| 125 | // 8004e5da,4e5da=0xc3 |
| 126 | m_maincpu->space(0).write_byte(0x4e5da, 0xc3); |
| 130 | 127 | } |
| 131 | 128 | |
| 132 | 129 | /*static const struct { |
| r249171 | r249172 | |
| 196 | 193 | ***************************************************************************/ |
| 197 | 194 | |
| 198 | 195 | ROM_START( xbox ) |
| 199 | | ROM_REGION( 0x200, "mcpx", 0 ) |
| 196 | ROM_REGION( 0x400, "mcpx", 0 ) |
| 197 | // mcpx_1_0.bin is bad, first byte (0x7f) sould be removed and a byte with value 0xee added at the end |
| 200 | 198 | ROM_LOAD( "mcpx_1_0.bin", 0, 0x200, CRC(f31429fc) SHA1(a9ecbf8896d10db81594923e485862aa3aac7b58) ) |
| 201 | | ROM_LOAD( "mcpx_1_1.bin", 0, 0x200, CRC(94ce376b) SHA1(6c875f17f773aaec51eb434068bb6c657c4343c0) ) |
| 199 | ROM_LOAD( "mcpx_1_1.bin", 0x200, 0x200, CRC(94ce376b) SHA1(6c875f17f773aaec51eb434068bb6c657c4343c0) ) |
| 202 | 200 | |
| 203 | | ROM_REGION( 0x80000, "bios", 0) |
| 204 | | ROM_LOAD( "xbox-5530.bin", 0x000000, 0x040000, CRC(9569c4d3) SHA1(40fa73277013be3168135e1768b09623a987ff63) ) |
| 205 | | ROM_LOAD( "xbox-5713.bin", 0x040000, 0x040000, CRC(58fd8173) SHA1(8b7ccc4648ccd78cdb7b65cfca09621eaf2d4238) ) |
| 206 | | ROM_COPY( "mcpx", 0, 0x7fe00, 0x200 ) |
| 201 | ROM_REGION( 0x100000, "bios", 0) |
| 202 | ROM_LOAD( "4134_1024k.bin", 0x000000, 0x100000, CRC(49d8055a) SHA1(d46cef771a63dc8024fe36d7ab5b959087ac999f) ) |
| 203 | ROM_COPY( "mcpx", 1, 0x7fe00, 0x1ff) |
| 207 | 204 | |
| 208 | 205 | |
| 209 | 206 | ROM_REGION( 0x1000000, "tbp", 0 ) // To Be Processed, of course |
| 210 | 207 | ROM_LOAD( "3944_1024k.bin", 0x000000, 0x100000, CRC(32a9ecb6) SHA1(67054fc88bda94e33e86f1b19be60efec0724fb6) ) |
| 211 | 208 | ROM_LOAD( "4034_1024k.bin", 0x000000, 0x100000, CRC(0d6fc88f) SHA1(ab676b712204fb1728bf89f9cd541a8f5a64ab97) ) |
| 212 | | ROM_LOAD( "4134_1024k.bin", 0x000000, 0x100000, CRC(49d8055a) SHA1(d46cef771a63dc8024fe36d7ab5b959087ac999f) ) |
| 213 | 209 | ROM_LOAD( "4817_1024k.bin", 0x000000, 0x100000, CRC(3f30863a) SHA1(dc955bd4d3ca71e01214a49e5d0aba615270c03c) ) |
| 214 | 210 | ROM_LOAD( "5101_256k.bin", 0x000000, 0x040000, CRC(e8a9224e) SHA1(5108e1025f48071c07a6823661d708c66dee97a9) ) |
| 211 | ROM_LOAD( "xbox-5530.bin", 0x000000, 0x040000, CRC(9569c4d3) SHA1(40fa73277013be3168135e1768b09623a987ff63) ) |
| 212 | ROM_LOAD( "xbox-5713.bin", 0x040000, 0x040000, CRC(58fd8173) SHA1(8b7ccc4648ccd78cdb7b65cfca09621eaf2d4238) ) |
| 215 | 213 | ROM_LOAD( "5838_256k.bin", 0x000000, 0x040000, CRC(5be2413d) SHA1(b9489e883c650b5e5fe2f83a32237dbf74f0e9f1) ) |
| 216 | 214 | ROM_END |
| 217 | 215 | // See src/emu/gamedrv.h for details |