diff options
author | R. Belmont <rb6502@users.noreply.github.com> | 2014-04-06 20:41:49 +0000 |
---|---|---|
committer | R. Belmont <rb6502@users.noreply.github.com> | 2014-04-06 20:41:49 +0000 |
commit | c3bf0c18be1aae2278a1eb626c7203e31d741e12 (patch) | |
tree | a06b5122c2c8f73357f856288078a8c3de6a0f40 /src/mess/drivers/esqkt.c | |
parent | f167bd74a41b464d8a09fc8eab76f94cba60ceed (diff) |
(MESS) kt76 updates: [R. Belmont, Guru]
- Dumped and added the wave ROMs
- Driver is now working; effects DSP isn't hooked up yet
Diffstat (limited to 'src/mess/drivers/esqkt.c')
-rw-r--r-- | src/mess/drivers/esqkt.c | 139 |
1 files changed, 79 insertions, 60 deletions
diff --git a/src/mess/drivers/esqkt.c b/src/mess/drivers/esqkt.c index f5727c568eb..e27a65113a1 100644 --- a/src/mess/drivers/esqkt.c +++ b/src/mess/drivers/esqkt.c @@ -18,6 +18,71 @@ 0x280000-0x2801FF ES5510 0x300000-0x30000F 68681 DUART 0xFF0000-0xFFFFFF OS RAM + + Ensoniq KT-76 + Ensoniq 1994 + + This is a wavetable-based synth keyboard made by Ensoniq in 1994 + + PCB Layout + ---------- + + KT-76 + |---------------------------------------------| + |J12 J3 J11 J10 | + | LM393 LM358| + | 74HC4051| + |ADM691 | + | 62256 | + | | + |3V_BATTERY KT76_0590_LO.U5 ROM0 | + | | + | 68EC020 62256 OTTOR2 ROM1 | + | | + | KT76_690B_HI.U6 ROM2 | + | PAL1 | + | HP_6N138 | + | PAL2 OTTOR2 J6| + | 7407 | + | | + | D41464 D41464 | + | | + | SCN2681 D41464 D41464 | + | 137000402 | + | | + | 18.432MHz | + | ESPR6 16MHz | + | POT | + | R1136-11 | + | | + | LM339 LM339 | + | J13 J5 J1 J2 J4 | + |---------------------------------------------| + Notes: + J1 - connector for digital jacks + J2 - connector for keyboard + J3 - connector for LCD display + J4 - connector for keyboard + J5 - connector for power input + J6 - connector for wave expansion + J10 - connector for wheels/pressure + J11 - connector for memory card + J12 - connector for headphones + J13 - connector for analog jacks + 68EC020 - Motorola MC68EC020FG16 CPU. Clock input 16MHz + 1370000402 - Unknown PLCC44 IC stamped with the Ensoniq logo. Likely CPLD or gate array. + ESPR6 - Ensoniq ESPR6 (ES5510) sound chip + OTTOR2 - Ensoniq OTTOR2 (ES5506) sound chip + POT - ESP adjustment pot + KT76* - 27C2048/27C210 EPROM + ROM* - 2M x8-bit SOP44 mask ROM + R1136-11 - DIP40 IC manufactured by Rockwell - believed to be some type of MCU. + D41464 - NEC D41464 64k x4-bit DRAM + 62256 - 32k x8-bit SRAM + SCN2681 - Philips SCN2681 Dual Universal Asynchronous Receiver/Transmitter (DUART) + HP_6N138 - HP/Agilent HP 6N138 Low Input Current High Gain Optocoupler + PAL1 - MMI PAL20L8ACN stamped 'KT-76 MMU 6A0A'. Printing is faint so 0 could be a B or a D. + PAL2 - MMI PAL20L8ACN stamped 'KT-76 BCU 73D6' ***************************************************************************/ @@ -48,9 +113,6 @@ public: virtual void machine_reset(); - DECLARE_READ32_MEMBER(lower_r); - DECLARE_WRITE32_MEMBER(lower_w); - DECLARE_WRITE_LINE_MEMBER(duart_irq_handler); DECLARE_WRITE_LINE_MEMBER(duart_tx_a); DECLARE_WRITE_LINE_MEMBER(duart_tx_b); @@ -74,55 +136,6 @@ void esqkt_state::machine_reset() m_bCalibSecondByte = false; } -READ32_MEMBER(esqkt_state::lower_r) -{ - offset &= 0x3fff; - - // get pointers when 68k resets - if (!m_rom) - { - m_rom = (UINT32 *)memregion("osrom")->base(); - m_ram = (UINT32 *)memshare("osram")->ptr(); - } - - if (offset < 0x2000) - { - if (m68k_get_fc(m_maincpu) == 0x6) // supervisor mode = ROM - { - return m_rom[offset]; - } - else - { - return m_ram[offset]; - } - } - else - { - return m_ram[offset]; - } -} - -WRITE32_MEMBER(esqkt_state::lower_w) -{ - offset &= 0x3fff; - - if (offset < 0x2000) - { - if (m68k_get_fc(m_maincpu) != 0x6) // if not supervisor mode, RAM - { - COMBINE_DATA(&m_ram[offset]); - } - else - { - logerror("Write to ROM: %x @ %x (fc=%x)\n", data, offset, m68k_get_fc(m_maincpu)); - } - } - else - { - COMBINE_DATA(&m_ram[offset]); - } -} - static ADDRESS_MAP_START( kt_map, AS_PROGRAM, 32, esqkt_state ) AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_REGION("osrom", 0) AM_RANGE(0x200000, 0x20003f) AM_DEVREADWRITE8("ensoniq", es5506_device, read, write, 0xffffffff) @@ -233,12 +246,12 @@ static MACHINE_CONFIG_START( kt, esqkt_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ensoniq", ES5506, XTAL_16MHz) MCFG_SOUND_CONFIG(es5506_config) - MCFG_SOUND_ROUTE(0, "lspeaker", 2.0) - MCFG_SOUND_ROUTE(1, "rspeaker", 2.0) + MCFG_SOUND_ROUTE(0, "lspeaker", 0.5) + MCFG_SOUND_ROUTE(1, "rspeaker", 0.5) MCFG_SOUND_ADD("ensoniq2", ES5506, XTAL_16MHz) MCFG_SOUND_CONFIG(es5506_2_config) - MCFG_SOUND_ROUTE(0, "lspeaker", 2.0) - MCFG_SOUND_ROUTE(1, "rspeaker", 2.0) + MCFG_SOUND_ROUTE(0, "lspeaker", 0.5) + MCFG_SOUND_ROUTE(1, "rspeaker", 0.5) MACHINE_CONFIG_END static INPUT_PORTS_START( kt ) @@ -249,9 +262,15 @@ ROM_START( kt76 ) ROM_LOAD32_WORD( "kt76_162_lo.bin", 0x000000, 0x020000, CRC(1a1ab910) SHA1(dcc80db2297fd25993e090c2e5bb7f947319a8bf) ) ROM_LOAD32_WORD( "kt76_162_hi.bin", 0x000002, 0x040000, CRC(de16d236) SHA1(c55fca86453e90e8c34a048bed45817063237370) ) - ROM_REGION(0x200000, "waverom", ROMREGION_ERASE00) - ROM_REGION(0x200000, "waverom2", ROMREGION_ERASE00) - ROM_REGION(0x200000, "waverom3", ROMREGION_ERASE00) + ROM_REGION(0x400000, "waverom", ROMREGION_ERASE00) + ROM_LOAD16_BYTE( "1351000401_rom0.u103", 0x000001, 0x200000, CRC(425047af) SHA1(9680d1fc222b29ba24f0fbf6136982bee87a60ef) ) + + ROM_REGION(0x400000, "waverom2", ROMREGION_ERASE00) + ROM_LOAD16_BYTE( "1351000402_rom1.u102", 0x000001, 0x200000, CRC(64459185) SHA1(0fa20b16847fc02a384057fc3d385226eb3e7527) ) + + ROM_REGION(0x400000, "waverom3", ROMREGION_ERASE00) + ROM_LOAD16_BYTE( "1351000403_rom2.u104", 0x000001, 0x200000, CRC(c2aacc5d) SHA1(7fab518ba92ddb23cdc4dcb04751b26d25c298c0) ) + ROM_REGION(0x200000, "waverom4", ROMREGION_ERASE00) ROM_END @@ -260,4 +279,4 @@ DRIVER_INIT_MEMBER(esqkt_state, kt) m_duart_io = 0; } -CONS( 1996, kt76, 0, 0, kt, kt, esqkt_state, kt, "Ensoniq", "KT-76", GAME_NOT_WORKING ) +CONS( 1996, kt76, 0, 0, kt, kt, esqkt_state, kt, "Ensoniq", "KT-76", GAME_IMPERFECT_SOUND ) |