trunk/src/mame/drivers/m72.c
| r244872 | r244873 | |
| 461 | 461 | if (ACCESSING_BITS_0_7 && (data & 0xff) < 7) m_audio->set_sample_start(a[data & 0xff]); |
| 462 | 462 | } |
| 463 | 463 | |
| 464 | | WRITE16_MEMBER(m72_state::xmultiplm72_sample_trigger_w) |
| 465 | | { |
| 466 | | static const int a[3] = { 0x0000, 0x0020, 0x1a40 }; |
| 467 | | if (ACCESSING_BITS_0_7 && (data & 0xff) < 3) m_audio->set_sample_start(a[data & 0xff]); |
| 468 | | } |
| 469 | 464 | |
| 465 | |
| 470 | 466 | WRITE16_MEMBER(m72_state::dbreedm72_sample_trigger_w) |
| 471 | 467 | { |
| 472 | 468 | static const int a[9] = { 0x00000, 0x00020, 0x02c40, 0x08160, 0x0c8c0, 0x0ffe0, 0x13000, 0x15820, 0x15f40 }; |
| r244872 | r244873 | |
| 634 | 630 | static const UINT8 loht_crc[CRC_LEN] = { 0x39,0x00,0x82,0xae, 0x2c,0x9d,0x4b,0x73, |
| 635 | 631 | 0xfb,0xac,0xd4,0x6d, 0x6d,0x5b,0x77,0xc0, 0x00,0x00 }; |
| 636 | 632 | |
| 637 | | /* X Multiply */ |
| 638 | | static const UINT8 xmultiplm72_code[CODE_LEN] = |
| 639 | | { |
| 640 | | 0xea,0x30,0x02,0x00,0x0e // jmp 0e00:$0230 |
| 641 | | }; |
| 642 | | static const UINT8 xmultiplm72_crc[CRC_LEN] = { 0x73,0x82,0x4e,0x3f, 0xfc,0x56,0x59,0x06, |
| 643 | | 0x05,0x48,0xa8,0xf4, 0x00,0x00 }; |
| 644 | 633 | |
| 634 | |
| 645 | 635 | /* Dragon Breed */ |
| 646 | 636 | static const UINT8 dbreedm72_code[CODE_LEN] = |
| 647 | 637 | { |
| r244872 | r244873 | |
| 739 | 729 | memset(m_videoram2,0,0x4000); |
| 740 | 730 | } |
| 741 | 731 | |
| 742 | | DRIVER_INIT_MEMBER(m72_state,xmultiplm72) |
| 743 | | { |
| 744 | | install_protection_handler(xmultiplm72_code,xmultiplm72_crc); |
| 745 | | m_maincpu->space(AS_IO).install_write_handler(0xc0, 0xc1, write16_delegate(FUNC(m72_state::xmultiplm72_sample_trigger_w),this)); |
| 746 | | } |
| 747 | 732 | |
| 748 | 733 | DRIVER_INIT_MEMBER(m72_state,dbreedm72) |
| 749 | 734 | { |
| r244872 | r244873 | |
| 1851 | 1836 | |
| 1852 | 1837 | |
| 1853 | 1838 | MCFG_MACHINE_RESET_OVERRIDE(m72_state,xmultipl) |
| 1839 | |
| 1840 | MCFG_CPU_ADD("mcu",I8751, XTAL_8MHz) /* Uses its own XTAL */ |
| 1841 | MCFG_CPU_IO_MAP(mcu_io_map) |
| 1842 | MCFG_CPU_VBLANK_INT_DRIVER("screen", m72_state, m72_mcu_int) |
| 1843 | |
| 1854 | 1844 | MACHINE_CONFIG_END |
| 1855 | 1845 | |
| 1856 | 1846 | |
| r244872 | r244873 | |
| 2935 | 2925 | ROM_LOAD16_BYTE( "cl0.l0", 0x40000, 0x10000, CRC(06a9e213) SHA1(9831c110814642703d6e71d49848d854095b7d3a) ) |
| 2936 | 2926 | ROM_RELOAD( 0xe0000, 0x10000 ) |
| 2937 | 2927 | |
| 2938 | | ROM_REGION( 0x10000, "cpu2", 0 ) |
| 2928 | ROM_REGION( 0x10000, "mcu", 0 ) |
| 2939 | 2929 | ROM_LOAD( "xmultipl_i8751h.bin", 0x00000, 0x01000, CRC(c8ceb3cd) SHA1(e5d20a3a9d7f0919604543c97643a03434d80130) ) |
| 2940 | 2930 | |
| 2941 | 2931 | ROM_REGION( 0x100000, "gfx1", 0 ) |
| r244872 | r244873 | |
| 3535 | 3525 | GAME( 1989, lohtb, loht, m72, loht, driver_device, 0, ROT0, "bootleg", "Legend of Hero Tonma (unprotected bootleg)", GAME_NOT_WORKING| GAME_NO_COCKTAIL ) |
| 3536 | 3526 | |
| 3537 | 3527 | GAME( 1989, xmultipl, 0, xmultipl, xmultipl, driver_device, 0, ROT0, "Irem", "X Multiply (World, M81)", GAME_NO_COCKTAIL ) |
| 3538 | | GAME( 1989, xmultiplm72, xmultipl, xmultiplm72, xmultipl, m72_state, xmultiplm72, ROT0, "Irem", "X Multiply (Japan, M72)", GAME_NO_COCKTAIL ) |
| 3528 | GAME( 1989, xmultiplm72, xmultipl, xmultiplm72, xmultipl, m72_state, m72_8751, ROT0, "Irem", "X Multiply (Japan, M72)", GAME_NO_COCKTAIL ) |
| 3539 | 3529 | |
| 3540 | 3530 | GAME( 1989, dbreed, 0, dbreed, dbreed, driver_device, 0, ROT0, "Irem", "Dragon Breed (M81 PCB version)", GAME_NO_COCKTAIL ) |
| 3541 | 3531 | GAME( 1989, dbreedm72, dbreed, dbreedm72, dbreed, m72_state, dbreedm72, ROT0, "Irem", "Dragon Breed (M72 PCB version)", GAME_NO_COCKTAIL ) |