trunk/src/mame/drivers/namcos23.c
| r18684 | r18685 | |
| 1321 | 1321 | public: |
| 1322 | 1322 | namcos23_state(const machine_config &mconfig, device_type type, const char *tag) |
| 1323 | 1323 | : driver_device(mconfig, type, tag), |
| 1324 | m_maincpu(*this, "maincpu"), |
| 1325 | m_audiocpu(*this, "audiocpu"), |
| 1326 | m_iocpu(*this, "iocpu"), |
| 1324 | 1327 | m_rtc(*this, "rtc"), |
| 1325 | 1328 | m_shared_ram(*this, "shared_ram"), |
| 1326 | 1329 | m_charram(*this, "charram"), |
| 1327 | 1330 | m_textram(*this, "textram"), |
| 1328 | 1331 | m_czattr(*this, "czattr"), |
| 1332 | m_gmen_sh2(*this, "gmen_sh2"), |
| 1329 | 1333 | m_gmen_sh2_shared(*this, "gmen_sh2_shared") |
| 1330 | 1334 | { } |
| 1331 | 1335 | |
| 1336 | required_device<cpu_device> m_maincpu; |
| 1337 | required_device<cpu_device> m_audiocpu; |
| 1338 | required_device<cpu_device> m_iocpu; |
| 1332 | 1339 | required_device<rtc4543_device> m_rtc; |
| 1333 | 1340 | required_shared_ptr<UINT32> m_shared_ram; |
| 1334 | 1341 | required_shared_ptr<UINT32> m_charram; |
| 1335 | 1342 | required_shared_ptr<UINT32> m_textram; |
| 1336 | 1343 | optional_shared_ptr<UINT32> m_czattr; |
| 1344 | optional_device<cpu_device> m_gmen_sh2; |
| 1337 | 1345 | optional_shared_ptr<UINT32> m_gmen_sh2_shared; |
| 1338 | 1346 | |
| 1339 | 1347 | c361_t m_c361; |
| r18684 | r18685 | |
| 1349 | 1357 | bool m_ctl_vbl_active; |
| 1350 | 1358 | UINT8 m_ctl_led; |
| 1351 | 1359 | UINT16 m_ctl_inp_buffer[2]; |
| 1352 | | int m_s23_subcpu_running; |
| 1360 | int m_audiocpu_running; |
| 1353 | 1361 | UINT32 m_p3d_address; |
| 1354 | 1362 | UINT32 m_p3d_size; |
| 1355 | 1363 | const UINT32 *m_ptrom; |
| r18684 | r18685 | |
| 1570 | 1578 | break; |
| 1571 | 1579 | case 7: |
| 1572 | 1580 | logerror("c417_w: ack IRQ 2 (%x)\n", data); |
| 1573 | | machine().device("maincpu")->execute().set_input_line(MIPS3_IRQ2, CLEAR_LINE); |
| 1581 | m_maincpu->set_input_line(MIPS3_IRQ2, CLEAR_LINE); |
| 1574 | 1582 | break; |
| 1575 | 1583 | default: |
| 1576 | 1584 | logerror("c417_w %x, %04x @ %04x (%08x, %08x)\n", offset, data, mem_mask, space.device().safe_pc(), (unsigned int)space.device().state().state_int(MIPS3_R31)); |
| r18684 | r18685 | |
| 1759 | 1767 | |
| 1760 | 1768 | if (c361.scanline != 511) |
| 1761 | 1769 | { |
| 1762 | | machine().device("maincpu")->execute().set_input_line(MIPS3_IRQ1, ASSERT_LINE); |
| 1770 | m_maincpu->set_input_line(MIPS3_IRQ1, ASSERT_LINE); |
| 1763 | 1771 | c361.timer->adjust(attotime::never); |
| 1764 | 1772 | } |
| 1765 | 1773 | } |
| r18684 | r18685 | |
| 1781 | 1789 | c361.scanline = data; |
| 1782 | 1790 | if (data == 0x1ff) |
| 1783 | 1791 | { |
| 1784 | | machine().device("maincpu")->execute().set_input_line(MIPS3_IRQ1, CLEAR_LINE); |
| 1792 | m_maincpu->set_input_line(MIPS3_IRQ1, CLEAR_LINE); |
| 1785 | 1793 | c361.timer->adjust(attotime::never); |
| 1786 | 1794 | } |
| 1787 | 1795 | else |
| r18684 | r18685 | |
| 1820 | 1828 | if (data == 0xfffb) |
| 1821 | 1829 | { |
| 1822 | 1830 | logerror("c422_w: raise IRQ 3\n"); |
| 1823 | | machine().device("maincpu")->execute().set_input_line(MIPS3_IRQ3, ASSERT_LINE); |
| 1831 | m_maincpu->set_input_line(MIPS3_IRQ3, ASSERT_LINE); |
| 1824 | 1832 | } |
| 1825 | 1833 | else if (data == 0x000f) |
| 1826 | 1834 | { |
| 1827 | 1835 | logerror("c422_w: ack IRQ 3\n"); |
| 1828 | | machine().device("maincpu")->execute().set_input_line(MIPS3_IRQ3, CLEAR_LINE); |
| 1836 | m_maincpu->set_input_line(MIPS3_IRQ3, CLEAR_LINE); |
| 1829 | 1837 | } |
| 1830 | 1838 | break; |
| 1831 | 1839 | |
| r18684 | r18685 | |
| 1849 | 1857 | logerror("S23: booting H8/3002\n"); |
| 1850 | 1858 | |
| 1851 | 1859 | // Panic Park: writing 1 when it's already running means reboot? |
| 1852 | | if (m_s23_subcpu_running) |
| 1860 | if (m_audiocpu_running) |
| 1853 | 1861 | { |
| 1854 | | machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE); |
| 1862 | m_audiocpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); |
| 1855 | 1863 | } |
| 1856 | 1864 | |
| 1857 | | machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_RESET, CLEAR_LINE); |
| 1858 | | m_s23_subcpu_running = 1; |
| 1865 | m_audiocpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE); |
| 1866 | m_audiocpu_running = 1; |
| 1859 | 1867 | } |
| 1860 | 1868 | else |
| 1861 | 1869 | { |
| 1862 | 1870 | logerror("S23: stopping H8/3002\n"); |
| 1863 | | machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE); |
| 1864 | | m_s23_subcpu_running = 0; |
| 1871 | m_audiocpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); |
| 1872 | m_audiocpu_running = 0; |
| 1865 | 1873 | } |
| 1866 | 1874 | } |
| 1867 | 1875 | } |
| r18684 | r18685 | |
| 2187 | 2195 | p3d_dma(space, m_p3d_address, m_p3d_size); |
| 2188 | 2196 | return; |
| 2189 | 2197 | case 0x17: |
| 2190 | | machine().device("maincpu")->execute().set_input_line(MIPS3_IRQ1, CLEAR_LINE); |
| 2198 | m_maincpu->set_input_line(MIPS3_IRQ1, CLEAR_LINE); |
| 2191 | 2199 | m_c361.timer->adjust(attotime::never); |
| 2192 | 2200 | return; |
| 2193 | 2201 | } |
| r18684 | r18685 | |
| 2450 | 2458 | |
| 2451 | 2459 | AM_RANGE(0x0d000000, 0x0d00000f) AM_READWRITE16(s23_ctl_r, s23_ctl_w, 0xffffffff ) // write for LEDs at d000000, watchdog at d000004 |
| 2452 | 2460 | |
| 2453 | | AM_RANGE(0x0e000000, 0x0e007fff) AM_RAM // C405 RAM |
| 2461 | AM_RANGE(0x0e000000, 0x0e007fff) AM_RAM // C405 RAM - what is this? |
| 2454 | 2462 | |
| 2455 | 2463 | AM_RANGE(0x0f000000, 0x0f000003) AM_READ(s23_unk_status_r ) |
| 2456 | 2464 | |
| 2457 | | AM_RANGE(0x0f200000, 0x0f203fff) AM_RAM // C422 RAM |
| 2465 | AM_RANGE(0x0f200000, 0x0f203fff) AM_RAM // C422 RAM (where are the C422 regs?) |
| 2458 | 2466 | |
| 2459 | 2467 | AM_RANGE(0x0fc00000, 0x0fffffff) AM_WRITENOP AM_ROM AM_REGION("user1", 0) |
| 2460 | 2468 | ADDRESS_MAP_END |
| r18684 | r18685 | |
| 2464 | 2472 | AM_RANGE(0x00000000, 0x00ffffff) AM_RAM |
| 2465 | 2473 | AM_RANGE(0x01000000, 0x010000ff) AM_READWRITE(p3d_r, p3d_w ) |
| 2466 | 2474 | AM_RANGE(0x02000000, 0x0200000f) AM_READWRITE16(s23_c417_r, s23_c417_w, 0xffffffff ) |
| 2467 | | AM_RANGE(0x04400000, 0x0440ffff) AM_RAM AM_SHARE("shared_ram") |
| 2475 | AM_RANGE(0x04400000, 0x0440ffff) AM_RAM AM_SHARE("shared_ram") // Communication RAM (C416) |
| 2468 | 2476 | AM_RANGE(0x04c3ff08, 0x04c3ff0b) AM_WRITE(s23_mcuen_w ) |
| 2469 | 2477 | AM_RANGE(0x04c3ff0c, 0x04c3ff0f) AM_RAM |
| 2470 | 2478 | AM_RANGE(0x06000000, 0x0600ffff) AM_RAM AM_SHARE("nvram") // Backup RAM |
| 2471 | | AM_RANGE(0x06200000, 0x06203fff) AM_RAM // C422 RAM |
| 2479 | AM_RANGE(0x06200000, 0x06203fff) AM_RAM // C422 RAM |
| 2472 | 2480 | AM_RANGE(0x06400000, 0x0640000f) AM_READWRITE16(s23_c422_r, s23_c422_w, 0xffffffff ) // C422 registers |
| 2473 | 2481 | AM_RANGE(0x06800000, 0x0681dfff) AM_RAM_WRITE(s23_txtchar_w ) AM_SHARE("charram") // Text CGRAM (C361) |
| 2474 | 2482 | AM_RANGE(0x0681e000, 0x0681ffff) AM_RAM_WRITE(namcos23_textram_w ) AM_SHARE("textram") // Text VRAM (C361) |
| 2475 | 2483 | AM_RANGE(0x06820000, 0x0682000f) AM_READWRITE16(s23_c361_r, s23_c361_w, 0xffffffff ) // C361 |
| 2476 | 2484 | AM_RANGE(0x06a08000, 0x06a087ff) AM_RAM // Blending control & GAMMA (C404) |
| 2477 | | AM_RANGE(0x06a10000, 0x06a3ffff) AM_RAM_WRITE(namcos23_paletteram_w ) AM_SHARE("paletteram") |
| 2485 | AM_RANGE(0x06a10000, 0x06a3ffff) AM_RAM_WRITE(namcos23_paletteram_w ) AM_SHARE("paletteram") // Palette RAM (C404) |
| 2478 | 2486 | AM_RANGE(0x08000000, 0x08ffffff) AM_ROM AM_REGION("data", 0x0000000) AM_MIRROR(0x1000000) // data ROMs |
| 2479 | 2487 | AM_RANGE(0x0a000000, 0x0affffff) AM_ROM AM_REGION("data", 0x1000000) AM_MIRROR(0x1000000) |
| 2480 | 2488 | AM_RANGE(0x0c000000, 0x0c00001f) AM_READWRITE16(s23_c412_r, s23_c412_w, 0xffffffff ) |
| r18684 | r18685 | |
| 2487 | 2495 | READ32_MEMBER(namcos23_state::gmen_trigger_sh2) |
| 2488 | 2496 | { |
| 2489 | 2497 | logerror("gmen_trigger_sh2: booting SH-2\n"); |
| 2490 | | machine().device("gmen")->execute().set_input_line(INPUT_LINE_RESET, CLEAR_LINE); |
| 2498 | m_gmen_sh2->set_input_line(INPUT_LINE_RESET, CLEAR_LINE); |
| 2491 | 2499 | |
| 2492 | 2500 | return 0; |
| 2493 | 2501 | } |
| r18684 | r18685 | |
| 2519 | 2527 | machine_reset(); |
| 2520 | 2528 | |
| 2521 | 2529 | // halt the SH-2 until we need it |
| 2522 | | machine().device("gmen")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE); |
| 2530 | m_gmen_sh2->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); |
| 2523 | 2531 | } |
| 2524 | 2532 | |
| 2525 | 2533 | WRITE16_MEMBER(namcos23_state::sharedram_sub_w) |
| r18684 | r18685 | |
| 2549 | 2557 | { |
| 2550 | 2558 | if ((mem_mask == 0xffff) && (data == 0x3170)) |
| 2551 | 2559 | { |
| 2552 | | machine().device("maincpu")->execute().set_input_line(MIPS3_IRQ1, ASSERT_LINE); |
| 2560 | m_maincpu->set_input_line(MIPS3_IRQ1, ASSERT_LINE); |
| 2553 | 2561 | } |
| 2554 | 2562 | else |
| 2555 | 2563 | { |
| r18684 | r18685 | |
| 2657 | 2665 | |
| 2658 | 2666 | if (m_im_rd == m_im_wr) |
| 2659 | 2667 | { |
| 2660 | | machine().device("audiocpu")->execute().set_input_line(H8_SCI_0_RX, CLEAR_LINE); |
| 2668 | m_audiocpu->set_input_line(H8_SCI_0_RX, CLEAR_LINE); |
| 2661 | 2669 | } |
| 2662 | 2670 | else |
| 2663 | 2671 | { |
| 2664 | | machine().device("audiocpu")->execute().set_input_line(H8_SCI_0_RX, CLEAR_LINE); |
| 2665 | | machine().device("audiocpu")->execute().set_input_line(H8_SCI_0_RX, ASSERT_LINE); |
| 2672 | m_audiocpu->set_input_line(H8_SCI_0_RX, CLEAR_LINE); |
| 2673 | m_audiocpu->set_input_line(H8_SCI_0_RX, ASSERT_LINE); |
| 2666 | 2674 | } |
| 2667 | 2675 | |
| 2668 | 2676 | return ret; |
| r18684 | r18685 | |
| 2673 | 2681 | m_maintoio[m_mi_wr++] = data; |
| 2674 | 2682 | m_mi_wr &= 0x7f; |
| 2675 | 2683 | |
| 2676 | | machine().device("ioboard")->execute().set_input_line(H8_SCI_0_RX, ASSERT_LINE); |
| 2684 | m_iocpu->set_input_line(H8_SCI_0_RX, ASSERT_LINE); |
| 2677 | 2685 | } |
| 2678 | 2686 | |
| 2679 | 2687 | static INPUT_PORTS_START( gorgon ) |
| r18684 | r18685 | |
| 2975 | 2983 | |
| 2976 | 2984 | if (m_mi_rd == m_mi_wr) |
| 2977 | 2985 | { |
| 2978 | | machine().device("ioboard")->execute().set_input_line(H8_SCI_0_RX, CLEAR_LINE); |
| 2986 | m_iocpu->set_input_line(H8_SCI_0_RX, CLEAR_LINE); |
| 2979 | 2987 | } |
| 2980 | 2988 | |
| 2981 | 2989 | return ret; |
| r18684 | r18685 | |
| 2986 | 2994 | m_iotomain[m_im_wr++] = data; |
| 2987 | 2995 | m_im_wr &= 0x7f; |
| 2988 | 2996 | |
| 2989 | | machine().device("audiocpu")->execute().set_input_line(H8_SCI_0_RX, ASSERT_LINE); |
| 2997 | m_audiocpu->set_input_line(H8_SCI_0_RX, ASSERT_LINE); |
| 2990 | 2998 | } |
| 2991 | 2999 | |
| 2992 | 3000 | |
| r18684 | r18685 | |
| 3029 | 3037 | |
| 3030 | 3038 | /* H8/3334 (Namco C78) I/O board MCU */ |
| 3031 | 3039 | static ADDRESS_MAP_START( s23iobrdmap, AS_PROGRAM, 8, namcos23_state ) |
| 3032 | | AM_RANGE(0x0000, 0x1fff) AM_ROM AM_REGION("ioboard", 0) |
| 3040 | AM_RANGE(0x0000, 0x1fff) AM_ROM AM_REGION("iocpu", 0) |
| 3033 | 3041 | AM_RANGE(0x6000, 0x6000) AM_READ_PORT("TC2P0") // 0-1 = coin 0-3 = coin connect, 0-5 = test 0-6 = down select, 0-7 = up select, 0-8 = enter |
| 3034 | 3042 | AM_RANGE(0x6001, 0x6001) AM_READ_PORT("TC2P1") // 1-1 = gun trigger 1-2 = foot pedal |
| 3035 | 3043 | AM_RANGE(0x6002, 0x6003) AM_READ(iob_r ) |
| r18684 | r18685 | |
| 3041 | 3049 | ADDRESS_MAP_END |
| 3042 | 3050 | |
| 3043 | 3051 | static ADDRESS_MAP_START( timecrs2iobrdmap, AS_PROGRAM, 8, namcos23_state ) |
| 3044 | | AM_RANGE(0x0000, 0x1fff) AM_ROM AM_REGION("ioboard", 0) |
| 3052 | AM_RANGE(0x0000, 0x1fff) AM_ROM AM_REGION("iocpu", 0) |
| 3045 | 3053 | AM_RANGE(0x6000, 0x6000) AM_READ_PORT("TC2P0") |
| 3046 | 3054 | AM_RANGE(0x6001, 0x6001) AM_READ_PORT("TC2P1") |
| 3047 | 3055 | AM_RANGE(0x6002, 0x6005) AM_WRITENOP |
| r18684 | r18685 | |
| 3052 | 3060 | ADDRESS_MAP_END |
| 3053 | 3061 | |
| 3054 | 3062 | static ADDRESS_MAP_START( gorgoniobrdmap, AS_PROGRAM, 8, namcos23_state ) |
| 3055 | | AM_RANGE(0x0000, 0x1fff) AM_ROM AM_REGION("ioboard", 0) |
| 3063 | AM_RANGE(0x0000, 0x1fff) AM_ROM AM_REGION("iocpu", 0) |
| 3056 | 3064 | AM_RANGE(0x6000, 0x6000) AM_READ_PORT("RRP0") // 0-5 = start |
| 3057 | 3065 | AM_RANGE(0x6001, 0x6001) AM_READ_PORT("RRP1") // |
| 3058 | 3066 | AM_RANGE(0x6002, 0x6002) AM_READ_PORT("RRP2") // 0-4 = coin |
| r18684 | r18685 | |
| 3099 | 3107 | memset(m_s23_settings, 0, sizeof(m_s23_settings)); |
| 3100 | 3108 | m_s23_tssio_port_4 = 0; |
| 3101 | 3109 | m_s23_porta = 0, m_s23_rtcstate = 0; |
| 3102 | | m_s23_subcpu_running = 1; |
| 3110 | m_audiocpu_running = 0; |
| 3103 | 3111 | render.count[0] = render.count[1] = 0; |
| 3104 | 3112 | render.cur = 0; |
| 3105 | 3113 | |
| r18684 | r18685 | |
| 3131 | 3139 | |
| 3132 | 3140 | void namcos23_state::machine_reset() |
| 3133 | 3141 | { |
| 3134 | | machine().device("audiocpu")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE); |
| 3142 | m_audiocpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); |
| 3135 | 3143 | } |
| 3136 | 3144 | |
| 3137 | 3145 | #define XOR(a) WORD2_XOR_BE(a) |
| r18684 | r18685 | |
| 3171 | 3179 | MCFG_CPU_IO_MAP( s23h8iomap ) |
| 3172 | 3180 | MCFG_CPU_VBLANK_INT_DRIVER("screen", namcos23_state, irq1_line_pulse) |
| 3173 | 3181 | |
| 3174 | | MCFG_CPU_ADD("ioboard", H83334, S23_H8CLOCK ) |
| 3182 | MCFG_CPU_ADD("iocpu", H83334, S23_H8CLOCK ) |
| 3175 | 3183 | MCFG_CPU_PROGRAM_MAP( gorgoniobrdmap ) |
| 3176 | 3184 | MCFG_CPU_IO_MAP( s23iobrdiomap ) |
| 3177 | 3185 | |
| r18684 | r18685 | |
| 3218 | 3226 | MCFG_CPU_IO_MAP( s23h8iomap ) |
| 3219 | 3227 | MCFG_CPU_VBLANK_INT_DRIVER("screen", namcos23_state, irq1_line_pulse) |
| 3220 | 3228 | |
| 3221 | | MCFG_CPU_ADD("ioboard", H83334, S23_H8CLOCK ) |
| 3229 | MCFG_CPU_ADD("iocpu", H83334, S23_H8CLOCK ) |
| 3222 | 3230 | MCFG_CPU_PROGRAM_MAP( s23iobrdmap ) |
| 3223 | 3231 | MCFG_CPU_IO_MAP( s23iobrdiomap ) |
| 3224 | 3232 | |
| r18684 | r18685 | |
| 3304 | 3312 | MCFG_CPU_MODIFY("audiocpu") |
| 3305 | 3313 | MCFG_CPU_IO_MAP( s23h8iomap ) |
| 3306 | 3314 | |
| 3307 | | MCFG_CPU_ADD("ioboard", H83334, S23_H8CLOCK ) |
| 3315 | MCFG_CPU_ADD("iocpu", H83334, S23_H8CLOCK ) |
| 3308 | 3316 | MCFG_CPU_PROGRAM_MAP( s23iobrdmap ) |
| 3309 | 3317 | MCFG_CPU_IO_MAP( s23iobrdiomap ) |
| 3310 | 3318 | MACHINE_CONFIG_END |
| 3311 | 3319 | |
| 3312 | 3320 | static MACHINE_CONFIG_DERIVED( timecrs2, s23 ) |
| 3313 | 3321 | |
| 3314 | | MCFG_CPU_MODIFY("ioboard") |
| 3322 | MCFG_CPU_MODIFY("iocpu") |
| 3315 | 3323 | MCFG_CPU_PROGRAM_MAP( timecrs2iobrdmap ) |
| 3316 | 3324 | MACHINE_CONFIG_END |
| 3317 | 3325 | |
| r18684 | r18685 | |
| 3320 | 3328 | MCFG_CPU_MODIFY("audiocpu") |
| 3321 | 3329 | MCFG_CPU_IO_MAP( s23h8iomap ) |
| 3322 | 3330 | |
| 3323 | | MCFG_CPU_ADD("ioboard", H83334, S23_H8CLOCK ) |
| 3331 | MCFG_CPU_ADD("iocpu", H83334, S23_H8CLOCK ) |
| 3324 | 3332 | MCFG_CPU_PROGRAM_MAP( timecrs2iobrdmap ) |
| 3325 | 3333 | MCFG_CPU_IO_MAP( s23iobrdiomap ) |
| 3326 | 3334 | MACHINE_CONFIG_END |
| r18684 | r18685 | |
| 3331 | 3339 | MCFG_CPU_CLOCK(S23_BUSCLOCK*5) |
| 3332 | 3340 | MCFG_CPU_PROGRAM_MAP(gmen_mips_map) |
| 3333 | 3341 | |
| 3334 | | MCFG_CPU_ADD("gmen", SH2, 28700000) |
| 3342 | MCFG_CPU_ADD("gmen_sh2", SH2, 28700000) |
| 3335 | 3343 | MCFG_CPU_PROGRAM_MAP(gmen_sh2_map) |
| 3336 | 3344 | |
| 3337 | 3345 | MCFG_MACHINE_RESET_OVERRIDE(namcos23_state,gmen) |
| r18684 | r18685 | |
| 3345 | 3353 | ROM_REGION( 0x80000, "audiocpu", 0 ) /* Hitachi H8/3002 MCU code */ |
| 3346 | 3354 | ROM_LOAD16_WORD_SWAP( "rd3verc.ic3", 0x000000, 0x080000, CRC(6e26fbaf) SHA1(4ab6637d22f0d26f7e1d10e9c80059c56f64303d) ) |
| 3347 | 3355 | |
| 3348 | | ROM_REGION( 0x40000, "ioboard", 0 ) /* I/O board HD643334 H8/3334 MCU code */ |
| 3356 | ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code */ |
| 3349 | 3357 | ROM_LOAD( "asca1_io-a.ic2", 0x000000, 0x040000, CRC(77cdf69a) SHA1(497af1059f85c07bea2dd0d303481623f6019dcf) ) |
| 3350 | 3358 | |
| 3351 | 3359 | ROM_REGION32_BE( 0x800000, "data", 0 ) /* data */ |
| r18684 | r18685 | |
| 3405 | 3413 | ROM_REGION( 0x80000, "audiocpu", 0 ) /* Hitachi H8/3002 MCU code */ |
| 3406 | 3414 | ROM_LOAD16_WORD_SWAP( "rd2verc.ic3", 0x000000, 0x080000, CRC(6e26fbaf) SHA1(4ab6637d22f0d26f7e1d10e9c80059c56f64303d) ) |
| 3407 | 3415 | |
| 3408 | | ROM_REGION( 0x40000, "ioboard", 0 ) /* I/O board HD643334 H8/3334 MCU code */ |
| 3416 | ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code */ |
| 3409 | 3417 | ROM_LOAD( "asca1_io-a.ic2", 0x000000, 0x040000, CRC(77cdf69a) SHA1(497af1059f85c07bea2dd0d303481623f6019dcf) ) |
| 3410 | 3418 | |
| 3411 | 3419 | ROM_REGION32_BE( 0x800000, "data", 0 ) /* data */ |
| r18684 | r18685 | |
| 3465 | 3473 | ROM_REGION( 0x80000, "audiocpu", 0 ) /* Hitachi H8/3002 MCU code */ |
| 3466 | 3474 | ROM_LOAD16_WORD_SWAP( "29f400.ic3", 0x000000, 0x080000, CRC(f194c942) SHA1(b581c97327dea092e30ba46ad630d10477343a39) ) |
| 3467 | 3475 | |
| 3468 | | ROM_REGION( 0x40000, "ioboard", 0 ) /* I/O board HD643334 H8/3334 MCU code */ |
| 3476 | ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code */ |
| 3469 | 3477 | ROM_LOAD( "asca1_io-a.ic2", 0x000000, 0x040000, CRC(77cdf69a) SHA1(497af1059f85c07bea2dd0d303481623f6019dcf) ) |
| 3470 | 3478 | |
| 3471 | 3479 | ROM_REGION32_BE( 0x800000, "data", 0 ) /* data */ |
| r18684 | r18685 | |
| 3525 | 3533 | ROM_REGION( 0x80000, "audiocpu", 0 ) /* Hitachi H8/3002 MCU code */ |
| 3526 | 3534 | ROM_LOAD16_WORD_SWAP( "ff2vera.ic3", 0x000000, 0x080000, CRC(ab681078) SHA1(ec8367404458a54893ab6bea29c8a2ba3272b816) ) |
| 3527 | 3535 | |
| 3528 | | ROM_REGION( 0x40000, "ioboard", 0 ) /* I/O board HD643334 H8/3334 MCU code */ |
| 3536 | ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code */ |
| 3529 | 3537 | ROM_LOAD( "asca1_io-a.ic2", 0x000000, 0x040000, CRC(77cdf69a) SHA1(497af1059f85c07bea2dd0d303481623f6019dcf) ) |
| 3530 | 3538 | |
| 3531 | 3539 | ROM_REGION32_BE( 0x800000, "data", 0 ) /* data */ |
| r18684 | r18685 | |
| 3579 | 3587 | ROM_REGION( 0x80000, "audiocpu", 0 ) /* Hitachi H8/3002 MCU code */ |
| 3580 | 3588 | ROM_LOAD16_WORD_SWAP( "mg3vera.ic3", 0x000000, 0x080000, CRC(9e3d46a8) SHA1(9ffa5b91ea51cc0fb97def25ce47efa3441f3c6f) ) |
| 3581 | 3589 | |
| 3582 | | ROM_REGION( 0x40000, "ioboard", 0 ) /* I/O board HD643334 H8/3334 MCU code */ |
| 3590 | ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code */ |
| 3583 | 3591 | ROM_LOAD( "asca-3a.ic14", 0x000000, 0x040000, CRC(8e9266e5) SHA1(ffa8782ca641d71d57df23ed1c5911db05d3df97) ) |
| 3584 | 3592 | |
| 3585 | 3593 | ROM_REGION( 0x20000, "exioboard", 0 ) /* "extra" I/O board (uses Fujitsu MB90611A MCU) */ |
| r18684 | r18685 | |
| 3626 | 3634 | ROM_REGION( 0x80000, "audiocpu", 0 ) /* Hitachi H8/3002 MCU code */ |
| 3627 | 3635 | ROM_LOAD16_WORD_SWAP( "mg3vera.ic3", 0x000000, 0x080000, CRC(9e3d46a8) SHA1(9ffa5b91ea51cc0fb97def25ce47efa3441f3c6f) ) |
| 3628 | 3636 | |
| 3629 | | ROM_REGION( 0x40000, "ioboard", 0 ) /* I/O board HD643334 H8/3334 MCU code */ |
| 3637 | ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code */ |
| 3630 | 3638 | ROM_LOAD( "asca-3a.ic14", 0x000000, 0x040000, CRC(8e9266e5) SHA1(ffa8782ca641d71d57df23ed1c5911db05d3df97) ) |
| 3631 | 3639 | |
| 3632 | 3640 | ROM_REGION( 0x20000, "exioboard", 0 ) /* "extra" I/O board (uses Fujitsu MB90611A MCU) */ |
| r18684 | r18685 | |
| 3673 | 3681 | ROM_REGION( 0x80000, "audiocpu", 0 ) /* Hitachi H8/3002 MCU code */ |
| 3674 | 3682 | ROM_LOAD16_WORD_SWAP( "tss3verb.3", 0x000000, 0x080000, CRC(41e41994) SHA1(eabc1a307c329070bfc6486cb68169c94ff8a162) ) |
| 3675 | 3683 | |
| 3676 | | ROM_REGION( 0x40000, "ioboard", 0 ) /* I/O board HD643334 H8/3334 MCU code */ |
| 3684 | ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code */ |
| 3677 | 3685 | ROM_LOAD( "tssioprog.ic3", 0x000000, 0x040000, CRC(edad4538) SHA1(1330189184a636328d956c0e435f8d9ad2e96a80) ) |
| 3678 | 3686 | |
| 3679 | 3687 | ROM_REGION32_BE( 0x2000000, "data", 0 ) /* data roms */ |
| r18684 | r18685 | |
| 3715 | 3723 | ROM_REGION( 0x80000, "audiocpu", 0 ) /* Hitachi H8/3002 MCU code */ |
| 3716 | 3724 | ROM_LOAD16_WORD_SWAP( "tss3verb.3", 0x000000, 0x080000, CRC(41e41994) SHA1(eabc1a307c329070bfc6486cb68169c94ff8a162) ) |
| 3717 | 3725 | |
| 3718 | | ROM_REGION( 0x40000, "ioboard", 0 ) /* I/O board HD643334 H8/3334 MCU code */ |
| 3726 | ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code */ |
| 3719 | 3727 | ROM_LOAD( "tssioprog.ic3", 0x000000, 0x040000, CRC(edad4538) SHA1(1330189184a636328d956c0e435f8d9ad2e96a80) ) |
| 3720 | 3728 | |
| 3721 | 3729 | ROM_REGION32_BE( 0x2000000, "data", 0 ) /* data roms */ |
| r18684 | r18685 | |
| 3757 | 3765 | ROM_REGION( 0x80000, "audiocpu", 0 ) /* Hitachi H8/3002 MCU code */ |
| 3758 | 3766 | ROM_LOAD16_WORD_SWAP( "tss4vera.3", 0x000000, 0x080000, CRC(41e41994) SHA1(eabc1a307c329070bfc6486cb68169c94ff8a162) ) |
| 3759 | 3767 | |
| 3760 | | ROM_REGION( 0x40000, "ioboard", 0 ) /* I/O board HD643334 H8/3334 MCU code */ |
| 3768 | ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code */ |
| 3761 | 3769 | ROM_LOAD( "tssioprog.ic3", 0x000000, 0x040000, CRC(edad4538) SHA1(1330189184a636328d956c0e435f8d9ad2e96a80) ) |
| 3762 | 3770 | |
| 3763 | 3771 | ROM_REGION32_BE( 0x2000000, "data", 0 ) /* data roms */ |
| r18684 | r18685 | |
| 3845 | 3853 | ROM_REGION( 0x80000, "audiocpu", 0 ) /* Hitachi H8/3002 MCU code */ |
| 3846 | 3854 | ROM_LOAD16_WORD_SWAP( "ro2vera.ic3", 0x000000, 0x080000, CRC(a763ecb7) SHA1(6b1ab63bb56342abbf7ddd7d17d413779fbafce1) ) |
| 3847 | 3855 | |
| 3848 | | ROM_REGION( 0x40000, "ioboard", 0 ) /* I/O board HD643334 H8/3334 MCU code */ |
| 3856 | ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code */ |
| 3849 | 3857 | ROM_LOAD( "asc5_io-a.ic14", 0x000000, 0x020000, CRC(5964767f) SHA1(320db5e78ae23c5f94e368432d51573b409995db) ) |
| 3850 | 3858 | |
| 3851 | 3859 | ROM_REGION( 0x80000, "ffb", 0 ) /* STR steering force-feedback board code */ |
| r18684 | r18685 | |
| 3898 | 3906 | ROM_REGION( 0x80000, "audiocpu", 0 ) /* Hitachi H8/3002 MCU code */ |
| 3899 | 3907 | ROM_LOAD16_WORD_SWAP( "m29f400.ic3", 0x000000, 0x080000, CRC(9fd69bbd) SHA1(53a9bf505de70495dcccc43fdc722b3381aad97c) ) |
| 3900 | 3908 | |
| 3901 | | ROM_REGION( 0x40000, "ioboard", 0 ) /* I/O board HD643334 H8/3334 MCU code */ |
| 3909 | ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code */ |
| 3902 | 3910 | ROM_LOAD( "asca-3a.ic14", 0x000000, 0x040000, CRC(8e9266e5) SHA1(ffa8782ca641d71d57df23ed1c5911db05d3df97) ) |
| 3903 | 3911 | |
| 3904 | 3912 | ROM_REGION32_BE( 0x2000000, "data", 0 ) /* data roms */ |
| r18684 | r18685 | |
| 3942 | 3950 | ROM_REGION( 0x80000, "audiocpu", 0 ) /* Hitachi H8/3002 MCU code */ |
| 3943 | 3951 | ROM_LOAD16_WORD_SWAP( "m29f400.ic3", 0x000000, 0x080000, CRC(9fd69bbd) SHA1(53a9bf505de70495dcccc43fdc722b3381aad97c) ) |
| 3944 | 3952 | |
| 3945 | | ROM_REGION( 0x40000, "ioboard", 0 ) /* I/O board HD643334 H8/3334 MCU code */ |
| 3953 | ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code */ |
| 3946 | 3954 | ROM_LOAD( "asca-3a.ic14", 0x000000, 0x040000, CRC(8e9266e5) SHA1(ffa8782ca641d71d57df23ed1c5911db05d3df97) ) |
| 3947 | 3955 | |
| 3948 | 3956 | ROM_REGION32_BE( 0x2000000, "data", 0 ) /* data roms */ |
| r18684 | r18685 | |
| 3985 | 3993 | ROM_REGION( 0x80000, "audiocpu", 0 ) /* Hitachi H8/3002 MCU code */ |
| 3986 | 3994 | ROM_LOAD16_WORD_SWAP( "pnp2ver-a.ic3", 0x000000, 0x080000, CRC(fe4bc6f4) SHA1(2114dc4bc63d589e6c3b26a73dbc60924f3b1765) ) |
| 3987 | 3995 | |
| 3988 | | ROM_REGION( 0x40000, "ioboard", 0 ) /* I/O board HD643334 H8/3334 MCU code */ |
| 3996 | ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code */ |
| 3989 | 3997 | ROM_LOAD( "asca-3a.ic14", 0x000000, 0x040000, CRC(8e9266e5) SHA1(ffa8782ca641d71d57df23ed1c5911db05d3df97) ) |
| 3990 | 3998 | |
| 3991 | 3999 | ROM_REGION32_BE( 0x2000000, "data", 0 ) /* data roms */ |
| r18684 | r18685 | |
| 4031 | 4039 | ROM_REGION( 0x80000, "audiocpu", 0 ) /* Hitachi H8/3002 MCU code */ |
| 4032 | 4040 | ROM_LOAD16_WORD_SWAP( "gm1vera.ic3", 0x000000, 0x080000, CRC(5582fdd4) SHA1(8aae8bc6688d531888f2de509c07502ee355b3ab) ) |
| 4033 | 4041 | |
| 4034 | | ROM_REGION( 0x40000, "ioboard", 0 ) /* I/O board HD643334 H8/3334 MCU code. "ASCA-5;Ver 2.09;JPN,Multipurpose" */ |
| 4042 | ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code. "ASCA-5;Ver 2.09;JPN,Multipurpose" */ |
| 4035 | 4043 | ROM_LOAD( "asc5_io-a.ic14", 0x000000, 0x020000, CRC(5964767f) SHA1(320db5e78ae23c5f94e368432d51573b409995db) ) |
| 4036 | 4044 | |
| 4037 | 4045 | ROM_REGION32_BE( 0x2000000, "data", 0 ) /* data roms */ |
| r18684 | r18685 | |
| 4076 | 4084 | ROM_REGION( 0x80000, "audiocpu", 0 ) /* Hitachi H8/3002 MCU code */ |
| 4077 | 4085 | ROM_LOAD16_WORD_SWAP( "dh3vera.ic3", 0x000000, 0x080000, CRC(98f9fc8b) SHA1(5152b9e11773033a26da11d1f3774a261e61a2c5) ) |
| 4078 | 4086 | |
| 4079 | | ROM_REGION( 0x40000, "ioboard", 0 ) /* I/O board HD643334 H8/3334 MCU code. "ASCA-3;Ver 2.04;JPN,Multipurpose + Rotary Encoder" */ |
| 4087 | ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code. "ASCA-3;Ver 2.04;JPN,Multipurpose + Rotary Encoder" */ |
| 4080 | 4088 | ROM_LOAD( "asc3_io-c.ic14", 0x000000, 0x020000, CRC(2f272a7b) SHA1(9d7ebe274c0d26f5f38747224d42d0375e2ed14c) ) |
| 4081 | 4089 | |
| 4082 | 4090 | ROM_REGION32_BE( 0x2000000, "data", 0 ) /* data roms */ |
| r18684 | r18685 | |
| 4125 | 4133 | ROM_REGION( 0x80000, "audiocpu", 0 ) /* Hitachi H8/3002 MCU code */ |
| 4126 | 4134 | ROM_LOAD16_WORD_SWAP( "cszo3verb.ic1", 0x000000, 0x080000, CRC(c790743b) SHA1(5fa7b83a7a1b1105a3aa0870b782cf2741b7d11c) ) |
| 4127 | 4135 | |
| 4128 | | ROM_REGION( 0x40000, "ioboard", 0 ) /* I/O board HD643334 H8/3334 MCU code. "MIU-I/O;Ver2.05;JPN,GUN-EXTENTION" */ |
| 4136 | ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code. "MIU-I/O;Ver2.05;JPN,GUN-EXTENTION" */ |
| 4129 | 4137 | ROM_LOAD( "csz1prg0a.8f", 0x000000, 0x020000, CRC(8edc36b3) SHA1(b5df211988d856572fcc313480e693c8561784e4) ) |
| 4130 | 4138 | |
| 4131 | 4139 | ROM_REGION32_BE( 0x2000000, "data", 0 ) /* data roms */ |
| r18684 | r18685 | |
| 4177 | 4185 | ROM_REGION( 0x80000, "audiocpu", 0 ) /* Hitachi H8/3002 MCU code */ |
| 4178 | 4186 | ROM_LOAD16_WORD_SWAP( "cszo3verb.ic1", 0x000000, 0x080000, CRC(c790743b) SHA1(5fa7b83a7a1b1105a3aa0870b782cf2741b7d11c) ) |
| 4179 | 4187 | |
| 4180 | | ROM_REGION( 0x40000, "ioboard", 0 ) /* I/O board HD643334 H8/3334 MCU code. "MIU-I/O;Ver2.05;JPN,GUN-EXTENTION" */ |
| 4188 | ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code. "MIU-I/O;Ver2.05;JPN,GUN-EXTENTION" */ |
| 4181 | 4189 | ROM_LOAD( "csz1prg0a.8f", 0x000000, 0x020000, CRC(8edc36b3) SHA1(b5df211988d856572fcc313480e693c8561784e4) ) |
| 4182 | 4190 | |
| 4183 | 4191 | ROM_REGION32_BE( 0x2000000, "data", 0 ) /* data roms */ |
| r18684 | r18685 | |
| 4229 | 4237 | ROM_REGION( 0x80000, "audiocpu", 0 ) /* Hitachi H8/3002 MCU code */ |
| 4230 | 4238 | ROM_LOAD16_WORD_SWAP( "cszo3verb.ic1", 0x000000, 0x080000, CRC(c790743b) SHA1(5fa7b83a7a1b1105a3aa0870b782cf2741b7d11c) ) |
| 4231 | 4239 | |
| 4232 | | ROM_REGION( 0x40000, "ioboard", 0 ) /* I/O board HD643334 H8/3334 MCU code. "MIU-I/O;Ver2.05;JPN,GUN-EXTENTION" */ |
| 4240 | ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code. "MIU-I/O;Ver2.05;JPN,GUN-EXTENTION" */ |
| 4233 | 4241 | ROM_LOAD( "csz1prg0a.8f", 0x000000, 0x020000, CRC(8edc36b3) SHA1(b5df211988d856572fcc313480e693c8561784e4) ) |
| 4234 | 4242 | |
| 4235 | 4243 | ROM_REGION32_BE( 0x2000000, "data", 0 ) /* data roms */ |
| r18684 | r18685 | |
| 4281 | 4289 | ROM_REGION( 0x80000, "audiocpu", 0 ) /* Hitachi H8/3002 MCU code */ |
| 4282 | 4290 | ROM_LOAD16_WORD_SWAP( "cszo3verb.ic1", 0x000000, 0x080000, CRC(c790743b) SHA1(5fa7b83a7a1b1105a3aa0870b782cf2741b7d11c) ) |
| 4283 | 4291 | |
| 4284 | | ROM_REGION( 0x40000, "ioboard", 0 ) /* I/O board HD643334 H8/3334 MCU code. "MIU-I/O;Ver2.05;JPN,GUN-EXTENTION" */ |
| 4292 | ROM_REGION( 0x40000, "iocpu", 0 ) /* I/O board HD643334 H8/3334 MCU code. "MIU-I/O;Ver2.05;JPN,GUN-EXTENTION" */ |
| 4285 | 4293 | ROM_LOAD( "csz1prg0a.8f", 0x000000, 0x020000, CRC(8edc36b3) SHA1(b5df211988d856572fcc313480e693c8561784e4) ) |
| 4286 | 4294 | |
| 4287 | 4295 | ROM_REGION32_BE( 0x2000000, "data", 0 ) /* data roms */ |