trunk/src/mess/drivers/esqmr.c
| r0 | r19592 | |
| 1 | /*************************************************************************** |
| 2 | |
| 3 | esqmr.c - Ensoniq MR-61, MR-76, and MR-Rack |
| 4 | |
| 5 | Skeleton driver by R. Belmont |
| 6 | |
| 7 | Hardware: |
| 8 | CPU: 68340 MCU |
| 9 | Sound: 2xES5506 |
| 10 | Effects: ES5511 |
| 11 | |
| 12 | Memory map: |
| 13 | |
| 14 | 0x000000-0x0FFFFF OS ROM |
| 15 | |
| 16 | ***************************************************************************/ |
| 17 | |
| 18 | #include "emu.h" |
| 19 | #include "cpu/m68000/m68000.h" |
| 20 | #include "sound/es5506.h" |
| 21 | |
| 22 | #include "machine/esqvfd.h" |
| 23 | |
| 24 | class esqmr_state : public driver_device |
| 25 | { |
| 26 | public: |
| 27 | esqmr_state(const machine_config &mconfig, device_type type, const char *tag) |
| 28 | : driver_device(mconfig, type, tag), |
| 29 | m_maincpu(*this, "maincpu"), |
| 30 | m_sq1vfd(*this, "sq1vfd") |
| 31 | { } |
| 32 | |
| 33 | required_device<m68340_device> m_maincpu; |
| 34 | required_device<esq2x40_sq1_t> m_sq1vfd; |
| 35 | |
| 36 | virtual void machine_reset(); |
| 37 | |
| 38 | public: |
| 39 | DECLARE_DRIVER_INIT(mr); |
| 40 | }; |
| 41 | |
| 42 | void esqmr_state::machine_reset() |
| 43 | { |
| 44 | } |
| 45 | |
| 46 | static ADDRESS_MAP_START( mr_map, AS_PROGRAM, 32, esqmr_state ) |
| 47 | AM_RANGE(0x00000000, 0x000fffff) AM_ROM AM_REGION("maincpu", 0) |
| 48 | // AM_RANGE(0x200000, 0x20003f) AM_DEVREADWRITE8_LEGACY("ensoniq", es5506_r, es5506_w, 0xffffffff) |
| 49 | // AM_RANGE(0x240000, 0x24003f) AM_DEVREADWRITE8_LEGACY("ensoniq2", es5506_r, es5506_w, 0xffffffff) |
| 50 | // AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_SHARE("osram") |
| 51 | ADDRESS_MAP_END |
| 52 | |
| 53 | static void esq5506_otto_irq(device_t *device, int state) |
| 54 | { |
| 55 | } |
| 56 | |
| 57 | static UINT16 esq5506_read_adc(device_t *device) |
| 58 | { |
| 59 | return 0; |
| 60 | } |
| 61 | |
| 62 | static const es5506_interface es5506_config = |
| 63 | { |
| 64 | "waverom", /* Bank 0 */ |
| 65 | "waverom2", /* Bank 1 */ |
| 66 | "waverom3", /* Bank 0 */ |
| 67 | "waverom4", /* Bank 1 */ |
| 68 | esq5506_otto_irq, /* irq */ |
| 69 | esq5506_read_adc |
| 70 | }; |
| 71 | |
| 72 | static const es5506_interface es5506_2_config = |
| 73 | { |
| 74 | "waverom", /* Bank 0 */ |
| 75 | "waverom2", /* Bank 1 */ |
| 76 | "waverom3", /* Bank 0 */ |
| 77 | "waverom4", /* Bank 1 */ |
| 78 | NULL, |
| 79 | NULL |
| 80 | }; |
| 81 | |
| 82 | static MACHINE_CONFIG_START( mr, esqmr_state ) |
| 83 | MCFG_CPU_ADD("maincpu", M68340, XTAL_16MHz) |
| 84 | MCFG_CPU_PROGRAM_MAP(mr_map) |
| 85 | |
| 86 | MCFG_ESQ2x40_SQ1_ADD("sq1vfd") |
| 87 | |
| 88 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
| 89 | MCFG_SOUND_ADD("ensoniq", ES5506, XTAL_16MHz) |
| 90 | MCFG_SOUND_CONFIG(es5506_config) |
| 91 | MCFG_SOUND_ROUTE(0, "lspeaker", 2.0) |
| 92 | MCFG_SOUND_ROUTE(1, "rspeaker", 2.0) |
| 93 | MCFG_SOUND_ADD("ensoniq2", ES5506, XTAL_16MHz) |
| 94 | MCFG_SOUND_CONFIG(es5506_2_config) |
| 95 | MCFG_SOUND_ROUTE(0, "lspeaker", 2.0) |
| 96 | MCFG_SOUND_ROUTE(1, "rspeaker", 2.0) |
| 97 | MACHINE_CONFIG_END |
| 98 | |
| 99 | static INPUT_PORTS_START( mr ) |
| 100 | INPUT_PORTS_END |
| 101 | |
| 102 | ROM_START( mrrack ) |
| 103 | ROM_REGION(0x100000, "maincpu", 0) |
| 104 | ROM_LOAD16_BYTE( "mr-rack-150-lo.bin", 0x000001, 0x080000, CRC(b29988a1) SHA1(986c2def11de27fa2b9be55ac32f7fec0c414bca) ) |
| 105 | ROM_LOAD16_BYTE( "mr-rack-150-up.bin", 0x000000, 0x080000, CRC(71511692) SHA1(54744f16f1db1ac5abb2f70b6e04aebf1e0e029d) ) |
| 106 | |
| 107 | ROM_REGION(0x200000, "waverom", ROMREGION_ERASE00) |
| 108 | ROM_REGION(0x200000, "waverom2", ROMREGION_ERASE00) |
| 109 | ROM_REGION(0x200000, "waverom3", ROMREGION_ERASE00) |
| 110 | ROM_REGION(0x200000, "waverom4", ROMREGION_ERASE00) |
| 111 | ROM_END |
| 112 | |
| 113 | DRIVER_INIT_MEMBER(esqmr_state, mr) |
| 114 | { |
| 115 | } |
| 116 | |
| 117 | CONS( 1996, mrrack, 0, 0, mr, mr, esqmr_state, mr, "Ensoniq", "MR-Rack", GAME_NOT_WORKING ) |
| 118 | |