src/mess/drivers/saturn.c
| r2810 | r2811 | |
| 2328 | 2328 | ROM_REGION( 0x480000, REGION_CPU1, 0 ) /* SH2 code */ |
| 2329 | 2329 | ROM_SYSTEM_BIOS(0, "101", "Japan v1.01 (941228)") |
| 2330 | 2330 | ROMX_LOAD("sega_101.bin", 0x00000000, 0x00080000, CRC(224b752c) SHA1(df94c5b4d47eb3cc404d88b33a8fda237eaf4720), ROM_BIOS(1)) |
| 2331 | | ROM_SYSTEM_BIOS(1, "100", "Japan v1.00 (940921)") |
| 2332 | | ROMX_LOAD("sega_100.bin", 0x00000000, 0x00080000, CRC(2aba43c2) SHA1(2b8cb4f87580683eb4d760e4ed210813d667f0a2), ROM_BIOS(2)) |
| 2331 | ROM_SYSTEM_BIOS(1, "1003", "Japan v1.003 (941012)") |
| 2332 | ROMX_LOAD("sega1003.bin", 0x00000000, 0x00080000, CRC(b3c63c25) SHA1(7b23b53d62de0f29a23e423d0fe751dfb469c2fa), ROM_BIOS(2)) |
| 2333 | ROM_SYSTEM_BIOS(2, "100", "Japan v1.00 (940921)") |
| 2334 | ROMX_LOAD("sega_100.bin", 0x00000000, 0x00080000, CRC(2aba43c2) SHA1(2b8cb4f87580683eb4d760e4ed210813d667f0a2), ROM_BIOS(3)) |
| 2335 | ROM_CART_LOAD(0, "bin", 0x080000, 0x400000, ROM_NOMIRROR | ROM_FILL_FF | ROM_OPTIONAL) |
| 2333 | 2336 | ROM_REGION( 0x080000, REGION_CPU2, 0 ) /* SH2 code */ |
| 2334 | 2337 | ROM_COPY( REGION_CPU1,0,0,0x080000) |
| 2335 | 2338 | ROM_REGION( 0x100000, REGION_CPU3, ROMREGION_ERASE00 ) /* 68000 code */ |
| r2810 | r2811 | |
| 2344 | 2347 | ROMX_LOAD("sega_101a.bin", 0x00000000, 0x00080000, CRC(4afcf0fa) SHA1(faa8ea183a6d7bbe5d4e03bb1332519800d3fbc3), ROM_BIOS(1)) |
| 2345 | 2348 | ROM_SYSTEM_BIOS(1, "100a", "Overseas v1.00a (941115)") |
| 2346 | 2349 | ROMX_LOAD("sega_100a.bin", 0x00000000, 0x00080000, CRC(f90f0089) SHA1(3bb41feb82838ab9a35601ac666de5aacfd17a58), ROM_BIOS(2)) |
| 2350 | ROM_CART_LOAD(0, "bin", 0x080000, 0x400000, ROM_NOMIRROR | ROM_FILL_FF | ROM_OPTIONAL) |
| 2347 | 2351 | ROM_REGION( 0x080000, REGION_CPU2, 0 ) /* SH2 code */ |
| 2348 | 2352 | ROM_COPY( REGION_CPU1,0,0,0x080000) |
| 2349 | 2353 | ROM_REGION( 0x100000, REGION_CPU3, ROMREGION_ERASE00 ) /* 68000 code */ |
| r2810 | r2811 | |
| 2357 | 2361 | ROMX_LOAD("sega_101a.bin", 0x00000000, 0x00080000, CRC(4afcf0fa) SHA1(faa8ea183a6d7bbe5d4e03bb1332519800d3fbc3), ROM_BIOS(1)) |
| 2358 | 2362 | ROM_SYSTEM_BIOS(1, "100a", "Overseas v1.00a (941115)") |
| 2359 | 2363 | ROMX_LOAD("sega_100a.bin", 0x00000000, 0x00080000, CRC(f90f0089) SHA1(3bb41feb82838ab9a35601ac666de5aacfd17a58), ROM_BIOS(2)) |
| 2364 | ROM_CART_LOAD(0, "bin", 0x080000, 0x400000, ROM_NOMIRROR | ROM_FILL_FF | ROM_OPTIONAL) |
| 2360 | 2365 | ROM_REGION( 0x080000, REGION_CPU2, 0 ) /* SH2 code */ |
| 2361 | 2366 | ROM_COPY( REGION_CPU1,0,0,0x080000) |
| 2362 | 2367 | ROM_REGION( 0x100000, REGION_CPU3, ROMREGION_ERASE00 ) /* 68000 code */ |
| r2810 | r2811 | |
| 2367 | 2372 | ROM_START(vsaturn) |
| 2368 | 2373 | ROM_REGION( 0x480000, REGION_CPU1, 0 ) /* SH2 code */ |
| 2369 | 2374 | ROM_LOAD("vsaturn.bin", 0x00000000, 0x00080000, CRC(e4d61811) SHA1(4154e11959f3d5639b11d7902b3a393a99fb5776)) |
| 2375 | ROM_CART_LOAD(0, "bin", 0x080000, 0x400000, ROM_NOMIRROR | ROM_FILL_FF | ROM_OPTIONAL) |
| 2370 | 2376 | ROM_REGION( 0x080000, REGION_CPU2, 0 ) /* SH2 code */ |
| 2371 | 2377 | ROM_COPY( REGION_CPU1,0,0,0x080000) |
| 2372 | 2378 | ROM_REGION( 0x100000, REGION_CPU3, ROMREGION_ERASE00 ) /* 68000 code */ |
| r2810 | r2811 | |
| 2377 | 2383 | ROM_START(hisaturn) |
| 2378 | 2384 | ROM_REGION( 0x480000, REGION_CPU1, 0 ) /* SH2 code */ |
| 2379 | 2385 | ROM_LOAD("hisaturn.bin", 0x00000000, 0x00080000, CRC(721e1b60) SHA1(49d8493008fa715ca0c94d99817a5439d6f2c796)) |
| 2386 | ROM_CART_LOAD(0, "bin", 0x080000, 0x400000, ROM_NOMIRROR | ROM_FILL_FF | ROM_OPTIONAL) |
| 2380 | 2387 | ROM_REGION( 0x080000, REGION_CPU2, 0 ) /* SH2 code */ |
| 2381 | 2388 | ROM_COPY( REGION_CPU1,0,0,0x080000) |
| 2382 | 2389 | ROM_REGION( 0x100000, REGION_CPU3, ROMREGION_ERASE00 ) /* 68000 code */ |
| r2810 | r2811 | |
| 2397 | 2404 | } |
| 2398 | 2405 | } |
| 2399 | 2406 | |
| 2400 | | static DEVICE_IMAGE_LOAD( saturn_cart ) |
| 2401 | | { |
| 2402 | | UINT8 *ROM = memory_region(REGION_CPU1)+0x80000; |
| 2403 | | UINT8 *tmp; |
| 2404 | | int i; |
| 2405 | | |
| 2406 | | tmp = malloc(image_length(image)); |
| 2407 | | |
| 2408 | | image_fread(image, tmp, image_length(image)); |
| 2409 | | |
| 2410 | | // now assemble the image in memory in the right order |
| 2411 | | for (i = 0; i < image_length(image); i++) |
| 2412 | | { |
| 2413 | | ROM[i] = tmp[BYTE4_XOR_BE(i)]; |
| 2414 | | } |
| 2415 | | |
| 2416 | | free(tmp); |
| 2417 | | |
| 2418 | | return INIT_PASS; |
| 2419 | | } |
| 2420 | | |
| 2421 | | static void saturn_cart_getinfo(const mess_device_class *devclass, UINT32 state, union devinfo *info) |
| 2422 | | { |
| 2423 | | /* cartslot */ |
| 2424 | | switch(state) |
| 2425 | | { |
| 2426 | | /* --- the following bits of info are returned as 64-bit signed integers --- */ |
| 2427 | | case MESS_DEVINFO_INT_COUNT: info->i = 1; break; |
| 2428 | | case MESS_DEVINFO_INT_MUST_BE_LOADED: info->i = 0; break; |
| 2429 | | |
| 2430 | | /* --- the following bits of info are returned as pointers to data or functions --- */ |
| 2431 | | case MESS_DEVINFO_PTR_LOAD: info->load = device_load_saturn_cart; break; |
| 2432 | | |
| 2433 | | /* --- the following bits of info are returned as NULL-terminated strings --- */ |
| 2434 | | case MESS_DEVINFO_STR_FILE_EXTENSIONS: strcpy(info->s = device_temp_str(), "bin"); break; |
| 2435 | | |
| 2436 | | default: cartslot_device_getinfo(devclass, state, info); break; |
| 2437 | | } |
| 2438 | | } |
| 2439 | | |
| 2440 | 2407 | SYSTEM_CONFIG_START( saturn ) |
| 2441 | 2408 | CONFIG_DEVICE(saturn_chdcd_getinfo) |
| 2442 | | CONFIG_DEVICE(saturn_cart_getinfo) |
| 2409 | CONFIG_DEVICE(cartslot_device_getinfo) |
| 2443 | 2410 | SYSTEM_CONFIG_END |
| 2444 | 2411 | |
| 2445 | 2412 | /*************************************************************************** |